From 707f5a6f1fa8295df653b3174ea71314ed302c1d Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sun, 9 Aug 2026 21:36:16 +0100 Subject: [PATCH 01/85] feat(templates): a receipt laid out like a receipt, not an invoice without line items MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A bank's transfer confirmation is the document most people receive from a document engine and the one nothing in this repo could produce. The nearest family, invoice, is built around a table of line items and asks for money; a receipt reports money that already moved, and reads for one number and its provenance. So the fifth layered family. `ReceiptDocumentSpec` carries the amount, the two parties, titled groups of label/value rows, the steps the payment went through, and the footer small print — all as display text, because a receipt restates what a payment system already decided and must never recompute it. `ModernReceipt` sequences six widgets over `BrandTheme.receiptModern()`. The layout decisions follow from what a reader does with the page. The amount takes the theme's headline slot, larger than the title, because on a receipt it is the headline. The status carries a chip coloured by tone — settled green, failed red — in every theme, so checking whether money arrived never means learning a colour scheme per issuer. The two parties share one panel with an arrow between them rather than sitting in two tables the reader has to relate. Detail rows are joined by a dotted leader, the construction the table-of-contents builder already uses, because across a full page width a bare label and a bare value read as two unrelated columns. The verification QR code and the small print are seated on the bottom margin: the engine has no vertical flex, so the preset measures what the body left on the last page and spends it, and only when the receipt owns the session, since the measurement costs a second composition pass. The theme carries no brand colour at all. An issuer's mark and accent arrive per document through `ModernReceipt.Options`, so one preset and one theme render every institution instead of one theme per institution — and `SvgGlyph.fromFile` lets the mark be a file beside the application rather than one repackaged into its jar. That variant does not cache: a file can be replaced, and a service rendering for a hundred issuers should not hold a hundred glyphs for its life. Tests: 34 in qa (`ReceiptDataTest` normalization and freezing, `ModernReceiptSmokeTest` across factories, themes, every status tone and the empty paths, `ModernReceiptFooterPinTest` for the pinned position, the shared-session skip and a receipt that paginates, `SvgGlyphFileTest`, `ReceiptVisualParityTest` against a new baseline) plus the examples catalogue, which now renders and holds `receipt-modern.pdf`. Full reactor gate and the examples module both BUILD SUCCESS. --- CHANGELOG.md | 29 ++ assets/readme/examples/receipt-modern.pdf | Bin 0 -> 5385 bytes docs/templates/v2-layered/README.md | 17 +- .../demcha/examples/GenerateAllExamples.java | 4 + .../examples/support/ExampleDataFactory.java | 61 +++ .../examples/support/ShowcaseMetadata.java | 9 + .../receipt/ModernReceiptExample.java | 79 ++++ .../resources/brand/northwind-pay-mark.svg | 10 + .../core/identity/SvgGlyphFileTest.java | 85 ++++ .../data/receipt/ReceiptDataTest.java | 155 +++++++ .../presets/ModernReceiptFooterPinTest.java | 149 +++++++ .../presets/ModernReceiptSmokeTest.java | 158 +++++++ .../presets/ReceiptVisualParityTest.java | 141 ++++++ .../receipt-layered/modern_receipt-page-0.png | Bin 0 -> 81232 bytes .../templates/core/identity/SvgGlyph.java | 78 +++- .../templates/core/theme/BrandTheme.java | 19 + .../templates/core/theme/Palette.java | 22 + .../templates/core/theme/Spacing.java | 31 ++ .../templates/core/theme/Typography.java | 29 ++ .../templates/data/receipt/ReceiptData.java | 418 ++++++++++++++++++ .../data/receipt/ReceiptDocumentSpec.java | 54 +++ .../templates/data/receipt/ReceiptEvent.java | 38 ++ .../templates/data/receipt/ReceiptField.java | 49 ++ .../data/receipt/ReceiptFieldGroup.java | 93 ++++ .../templates/data/receipt/ReceiptParty.java | 100 +++++ .../templates/data/receipt/ReceiptStatus.java | 52 +++ .../data/receipt/ReceiptStatusTone.java | 25 ++ .../templates/data/receipt/package-info.java | 15 + .../document/templates/receipt/AUTHORS.md | 173 ++++++++ .../receipt/components/FieldRowRenderer.java | 156 +++++++ .../receipt/components/ReceiptStyles.java | 160 +++++++ .../receipt/components/StatusPill.java | 96 ++++ .../receipt/components/package-info.java | 17 + .../templates/receipt/package-info.java | 45 ++ .../receipt/presets/ModernReceipt.java | 384 ++++++++++++++++ .../receipt/presets/package-info.java | 13 + .../templates/receipt/widgets/AmountHero.java | 99 +++++ .../receipt/widgets/DetailGroup.java | 56 +++ .../templates/receipt/widgets/PartyPair.java | 119 +++++ .../receipt/widgets/ReceiptFooter.java | 123 ++++++ .../receipt/widgets/ReceiptMasthead.java | 112 +++++ .../receipt/widgets/StatusTrail.java | 119 +++++ .../receipt/widgets/package-info.java | 25 ++ 43 files changed, 3595 insertions(+), 22 deletions(-) create mode 100644 assets/readme/examples/receipt-modern.pdf create mode 100644 examples/src/main/java/com/demcha/examples/templates/receipt/ModernReceiptExample.java create mode 100644 examples/src/main/resources/brand/northwind-pay-mark.svg create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/core/identity/SvgGlyphFileTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/data/receipt/ReceiptDataTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptFooterPinTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptVisualParityTest.java create mode 100644 qa/src/test/resources/visual-baselines/receipt-layered/modern_receipt-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptData.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptDocumentSpec.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptEvent.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptField.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptFieldGroup.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptParty.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptStatus.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptStatusTone.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/receipt/package-info.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/AUTHORS.md create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/components/FieldRowRenderer.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/components/ReceiptStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/components/StatusPill.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/components/package-info.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/package-info.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/ModernReceipt.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/package-info.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/AmountHero.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/DetailGroup.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/PartyPair.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptFooter.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/StatusTrail.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/package-info.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 85f579cea..298248634 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -376,6 +376,35 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **New `receipt` family — payment confirmations.** The fifth family on the layered + architecture, for the document a bank sends after money moves: a transfer + confirmation, a direct debit advice, a card receipt. `ReceiptDocumentSpec` carries + the amount, the two parties, titled groups of label/value rows, the steps the + payment went through, and the footer small print; `ModernReceipt` sequences them + over `BrandTheme.receiptModern()`. + + It is laid out as a receipt rather than as an invoice without line items. The + amount is set larger than the document title, because on a receipt the amount is + the headline; the status carries a chip coloured by tone — settled green, failed + red — in every theme, so a reader checking whether money arrived does not have to + learn a colour scheme per issuer; the two parties share one panel with a direction + arrow instead of sitting in two tables the reader has to relate; detail rows are + joined by a dotted leader, the same construction the table-of-contents builder + uses, because across a full page width a bare label and a bare value read as two + unrelated columns. The verification QR code and the small print are seated on the + bottom margin: the engine has no vertical flex, so the preset measures what the + body left on the last page and spends it — and only when the receipt owns the + session, since the measurement costs a second composition pass. + + The theme carries no brand colour at all. An issuer's mark and accent arrive per + document through `ModernReceipt.Options`, so one preset and one theme render every + institution rather than one theme per institution. + +- **`SvgGlyph.fromFile(Path)`.** The classpath variant covers glyphs a template ships + with; this covers the glyph a template is given — a receipt's issuer mark, a + report's client logo — which arrives as a file beside the running application + rather than repackaged into its jar. + - **Timeline Minimal renders the whole CV.** The preset used to drop content three ways, none of them visible in the output. Per-module caps kept the first few lines of each block and discarded the rest, so a fourth degree or a third employer simply diff --git a/assets/readme/examples/receipt-modern.pdf b/assets/readme/examples/receipt-modern.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bfc5e817fd8a60180ea3047e81827086593d2133 GIT binary patch literal 5385 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 A-~a#s literal 0 HcmV?d00001 diff --git a/docs/templates/v2-layered/README.md b/docs/templates/v2-layered/README.md index 00cd3ccc1..9b82f6135 100644 --- a/docs/templates/v2-layered/README.md +++ b/docs/templates/v2-layered/README.md @@ -11,10 +11,10 @@ > archived at [templates/v1-classic/](../v1-classic/README.md). The **template surface** for building business documents on -GraphCompose. All four families ship on it — CV (the reference +GraphCompose. All five families ship on it — CV (the reference implementation, `com.demcha.compose.document.templates.cv`), -cover-letter, invoice, and proposal — and any new template family -follows the same shape. +cover-letter, invoice, proposal, and receipt — and any new template +family follows the same shape. This is the entry point. Pick the doc that matches your goal. @@ -97,7 +97,8 @@ The detailed contract for each layer is in - ❌ **Not one shape for every family.** `presets/` is the only package a family always has. CV carries all four; cover letter has no - `widgets/`; invoice and proposal are presets alone, reading data + `widgets/`; invoice and proposal are presets alone; receipt carries + `components/` + `widgets/` + `presets/`. All of them read their data records from the shared `templates.data.`. Add a layer when the family needs one. - ❌ **Not a framework with magic.** Every file is plain @@ -123,6 +124,14 @@ The detailed contract for each layer is in - **Examples**: [`examples/cv/v2/`](../../../examples/src/main/java/com/demcha/examples/templates/cv/v2) has runnable rendering examples for the shipped presets. +- **Receipt family**: the newest family, and the smallest complete one + to read end-to-end — + [`receipt/package-info.java`](../../../templates/src/main/java/com/demcha/compose/document/templates/receipt/package-info.java) + for the layer map, + [`receipt/AUTHORS.md`](../../../templates/src/main/java/com/demcha/compose/document/templates/receipt/AUTHORS.md) + for its recipes, and + [`ModernReceiptExample`](../../../examples/src/main/java/com/demcha/examples/templates/receipt/ModernReceiptExample.java) + for a rendered transfer confirmation. - **Archived classic surface**: [`docs/templates/v1-classic/README.md`](../v1-classic/README.md) describes the older spec / preset / theme split that was removed in 2.0; kept for diff --git a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java index 59590ed29..f900b845a 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.proposal.CinematicProposalFileExample; import com.demcha.examples.templates.proposal.ProposalCinematicFileExample; import com.demcha.examples.templates.proposal.ModernProposalV2Example; +import com.demcha.examples.templates.receipt.ModernReceiptExample; import com.demcha.examples.templates.schedule.WeeklyScheduleFileExample; /** @@ -168,6 +169,9 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + ModernProposalV2Example.generate()); System.out.println("Generated: " + CinematicProposalFileExample.generate()); + // Receipts + System.out.println("Generated: " + ModernReceiptExample.generate()); + // Schedule System.out.println("Generated: " + WeeklyScheduleFileExample.generate()); diff --git a/examples/src/main/java/com/demcha/examples/support/ExampleDataFactory.java b/examples/src/main/java/com/demcha/examples/support/ExampleDataFactory.java index 4ab8455be..5bc88ce57 100644 --- a/examples/src/main/java/com/demcha/examples/support/ExampleDataFactory.java +++ b/examples/src/main/java/com/demcha/examples/support/ExampleDataFactory.java @@ -11,6 +11,8 @@ import com.demcha.compose.document.templates.cv.data.SkillsSection; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; import com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec; +import com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec; +import com.demcha.compose.document.templates.data.receipt.ReceiptStatus; import com.demcha.compose.document.templates.data.schedule.ScheduleSlot; import com.demcha.compose.document.templates.data.schedule.WeeklyScheduleDocumentSpec; @@ -58,6 +60,65 @@ public static InvoiceDocumentSpec sampleInvoice() { .build(); } + /** + * A settled direct-debit collection, for the Modern Receipt preset. + * + *

Northwind Pay is invented, and so is every account, reference, and + * name below — the footer note on the rendered page says so, because a + * sample bank document that does not is a sample somebody eventually + * mistakes for a real one.

+ * + * @return receipt document spec + */ + public static ReceiptDocumentSpec sampleReceipt() { + return ReceiptDocumentSpec.of(receipt -> receipt + .documentTitle("Transfer confirmation") + .issuerName("Northwind Pay") + .generatedOn("09 August 2026") + .reference("NWP-4821-0067") + .amount("Amount collected", "£66.62") + .amountCaption("Direct Debit collected by Harbour Finance Ltd") + .status(ReceiptStatus.settled("Completed")) + .summaryField("Value date", "07 Jul 2026") + .summaryField("Operation date", "07 Jul 2026") + .summaryField("Scheme", "Bacs Direct Debit") + .payer("Paid from", party -> party + .name("Alex Sample") + .addressLines("12 Example Way", "Brentford TW0 0AA", "United Kingdom") + .field("Account", "•••• 4396") + .field("Sort code", "00-00-00")) + .beneficiary("Paid to", party -> party + .name("Harbour Finance Ltd") + .addressLines("1 Sample Quay", "Manchester M0 0AA") + .field("Account", "•••• 5604") + .field("Sort code", "00-00-11")) + .detailGroup("Transfer details", group -> group + .field("Mandate reference", "MND-0110-8054-5652") + .field("Transaction ID", "b71f0c2e-9a44-4f18-bd30-51c7a2e9d840") + .field("Payment scheme", "Bacs Direct Debit") + .field("Statement description", "HARBOUR FIN 4821")) + .detailGroup("Amount breakdown", group -> group + .field("Amount", "£66.62") + .field("Transfer fee", "£0.00") + .field("Exchange rate", "1.00 GBP / GBP") + .emphasized("Total debited", "£66.62")) + .event("Instructed", "07 Jul 2026, 08:12 BST", + "Collection request submitted to the scheme.") + .event("In clearing", "08 Jul 2026, 09:00 BST", + "Three-working-day Bacs cycle.") + .event("Settled", "09 Jul 2026, 06:30 BST", + "Funds debited and confirmed by the receiving bank.") + .note("Keep this confirmation for your records. It is not a tax invoice.") + .note("Disputed collections can be reversed under the Direct Debit Guarantee.") + .verification("https://example.com/verify/NWP-4821-0067", + "Scan to check this confirmation against the issuing records.") + .supportLine("Support +44 20 0000 0000") + .supportLine("help@northwind-pay.example") + .legalNote("Northwind Pay is a fictional institution used in GraphCompose " + + "examples; every name, account, and reference on this page is " + + "invented. Nothing here is a record of a real payment.")); + } + public static ProposalDocumentSpec sampleProposal() { return ProposalDocumentSpec.builder() .title("Proposal") 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 a973af89e..719f12e7f 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -94,6 +94,9 @@ record Entry(String title, String description, List tags, String codeUrl 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"); + // ===== Templates / Receipt ===== + receipt("receipt-modern", "ModernReceiptExample", "Modern Receipt", "A settled transfer confirmation on the layered receipt family — hero amount with a status chip, payer/beneficiary panel, dotted-leader detail rows, a status timeline, and a footer pinned to the page bottom with a verification QR code.", "receipt", "qr"); + // ===== Templates / Schedule ===== schedule("weekly-schedule", "Weekly Schedule", "Multi-day weekly schedule with shift assignments, category fills, and repeated header.", "schedule", "table"); @@ -192,6 +195,7 @@ static String groupLabel(String category, String group) { case "templates/invoice" -> "Invoice"; case "templates/proposal" -> "Proposal"; case "templates/schedule" -> "Schedule"; + case "templates/receipt" -> "Payment Receipt"; case "features/lists" -> "Lists & Bullets"; case "features/tables" -> "Tables"; case "features/canvas" -> "Canvas / Free Placement"; @@ -254,6 +258,11 @@ private static void proposal(String id, String exampleClass, String title, Strin EX_BASE + "/templates/proposal/" + exampleClass + ".java")); } + private static void receipt(String id, String exampleClass, String title, String desc, String... tags) { + ENTRIES.put(id, entry(title, desc, withCategory("receipt", tags), + EX_BASE + "/templates/receipt/" + exampleClass + ".java")); + } + private static void schedule(String id, String title, String desc, String... tags) { ENTRIES.put(id, entry(title, desc, withCategory("schedule", tags), EX_BASE + "/templates/schedule/WeeklyScheduleFileExample.java")); diff --git a/examples/src/main/java/com/demcha/examples/templates/receipt/ModernReceiptExample.java b/examples/src/main/java/com/demcha/examples/templates/receipt/ModernReceiptExample.java new file mode 100644 index 000000000..e9dbe6d73 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/receipt/ModernReceiptExample.java @@ -0,0 +1,79 @@ +package com.demcha.examples.templates.receipt; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.identity.SvgGlyph; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec; +import com.demcha.compose.document.templates.receipt.presets.ModernReceipt; +import com.demcha.examples.support.ExampleDataFactory; +import com.demcha.examples.support.ExampleOutputPaths; + +import java.nio.file.Path; + +/** + * Renders the layered {@code receipt} Modern Receipt preset — a settled + * direct-debit collection from a fictional bank. + * + *

Output: + * {@code examples/target/generated-pdfs/templates/receipt/receipt-modern.pdf}.

+ * + *

The branding is the part worth reading: the theme + * ({@link BrandTheme#receiptModern()}) carries no brand colour at all, and + * the issuer's identity arrives through {@code ModernReceipt.Options} as a + * recolourable SVG mark plus one accent. Point those two at a different + * institution and the same preset renders that institution's + * confirmation.

+ */ +public final class ModernReceiptExample { + + /** Classpath location of the fictional issuer's mark. */ + private static final String MARK = "/brand/northwind-pay-mark.svg"; + + /** The fictional issuer's brand accent. */ + private static final DocumentColor ACCENT = DocumentColor.rgb(23, 92, 211); + + private ModernReceiptExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare("templates/receipt", "receipt-modern.pdf"); + ReceiptDocumentSpec spec = ExampleDataFactory.sampleReceipt(); + BrandTheme theme = BrandTheme.receiptModern(); + + // A symbol mark, not a wordmark: it renders inline beside the issuer's + // name, so it is sized to the name's cap height rather than to a + // wordmark's full width. + ModernReceipt.Options options = ModernReceipt.Options + .branded(SvgGlyph.fromResource(MARK), ACCENT) + .withLogoWidth(14) + .withLogoColor(ACCENT); + DocumentTemplate template = ModernReceipt.create(theme, options); + + float m = (float) ModernReceipt.RECOMMENDED_MARGIN; + try (DocumentSession document = GraphCompose.document(outputFile) + .pageSize(DocumentPageSize.A4) + .pageBackground(theme.palette().mainFill()) + .margin(m, m, m, m) + .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/examples/src/main/resources/brand/northwind-pay-mark.svg b/examples/src/main/resources/brand/northwind-pay-mark.svg new file mode 100644 index 000000000..ba0d9a157 --- /dev/null +++ b/examples/src/main/resources/brand/northwind-pay-mark.svg @@ -0,0 +1,10 @@ + + + + diff --git a/qa/src/test/java/com/demcha/compose/document/templates/core/identity/SvgGlyphFileTest.java b/qa/src/test/java/com/demcha/compose/document/templates/core/identity/SvgGlyphFileTest.java new file mode 100644 index 000000000..24f2d8b1c --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/core/identity/SvgGlyphFileTest.java @@ -0,0 +1,85 @@ +package com.demcha.compose.document.templates.core.identity; + +import com.demcha.compose.document.style.ShapeOutline; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import java.nio.file.Files; +import java.nio.file.Path; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * {@link SvgGlyph#fromFile(java.nio.file.Path)} — the variant that loads a mark + * a caller supplies rather than one a template ships with. + */ +class SvgGlyphFileTest { + + private static final String SQUARE = """ + + + + """; + + /** Same drawing in a frame twice as wide — a different aspect ratio to detect. */ + private static final String WIDE = """ + + + + """; + + @Test + void loadsAGlyphFromDisk(@TempDir Path dir) throws Exception { + Path file = Files.writeString(dir.resolve("mark.svg"), SQUARE); + + SvgGlyph glyph = SvgGlyph.fromFile(file); + + assertThat(glyph.aspectRatio()).isCloseTo(1.0, org.assertj.core.data.Offset.offset(0.01)); + ShapeOutline outline = glyph.outline(24); + assertThat(outline).isNotNull(); + } + + @Test + void rereadsTheFileOnEveryCall(@TempDir Path dir) throws Exception { + // The classpath variant caches forever because a jar entry cannot change. + // A file can: a caller who replaces the logo must not keep getting the old + // one for the life of the JVM. + Path file = dir.resolve("mark.svg"); + Files.writeString(file, SQUARE); + assertThat(SvgGlyph.fromFile(file).aspectRatio()) + .isCloseTo(1.0, org.assertj.core.data.Offset.offset(0.01)); + + Files.writeString(file, WIDE); + assertThat(SvgGlyph.fromFile(file).aspectRatio()) + .isCloseTo(2.0, org.assertj.core.data.Offset.offset(0.01)); + } + + @Test + void reportsAMissingFileByName(@TempDir Path dir) { + Path missing = dir.resolve("nowhere.svg"); + + assertThatThrownBy(() -> SvgGlyph.fromFile(missing)) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("nowhere.svg"); + } + + @Test + void rejectsANullPath() { + assertThatThrownBy(() -> SvgGlyph.fromFile(null)) + .isInstanceOf(NullPointerException.class) + .hasMessageContaining("file"); + } + + @Test + void refusesAnSvgWithNothingToDraw(@TempDir Path dir) throws Exception { + // Fails loudly rather than yielding a glyph that renders as nothing — the + // rejection comes from the SVG reader, before the flattening step. + Path file = Files.writeString(dir.resolve("empty.svg"), + ""); + + assertThatThrownBy(() -> SvgGlyph.fromFile(file)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("no drawable geometry"); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/data/receipt/ReceiptDataTest.java b/qa/src/test/java/com/demcha/compose/document/templates/data/receipt/ReceiptDataTest.java new file mode 100644 index 000000000..7689545eb --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/data/receipt/ReceiptDataTest.java @@ -0,0 +1,155 @@ +package com.demcha.compose.document.templates.data.receipt; + +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; + +/** + * Normalization contract of the receipt records. + * + *

These records are what a caller's payment system hands the template, so + * the interesting cases are the ones a caller gets wrong: a missing status, a + * blank party caption, a null collection. Each has to produce something the + * preset can render rather than a null the widget discovers at layout + * time.

+ */ +class ReceiptDataTest { + + @Test + void defaultsEveryOptionalField() { + ReceiptData data = ReceiptData.builder().build(); + + assertThat(data.documentTitle()).isEqualTo("Payment receipt"); + assertThat(data.amountLabel()).isEqualTo("Amount"); + assertThat(data.payerLabel()).isEqualTo("From"); + assertThat(data.beneficiaryLabel()).isEqualTo("To"); + assertThat(data.issuerName()).isEmpty(); + assertThat(data.amount()).isEmpty(); + assertThat(data.detailGroups()).isEmpty(); + assertThat(data.timeline()).isEmpty(); + assertThat(data.notes()).isEmpty(); + assertThat(data.supportLines()).isEmpty(); + } + + @Test + void missingStatusReadsAsInProgress() { + // The least-claiming reading: a receipt that does not say it settled + // must not be coloured as if it had. + ReceiptData data = ReceiptData.builder().build(); + assertThat(data.status().tone()).isEqualTo(ReceiptStatusTone.IN_PROGRESS); + assertThat(data.status().hasLabel()).isFalse(); + } + + @Test + void blankPartyCaptionsFallBackRatherThanRenderEmpty() { + ReceiptData data = ReceiptData.builder() + .payer(" ", party -> party.name("Alex Sample")) + .beneficiary("", party -> party.name("Harbour Finance Ltd")) + .build(); + + assertThat(data.payerLabel()).isEqualTo("From"); + assertThat(data.beneficiaryLabel()).isEqualTo("To"); + } + + @Test + void presenceFollowsContentNotTheObject() { + // A party builder always yields an object, so "has a payer" has to mean + // "carries something worth drawing" — otherwise every receipt renders an + // empty card. + ReceiptData empty = ReceiptData.builder() + .payer("Paid from", party -> { }) + .build(); + assertThat(empty.hasPayer()).isFalse(); + + ReceiptData named = ReceiptData.builder() + .payer("Paid from", party -> party.name("Alex Sample")) + .build(); + assertThat(named.hasPayer()).isTrue(); + + ReceiptData fieldsOnly = ReceiptData.builder() + .beneficiary("Paid to", party -> party.field("Account", "•••• 5604")) + .build(); + assertThat(fieldsOnly.hasBeneficiary()).isTrue(); + } + + @Test + void collectionsAreFrozen() { + ReceiptData data = ReceiptData.builder() + .summaryField("Value date", "07 Jul 2026") + .detailGroup("Transfer details", group -> group.field("Fee", "£0.00")) + .build(); + + assertThatThrownBy(() -> data.summaryFields().add(ReceiptField.of("x", "y"))) + .isInstanceOf(UnsupportedOperationException.class); + assertThatThrownBy(() -> data.detailGroups().clear()) + .isInstanceOf(UnsupportedOperationException.class); + } + + @Test + void blankNotesAndSupportLinesAreDropped() { + ReceiptData data = ReceiptData.builder() + .note(" ") + .note(null) + .note("Keep this for your records.") + .supportLine("") + .supportLine("help@example.com") + .build(); + + assertThat(data.notes()).containsExactly("Keep this for your records."); + assertThat(data.supportLines()).containsExactly("help@example.com"); + } + + @Test + void partyDropsBlankAddressLines() { + ReceiptParty party = ReceiptParty.builder() + .name("Alex Sample") + .addressLines("12 Example Way", " ", null, "Brentford TW0 0AA") + .build(); + + assertThat(party.addressLines()).containsExactly("12 Example Way", "Brentford TW0 0AA"); + } + + @Test + void nullCollectionsNormalizeToEmpty() { + ReceiptFieldGroup group = new ReceiptFieldGroup(null, null); + assertThat(group.title()).isEmpty(); + assertThat(group.fields()).isEmpty(); + + ReceiptParty party = new ReceiptParty(null, null, null); + assertThat(party.name()).isEmpty(); + assertThat(party.fields()).isEmpty(); + + ReceiptEvent event = new ReceiptEvent(null, null, null); + assertThat(event.label()).isEmpty(); + assertThat(event.timestamp()).isEmpty(); + assertThat(event.detail()).isEmpty(); + } + + @Test + void specWrapsMissingPayloadRatherThanCarryingNull() { + assertThat(new ReceiptDocumentSpec(null).receipt()).isNotNull(); + assertThat(ReceiptDocumentSpec.of(null).receipt().documentTitle()) + .isEqualTo("Payment receipt"); + assertThat(ReceiptDocumentSpec.from(ReceiptData.builder() + .documentTitle("Transfer confirmation") + .build()).receipt().documentTitle()) + .isEqualTo("Transfer confirmation"); + } + + @Test + void emphasisIsCarriedPerField() { + ReceiptFieldGroup group = ReceiptFieldGroup.builder("Amount breakdown") + .field("Fee", "£0.00") + .emphasized("Total debited", "£66.62") + .add(ReceiptField.of("Rate", "1.00")) + .build(); + + assertThat(group.fields()).extracting(ReceiptField::emphasized) + .containsExactly(false, true, false); + assertThat(group.fields()).extracting(ReceiptField::label) + .isEqualTo(List.of("Fee", "Total debited", "Rate")); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptFooterPinTest.java b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptFooterPinTest.java new file mode 100644 index 000000000..ee691c76f --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptFooterPinTest.java @@ -0,0 +1,149 @@ +package com.demcha.compose.document.templates.receipt.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.snapshot.LayoutNodeSnapshot; +import com.demcha.compose.document.snapshot.LayoutSnapshot; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec; +import com.demcha.compose.document.templates.data.receipt.ReceiptStatus; +import org.junit.jupiter.api.Test; + +import java.util.Optional; +import java.util.function.Consumer; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.within; + +/** + * The footer pin — {@link ModernReceipt} measures what the body left on the + * last page and spends it, so the verification code and the small print land on + * the bottom margin instead of floating under the notes. + * + *

The mechanism re-composes, which clears the session, so the cases that + * matter are the ones where it must not run: a session that already + * carries content, and a receipt with no footer to hold down.

+ */ +class ModernReceiptFooterPinTest { + + /** How close to the bottom margin the footer has to land to count as seated. */ + private static final double SEATED_TOLERANCE = 2.0; + + private static final String PIN_NODE = "ReceiptFooterPin"; + private static final String FOOTER_NODE = "ReceiptFooter"; + + private static DocumentSession session() { + return GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(DocumentInsets.of(ModernReceipt.RECOMMENDED_MARGIN)) + .create(); + } + + private static ReceiptDocumentSpec receipt(Consumer extra) { + return ReceiptDocumentSpec.of(builder -> { + builder.documentTitle("Transfer confirmation") + .issuerName("Northwind Pay") + .generatedOn("09 August 2026") + .amount("Amount collected", "£66.62") + .status(ReceiptStatus.settled("Completed")) + .payer("Paid from", party -> party.name("Alex Sample")) + .beneficiary("Paid to", party -> party.name("Harbour Finance Ltd")); + extra.accept(builder); + }); + } + + private static Optional node(LayoutSnapshot snapshot, String entityName) { + return snapshot.nodes().stream() + .filter(n -> entityName.equals(n.entityName())) + .findFirst(); + } + + @Test + void seatsTheFooterOnTheBottomMargin() throws Exception { + ReceiptDocumentSpec spec = receipt(builder -> builder + .verification("https://example.com/v/1", "Scan to check it.") + .legalNote("Every name on this page is invented.")); + + try (DocumentSession document = session()) { + ModernReceipt.create().compose(document, spec); + LayoutSnapshot snapshot = document.layoutSnapshot(); + + assertThat(node(snapshot, PIN_NODE)) + .describedAs("a short receipt leaves most of the page free, so it pins") + .isPresent(); + LayoutNodeSnapshot footer = node(snapshot, FOOTER_NODE).orElseThrow(); + assertThat(footer.placementY()) + .describedAs("footer bottom against the page's bottom margin") + .isCloseTo(snapshot.canvas().margin().bottom(), within(SEATED_TOLERANCE)); + } + } + + @Test + void leavesContentThatWasAlreadyComposed() throws Exception { + // The pin re-composes by clearing the session. A caller who put a cover + // page in first must get it back, footer pinned or not. + ReceiptDocumentSpec spec = receipt(builder -> builder + .verification("https://example.com/v/1", "Scan to check it.")); + + try (DocumentSession document = session()) { + document.dsl().pageFlow().name("CallerCover").addParagraph("Statement pack").build(); + ModernReceipt.create().compose(document, spec); + + assertThat(document.roots()).hasSizeGreaterThan(1); + LayoutSnapshot snapshot = document.layoutSnapshot(); + assertThat(node(snapshot, "CallerCover")) + .describedAs("the caller's own content survives compose()") + .isPresent(); + assertThat(node(snapshot, PIN_NODE)) + .describedAs("a shared session is not the receipt's to re-compose") + .isEmpty(); + } + } + + @Test + void pinsNothingWhenThereIsNoFooter() throws Exception { + // No QR, no support lines, no small print: a spacer here would be a + // page-tall hole holding nothing down. + try (DocumentSession document = session()) { + ModernReceipt.create().compose(document, receipt(builder -> { })); + + assertThat(node(document.layoutSnapshot(), PIN_NODE)).isEmpty(); + } + } + + @Test + void seatsTheFooterOnTheLastPageOfALongReceipt() throws Exception { + // Placement coordinates resolve on the page a node starts on, so a body + // spanning a page break must be measured from nodes that live entirely on + // the last page — otherwise the gap measured is page one's. + ReceiptDocumentSpec spec = receipt(builder -> { + for (int group = 0; group < 12; group++) { + int index = group; + builder.detailGroup("Block " + index, rows -> { + for (int row = 0; row < 8; row++) { + rows.field("Field " + row, "Value " + row); + } + }); + } + builder.verification("https://example.com/v/1", "Scan to check it.") + .legalNote("Every name on this page is invented."); + }); + + try (DocumentSession document = session()) { + ModernReceipt.create().compose(document, spec); + LayoutSnapshot snapshot = document.layoutSnapshot(); + + assertThat(snapshot.totalPages()) + .describedAs("the fixture is sized to overflow one page") + .isGreaterThan(1); + LayoutNodeSnapshot footer = node(snapshot, FOOTER_NODE).orElseThrow(); + assertThat(footer.startPage()).isEqualTo(snapshot.totalPages() - 1); + assertThat(footer.placementY()) + .describedAs("seated on the last page's bottom margin, not page one's") + .isCloseTo(snapshot.canvas().margin().bottom(), within(SEATED_TOLERANCE)); + assertThat(document.toPdfBytes()).isNotEmpty(); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptSmokeTest.java new file mode 100644 index 000000000..5080215ac --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptSmokeTest.java @@ -0,0 +1,158 @@ +package com.demcha.compose.document.templates.receipt.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec; +import com.demcha.compose.document.templates.data.receipt.ReceiptStatus; +import com.demcha.compose.document.templates.data.receipt.ReceiptStatusTone; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Smoke test for the layered receipt pipeline through {@link ModernReceipt} + * — proves the preset renders a {@link ReceiptDocumentSpec} end-to-end on a + * {@link BrandTheme}, through every factory, under a foreign theme, for each + * status tone, and on a receipt carrying nothing but an amount. + */ +class ModernReceiptSmokeTest { + + private static ReceiptDocumentSpec sampleSpec() { + return ReceiptDocumentSpec.of(receipt -> receipt + .documentTitle("Transfer confirmation") + .issuerName("Northwind Pay") + .generatedOn("09 August 2026") + .reference("NWP-4821-0067") + .amount("Amount collected", "£66.62") + .amountCaption("Direct Debit collected by Harbour Finance Ltd") + .status(ReceiptStatus.settled("Completed")) + .summaryField("Value date", "07 Jul 2026") + .summaryField("Scheme", "Bacs Direct Debit") + .payer("Paid from", party -> party + .name("Alex Sample") + .addressLines("12 Example Way", "Brentford TW0 0AA") + .field("Account", "•••• 4396")) + .beneficiary("Paid to", party -> party + .name("Harbour Finance Ltd") + .field("Account", "•••• 5604")) + .detailGroup("Transfer details", group -> group + .field("Mandate reference", "MND-0110-8054-5652") + .emphasized("Total debited", "£66.62")) + .event("Instructed", "07 Jul 2026, 08:12 BST", "Submitted to the scheme.") + .event("Settled", "09 Jul 2026, 06:30 BST", "Confirmed by the receiving bank.") + .note("Keep this confirmation for your records.") + .verification("https://example.com/verify/NWP-4821-0067", "Scan to check it.") + .supportLine("help@northwind-pay.example") + .legalNote("Every name and account on this page is invented.")); + } + + /** Nothing but an amount: exercises every skipped-block path at once. */ + private static ReceiptDocumentSpec minimalSpec() { + return ReceiptDocumentSpec.of(receipt -> receipt.amount("Amount", "£1.00")); + } + + /** One side only: the pair widget's single-column path. */ + private static ReceiptDocumentSpec payerOnlySpec() { + return ReceiptDocumentSpec.of(receipt -> receipt + .amount("Amount", "£1.00") + .payer("Paid from", party -> party.name("Alex Sample"))); + } + + private static void render(DocumentTemplate template, + ReceiptDocumentSpec spec) throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(DocumentInsets.of(ModernReceipt.RECOMMENDED_MARGIN)) + .create()) { + template.compose(session, spec); + assertThat(session.roots()).isNotEmpty(); + // Renders all the way to bytes: the QR code and the inline glyphs only + // reach a backend here, so a compose-only assertion would miss them. + assertThat(session.toPdfBytes()).isNotEmpty(); + } + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = ModernReceipt.create(); + assertThat(template.id()).isEqualTo(ModernReceipt.ID); + assertThat(template.displayName()).isEqualTo(ModernReceipt.DISPLAY_NAME); + } + + @Test + void defaultFactoryRendersWithReceiptTheme() throws Exception { + render(ModernReceipt.create(), sampleSpec()); + } + + @Test + void rendersWithExplicitTheme() throws Exception { + render(ModernReceipt.create(BrandTheme.receiptModern()), sampleSpec()); + } + + @Test + void rendersWithIssuerBranding() throws Exception { + // No mark: the branded path that matters here is the accent, which reaches + // the hero strip, the direction arrow, and the reached timeline step. + ModernReceipt.Options options = ModernReceipt.Options.defaults() + .withTimelineTitle("Where it got to"); + render(ModernReceipt.create(BrandTheme.receiptModern(), options), sampleSpec()); + } + + @Test + void readsAnyTheme() throws Exception { + // A theme built for a CV drives every surface the receipt reads, so the + // preset must not depend on a token only its own theme sets. + render(ModernReceipt.create(BrandTheme.boxedClassic()), sampleSpec()); + } + + @Test + void nullOptionsFallBackToDefaults() throws Exception { + render(ModernReceipt.create(BrandTheme.receiptModern(), null), sampleSpec()); + } + + @ParameterizedTest + @EnumSource(ReceiptStatusTone.class) + void rendersEveryStatusTone(ReceiptStatusTone tone) throws Exception { + ReceiptDocumentSpec spec = ReceiptDocumentSpec.of(receipt -> receipt + .amount("Amount", "£1.00") + .status("Status", tone)); + render(ModernReceipt.create(BrandTheme.receiptModern(), + ModernReceipt.Options.defaults()), spec); + } + + @Test + void rendersReceiptCarryingOnlyAnAmount() throws Exception { + render(ModernReceipt.create(), minimalSpec()); + } + + @Test + void rendersOneSidedTransfer() throws Exception { + render(ModernReceipt.create(), payerOnlySpec()); + } + + @Test + void accentIsOptional() throws Exception { + // A null accent must render an unbranded but complete receipt rather than + // throwing on the first colour the hero asks for. + ModernReceipt.Options options = new ModernReceipt.Options(null, 0, null, null, " "); + assertThat(options.logoWidth()).isEqualTo(ModernReceipt.Options.DEFAULT_LOGO_WIDTH); + assertThat(options.timelineTitle()).isEqualTo(ModernReceipt.Options.DEFAULT_TIMELINE_TITLE); + render(ModernReceipt.create(BrandTheme.receiptModern(), options), sampleSpec()); + } + + @Test + void brandedOptionsCarryTheAccent() { + DocumentColor accent = DocumentColor.rgb(23, 92, 211); + ModernReceipt.Options options = ModernReceipt.Options.branded(null, accent); + assertThat(options.accent()).isEqualTo(accent); + assertThat(options.withLogoWidth(40).logoWidth()).isEqualTo(40); + assertThat(options.withLogoColor(accent).logoColor()).isEqualTo(accent); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptVisualParityTest.java new file mode 100644 index 000000000..296442178 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptVisualParityTest.java @@ -0,0 +1,141 @@ +package com.demcha.compose.document.templates.receipt.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec; +import com.demcha.compose.document.templates.data.receipt.ReceiptStatus; +import com.demcha.compose.testing.visual.PdfVisualRegression; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +import java.nio.file.Path; +import java.util.function.Supplier; +import java.util.stream.Stream; + +/** + * Pixel-diff visual parity gate for the layered receipt presets. + * + *

The preset renders the canonical {@link ReceiptDocumentSpec} on A4 at + * {@code RECOMMENDED_MARGIN}; the PDF is rasterised page-by-page and compared + * per-pixel against a checked-in baseline PNG. The receipt look is carried by + * hairlines, a status chip, and one very large amount — all of which move + * silently under a theme or widget refactor, which is what this locks.

+ * + *

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

+ */ +class ReceiptVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "receipt-layered"); + + // Mirrors the invoice gate: Helvetica is the PDFBox built-in font with the + // widest cross-platform glyph/colour drift, so the budget is sized for + // Windows-recorded baselines against Linux CI. + private static final long PIXEL_DIFF_BUDGET = 50_000L; + private static final int PER_PIXEL_TOLERANCE = 8; + + @ParameterizedTest(name = "{0}") + @MethodSource("presets") + void rendersWithinPixelDiffBudget(String slug, + double margin, + Supplier> factory) + throws Exception { + DocumentTemplate template = factory.get(); + float m = (float) margin; + byte[] pdfBytes; + try (DocumentSession document = GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(m, m, m, m) + .create()) { + template.compose(document, canonicalReceipt()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline(slug, pdfBytes); + } + + private static Stream presets() { + return Stream.of( + Arguments.of("modern_receipt", + ModernReceipt.RECOMMENDED_MARGIN, + (Supplier>) + ReceiptVisualParityTest::brandedModernReceipt)); + } + + /** + * The branded factory, so the gate covers the accent surfaces — hero + * strip, direction arrow, reached timeline step — and not only the + * unbranded fallback. No mark: an SVG asset would put a second file in + * front of the baseline. + */ + private static DocumentTemplate brandedModernReceipt() { + return ModernReceipt.create(BrandTheme.receiptModern(), + ModernReceipt.Options.branded(null, DocumentColor.rgb(23, 92, 211))); + } + + /** + * Canonical sample receipt — exercises the masthead, the hero with its + * status chip and summary fields, both party sides, two detail groups, + * the status trail, the notes block, and the footer with its QR code. + * Kept inline so the test depends only on main code. + */ + private static ReceiptDocumentSpec canonicalReceipt() { + return ReceiptDocumentSpec.of(receipt -> receipt + .documentTitle("Transfer confirmation") + .issuerName("Northwind Pay") + .generatedOn("09 August 2026") + .reference("NWP-4821-0067") + .amount("Amount collected", "£66.62") + .amountCaption("Direct Debit collected by Harbour Finance Ltd") + .status(ReceiptStatus.settled("Completed")) + .summaryField("Value date", "07 Jul 2026") + .summaryField("Operation date", "07 Jul 2026") + .summaryField("Scheme", "Bacs Direct Debit") + .payer("Paid from", party -> party + .name("Alex Sample") + .addressLines("12 Example Way", "Brentford TW0 0AA", "United Kingdom") + .field("Account", "•••• 4396") + .field("Sort code", "00-00-00")) + .beneficiary("Paid to", party -> party + .name("Harbour Finance Ltd") + .addressLines("1 Sample Quay", "Manchester M0 0AA") + .field("Account", "•••• 5604") + .field("Sort code", "00-00-11")) + .detailGroup("Transfer details", group -> group + .field("Mandate reference", "MND-0110-8054-5652") + .field("Transaction ID", "b71f0c2e-9a44-4f18-bd30-51c7a2e9d840") + .field("Payment scheme", "Bacs Direct Debit") + .field("Statement description", "HARBOUR FIN 4821")) + .detailGroup("Amount breakdown", group -> group + .field("Amount", "£66.62") + .field("Transfer fee", "£0.00") + .field("Exchange rate", "1.00 GBP / GBP") + .emphasized("Total debited", "£66.62")) + .event("Instructed", "07 Jul 2026, 08:12 BST", + "Collection request submitted to the scheme.") + .event("In clearing", "08 Jul 2026, 09:00 BST", + "Three-working-day Bacs cycle.") + .event("Settled", "09 Jul 2026, 06:30 BST", + "Funds debited and confirmed by the receiving bank.") + .note("Keep this confirmation for your records. It is not a tax invoice.") + .verification("https://example.com/verify/NWP-4821-0067", + "Scan to check this confirmation against the issuing records.") + .supportLine("Support +44 20 0000 0000") + .supportLine("help@northwind-pay.example") + .legalNote("Northwind Pay is a fictional institution used in GraphCompose " + + "examples; every name, account, and reference on this page is " + + "invented.")); + } +} diff --git a/qa/src/test/resources/visual-baselines/receipt-layered/modern_receipt-page-0.png b/qa/src/test/resources/visual-baselines/receipt-layered/modern_receipt-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..82ebd8d1c262433a544054b71b8bb00318c7abc1 GIT binary patch literal 81232 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 classpath variant covers glyphs a template ships with. This one + * covers the glyph a template is given — a receipt's issuer mark, + * a report's client logo — which arrives as a file next to the running + * application rather than repackaged into its jar.

+ * + *

Not cached, unlike {@link #fromResource(String)}. A + * classpath entry cannot change while the JVM runs and the key space is the + * jar's; a file can be replaced, and the key space is whatever paths a + * caller passes — a service rendering for a hundred issuers would hold a + * hundred glyphs for its lifetime and keep serving the logo each one had + * when it started. Callers that load the same mark per document should hold + * the returned glyph themselves; it is immutable and safe to share.

+ * + * @param file path to the SVG file + * @return the recolorable glyph + * @throws IllegalStateException if the file does not exist + * @throws UncheckedIOException if the file cannot be read + * @since 2.1.2 + */ + public static SvgGlyph fromFile(Path file) { + Objects.requireNonNull(file, "file"); + if (!Files.isRegularFile(file)) { + throw new IllegalStateException("Missing glyph file: " + file); + } + try { + return flatten(SvgIcon.parse(Files.readString(file, StandardCharsets.UTF_8)), + file.toString()); + } catch (IOException e) { + throw new UncheckedIOException("Failed to read glyph file: " + file, e); + } + } + private static SvgGlyph load(String resourcePath) { try (InputStream input = SvgGlyph.class.getResourceAsStream(resourcePath)) { if (input == null) { throw new IllegalStateException("Missing CV glyph resource: " + resourcePath); } - SvgIcon icon = SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); - List filled = new ArrayList<>(); - for (SvgIcon.Layer layer : icon.layers()) { - if (isInkFill(layer.fill()) || layer.fillPaint() != null) { - filled.addAll(layer.geometry().segments()); - } - } - if (filled.isEmpty()) { - // Stroke-only / unfilled icon: keep every path so the glyph - // still renders as a filled silhouette rather than vanishing. - for (SvgIcon.Layer layer : icon.layers()) { - filled.addAll(layer.geometry().segments()); - } - } - if (filled.isEmpty()) { - throw new IllegalStateException("CV glyph has no drawable geometry: " + resourcePath); - } - return new SvgGlyph(List.copyOf(filled), icon.aspectRatio()); + return flatten(SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)), + resourcePath); } catch (IOException e) { throw new UncheckedIOException("Failed to read CV glyph: " + resourcePath, e); } } + private static SvgGlyph flatten(SvgIcon icon, String source) { + List filled = new ArrayList<>(); + for (SvgIcon.Layer layer : icon.layers()) { + if (isInkFill(layer.fill()) || layer.fillPaint() != null) { + filled.addAll(layer.geometry().segments()); + } + } + if (filled.isEmpty()) { + // Stroke-only / unfilled icon: keep every path so the glyph + // still renders as a filled silhouette rather than vanishing. + for (SvgIcon.Layer layer : icon.layers()) { + filled.addAll(layer.geometry().segments()); + } + } + if (filled.isEmpty()) { + throw new IllegalStateException("Glyph has no drawable geometry: " + source); + } + return new SvgGlyph(List.copyOf(filled), icon.aspectRatio()); + } + /** * Reports whether a fill is "ink" (part of the glyph) rather than a * near-white background. Many svgrepo icons wrap the figure in a full-box diff --git a/templates/src/main/java/com/demcha/compose/document/templates/core/theme/BrandTheme.java b/templates/src/main/java/com/demcha/compose/document/templates/core/theme/BrandTheme.java index 64743a6e1..9439665c3 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/core/theme/BrandTheme.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/core/theme/BrandTheme.java @@ -357,6 +357,25 @@ public static BrandTheme proposalModern() { Spacing.invoiceModern(), Decoration.classic()); } + + /** + * The "Modern Receipt" look — a fintech statement: Helvetica on a white + * page, near-black ink, one grey for every label, hairline rules between + * field rows, and a barely-tinted panel behind a very large amount. + * + *

Deliberately carries no brand colour of its own. An issuer's accent + * is supplied per document through {@code ModernReceipt.Options}, so one + * theme serves every bank rather than one theme per bank.

+ * + * @return a {@code BrandTheme} for the "Modern Receipt" look + */ + public static BrandTheme receiptModern() { + return new BrandTheme( + Palette.receiptModern(), + Typography.receiptModern(), + Spacing.receiptModern(), + Decoration.classic()); + } // -- pre-built text-style helpers ------------------------------------ // Renderers ask the theme for an already-composed DocumentTextStyle // instead of re-assembling font + size + decoration + colour every diff --git a/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Palette.java b/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Palette.java index e2ab093fc..793a4ea5d 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Palette.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Palette.java @@ -319,4 +319,26 @@ public static Palette invoiceModern() { DocumentColor.rgb(244, 238, 228), // banner — soft-tan hero panel / zebra (modern surfaceMuted) DocumentColor.rgb(252, 248, 240)); // mainFill — cream surface + page background (modern surface) } + + /** + * Modern Receipt palette: near-black ink on a white page, one grey for + * metadata, a hairline rule that reads as a separator rather than as a + * border, and a barely-there panel fill behind the hero amount. + * + *

The restraint is the point. A statement is read for its numbers, so + * everything that is not a number is pushed down the contrast ladder — + * and it leaves the accent colour, which each issuer supplies through + * {@code ModernReceipt.Options}, the only saturated thing on the + * page.

+ * + * @return a {@code Palette} for the Modern Receipt flavour + */ + public static Palette receiptModern() { + return new Palette( + DocumentColor.rgb(13, 15, 20), // ink — amount, values, titles + DocumentColor.rgb(122, 127, 138), // muted — labels, captions, small print + DocumentColor.rgb(228, 231, 236), // rule — hairlines between field rows + DocumentColor.rgb(246, 247, 249), // banner — hero panel and party cards + DocumentColor.WHITE); // mainFill — the page + } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Spacing.java b/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Spacing.java index 6ce6bc70b..faba25442 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Spacing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Spacing.java @@ -528,4 +528,35 @@ public static Spacing invoiceModern() { 0.45, // entryDateWeight 3.0); // entrySeparation } + + /** + * Modern Receipt spacing: roomy blocks, tight rows. + * + *

Two tokens carry a receipt-specific reading. {@code accentRuleWidth} + * is the hairline under each field row rather than a wide accent strip — + * on this layout the rule separates rows, it does not decorate a panel. + * {@code entryTitleWeight} and {@code entryDateWeight} split each field + * row into its label and value columns, and they are equal because a + * receipt's values (account numbers, transaction ids) run as long as its + * labels.

+ * + * @return a {@code Spacing} scale for the Modern Receipt preset + */ + public static Spacing receiptModern() { + return new Spacing( + 16, // pageFlowSpacing (gap between blocks) + 5, // sectionBodySpacing + DocumentInsets.zero(), // sectionBodyPadding + DocumentInsets.zero(), // headlinePadding + DocumentInsets.zero(), // contactPadding + 12.0, // bannerCornerRadius (hero panel + party cards) + 16.0, // bannerInnerPadding (hero panel padding) + DocumentInsets.zero(), // bannerMargin + 0.6, // accentRuleWidth (field-row hairline) + 2.0, // paragraphMarginTop + 12.0, // entryHeaderRowSpacing (label/value column gap) + 1.0, // entryTitleWeight (label column) + 1.0, // entryDateWeight (value column) + 6.0); // entrySeparation + } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Typography.java b/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Typography.java index 7e0b5eda9..0b176f121 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Typography.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/core/theme/Typography.java @@ -404,4 +404,33 @@ public static Typography proposalModern() { 11.0, // body (summary, sections, parties, cells — modern body) 1.3); // line spacing } + + /** + * Helvetica scale for the Modern Receipt preset — a fintech statement + * ladder, which inverts the usual one: on a receipt the largest thing on + * the page is the amount, not the title. + * + *

So {@code sizeHeadline} carries the hero amount at 30pt and the + * document title takes the {@code entryTitle} slot at 14pt. Field values + * sit in {@code entryDate} — a receipt's right-hand column is the same + * kind of column a CV puts dates in — and the spaced-caps group headings + * and eyebrow labels take the small {@code banner} slot.

+ * + * @return a {@code Typography} scale for the Modern Receipt preset + */ + public static Typography receiptModern() { + return new Typography( + // Both slots name the family, not a face: every receipt style sets + // its own decoration, and naming HELVETICA_BOLD here would be the + // face arriving twice. + FontName.HELVETICA, FontName.HELVETICA, + 30.0, // headline (hero amount — the largest thing on the page) + 8.0, // contact (footer small print + support lines) + 8.0, // banner (spaced-caps group headings and eyebrow labels) + 14.0, // entry title (document title, party names) + 10.0, // entry date (field values in the right-hand column) + 8.8, // entry subtitle (captions under the amount and the title) + 9.6, // body (notes, address lines) + 1.35); // line spacing + } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptData.java b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptData.java new file mode 100644 index 000000000..3ee04ef0e --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptData.java @@ -0,0 +1,418 @@ +package com.demcha.compose.document.templates.data.receipt; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.function.Consumer; + +/** + * Display-oriented payment receipt input — a transfer confirmation, a direct + * debit advice, a card payment receipt. + * + *

Everything here is display text the issuing system already decided. + * Amounts arrive formatted with their currency, dates arrive in the locale + * the issuer prints them in, and account identifiers arrive masked or not as + * the issuer chose. A receipt is a restatement of a settled fact, so the + * template's job is to lay that fact out, never to compute or reformat + * it.

+ * + *

The optional blocks — timeline, notes, support lines, verification URL + * — are what separates a receipt somebody keeps from one that only proves a + * number. Leave any of them empty and the preset drops the block rather than + * rendering an empty heading.

+ * + * @param documentTitle heading of the document, for example + * {@code Transfer confirmation} + * @param issuerName the institution that issued the receipt + * @param generatedOn when this copy was produced, already formatted + * @param reference the issuer's own reference for the payment, shown + * beside the title + * @param amountLabel caption above the amount, for example + * {@code Amount sent} + * @param amount the amount, formatted with its currency + * @param amountCaption one line under the amount naming the instrument or + * the counterparty + * @param status the payment's status and tone + * @param summaryFields the two-to-four facts shown beside the amount + * (value date, operation date, scheme) + * @param payerLabel caption over the paying side, for example + * {@code From} + * @param payer the paying side + * @param beneficiaryLabel caption over the receiving side, for example + * {@code To} + * @param beneficiary the receiving side + * @param detailGroups titled blocks of label/value rows + * @param timeline the payment's steps, oldest first; empty to omit + * @param notes free-text notes shown under the details + * @param verificationUrl URL encoded into the footer QR code; empty to omit + * @param verificationText one line explaining what the QR code leads to + * @param supportLines how to reach the issuer, one entry per line + * @param legalNote the small print block at the foot of the page + */ +public record ReceiptData( + String documentTitle, + String issuerName, + String generatedOn, + String reference, + String amountLabel, + String amount, + String amountCaption, + ReceiptStatus status, + List summaryFields, + String payerLabel, + ReceiptParty payer, + String beneficiaryLabel, + ReceiptParty beneficiary, + List detailGroups, + List timeline, + List notes, + String verificationUrl, + String verificationText, + List supportLines, + String legalNote) { + + /** + * Normalizes optional text, defaults the two party captions, and freezes + * every collection input. + */ + public ReceiptData { + documentTitle = Objects.requireNonNullElse(documentTitle, "Payment receipt"); + issuerName = Objects.requireNonNullElse(issuerName, ""); + generatedOn = Objects.requireNonNullElse(generatedOn, ""); + reference = Objects.requireNonNullElse(reference, ""); + amountLabel = Objects.requireNonNullElse(amountLabel, "Amount"); + amount = Objects.requireNonNullElse(amount, ""); + amountCaption = Objects.requireNonNullElse(amountCaption, ""); + status = Objects.requireNonNullElse(status, new ReceiptStatus("", null)); + summaryFields = List.copyOf(Objects.requireNonNullElse(summaryFields, List.of())); + payerLabel = blankTo(payerLabel, "From"); + beneficiaryLabel = blankTo(beneficiaryLabel, "To"); + detailGroups = List.copyOf(Objects.requireNonNullElse(detailGroups, List.of())); + timeline = List.copyOf(Objects.requireNonNullElse(timeline, List.of())); + notes = List.copyOf(Objects.requireNonNullElse(notes, List.of())); + verificationUrl = Objects.requireNonNullElse(verificationUrl, ""); + verificationText = Objects.requireNonNullElse(verificationText, ""); + supportLines = List.copyOf(Objects.requireNonNullElse(supportLines, List.of())); + legalNote = Objects.requireNonNullElse(legalNote, ""); + } + + private static String blankTo(String value, String fallback) { + return value == null || value.isBlank() ? fallback : value; + } + + /** + * Reports whether a paying side was supplied. + * + * @return {@code true} when the payer carries a name or any row + */ + public boolean hasPayer() { + return isPresent(payer); + } + + /** + * Reports whether a receiving side was supplied. + * + * @return {@code true} when the beneficiary carries a name or any row + */ + public boolean hasBeneficiary() { + return isPresent(beneficiary); + } + + private static boolean isPresent(ReceiptParty party) { + return party != null + && (!party.name().isBlank() || !party.fields().isEmpty() || !party.addressLines().isEmpty()); + } + + /** + * Starts a fluent receipt data builder. + * + * @return receipt data builder + */ + public static Builder builder() { + return new Builder(); + } + + /** + * Fluent builder for complete receipt content. + */ + public static final class Builder { + private String documentTitle; + private String issuerName; + private String generatedOn; + private String reference; + private String amountLabel; + private String amount; + private String amountCaption; + private ReceiptStatus status; + private final List summaryFields = new ArrayList<>(); + private String payerLabel; + private ReceiptParty payer; + private String beneficiaryLabel; + private ReceiptParty beneficiary; + private final List detailGroups = new ArrayList<>(); + private final List timeline = new ArrayList<>(); + private final List notes = new ArrayList<>(); + private String verificationUrl; + private String verificationText; + private final List supportLines = new ArrayList<>(); + private String legalNote; + + private Builder() { + } + + /** + * Sets the document heading. + * + * @param documentTitle heading text + * @return this builder + */ + public Builder documentTitle(String documentTitle) { + this.documentTitle = documentTitle; + return this; + } + + /** + * Sets the issuing institution's name. + * + * @param issuerName issuer name + * @return this builder + */ + public Builder issuerName(String issuerName) { + this.issuerName = issuerName; + return this; + } + + /** + * Sets when this copy was produced. + * + * @param generatedOn formatted generation date + * @return this builder + */ + public Builder generatedOn(String generatedOn) { + this.generatedOn = generatedOn; + return this; + } + + /** + * Sets the issuer's reference for the payment. + * + * @param reference reference text + * @return this builder + */ + public Builder reference(String reference) { + this.reference = reference; + return this; + } + + /** + * Sets the hero amount and the caption above it. + * + * @param label caption above the amount + * @param amount amount formatted with its currency + * @return this builder + */ + public Builder amount(String label, String amount) { + this.amountLabel = label; + this.amount = amount; + return this; + } + + /** + * Sets the line under the amount. + * + * @param amountCaption instrument or counterparty line + * @return this builder + */ + public Builder amountCaption(String amountCaption) { + this.amountCaption = amountCaption; + return this; + } + + /** + * Sets the payment status. + * + * @param status status label and tone + * @return this builder + */ + public Builder status(ReceiptStatus status) { + this.status = status; + return this; + } + + /** + * Sets the payment status from a label and a tone. + * + * @param label the issuer's status word + * @param tone how that word reads + * @return this builder + */ + public Builder status(String label, ReceiptStatusTone tone) { + return status(new ReceiptStatus(label, tone)); + } + + /** + * Appends a fact shown beside the amount. + * + * @param label field caption + * @param value field value + * @return this builder + */ + public Builder summaryField(String label, String value) { + summaryFields.add(ReceiptField.of(label, value)); + return this; + } + + /** + * Sets the paying side. + * + * @param label caption over the block + * @param spec party builder callback + * @return this builder + */ + public Builder payer(String label, Consumer spec) { + this.payerLabel = label; + this.payer = build(spec); + return this; + } + + /** + * Sets the receiving side. + * + * @param label caption over the block + * @param spec party builder callback + * @return this builder + */ + public Builder beneficiary(String label, Consumer spec) { + this.beneficiaryLabel = label; + this.beneficiary = build(spec); + return this; + } + + private static ReceiptParty build(Consumer spec) { + ReceiptParty.Builder builder = ReceiptParty.builder(); + if (spec != null) { + spec.accept(builder); + } + return builder.build(); + } + + /** + * Appends a titled block of label/value rows. + * + * @param title group heading + * @param spec group builder callback + * @return this builder + */ + public Builder detailGroup(String title, Consumer spec) { + ReceiptFieldGroup.Builder builder = ReceiptFieldGroup.builder(title); + if (spec != null) { + spec.accept(builder); + } + detailGroups.add(builder.build()); + return this; + } + + /** + * Appends a prepared field group. + * + * @param group field group + * @return this builder + */ + public Builder addDetailGroup(ReceiptFieldGroup group) { + detailGroups.add(Objects.requireNonNull(group, "group")); + return this; + } + + /** + * Appends a step to the payment timeline. + * + * @param label step name + * @param timestamp formatted timestamp + * @param detail optional explanation + * @return this builder + */ + public Builder event(String label, String timestamp, String detail) { + timeline.add(new ReceiptEvent(label, timestamp, detail)); + return this; + } + + /** + * Appends a note shown under the detail groups. + * + * @param note note text + * @return this builder + */ + public Builder note(String note) { + if (note != null && !note.isBlank()) { + notes.add(note); + } + return this; + } + + /** + * Sets the footer QR code target and the line that explains it. + * + * @param url URL encoded into the QR code + * @param text one-line explanation printed beside it + * @return this builder + */ + public Builder verification(String url, String text) { + this.verificationUrl = url; + this.verificationText = text; + return this; + } + + /** + * Appends a support contact line. + * + * @param line contact line + * @return this builder + */ + public Builder supportLine(String line) { + if (line != null && !line.isBlank()) { + supportLines.add(line); + } + return this; + } + + /** + * Sets the small-print block at the foot of the page. + * + * @param legalNote legal text + * @return this builder + */ + public Builder legalNote(String legalNote) { + this.legalNote = legalNote; + return this; + } + + /** + * Builds immutable receipt data. + * + * @return receipt data + */ + public ReceiptData build() { + return new ReceiptData( + documentTitle, + issuerName, + generatedOn, + reference, + amountLabel, + amount, + amountCaption, + status, + summaryFields, + payerLabel, + payer, + beneficiaryLabel, + beneficiary, + detailGroups, + timeline, + notes, + verificationUrl, + verificationText, + supportLines, + legalNote); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptDocumentSpec.java b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptDocumentSpec.java new file mode 100644 index 000000000..a68fb3ce1 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptDocumentSpec.java @@ -0,0 +1,54 @@ +package com.demcha.compose.document.templates.data.receipt; + +import java.util.function.Consumer; + +/** + * Public compose-first payment receipt input. + * + *

Authoring role: gives callers one document-level object to pass + * to receipt templates, the same way {@code InvoiceDocumentSpec} does for + * invoices.

+ * + *

Unlike the invoice spec this one does not re-declare the payload's + * builder methods. A receipt spec carries exactly one payload and + * {@link ReceiptData#builder()} is already its fluent surface, so mirroring + * twenty setters here would add a second place to keep in step for no + * additional reach — {@link #of(Consumer)} gives the same one-expression + * authoring.

+ * + * @param receipt normalized receipt content rendered by receipt templates + */ +public record ReceiptDocumentSpec(ReceiptData receipt) { + + /** + * Creates a normalized receipt document spec. + */ + public ReceiptDocumentSpec { + receipt = receipt == null ? ReceiptData.builder().build() : receipt; + } + + /** + * Wraps existing receipt data in the document-level spec expected by + * receipt templates. + * + * @param receipt receipt data + * @return document spec + */ + public static ReceiptDocumentSpec from(ReceiptData receipt) { + return new ReceiptDocumentSpec(receipt); + } + + /** + * Builds receipt data inline and wraps it. + * + * @param spec receipt data builder callback + * @return document spec + */ + public static ReceiptDocumentSpec of(Consumer spec) { + ReceiptData.Builder builder = ReceiptData.builder(); + if (spec != null) { + spec.accept(builder); + } + return new ReceiptDocumentSpec(builder.build()); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptEvent.java b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptEvent.java new file mode 100644 index 000000000..4db422016 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptEvent.java @@ -0,0 +1,38 @@ +package com.demcha.compose.document.templates.data.receipt; + +import java.util.Objects; + +/** + * One step in a payment's life — {@code Instructed}, {@code Sent to the + * clearing scheme}, {@code Settled}. + * + *

The step a payment reached is the question a support agent is asked + * about a receipt, and the source document usually answers it with a single + * status word. Carrying the steps lets a template show the whole run.

+ * + * @param label step name + * @param timestamp when the step happened, already formatted for display + * @param detail optional one-line explanation shown under the step + */ +public record ReceiptEvent(String label, String timestamp, String detail) { + + /** + * Normalizes every field to non-null display text. + */ + public ReceiptEvent { + label = Objects.requireNonNullElse(label, ""); + timestamp = Objects.requireNonNullElse(timestamp, ""); + detail = Objects.requireNonNullElse(detail, ""); + } + + /** + * Creates a step with no explanatory line. + * + * @param label step name + * @param timestamp formatted timestamp + * @return receipt event + */ + public static ReceiptEvent of(String label, String timestamp) { + return new ReceiptEvent(label, timestamp, ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptField.java b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptField.java new file mode 100644 index 000000000..cd3c585e3 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptField.java @@ -0,0 +1,49 @@ +package com.demcha.compose.document.templates.data.receipt; + +import java.util.Objects; + +/** + * One label/value pair on a payment receipt — {@code Value date → 07 Jul 2026}, + * {@code Sort code → 04-00-75}. + * + *

The value is display text, already formatted by the caller: a receipt + * restates what a payment system decided, so the template never parses an + * amount, a date, or an account number, and never reformats one.

+ * + * @param label field caption shown in the left column + * @param value field value shown in the right column + * @param emphasized whether the value renders in the emphasised weight — + * used for the one field per group a reader looks for first + */ +public record ReceiptField(String label, String value, boolean emphasized) { + + /** + * Normalizes both sides to non-null display text. + */ + public ReceiptField { + label = Objects.requireNonNullElse(label, ""); + value = Objects.requireNonNullElse(value, ""); + } + + /** + * Creates a plain field. + * + * @param label field caption + * @param value field value + * @return an unemphasised field + */ + public static ReceiptField of(String label, String value) { + return new ReceiptField(label, value, false); + } + + /** + * Creates a field whose value renders in the emphasised weight. + * + * @param label field caption + * @param value field value + * @return an emphasised field + */ + public static ReceiptField emphasized(String label, String value) { + return new ReceiptField(label, value, true); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptFieldGroup.java b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptFieldGroup.java new file mode 100644 index 000000000..4bd5da2d5 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptFieldGroup.java @@ -0,0 +1,93 @@ +package com.demcha.compose.document.templates.data.receipt; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * A titled block of {@link ReceiptField} rows — {@code Transfer details}, + * {@code Beneficiary details}, {@code Fees and charges}. + * + *

A receipt is a sequence of these plus one amount; giving the group its + * own record is what lets a caller add a block the template has never heard + * of without touching the preset.

+ * + * @param title group heading + * @param fields rows inside the group + */ +public record ReceiptFieldGroup(String title, List fields) { + + /** + * Normalizes the title and freezes the row list. + */ + public ReceiptFieldGroup { + title = Objects.requireNonNullElse(title, ""); + fields = List.copyOf(Objects.requireNonNullElse(fields, List.of())); + } + + /** + * Starts a fluent group builder. + * + * @param title group heading + * @return group builder + */ + public static Builder builder(String title) { + return new Builder(title); + } + + /** + * Fluent builder for a titled field group. + */ + public static final class Builder { + private final String title; + private final List fields = new ArrayList<>(); + + private Builder(String title) { + this.title = title; + } + + /** + * Appends a plain row. + * + * @param label field caption + * @param value field value + * @return this builder + */ + public Builder field(String label, String value) { + fields.add(ReceiptField.of(label, value)); + return this; + } + + /** + * Appends a row whose value renders in the emphasised weight. + * + * @param label field caption + * @param value field value + * @return this builder + */ + public Builder emphasized(String label, String value) { + fields.add(ReceiptField.emphasized(label, value)); + return this; + } + + /** + * Appends a prepared row. + * + * @param field field row + * @return this builder + */ + public Builder add(ReceiptField field) { + fields.add(Objects.requireNonNull(field, "field")); + return this; + } + + /** + * Builds the immutable group. + * + * @return field group + */ + public ReceiptFieldGroup build() { + return new ReceiptFieldGroup(title, fields); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptParty.java b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptParty.java new file mode 100644 index 000000000..1ea74097a --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptParty.java @@ -0,0 +1,100 @@ +package com.demcha.compose.document.templates.data.receipt; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * One side of a transfer — who sent the money, or who received it. + * + *

The account rows are {@link ReceiptField}s rather than named accessors + * because what identifies an account is regional: a UK payment shows a sort + * code and an account number, a SEPA payment an IBAN and a BIC, a domestic US + * one a routing number. A named field per scheme would leave every template + * rendering blanks for the schemes it was not written for.

+ * + * @param name account holder or beneficiary name + * @param addressLines optional postal address, one entry per line + * @param fields account identification rows (sort code, IBAN, …) + */ +public record ReceiptParty(String name, List addressLines, List fields) { + + /** + * Normalizes the name and freezes both lists. + */ + public ReceiptParty { + name = Objects.requireNonNullElse(name, ""); + addressLines = List.copyOf(Objects.requireNonNullElse(addressLines, List.of())); + fields = List.copyOf(Objects.requireNonNullElse(fields, List.of())); + } + + /** + * Starts a fluent party builder. + * + * @return party builder + */ + public static Builder builder() { + return new Builder(); + } + + /** + * Fluent builder for one side of a transfer. + */ + public static final class Builder { + private String name; + private final List addressLines = new ArrayList<>(); + private final List fields = new ArrayList<>(); + + private Builder() { + } + + /** + * Sets the account holder or beneficiary name. + * + * @param name display name + * @return this builder + */ + public Builder name(String name) { + this.name = name; + return this; + } + + /** + * Appends address lines. + * + * @param lines address lines, one per rendered line + * @return this builder + */ + public Builder addressLines(String... lines) { + if (lines != null) { + for (String line : lines) { + if (line != null && !line.isBlank()) { + addressLines.add(line); + } + } + } + return this; + } + + /** + * Appends an account identification row. + * + * @param label field caption (for example {@code Sort code}) + * @param value field value + * @return this builder + */ + public Builder field(String label, String value) { + fields.add(ReceiptField.of(label, value)); + return this; + } + + /** + * Builds the immutable party. + * + * @return receipt party + */ + public ReceiptParty build() { + return new ReceiptParty(name, addressLines, fields); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptStatus.java b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptStatus.java new file mode 100644 index 000000000..6e9a6d918 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptStatus.java @@ -0,0 +1,52 @@ +package com.demcha.compose.document.templates.data.receipt; + +import java.util.Objects; + +/** + * The status shown on a receipt: the issuer's own word for it, plus the tone + * a template is allowed to colour on. + * + * @param label the issuer's status word, rendered verbatim + * @param tone how that word reads — see {@link ReceiptStatusTone} + */ +public record ReceiptStatus(String label, ReceiptStatusTone tone) { + + /** + * Normalizes the label and defaults a missing tone to + * {@link ReceiptStatusTone#IN_PROGRESS} — the reading that claims the + * least about a payment nobody described. + */ + public ReceiptStatus { + label = Objects.requireNonNullElse(label, ""); + tone = Objects.requireNonNullElse(tone, ReceiptStatusTone.IN_PROGRESS); + } + + /** + * Creates a settled status. + * + * @param label the issuer's word for it, for example {@code Completed} + * @return settled status + */ + public static ReceiptStatus settled(String label) { + return new ReceiptStatus(label, ReceiptStatusTone.SETTLED); + } + + /** + * Creates an in-progress status. + * + * @param label the issuer's word for it, for example {@code Processing} + * @return in-progress status + */ + public static ReceiptStatus inProgress(String label) { + return new ReceiptStatus(label, ReceiptStatusTone.IN_PROGRESS); + } + + /** + * Reports whether this status carries a label worth rendering. + * + * @return {@code true} when the label is non-blank + */ + public boolean hasLabel() { + return !label.isBlank(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptStatusTone.java b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptStatusTone.java new file mode 100644 index 000000000..d52a38474 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/ReceiptStatusTone.java @@ -0,0 +1,25 @@ +package com.demcha.compose.document.templates.data.receipt; + +/** + * How a receipt's status reads, independent of the word used for it. + * + *

Payment systems each have their own vocabulary — {@code Completed}, + * {@code Settled}, {@code Executed} all mean the money arrived. The tone is + * what a template can colour on; the label stays whatever the issuer calls + * it, so a template never has to recognise a status word to render it + * correctly.

+ */ +public enum ReceiptStatusTone { + + /** The payment reached its destination. */ + SETTLED, + + /** The payment is on its way and nothing is wrong. */ + IN_PROGRESS, + + /** The payment needs someone to look at it — held, returned, disputed. */ + ATTENTION, + + /** The payment did not happen — rejected, cancelled, failed. */ + FAILED +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/package-info.java new file mode 100644 index 000000000..2e1b0852a --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/receipt/package-info.java @@ -0,0 +1,15 @@ +/** + * Records describing a payment receipt — a transfer confirmation, a direct + * debit advice, a card payment receipt. + * + *

{@link com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec} + * is the document-level input; it wraps a + * {@link com.demcha.compose.document.templates.data.receipt.ReceiptData} + * carrying the hero amount, the two parties, the titled field groups, the + * status timeline, and the footer small print.

+ * + *

Every value in here is display text the issuing system already decided. + * These records hold no rendering, theming, or DSL dependency, which is what + * lets the same receipt render through any preset.

+ */ +package com.demcha.compose.document.templates.data.receipt; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/AUTHORS.md b/templates/src/main/java/com/demcha/compose/document/templates/receipt/AUTHORS.md new file mode 100644 index 000000000..dd07ffa98 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/AUTHORS.md @@ -0,0 +1,173 @@ +# Receipt family — recipe cookbook + +Everything here builds on `ModernReceipt`, the reference preset. Each +recipe is a change you can make without forking a widget. + +Read [`../../../../../../../../../docs/templates/v2-layered/authoring-presets.md`](../../../../../../../../../docs/templates/v2-layered/authoring-presets.md) +first if you have not — it explains why the layers look the way they do. + +--- + +## 0. The shortest complete receipt + +```java +ReceiptDocumentSpec spec = ReceiptDocumentSpec.of(receipt -> receipt + .documentTitle("Transfer confirmation") + .issuerName("Northwind Pay") + .generatedOn("09 August 2026") + .amount("Amount sent", "£66.62") + .status(ReceiptStatus.settled("Completed")) + .payer("Paid from", p -> p.name("Alex Sample").field("Account", "•••• 4396")) + .beneficiary("Paid to", p -> p.name("Harbour Finance Ltd"))); + +BrandTheme theme = BrandTheme.receiptModern(); +float m = (float) ModernReceipt.RECOMMENDED_MARGIN; +try (DocumentSession document = GraphCompose.document(out) + .pageSize(DocumentPageSize.A4) + .pageBackground(theme.palette().mainFill()) + .margin(m, m, m, m) + .create()) { + ModernReceipt.create(theme).compose(document, spec); + document.buildPdf(); +} +``` + +Every block you did not fill — detail groups, timeline, notes, QR code — +drops out rather than rendering an empty heading. + +--- + +## 1. Brand it for a different issuer + +The theme carries **no** brand colour. An issuer arrives through +`Options`: + +```java +ModernReceipt.Options options = ModernReceipt.Options + .branded(SvgGlyph.fromResource("/brand/northwind-pay-mark.svg"), + DocumentColor.rgb(23, 92, 211)) + .withLogoWidth(14) // a symbol mark, sized to the name beside it + .withLogoColor(DocumentColor.rgb(23, 92, 211)); + +ModernReceipt.create(BrandTheme.receiptModern(), options); +``` + +The accent reaches the hero's left strip, the direction arrow between the +parties, the reached step of the status trail, and an in-progress status +chip. Nothing else is tinted — which is what keeps the numbers readable. + +**Wordmark instead of a symbol?** Leave `issuerName` blank in the data and +size the mark to its real width: + +```java +ModernReceipt.Options.branded(SvgGlyph.fromFile(Path.of("brand/acme.svg")), accent) + .withLogoWidth(78) + .withLogoColor(DocumentColor.rgb(13, 15, 20)); +``` + +`SvgGlyph` flattens the file's filled layers into one recolourable +silhouette, so a single logo file serves a dark mark on white and a light +one on a dark page. + +--- + +## 2. Add a block the template has never heard of + +A detail group is just a title and rows: + +```java +receipt.detailGroup("Fees and charges", group -> group + .field("Correspondent fee", "£3.50") + .field("FX margin", "0.35%") + .emphasized("Total charged", "£70.47")); +``` + +`emphasized` sets the value in the bold weight — use it for the one row per +group a reader looks for first. Groups render in the order you add them, +each keeping together across a page break. + +--- + +## 3. Say what your payment system says + +`ReceiptStatus` carries the issuer's own word plus the tone a template may +colour on: + +```java +receipt.status("Being processed", ReceiptStatusTone.IN_PROGRESS); +receipt.status("Returned by the beneficiary bank", ReceiptStatusTone.ATTENTION); +receipt.status("Rejected", ReceiptStatusTone.FAILED); +``` + +Settled is green, attention amber, failed red, in-progress the issuer's +accent — in every theme. That is deliberate: a reader checking whether +money arrived should not have to learn a colour scheme per bank. + +--- + +## 4. Show how the payment got there + +```java +receipt.event("Instructed", "07 Jul 2026, 08:12 BST", "Submitted to the scheme.") + .event("In clearing", "08 Jul 2026, 09:00 BST", "Three-working-day Bacs cycle.") + .event("Settled", "09 Jul 2026, 06:30 BST", "Confirmed by the receiving bank."); +``` + +Steps render oldest first; the last one takes the accent dot, so the eye +lands on where the payment got to without reading a timestamp. Rename the +heading with `Options.withTimelineTitle("Where it got to")`, or pass no +events at all and the block disappears. + +--- + +## 5. Make it verifiable + +```java +receipt.verification("https://pay.example.com/v/NWP-4821-0067", + "Scan to check this confirmation against our records.") + .supportLine("Support +44 20 0000 0000") + .supportLine("help@example.com") + .legalNote("…registered in England and Wales…"); +``` + +These three make up the footer, which the preset seats on the bottom +margin when the receipt owns the document. The QR code encodes the URL +verbatim — it is what makes a printed copy resolvable again. + +--- + +## 6. Change the look without touching a widget + +Every size, colour, and gap comes from the `BrandTheme`. To make a denser +receipt, build a theme from the shipped parts and swap the one you want: + +```java +BrandTheme dense = new BrandTheme( + Palette.receiptModern(), + Typography.receiptModern(), + Spacing.invoiceModern(), // tighter block rhythm + Decoration.classic()); +ModernReceipt.create(dense, options); +``` + +The slots carry receipt-specific readings worth knowing: + +| Token | On a receipt it is | +|---|---| +| `typography.sizeHeadline` | the hero **amount** — the largest thing on the page | +| `typography.sizeEntryTitle` | the document title and the party names | +| `typography.sizeEntryDate` | field values in the right-hand column | +| `typography.sizeBanner` | spaced-caps group headings and eyebrow labels | +| `spacing.accentRuleWidth` | the hairline rules, not a wide accent strip | +| `spacing.bannerCornerRadius` | the corner radius of the hero and party panels | + +--- + +## 7. Put a receipt inside a bigger document + +`compose` seats the footer on the bottom margin by re-composing once — and +that clears the session, so it only happens when the session was empty +when you called it. Compose a cover page first and the receipt still +renders correctly; its footer simply flows after the body instead of +pinning. The page-number chrome is installed either way, and a caller who +wants different chrome sets it after composing. diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/FieldRowRenderer.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/FieldRowRenderer.java new file mode 100644 index 000000000..06e5ccbae --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/FieldRowRenderer.java @@ -0,0 +1,156 @@ +package com.demcha.compose.document.templates.receipt.components; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentLineCap; +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.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptField; + +import java.util.List; +import java.util.Objects; + +/** + * Field rows in the two forms a receipt needs. + * + *

{@link #renderAll} is the full-width form: label on the left, value hard + * against the right edge, and a dotted leader stretched between them. The + * leader is the same construction the table-of-contents builder uses, and it + * is here for the same reason — across a full page width a bare label and a + * bare value read as two unrelated columns, and the reader has to track which + * value belongs to which row. Values right-align because that is what makes a + * column of them scannable: a reader comparing two account numbers compares + * their ends, not their beginnings.

+ * + *

{@link #renderInline} is the narrow form, and it exists for a hard engine + * rule rather than for taste: a row cannot contain another row, so fields + * sitting inside a column of the hero panel or of the party panel cannot use + * the leader form. They render as one paragraph per field, label and value on + * the same line in their own weights — which is legible at that width without + * a leader.

+ */ +public final class FieldRowRenderer { + + /** Gap under each row, in points. */ + private static final double ROW_BOTTOM_PADDING = 4.0; + + /** Horizontal gap between the label, the leader, and the value. */ + private static final double LEADER_GAP = 6.0; + + /** + * A bottom-aligned line lands on the descender line; lifting it by roughly + * the font's descent seats it on the text baseline. Same approximation the + * table-of-contents builder makes, for the same reason: the exact descent + * is a font metric the DSL layer cannot reach. + */ + private static final double LEADER_BASELINE_LIFT_RATIO = 0.2; + + private static final double LEADER_THICKNESS = 1.0; + + /** Dash pattern that renders as dots once the caps are rounded. */ + private static final double LEADER_DOT = 0.1; + + private static final double LEADER_DOT_GAP = 4.0; + + private FieldRowRenderer() { + } + + /** + * Renders every field of a block as a leader row. + * + * @param host section the rows are appended to + * @param fields rows to render; an empty list renders nothing + * @param theme active theme + */ + public static void renderAll(SectionBuilder host, List fields, BrandTheme theme) { + Objects.requireNonNull(host, "host"); + Objects.requireNonNull(theme, "theme"); + if (fields == null || fields.isEmpty()) { + return; + } + for (ReceiptField field : fields) { + render(host, field, theme); + } + } + + /** + * Renders every field as a single line each — the form to use inside a + * column that is already part of a row. + * + * @param host section the lines are appended to + * @param fields rows to render; an empty list renders nothing + * @param align where each line sits in its column + * @param theme active theme + */ + public static void renderInline(SectionBuilder host, List fields, + TextAlign align, BrandTheme theme) { + Objects.requireNonNull(host, "host"); + Objects.requireNonNull(theme, "theme"); + if (fields == null || fields.isEmpty()) { + return; + } + DocumentTextStyle labelStyle = ReceiptStyles.label(theme); + TextAlign lineAlign = align == null ? TextAlign.LEFT : align; + for (ReceiptField field : fields) { + DocumentTextStyle valueStyle = field.emphasized() + ? ReceiptStyles.valueStrong(theme) + : ReceiptStyles.value(theme); + host.addParagraph(p -> p + .inlineText(field.label() + " ", labelStyle) + .inlineText(field.value(), valueStyle) + .align(lineAlign) + .margin(DocumentInsets.zero())); + } + } + + /** + * Renders one leader row. + * + * @param host section the row is appended to + * @param field the label/value pair + * @param theme active theme + */ + public static void render(SectionBuilder host, ReceiptField field, BrandTheme theme) { + Objects.requireNonNull(host, "host"); + Objects.requireNonNull(field, "field"); + Objects.requireNonNull(theme, "theme"); + + DocumentTextStyle labelStyle = ReceiptStyles.label(theme); + DocumentTextStyle valueStyle = field.emphasized() + ? ReceiptStyles.valueStrong(theme) + : ReceiptStyles.value(theme); + double baselineLift = labelStyle.size() * LEADER_BASELINE_LIFT_RATIO; + + host.addRow("ReceiptFieldRow", row -> row + .gap(LEADER_GAP) + // Bottom-aligned so the leader lands on the row's baseline rather + // than riding along the top of the line. + .verticalAlign(RowVerticalAlign.BOTTOM) + .columns(DocumentRowColumn.auto(), + DocumentRowColumn.weight(1), + DocumentRowColumn.auto()) + .padding(new DocumentInsets(0, 0, ROW_BOTTOM_PADDING, 0)) + .addParagraph(p -> p + .text(field.label()) + .textStyle(labelStyle) + .margin(DocumentInsets.zero())) + .addLine(line -> line + .fill() + .stroke(DocumentStroke.of(theme.palette().rule(), LEADER_THICKNESS)) + .dashed(LEADER_DOT, LEADER_DOT_GAP) + .lineCap(DocumentLineCap.ROUND) + .margin(DocumentInsets.bottom(baselineLift))) + // No explicit right alignment: the column is auto-sized to the + // value, so the text already ends at the row's right edge — and + // asking for RIGHT here would make the paragraph claim the full + // row width, which an auto column cannot grant. + .addParagraph(p -> p + .text(field.value()) + .textStyle(valueStyle) + .margin(DocumentInsets.zero()))); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/ReceiptStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/ReceiptStyles.java new file mode 100644 index 000000000..521222474 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/ReceiptStyles.java @@ -0,0 +1,160 @@ +package com.demcha.compose.document.templates.receipt.components; + +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.document.templates.core.text.TextStyles; +import com.demcha.compose.document.templates.core.theme.BrandTheme; + +/** + * The text styles a receipt is built from, each composed once from the + * {@link BrandTheme}. + * + *

A receipt has few kinds of text but uses each of them many times: the + * same grey label appears on every field row, in both party cards, and on + * every timeline entry. Naming them once here is what keeps the widgets free + * of style plumbing, and what makes a change to the type scale a change to + * one file rather than to eight.

+ * + *

Every value reads from the theme — the receipt themes' + * {@link com.demcha.compose.document.templates.core.theme.Typography} slots + * are documented against these names.

+ */ +public final class ReceiptStyles { + + private ReceiptStyles() { + } + + /** + * Small spaced-caps caption above a block — {@code AMOUNT SENT}. + * + * @param theme active theme + * @return the eyebrow style + */ + public static DocumentTextStyle eyebrow(BrandTheme theme) { + return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeBanner(), + DocumentTextDecoration.DEFAULT, theme.palette().muted()); + } + + /** + * Spaced-caps heading over a field group — {@code TRANSFER DETAILS}. + * + * @param theme active theme + * @return the group-heading style + */ + public static DocumentTextStyle groupTitle(BrandTheme theme) { + return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeBanner(), + DocumentTextDecoration.BOLD, theme.palette().ink()); + } + + /** + * The document heading — {@code Transfer confirmation}. + * + * @param theme active theme + * @return the document-title style + */ + public static DocumentTextStyle title(BrandTheme theme) { + return TextStyles.of(theme.typography().headlineFont(), theme.typography().sizeEntryTitle(), + DocumentTextDecoration.BOLD, theme.palette().ink()); + } + + /** + * Quiet one-liner under a title or an amount. + * + * @param theme active theme + * @return the caption style + */ + public static DocumentTextStyle caption(BrandTheme theme) { + return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeEntrySubtitle(), + DocumentTextDecoration.DEFAULT, theme.palette().muted()); + } + + /** + * Left column of a field row. + * + * @param theme active theme + * @return the field-label style + */ + public static DocumentTextStyle label(BrandTheme theme) { + return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeEntryDate(), + DocumentTextDecoration.DEFAULT, theme.palette().muted()); + } + + /** + * Right column of a field row. + * + * @param theme active theme + * @return the field-value style + */ + public static DocumentTextStyle value(BrandTheme theme) { + return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeEntryDate(), + DocumentTextDecoration.DEFAULT, theme.palette().ink()); + } + + /** + * Right column of the one field row per group a reader looks for first. + * + * @param theme active theme + * @return the emphasised field-value style + */ + public static DocumentTextStyle valueStrong(BrandTheme theme) { + return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeEntryDate(), + DocumentTextDecoration.BOLD, theme.palette().ink()); + } + + /** + * The hero amount — the largest thing on the page. + * + * @param theme active theme + * @return the amount style + */ + public static DocumentTextStyle amount(BrandTheme theme) { + return TextStyles.of(theme.typography().headlineFont(), theme.typography().sizeHeadline(), + DocumentTextDecoration.BOLD, theme.palette().ink()); + } + + /** + * Account holder or beneficiary name inside a party card. + * + * @param theme active theme + * @return the party-name style + */ + public static DocumentTextStyle partyName(BrandTheme theme) { + return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeBody(), + DocumentTextDecoration.BOLD, theme.palette().ink()); + } + + /** + * Body prose — notes and address lines. + * + * @param theme active theme + * @return the body style + */ + public static DocumentTextStyle body(BrandTheme theme) { + return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeBody(), + DocumentTextDecoration.DEFAULT, theme.palette().ink()); + } + + /** + * Footer small print and support lines. + * + * @param theme active theme + * @return the small-print style + */ + public static DocumentTextStyle smallPrint(BrandTheme theme) { + return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeContact(), + DocumentTextDecoration.DEFAULT, theme.palette().muted()); + } + + /** + * Text inside the status pill, coloured by the caller. + * + * @param theme active theme + * @param color pill foreground, chosen from the status tone + * @return the status-pill text style + */ + public static DocumentTextStyle pill(BrandTheme theme, DocumentColor color) { + return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeBanner(), + DocumentTextDecoration.BOLD, color); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/StatusPill.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/StatusPill.java new file mode 100644 index 000000000..02f027706 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/StatusPill.java @@ -0,0 +1,96 @@ +package com.demcha.compose.document.templates.receipt.components; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptStatus; +import com.demcha.compose.document.templates.data.receipt.ReceiptStatusTone; + +import java.util.Objects; + +/** + * The rounded status chip — {@code Completed}, {@code Processing}, + * {@code Returned} — rendered as an inline highlight so the pill hugs its + * label instead of stretching across the column. + * + *

Why the tone colours live here and not in the theme

+ * + *

These four pairs are semantic, not cosmetic: a settled payment reads + * green and a failed one reads red in every brand's statement, and a reader + * checking whether money arrived should not have to learn a new colour per + * issuer. Putting them in {@code Palette} would invite a theme to make + * "failed" green, which is the one thing a receipt must never do.

+ * + *

The issuer's own accent still reaches the pill: an in-progress payment + * has no universal colour, so it takes the brand accent the caller + * supplies.

+ */ +public final class StatusPill { + + /** Settled: money arrived. */ + private static final DocumentColor SETTLED_INK = DocumentColor.rgb(13, 110, 74); + private static final DocumentColor SETTLED_FILL = DocumentColor.rgb(226, 244, 235); + + /** Attention: held, returned, disputed — someone has to look at it. */ + private static final DocumentColor ATTENTION_INK = DocumentColor.rgb(146, 94, 4); + private static final DocumentColor ATTENTION_FILL = DocumentColor.rgb(253, 243, 222); + + /** Failed: the payment did not happen. */ + private static final DocumentColor FAILED_INK = DocumentColor.rgb(176, 42, 34); + private static final DocumentColor FAILED_FILL = DocumentColor.rgb(251, 234, 233); + + /** Corner radius of the chip, in points — a full round on an 8pt label. */ + private static final double PILL_RADIUS = 9.0; + + private static final DocumentInsets PILL_PADDING = new DocumentInsets(3.5, 9, 3.5, 9); + + private StatusPill() { + } + + /** + * Renders the chip as its own paragraph. + * + * @param host section the chip is appended to + * @param status status label and tone; a blank label renders nothing + * @param accent the issuer's brand accent, used for in-progress payments + * @param align where the chip sits in its column + * @param theme active theme + */ + public static void render(SectionBuilder host, ReceiptStatus status, + DocumentColor accent, TextAlign align, BrandTheme theme) { + Objects.requireNonNull(host, "host"); + Objects.requireNonNull(theme, "theme"); + if (status == null || !status.hasLabel()) { + return; + } + DocumentColor ink = inkFor(status.tone(), accent, theme); + DocumentColor fill = fillFor(status.tone(), theme); + host.addParagraph(p -> p + .inlineHighlight(status.label(), ReceiptStyles.pill(theme, ink), + fill, PILL_RADIUS, PILL_PADDING) + .align(align == null ? TextAlign.LEFT : align) + .margin(DocumentInsets.zero())); + } + + private static DocumentColor inkFor(ReceiptStatusTone tone, DocumentColor accent, BrandTheme theme) { + return switch (tone) { + case SETTLED -> SETTLED_INK; + case ATTENTION -> ATTENTION_INK; + case FAILED -> FAILED_INK; + case IN_PROGRESS -> accent == null ? theme.palette().ink() : accent; + }; + } + + private static DocumentColor fillFor(ReceiptStatusTone tone, BrandTheme theme) { + return switch (tone) { + case SETTLED -> SETTLED_FILL; + case ATTENTION -> ATTENTION_FILL; + case FAILED -> FAILED_FILL; + // No universal colour for "on its way": the brand accent supplies the + // ink, and the theme's own panel fill keeps the chip legible under it. + case IN_PROGRESS -> theme.palette().banner(); + }; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/package-info.java new file mode 100644 index 000000000..3aa3f5840 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/components/package-info.java @@ -0,0 +1,17 @@ +/** + * Internal renderers behind the receipt widgets. + * + *

{@link com.demcha.compose.document.templates.receipt.components.ReceiptStyles} + * composes the family's text styles from the + * {@link com.demcha.compose.document.templates.core.theme.BrandTheme}; + * {@link com.demcha.compose.document.templates.receipt.components.FieldRowRenderer} + * draws one label/value row; and + * {@link com.demcha.compose.document.templates.receipt.components.StatusPill} + * draws the rounded status chip.

+ * + *

These take {@code (host, data, theme)} and hold no state. They are + * public because the widgets live in a sibling package, not because callers + * are expected to reach for them — compose a receipt through + * {@code receipt.presets} instead.

+ */ +package com.demcha.compose.document.templates.receipt.components; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/package-info.java new file mode 100644 index 000000000..958f999a4 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/package-info.java @@ -0,0 +1,45 @@ +/** + * The layered receipt template family — payment confirmations, + * transfer advices, card receipts. + * + *

Layers

+ * + *
+ * templates.data.receipt      records: amount, parties, field groups, timeline
+ *          │
+ * templates.core.theme        BrandTheme.receiptModern() — shared tokens
+ *          │
+ * receipt.components          ReceiptStyles · FieldRowRenderer · StatusPill
+ *          │
+ * receipt.widgets             ReceiptMasthead · AmountHero · PartyPair
+ *                             DetailGroup · StatusTrail · ReceiptFooter
+ *          │
+ * receipt.presets             ModernReceipt — sequences the blocks
+ * 
+ * + *

Authoring a receipt in four steps

+ * + *
    + *
  1. Describe the payment. Build a + * {@link com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec} + * — the amount and its caption, the status and its tone, the two + * parties, one titled group per block of details, and the steps the + * payment went through. Everything is display text; the template never + * formats a number or a date.
  2. + *
  3. Pick the theme. + * {@link com.demcha.compose.document.templates.core.theme.BrandTheme#receiptModern()} + * carries the statement look and deliberately no brand colour.
  4. + *
  5. Brand it. Load the issuer's mark with + * {@link com.demcha.compose.document.templates.core.identity.SvgGlyph#fromResource(String)} + * and pass it, with the accent, through + * {@code ModernReceipt.Options}.
  6. + *
  7. Compose and render. + * {@code ModernReceipt.create(theme, options).compose(session, spec)}, + * then {@code session.buildPdf()}.
  8. + *
+ * + *

Blocks with no data drop out, so the same preset renders a five-row + * card receipt and a full transfer confirmation with a timeline and a + * verification code.

+ */ +package com.demcha.compose.document.templates.receipt; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/ModernReceipt.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/ModernReceipt.java new file mode 100644 index 000000000..7966faa39 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/ModernReceipt.java @@ -0,0 +1,384 @@ +package com.demcha.compose.document.templates.receipt.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.output.DocumentHeaderFooter; +import com.demcha.compose.document.output.DocumentHeaderFooterZone; +import com.demcha.compose.document.snapshot.LayoutNodeSnapshot; +import com.demcha.compose.document.snapshot.LayoutSnapshot; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.identity.SvgGlyph; +import com.demcha.compose.document.templates.core.text.TextOrnaments; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptData; +import com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec; +import com.demcha.compose.document.templates.data.receipt.ReceiptFieldGroup; +import com.demcha.compose.document.templates.receipt.components.ReceiptStyles; +import com.demcha.compose.document.templates.receipt.widgets.AmountHero; +import com.demcha.compose.document.templates.receipt.widgets.DetailGroup; +import com.demcha.compose.document.templates.receipt.widgets.PartyPair; +import com.demcha.compose.document.templates.receipt.widgets.ReceiptFooter; +import com.demcha.compose.document.templates.receipt.widgets.ReceiptMasthead; +import com.demcha.compose.document.templates.receipt.widgets.StatusTrail; + +import java.util.Objects; + +/** + * Modern Receipt — the reference preset of the layered {@code receipt} + * family: a bank-grade transfer confirmation. + * + *

The page reads top to bottom in the order a reader asks the questions: + * who issued this and what is it (masthead), how much and did it go through + * (hero), between whom (party pair), on what terms (detail groups), how it + * got there (status trail), and how to check it (footer QR + small + * print).

+ * + *

What makes it a receipt rather than an invoice

+ * + *

An invoice asks for money and is built around a table of line items. A + * receipt reports money that already moved and is built around one number + * and its provenance — so the amount is set larger than the title, the + * status carries a coloured chip, and the detail blocks are hairline + * label/value rows rather than a bordered grid. Nothing on the page is + * computed: every value arrives formatted from the issuing system.

+ * + *

Branding

+ * + *

The theme carries no brand colour. An issuer's mark and accent arrive + * per document through {@link Options}, so one preset and one theme serve + * every bank — swap the glyph and the accent and the same code renders a + * different institution's confirmation.

+ * + *

Page chrome

+ * + *

{@code compose} installs a footer carrying {@code Page n of m}. A + * receipt is a document people print, file, and photograph, and a page that + * cannot say whether it is the whole story is a support call — so the + * pagination marker is part of this preset rather than something each caller + * remembers to add. It goes through the session's chrome API, which means a + * caller who wants a different footer sets one after composing.

+ */ +public final class ModernReceipt { + + /** + * Stable template identifier. + */ + public static final String ID = "receipt-modern"; + + /** + * Human-readable display name. + */ + public static final String DISPLAY_NAME = "Modern Receipt"; + + /** + * Recommended page margin (in points). Wider than the invoice preset's: + * the layout leans on white space rather than on rules, and a tight + * margin would undo that. + */ + public static final double RECOMMENDED_MARGIN = 34.0; + + /** Height reserved for the page-number footer, in points. */ + private static final float FOOTER_HEIGHT = 24f; + + /** + * Slack left unspent when the footer is pinned, in points. The measurement + * is exact to the layout's own arithmetic; this keeps a rounding difference + * from spilling the footer onto a second page. + */ + private static final double PIN_EPSILON = 0.5; + + /** + * Below this much free space, pinning is not worth a second composition + * pass — the footer is already close enough to the bottom margin to read as + * one. + */ + private static final double MIN_PIN_HEIGHT = 8.0; + + private ModernReceipt() { + } + + /** + * Per-document branding and wording knobs. + * + *

These are structural rather than cosmetic in the theme's sense: two + * receipts from two banks share every token in the + * {@link BrandTheme#receiptModern()} theme and differ only in their mark + * and their accent. Carrying them here keeps a per-issuer theme from + * being the way to render a second bank.

+ * + * @param logo the issuer's mark, or {@code null} to fall back to + * the issuer's name set as a spaced-caps wordmark + * @param logoWidth width of the mark in points; the height follows the + * glyph's aspect ratio. Non-positive values fall back + * to {@link #DEFAULT_LOGO_WIDTH} + * @param logoColor colour the mark is filled with, or {@code null} for + * the theme's ink + * @param accent the issuer's brand accent — the hero strip, the + * direction arrow, the reached timeline step. {@code + * null} falls back to the theme's ink, which renders + * an unbranded but complete receipt + * @param timelineTitle heading over the status trail; blank falls back to + * {@link #DEFAULT_TIMELINE_TITLE} + */ + public record Options(SvgGlyph logo, + double logoWidth, + DocumentColor logoColor, + DocumentColor accent, + String timelineTitle) { + + /** Width the issuer's mark renders at when the caller gives none. */ + public static final double DEFAULT_LOGO_WIDTH = 92.0; + + /** Heading over the status trail when the caller gives none. */ + public static final String DEFAULT_TIMELINE_TITLE = "Payment progress"; + + /** + * Normalizes the width and the heading. + */ + public Options { + logoWidth = logoWidth > 0 ? logoWidth : DEFAULT_LOGO_WIDTH; + timelineTitle = timelineTitle == null || timelineTitle.isBlank() + ? DEFAULT_TIMELINE_TITLE + : timelineTitle; + } + + /** + * Unbranded defaults — no mark, theme ink for the accent. + * + * @return default options + */ + public static Options defaults() { + return new Options(null, DEFAULT_LOGO_WIDTH, null, null, null); + } + + /** + * Defaults plus an issuer's mark and accent. + * + * @param logo the issuer's mark + * @param accent the issuer's brand accent + * @return branded options + */ + public static Options branded(SvgGlyph logo, DocumentColor accent) { + return new Options(logo, DEFAULT_LOGO_WIDTH, null, accent, null); + } + + /** + * Returns a copy carrying a different mark width. + * + * @param width width in points + * @return updated options + */ + public Options withLogoWidth(double width) { + return new Options(logo, width, logoColor, accent, timelineTitle); + } + + /** + * Returns a copy carrying a different mark colour. + * + * @param color fill colour for the mark + * @return updated options + */ + public Options withLogoColor(DocumentColor color) { + return new Options(logo, logoWidth, color, accent, timelineTitle); + } + + /** + * Returns a copy carrying a different status-trail heading. + * + * @param title heading text + * @return updated options + */ + public Options withTimelineTitle(String title) { + return new Options(logo, logoWidth, logoColor, accent, title); + } + } + + /** + * Builds the preset with the Modern Receipt theme + * ({@link BrandTheme#receiptModern()}) and unbranded options. + * + * @return ready-to-use template + */ + public static DocumentTemplate create() { + return create(BrandTheme.receiptModern(), Options.defaults()); + } + + /** + * Builds the preset with a caller-supplied theme and unbranded options. + * + * @param theme active theme + * @return ready-to-use template + */ + public static DocumentTemplate create(BrandTheme theme) { + return create(theme, Options.defaults()); + } + + /** + * Builds the preset with a caller-supplied theme and branding. + * + * @param theme active theme + * @param options issuer mark, accent, and wording + * @return ready-to-use template + */ + public static DocumentTemplate create(BrandTheme theme, Options options) { + Objects.requireNonNull(theme, "theme"); + return new Template(theme, options == null ? Options.defaults() : options); + } + + private record Template(BrandTheme theme, Options options) + implements DocumentTemplate { + + @Override + public String id() { + return ID; + } + + @Override + public String displayName() { + return DISPLAY_NAME; + } + + @Override + public void compose(DocumentSession document, ReceiptDocumentSpec spec) { + Objects.requireNonNull(document, "document"); + ReceiptData data = Objects.requireNonNull(spec, "spec").receipt(); + + DocumentColor accent = options.accent() == null + ? theme.palette().ink() + : options.accent(); + DocumentColor markColor = options.logoColor() == null + ? theme.palette().ink() + : options.logoColor(); + + // Whether this preset may pin its footer. The pin re-composes, which + // means clearing the session — safe only when the receipt is the whole + // document. A caller who composed a cover page first keeps it, and the + // footer flows after the body instead. There is also nothing to pin + // when the receipt carries no footer: the spacer would be a page-tall + // hole holding nothing down. + boolean ownsDocument = document.roots().isEmpty() && ReceiptFooter.hasContent(data); + + composeBody(document, data, accent, markColor, 0); + + if (ownsDocument) { + double pin = bottomSlack(document) - theme.spacing().pageFlowSpacing() - PIN_EPSILON; + if (pin > MIN_PIN_HEIGHT) { + document.clear(); + composeBody(document, data, accent, markColor, pin); + } + } + + document.chrome().footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .height(FOOTER_HEIGHT) + .rightText("Page {page} of {pages}") + .fontSize((float) theme.typography().sizeContact()) + .textColor(theme.palette().muted()) + .build()); + } + + /** + * Points of unused page left under the composed content on the last page. + * + *

The engine has no vertical flex — a spacer grows inside a row, not + * down a page — so the only way to seat a block on the bottom margin is + * to measure what the body left and spend it. Layout runs on demand, so + * reading the snapshot here costs one pass over content that is about to + * be laid out anyway.

+ * + *

Only nodes that both start and end on the last page are measured. A + * node's {@code placementY} is resolved on the page it starts on, so a + * container spanning a page break — the root flow of any receipt longer + * than a page always does — would report a coordinate from a page whose + * free space says nothing about the last one.

+ */ + private static double bottomSlack(DocumentSession document) { + LayoutSnapshot snapshot = document.layoutSnapshot(); + int lastPage = snapshot.totalPages() - 1; + double lowest = Double.MAX_VALUE; + for (LayoutNodeSnapshot node : snapshot.nodes()) { + if (node.startPage() == lastPage && node.endPage() == lastPage) { + lowest = Math.min(lowest, node.placementY()); + } + } + if (lowest == Double.MAX_VALUE) { + return 0.0; + } + // Placement is measured from the page bottom, so the lowest edge minus + // the bottom margin is exactly the gap the footer can fall through. + return lowest - snapshot.canvas().margin().bottom(); + } + + /** + * Sequences the blocks. Each {@code addSection} is guarded by whether + * its block has anything to draw: a widget that renders nothing still + * leaves a section behind, and an empty section still takes its turn in + * the flow's spacing — which is how a receipt with no timeline ends up + * with a timeline-sized hole in it. + */ + private void composeBody(DocumentSession document, ReceiptData data, + DocumentColor accent, DocumentColor markColor, + double footerPin) { + PageFlowBuilder flow = document.dsl().pageFlow() + .name("ReceiptModernRoot") + .spacing(theme.spacing().pageFlowSpacing()) + .addSection("ReceiptMasthead", section -> ReceiptMasthead.render( + section, data, options.logo(), options.logoWidth(), markColor, theme)) + .addSection("ReceiptHero", section -> + AmountHero.render(section, data, accent, theme)); + + if (data.hasPayer() || data.hasBeneficiary()) { + flow.addSection("ReceiptParties", section -> + PartyPair.render(section, data, accent, theme)); + } + + for (ReceiptFieldGroup group : data.detailGroups()) { + if (group.fields().isEmpty()) { + continue; + } + flow.addSection("ReceiptDetails", section -> + DetailGroup.render(section, group, theme)); + } + + if (!data.timeline().isEmpty()) { + flow.addSection("ReceiptTrail", section -> StatusTrail.render( + section, options.timelineTitle(), data.timeline(), accent, theme)); + } + if (!data.notes().isEmpty()) { + flow.addSection("ReceiptNotes", section -> renderNotes(section, data)); + } + + if (footerPin > 0) { + flow.addSpacer(spacer -> spacer.name("ReceiptFooterPin").height(footerPin)); + } + + if (ReceiptFooter.hasContent(data)) { + flow.addSection("ReceiptFooter", section -> + ReceiptFooter.render(section, data, theme)); + } + flow.build(); + } + + /** + * Notes render inline rather than through {@code DetailGroup}: they are + * prose, not label/value rows, so they take the body style and no + * hairlines. + */ + private void renderNotes(SectionBuilder host, ReceiptData data) { + host.keepTogether() + .spacing(theme.spacing().sectionBodySpacing()) + .addParagraph(p -> p + .text(TextOrnaments.spacedUpper("Notes")) + .textStyle(ReceiptStyles.groupTitle(theme)) + .margin(new DocumentInsets(0, 0, 6, 0))) + .addParagraph(p -> p + .text(String.join("\n", data.notes())) + .textStyle(ReceiptStyles.body(theme)) + .lineSpacing(theme.typography().bodyLineSpacing()) + .margin(DocumentInsets.zero())); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/package-info.java new file mode 100644 index 000000000..6093420c8 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/package-info.java @@ -0,0 +1,13 @@ +/** + * Receipt presets — one class per visual style. + * + *

{@link com.demcha.compose.document.templates.receipt.presets.ModernReceipt} + * is the reference preset: a bank-grade transfer confirmation built by + * sequencing the {@code receipt.widgets} blocks over a + * {@link com.demcha.compose.document.templates.core.theme.BrandTheme}.

+ * + *

A preset is a thin orchestrator. Everything that renders lives in the + * widgets; what a preset owns is the order of the blocks, the branding knobs + * it exposes, and the handful of decisions no widget can make for it.

+ */ +package com.demcha.compose.document.templates.receipt.presets; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/AmountHero.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/AmountHero.java new file mode 100644 index 000000000..d85ca6cea --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/AmountHero.java @@ -0,0 +1,99 @@ +package com.demcha.compose.document.templates.receipt.widgets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentCornerRadius; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.core.text.TextOrnaments; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptData; +import com.demcha.compose.document.templates.receipt.components.FieldRowRenderer; +import com.demcha.compose.document.templates.receipt.components.ReceiptStyles; +import com.demcha.compose.document.templates.receipt.components.StatusPill; + +import java.util.Objects; + +/** + * The block that answers the question the reader opened the file for: how + * much, to what, and did it go through. + * + *

The amount is set at the theme's headline size — larger than the + * document title — because on a receipt it is the headline. The + * status chip sits at the top of the right column so the two facts that + * matter share one eye-line, and the value/operation dates fill the rest of + * that column as a compact table rather than as another block further down + * the page.

+ * + *

A brand accent strip runs down the left edge: it is the one place the + * issuer's colour appears above the fold, which is what makes the layout + * read as branded without tinting the numbers.

+ */ +public final class AmountHero { + + /** + * How much wider the amount column is than the status column. The amount + * needs room to stay on one line at 30pt; the dates beside it are short. + */ + private static final double AMOUNT_COLUMN_WEIGHT = 1.35; + + private static final double STATUS_COLUMN_WEIGHT = 1.0; + + private AmountHero() { + } + + /** + * Renders the hero panel. + * + * @param host section the panel is appended to + * @param data receipt content + * @param accent the issuer's brand accent + * @param theme active theme + */ + public static void render(SectionBuilder host, ReceiptData data, + DocumentColor accent, BrandTheme theme) { + Objects.requireNonNull(host, "host"); + Objects.requireNonNull(data, "data"); + Objects.requireNonNull(theme, "theme"); + + DocumentColor strip = accent == null ? theme.palette().ink() : accent; + + host.addSection("ReceiptAmountHero", panel -> panel + .softPanel(theme.palette().banner(), + DocumentCornerRadius.of(theme.spacing().bannerCornerRadius()), + theme.spacing().bannerInnerPadding()) + .accentLeft(strip, 3.0) + .keepTogether() + .addRow("ReceiptAmountRow", row -> row + .weights(AMOUNT_COLUMN_WEIGHT, STATUS_COLUMN_WEIGHT) + .spacing(20) + .verticalAlign(RowVerticalAlign.TOP) + .addSection("ReceiptAmountColumn", column -> { + column.spacing(3); + column.addParagraph(p -> p + .text(TextOrnaments.spacedUpper(data.amountLabel())) + .textStyle(ReceiptStyles.eyebrow(theme)) + .margin(DocumentInsets.zero())); + column.addParagraph(p -> p + .text(data.amount()) + .textStyle(ReceiptStyles.amount(theme)) + .margin(DocumentInsets.zero())); + if (!data.amountCaption().isBlank()) { + column.addParagraph(p -> p + .text(data.amountCaption()) + .textStyle(ReceiptStyles.caption(theme)) + .lineSpacing(theme.typography().bodyLineSpacing()) + .margin(DocumentInsets.zero())); + } + }) + .addSection("ReceiptStatusColumn", column -> { + column.spacing(theme.spacing().sectionBodySpacing()); + StatusPill.render(column, data.status(), accent, TextAlign.RIGHT, theme); + // Inline form: this column is inside a row, and a row + // cannot hold another row. + FieldRowRenderer.renderInline(column, data.summaryFields(), + TextAlign.RIGHT, theme); + }))); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/DetailGroup.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/DetailGroup.java new file mode 100644 index 000000000..f415af514 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/DetailGroup.java @@ -0,0 +1,56 @@ +package com.demcha.compose.document.templates.receipt.widgets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.core.text.TextOrnaments; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptFieldGroup; +import com.demcha.compose.document.templates.receipt.components.FieldRowRenderer; +import com.demcha.compose.document.templates.receipt.components.ReceiptStyles; + +import java.util.Objects; + +/** + * A titled block of field rows — {@code TRANSFER DETAILS} over a hairline + * table of labels and values. + * + *

The block runs the full content width rather than sitting in a narrow + * left column: the values right-align to the page edge, which is what turns + * a stack of unrelated rows into a column a reader can run an eye down.

+ * + *

Each group keeps together, so a group never splits across a page + * boundary with its heading stranded on the previous one.

+ */ +public final class DetailGroup { + + /** Gap between the spaced-caps heading and the first row, in points. */ + private static final double TITLE_GAP = 7.0; + + private DetailGroup() { + } + + /** + * Renders one group; a group with no rows renders nothing. + * + * @param host section the group is appended to + * @param group the titled rows + * @param theme active theme + */ + public static void render(SectionBuilder host, ReceiptFieldGroup group, BrandTheme theme) { + Objects.requireNonNull(host, "host"); + Objects.requireNonNull(theme, "theme"); + if (group == null || group.fields().isEmpty()) { + return; + } + host.addSection("ReceiptDetailGroup", block -> { + block.keepTogether(); + if (!group.title().isBlank()) { + block.addParagraph(p -> p + .text(TextOrnaments.spacedUpper(group.title())) + .textStyle(ReceiptStyles.groupTitle(theme)) + .margin(new DocumentInsets(0, 0, TITLE_GAP, 0))); + } + FieldRowRenderer.renderAll(block, group.fields(), theme); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/PartyPair.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/PartyPair.java new file mode 100644 index 000000000..55f3dd8ad --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/PartyPair.java @@ -0,0 +1,119 @@ +package com.demcha.compose.document.templates.receipt.widgets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentCornerRadius; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.ShapeOutline; +import com.demcha.compose.document.templates.core.text.TextOrnaments; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptData; +import com.demcha.compose.document.templates.data.receipt.ReceiptParty; +import com.demcha.compose.document.templates.receipt.components.FieldRowRenderer; +import com.demcha.compose.document.templates.receipt.components.ReceiptStyles; + +import java.util.Objects; + +/** + * The two sides of the transfer, side by side inside one panel, with an + * arrow between them. + * + *

The source document stacked payer and beneficiary as two unrelated grey + * tables and left the reader to infer the direction. Two columns and one + * arrow say it without a word.

+ * + *

Both sides share a single panel rather than sitting in a card each: a + * section is measured against its content, so two cards of unequal text come + * out unequal in width, and a receipt in which "paid from" is visibly wider + * than "paid to" reads as a rendering accident. One panel is also the truer + * statement — this is one payment, not two facts that happen to be + * adjacent.

+ */ +public final class PartyPair { + + /** Weight of the narrow middle column holding the direction arrow. */ + private static final double ARROW_COLUMN_WEIGHT = 0.12; + + /** Size of the direction arrow, in points. */ + private static final double ARROW_SIZE = 11.0; + + private PartyPair() { + } + + /** + * Renders the panel; renders nothing when neither side is present. + * + * @param host section the panel is appended to + * @param data receipt content + * @param accent the issuer's brand accent, used for the arrow + * @param theme active theme + */ + public static void render(SectionBuilder host, ReceiptData data, + DocumentColor accent, BrandTheme theme) { + Objects.requireNonNull(host, "host"); + Objects.requireNonNull(data, "data"); + Objects.requireNonNull(theme, "theme"); + + if (!data.hasPayer() && !data.hasBeneficiary()) { + return; + } + DocumentColor arrowColor = accent == null ? theme.palette().muted() : accent; + boolean bothSides = data.hasPayer() && data.hasBeneficiary(); + + host.addSection("ReceiptPartyPanel", panel -> { + panel.softPanel(theme.palette().banner(), + DocumentCornerRadius.of(theme.spacing().bannerCornerRadius()), + theme.spacing().bannerInnerPadding()) + .keepTogether(); + if (!bothSides) { + // One side only: no direction to draw, so the column runs full width. + if (data.hasPayer()) { + side(panel, data.payerLabel(), data.payer(), theme); + } else { + side(panel, data.beneficiaryLabel(), data.beneficiary(), theme); + } + return; + } + panel.addRow("ReceiptPartyRow", row -> row + .weights(1, ARROW_COLUMN_WEIGHT, 1) + .spacing(10) + .verticalAlign(RowVerticalAlign.CENTER) + .addSection("ReceiptPayer", column -> + side(column, data.payerLabel(), data.payer(), theme)) + .addSection("ReceiptDirection", column -> column + .addParagraph(p -> p + .arrow(ARROW_SIZE, ShapeOutline.Direction.RIGHT, arrowColor) + .align(TextAlign.CENTER) + .margin(DocumentInsets.zero()))) + .addSection("ReceiptBeneficiary", column -> + side(column, data.beneficiaryLabel(), data.beneficiary(), theme))); + }); + } + + private static void side(SectionBuilder host, String label, ReceiptParty party, BrandTheme theme) { + host.spacing(theme.spacing().sectionBodySpacing()) + .addParagraph(p -> p + .text(TextOrnaments.spacedUpper(label)) + .textStyle(ReceiptStyles.eyebrow(theme)) + .margin(DocumentInsets.zero())); + + if (!party.name().isBlank()) { + host.addParagraph(p -> p + .text(party.name()) + .textStyle(ReceiptStyles.partyName(theme)) + .margin(DocumentInsets.zero())); + } + if (!party.addressLines().isEmpty()) { + host.addParagraph(p -> p + .text(String.join("\n", party.addressLines())) + .textStyle(ReceiptStyles.caption(theme)) + .lineSpacing(theme.typography().bodyLineSpacing()) + .margin(DocumentInsets.zero())); + } + // Inline form: a side is a column of the pair row, and a row cannot hold + // another row. + FieldRowRenderer.renderInline(host, party.fields(), TextAlign.LEFT, theme); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptFooter.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptFooter.java new file mode 100644 index 000000000..b18c1de87 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptFooter.java @@ -0,0 +1,123 @@ +package com.demcha.compose.document.templates.receipt.widgets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptData; +import com.demcha.compose.document.templates.receipt.components.ReceiptStyles; + +import java.util.Objects; + +/** + * The foot of the receipt: a verification QR code, how to reach the issuer, + * and the small print, under a hairline. + * + *

The QR encodes a URL where the payment can be checked against the + * issuer's own records. That is the part of a receipt that survives being + * printed: a scanned code turns a piece of paper back into a live + * lookup.

+ * + *

Every part is optional. A receipt with no verification URL renders the + * text alone at full width rather than leaving a hole where the code would + * have been.

+ */ +public final class ReceiptFooter { + + /** Edge length of the QR code, in points. */ + private static final double QR_SIZE = 52.0; + + /** Weight of the QR column against the text beside it. */ + private static final double QR_COLUMN_WEIGHT = 0.16; + + /** Gap above the hairline that separates the footer from the body. */ + private static final double RULE_GAP = 6.0; + + private ReceiptFooter() { + } + + /** + * Reports whether a receipt carries anything the footer would draw. + * + *

A preset asks before adding the section that hosts it: an empty + * section still takes its turn in the page flow's spacing, so a receipt + * with no footer would otherwise end on a gap the size of one.

+ * + * @param data receipt content + * @return {@code true} when a QR code, support line, or small print exists + */ + public static boolean hasContent(ReceiptData data) { + return data != null + && (!data.verificationUrl().isBlank() + || !data.verificationText().isBlank() + || !data.supportLines().isEmpty() + || !data.legalNote().isBlank()); + } + + /** + * Renders the footer block; renders nothing when the receipt carries no + * QR code, support lines, or small print. + * + * @param host section the footer is appended to + * @param data receipt content + * @param theme active theme + */ + public static void render(SectionBuilder host, ReceiptData data, BrandTheme theme) { + Objects.requireNonNull(host, "host"); + Objects.requireNonNull(data, "data"); + Objects.requireNonNull(theme, "theme"); + + if (!hasContent(data)) { + return; + } + boolean hasQr = !data.verificationUrl().isBlank(); + + host.addLine(line -> line + .fill() + .thickness(theme.spacing().accentRuleWidth()) + .color(theme.palette().rule()) + .margin(new DocumentInsets(RULE_GAP, 0, RULE_GAP, 0))); + + if (hasQr) { + host.addRow("ReceiptFooterRow", row -> row + .weights(QR_COLUMN_WEIGHT, 1) + .spacing(14) + .verticalAlign(RowVerticalAlign.TOP) + .addSection("ReceiptVerificationCode", column -> column + .addBarcode(code -> code + .qrCode() + .data(data.verificationUrl()) + .size(QR_SIZE, QR_SIZE) + .quietZone(1) + .foreground(theme.palette().ink()) + .background(theme.palette().mainFill()))) + .addSection("ReceiptFooterText", column -> footerText(column, data, theme))); + } else { + host.addSection("ReceiptFooterText", column -> footerText(column, data, theme)); + } + } + + private static void footerText(SectionBuilder host, ReceiptData data, BrandTheme theme) { + host.spacing(theme.spacing().sectionBodySpacing()); + if (!data.verificationText().isBlank()) { + host.addParagraph(p -> p + .text(data.verificationText()) + .textStyle(ReceiptStyles.caption(theme)) + .margin(DocumentInsets.zero())); + } + if (!data.supportLines().isEmpty()) { + host.addParagraph(p -> p + .text(String.join("\n", data.supportLines())) + .textStyle(ReceiptStyles.smallPrint(theme)) + .lineSpacing(theme.typography().bodyLineSpacing()) + .margin(DocumentInsets.zero())); + } + if (!data.legalNote().isBlank()) { + host.addParagraph(p -> p + .text(data.legalNote()) + .textStyle(ReceiptStyles.smallPrint(theme)) + .lineSpacing(theme.typography().bodyLineSpacing()) + .margin(DocumentInsets.zero())); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptMasthead.java new file mode 100644 index 000000000..ec31c45e6 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptMasthead.java @@ -0,0 +1,112 @@ +package com.demcha.compose.document.templates.receipt.widgets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.core.identity.SvgGlyph; +import com.demcha.compose.document.templates.core.text.TextOrnaments; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptData; +import com.demcha.compose.document.templates.receipt.components.ReceiptStyles; + +import java.util.Objects; + +/** + * Top of the page: the issuer on the left, what the document is on the + * right, and a hairline under both. + * + *

The issuer's mark renders as a recolourable {@link SvgGlyph} silhouette + * rather than as an image, so one logo file serves a black wordmark on white + * and a white one on a dark page without a second asset. When no logo is + * supplied the issuer's name stands in as a spaced-caps wordmark, which is + * what keeps the masthead intact for a caller who has no vector mark to + * hand.

+ */ +public final class ReceiptMasthead { + + /** Gap between the masthead row and the hairline under it, in points. */ + private static final double RULE_GAP = 10.0; + + private ReceiptMasthead() { + } + + /** + * Renders the masthead and its hairline. + * + * @param host section the masthead is appended to + * @param data receipt content + * @param logo the issuer's mark, or {@code null} to fall back to the + * issuer's name as a spaced-caps wordmark + * @param logoWidth width of the mark in points; the height follows the + * glyph's own aspect ratio + * @param logoColor colour the mark is filled with + * @param theme active theme + */ + public static void render(SectionBuilder host, ReceiptData data, SvgGlyph logo, + double logoWidth, DocumentColor logoColor, BrandTheme theme) { + Objects.requireNonNull(host, "host"); + Objects.requireNonNull(data, "data"); + Objects.requireNonNull(theme, "theme"); + + DocumentColor markColor = logoColor == null ? theme.palette().ink() : logoColor; + + host.addRow("ReceiptMastheadRow", row -> row + .weights(1, 1) + .spacing(18) + .verticalAlign(RowVerticalAlign.CENTER) + .addSection("ReceiptIssuer", column -> { + boolean hasName = !data.issuerName().isBlank(); + if (logo == null && !hasName) { + return; + } + column.addParagraph(p -> { + if (logo != null) { + // Inline, so a symbol mark and the issuer's name sit on one + // baseline as a lockup. A caller whose mark is already a + // wordmark leaves the name blank and gets the mark alone. + p.shape(logo.outline(logoWidth), markColor); + if (hasName) { + p.inlineText(" "); + } + } + if (hasName) { + p.inlineText(logo == null + ? TextOrnaments.spacedUpper(data.issuerName()) + : data.issuerName(), + ReceiptStyles.title(theme)); + } + p.margin(DocumentInsets.zero()); + }); + }) + .addSection("ReceiptDocumentTitle", column -> { + column.spacing(2); + column.addParagraph(p -> p + .text(data.documentTitle()) + .textStyle(ReceiptStyles.title(theme)) + .align(TextAlign.RIGHT) + .margin(DocumentInsets.zero())); + if (!data.generatedOn().isBlank()) { + column.addParagraph(p -> p + .text("Generated on " + data.generatedOn()) + .textStyle(ReceiptStyles.caption(theme)) + .align(TextAlign.RIGHT) + .margin(DocumentInsets.zero())); + } + if (!data.reference().isBlank()) { + column.addParagraph(p -> p + .text("Reference " + data.reference()) + .textStyle(ReceiptStyles.caption(theme)) + .align(TextAlign.RIGHT) + .margin(DocumentInsets.zero())); + } + })); + + host.addLine(line -> line + .fill() + .thickness(theme.spacing().accentRuleWidth()) + .color(theme.palette().rule()) + .margin(new DocumentInsets(RULE_GAP, 0, 0, 0))); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/StatusTrail.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/StatusTrail.java new file mode 100644 index 000000000..0c7150830 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/StatusTrail.java @@ -0,0 +1,119 @@ +package com.demcha.compose.document.templates.receipt.widgets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TimelineMarker; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.core.text.TextOrnaments; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptEvent; +import com.demcha.compose.document.templates.receipt.components.ReceiptStyles; + +import java.util.List; +import java.util.Objects; + +/** + * The payment's steps as a connected timeline — instructed, cleared, + * settled — with the last step marked as the one it reached. + * + *

This is the block a status word cannot replace. "Completed" says the + * payment finished; the trail says when each stage happened, which is what a + * reader chasing a late payment or a support agent reading the receipt back + * actually needs.

+ * + *

Steps before the last render as hollow circles in the rule colour and + * the last as a filled accent dot, so the eye lands on where the payment + * got to without reading a single timestamp.

+ */ +public final class StatusTrail { + + /** Diameter of a timeline marker, in points. */ + private static final double MARKER_SIZE = 7.0; + + /** Space between the connector rail and the marker, in points. */ + private static final double GUTTER = 12.0; + + /** + * Marker column weight. Small, because these markers are 7pt dots: the + * builder's default is sized for numbered discs and would indent every + * step by a tenth of the page. + */ + private static final double MARKER_COLUMN_WEIGHT = 0.022; + + /** Gap between a marker and its step name, in points. */ + private static final double MARKER_GAP = 7.0; + + /** Separator between a step's timestamp and its explanation. */ + private static final String META_SEPARATOR = " · "; + + private StatusTrail() { + } + + private static String joinMeta(ReceiptEvent event) { + if (event.timestamp().isBlank()) { + return event.detail(); + } + if (event.detail().isBlank()) { + return event.timestamp(); + } + return event.timestamp() + META_SEPARATOR + event.detail(); + } + + /** + * Renders the trail under a spaced-caps heading; an empty step list + * renders nothing. + * + * @param host section the trail is appended to + * @param title heading over the trail + * @param events the payment's steps, oldest first + * @param accent the issuer's brand accent, used for the reached step + * @param theme active theme + */ + public static void render(SectionBuilder host, String title, List events, + DocumentColor accent, BrandTheme theme) { + Objects.requireNonNull(host, "host"); + Objects.requireNonNull(theme, "theme"); + if (events == null || events.isEmpty()) { + return; + } + DocumentColor reached = accent == null ? theme.palette().ink() : accent; + + host.addSection("ReceiptStatusTrail", block -> { + block.keepTogether(); + if (title != null && !title.isBlank()) { + block.addParagraph(p -> p + .text(TextOrnaments.spacedUpper(title)) + .textStyle(ReceiptStyles.groupTitle(theme)) + .margin(new DocumentInsets(0, 0, 8, 0))); + } + block.addTimeline(timeline -> { + timeline.connector(theme.palette().rule(), theme.spacing().accentRuleWidth()) + .gutter(GUTTER) + .markerColumnWeight(MARKER_COLUMN_WEIGHT) + .markerGap(MARKER_GAP) + .spacing(theme.spacing().entrySeparation()) + .titleStyle(ReceiptStyles.valueStrong(theme)) + .metaStyle(ReceiptStyles.caption(theme)) + .keepEntriesTogether(); + for (int i = 0; i < events.size(); i++) { + ReceiptEvent event = events.get(i); + boolean last = i == events.size() - 1; + TimelineMarker marker = last + ? TimelineMarker.dot(MARKER_SIZE, reached) + : TimelineMarker.dot(MARKER_SIZE, theme.palette().rule()); + // Timestamp and detail go on one meta line rather than into the + // builder's body slot: the body renders as a sibling of the + // marker row, so it would start at the rail instead of under the + // step's own title. + String meta = joinMeta(event); + timeline.entry(marker, entry -> { + entry.title(event.label()); + if (!meta.isBlank()) { + entry.meta(meta); + } + }); + } + }); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/package-info.java new file mode 100644 index 000000000..be3957907 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/package-info.java @@ -0,0 +1,25 @@ +/** + * The visual blocks a receipt preset arranges. + * + *

Each widget owns one block of the page and takes + * {@code (host, data, …, theme)}:

+ * + *
    + *
  • {@link com.demcha.compose.document.templates.receipt.widgets.ReceiptMasthead} + * — issuer mark, document title, hairline.
  • + *
  • {@link com.demcha.compose.document.templates.receipt.widgets.AmountHero} + * — the amount, the status chip, and the value/operation dates.
  • + *
  • {@link com.demcha.compose.document.templates.receipt.widgets.PartyPair} + * — payer and beneficiary cards with the direction between them.
  • + *
  • {@link com.demcha.compose.document.templates.receipt.widgets.DetailGroup} + * — one titled block of label/value rows.
  • + *
  • {@link com.demcha.compose.document.templates.receipt.widgets.StatusTrail} + * — the payment's steps as a connected timeline.
  • + *
  • {@link com.demcha.compose.document.templates.receipt.widgets.ReceiptFooter} + * — verification QR code, support lines, small print.
  • + *
+ * + *

Every widget skips itself when its data is absent, so a preset can + * sequence all six without guarding each one.

+ */ +package com.demcha.compose.document.templates.receipt.widgets; From 16ed4f1d5b42301024fc626751af051815927651 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Sun, 30 Aug 2026 20:04:49 +0100 Subject: [PATCH 02/85] feat(templates): add the ClassicInvoice layered invoice preset (#608) --- CHANGELOG.md | 11 + assets/readme/examples/invoice-classic-v2.pdf | Bin 0 -> 3217 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../examples/support/ShowcaseMetadata.java | 1 + .../invoice/v2/ClassicInvoiceV2Example.java | 61 + .../ClassicInvoiceLayoutSnapshotTest.java | 58 + .../presets/ClassicInvoiceSmokeTest.java | 83 ++ .../presets/InvoicePresetFixtures.java | 112 ++ .../presets/InvoiceV2VisualParityTest.java | 49 +- .../invoice/classic_invoice_layout.json | 1007 +++++++++++++++++ .../classic_invoice_stress_layout.json | 1007 +++++++++++++++++ .../classic_invoice-page-0.png | Bin 0 -> 86218 bytes .../invoice/presets/ClassicInvoice.java | 461 ++++++++ 13 files changed, 2810 insertions(+), 42 deletions(-) create mode 100644 assets/readme/examples/invoice-classic-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/templates/invoice/v2/ClassicInvoiceV2Example.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ClassicInvoiceLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ClassicInvoiceSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoicePresetFixtures.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/classic_invoice_layout.json create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/classic_invoice_stress_layout.json create mode 100644 qa/src/test/resources/visual-baselines/invoice-v2-layered/classic_invoice-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ClassicInvoice.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a68c1799..86f5d9674 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A second invoice preset: `ClassicInvoice`.** The letterhead-style invoice — a header + band with the company name and a 28pt INVOICE title, a TOTAL DUE hero strip, + BILL TO / FROM party columns, and a dedicated Summary table composed after the + line items (subtotal / tax / TOTAL, the last row emphasized) — now ships as + `invoice.presets.ClassicInvoice` on the layered stack, with the same + `create()` / `create(BrandTheme)` contract as `ModernInvoice`, porting the rendered + layout of the published standalone `invoice-classic` template. Guarded by a smoke + test, exact layout snapshots (the canonical single page plus a forty-line-item + overflow that freezes the two-page table continuation), and the invoice pixel-parity + gate; the examples showcase gains `invoice-classic-v2`. + - **Monogram Sidebar draws the employer.** Its experience entries rendered the position, the date and the description, and never `CvEntry.subtitle()` — so every company name was missing from the rendered CV while the education block, which does render its diff --git a/assets/readme/examples/invoice-classic-v2.pdf b/assets/readme/examples/invoice-classic-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1a4c2dc20a436f7ae9267791fae2a59c4d4f4303 GIT binary patch literal 3217 zcmbuBX*3jk8^(z&BiXaY7^4hjHp`4GVTO_zOLk$**bTUC%B%C7=bZOBZ{OZ;*L|J)`k(uM-(P;xIE>DDxV#cT`up6$6aWr{0ln~U z09920)HKkW2!v`oP#iqGoB>cXBH7o~iv)!J?uOzVoQb|b#8JC3KwTX`BoThc6#px( zPb4{0T!07#7#aZ8arK}O$v~)%hXaL(Av$^yh`(dL6f)7llM@h-)?z*WU|fkebj17< zv0&~4d!#5MDEUK2+=6jY+-zrCV8^|4?}b~QKD#uCDz~fW++^X-(FMP}vlxyqA6ptg zu`+1x^|lX%Xrb?V3&qB^vvr#%ZFsSRc)K+W>*}eQ!<{>CCj_j-&!8F*Gbg6Q$`WKl zP1A4`3xhoW{g!o~hi7WOac9S@zOu?M?mLKY?+)3zx#j%+uBif!ho3mt(2=vI2k$Ql+M(|3_MZM|HTW?>fA%iQZ|W!4tMhc%j@ z;&PqSjXaUABl)T9_n#mh+;4W&@|Y6z*t=X*1Zj8GLtdBl3bA(!JmHVRYX~X5xbbMao1E2 zbmRTDZv02?l#(!jEEbEJqozT4FZCXlv-uD7Owc4$+{$O@@rdEcWT z-lOQ^osS~Bd!xxhJW@^SgnO$2F7Y3S8>#w~mSK|~=U z_AqYp14BKNlaW)YEx)d$Wp(BUSbrm}>AwwQOO(o}3r~oLgX`)qO57p^9BV&5_^yj{ zpk+PZ^NwQdp%u91DiV>$C>?nA>R~q;6wwgNl+D`m%6C10nfn(}M~)l?nPsW0*-0{vUS=PP_d7pK zsfBTXWI`xzwbl6K?H4oYxZ<8ScZ05#>e!!K89FJ3soD0~Po~%MZFOZ)xIucdj!&> z{0%hq__SMQ$KZ^1D*Vl5$>;ji%<#Tj(@z$41DN@Y7z+0Ad$m-q&YwZF!U50LoB+LW z%0o#LJ+$A`xLv<8n>AzpBGT)W0W0IjJ*Fpl+4*`P?fa{N7zic$CPZk6((p*Z(j?eg z=Db%vaB?usG!H3oo4hJGH+v)f{l+oi3pQf#>tE-cGGGAh-BKsVoj3SUhQI+ewR`iPEkr?70|3>Ef5z68G z=A-o{tprxiEwX>{Qf_aZY%E*OuqapF@v+<7i{RK>|*1~7%Ztpi_>F;{47fni% z8{Zbiq-5~EB%j}&v)_t4y{Gy(n4WvDC%oNKZ$zs=Kez9k#0Tb;^I3d$!J$zs@fBqs zb5na}300N^xYa5xe&yVCr`FIA@xrlJfWp_KsaN)zX;a*V=$)m&3a5D&*Y5CHwQJzI zgJ_rT@a#bL%Ne?^W_h_0Vwj9l?ZnXJ1xb(~Y~{X*)lY9@NTHH|UU{esAN|K>^3Kf4 zbA=*7|Dl8}$;qM_wV+#pr~J?sWIx4CB?$&TJ8!1Jc|6|Ph?eeHC@)C;aUx|WLiEXz zS^#A)9=WbrB7%v|t2hTkzunk(?gc>!g)gr?*7LMfuV5bv#uQeNG21}y#(Q%P`oD@$0=@>&-K*KI|&b%pz99M4YAmPWEttNapoIz&N7>P)Wc z0NBadO149DPWZyysJW9Gw4;_-w-!_GJ6mH|$iH zAQ!StuG1)_=dvN>91~|QAtkx_=`hP^^7^w;vmn#xQ(R|rj8G(ui;c$RF>Mw}flI9E zGvd`BTRY@`_-sNZH+NFE%;||5lsZ7){$qJ|CsNs5Sy??$f8^1d&vz@mlo9&kPiVqu52jdI2Wg~;WYiUJ^G;?yz# zDYMD`rEwF`e!H3X}2*tI1@C zbpD%2oiEX?8V^0?kIB)rm<_7eXCz%?@pJbOC9uYB{|mdZXpK(#rxNVIRBn=^Yf={* zM%E43&&wm&97;ufLE_BXA}^;Nm>MtgIgMSK#LR~j1{C#5v%ZS51^95Ze%xSDEjlicmE(Owj`Yhh zH0t;rd;Hp>)a{IcS@Gf0c9qU9!N_~bJu;h;eKIe8oHdMO@ZHt#0$M^y(gNlSf(#MO z49qqr2`XSfJ$iIY4s*$|-P7jtipU#EI8N9~RD}T?9JkFnw!&$((#yGhy;ZATU3X8a z`I|c|L2aAnu5`yuZhjquJEiX*aC6*3uhv@C9VT<{$E0Ak88T8xC+Aq@?S_=6qtVv9 zDmq^|It<_^1ouSvnm50&R8xgW%h?g~1wsppgrqf02hL^j9WLt1SJ53PS?P*LtV0jE zzeFx+tguHSY%f_ba(s2g>0{QuWnk@=}i*G-`6whhS2-Y$eWRnLPf;NaVkHE}d%R-UQ>1 zI_%hGTJh|!xDSj-ZntNfVU{3pm2&bX5FXv|IGh~kuiOQ%N^<>3OWF{-BX<0++YvYc z+1M8sIkOZM2!*iBfnWP?BPtg>q?U&Kcv>Us*EUaDMK%85wm7$*^yL0pnro9FHSnQh z$UMD^U`q}+0}TY_={619oR=bi`g`8NY^+JfNhN?fXN{-&KL*R4603gkFvlD0zMPw` ze^((hzwC+HUKYbLy6IOWeZ@mFEBy-t-I{Wl)b^DqJ(-%Ui!}9WiD|n*)&^154GgUqnHjt0ghD%{{K(d{&Q9fW1`ieOyPDfRvEq?Ta1QQr n1o`NPJ}2K3l5z#mrUOK~7m0?0>`AW$ecKw27Wr~~*9rf9XO 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 59590ed29..006ec548a 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -96,6 +96,7 @@ import com.demcha.examples.templates.cv.v2.CvPanelExample; import com.demcha.examples.templates.cv.v2.CvSidebarPortraitExample; import com.demcha.examples.templates.cv.v2.CvTimelineMinimalExample; +import com.demcha.examples.templates.invoice.ClassicInvoiceV2Example; import com.demcha.examples.templates.invoice.InvoiceCinematicFileExample; import com.demcha.examples.templates.invoice.ModernInvoiceV2Example; import com.demcha.examples.templates.proposal.CinematicProposalFileExample; @@ -162,6 +163,7 @@ public static void main(String[] args) throws Exception { // Invoices System.out.println("Generated: " + InvoiceCinematicFileExample.generate()); System.out.println("Generated: " + ModernInvoiceV2Example.generate()); + System.out.println("Generated: " + ClassicInvoiceV2Example.generate()); // Proposals System.out.println("Generated: " + ProposalCinematicFileExample.generate()); 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 deb4e65f9..0f613f678 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -88,6 +88,7 @@ record Entry(String title, String description, List tags, String codeUrl // ===== Templates / Invoice ===== invoice("invoice-cinematic", "InvoiceCinematicFileExample", "Cinematic Invoice", "Layered ModernInvoice preset with theme-driven layout, advanced tables, and totals.", "invoice", "cinematic"); invoice("invoice-modern-v2", "v2/ModernInvoiceV2Example", "Modern Invoice", "The ModernInvoice preset composed straight from an InvoiceDocumentSpec — line items, totals and payment block driven by the BrandTheme rather than per-document styling.", "invoice"); + invoice("invoice-classic-v2", "v2/ClassicInvoiceV2Example", "Classic Invoice", "The ClassicInvoice preset — letterhead header band, TOTAL DUE hero strip, BILL TO / FROM columns, and a dedicated Summary table after the line items.", "invoice"); // ===== Templates / Proposal ===== proposal("proposal-cinematic", "ProposalCinematicFileExample", "Cinematic Proposal", "Layered ModernProposal layout with cover panel, hero spread, and rich typography.", "proposal", "cinematic"); diff --git a/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ClassicInvoiceV2Example.java b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ClassicInvoiceV2Example.java new file mode 100644 index 000000000..19b4e9a23 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ClassicInvoiceV2Example.java @@ -0,0 +1,61 @@ +package com.demcha.examples.templates.invoice; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; +import com.demcha.compose.document.templates.invoice.presets.ClassicInvoice; +import com.demcha.examples.support.ExampleDataFactory; +import com.demcha.examples.support.ExampleOutputPaths; + +import java.nio.file.Path; + +/** + * Renders the layered {@code invoice.v2} Classic Invoice preset against + * the shared {@code InvoiceDocumentSpec} sample data using the default + * {@code BrandTheme.invoiceModern()} theme. + * + *

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

+ * + *

The preset pads the page flow itself, so the session margin stays at + * {@code ClassicInvoice.RECOMMENDED_MARGIN} (zero) and the page keeps its + * plain white background — the letterhead look of the preset.

+ */ +public final class ClassicInvoiceV2Example { + + private ClassicInvoiceV2Example() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare( + "templates/invoice", "invoice-classic-v2.pdf"); + InvoiceDocumentSpec spec = ExampleDataFactory.sampleInvoice(); + DocumentTemplate template = + ClassicInvoice.create(BrandTheme.invoiceModern()); + + float m = (float) ClassicInvoice.RECOMMENDED_MARGIN; + try (DocumentSession document = GraphCompose.document(outputFile) + .pageSize(DocumentPageSize.A4) + .margin(m, m, m, m) + .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/invoice/presets/ClassicInvoiceLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ClassicInvoiceLayoutSnapshotTest.java new file mode 100644 index 000000000..140c2f61f --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ClassicInvoiceLayoutSnapshotTest.java @@ -0,0 +1,58 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.TemplateTestSupport; +import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Exact layout snapshot gate for {@link ClassicInvoice} — freezes the + * resolved node geometry the pixel budget cannot see (a small column or + * spacing shift stays under the visual-diff budget but changes the + * snapshot), and the pagination contract of the overflow invoice: the + * forty-line-item fixture flows onto a second page with the repeated + * table header, and the summary + footer follow the table. + * + *

The multi-page contract is guarded here at snapshot level only — + * full-page pixel baselines drift across platforms far more than the + * geometry they would guard (see the budget note in + * {@code InvoiceV2VisualParityTest}), while the snapshot is exact on + * every platform.

+ * + *

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

+ */ +class ClassicInvoiceLayoutSnapshotTest { + + private static DocumentSession open() { + float m = (float) ClassicInvoice.RECOMMENDED_MARGIN; + return GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(m, m, m, m) + .create(); + } + + @Test + void canonicalInvoiceMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = open()) { + ClassicInvoice.create().compose(session, InvoicePresetFixtures.canonicalInvoice()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "classic_invoice_layout", "invoice"); + } + } + + @Test + void overflowInvoicePaginatesOntoSecondPage() throws Exception { + try (DocumentSession session = open()) { + ClassicInvoice.create().compose(session, InvoicePresetFixtures.stressInvoice()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(2); + TemplateTestSupport.assertCanonicalSnapshot( + session, "classic_invoice_stress_layout", "invoice"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ClassicInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ClassicInvoiceSmokeTest.java new file mode 100644 index 000000000..2b1776029 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ClassicInvoiceSmokeTest.java @@ -0,0 +1,83 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.invoice.InvoiceData; +import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Smoke test for the layered invoice pipeline through + * {@link ClassicInvoice} — proves the preset renders an + * {@link InvoiceDocumentSpec} end-to-end on a {@link BrandTheme}, via + * both factory variants, with any theme, and on an empty invoice. + */ +class ClassicInvoiceSmokeTest { + + /** An invoice with no line items, summaries, notes, footer, or status — the empty paths. */ + private static InvoiceDocumentSpec minimalSpec() { + return InvoiceDocumentSpec.from(InvoiceData.builder() + .invoiceNumber("GC-2026-002") + .fromParty(from -> from.name("GraphCompose Studio")) + .billToParty(to -> to.name("Northwind Systems")) + .build()); + } + + private static void render(DocumentTemplate template, + InvoiceDocumentSpec spec) throws Exception { + float m = (float) ClassicInvoice.RECOMMENDED_MARGIN; + try (DocumentSession session = GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(m, m, m, m) + .create()) { + template.compose(session, spec); + assertThat(session.roots()).isNotEmpty(); + // Drive layout + render, not just composition — the zero-row + // summary table of an empty invoice only exists at layout time. + assertThat(session.toPdfBytes()).isNotEmpty(); + } + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = ClassicInvoice.create(); + assertThat(template.id()).isEqualTo(ClassicInvoice.ID); + assertThat(template.displayName()).isEqualTo(ClassicInvoice.DISPLAY_NAME); + } + + @Test + void defaultFactoryRendersWithInvoiceTheme() throws Exception { + // create() wires BrandTheme.invoiceModern() — the variant the example uses. + render(ClassicInvoice.create(), InvoicePresetFixtures.canonicalInvoice()); + } + + @Test + void rendersWithExplicitTheme() throws Exception { + render(ClassicInvoice.create(BrandTheme.invoiceModern()), + InvoicePresetFixtures.canonicalInvoice()); + } + + @Test + void readsAnyTheme() throws Exception { + // Renders under a non-invoice theme without crashing: the header, + // hero, labels, and footer follow the theme; the line-item body + // cells inherit the DSL default (as in ModernInvoice). + render(ClassicInvoice.create(BrandTheme.boxedClassic()), + InvoicePresetFixtures.canonicalInvoice()); + } + + @Test + void rendersEmptyInvoice() throws Exception { + // Exercises the empty-collection paths through full layout and + // render: the skipped Summary section (the engine rejects a + // zero-row table), the empty note / payment lists under their + // always-rendered headings, the skipped footer-note paragraph, + // and the em-dash status fallback. + render(ClassicInvoice.create(), minimalSpec()); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoicePresetFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoicePresetFixtures.java new file mode 100644 index 000000000..e5b401de9 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoicePresetFixtures.java @@ -0,0 +1,112 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.templates.data.invoice.InvoiceData; +import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; + +/** + * Shared fixture data for the invoice preset gates — the SAME specs feed + * the pixel parity test and the layout snapshot test, so a geometry shift + * the pixel budget absorbs still trips the exact snapshot, and vice versa. + */ +final class InvoicePresetFixtures { + + private InvoicePresetFixtures() { + } + + /** + * Canonical sample invoice — exercises the hero, both parties, a + * multi-row line-items table, subtotal / tax / total summary, and the + * notes / payment-terms footer. Kept in qa so the gates depend only + * on main + main-test code. + */ + static InvoiceDocumentSpec canonicalInvoice() { + return InvoiceDocumentSpec.from(InvoiceData.builder() + .title("Invoice") + .invoiceNumber("GC-2026-041") + .issueDate("02 Apr 2026") + .dueDate("16 Apr 2026") + .status("Pending") + .fromParty(from -> from + .name("GraphCompose Studio") + .addressLines("18 Layout Street", "London, UK", "EC1A 4GC") + .email("billing@graphcompose.dev") + .phone("+44 20 5555 1000") + .taxId("GB-99887766")) + .billToParty(to -> to + .name("Northwind Systems") + .addressLines("Attn: Finance Team", "410 Market Avenue", "Manchester, UK") + .email("ap@northwind.example") + .phone("+44 161 555 2200") + .taxId("NW-2026-01")) + .lineItem("Discovery workshop", "Stakeholder interviews", + "1", "GBP 1,450", "GBP 1,450") + .lineItem("Template architecture", "Reusable document flows", + "2", "GBP 980", "GBP 1,960") + .lineItem("Render QA", "Cross-platform pixel diffing", + "3", "GBP 320", "GBP 960") + .lineItem("Developer enablement", "Authoring docs + examples", + "1", "GBP 780", "GBP 780") + .summaryRow("Subtotal", "GBP 5,150") + .summaryRow("VAT (20%)", "GBP 1,030") + .totalRow("Total", "GBP 6,180") + .note("Please include the invoice number on your remittance advice.") + .note("All work was delivered as agreed during the April implementation window.") + .paymentTerm("Payment due within 14 calendar days.") + .paymentTerm("Bank transfer preferred; contact billing@graphcompose.dev for remittance details.") + .paymentTerm("Late payments may delay additional template customization work.") + .footerNote("Thank you for choosing GraphCompose for production document rendering.") + .build()); + } + + /** + * Overflow invoice — forty line items so the table paginates naturally + * and the repeated header + cross-page flow become part of the frozen + * contract. No manual page breaks. + */ + static InvoiceDocumentSpec stressInvoice() { + String[] services = { + "Discovery workshop", "Design system audit", "Template architecture", + "Layout engine tuning", "Render QA pass", "Accessibility review", + "Font pipeline setup", "Chart integration", "Data mapping", + "Pagination hardening", "Visual regression wiring", "Docs authoring", + "Stakeholder demo", "Performance profiling", "Release engineering", + "Support retainer"}; + InvoiceData.Builder builder = InvoiceData.builder() + .title("Invoice") + .invoiceNumber("GC-2026-042") + .issueDate("04 May 2026") + .dueDate("18 May 2026") + .status("Pending") + .fromParty(from -> from + .name("GraphCompose Studio") + .addressLines("18 Layout Street", "London, UK", "EC1A 4GC") + .email("billing@graphcompose.dev") + .phone("+44 20 5555 1000")) + .billToParty(to -> to + .name("Northwind Systems") + .addressLines("Attn: Finance Team", "410 Market Avenue", "Manchester, UK") + .email("ap@northwind.example") + .phone("+44 161 555 2200")); + for (int i = 0; i < 40; i++) { + String service = services[i % services.length]; + int quantity = 1 + i % 4; + int unit = 180 + (i * 37) % 900; + builder.lineItem( + service + " — sprint " + (1 + i / services.length), + "Delivered under the framework agreement", + String.valueOf(quantity), + "GBP " + unit, + "GBP " + (quantity * unit)); + } + return InvoiceDocumentSpec.from(builder + .summaryRow("Subtotal", "GBP 44,890") + .summaryRow("VAT (20%)", "GBP 8,978") + .totalRow("Total", "GBP 53,868") + .note("Sprints 1-3 were delivered under the framework agreement.") + .note("Hardware and third-party licences are billed separately.") + .paymentTerm("Payment due within 14 calendar days.") + .paymentTerm("Bank transfer preferred; contact billing@graphcompose.dev for remittance details.") + .footerNote("Thank you for choosing GraphCompose for production document rendering.") + .build()); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoiceV2VisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoiceV2VisualParityTest.java index 05c05ba7b..b04bd4c37 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoiceV2VisualParityTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoiceV2VisualParityTest.java @@ -4,7 +4,6 @@ import com.demcha.compose.document.api.DocumentPageSize; import com.demcha.compose.document.api.DocumentSession; import com.demcha.compose.document.templates.api.DocumentTemplate; -import com.demcha.compose.document.templates.data.invoice.InvoiceData; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; import com.demcha.compose.testing.visual.PdfVisualRegression; import org.junit.jupiter.params.ParameterizedTest; @@ -69,51 +68,17 @@ private static Stream presets() { return Stream.of( Arguments.of("modern_invoice", ModernInvoice.RECOMMENDED_MARGIN, - (Supplier>) ModernInvoice::create)); + (Supplier>) ModernInvoice::create), + Arguments.of("classic_invoice", + ClassicInvoice.RECOMMENDED_MARGIN, + (Supplier>) ClassicInvoice::create)); } /** - * Canonical sample invoice — exercises the hero, both parties, a - * multi-row line-items table, subtotal / tax / total summary, and the - * notes / payment-terms footer. Kept inline so the test depends only - * on main + main-test code. + * Canonical sample invoice — shared with the layout snapshot gate via + * {@link InvoicePresetFixtures}, so both gates freeze the same render. */ private static InvoiceDocumentSpec canonicalInvoice() { - return InvoiceDocumentSpec.from(InvoiceData.builder() - .title("Invoice") - .invoiceNumber("GC-2026-041") - .issueDate("02 Apr 2026") - .dueDate("16 Apr 2026") - .status("Pending") - .fromParty(from -> from - .name("GraphCompose Studio") - .addressLines("18 Layout Street", "London, UK", "EC1A 4GC") - .email("billing@graphcompose.dev") - .phone("+44 20 5555 1000") - .taxId("GB-99887766")) - .billToParty(to -> to - .name("Northwind Systems") - .addressLines("Attn: Finance Team", "410 Market Avenue", "Manchester, UK") - .email("ap@northwind.example") - .phone("+44 161 555 2200") - .taxId("NW-2026-01")) - .lineItem("Discovery workshop", "Stakeholder interviews", - "1", "GBP 1,450", "GBP 1,450") - .lineItem("Template architecture", "Reusable document flows", - "2", "GBP 980", "GBP 1,960") - .lineItem("Render QA", "Cross-platform pixel diffing", - "3", "GBP 320", "GBP 960") - .lineItem("Developer enablement", "Authoring docs + examples", - "1", "GBP 780", "GBP 780") - .summaryRow("Subtotal", "GBP 5,150") - .summaryRow("VAT (20%)", "GBP 1,030") - .totalRow("Total", "GBP 6,180") - .note("Please include the invoice number on your remittance advice.") - .note("All work was delivered as agreed during the April implementation window.") - .paymentTerm("Payment due within 14 calendar days.") - .paymentTerm("Bank transfer preferred; contact billing@graphcompose.dev for remittance details.") - .paymentTerm("Late payments may delay additional template customization work.") - .footerNote("Thank you for choosing GraphCompose for production document rendering.") - .build()); + return InvoicePresetFixtures.canonicalInvoice(); } } diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/classic_invoice_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/classic_invoice_layout.json new file mode 100644 index 000000000..2bfc96b9b --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/classic_invoice_layout.json @@ -0,0 +1,1007 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 595.276, + "innerHeight" : 841.89, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "Invoice[0]", + "entityName" : "Invoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 0.0, + "computedY" : 191.765, + "placementX" : 0.0, + "placementY" : 191.765, + "placementWidth" : 595.276, + "placementHeight" : 650.125, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 650.125, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 24.0, + "right" : 24.0, + "bottom" : 24.0, + "left" : 24.0 + } + }, { + "path" : "Invoice[0]/Header[0]", + "entityName" : "Header", + "entityKind" : "RowNode", + "parentPath" : "Invoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 769.49, + "placementX" : 24.0, + "placementY" : 769.49, + "placementWidth" : 547.276, + "placementHeight" : 48.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 547.276, + "contentHeight" : 48.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" : "Invoice[0]/Header[0]/HeaderLeft[0]", + "entityName" : "HeaderLeft", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Header[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 24.0, + "computedY" : 790.915, + "placementX" : 24.0, + "placementY" : 790.915, + "placementWidth" : 185.13, + "placementHeight" : 26.975, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.13, + "contentHeight" : 26.975, + "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" : "Invoice[0]/Header[0]/HeaderLeft[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Header[0]/HeaderLeft[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 802.165, + "placementX" : 24.0, + "placementY" : 802.165, + "placementWidth" : 185.13, + "placementHeight" : 15.725, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.13, + "contentHeight" : 15.725, + "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" : "Invoice[0]/Header[0]/HeaderLeft[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Header[0]/HeaderLeft[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 790.915, + "placementX" : 24.0, + "placementY" : 790.915, + "placementWidth" : 73.38, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 73.38, + "contentHeight" : 9.25, + "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" : "Invoice[0]/Header[0]/HeaderRight[1]", + "entityName" : "HeaderRight", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Header[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 306.638, + "computedY" : 769.49, + "placementX" : 306.638, + "placementY" : 769.49, + "placementWidth" : 115.136, + "placementHeight" : 48.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.136, + "contentHeight" : 48.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" : "Invoice[0]/Header[0]/HeaderRight[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Header[0]/HeaderRight[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 791.99, + "placementX" : 306.638, + "placementY" : 791.99, + "placementWidth" : 115.136, + "placementHeight" : 25.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.136, + "contentHeight" : 25.9, + "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" : "Invoice[0]/Header[0]/HeaderRight[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Header[0]/HeaderRight[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 780.74, + "placementX" : 306.638, + "placementY" : 780.74, + "placementWidth" : 60.58, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.58, + "contentHeight" : 9.25, + "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" : "Invoice[0]/Header[0]/HeaderRight[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Header[0]/HeaderRight[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 769.49, + "placementX" : 306.638, + "placementY" : 769.49, + "placementWidth" : 86.72, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.72, + "contentHeight" : 9.25, + "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" : "Invoice[0]/Hero[1]", + "entityName" : "Hero", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 696.365, + "placementX" : 24.0, + "placementY" : 696.365, + "placementWidth" : 538.468, + "placementHeight" : 57.125, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.468, + "contentHeight" : 57.125, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 14.0, + "right" : 14.0, + "bottom" : 14.0, + "left" : 14.0 + } + }, { + "path" : "Invoice[0]/Hero[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Hero[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 38.0, + "computedY" : 729.315, + "placementX" : 38.0, + "placementY" : 729.315, + "placementWidth" : 62.942, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.942, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Hero[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Hero[1]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 38.0, + "computedY" : 710.365, + "placementX" : 38.0, + "placementY" : 710.365, + "placementWidth" : 510.468, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 510.468, + "contentHeight" : 12.95, + "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" : "Invoice[0]/Parties[2]", + "entityName" : "Parties", + "entityKind" : "RowNode", + "parentPath" : "Invoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 599.94, + "placementX" : 24.0, + "placementY" : 599.94, + "placementWidth" : 547.276, + "placementHeight" : 80.425, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 547.276, + "contentHeight" : 80.425, + "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" : "Invoice[0]/Parties[2]/BillTo[0]", + "entityName" : "BillTo", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Parties[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 24.0, + "computedY" : 599.94, + "placementX" : 24.0, + "placementY" : 599.94, + "placementWidth" : 115.709, + "placementHeight" : 80.425, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.709, + "contentHeight" : 80.425, + "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" : "Invoice[0]/Parties[2]/BillTo[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/BillTo[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 670.19, + "placementX" : 24.0, + "placementY" : 670.19, + "placementWidth" : 42.779, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.779, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Parties[2]/BillTo[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/BillTo[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 658.015, + "placementX" : 24.0, + "placementY" : 658.015, + "placementWidth" : 102.685, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.685, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Parties[2]/BillTo[0]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/BillTo[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 599.94, + "placementX" : 24.0, + "placementY" : 599.94, + "placementWidth" : 115.709, + "placementHeight" : 56.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.709, + "contentHeight" : 56.075, + "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" : "Invoice[0]/Parties[2]/From[1]", + "entityName" : "From", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Parties[2]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 306.638, + "computedY" : 599.94, + "placementX" : 306.638, + "placementY" : 599.94, + "placementWidth" : 132.825, + "placementHeight" : 80.425, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.825, + "contentHeight" : 80.425, + "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" : "Invoice[0]/Parties[2]/From[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/From[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 670.19, + "placementX" : 306.638, + "placementY" : 670.19, + "placementWidth" : 32.384, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.384, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Parties[2]/From[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/From[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 658.015, + "placementX" : 306.638, + "placementY" : 658.015, + "placementWidth" : 119.79, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.79, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Parties[2]/From[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/From[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 599.94, + "placementX" : 306.638, + "placementY" : 599.94, + "placementWidth" : 132.825, + "placementHeight" : 56.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.825, + "contentHeight" : 56.075, + "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" : "Invoice[0]/LineItems[3]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "Invoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 449.965, + "placementX" : 24.0, + "placementY" : 449.965, + "placementWidth" : 400.84, + "placementHeight" : 133.975, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 400.84, + "contentHeight" : 133.975, + "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" : "Invoice[0]/Summary[4]", + "entityName" : "Summary", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 353.89, + "placementX" : 24.0, + "placementY" : 353.89, + "placementWidth" : 262.0, + "placementHeight" : 80.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 262.0, + "contentHeight" : 80.075, + "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" : "Invoice[0]/Summary[4]/SummaryTable[0]", + "entityName" : "SummaryTable", + "entityKind" : "TableNode", + "parentPath" : "Invoice[0]/Summary[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 24.0, + "computedY" : 353.89, + "placementX" : 24.0, + "placementY" : 353.89, + "placementWidth" : 262.0, + "placementHeight" : 80.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 262.0, + "contentHeight" : 80.075, + "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" : "Invoice[0]/Footer[5]", + "entityName" : "Footer", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 215.765, + "placementX" : 24.0, + "placementY" : 215.765, + "placementWidth" : 547.276, + "placementHeight" : 122.125, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 547.276, + "contentHeight" : 122.125, + "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" : "Invoice[0]/Footer[5]/FooterRow[0]", + "entityName" : "FooterRow", + "entityKind" : "RowNode", + "parentPath" : "Invoice[0]/Footer[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 24.0, + "computedY" : 247.015, + "placementX" : 24.0, + "placementY" : 247.015, + "placementWidth" : 547.276, + "placementHeight" : 90.875, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 547.276, + "contentHeight" : 90.875, + "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" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoiceNotes[0]", + "entityName" : "InvoiceNotes", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 272.915, + "placementX" : 24.0, + "placementY" : 272.915, + "placementWidth" : 264.214, + "placementHeight" : 64.975, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 264.214, + "contentHeight" : 64.975, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 8.0 + } + }, { + "path" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoiceNotes[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoiceNotes[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 32.0, + "computedY" : 327.715, + "placementX" : 32.0, + "placementY" : 327.715, + "placementWidth" : 30.558, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.558, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoiceNotes[0]/ListNode[1]", + "entityName" : null, + "entityKind" : "ListNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoiceNotes[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 32.0, + "computedY" : 272.915, + "placementX" : 32.0, + "placementY" : 272.915, + "placementWidth" : 256.214, + "placementHeight" : 51.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.214, + "contentHeight" : 51.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" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoicePaymentTerms[1]", + "entityName" : "InvoicePaymentTerms", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 247.015, + "placementX" : 306.638, + "placementY" : 247.015, + "placementWidth" : 253.35, + "placementHeight" : 90.875, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 253.35, + "contentHeight" : 90.875, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 8.0 + } + }, { + "path" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoicePaymentTerms[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoicePaymentTerms[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 314.638, + "computedY" : 327.715, + "placementX" : 314.638, + "placementY" : 327.715, + "placementWidth" : 78.859, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.859, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoicePaymentTerms[1]/ListNode[1]", + "entityName" : null, + "entityKind" : "ListNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoicePaymentTerms[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 314.638, + "computedY" : 247.015, + "placementX" : 314.638, + "placementY" : 247.015, + "placementWidth" : 245.35, + "placementHeight" : 77.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 245.35, + "contentHeight" : 77.7, + "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" : "Invoice[0]/Footer[5]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Footer[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 24.0, + "computedY" : 215.765, + "placementX" : 24.0, + "placementY" : 215.765, + "placementWidth" : 335.71, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 335.71, + "contentHeight" : 9.25, + "margin" : { + "top" : 14.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/layout-snapshots/canonical-templates/invoice/classic_invoice_stress_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/classic_invoice_stress_layout.json new file mode 100644 index 000000000..e76739bd6 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/classic_invoice_stress_layout.json @@ -0,0 +1,1007 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 595.276, + "innerHeight" : 841.89, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, + "totalPages" : 2, + "nodes" : [ { + "path" : "Invoice[0]", + "entityName" : "Invoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 0.0, + "computedY" : -752.535, + "placementX" : 0.0, + "placementY" : -752.535, + "placementWidth" : 595.276, + "placementHeight" : 1594.425, + "startPage" : 0, + "endPage" : 1, + "contentWidth" : 595.276, + "contentHeight" : 1594.425, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 24.0, + "right" : 24.0, + "bottom" : 24.0, + "left" : 24.0 + } + }, { + "path" : "Invoice[0]/Header[0]", + "entityName" : "Header", + "entityKind" : "RowNode", + "parentPath" : "Invoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 769.49, + "placementX" : 24.0, + "placementY" : 769.49, + "placementWidth" : 547.276, + "placementHeight" : 48.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 547.276, + "contentHeight" : 48.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" : "Invoice[0]/Header[0]/HeaderLeft[0]", + "entityName" : "HeaderLeft", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Header[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 24.0, + "computedY" : 790.915, + "placementX" : 24.0, + "placementY" : 790.915, + "placementWidth" : 185.13, + "placementHeight" : 26.975, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.13, + "contentHeight" : 26.975, + "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" : "Invoice[0]/Header[0]/HeaderLeft[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Header[0]/HeaderLeft[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 802.165, + "placementX" : 24.0, + "placementY" : 802.165, + "placementWidth" : 185.13, + "placementHeight" : 15.725, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.13, + "contentHeight" : 15.725, + "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" : "Invoice[0]/Header[0]/HeaderLeft[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Header[0]/HeaderLeft[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 790.915, + "placementX" : 24.0, + "placementY" : 790.915, + "placementWidth" : 73.38, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 73.38, + "contentHeight" : 9.25, + "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" : "Invoice[0]/Header[0]/HeaderRight[1]", + "entityName" : "HeaderRight", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Header[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 306.638, + "computedY" : 769.49, + "placementX" : 306.638, + "placementY" : 769.49, + "placementWidth" : 115.136, + "placementHeight" : 48.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.136, + "contentHeight" : 48.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" : "Invoice[0]/Header[0]/HeaderRight[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Header[0]/HeaderRight[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 791.99, + "placementX" : 306.638, + "placementY" : 791.99, + "placementWidth" : 115.136, + "placementHeight" : 25.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.136, + "contentHeight" : 25.9, + "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" : "Invoice[0]/Header[0]/HeaderRight[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Header[0]/HeaderRight[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 780.74, + "placementX" : 306.638, + "placementY" : 780.74, + "placementWidth" : 60.58, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.58, + "contentHeight" : 9.25, + "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" : "Invoice[0]/Header[0]/HeaderRight[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Header[0]/HeaderRight[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 769.49, + "placementX" : 306.638, + "placementY" : 769.49, + "placementWidth" : 90.05, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.05, + "contentHeight" : 9.25, + "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" : "Invoice[0]/Hero[1]", + "entityName" : "Hero", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 696.365, + "placementX" : 24.0, + "placementY" : 696.365, + "placementWidth" : 544.712, + "placementHeight" : 57.125, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.712, + "contentHeight" : 57.125, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 14.0, + "right" : 14.0, + "bottom" : 14.0, + "left" : 14.0 + } + }, { + "path" : "Invoice[0]/Hero[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Hero[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 38.0, + "computedY" : 729.315, + "placementX" : 38.0, + "placementY" : 729.315, + "placementWidth" : 62.942, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.942, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Hero[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Hero[1]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 38.0, + "computedY" : 710.365, + "placementX" : 38.0, + "placementY" : 710.365, + "placementWidth" : 516.712, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 516.712, + "contentHeight" : 12.95, + "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" : "Invoice[0]/Parties[2]", + "entityName" : "Parties", + "entityKind" : "RowNode", + "parentPath" : "Invoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 599.94, + "placementX" : 24.0, + "placementY" : 599.94, + "placementWidth" : 547.276, + "placementHeight" : 80.425, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 547.276, + "contentHeight" : 80.425, + "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" : "Invoice[0]/Parties[2]/BillTo[0]", + "entityName" : "BillTo", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Parties[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 24.0, + "computedY" : 599.94, + "placementX" : 24.0, + "placementY" : 599.94, + "placementWidth" : 115.709, + "placementHeight" : 80.425, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.709, + "contentHeight" : 80.425, + "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" : "Invoice[0]/Parties[2]/BillTo[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/BillTo[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 670.19, + "placementX" : 24.0, + "placementY" : 670.19, + "placementWidth" : 42.779, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.779, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Parties[2]/BillTo[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/BillTo[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 658.015, + "placementX" : 24.0, + "placementY" : 658.015, + "placementWidth" : 102.685, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.685, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Parties[2]/BillTo[0]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/BillTo[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 599.94, + "placementX" : 24.0, + "placementY" : 599.94, + "placementWidth" : 115.709, + "placementHeight" : 56.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.709, + "contentHeight" : 56.075, + "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" : "Invoice[0]/Parties[2]/From[1]", + "entityName" : "From", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Parties[2]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 306.638, + "computedY" : 599.94, + "placementX" : 306.638, + "placementY" : 599.94, + "placementWidth" : 132.825, + "placementHeight" : 80.425, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.825, + "contentHeight" : 80.425, + "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" : "Invoice[0]/Parties[2]/From[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/From[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 670.19, + "placementX" : 306.638, + "placementY" : 670.19, + "placementWidth" : 32.384, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.384, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Parties[2]/From[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/From[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 658.015, + "placementX" : 306.638, + "placementY" : 658.015, + "placementWidth" : 119.79, + "placementHeight" : 10.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.79, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Parties[2]/From[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Parties[2]/From[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 599.94, + "placementX" : 306.638, + "placementY" : 599.94, + "placementWidth" : 132.825, + "placementHeight" : 56.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.825, + "contentHeight" : 56.075, + "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" : "Invoice[0]/LineItems[3]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "Invoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 18.765, + "placementX" : 24.0, + "placementY" : 18.765, + "placementWidth" : 475.502, + "placementHeight" : 1104.175, + "startPage" : 0, + "endPage" : 1, + "contentWidth" : 475.502, + "contentHeight" : 1104.175, + "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" : "Invoice[0]/Summary[4]", + "entityName" : "Summary", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 180.64, + "placementX" : 24.0, + "placementY" : 180.64, + "placementWidth" : 262.0, + "placementHeight" : 80.075, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 262.0, + "contentHeight" : 80.075, + "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" : "Invoice[0]/Summary[4]/SummaryTable[0]", + "entityName" : "SummaryTable", + "entityKind" : "TableNode", + "parentPath" : "Invoice[0]/Summary[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 24.0, + "computedY" : 180.64, + "placementX" : 24.0, + "placementY" : 180.64, + "placementWidth" : 262.0, + "placementHeight" : 80.075, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 262.0, + "contentHeight" : 80.075, + "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" : "Invoice[0]/Footer[5]", + "entityName" : "Footer", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 24.0, + "computedY" : 68.415, + "placementX" : 24.0, + "placementY" : 68.415, + "placementWidth" : 547.276, + "placementHeight" : 96.225, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 547.276, + "contentHeight" : 96.225, + "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" : "Invoice[0]/Footer[5]/FooterRow[0]", + "entityName" : "FooterRow", + "entityKind" : "RowNode", + "parentPath" : "Invoice[0]/Footer[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 24.0, + "computedY" : 99.665, + "placementX" : 24.0, + "placementY" : 99.665, + "placementWidth" : 547.276, + "placementHeight" : 64.975, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 547.276, + "contentHeight" : 64.975, + "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" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoiceNotes[0]", + "entityName" : "InvoiceNotes", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 24.0, + "computedY" : 99.665, + "placementX" : 24.0, + "placementY" : 99.665, + "placementWidth" : 250.2, + "placementHeight" : 64.975, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 250.2, + "contentHeight" : 64.975, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 8.0 + } + }, { + "path" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoiceNotes[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoiceNotes[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 32.0, + "computedY" : 154.465, + "placementX" : 32.0, + "placementY" : 154.465, + "placementWidth" : 30.558, + "placementHeight" : 10.175, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 30.558, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoiceNotes[0]/ListNode[1]", + "entityName" : null, + "entityKind" : "ListNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoiceNotes[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 32.0, + "computedY" : 99.665, + "placementX" : 32.0, + "placementY" : 99.665, + "placementWidth" : 242.2, + "placementHeight" : 51.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 242.2, + "contentHeight" : 51.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" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoicePaymentTerms[1]", + "entityName" : "InvoicePaymentTerms", + "entityKind" : "SectionNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 99.665, + "placementX" : 306.638, + "placementY" : 99.665, + "placementWidth" : 253.35, + "placementHeight" : 64.975, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 253.35, + "contentHeight" : 64.975, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 8.0 + } + }, { + "path" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoicePaymentTerms[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoicePaymentTerms[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 314.638, + "computedY" : 154.465, + "placementX" : 314.638, + "placementY" : 154.465, + "placementWidth" : 78.859, + "placementHeight" : 10.175, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 78.859, + "contentHeight" : 10.175, + "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" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoicePaymentTerms[1]/ListNode[1]", + "entityName" : null, + "entityKind" : "ListNode", + "parentPath" : "Invoice[0]/Footer[5]/FooterRow[0]/InvoicePaymentTerms[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 314.638, + "computedY" : 99.665, + "placementX" : 314.638, + "placementY" : 99.665, + "placementWidth" : 245.35, + "placementHeight" : 51.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 245.35, + "contentHeight" : 51.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" : "Invoice[0]/Footer[5]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Invoice[0]/Footer[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 24.0, + "computedY" : 68.415, + "placementX" : 24.0, + "placementY" : 68.415, + "placementWidth" : 335.71, + "placementHeight" : 9.25, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 335.71, + "contentHeight" : 9.25, + "margin" : { + "top" : 14.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/invoice-v2-layered/classic_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/classic_invoice-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..a9681f8129fc53fd963f055b33fe47d29c213f1b GIT binary patch literal 86218 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 h-!b@qm4dm`^B>grNFtAGq|U)VC4`!Mf$YAn invoice with a document header band (company name + first + * address line on the left, a 28pt "INVOICE" title with number and + * issue date on the right), a "TOTAL DUE" hero strip, a + * BILL TO / FROM two-column party row, the line-items table, a + * dedicated Summary table composed after the line items + * (subtotal / tax / TOTAL, the last row emphasized), and a notes / + * payment-terms footer. Long invoices paginate naturally: the + * line-items table flows onto the next page with its header repeated, + * and the summary + footer follow the table. The preset carries its + * spacing on the page flow itself (16pt flow spacing, 24pt padding on + * every edge) and expects a zero session margin — see + * {@link #RECOMMENDED_MARGIN}.

+ * + *

Layout traits that distinguish it from {@link ModernInvoice} and are + * part of this preset's visual contract: the header band (Modern has + * none), the party order (BILL TO left, FROM right — Modern renders + * FROM first), the separate Summary table (Modern folds the summary rows + * into the line-items table; this one repeats the line-items column + * pattern and shrink-wraps to its own rows), the fully-rounded hero + * panel (Modern rounds the right edge only), and the dark table-header + * ink on the deep-teal fill (Modern uses the light surface colour). The + * party blocks join address lines, email, and phone only — no tax id + * line.

+ * + *

Ported-render fidelity: the preset reproduces the rendered output + * of the published standalone {@code invoice-classic} template. Three + * traits follow from that and are deliberate: the header always reads + * "INVOICE" — {@link InvoiceData#title()} is not rendered; the + * "TOTAL DUE" strip carries the invoice metadata (number, dates, + * status), not an amount; and the table-header ink stays dark on the + * teal fill. Changing any of them is a redesign of the ported look, + * not a port fix.

+ * + *

The preset reads every shared surface from the + * {@link BrandTheme#invoiceModern()} tokens (palette, Helvetica type + * scale, hero panel radius / padding / accent width). The two ink + * colours below and the geometry constants that have no theme slot + * stay preset-local.

+ */ +public final class ClassicInvoice { + + /** + * Stable template identifier. + */ + public static final String ID = "invoice-classic"; + + /** + * Human-readable display name. + */ + public static final String DISPLAY_NAME = "Classic Invoice"; + + /** + * Recommended session margin (in points). The preset pads the page + * flow itself (24pt on every edge), so the session margin stays zero; + * a non-zero margin would double the page frame. + */ + public static final double RECOMMENDED_MARGIN = 0.0; + + private static final double TABLE_PADDING = 7.0; + + /** + * Flow spacing between the header, hero, parties, table, summary, + * and footer blocks. Intentionally wider than the theme's + * {@code pageFlowSpacing} — the letterhead look breathes more. + */ + private static final double PAGE_SPACING = 16.0; + + /** + * Page-flow padding on every edge — the preset's page frame + * (replaces the session margin, see {@link #RECOMMENDED_MARGIN}). + */ + private static final double PAGE_PADDING = 24.0; + + /** + * Company-name size in the header band — the h2 step of the modern + * business type ladder (between the theme's 11pt banner and 28pt + * headline slots, which is why it has no {@code Typography} slot). + */ + private static final double COMPANY_NAME_SIZE = 17.0; + + /** + * Deep teal used for the INVOICE title, the company name, and the + * line-items table header fill (the modern business primary). + * Same value as {@link ModernInvoice}'s preset-local primary — kept + * preset-local because adding a {@code Palette} slot would change the + * record's public constructor; fold both into a shared slot when the + * palette can grow compatibly. + */ + private static final DocumentColor PRIMARY = DocumentColor.rgb(20, 60, 75); + + /** + * Gold accent for the hero strip, the status read-out, and the footer + * column rules (the modern business accent). Preset-local, same + * rationale as {@link #PRIMARY}. + */ + private static final DocumentColor ACCENT = DocumentColor.rgb(196, 153, 76); + + private ClassicInvoice() { + } + + /** + * Builds the preset with the modern business theme + * ({@link BrandTheme#invoiceModern()}). + * + * @return ready-to-use template + */ + public static DocumentTemplate create() { + return create(BrandTheme.invoiceModern()); + } + + /** + * Builds the preset with a caller-supplied theme, so callers can + * vary the invoice flavour (typography scale, palette) without + * forking this class. + * + * @param theme active theme + * @return ready-to-use template + */ + public static DocumentTemplate create(BrandTheme theme) { + Objects.requireNonNull(theme, "theme"); + return new Template(theme); + } + + private record Template(BrandTheme theme) implements DocumentTemplate { + + @Override + public String id() { + return ID; + } + + @Override + public String displayName() { + return DISPLAY_NAME; + } + + @Override + public void compose(DocumentSession document, InvoiceDocumentSpec spec) { + Objects.requireNonNull(document, "document"); + InvoiceData data = Objects.requireNonNull(spec, "spec").invoice(); + + DocumentColor panelFill = theme.palette().banner(); // soft tan + DocumentColor surface = theme.palette().mainFill(); // cream + DocumentColor rule = theme.palette().rule(); + + DocumentTextStyle titleStyle = DocumentTextStyle.builder() + .fontName(theme.typography().headlineFont()) + .size(theme.typography().sizeHeadline()) + .decoration(DocumentTextDecoration.BOLD) + .color(PRIMARY) + .build(); + DocumentTextStyle companyStyle = DocumentTextStyle.builder() + .fontName(theme.typography().headlineFont()) + .size(COMPANY_NAME_SIZE) + .decoration(DocumentTextDecoration.BOLD) + .color(PRIMARY) + .build(); + DocumentTextStyle labelStyle = theme.bodyBoldStyle(); + DocumentTextStyle bodyStyle = theme.bodyStyle(); + DocumentTextStyle captionStyle = DocumentTextStyle.builder() + .fontName(theme.typography().bodyFont()) + .size(theme.typography().sizeEntrySubtitle()) + .color(theme.palette().muted()) + .build(); + + // Line-item cells intentionally carry NO textStyle — they inherit + // the DSL default table-cell text (same guard as ModernInvoice). + DocumentTableStyle bordered = DocumentTableStyle.builder() + .stroke(DocumentStroke.of(rule, 0.6)) + .padding(DocumentInsets.of(TABLE_PADDING)) + .build(); + // The header keeps the dark body-bold ink on the deep-teal fill — + // the ported template's approved render (Modern uses the light + // surface ink instead). A higher-contrast header is a deliberate + // redesign of the ported look, not a port fix. + DocumentTableStyle headerStyle = DocumentTableStyle.builder() + .fillColor(PRIMARY) + .stroke(DocumentStroke.of(rule, 0.6)) + .padding(DocumentInsets.of(TABLE_PADDING + 1)) + .textStyle(labelStyle) + .build(); + DocumentTableStyle totalStyle = DocumentTableStyle.builder() + .fillColor(panelFill) + .stroke(DocumentStroke.of(rule, 0.6)) + .padding(DocumentInsets.of(TABLE_PADDING + 1)) + .textStyle(labelStyle) + .build(); + + PageFlowBuilder flow = document.dsl().pageFlow() + .name("Invoice") + .spacing(PAGE_SPACING) + .padding(DocumentInsets.of(PAGE_PADDING)) + .addRow("Header", row -> renderHeader(row, data, + companyStyle, titleStyle, captionStyle)) + .addSection("Hero", section -> renderHero(section, data, + panelFill, labelStyle)) + .addRow("Parties", row -> renderParties(row, data, + labelStyle, bodyStyle)) + .addTable(table -> renderLineItems(table, data, + bordered, headerStyle, panelFill, surface)); + // The engine rejects a zero-row table, so an invoice without + // summary rows renders without the Summary section. + if (!data.summaryRows().isEmpty()) { + flow.addSection("Summary", section -> renderSummary(section, data, + bordered, totalStyle)); + } + flow.addSection("Footer", section -> renderFooter(section, data, + labelStyle, captionStyle)) + .build(); + } + + private void renderHeader(RowBuilder row, + InvoiceData data, + DocumentTextStyle companyStyle, + DocumentTextStyle titleStyle, + DocumentTextStyle captionStyle) { + row.spacing(18); + row.weights(1, 1); + row.addSection("HeaderLeft", section -> section + .spacing(2) + .addParagraph(p -> p + .text(data.fromParty().name()) + .textStyle(companyStyle) + .margin(DocumentInsets.zero())) + .addParagraph(p -> p + .text(firstAddressLine(data.fromParty())) + .textStyle(captionStyle) + .margin(DocumentInsets.zero()))); + row.addSection("HeaderRight", section -> section + .spacing(2) + .addParagraph(p -> p + .text("INVOICE") + .textStyle(titleStyle) + .margin(DocumentInsets.zero())) + .addParagraph(p -> p + .text(safe(data.invoiceNumber())) + .textStyle(captionStyle) + .margin(DocumentInsets.zero())) + .addParagraph(p -> p + .text("Issued " + safe(data.issueDate())) + .textStyle(captionStyle) + .margin(DocumentInsets.zero()))); + } + + private void renderHero(SectionBuilder section, + InvoiceData data, + DocumentColor panelFill, + DocumentTextStyle labelStyle) { + // The strip is a metadata read-out — the ported template renders + // no amount after the TOTAL DUE label. + section.softPanel(panelFill, + theme.spacing().bannerCornerRadius(), + theme.spacing().bannerInnerPadding()) + .accentLeft(ACCENT, theme.spacing().accentRuleWidth()) + .spacing(6) + .addParagraph(p -> p + .text("TOTAL DUE") + .textStyle(labelStyle) + .margin(DocumentInsets.zero())) + .addRich(rich -> rich + .plain("Invoice ").bold(safe(data.invoiceNumber())) + .plain(" Issued ").bold(safe(data.issueDate())) + .plain(" Due ").bold(safe(data.dueDate())) + .plain(" Status ").accent(safeStatus(data.status()), ACCENT)); + } + + private void renderParties(RowBuilder row, + InvoiceData data, + DocumentTextStyle labelStyle, + DocumentTextStyle bodyStyle) { + row.spacing(18); + row.weights(1, 1); + row.addSection("BillTo", section -> renderContactBlock( + section, data.billToParty(), "BILL TO", labelStyle, bodyStyle)); + row.addSection("From", section -> renderContactBlock( + section, data.fromParty(), "FROM", labelStyle, bodyStyle)); + } + + private static void renderLineItems(TableBuilder table, + InvoiceData data, + DocumentTableStyle bordered, + DocumentTableStyle headerStyle, + DocumentColor zebraOdd, + DocumentColor zebraEven) { + table.name("LineItems") + .columns( + DocumentTableColumn.auto(), + DocumentTableColumn.fixed(54), + DocumentTableColumn.fixed(96), + DocumentTableColumn.fixed(96)) + .defaultCellStyle(bordered) + .headerRow("Description", "Qty", "Unit", "Amount") + .headerStyle(headerStyle) + .repeatHeader() + .zebra(zebraOdd, zebraEven); + // Only item.description() renders in the cell — the optional + // details string would drive the auto-sized description column + // past the inner page width (same guard as ModernInvoice). + for (InvoiceLineItem item : data.lineItems()) { + table.row(item.description(), item.quantity(), + item.unitPrice(), item.amount()); + } + } + + private static void renderSummary(SectionBuilder section, + InvoiceData data, + DocumentTableStyle bordered, + DocumentTableStyle totalStyle) { + // The summary lives in its own table that repeats the LineItems + // column pattern (auto / 54 / 96 / 96) — the ported template's + // shape. The table shrink-wraps to its own rows (the empty auto + // column collapses), so it renders narrower than the line items + // above. The LAST row is the grand total and renders via + // totalRow for the emphasized style. + section.addTable(summary -> { + summary.name("SummaryTable") + .columns( + DocumentTableColumn.auto(), + DocumentTableColumn.fixed(54), + DocumentTableColumn.fixed(96), + DocumentTableColumn.fixed(96)) + .defaultCellStyle(bordered); + List summaries = data.summaryRows(); + for (int i = 0; i < summaries.size(); i++) { + InvoiceSummaryRow row = summaries.get(i); + if (i == summaries.size() - 1) { + summary.totalRow(totalStyle, "", "", row.label(), row.value()); + } else { + summary.row("", "", row.label(), row.value()); + } + } + }); + } + + private void renderFooter(SectionBuilder section, + InvoiceData data, + DocumentTextStyle labelStyle, + DocumentTextStyle captionStyle) { + section.spacing(8) + .addRow("FooterRow", row -> row + .spacing(18) + .weights(1, 1) + .addSection("InvoiceNotes", col -> col + .accentLeft(ACCENT, 3) + .padding(0, 0, 0, 8) + .spacing(3) + .addParagraph(p -> p + .text("Notes") + .textStyle(labelStyle) + .margin(DocumentInsets.zero())) + .addList(list -> list.items(data.notes()))) + .addSection("InvoicePaymentTerms", col -> col + .accentLeft(ACCENT, 3) + .padding(0, 0, 0, 8) + .spacing(3) + .addParagraph(p -> p + .text("Payment terms") + .textStyle(labelStyle) + .margin(DocumentInsets.zero())) + .addList(list -> list.items(data.paymentTerms())))); + if (!data.footerNote().isBlank()) { + section.addParagraph(p -> p + .text(data.footerNote()) + .textStyle(captionStyle) + .margin(new DocumentInsets(14, 0, 0, 0))); + } + } + + private static void renderContactBlock(SectionBuilder section, + InvoiceParty party, + String label, + DocumentTextStyle labelStyle, + DocumentTextStyle bodyStyle) { + section.spacing(2) + .addParagraph(p -> p + .text(label) + .textStyle(labelStyle) + .margin(DocumentInsets.zero())) + .addParagraph(p -> p + .text(party.name()) + .textStyle(labelStyle) + .margin(DocumentInsets.zero())) + .addParagraph(p -> p + .text(joinAddress(party)) + .textStyle(bodyStyle) + .lineSpacing(1.3) + .margin(DocumentInsets.zero())); + } + } + + private static String firstAddressLine(InvoiceParty party) { + for (String line : party.addressLines()) { + if (line != null && !line.isBlank()) { + return line; + } + } + return ""; + } + + private static String joinAddress(InvoiceParty party) { + StringBuilder builder = new StringBuilder(); + for (String line : party.addressLines()) { + if (line == null || line.isBlank()) { + continue; + } + append(builder, line); + } + if (!party.email().isBlank()) { + append(builder, party.email()); + } + if (!party.phone().isBlank()) { + append(builder, party.phone()); + } + return builder.toString(); + } + + private static void append(StringBuilder builder, String line) { + if (builder.length() > 0) { + builder.append('\n'); + } + builder.append(line); + } + + private static String safeStatus(String status) { + if (status == null || status.isBlank()) { + return "—"; + } + return status; + } + + private static String safe(String value) { + return value == null ? "" : value; + } +} From 2abfa20d5ce0ca45622c58796500faa1691d657a Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Sun, 30 Aug 2026 20:05:30 +0100 Subject: [PATCH 03/85] feat(templates): add the structured proposal document model (#609) --- CHANGELOG.md | 14 + .../data/proposal/ProposalAcceptance.java | 31 +++ .../data/proposal/ProposalBrand.java | 39 +++ .../data/proposal/ProposalDeliverables.java | 34 +++ .../data/proposal/ProposalGlance.java | 43 +++ .../data/proposal/ProposalGoals.java | 41 +++ .../data/proposal/ProposalInvestment.java | 78 ++++++ .../data/proposal/ProposalMetaLine.java | 23 ++ .../data/proposal/ProposalPhaseGrid.java | 70 +++++ .../data/proposal/ProposalScope.java | 46 ++++ .../data/proposal/ProposalSummaryBlock.java | 28 ++ .../data/proposal/ProposalTermsBlock.java | 27 ++ .../data/proposal/ProposalTitleLines.java | 27 ++ .../data/proposal/StructuredProposalData.java | 250 ++++++++++++++++++ .../StructuredProposalDocumentSpec.java | 34 +++ .../templates/data/proposal/package-info.java | 10 + .../proposal/StructuredProposalDataTest.java | 198 ++++++++++++++ 17 files changed, 993 insertions(+) create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalAcceptance.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalBrand.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalDeliverables.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGlance.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGoals.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalInvestment.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalMetaLine.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalPhaseGrid.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalScope.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalSummaryBlock.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTermsBlock.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTitleLines.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalData.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalDocumentSpec.java create mode 100644 templates/src/test/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalDataTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 86f5d9674..58d990d2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ follow semantic versioning; release dates are ISO 8601. ## v2.2.3 — Planned +### Public API + +- **A structured proposal document model.** The proposal family's data layer knew one + shape — a titled run of prose sections with a flat timeline and pricing list — which + cannot carry the structured business proposal: brand marks, an authored multi-line + title, an at-a-glance fact card, goal cells, a numbered scope list, authored + deliverable columns, a phase grid with its own headers, priced rows with a + `Role` (`NONE` / `SUBTOTAL` / `OPTIONAL`) and a total band, and a signing card. + `templates.data.proposal` now carries that second model — + `StructuredProposalData` (+ its section records) wrapped by + `StructuredProposalDocumentSpec` — alongside the narrative one; a preset consumes + the model whose shape it renders. Every component normalizes `null` to its empty + form and freezes its collections, matching the family's existing records. + ### Templates - **A second invoice preset: `ClassicInvoice`.** The letterhead-style invoice — a header diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalAcceptance.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalAcceptance.java new file mode 100644 index 000000000..5c24f4220 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalAcceptance.java @@ -0,0 +1,31 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The signing card that closes a structured proposal: an icon-badged + * heading, the acceptance statement, and the labelled signature fields. + * + * @param heading the section heading + * @param icon the icon token of the section badge + * @param statement the acceptance statement paragraph + * @param fields the signature field labels, in order (e.g. name, date, + * signature) + */ +public record ProposalAcceptance( + String heading, + String icon, + String statement, + List fields) { + + /** + * Normalizes optional fields and freezes the field list. + */ + public ProposalAcceptance { + heading = Objects.requireNonNullElse(heading, ""); + icon = Objects.requireNonNullElse(icon, ""); + statement = Objects.requireNonNullElse(statement, ""); + fields = List.copyOf(Objects.requireNonNullElse(fields, List.of())); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalBrand.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalBrand.java new file mode 100644 index 000000000..ebec53e4f --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalBrand.java @@ -0,0 +1,39 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.Objects; + +/** + * The sender's brand marks for a structured proposal: the logo monogram, + * the two wordmark lines, the tracked document label, and the footer line. + * + *

These are display strings, not identity data — the narrative model's + * {@link ProposalParty} carries the sender's address and contact details; + * this record carries only what the page chrome draws.

+ * + * @param monogram the one- or two-letter logo mark + * @param nameLine1 first wordmark line + * @param nameLine2 second wordmark line + * @param documentLabel the document label, set in tracked capitals + * @param website the website line shown in the footer + * @param footerName the brand name shown in the footer + */ +public record ProposalBrand( + String monogram, + String nameLine1, + String nameLine2, + String documentLabel, + String website, + String footerName) { + + /** + * Normalizes optional fields to empty strings. + */ + public ProposalBrand { + monogram = Objects.requireNonNullElse(monogram, ""); + nameLine1 = Objects.requireNonNullElse(nameLine1, ""); + nameLine2 = Objects.requireNonNullElse(nameLine2, ""); + documentLabel = Objects.requireNonNullElse(documentLabel, ""); + website = Objects.requireNonNullElse(website, ""); + footerName = Objects.requireNonNullElse(footerName, ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalDeliverables.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalDeliverables.java new file mode 100644 index 000000000..e492d92ce --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalDeliverables.java @@ -0,0 +1,34 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The deliverables band of a structured proposal: an icon-badged heading and + * two authored bullet columns. + * + *

The left/right split is authored rather than computed so it can be + * tuned per proposal — moving one long bullet between columns is a data + * revision, not a layout change.

+ * + * @param heading the section heading + * @param icon the icon token of the section badge + * @param leftColumn the bullets of the left column, in order + * @param rightColumn the bullets of the right column, in order + */ +public record ProposalDeliverables( + String heading, + String icon, + List leftColumn, + List rightColumn) { + + /** + * Normalizes optional fields and freezes both columns. + */ + public ProposalDeliverables { + heading = Objects.requireNonNullElse(heading, ""); + icon = Objects.requireNonNullElse(icon, ""); + leftColumn = List.copyOf(Objects.requireNonNullElse(leftColumn, List.of())); + rightColumn = List.copyOf(Objects.requireNonNullElse(rightColumn, List.of())); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGlance.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGlance.java new file mode 100644 index 000000000..2d98f9741 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGlance.java @@ -0,0 +1,43 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The at-a-glance fact card of a structured proposal. + * + * @param heading the card heading + * @param facts the fact rows, in order + */ +public record ProposalGlance(String heading, List facts) { + + /** + * Normalizes optional fields and freezes the fact list. + */ + public ProposalGlance { + heading = Objects.requireNonNullElse(heading, ""); + facts = List.copyOf(Objects.requireNonNullElse(facts, List.of())); + } + + /** + * One fact row: an icon, a quiet label, the value line, and an optional + * parenthetical note. + * + * @param icon the icon token of the fact + * @param label the quiet label above the value + * @param value the emphasized value line + * @param note the optional second value line; empty when the row has none + */ + public record Fact(String icon, String label, String value, String note) { + + /** + * Normalizes optional fields to empty strings. + */ + public Fact { + icon = Objects.requireNonNullElse(icon, ""); + label = Objects.requireNonNullElse(label, ""); + value = Objects.requireNonNullElse(value, ""); + note = Objects.requireNonNullElse(note, ""); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGoals.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGoals.java new file mode 100644 index 000000000..f4513d142 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGoals.java @@ -0,0 +1,41 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The project-goals band of a structured proposal: an icon-badged heading + * and a horizontal run of icon-beside-text goal cells. + * + * @param heading the section heading + * @param icon the icon token of the section badge + * @param items the goal cells, in order + */ +public record ProposalGoals(String heading, String icon, List items) { + + /** + * Normalizes optional fields and freezes the goal list. + */ + public ProposalGoals { + heading = Objects.requireNonNullElse(heading, ""); + icon = Objects.requireNonNullElse(icon, ""); + items = List.copyOf(Objects.requireNonNullElse(items, List.of())); + } + + /** + * One goal cell. + * + * @param icon the icon token of the goal + * @param text the goal statement + */ + public record Goal(String icon, String text) { + + /** + * Normalizes optional fields to empty strings. + */ + public Goal { + icon = Objects.requireNonNullElse(icon, ""); + text = Objects.requireNonNullElse(text, ""); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalInvestment.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalInvestment.java new file mode 100644 index 000000000..5df8593a9 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalInvestment.java @@ -0,0 +1,78 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The priced block of a structured proposal: an icon-badged heading, the + * authored table headers, the priced rows with their roles, and the total + * band. + * + *

Distinct from the narrative model's {@link ProposalPricingRow}: a row + * here names its role through {@link Role} — presets are expected to set + * subtotal and optional rows apart — and the grand total is its own + * labelled band rather than the last row of the list.

+ * + * @param heading the section heading + * @param icon the icon token of the section badge + * @param itemHeader the header label of the item column + * @param amountHeader the header label of the amount column + * @param rows the priced rows, in order + * @param totalLabel the label of the total band + * @param totalAmount the amount of the total band + */ +public record ProposalInvestment( + String heading, + String icon, + String itemHeader, + String amountHeader, + List rows, + String totalLabel, + String totalAmount) { + + /** + * Normalizes optional fields and freezes the row list. + */ + public ProposalInvestment { + heading = Objects.requireNonNullElse(heading, ""); + icon = Objects.requireNonNullElse(icon, ""); + itemHeader = Objects.requireNonNullElse(itemHeader, ""); + amountHeader = Objects.requireNonNullElse(amountHeader, ""); + rows = List.copyOf(Objects.requireNonNullElse(rows, List.of())); + totalLabel = Objects.requireNonNullElse(totalLabel, ""); + totalAmount = Objects.requireNonNullElse(totalAmount, ""); + } + + /** + * One priced row. + * + * @param label the row label + * @param amount the row amount text + * @param role the row's role; {@code null} normalizes to + * {@link Role#NONE} + */ + public record Row(String label, String amount, Role role) { + + /** + * Normalizes optional fields. + */ + public Row { + label = Objects.requireNonNullElse(label, ""); + amount = Objects.requireNonNullElse(amount, ""); + role = Objects.requireNonNullElse(role, Role.NONE); + } + } + + /** + * The role of a priced row — named for what the row is, not for how it + * looks, so a theme change moves the styling without touching the data. + */ + public enum Role { + /** An ordinary priced row. */ + NONE, + /** A subtotal row; presets are expected to set it apart. */ + SUBTOTAL, + /** An optional line item; presets are expected to mark its amount. */ + OPTIONAL + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalMetaLine.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalMetaLine.java new file mode 100644 index 000000000..307550619 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalMetaLine.java @@ -0,0 +1,23 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.Objects; + +/** + * The prepared-for / prepared-by / date line under a structured proposal's + * title. + * + * @param preparedFor the client the proposal is prepared for + * @param preparedBy the sender the proposal is prepared by + * @param date the proposal date text + */ +public record ProposalMetaLine(String preparedFor, String preparedBy, String date) { + + /** + * Normalizes optional fields to empty strings. + */ + public ProposalMetaLine { + preparedFor = Objects.requireNonNullElse(preparedFor, ""); + preparedBy = Objects.requireNonNullElse(preparedBy, ""); + date = Objects.requireNonNullElse(date, ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalPhaseGrid.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalPhaseGrid.java new file mode 100644 index 000000000..2ba78d402 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalPhaseGrid.java @@ -0,0 +1,70 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The phase grid of a structured proposal: an icon-badged heading, the + * authored column headers, and one row per phase. + * + *

Distinct from the narrative model's {@link ProposalTimelineItem}: a + * phase carries a number, a focus column and an output column, and the grid + * owns its header labels — the narrative timeline is a phase/duration/details + * triple with preset-owned headers.

+ * + *

Unlike {@link ProposalInvestment}, whose two columns are fixed by the + * concept and therefore named fields, the phase grid's column set belongs + * to the preset that draws it — so the headers stay an authored list in + * column order. A preset validates that the list carries one label per + * column it renders; the data layer does not fix the count.

+ * + * @param heading the section heading + * @param icon the icon token of the section badge + * @param columnHeaders the grid's header labels, one per rendered column, + * in column order + * @param phases the phase rows, in order + */ +public record ProposalPhaseGrid( + String heading, + String icon, + List columnHeaders, + List phases) { + + /** + * Normalizes optional fields and freezes both lists. + */ + public ProposalPhaseGrid { + heading = Objects.requireNonNullElse(heading, ""); + icon = Objects.requireNonNullElse(icon, ""); + columnHeaders = List.copyOf(Objects.requireNonNullElse(columnHeaders, List.of())); + phases = List.copyOf(Objects.requireNonNullElse(phases, List.of())); + } + + /** + * One phase row of the grid. + * + * @param number the phase number, as authored (e.g. {@code "1"}) + * @param name the phase name + * @param focus what the phase concentrates on + * @param duration the phase duration text + * @param output what the phase delivers + */ + public record Phase( + String number, + String name, + String focus, + String duration, + String output) { + + /** + * Normalizes optional fields to empty strings. + */ + public Phase { + number = Objects.requireNonNullElse(number, ""); + name = Objects.requireNonNullElse(name, ""); + focus = Objects.requireNonNullElse(focus, ""); + duration = Objects.requireNonNullElse(duration, ""); + output = Objects.requireNonNullElse(output, ""); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalScope.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalScope.java new file mode 100644 index 000000000..7b828bfd1 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalScope.java @@ -0,0 +1,46 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The numbered scope-of-work list of a structured proposal. + * + *

Distinct from the narrative model's {@link ProposalSection}: a scope + * item is a numbered title-plus-description row, not a titled run of + * paragraphs.

+ * + * @param heading the section heading + * @param icon the icon token of the section badge + * @param items the numbered scope rows, in order + */ +public record ProposalScope(String heading, String icon, List items) { + + /** + * Normalizes optional fields and freezes the item list. + */ + public ProposalScope { + heading = Objects.requireNonNullElse(heading, ""); + icon = Objects.requireNonNullElse(icon, ""); + items = List.copyOf(Objects.requireNonNullElse(items, List.of())); + } + + /** + * One numbered scope row. + * + * @param number the step number, as authored (e.g. {@code "01"}) + * @param title the step title + * @param description the step description + */ + public record Item(String number, String title, String description) { + + /** + * Normalizes optional fields to empty strings. + */ + public Item { + number = Objects.requireNonNullElse(number, ""); + title = Objects.requireNonNullElse(title, ""); + description = Objects.requireNonNullElse(description, ""); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalSummaryBlock.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalSummaryBlock.java new file mode 100644 index 000000000..0a713576d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalSummaryBlock.java @@ -0,0 +1,28 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The executive-summary block of a structured proposal: an icon-badged + * heading and its body paragraphs. + * + *

The narrative model's {@link ProposalData#executiveSummary()} is one + * paragraph with a preset-owned heading; this block owns its heading, its + * icon token, and as many paragraphs as the author wrote.

+ * + * @param heading the section heading, as authored + * @param icon the icon token of the section badge + * @param paragraphs the summary paragraphs, in order + */ +public record ProposalSummaryBlock(String heading, String icon, List paragraphs) { + + /** + * Normalizes optional fields and freezes the paragraph list. + */ + public ProposalSummaryBlock { + heading = Objects.requireNonNullElse(heading, ""); + icon = Objects.requireNonNullElse(icon, ""); + paragraphs = List.copyOf(Objects.requireNonNullElse(paragraphs, List.of())); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTermsBlock.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTermsBlock.java new file mode 100644 index 000000000..28bcfaa92 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTermsBlock.java @@ -0,0 +1,27 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The bulleted terms block of a structured proposal. + * + *

Distinct from the narrative model's {@link ProposalData#acceptanceTerms()}: + * this block owns its heading and icon and is its own section, not part of + * the acceptance card.

+ * + * @param heading the section heading + * @param icon the icon token of the section badge + * @param items the term bullets, in order + */ +public record ProposalTermsBlock(String heading, String icon, List items) { + + /** + * Normalizes optional fields and freezes the item list. + */ + public ProposalTermsBlock { + heading = Objects.requireNonNullElse(heading, ""); + icon = Objects.requireNonNullElse(icon, ""); + items = List.copyOf(Objects.requireNonNullElse(items, List.of())); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTitleLines.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTitleLines.java new file mode 100644 index 000000000..6514d732d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTitleLines.java @@ -0,0 +1,27 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.Objects; + +/** + * The display title of a structured proposal, as up to three authored lines. + * + *

The lines are separate fields rather than one string with newlines + * because presets are expected to set the lead line apart from the other + * two typographically — the split carries the emphasis and is part of the + * content, not of the layout.

+ * + * @param lead the first title line + * @param second the second title line + * @param third the third title line + */ +public record ProposalTitleLines(String lead, String second, String third) { + + /** + * Normalizes optional lines to empty strings. + */ + public ProposalTitleLines { + lead = Objects.requireNonNullElse(lead, ""); + second = Objects.requireNonNullElse(second, ""); + third = Objects.requireNonNullElse(third, ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalData.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalData.java new file mode 100644 index 000000000..e1847c45c --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalData.java @@ -0,0 +1,250 @@ +package com.demcha.compose.document.templates.data.proposal; + +/** + * Display-oriented input for structured proposal documents. + * + *

The narrative model ({@link ProposalData}) is a titled run of prose + * sections; this model is the structured business proposal: brand marks, an + * authored multi-line title, an at-a-glance fact card, goal cells, a + * numbered scope list, two deliverable columns, a phase grid, a priced + * investment block with row roles, a terms block, and a signing card. The + * sections own their headings and icon tokens (the glance card carries a + * heading only — its icons live on the individual facts), so the section + * wording is content, not a preset choice.

+ * + *

Both models stay: a preset consumes the one whose shape it renders. + * Every component normalizes {@code null} to its empty form, so a partial + * document composes without null checks in preset code. The section records + * construct positionally; this builder is where a document is assembled.

+ * + * @param brand the sender's brand marks + * @param title the authored title lines + * @param meta the prepared-for / prepared-by / date line + * @param executiveSummary the executive-summary block + * @param glance the at-a-glance fact card + * @param goals the project-goals band + * @param scope the numbered scope-of-work list + * @param deliverables the two-column deliverables band + * @param timeline the phase grid (the structured counterpart of the + * narrative model's {@code timeline()}) + * @param investment the priced block + * @param terms the bulleted terms block + * @param acceptance the signing card + */ +public record StructuredProposalData( + ProposalBrand brand, + ProposalTitleLines title, + ProposalMetaLine meta, + ProposalSummaryBlock executiveSummary, + ProposalGlance glance, + ProposalGoals goals, + ProposalScope scope, + ProposalDeliverables deliverables, + ProposalPhaseGrid timeline, + ProposalInvestment investment, + ProposalTermsBlock terms, + ProposalAcceptance acceptance) { + + /** + * Normalizes absent components to their empty forms. + */ + public StructuredProposalData { + brand = brand == null + ? new ProposalBrand(null, null, null, null, null, null) : brand; + title = title == null + ? new ProposalTitleLines(null, null, null) : title; + meta = meta == null + ? new ProposalMetaLine(null, null, null) : meta; + executiveSummary = executiveSummary == null + ? new ProposalSummaryBlock(null, null, null) : executiveSummary; + glance = glance == null + ? new ProposalGlance(null, null) : glance; + goals = goals == null + ? new ProposalGoals(null, null, null) : goals; + scope = scope == null + ? new ProposalScope(null, null, null) : scope; + deliverables = deliverables == null + ? new ProposalDeliverables(null, null, null, null) : deliverables; + timeline = timeline == null + ? new ProposalPhaseGrid(null, null, null, null) : timeline; + investment = investment == null + ? new ProposalInvestment(null, null, null, null, null, null, null) : investment; + terms = terms == null + ? new ProposalTermsBlock(null, null, null) : terms; + acceptance = acceptance == null + ? new ProposalAcceptance(null, null, null, null) : acceptance; + } + + /** + * Starts a fluent structured proposal data builder. + * + * @return structured proposal data builder + */ + public static Builder builder() { + return new Builder(); + } + + /** + * Fluent builder for complete structured proposal content. + */ + public static final class Builder { + private ProposalBrand brand; + private ProposalTitleLines title; + private ProposalMetaLine meta; + private ProposalSummaryBlock executiveSummary; + private ProposalGlance glance; + private ProposalGoals goals; + private ProposalScope scope; + private ProposalDeliverables deliverables; + private ProposalPhaseGrid timeline; + private ProposalInvestment investment; + private ProposalTermsBlock terms; + private ProposalAcceptance acceptance; + + private Builder() { + } + + /** + * Sets the sender's brand marks. + * + * @param brand brand marks + * @return this builder + */ + public Builder brand(ProposalBrand brand) { + this.brand = brand; + return this; + } + + /** + * Sets the authored title lines. + * + * @param title title lines + * @return this builder + */ + public Builder title(ProposalTitleLines title) { + this.title = title; + return this; + } + + /** + * Sets the prepared-for / prepared-by / date line. + * + * @param meta meta line + * @return this builder + */ + public Builder meta(ProposalMetaLine meta) { + this.meta = meta; + return this; + } + + /** + * Sets the executive-summary block. + * + * @param executiveSummary summary block + * @return this builder + */ + public Builder executiveSummary(ProposalSummaryBlock executiveSummary) { + this.executiveSummary = executiveSummary; + return this; + } + + /** + * Sets the at-a-glance fact card. + * + * @param glance fact card + * @return this builder + */ + public Builder glance(ProposalGlance glance) { + this.glance = glance; + return this; + } + + /** + * Sets the project-goals band. + * + * @param goals goals band + * @return this builder + */ + public Builder goals(ProposalGoals goals) { + this.goals = goals; + return this; + } + + /** + * Sets the numbered scope-of-work list. + * + * @param scope scope list + * @return this builder + */ + public Builder scope(ProposalScope scope) { + this.scope = scope; + return this; + } + + /** + * Sets the two-column deliverables band. + * + * @param deliverables deliverables band + * @return this builder + */ + public Builder deliverables(ProposalDeliverables deliverables) { + this.deliverables = deliverables; + return this; + } + + /** + * Sets the phase grid. + * + * @param timeline phase grid + * @return this builder + */ + public Builder timeline(ProposalPhaseGrid timeline) { + this.timeline = timeline; + return this; + } + + /** + * Sets the priced block. + * + * @param investment priced block + * @return this builder + */ + public Builder investment(ProposalInvestment investment) { + this.investment = investment; + return this; + } + + /** + * Sets the bulleted terms block. + * + * @param terms terms block + * @return this builder + */ + public Builder terms(ProposalTermsBlock terms) { + this.terms = terms; + return this; + } + + /** + * Sets the signing card. + * + * @param acceptance signing card + * @return this builder + */ + public Builder acceptance(ProposalAcceptance acceptance) { + this.acceptance = acceptance; + return this; + } + + /** + * Builds the normalized structured proposal data. + * + * @return structured proposal data + */ + public StructuredProposalData build() { + return new StructuredProposalData(brand, title, meta, executiveSummary, + glance, goals, scope, deliverables, timeline, investment, + terms, acceptance); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalDocumentSpec.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalDocumentSpec.java new file mode 100644 index 000000000..72384d5c2 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalDocumentSpec.java @@ -0,0 +1,34 @@ +package com.demcha.compose.document.templates.data.proposal; + +/** + * Public compose-first input for structured proposal templates. + * + *

Authoring role: the document-level object structured proposal + * presets are parameterised on, the way narrative presets are parameterised + * on {@link ProposalDocumentSpec}. Presets that render the structured shape + * — brand marks, fact card, goal cells, phase grid, priced block, signing + * card — consume this spec; presets that render prose sections stay on the + * narrative one.

+ * + * @param proposal normalized structured proposal content + */ +public record StructuredProposalDocumentSpec(StructuredProposalData proposal) { + + /** + * Creates a normalized structured proposal document spec. + */ + public StructuredProposalDocumentSpec { + proposal = proposal == null ? StructuredProposalData.builder().build() : proposal; + } + + /** + * Wraps existing structured proposal data in the document-level spec + * expected by structured proposal templates. + * + * @param proposal structured proposal data + * @return document spec + */ + public static StructuredProposalDocumentSpec from(StructuredProposalData proposal) { + return new StructuredProposalDocumentSpec(proposal); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/package-info.java index 81af11751..62ae78a5d 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/package-info.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/package-info.java @@ -1,5 +1,15 @@ /** * Shared, render-neutral proposal document specs and supporting data * records, consumed by the layered {@code proposal.presets} presets. + * + *

Two document models live here, and a preset consumes the one whose + * shape it renders: the narrative model + * ({@link com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec} + * — a titled run of prose sections with a flat timeline and pricing list) + * and the structured model + * ({@link com.demcha.compose.document.templates.data.proposal.StructuredProposalDocumentSpec} + * — brand marks, fact card, goal cells, numbered scope, phase grid, priced + * block with row roles, and a signing card, the sections owning their + * headings and icon tokens).

*/ package com.demcha.compose.document.templates.data.proposal; diff --git a/templates/src/test/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalDataTest.java b/templates/src/test/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalDataTest.java new file mode 100644 index 000000000..3d2c96ac1 --- /dev/null +++ b/templates/src/test/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalDataTest.java @@ -0,0 +1,198 @@ +package com.demcha.compose.document.templates.data.proposal; + +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Normalization and immutability contract of the structured proposal model: + * absent components become their empty forms, leaf strings never surface as + * {@code null}, row roles default to {@code NONE}, and every collection is + * frozen at construction. + */ +class StructuredProposalDataTest { + + @Test + void emptyBuilderYieldsEmptyFormsForEveryComponent() { + StructuredProposalData data = StructuredProposalData.builder().build(); + + assertThat(data.brand().monogram()).isEmpty(); + assertThat(data.title().lead()).isEmpty(); + assertThat(data.meta().preparedFor()).isEmpty(); + assertThat(data.executiveSummary().paragraphs()).isEmpty(); + assertThat(data.glance().facts()).isEmpty(); + assertThat(data.goals().items()).isEmpty(); + assertThat(data.scope().items()).isEmpty(); + assertThat(data.deliverables().leftColumn()).isEmpty(); + assertThat(data.deliverables().rightColumn()).isEmpty(); + assertThat(data.timeline().columnHeaders()).isEmpty(); + assertThat(data.timeline().phases()).isEmpty(); + assertThat(data.investment().rows()).isEmpty(); + assertThat(data.terms().items()).isEmpty(); + assertThat(data.acceptance().fields()).isEmpty(); + } + + @Test + void leafRecordsNormalizeNullStringsToEmpty() { + ProposalGlance.Fact fact = new ProposalGlance.Fact(null, null, null, null); + assertThat(fact.icon()).isEmpty(); + assertThat(fact.label()).isEmpty(); + assertThat(fact.value()).isEmpty(); + assertThat(fact.note()).isEmpty(); + + ProposalGoals.Goal goal = new ProposalGoals.Goal(null, null); + assertThat(goal.icon()).isEmpty(); + assertThat(goal.text()).isEmpty(); + + ProposalScope.Item item = new ProposalScope.Item(null, null, null); + assertThat(item.number()).isEmpty(); + assertThat(item.title()).isEmpty(); + assertThat(item.description()).isEmpty(); + + ProposalPhaseGrid.Phase phase = new ProposalPhaseGrid.Phase(null, null, null, null, null); + assertThat(phase.number()).isEmpty(); + assertThat(phase.name()).isEmpty(); + assertThat(phase.focus()).isEmpty(); + assertThat(phase.duration()).isEmpty(); + assertThat(phase.output()).isEmpty(); + + ProposalInvestment.Row row = new ProposalInvestment.Row(null, null, null); + assertThat(row.label()).isEmpty(); + assertThat(row.amount()).isEmpty(); + + ProposalMetaLine meta = new ProposalMetaLine(null, null, null); + assertThat(meta.preparedFor()).isEmpty(); + assertThat(meta.preparedBy()).isEmpty(); + assertThat(meta.date()).isEmpty(); + + ProposalTitleLines title = new ProposalTitleLines(null, null, null); + assertThat(title.lead()).isEmpty(); + assertThat(title.second()).isEmpty(); + assertThat(title.third()).isEmpty(); + } + + @Test + void sectionHeadingsAndIconsNormalizeNullToEmpty() { + assertThat(new ProposalSummaryBlock(null, null, null).heading()).isEmpty(); + assertThat(new ProposalSummaryBlock(null, null, null).icon()).isEmpty(); + assertThat(new ProposalGlance(null, null).heading()).isEmpty(); + assertThat(new ProposalGoals(null, null, null).icon()).isEmpty(); + assertThat(new ProposalScope(null, null, null).heading()).isEmpty(); + assertThat(new ProposalDeliverables(null, null, null, null).icon()).isEmpty(); + assertThat(new ProposalPhaseGrid(null, null, null, null).heading()).isEmpty(); + assertThat(new ProposalInvestment(null, null, null, null, null, null, null) + .amountHeader()).isEmpty(); + assertThat(new ProposalTermsBlock(null, null, null).icon()).isEmpty(); + assertThat(new ProposalAcceptance(null, null, null, null).statement()).isEmpty(); + assertThat(new ProposalBrand(null, null, null, null, null, null).footerName()).isEmpty(); + } + + @Test + void investmentRowRoleDefaultsToNone() { + ProposalInvestment.Row row = new ProposalInvestment.Row("Design", "$1,000", null); + assertThat(row.role()).isEqualTo(ProposalInvestment.Role.NONE); + } + + @Test + void everyCollectionIsFrozenAtConstruction() { + List source = new ArrayList<>(List.of("seed")); + ProposalDeliverables deliverables = + new ProposalDeliverables("DELIVERABLES", "badge-deliverables", source, source); + source.add("added after construction"); + assertThat(deliverables.leftColumn()).containsExactly("seed"); + assertThat(deliverables.rightColumn()).containsExactly("seed"); + + List> frozen = List.of( + deliverables.leftColumn(), + deliverables.rightColumn(), + new ProposalSummaryBlock("S", "i", new ArrayList<>()).paragraphs(), + new ProposalGlance("G", new ArrayList<>()).facts(), + new ProposalGoals("G", "i", new ArrayList<>()).items(), + new ProposalScope("S", "i", new ArrayList<>()).items(), + new ProposalPhaseGrid("T", "i", new ArrayList<>(), new ArrayList<>()).columnHeaders(), + new ProposalPhaseGrid("T", "i", new ArrayList<>(), new ArrayList<>()).phases(), + new ProposalInvestment("I", "i", "ITEM", "AMOUNT", + new ArrayList<>(), "TOTAL", "$0").rows(), + new ProposalTermsBlock("T", "i", new ArrayList<>()).items(), + new ProposalAcceptance("A", "i", "s", new ArrayList<>()).fields()); + for (List list : frozen) { + assertThatThrownBy(() -> list.remove(0)) + .isInstanceOf(UnsupportedOperationException.class); + } + } + + @Test + void builderPassesEveryComponentThroughUnchanged() { + ProposalBrand brand = new ProposalBrand("N", "Northline", "Digital Studio", + "Proposal", "northline.example", "Northline Digital"); + ProposalTitleLines title = new ProposalTitleLines("A proposal", "for the", "redesign"); + ProposalMetaLine meta = new ProposalMetaLine("Client", "Studio", "2026-08-30"); + ProposalSummaryBlock summary = new ProposalSummaryBlock("SUMMARY", "badge-summary", + List.of("First paragraph.")); + ProposalGlance glance = new ProposalGlance("AT A GLANCE", + List.of(new ProposalGlance.Fact("fact-start", "START", "Sep 2026", ""))); + ProposalGoals goals = new ProposalGoals("GOALS", "badge-goals", + List.of(new ProposalGoals.Goal("goal-brand", "Sharpen the brand"))); + ProposalScope scope = new ProposalScope("SCOPE", "badge-scope", + List.of(new ProposalScope.Item("01", "Discovery", "Interviews and audit"))); + ProposalDeliverables deliverables = new ProposalDeliverables("DELIVERABLES", + "badge-deliverables", List.of("Style guide"), List.of("Launch support")); + ProposalPhaseGrid timeline = new ProposalPhaseGrid("TIMELINE", "badge-timeline", + List.of("PHASE", "FOCUS", "DURATION", "OUTPUT"), + List.of(new ProposalPhaseGrid.Phase("1", "Discovery", "Research", + "2 weeks", "Findings deck"))); + ProposalInvestment investment = new ProposalInvestment("INVESTMENT", + "badge-investment", "ITEM", "AMOUNT", + List.of(new ProposalInvestment.Row("Subtotal", "$9,000", + ProposalInvestment.Role.SUBTOTAL)), + "TOTAL", "$9,900"); + ProposalTermsBlock terms = new ProposalTermsBlock("TERMS", "badge-terms", + List.of("Net 14.")); + ProposalAcceptance acceptance = new ProposalAcceptance("ACCEPTANCE", + "badge-acceptance", "Signing below accepts this proposal.", + List.of("Name", "Date", "Signature")); + + StructuredProposalData data = StructuredProposalData.builder() + .brand(brand) + .title(title) + .meta(meta) + .executiveSummary(summary) + .glance(glance) + .goals(goals) + .scope(scope) + .deliverables(deliverables) + .timeline(timeline) + .investment(investment) + .terms(terms) + .acceptance(acceptance) + .build(); + + assertThat(data.brand()).isSameAs(brand); + assertThat(data.title()).isSameAs(title); + assertThat(data.meta()).isSameAs(meta); + assertThat(data.executiveSummary()).isSameAs(summary); + assertThat(data.glance()).isSameAs(glance); + assertThat(data.goals()).isSameAs(goals); + assertThat(data.scope()).isSameAs(scope); + assertThat(data.deliverables()).isSameAs(deliverables); + assertThat(data.timeline()).isSameAs(timeline); + assertThat(data.investment()).isSameAs(investment); + assertThat(data.terms()).isSameAs(terms); + assertThat(data.acceptance()).isSameAs(acceptance); + assertThat(data.investment().rows().get(0).role()) + .isEqualTo(ProposalInvestment.Role.SUBTOTAL); + } + + @Test + void documentSpecNormalizesNullProposalToEmptyData() { + assertThat(StructuredProposalDocumentSpec.from(null).proposal()).isNotNull(); + assertThat(new StructuredProposalDocumentSpec(null).proposal().glance().facts()).isEmpty(); + + StructuredProposalData data = StructuredProposalData.builder().build(); + assertThat(StructuredProposalDocumentSpec.from(data).proposal()).isSameAs(data); + } +} From 6e340717f721e18cf3766f949727acc668c572ac Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Sun, 30 Aug 2026 20:13:59 +0100 Subject: [PATCH 04/85] feat(templates): add the NorthlineProposal structured proposal preset (#610) --- CHANGELOG.md | 14 + .../readme/examples/proposal-northline-v2.pdf | Bin 0 -> 74590 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../examples/support/ShowcaseMetadata.java | 1 + .../support/StructuredProposalSampleData.java | 147 + .../v2/NorthlineProposalV2Example.java | 53 + .../presets/NorthlineProposalFixtures.java | 149 + .../NorthlineProposalLayoutSnapshotTest.java | 34 + .../presets/NorthlineProposalSmokeTest.java | 127 + .../NorthlineProposalVisualParityTest.java | 48 + .../proposal/northline_proposal_layout.json | 5267 +++++++++++++++++ .../northline_proposal-page-0.png | Bin 0 -> 116268 bytes .../northline_proposal-page-1.png | Bin 0 -> 89800 bytes .../proposal/presets/NorthlineIcons.java | 55 + .../proposal/presets/NorthlinePageOne.java | 350 ++ .../proposal/presets/NorthlinePageTwo.java | 333 ++ .../proposal/presets/NorthlineProposal.java | 164 + .../proposal/presets/NorthlineStyles.java | 204 + .../proposal/presets/NorthlineWidgets.java | 208 + .../northline/icons/badge-acceptance.png | Bin 0 -> 1540 bytes .../northline/icons/badge-deliverables.png | Bin 0 -> 2548 bytes .../proposal/northline/icons/badge-goals.png | Bin 0 -> 2427 bytes .../northline/icons/badge-investment.png | Bin 0 -> 2019 bytes .../proposal/northline/icons/badge-scope.png | Bin 0 -> 1159 bytes .../northline/icons/badge-summary.png | Bin 0 -> 1168 bytes .../proposal/northline/icons/badge-terms.png | Bin 0 -> 1085 bytes .../northline/icons/badge-timeline.png | Bin 0 -> 1171 bytes .../proposal/northline/icons/fact-contact.png | Bin 0 -> 2946 bytes .../northline/icons/fact-duration.png | Bin 0 -> 1400 bytes .../proposal/northline/icons/fact-start.png | Bin 0 -> 4924 bytes .../northline/icons/fact-validity.png | Bin 0 -> 4754 bytes .../proposal/northline/icons/goal-brand.png | Bin 0 -> 4269 bytes .../proposal/northline/icons/goal-growth.png | Bin 0 -> 2874 bytes .../proposal/northline/icons/goal-message.png | Bin 0 -> 1375 bytes .../northline/icons/goal-usability.png | Bin 0 -> 1367 bytes 35 files changed, 7156 insertions(+) create mode 100644 assets/readme/examples/proposal-northline-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/StructuredProposalSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/proposal/v2/NorthlineProposalV2Example.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/proposal/northline_proposal_layout.json create mode 100644 qa/src/test/resources/visual-baselines/proposal-v2-layered/northline_proposal-page-0.png create mode 100644 qa/src/test/resources/visual-baselines/proposal-v2-layered/northline_proposal-page-1.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlinePageOne.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlinePageTwo.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposal.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineWidgets.java create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/badge-acceptance.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/badge-deliverables.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/badge-goals.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/badge-investment.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/badge-scope.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/badge-summary.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/badge-terms.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/badge-timeline.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/fact-contact.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/fact-duration.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/fact-start.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/fact-validity.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/goal-brand.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/goal-growth.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/goal-message.png create mode 100644 templates/src/main/resources/templates/proposal/northline/icons/goal-usability.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 58d990d2a..cbec0eca9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,20 @@ follow semantic versioning; release dates are ISO 8601. overflow that freezes the two-page table continuation), and the invoice pixel-parity gate; the examples showcase gains `invoice-classic-v2`. +- **The first structured proposal preset: `NorthlineProposal`.** A two-page + teal-and-navy business proposal on the Spectral/Lato pair — brand header with logo + mark and wordmark, three stacked title lines on the reference's own pitch, the + executive summary beside an at-a-glance fact card, icon goal cells, a numbered + scope list, deliverable columns, the phase grid, an investment table with subtotal / + optional / total row styling, and a signing card — with the navy footer band, the + teal page-number block and the `01`/`02` page numbers as page chrome rather than + flow content. Ships as `proposal.presets.NorthlineProposal` consuming the new + structured proposal model, with its icon set packaged in the templates artifact, + porting the rendered layout of the published standalone `northline-proposal` + template. Guarded by a smoke test (including the empty document and the + phase-grid header-count contract), an exact two-page layout snapshot, and a + pixel-parity gate; the examples showcase gains `proposal-northline-v2`. + - **Monogram Sidebar draws the employer.** Its experience entries rendered the position, the date and the description, and never `CvEntry.subtitle()` — so every company name was missing from the rendered CV while the education block, which does render its diff --git a/assets/readme/examples/proposal-northline-v2.pdf b/assets/readme/examples/proposal-northline-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..934c9474fc6d575ec8f3f40534890a08848cccc4 GIT binary patch literal 74590 zcmd3NW0Ypgl6Kj4RhMnswr$(CZQEV8ZQJa!)n&Wt>oa%mH#2w6kNG#VbFIDdeKR8W z+K~~NJDz-!L|#~whJlt9isb3=V+V=>pB~@N&=QK98;VZZ!`=j+PRPL7z}n6XicZzU z(aFNj7N71fX*ziWGZQC##y{eUP`tcQCbq_Zsd4-#b!ih@GiP&r#=n}KoE=RJY+#`r zpkV(J{m0LLDlyRicP%DXHYO-KQ44El6GwbHQELNd6JZl0J7bgo+?#v$(GQ&{>`{j+ zIKn2NABZ3dAmi&01Z(C?J9w!Gr%k*GVq$?^V<3(R;sX>T3=X;<2TIFZ%Q}l(jhk1Q z{M3_9OgcUi zp;`RH>>5p1L3lZOxt{6=P)%~+0=utcaH_tUB2x= zXEooA4HMA|Tt5Ru+%XNK&*7=8j2a5TIyJj;^aQg7%och+ z9s189|E zDhr*OXv_e{83sa3%YL8ea2}et)dzV~0=bf!+_0B7E6?+Yu3a#56orxvv|68n&Hg_r5Fzq8xV4N|t2FL*%4_AGQ?3uNce1WxId;3xTP}q+e4pPz zJ4Ct#A$!?I%!r|t(88dQqC14K4>dQSHU~1Rvt%8Lz2@GX(@*Ie%5;pWhR(RaKnVAZ zBS!8Cw`7>(q*Aq{T`Hc$*UY%9BXJ)|FpFC(UlFtMqgndDdMCzRc2L??crko~5%aV> z>oD`So6Lq}J_vcdU^OyM#fl^Io6IL9VBQC+CT7J!_97By#NT*R1a{H~d0iKytuw|= zr6I%2KP42p`ERm>PmY%6I1NZbipVdx`$$|^C zN8Adg4-cTe?Q6l5jI|t|?r0pVcZhI!O*8e!j574cypEz?=su3ee`3LvX7(iPOuQF3 zogE$<$f(&MAzd*#P~thkMZ1e)nP}5fv<}Jv$8JxE@168~p$u}{+InBj$CDW%#n>o@ zm{F50HY&Mn82%2Ai;9}U^LbfOPQU%xtcQr~8+9pcmZZP@O)b-2O))rC$EMJHwp4Bq zV8V;~PKc|i7LJxdAT!S47Pu4Y#Grw^IqAVf#^f4u&B?kU!?Csk&Wrj+VX4cEJi^=0 z;zXp)wK=o0UT5+IwSs$BYE57c!$^QGQn;Ua2cjm3qs`LQ@G=9ZomB7Allg;MI+@<9YDUn>dp z6t)a!Fd!z95A<}sT>*s12YRj<8Tq4m9OwZ|7?&y*@;j;PAdRI;#{=ATa#CT2Ye{@|IBzu2e3Lj(@*F3>px2c|k07 z>)?K-7(@fHi7+Z=LenOusAtH<`l%VJro2T9BbeQg z<+o-LTN?nq8>_894AgM}G+20^MX?_TvME=6dT0rcuvwOdd}t zd5~?W?6SIK7W9>Aa+5k8)LErO(}e9zMeMvWXt;-jMB+p`8^DfQ_h~0!&CZ@Rz<-sltYSqf~ugnYM~&!Ns8db zrUEvU;ebpw`6uNj+7*7MHBQ7EIP2n+K^47S?{)5d-Z;k(%C(gP%f*5BT3MaE6`4JuKO=M-14s@7iHr5s?Gs2{{|DsQWM zgw~5}Ezm{tIz`@lCzJ%efNa(k9kNW-f3St1#oN=)4}(46e;YUk)GecJ2`H0Z?p|URJLp$f~@?icFg$an!@-1_5*TBrFJFtyn*FqwYJdEx~%e27S<~q2v+1N#|+XQCl zcgq|%mG3j3jOL^Qx>xgx_yUktZ(5@^x96-9l*}8;MizK8s}&QtRhil@>#4*`8-t(N z&cbVA8qiR*oefZdKz7pW(KIQLA*ey}PtxW6ltds4v5zC7{aF=+6Ylh^G&+@$S!WSE5*r_c5P$rnaCx_EE{^tV1(i`n3OwZ)Ps_h$+ssW*4s2WI0BPedII@HB?Hh3 z!1OKK3h1r<#V9}P3`Egk{uA*Av)+fA?7=aNf2G)@#bC@&F?b-FuZ z?_{)bb#7o4*0W`(;*GKdpt)=-sNI{6?_!X87*yE&*TBAw8(R<6aNwh|XnD5IN|3ee zGvY(=a$FX>2~u@$W8`{HgtIaq>p->cEu0)yNiXLquw=;rUCYUIoB82xD;P89&-eAq z`mtdG`kclf1o9~0L`73}$NR_d%kfx;P9KK)#qpSs6!4gC7xdvm`RV6E$ytaWol;&@ zY!S3zB@8lS?DkdoN(9_=Rlus4uP#-Nvei=h1A!HvAWADt&k0DV6E?D@v@+Zs8k#6% z$nr~mv_#FIi6K;RZ7$QsqbswwnZLJk!I3=JHas1LiK1|+4b9*!_Yk8=Vo^lo3+bKC zy5>A)(8)COoF+!vSy&JWW! zuyk>+|7Lg`^rJhcMLw^DZ3hkym&Q|8pCEjYr!;&qVkRzb83>+BLRrcn%jATAx$R4R zt0pPVT{%itE0L}1n1RN(!_v_(416izF@px4DZz5CkRo|j>AQteXeEifyrH|dgOr#|4NSP0zVGQqO?*$$HM+Zk^hthrKpmnLW#7$(J26A zb-7HoV%}9DCmHh}-u#yc`>#lH7Un+#=Q<3{v zwh;HbO}@oesV+M%FQ%v|dxmDgSGE#X?i`#^x*H=$%=%q;(tsv<1P^f~(J2?w$}DHM zsfoddk7){RI)y-ySx({oF5V4WC9QK<&ii&J)IPVgS17}6Zon|3XD7A$s%2>acX5S3 zIDP9Wo#)=O2szdOB`LfG0M4N|K35a!a)Rkz2o&gxMDoMJ>b@6TJ>=S)v)i?C-lGOj48UK4~%fQI|Kgdy`4;S1dXeOm)VIAER#c7Wj zl>z$qjcH2}Xnoj_L8W+b$t~iL}g8NEgd8*Bu#sC9ery`1jW(PtRONoN=VT>k3&OK(aJ=BU<@P!13bNu zQvKa)F#q>l`+tz3v;220W)2RP|H0c|>TE?}izU`#(pYTK5s|=yhTsQOVH5Z+0yC8m}0b@Rd!Z279FBvBxGuk z^jq_G`dqy9>wP=p`+i(|TGnH;HkOt(gzhC9MfpJcdaJEvwSG^xc`On$m{x7S?95~3 zv+LRUFq!G+B-xWCX->asHSrXL)0FgMx?wQniz*fnZ)}#0wKa^kV;THrO!{*BZhqB! zxmvrA$+Q>N;%ZNz`Z@gcn#Z=Yc~fn?al*$&w5#V)=s5;Xdb_ zPs)UK#jg=7Q)t@qz=*Rpelkch<_L+T^VWO&oOaU=o+oGC8ho-0AEo}fX9>K%^|d1k z&Eja49!xNhW}8`ZX z*NL|;YFn+CL8NQR%UQhDv}~H);qJ%zsk56r+BMp-KOWY z6=z4cm!`%p0NfSm)5^lxRTA=mW5$RV`^u~Ldy(kn0NOrzXYlBAPwF?d*sd(#ef3ek z_6;~JX=E_uP-fNoKzK-QcB%B7uq}yn&>>O^uWTgb`j9+a=nXvSzA1=LkjX@~XVY9C z$<-Os`UxPhCbq%;ym)+F*uC-#7&WnaX2DRZTZs*;<6P7#voGmzVGG^uXyp?k`CHoF zZQT#+F1Ux%=zi|O3si4rXD6Jm)LD$hn^vzUozmu@xOON!zpxn^ITiwGi)P3Sa~TK} z%K>i*Y4uEuiGGBy?O@YPEMzPQuA$(ghV;6*4+!Wu(ZH2p(*`rfJ@mn(y^TE*j9Uq# z5wYI)jT_e&2lox88n!g?&}x{s(|wU?Gkq!gTl?_rqDKS;)etKu9DJi`ECh@xLvo1d zMOcV}*|{IN6;kPI|2a&icBcvuK*E@TK^jBQV&Z%2mb zL#hX%ml)D^NYY7NSY{ul`%?}8YX5UI{-=Yw^T0EW42HSGW6PBB7z=4zZ7auo`J@vm z!@Grlw+9mJcT@vMG?R z!E=2g348sTnf;3R$R*dH?2`H)@?~3hB=uSrhUDNvFW{XNtLrjr6Sl93zi1Zs<8@5f z7KDu0OlAz(=s`LmL;1x(P7Z#<_hWQ(FtgkJu$@od4yJC~THu!5a&6;b$U;I6gONX_ zEF>ICMvj2ALkm1s8Q3EfEGw6+2?jp5H>eCnTVX9XFcvo_K`vNIrbP^;_*uY{HWU@h z&`Mok?CX>OiM!uAkxK&)oCKB2T{pFa!Jp)jvthSA^4&YEK9@77H)wt9>b^P@A;#~+ zO&?Am7y7Js9S3T+>&x0T)KW;(!~WB?{fBF$wYhfY z$7120V6lmth{y@Vb-xmsr%35wAZ4EV5*9fJ;%EB>kc2r!d4a|D*wEYIW0{VkFoF#s zAnzq%*x3xOZtvsa0w_$NA&_8XY1sRIwcY?XiZZ`2TH6A$%Ynh&qtdFig^f$WFFeW< zU=k5@a40(}io=K|jv8t#&;#ew6EiOcNy>sl3bBMiNl>3*EW=QS>}VhID$gXF0V%s@ z6Mb;P8}u>QS?KqLp>Ma<_J8XImR~~=UVla+sa3zcI)J5+;i}@|LTi<{UGZRHouQ;&c)Yh8i zH;%$-+Da?uJX}kw|$B-^l52uK) zTnACy$ls69n~`rREUG9+2h^T?RDc4ng7pP$}-o z3=xtbK4C+sghdVriAsp^*mjKo6|TugE+V>xqtmL#FZ@uxDMl#{5{#FTxPuCz9n&utUhYPtkKmRVg^bX z+(egrWd$;h>pkQFvrV?)-hRI^_fSOT{4?RA?bR09M&gUJ(Sq?z7h8l0K3=`71@+yz$OglS?^nXv1v`^cPuZt@`qZJ4%bcbh73HZGH$e_cy8kt{yF|?T?57Xr z?Q8MZ^1ggr5G zFt2YeOVP>?H^;NC%!#_GH+;i|88t0aU<1|J&iQ>wzK=ou~ z5y4xKR)yPIT(HGWQWe3o5xoS7;VHoL@@&TZ$o)<*6+VfOP$nXwUXDCh_hXAw>lHO7 zJRs;V$MS*q==50P6!Wft`Eb)lR}gR{t_aRm>NL23xs~XroMiM`zpx(n2$MbhDTR!# z2IZT|vIc)wK{hku^*i(Pv}moY3HJUj%6{ zD&gFCdiMb8r=h2pK_$WFh`_Bzgddtiq_*6#*Sw&Nf|&wTUMqmu}6Wg!y6<;V+tgVh+NUQu~MAwq$2r2Md99X910 zB3c%(Z?D>{aAA&P<%QXDDTfPez(`5Ij}aVE2aN%kEea{<(g!U)wx}?xYwR}jv8dpt z@f0*w-l1XSDtv7v9Q#+%a7Pq^p`yJVS z@n6icdwFz!H9iQ*{xwmKa{6i+UUIDv(12(m#<`5m)Wbpcq9pY_JQ(4)rw{VUhQ@jC zzsAm@om;!*UdBfj7gJL2qN**}wsW1`1S7CA;!F3ZkhtY%_()rPk@O!K?F)iCyIl!& z&{3N|gCFY6@#NO4P`$-I<89U3TOK+IVK1^7ICwt;__hmPIe*{cP%Q%QD)^wIfxFC# zhTo$Be;OwreYFC|MFRu%JcR>Z?umw~r{mTV9IFa2Zu#Zgq8%W^gm8hY*0>P;GMC*| z9T7`ECZJ_}^vJvyz(tvEx{o|rIkhY&Y@W18TkTdrWuaA>5LRKCT#{|X%-U{hEnKR2 zWDtub-qrl=U9oSJet8X_cg3aP5N2pEUo{URUWD>NlYIp-f)%1%ZN=hpI@txU8szUk zfipU$VRe8j%*$;CRBzYT^%A$27rFzVr{~=($fa^qeiL5~3174ZL)XpTbY5UQ4W$Oe z*Radcv_5qP^<0wPDGRFz|)ovH2dK;=BqV zh`gDEcF=~#-|`U@VEi7ajMxE1C{3xiCqiv-RBJV{1$XepF>B?RMm7nhd zonLN5ki?zUsW1=D2auZzQNegh zK;Rav!E(1d+*UficZZu@bxLWLIS}-)Qg!g5kz3mprfx7yEBlau3kU4kRZFM z2G(68F8D>Y1i`mnHDYSlYrzIiq5^3KZoS~|To^h(qW!XW1Hk(nDu@5bW0?2FexRmk z+Q~X`I)^^z*w$q@fCPyqMOl9qY*euIisRaQp2OvMXqc#^!bP~G_|=~#$xdSqE74)W z{1b?b>n7e$>IB^4I9Y+q&4I&HlKuhX5&m$Pv@m*m(O#TNphz!R&9)2iS|xoo*uFHnC* zj%clepiB2`VNGzuKqhn~O)#^l@tX>R7BmBO^YZhFnoOaqagc2t_6B#LZ08(tcPC6E zTXExY7%s&mbl&*dlpi|0Ca!lIxQb{+RhM1Xr&~9y)&|ViR_<$E9|sg1`4wZGV2cj- zsn73UTu?q*va8*V@4Crp2tPR^C5phv?9Y^gK{g9T)1Lv8Jv+DFenhpPJqDe8Zo~0~ zkp*FmqwD2n+-2k2aUj%-g$jCI>c!u^?e7d?4n_HCTr&lZvTzXeb6R9x2;+#3DNq2d z+3U1RS|+N_H1-5l2VP^(sF;5iD>o zg-zNfAC!jvR2(~)^s@%`@Ro=t!bPj4_@#tQsCc{>xhB%#9}V)1@#sk&hT;FM1HY?|rNY?D=!@DnDCLUxePzcKCM|a{lb6j2 zo!?CLZW0W&R^Yd6(jSvij2)sZkjXriN%;Xq;i4U&xq-++NnX}mJ|Nmv!;h1N0LYjZ zTjrxJlxjM|5LD`Py$Wi`9#t~hwJ*dn*?2<~EC3wL1HfSjMqFxVg@4efV3t|FGuq0r zGZ0R|IHlb>J#vHJUrndg?=#JY2Z%~MLS6ED9JFUMrFB|#W3$V&D9^zt`Gju;3!!c* z(W?2?4Y%>jM@}~ju3OP-zo5tUB`8jypSX`^(hFgoFJ2$w5_XOsHBv5Be$l~#`-D2Z zoSd=6L**+5BF9acDI!RW!cTACHVM8&;MaaK{gn43m|n#s$#%9yqJ47Fpgkic{FzLf zw9$-rq<#wTfU*6B#Dkx?bFXOJ$0~OfP~M_%O7z>1lsbNt1Xp*6@8GLGoFoJf#wIyc z+6(;lkkd#A#G3nF0D1=BDJX4m5X4XR9&6$)Dv>{6M9+HiKfwsSrzl@1!$&snd@Al` zh*pk0t+!8Hoy+Godu~*s>51-KFZy>s`b|9E=l8C>y`9T@hkWoFL>)4d@>^|LUq11B zZMS>!P&$|SQb2;26EO~Ngz(9_2X;|UF<(z=Ql2{l+ld_uhrBmAvWfkq(B(oxUv4!Q zB!r~6H7^}(nqxf|#)-9e9Z5cla(cC5@+9M+YqM`=p$)ba8X6i6>Y1V=OWGw2MdFG; zU3xlP-|qYRWDyu1*tlZlxHJTU`-9x6AMukG!&J-c_}NOfuVGw&2LiJGcR26=Dwf&*2g`g0B&GhF*I@h`NS2BH4On~Gymkb+)*spviUvbi!f zpNj0P;na*pJD?UbOXC&Gnwu~6WU|34Ps~<rU!hwgXp1qFZx{}0kXq*N}-%T zVXjOwKYgoAKRB zzYuqS?F3-{M@wD5=Uii6s4N2gzZ82O2zG&gJgtvk{~f37&HD@T90U*;5I7*_S>a;k zA^aL7faci|XZ{U#9unx?CT+9Y&c&b+w)K5U-93R=BIy%QN6XaV?|kX6A^Rus?cd>j z7S=x_|G(}_e*yN2f1LOqzVsIm|F6E3J#QOC4)_xevBAe@)54%8tp7LzUO&~(H_fa zBvWTZ%qa=YJQ|yDL{2ur%q1FG80^K+nllX8Hk!d`qcGYdyE)p`Oo}sgM6~p4{y=Zb zg?fE7$##!#D3S{c5{YBw_eu~WT{oYxNaqNJxs|N=!CK@QEukl%=)~WnhI`ti_pgIN;L|ovP!i5|-$*vVgz0Ko0yXM7fH9KdbX?u2**#;EKmW^%h)$6b9N+cV)HN-adgY6RgIw(#W z)cPg1)+Em0DrfYAtgZ4~@T;`Ixj@Dtv}G5Eevv9Dpn9CoZ#ng%*z!OCYJp)hLS0Ut zEO74+0?{4leXCR!i(8-j3&#>Q1eZ|g8E096PCGXS(T4ZbEIO$z4)S@#@fWF&z{nle z7?22U=|@5iOI!E-555|dV+Xp>VkPC>VkM|8X|e4Yx?U8m*-155wJcH_Xi38d5Gf?1R)5%sCGh- z?|uI+0{)t&{v`rfng7g!|LYO(*J|}25y19$5zw8uNRJ{~i~yB+1WBGR{w7m@U3b$# zKL|ZXLc$~=)Q>#Jpx>t6&`<<<;%N<^dY?nHKhRRtsKz&6V+$b|4jD11SHIOg>=pa| zJP7?pcT@w$+v`pY5s%Lw_$NC4s^mX&nm2k$O|p+r;u_W%d3@BHm+}-bJ53p;cK#X=EVGJ_p$7{w zlK7Fvtl_4>lIrKE7@0)0oMna6r2E<8WY(MwP$k)+XD1Pg?)!RtjEnqIf)g$IHl!>$ z@t#V1+ygR(m{h4jnJ1c;un3~tu$9wDu|ir_d72Gx2l>~;3PE5S%D184QT=x@^>@3i z9Q2I;2ZDusrhxg5Lyybh>eTtCYOjR!40#Zo|w^V>;ahI9SjA^RPgJ^^er(zq0)xD>I?DwFLeKpW_zcTO| zmo%rA6$T5haA9&(2#V#)MTl%3&QRL+(yMTM5Fa#Du$d$lc1EbUK&TL#{N8IMO^ZM% z*R1PzSEp$FMxZsE&v`rp!}}o%G3dzk#&o(0hHlkW~S1xU=qyg4U-OP^41n1(Sc&g@% zwgkC^51shou#1-wd?Hv+S7`NSU%KHUwwfv8U?h~G{b>!!sqN!e;sOyn z(DiTOOSE_kEvpI9gW>ze)}1ralWqjn1ppSX!s!lY#!9_Ci( zx|ZW4@AEei!6Y4a71;8nYDP&Sxc3r{HL;bi8ZJ%hGd4_+;}#DG+2rOwzmGa?-_xjH zlKq$-TMfdjm~7vas*^~%0ZHJLYaGoJ)Md1%^-j08kXAd1AO% zg5kNGYNpfjk}_VY1tjP7ic)>xGUWjB=@Q+blN0&jEIsc-FZ<7%%< zj3BBW*c8N-)6+kzed{?k1Jt&sDYv__v9p^RF#vLQtjVPpslO1W2n7H-;n%oJg$D$c zVtX8gKHJ`D;Ed1^iRU9)H7~8+ou0jUUyp>GdFw z0`dDH&Kyw^#D$BWd8cE1*HM@kXTJN>;LF?}AF?2XcQNaFc=~8Hnjon@ValnPdB#sq zf&ln+89<ktrG7ay-W%ps+r&Aagjks?s%ffyH^U^e8Eqnh8D&Ul>reeksIH*0VX8$+P3Zqyw zJl`>AqQ0vtHR;G5x)LqQKO!BWy?{grY=uBl=$e&k*t}C-56nY-mBCs zpp2>yPlzEJ;v^~5wo*IV!a*ueRe3T4OU^c7`W`V-OQepKDR<4VAy!_HKF51|CSr)C z=iHt3THJ`BTf8;+ZC*C;{J1bpB(VFd4NZT?o8~HPYX@yERP@k)uJ?{kky5%w4o@JI zV_fqvR58Kn>zig{a#GUO30MHN4q)onv0?Z=zwSge3@rz#JRpkEqs*avs&K1o*@``dP{7#Cn^IC@KY`WROx%#?`c(q;cN8CZQ~Z$r(_-4FD`{;t`fT?52! z{@2fdzI|%1+ZdB=HFbkRF8m>|>Xml}uR=Fal@V>yCHs&b1J*4-0dX5MI ze#;qFbY7#Sn6iPdhn8uhOoHh7s__j}EykKL2O|#CNu)$G73`eaezN zf8ltX7|m|;hETzxndly>;nCzdN6z_{ADu-LxPg z&rK!w3O%sz8qbS#_yw%n)o_NcLW+4Gr(9b)p|kFC=l;sIXs@OHg_UfJ8+@3#>RI1T zBYgaae8Vcamk_%diI+}|`CW>thxUnOu*80PF(wIqqmM^m6RlD+#>KyX;{N&0m3qM| zq!+9CyA5LHn<$8vyvjS3QWaH?YZUaL#VxNV5L;@ab#!wBe~F= z=3B9yBf~wiuuj!e%99uh=U$v;KG^nD^%T_+B^QyJGK$%nGuNuvc={cziFeR7XBj?N z>mo{QM`CuyFGzi#^1JfpG~sBt-958b_cautaCvY3z%DGm6*m}W-)p$ngOYFg0-;zp z{_-|Vsy7uidhj6tYTPn|*kumz4-b8h7vDG@|J$hNi5w4=mEL+eK)ng08U3O~Anh5v z998ID3HofdY2d@HZO6T#I??JOMws0O`5P z_Y?3wNS#LWrI`Pw9I@&G?1R;OChqKKtGKZk+0|2~fN)=huV?%kkRVtD=n)!c!RO$X< zS|d}ipibKQT3QEb>rJYlrnJda1njFv5~KiX^JI{6w|>Yd8SjfNkU!kRE530D>7Lh- z7R7H^n+y0uQN*7PjtfqW8eo`k%}o-UY1zyjy+TEH$^>W#BjXZr{rEpgjX%{ZbWV{m z+r$tZ1zy>QPZOZRCi7-ZU}b5eSxyVl%wH#mb&sMZufa*?qW-i2(dkj+;bJ>(Me5&` z=~x-lRwZ#DsZ!JB#V52!=rGfjN&Bv)><-Mqx^i3t$eaUJa9@lqT~&RGh+*so52~`k z$gHp}#5NhjI($xsZL!Hq1RzoGwup=|ig)fVx%7ua7+yF=nKY1v8Y!3yR;21ZOP;X@ zqrbS~`F`K_wC+au3%T$ykmFdHG&j2eckn8l$yOBs^bME1Szyd&&oiFhWVK)D(->aS2AXiEcgbDmz9G+irg>|2PuEe z^=O=Ko-P8b%WzP-LE_V?-+8mk!Zrq4v-axTcS|TVn0R06ITX0xi6!{;v|->Ao^`_Y zV~H!fkunj-%2!$fH84giRGzPCZdtKtu3`{@)FA%m0q8gtDS(f=YRf&Fhji44qbDV) zD{NqvroFCWoPR1h?!Z~hy0gn0a0kcdTFKptkZ~Ia$ARikh+>#WcAolkkW9FWIkwvg zM}0s8NDDp%@6s;JI&mdPe`8VpwHT+Y>IWGFAyk^Itxa_!*i64urQ%sbk+>ac@7Ds$ z+2is-5}VyZH}mR&`Omt74akw9dO~F<@YUhI7M^BB(=JXgD_)7k<>|-e#W_sS8b3-k z7Sx#&*oNfxme3kHOvFJN@n66LrW`yMS&*&pYC%?MUAYF)$50F%Jba)4S@j84@; z?EV|;$h{Pe>?$?{LLAj@l~FeD^e=BpdPH-l{7=t81y7NV(F2kV1TdC~GP~w6Z#4u> z4joUmRCSh^1Na!C=4bQbCcBhi)I3Q~ieP<93t$8KIHq|YL}!$}-%U#9hG6~tFrIwI zVL%5yG#|hs#`4gFL7E7dOMzqgXu@F4_>AO)|MlAc4*3QU(#gmAyLIz#_AnXQI2is9 ztegL3_mAc8cK@{X?64&euQPQv&`&@*vYn9x1rypXG$D$9#mYto4>ex;9H+pKlB+qm0t zj_=|(;C!ON7xyUsdzQ~+f)y_V&bO%vb8VmiFd4-}c!Ul;13931?}JEY^_3>m#G%MZ z;xa)HSQy!chC{}=3gDJsrS#-XxGw_M{blLrR%7Lra~(1mEWGHa;d6ystn+F&Z8JyM zyx1i1Bo%cFz#Xk}tqGXL3i%i!lOm9{knukMEb(WiNjgz>bA_9YVy#V`&#*FdBXzuO zDANbl;*`vo%+?tUBgM&s7QBn$&tzeqWs%83^!g>C8k)}*9 z-=>&do;_{1y4eEj`^gV%`Uvg8LvVG!gHusG0R6a*uJ7UTaBUvF)KQFe=iZ@z@k`Fz z**{!g3@;`Rr>MsZ1PvPbz5nzDZxsgfSo<`6-=8^RPT1f3f_Otu-yxX&fpr0bQH1<+ z?B?Q?kXtiYK-G0_7-}9d-j)?I$|a91YI}U*VwAZqt?(3SE{vXaCM!D0OwKf(b$t8Q zia*CuzYPK=E1Os&O$yCOuBy?t9G4#}=!y^bvWqIY5y;^x9|*nF4ITWHJdX4} zRECiBC9!RBknej>M&yg#7b zZ>BQZ*8b3tWs^2@A}cim2wJ25W6HH}*=bao(^oQ}oATZY$=D=YhzQbAp)9)@ze2oC zEq*A{|1g{}`C`2e##$Mfpu%i!*B(T@Op^BcIGOiHiE_ghW+;2?pkdbvcY%zmZkE$j zrn{(&@|5)o3cQ1ohn`9&236ApqB&zj<`4K4C_vWuI4m$&2}6Yl$(Wg+dbOro{sdq& z7KzRE)Ch*Dze z)k0L6QaCT{2c%V0m6C4RV#>Gpqvfkt9sJDi?=YkUCarvY;#_6 z4oRzk%n2sHysmc^AP9r{{AS~yZYs?Dlv%tcHPK5rysWKZ!YN)P7R1sIPPN-cLKZ5hVLX_ zZCsz&O|)-D+S5^jA{SObP^MPLcjyth>pTx+T^=H0jUJ8PKbSN7hUypVrKO-XSG!IN z9uS|~ov*Lto<2hiPJ5OZgz@epHWL&OgNv4$rWa>&eg{9{My{jOxkhFb z)~m}Q+opa<0>`7GEjYAB7&zj)id0(bx~`7g%Gy0TWBNT}aNTLT#aF7=xG?++pOU%! zSuVzsA2!agUP;|X6Lu(BOkkT{D`-s}N+qvK0$Zg7cQ_lJNI(F2^7mD9f+_%nF$|oT z=YnblfIO04l30SuFiDx00%Eummh2^FS!kSSVrdqDeZR$mhy~>e=cKfHSl2fgYVE*P zRz8cZJ-y}sWA3ekB5ShkQQTb{Xryr(cbCFx+^umb92$3R+})kVT^o0IZ`|G8;qlGf zxNl}IFWxWW#hW|zN5wgrm3g90?p(QZ=gO6d-Wmf4XzG)}*chYus$R?i2d`UdNOBq7 z9u$pC4ES4p9MYS)ae1}yR4yS2m?Ix3H^XhbQS;)cCeSNrr^>N9j(g`j|8|0VC8 zRa_>iY`DAi^*^NUic=c{M&gW%Ref$#3cWDfCpHrM4%#|qQr!o=8Isk6e%fw1RP9{|KwH`$j7F>fLXtLn|hBUc0QXP zrr^5-F5GN6T6E}`hELbSUI4e&G&BY7iTurE6dEg|Q9ymzMspG%_VCDo8yX<@jFg$5rGhlO(e$svs6UK#_+CQ+6dd}0gFY-&T;8D7QAN+4vEhlD{34ReNy zWk=2cpicvsWQCH(p1`OB>(`uT?Lt|*wo4Rut*~Mh+dNn|p%oyh>2<%xRTBFPReANv z|7_K>2cE!8)AP-{Dw%Y(wgT3ahr3Xcg=RcL55TPRhKD&Af4r8P?tjM{%g}sV>Mak* z7`&f9rWo}&{j!#8_&X+#K`jJimPam7ANnDdH#` z73w3wuGSD%!8r?t2I(gdJIx4Y6XKlD@(^M3=)s}pd?7Z@zDBQpKIjBb+T3EO&pi%; zCC>rgN1P)$%k_{u^2(E6laN_hV5EonOo*F~HEvFDhi2kmdu;IW+LLEQgNX7}5ZyJ3 zTnbm>0KhF^(AX8m3SH*$ys&*-Y`m__`4fZAwYkS8MbQJXr5_uGYqy2IS7q!EH@?E8 z2y~<%I*_s_IS{teBn`}09XiU&$(2~$E@QzFzl01WEE>|4<>h3#nhDz{9NsJ zbx+}v6l^Xwit0>tDnA%ewRu7o-B`YgyC{9{<9((QXQ!|Xg1l{bq<_0_WP#lEk1Tj* zHrUtmtwTON&q!7lPU6#%>r8}Wri~Q*!f#oLLa~UC>~TR>I>@cEI@e3RZhqjAvAz>Y&mIwfPYp>+|Ee@=$ zuG~oXm#Y}^u<889;Wh#Ctr*7raIwm0%4RQl7zBKoPLF5CbtQ=3CQOd zKO9{U+XSQ5DKoMkFf4?)6?i5i433d*%Lc*TZHN=j<}72V^2v%ej>;Y5YaS~N@@OyU zwcNPv?mhJtq@3bjf~NDs&s+w=gs zL(2DzDHIGUmZ=Sa=v>%pSP}>-&g$z+3`x1X2_mxb!*plpN*|ocX0(v7S0sG3Z`88* zupt<@wQFCKl%U+trb)Do1rk9Sj__XbNn;9hef9kV_$pEmuiGTHgg-^}O@9`T=r67* z@P2*IXp1Jyic20u*U==C*0m!#dx;d2OTR~lf@ zegqD!AmVans`q@|`L>t=nF0~&Dw4!8Hy;j{)*Nwhx3#SLQkcV>rRdy>gNH5oPA_!= zqLYnmH~sOq@t6y_Y=|uF8-WQ4WlyMSwI+!~B)S4~V2vUtH->bMWVy5eKj^t5w->S* zxO^^@?bXic=xz5^L5Z5BdCG014)4#+J}9v~duBf52nv|80^II(e*QFJcD#U^f+^X% z+y10%Mu^~SUD`|$1OQj}1PEhNt7RCP_NPqDi!mBi{dCGXKhIU8r9DZE6sxRkv@iEa zmx$Yp(nhFf@i8@aNELY8Sj3)U)!mygkJ9TISy*}SSG;;hveU4h58Xey<5wzI39fIq zF6M3@=FaE{f-6o!eWY;F4Z>m3j?X_+bJwBy`SpA*qXu9)j;ul}OojOQ#i3i$!loD$ zG=Y$jZkxQo6dMJC1dv|5*~A6pvXT_~;DdP^Q6Y*QVeD!yOm@VP4cA=|Sv%(QXSkfX zuuAi2H39wy@7rl8Mob00g9n~)vrnp@`j6Gb;0xRD%GeO>dJ6V4(- zHgjg*tTu@~HXN|PVe!Q`C#5-FcGFnXz)mevF9mVSe2(8Un&?clYT9~m(SS*Lbe4v` z(LxaIm%|~<*uh@&H~=DymR1+d>f|Ab^saAJF#+T2Zx-Z?e8 zhtI8}2m_AmQG^pBIIoI!Pc{=MWA`rXvYVAVy z-#h)BnX?$bv<&`G{y3|e%UyTxS9HpM*)$$ZJ-&o7Ji#;G9T8oToCY5qd6j#k@;O+7 zMRgwQtwr0!${+gDr1(w@jic(~$$jAjQXI14TOAPZWr6&Wpya$%*cpiLIlhR6wCmU- zEmTdy&g`EIC4l}ih3*nHXscwMkPQYX;H;t!hC)D&&;pZwxwM$}=)^dIF!J4F${dF& zz^B?#YNv`grj{wxL~8M%kaH>qnHQ&;9lmF!U&PE$&%&lyE41r#Xg&CD-lUtFZXWI# z$F-(@+)s=2_+3;mzr-?$&K# zKKsitico|AO1Ys$?)7_Wiwo^0Z3`^e;%#AOqgmsZM!e6TmEZV=qw!2mQG$Zhe{OVs zDl_JCga3`$mzY&EUEy;}d&F1hNL(tBC;c6~fWZIw%sGp1^>AJeNd78=D>sW0-u`v; zL=`D$%n5lflA-7~TRWv5e0#sD#kC_o2c%j{*MpXvJtC2Kp++<~M;f-nDU!O@*^Osh zQwA9`A&A}Hk+1(D^)Q^Q3;EC4UO8ZxLm$rS{mD+{Y3X_k;V)ycQraPCWaY48>~EFa z17FS)?F_`W0E4D^bQ{M{6X+gP|VmbT6h`Ge1^aLu| znF_ttWvo*^TY%GRb-FC?XKNWwl2?={?icO!8JsZbBrV?qvDk`kZkKm5I_qt)C#7?T zj75(0OE2SW@G|GX(|sq;OXtJIM*VZU?m@5VyjDZR9F@}PgyUnw$xdlWa9!5ZY?Yqb z!FOu5*r1y?)4_@4EXGCsb1K0H$Kq}k5`J+b{By51AzJ-$33Khri^34kbFhJMzLBxa z8PceXPXq*C#`9U#?t=FB+|MIAhly`t2>hW|)%2pxg|n2CYTd2vx0@<)+(LBnaqUiS z)lkA?3##~1$$Nqzf7Yh48$Pn^Pwyc~fssj+%Xh?0ed2PHzmbrGem>H5E>^DBJ-e`ny00wh-0o|g$^OWUr?HT zF~l53WWsqma-^h!oQDu9ny%g`0yTCO6&4 ztiGZ`%n1GdZvZQHpNVaf;#FUYSUyp!HjDXY*GG@6!_qE9IT z@uh<)AqgT{7%Wv7jxv*DWw@T0u;Dp0{bsxXP;I)UEM16 zE3Y1o*i}x_SdF_%?&y}(U& zzZ~>{o(XfHM zlTvPP>&TXkjjTV{?CEH^Mdh28a;u3z%Y`HQ<>9KUFm$6xpkA}jcb@E?qd7E=Bpy{2 z-BV@c79NU*@@sljBS$2G0Kgz%QAh=%{{OjHbgl9PWw>^?ztKOLah4ti$7Grprtu!b zipd&_!qkpkm{6R6`__B$2NoAr|nUYIOM*WaQa#3jzzQF!?N)7y(t=Qye85} z?X)68Os&Uk(L)q4dm}#kMf(KLxNmqmc;MJuS+O^wkF4kXP8DWuLn5c9#1~<%G8Yi1 zZ+Z@c(>cDDMUnH$(^p8g>3rU;02p zn*Be4GR^u=lxfzFDAQ@uvP%Le0YI46Yk}x2-U)*@ZRKL^n9PYtNx#QC*HVrsaV2GI zQbjk*z`T*iy7aLUrzT$EbhO{5*>*}bCSmvLbsn`pXH;WMFceDRgGF!U!T?mH4c@NTZ;** z){*&f_|jDXRjtPyo)>*FYSS1= zS0LcEuKJ3mSbe3I(^UY3Fm-h-{n}R5azWi`$c+rw+%f9=S*uL7$`M*kzErz>`yPBa zMMzOXTzN@V82QUUeI|YdX-S}68NZ_D7=L%kEmm#(%Cfxf@o}PG{YmZI4_taTn4yjc z1njs#e4OY0!+_e80Tck|LiDOHQw_-r#12r*6=rBE!X7iO1pk1P(tz6+a>r84JL~vF zJP&Slu3wtwTM#JO|45drXwK$O%aB2@ zg8ZME|4(Id2(Q1pa)I;9c8HGioQ%KO)4&`6mt=pY!({Cob5Zz}MYt1t|1^qgw~n4X z06|+};Gz=90T(TR60aTIhX4)67Y!Pv;YavxR1vwu8dZZW*&i1^GVqhmw_x zj>w+B(#67=rAxmp_Vu=3^%epG8rL`if7NvrJ%uyX|3H2E5h>k0X-wB1vaquCP5%ce z{G#Z$3Hqy5i1BU&Dj8@Dja;7urtC4$9o@KOCK_Y*&l#S-t$CjEId%`{zxc|#trd{9KRBvkV>6!smsVy~=t-G7?6fZ-O|B}fmB_>B_I$!CiFErXX*ZA>y{C(<2p6la(S zAACaBy$IWn4H6WH!?mP5A(Y-C+$J7Nm#diVE6^M&2xZoq)Q*T>C$(ZEo>p+Eg&65s z<&^zsov*L}1ImWDAc`>3u)9-w=*af@;Oh+gE~@@?L%~E?49uq4u{U$3X=kM*& z3TOcf9X8lNqy1mY8oZF=bg6Qhere$R*EM>YSJJ{3{CiFu-^`)Rb3n2p%P z3T^kBo0m+lpHORyOx{o0$tL4DuFmoc3?yd80P*?Zp9x^;8%MAyg*29ZxU%b|)I_%s z*Wmev78LQ1O~jJ(EcwOq4-uh?s{s+hrSjR zI0>VWj8J(3Wg0moNZ@e|ttP2dYSjn32ek-At3GfGE#~GvKkn;dxWAZYUEz=L*17|o zSc_lf77N{%e1SV$AShr)Dsx;3y}ZtkHWdQKC>qkj#==7)-luiVNTPgFx*V0*k_%cM z50V@YJmNQ?@+MX2OEu|(i8{}*9uSduhIJ5a_}R46f8zQ#BbC(1KH3?ViP~+i? zp%2xQFqCl@!V>z>_}?E?FnQENsPlA8Os8CA=QvErOX?@KO_N}hd; zxE0`;=i3*TB%d}rZdc&;GU!H7y&_X&9#k%sNSxeT*TB4t37Rjip8ozMHf})D+f=+X zbffKeR**(W-5GnE<}{-hNlU@ht@fMmYwccOTsf{e`}FjAW^##bp9REzBQchr@;lt| z+0AzqWRrZ=h&r1Dac~ie7jDaBbzk*7Kl#NoY_oNGXcEgc7NK3tLWJk!-i0^xzH+nK zMb2>|eRdEJl6OZV<>a{RY4v&Ix8?|HTm;}XIaqwUlOO=P5C882LTSO|+p-W8=||(| zNBRT|od5f?!gsZ(e_-~qeZ){&?lkKXzz~q9eR`3jz)d(x+?BJaMhMacue6Iys9-4uuj10|G9!ExY~J&M=KOGy5VeH(&jUce=ZO z^~>mDuGDRo4gXSe`1s~2N^+J>!Gc@F_@-l!)ZYp^z7nupwT}W98X8jmyRP?V_zD32 zKi#g^jw8!FJtx0cvp#aj4ph0bv3eb9d`MqT(LXDrnu|y|;3uGg1OY+XfG6f-j`_#{ zKG^=r#{3^Z?PmL@ZGRFWh}2ELy%}+9X{7%6p8GD0QOg;rg?K@upzCA$ zH6({JWHWo@5TZ>z!RYSns#I1svy+<}v5~~+qTh^0P&&nTyrfE;MFe}HpbxE-s#Qt2wnl#xs#6;*+<}1z{9o>u6uf1Yk zu7=m^+42QQt;y|q|3Q}$21MiYD`jwJ609w2om&-gvf{%(?g#xDeb#3fxCDzC$5Hb| z$^c~&UhLUZ4>iei>HIQ)dk`xz!1@biJD+$at}xn|T?#?ad_t!vxmY1b)k4z|N!kVS z#V~6wt`KpN?Dv)vrgv5?KEJqr=GK?|H6VRTYxqI)*+M%*wtmTIW7 z9#yi{20_%Bpvj){N?`zEMt+i0GF_q1EXKl!$T%fAtZhaXZY`5SJn0)@E+lKY8JZ)0 zoIzD=WLf&xDP)ycMc>cgqJ&^=DFH}i1KALqaYTV=+j4&;f(ytk>eLYh>xo{`#`D0V zc(38uHj(&|J3I7^Ll?0`uiAIw_PSw;rOAgCeY?(#*Jt{)AQR#04PO?*f9-o$?@R>$;Fqdj& z5+fn7OulsMM@!Oq5cRlPu9}#=%SF+o>S?nmqrJvaggM3;``O*LAGxYkt>^^-`tjRo zrKTi);&JRl$H}`Hv`l^Vgtn0@Z}^vC2d{w4cHVygE=PLw`cgi= zh1K}Uh}?<{V@tPu>HZa}(ZvL*Q$RNQs)PHg?K=tvdEOCZHnay0K>USz8?5}jIL-cI z$!kK=|AnkzkkqEs2RQ#w^Is_Z1nB%*fxlpqW1XtL{;pvdNXQTL{TJly0$nTB_TV32 zFCqCaSk>jHO!`-B)#V@XoCy0b%)M_G#8-1}=~J zfTS&)pP=;<-Ukd2kags_;=ZN&!SPb_g^kvT&V}Q!I47k+CI^q4-5?!B*LF%)v9uIh zZlga7Rh-`}Vu8T^Ey@zH`gDB1+&Cx#ZtjJM%@XdD<2)`nx|4>Q*geYXQ%mmt4Sx*S zJcWrjp^!4i)XE&3Eu79tG3Q?9w9kV){3`Swv#NpV8s9f%Cc;5yb_Y_jD1_o^12Xb> zo!VC&B*OpfU7=mkB6-=nXm{CoV(O>lr7o%$&jG^!JFLe5TdYCN8~DCM72-x~E3Gpz zD<7DAgYm8^!6`0hBil5eCgKah8tH-SUq}uJH$D;vgxmhe7~-d|MLBHV!S!9EQe_17 zg@8dL689$h?~6{9RCUqUQNX`sL{S$`jy^a=5dmKESECarB?kxx;U8Y`YZpcoSf4D` zAh2jwZ+KpB6Ye2gs_pV62cjY1i&vf#0C_}9Ee0M5cnUjxsB58-{Mn-!qdNK%60S`7 zm>3R_Ns4moH$P+mK2nsFjxMaT$`%<;PKFGpp^!u9ERT4FyPj2lH4zAi0GLkcWTxv! z2Ko_?h5cO(|9^YS7W+TNMc6-zi!3v~3r}GPbXE?%RE%Jm7GByAQHnCx`3+2C6JdMu zy#H^RhOk#%t$FL^exn4VV|wJ$4BpYXSE=T?cjTGNkn+M_?w{e>(CXhKdq*7qeW$Yv z7Z-kE^1u0T<6DWJUf5cvE`Wuwe>r-8L5WS5ro|CCX^7`u-b< zDhV7Ou3M%(7Hi}A1LU-_jG+J`ZZ_`jFWQHXqeU0@%o&i-n96 z7t<5tvMt|iqT4UUN>0_uk)3Vo!YNG3<>&eYrenDcuQS}jyJF6GQl#ZxJ=7_(Vw&gJ z1lSJ|v|3z2ln)9a<+3C01?sqb!Q+pD+zD$7?dI`__94o~$F!!!AOugQHoWDyazIhb zhX{SVy}33)7#$!$yAFdugy-ZrQND}S3Ap29g4IpPW6ELU$Ahp=$@9t4PY`q^3DM1VCA{@aT<|kFMp!W-(M-Su8+LdIWzrGFe;ud}vGbHkj zs1!iKXY}FV0t3so7Y5HcfPsXVL4^(~B7s3s5z}uUr)%?iW@CYWkB)2^Ms?f##Yrez>6X# zwX%(_-j7VV1%=^2RR9l)5?O6C9^;4)!N7m$-eP7(iam}D+~O!@dZ?0G8LYTu3VYc+ zn>ILT;dwe@fcs^{Z%m{WjQ+Vlebx53^rJ;ezae&T{QR22~Zi(}O+^ON`pcn=wS}+6(VX$!ahwsp}kpwa4X5E5ms@cwH z6D8(^6`%;aso55bXGhZ%t%A>av#wJBgpg>8^0(uEaVsRep+o9||LHkeBf{;9nZxM> z!O)4+iSmNj z&_Z7eYoS5hf@m-eaDbgB=HnAe#bnnknQM3>NqMH38o9i(t1C3z=k7D2oNBwxu^rIA zO}mBr;uAbeK82*Y4#z~D&h>WBr2H^e?v0JCY;;dg#46~(wiUg0cNz|bAUvWcy zR&JT@7a3@_+dw+s{c-=}c(G$^ud*hb%H0zr79&&sqel23D8$P2zNYej(33kO-g~mZ znY(}FQa2n!{TBs{VA9aI?t0~EPXREQpEDrD+fnU0TR?>(@yS?1f=J-!&u2(aLh~}j zubj6xlQNrAj-w`LF9xM$982a)B1IU|nzDKrE;9|&D7|!#_bsxwj{9^Twc4TgiEb{L zeFe_csjn98A{UWWRR&91y-S%Zli`t(diUnm^{K*WmTWmyi34TVF1T%(Rw_Mwr!Nz~ zVNb5zodBL8nHNu-YF}U_7Gzi0Z~4;9xHFnc!smkB*z~m;f#?h64`&{Ewwq&#UZ7Ku zEkv>5i8yG57^YF23dE}7Ss1pF5JN=Nq;md=riWsnX8tqcS&jo>urmaWB4Em2_@e|A zqooQXnOHF;{2@|CC5I3ua3wsdg?Ggd;TcMkqbYNVg%X)uv2?}bs*XT}a>9DS5Xz>* zzz`N#!x0#+rw7Q&pkG*w)kkuLu_V*_-__7+b=Hjr&bw&rm}s&FIm1UJ;-;h0Sh3~Y zI^(?47U6FdEE1K|qz=>th@A#7V-yF!83u2MZ3iX}0b#@q{SBoV&PF7=lp8-E($w*f zD%qt}3#bg3J>-tW%t4YG?HYBCV0sL?Cr-tS9`5jOk=ye*~VRxyI9L8rNf7q*rwf}iuVOslY3Dj{~n?SaUd-DM0U1PBS$fo}C1pbA7 z!u*$P>A%?@6|>cI`RDVQPZj`XegYU!xTE47Aq7(Qh8QMY+eEOIVC{>^vQ z8tx8P0(1$8b?%|<(*eX3cbD-Q0AdWdw+QTaLn;u`qCDyPEce6lxEFTxi@~+HXLXF9 z$;g&udEO-i-V|gsWAoQNO*&nEer3Y>lwCoN%Wiv|X_|OqzJ3tQZF}r? zKwsM{>R5x0dH{=meG-*UYt?hUie75zi{Ou8Ui+fJ>HIFFJdkbwaPJ;I@XOYHHT3*} zsMi{u;!RoZ%at^-nBV!@mAZlX>a9h}VhUOYZ1dhQ``{*Iu{n!VtgI&F;`K*n^Fd^V zk%8^sPh0xHZqxy?xBv`o24^tbGF(C8X6G91T8Z!iv+$qI+LE$|MM*a65YiADe&N#7 zX6Rk1fzICw96QaLCV$>jLels`2)18iV)mLpanSOr&$QGkRL8(4_&9$VL5cmwWFj4YVC>wWa zSXrN*xPiaC+_%l`<&y4}m~P&!r@IST1d z*OAFREgHX)N_cLPFSP-~2G<^0+CXi$^5E7H)wk5$B>(S1NS*iApXxcwk*&RQQv8E$ zI0M9GPddde*?v@9-Kk1bPq<=N{aMhPsJ|AEtN~T*47k0AW?&3A88_g7MuNr&d4O1E zv*N^Ue@1lPNW3D_->=Xbi&Bu(-Afj21M}O(6r#q+7%Uho!(i`~h zoB!=M&)MVw>?ZAZqR#qXM`86X4D08}`6d<9VuA@Iy6tE68|MwD-mXlJ)V32EJP-d#6aIPcnJYCG@H!j^@tm!j# z5G<?&CI9)-S=2zdzF*V}C_jSL5j?sEGwR9zjg8|*yTn$sRj=l>g;| zbDLa`$J?vI-dn@7f>&nz_1r6bRk{0PrJ2+J_D{`+?qeE?_4omO282m*dt zpWX1y<=gzwcaTk+UizYLQHNzGg#2CoJwVX%%^D<>II_c;Eko95i?3`8Evc$dMqu)T zEhO?;et4jH6yhRrWd|RTP@5EyN`HP5x{%#e8rms7y`3%j#bSe(*oU6Vt3j>B2CJ3X z?6KFxWQ(qPNSumyBfEsoaiLBl_1F-aO0ZttjhtkeelrUCwd;9dQVZE;guzQD8+riM zqtx`7@WR7O!*R`$({y;2cdDe_d{RMiPNUn*#e&|&p8u)){Ao;f{;~Q&OV8_%=i0;I zOXka4=UV&H;+)XSOLLhe@61_~@!zrzn%e@pJa6BOJ#F8BZ#uVjZ$PggPn|o(>bu$N zw#-8hHIlP#!O460W9Z42@l3WPeg%jtNN2zvyndBkW@HP0?&GfavP0XI*%UnEc-(5F zSF^lES9@M6!jl38q>?E+>AVkW#weV%mGxPG<-v}<~E$~HCU(-4QiKLjn{{%mk zmG%$0UYHFhk<^0E!^&O2|4> z-hWzQ?wZynkkL+q*dslV*|DN7>Nn~DT!kyA-T90}PQ~toH9{JO3fndRhCPuH6dB{z z#8?fE{vi$!zlv%ksG@TcHV+?nERliW8~bPYxZqskA$3QV6hwGOb@Xf&>nxllkf2#z7?A6%^x z^{Z??f6V$jkh7~SxLQ_VE%x_B%s@p71nDirq#ibk1G;ADm7=l0=E#oZ5LhXxiB#a) zCqs2GBlkfU-B(TruIEF}N)T9rMR;RJ$p~|bcpW}C6SUi`FGNI;i7cK&P$mJ+Z_ND* zZ`}FU_d08OE`2UewP~jB7~tXh3}jQ!I7qvH!;MlZi!bQcsp`9QX1RE))4qKR`NHej z4L7{ClWxlu#c_XgaB=iP6B+3w{%z08ofy;e;1)J=HcIHH3E{!fFhhI0?3kp)5p^$r zB)#wYLb^E#nfwHQ``$xA-2Kq+b*RbipKY$Nncz{I@F&P@O#CAFZhMS!24IAGW0aS# z0yiK&9j{nErH}BsAOUS_$(4if$JWxDPgewSqjV;D?d00KI@SYEc2onEkYm^&5z%uM z7t4)EY4jz(o>dxUCi-alWCx3_NJw5TZ)?7zKDg&W`2@MQ^>;8%t*y19*9lq@A$zFmSDF$2jlY-4T!r9dp3(^`+&S>9@J{Zh6a8y_Er5#Xl6S1 z*)!tO0E8eFNR+sWoEU*V5POa17vHbHkuhNINKk`TBPrq2ycN$8dW4=m#Z0}t`FLrn zu2KBHb-l!y`OQKfzi7aO4DWlskgFd};By2S9)X_}^4X{se$qhl&I4XW+axq>kQ|E7yR;tLNO(v`bTN{q){K)>1Z6FEN8@8hzk zi?&AS1?FFSYJUpD;39T?4zCGV^|8?p1T*?Dnn1vzOJ!$JVn}B!J;x z9~o}AI+cRyV$7HUWhi*SBh`>B8kP{KJ+~-?0c?QUIbyzVu^4m%I!`^ce30wbwLGz3 z?zpIl>$Gh?Z|^0dxT}GRhbz1m7! z0kXMS*CWr91*tvc^B%YQ0(p715UzV{_<|2%2a4_u?}08dHy{gg##+zu1avHX6WX4| z80rSyqD;v)H=cl83gmE>RPieZzm?Im6>E~tQ30=B7-2hZ{uUo?l8)G9#tpe=i;G`` zV$<7F#f?NWpF+D%_M<(>q1`b(b?pn8gO^-2d|X{S>N;Y|Qs$4+Mx5?~sh37{wMa^x zZ*FZw`%1*nq+wU60Ir1UqeSkk{n)$MQgnglOwvqm9?$m6j>j9S!;HZD$1+e3^YI*} zHYA(VhB2AncS|z}w8p;I@^RxQ3=IMeZ-A+@&}mscb%$0NRUIuAm?d|awb`ez`*p4F z*@f{HtC7}EZWTHpyp5lRmPYCa&)gV2U;2qbZF_91z(&d@Rte6nfQ6i~&q*E*1-Csr zN{)6W7eG4p;R@^Sh9Oz~3J-=x3etk$--L5J<`pirHk4x-o9B``(tNi$&8vmZZXx>? zve72IT(<5;In6WAJ%0+PIl0&vWlu!6l3}A!t8|tvtzOri4G%otUXWVz)sjmw{j1e- z*;m~j#|Q_-?HWR-bhOtaxZuM18E1_i_;a)BpDvt(oK9)Jqh(vCZG^!zmzI$=+DU5s zP)&;Eo2D$Jx6dPV?$-N?IYiIO$u@Olh;1Rg!fkPyP^LA*m}7?b=mxoTfHg#5e6%yo zIvE&OY@SBD_r+%>M4jtwLWOKDBWI}ZxDUri+oycWg-)99aXWopBvKRe4+J7$S7fI^ z427GQ?$7xd3vZ#07uz$RTgLt6RVK!QSN+TWvIdHG9jDK0uHcP8)|9);z+az^UG|d_ zVE0EI{)1o~BQx8-pEdtMk5|_c*Hr!7E+M5csTK#Jj$5OK1s{w|b)7xk>5hX}TcXar zn4IWH4|ihHAHbyswxGM-UF$&qgX2?`9sTKGb>J+oefOWTk`h!=AcH)Z%$LouP)h@Y z>b$#UyY{ihy=8ZXPp_-CZ+p)&r@U`hZ}<2CoE@OA*b{i8SS7RiY=_jNrKUFNC&;Tv z^rBlA`})pY9Q!};CzXP}n{%_{YL9PUf^FZjoqAl?vk|GF}x-O{+->D*O zWoiy32VQVIXVlr>?wZ4^lidH==JXs6lt5Y z_oCy-5~V5T(Sqv?xl&^nU$1eMCfN~Bf*KpJ$vt?rtO8d~ZJciI$qB7O=l|fCDFCc9 z(N4{+%=6!jVh83O@*`fkHM_{F*Xk6e8`dzTmLn0J=CVa+9T4cx;Gte;WF*dBmCx6< zKm)PZ<*pQn=$r$eDE41lz4=&o6%d$lfi{|zAftGH9wK8?&&Zqnv)wYh{F}FVO;UVw znZFdjD-m2=n1*bNJbu~dr1IiL;iklW@|#<2}#h1(Kj2g-hZG7&{506_RNVAtZW|euMH!-_+gKw35sPnReWKWn${Nd z%R0l)3#_g#p|R)COn=NbO%qw?g@BFl`}+i;lQC|gUZb{baUwQy)Q-;{U&vYugruHV zyqSrAYolHlG?uBt){8&LQ6H?`GtAAWMBHtfrm~-bPIMi(xaF;jrLLT|@zo#1m@haJ z7Q}aj879~9vs&WPw;k(H(2yTJ8!n7+VcowEgguQv$3Cv)u+X9VGvnt@AB3=I&n zidB!|a?fsCq9;^ zVUq~2SL_A>zMD}h;a|Q>Iwax|2Xv6{Bb5E+QTqlQ9{V<4_?2wR)y?OC`Fuh<`0WH} zov5TAd+>eGgg)(Z5?c2z$jy_Ux>0@5Dfdu%O=v#hs(QJ|S6KMiYliAQ;8VGR?pRs9 z?O<95nRqP}$&L5RwCR9oou3mN)>by~?tT1yd)P^YM$vfSD@B?XfcwBKHGBxt%V+WE zwO<_9eRr~OFBj0y=t*nVLt?Q<=$v7z=dada*d8L;d{wkQbyYW*aJ%Mv5bdHMki~7j zH+l%FglO4ngfT~&#C)I-1CI%&+lN;iWpZCYv-$R(LaSmRl)$sw*Pn7Rn)r#=Y5x%7 z_l9}DtngH~D?&B4liU=96lSjPZaygrdX+&GziMP59~aI*KW5S8UB>uF3eH6@@({@*<_>8cmOW!g)xQp1quYIdUU#c+3#ae6CKhTf3tGqQAYuz0PnTI7OqjztMPs5#Y=b$P*+EmTxb?t7V6k5Ujt z$K?rkrByDY(~_Am3Jd-8h9Yj3@^0-ehto&G<^bc(8(c%?|E%AcO(Ul zKVM%@OoWIuMAdN_B%7&6*;&0w#(QZBvl@ee)k*ce{yM3jKbmWgg@E-brmxGw7UjR` z(}VCk4bT42{a9$0AyagJ;3LC7vk&cRG8k;TZT7TcwiFpJbS_1#_f<*MS=VZYdo_G{ zrHI>*V_c|1Pq`nlnU(xvcA%Zypn}9?_KPCyhF38Ry0PSy#A$@|c};tqmXu=DXVdNCyDxfv$N86xC7+07u+DyGD+sZ$ z$14x#IptD*9q&xK$#y=pmbUkkZ&dj}D=0F5&PU7k9Q9Ldd0epBCe84sIqSAV z<2{vb|DNTYSS4(ruyw9P z#c zrJkDVR*$N>?(KWeId|H)&oe{Fh0Tpq{iUvI?r2S7zm_0~5F8eyn)}SBGYA&rhS(Sc z7kYW&CDDG)loMSVoqAV<(woUHy5v>_63iD&9QMp!gM$BMk;{kuumIiHCx#mI_sSUc zj_F+O?_{xKAt5-w(iYHLm=tg1mcsPAc{5(2YFLpuGI?p?!C;kxo5l@}e$)e3y0oN# zsQB(s{wVVsBeITfnL;oTu;rdVQ1qqvH>gLE?Zpd5eyD))3gSb5kpud51M-NEtJ)+I z0^*=+3!8t7>EjptDG-RMIWCJ-Bo0O%?2YTqOFh1i?=QCNfu%_355AE4LMGI&IH5@E zwz*X#4sR{^8A~9mzK1uNShc=utLLleMv5eTG`tr90KFU;A&#@3W)?v$N*d;Vo{(pFq~0ZwcT8xq@5dl| zk|xw-eXrNOS>as+rTUM;Yxj-Kk2~i=``0VF9^KQ7)Cw#aSe%e$o=SjmP;v;nxlD__b2&EeQ2iPSE#*Z%X_rGjfbcLT!V$b`{&!S zb_>Nv0ft#b6kH#W@+1F|NLBkh@?Y-@|H@i0|1S|BSXHPTV8(#liD(*(^Q&+rn2F-E zt2{^13-OA!f|lS_$0lZ1jJ&0?%1`h?o#bhh?-6cq4MrzHIe=%CU5KH!X1#m#?0Kod zD_ZQB+K2wK^kOdINlE52_{FEQmEqvlNvxxCehja6@bQ}0&(*o{N&)RC@3f0Pz3+&2 zUe+u?q?>hX7yqZKv z`tb37FaJ68e5UQ;YA^XY)Wc&d^vnQ6@HXox1NJ#O zn0J{8haR8^W{k6NW{Keyja1O;jdeFT6mY*q!wfJ}vrYXjzusmEj1TGJ3WO%XnPQ4G z_i;7jUqAb8DS|URJ~pI`GgZ-gl|HKjqtgJeQH`JaWsC=S*wh z30pG%v0Pv)S>spk=2Lf@o>0mD1e-w0%$of>JI(U%cA?VF4=){F*wpvE4x2aphj}UB z`$uF|3rib1$960y?fM#}^U}wer`6E;9B^CE)lc*}-C<6ucP!zp+D2uRXwJ}0@$^OP z33|0roamEu?h$s=utS8%?*XvVy0nFe_l-Tja9Q@crN)=TkoWB&Ek2%`sLF4ftKZ|u zCl%=FWEylmMMWpn31I0vmUHT%+nmm0B325aO`h8xP z2ZXl=c({@BS&QrRc=a5D-zX3TIld5ogd-0w3!)glDt&Y!kE9FY1CPM(LXpSO-B>)|6VMS!ipZz(^v8{alDeqbn-vl3>Dozz~HIkeHJrd7Kl26ezE% ziqzg>b@5;zWvW^0s9EE^Jj-FTw1_*O;ue5724vmm1AU?6*nk((%H+}s#D!W`4^TMX zv3ET^;|}HnTP2!XTw2yR8sN8)ioSd3MA&TxwI%WAkFsyv(Jw<(g13>gi1poh`KqCK zT;Dtc-x*QX&msMti1bdbJB2T_VVwIpdaVt1W)xZ!t*i8ai`WhYbxbS5*7?1GdxAe} zgt?R^h#~?e*?K3Rj*qZz^-}|l+?+cv?lY@7_Wd;7n6>QoZjyYZyo49wkw>InJ(~0Y zZA0sFf0h;CeTBL_x4#}ECOqmZ*R1#7Jhyg}4)C_|%`CtbTXE)jLlkX-&!O(=^i_QI z5pp!jeuJoc&Ul;iOS zU9kw=TqOBcfpTxp190{VwHVuGUIgI?gK}bh=A!VE*CMi_vIE2KG+RiNgR01>Rcn(%3g|55kG_xU>u{{t1%;NbXa@x0ad(Odn@ zBF`N~y#QYaq3PJ!SDP@$p!Rsaq1zZC11u0UFK~7t$%!K%YduUpNs{3Wf#t5B=NRpd zwfEVt)@TR&ko_4~KuI4FALQ$xdxTcrbl>^vC@Kp~K4sSPYw=GT<_V%8X|d|784Ubs zjs}JrGIjoIKkPWdaNmBeh_2Wt_v&aNmhh!|eK5suy3xYRN(ANr`tGPZbM{a%upR*k zIK@zl;6_c%uYj@1X?bTuu6)I`p~gZ++_3P^9Q%?|D5PzRq)F^};jdFkGt!2w;G1=` zyR2l>z8n74zD&5P;O7bo8Abrq7EPX%ahJ>{!|{NcT#>xs&Ik7nkRJh49y&K$sPhP- z-S-t@$C9Xe7^57%OR=5DfRf158tsPdS##gEfp6OBC6j{eWP+(rar-xe1||VTGI9@S zXUzMPZ06WrAunjpy?rppM|wM&;5#5HqTuJGOu`FrpGkxpJMAA9=D+y6|7~?(Z zokTn4?s?SrdY=c2hxuqy{^XsWq&&{|pGE7leq2KIy2pCkhO=)Qew_M#s_ZG5y_l9+4Y;wmFaAN1hn9j(oSZ zwnMjh6nFlwKFWWbmC`q*_rStuJh5xbp|oYqXSv|(QO{=|Jp10!j{J@DcNvnP?YDu&0YrTKs}<(F$@3q`K$gDIP)d0<7K8dn*wRztn`*I0=ii|& zzrKbYK7c?#?Qx`%1+V5w4c7M zqJ_WdV$KIH1-F61B1mM_6TcLyKbv}X&IhHs7xr+Wp~ku}!GvAU1A0{J)v|Q54KH9X zQ;7Ok7r{he!r{&4J-YVYY&&_<9bV^g9Fdjvp?NTU16<%DJoWh5D5GQ1JznxH82#(% z^{^QR*TkZLa3Zj6C8h17bny%0w`(1qM;jUTS4;=nR?(QyxeBFShxAr6U?mnh=(+JR zAsMb}Kg@A#0qB4cvB#B5_rPr9&&z*E5`~Cts}yCC7h!7k%8-K>e_LwXThvjelrnGh zC1qAGWNG4+&>VqTblB=p z+#tQrp$FeNNH8wTFk?!y0K*LsCq*nlp8bwW-VW_7o&f~@W`(yf)1KKOqn0^b*TF02 zPaYRdAs5bh1p<3d)Fl$J89HLo5Nj#R14A(9@5$r@ z5u8LBhH+AbCGJ?^vDAo>+fwl#19Rd*uYE>a2Qf(-o+k5f4)VfdANkkHL9d(iDWc&b zl}99;sz9I*Fq!+F2(q{|9Egmk?8Ug?+wjspOH|=+_RJq-^0p0M0apG7n~7YVZ*x^FK6reXHuo`P z7pAlI0Z^ifuEeSSR4mZDf6!Iv5awLbsIjNj;eZx#wj_Ppo$ zcqVl-{wsx~^j?;)sl{46vCo>n>bz=cmfQALhG4;!nEDA=t(A;Vlu+c&(CQP}d2|$qc|91w6!d0D{aKcBZx(+Y2x8-dvI1N? z4?pQ0Z+N>Xwem%SD51SB6n`kAsQaSw2BzlRsuLS6iV_foJ?GEAZJWg*vl+!Xnt~t1 zI|hSj-jGb)!jlWHzVO4$x%-1cSn&xB2;aXFK+y^84<*}H79Jc=C za-jdY^g;ihzFrtHVBX*$M>)p+|5|(h^(O!S;}8G8h(G)O^A9Kk}{Ld67zsH_Zu40Qlyz&?+{?ZtZ6Mq(wrKRk3Z7XeCl zTe53xy%!l0QPj5p*RMhdWi@Hqsp4)SH_2Gn$j36`KRR=ey}6nR_0K98`?$sjk)ZuBRMkKlVK=Cy%0KXtJt5Ht7hvI^mPf>!TqVYUgy>7Z@Pxd3D5 zw1tOP3$hZGbrfxjLR@j#T1IMSrg^pZ@eN|Vvucom(74x;4npG1F^u0N{<0AV@%es7 zTPDl#iv%R==v22T*Bw_6=(5143f@YoeVIscCxUYR95PWonYE>@3bY*ocgPV_P&|+( zx0c5b#D6bZ+PeXhF-PwUsU69&>bI{{?12y~=*M&+81med=f$PwUg8CWGD6FrYJ>7{ z|GKXSP;owy#h_6x37AJ>bj&gLpbLmETGvqrYH00lI^=jEw~)v6`2Abk5$#?E@Y?OD zapdD;?9x|d9j#tfqi5MrU+_Pc6of*py<2csOx8bccj*axkw#i2VU>-r$FTc^a$|=T zF$PK+8Q`LYdaz$|DYQPsS7~vKq{D{+Hv;?vMB~2sAP3Xnz&%KM{|49|VMDkyP}cB( z{IpLDcy;S$>oc1Sp?F+&9U(O^?O}iA%o+>{1^YhijKYt)EcJyCov2kz8!1`b2k1}1 zmB&+a-0JzqeCJ<^*I#R*rXa0dUd1{ipNC|)Ip7Y(dXfMP`|A7=*C`Z5t=_Va?FYI( ziFn50{rI=BH_cmo6Y)13t$fRym;2mmAl{mQha#@9II~P`*saqG-Ocu35mluK#nCel z{hR4_|Nb-WD<64&x=L_#m^QngZh_RUsG(wNCz1MwP$A z;@wvTit__a*FJq@H)V2YzHw-RF+CM{!>j`9cRh!fesvlJ7Shi%<&n{WA#%(Jd-tVf zV}pm)c1{01Xnm$P#c#@Anvo`tCLgY4l1&C7fC?7vF8}Q>w@Ho?7h^;J*@1Alq3nDn zAcm1$+x4qHxU=2SogxYQIEyD7-G81F#}{yTK~b2%Q@rrH){=-Xn>6`F-?O_%=3g??XSG zy3LE$+pRhOW!bc+|K-I*V`tp6;%QTU^S)Q>`kL#q`*Q5_`qahw%rUD6(O1U@qM=5H zuj#Rim%)OD<@n{t@pZeeKQhr5%Gq1VRjng9(HGM>`nAvp;OX{j(6G_5a@JCz<0b6N z`!OZj(VM6g;pJv~w&Fawqqhgq_eHGyD0%T-{p^+b(RY2>S8(~Y@MahO(m#*_df{_y zA35aQzl`-ZM#78c@-Mi3YWkf_;rHK= z@Q*U}1t-)*rD&a;u|phvVhK!3qe(<(kd#sx8sd)VLhJx=HPHt+oQh~htvVT6`BY35 zIj&6cO5ERLZdtr+*8;OKLl!;e_&~v7z@Fv0lilAff+mHohkvUm&tUECr5jtu1Yp3XMqv%#(KsPS!l_EUWW7;q<=-|U5N2oQyzC`_7l z4^O68&aV%WWn%gD<`t*-{K%}0$Z%795dAq#`}v{c&n6GR(@1!0kLyqWaM&k-l>Hh} z=GUz=S@Za)ZG^nWMtDQc7aGI*@U)xp*w$~+F5P)aWZCxPiwe&KGl13@J63$*R_*gh zlYfN;^agN|2&P|O#X4|}>-QVs9o)ZMZ9P;gz{f!$X3Xx+-dXqm#zxSNzSutg4aTk} zG`Wp&!I*u2{L1}xKb66>2VI+>FZVp`8`+oqak@k+qe z$2b193o^bwOK^nlwH4T|{P3=+>d}MEpji8@$53LFdKhTwTVuD&ZhZh~mEt>N9gWL>15`M1o zRay|-I{@N>D%`c7Vk5Gm&c|O|jt9l@KnvGv2(C(l&Ad4>GGdVhXkVB!_}A0%kAw-! zf7E~e9|_WzahmX8A_yU)TRydx*WDhUz}^WK`jf#;lAM<&qA4?JcQKH?pm+71!1Sx) z4>b^x5UoKq2<4#z1$Y^dFG;2upu8InsG6e2o5e|xGwK4@a zwW}hjYdOLQWR|xV0nSzK!qSZSVd#-Gd?O6 z%&I_)CW9)LL6;FhWI%tSaVjZa_12ljnWmze*9KRI_pOeAo(#RwZFT_nUIG>MHI?BB z{4VnogdG9o>tDC_uYl73;BX8hfwLfpmrea=y8#+5Rp3?ltkkI4FRA7|jKmddfkuGO zSO&s7ltMFgElPc!;U^%-hLI1l2T_|;J7pzUqtR4Yk0UgACaZEN!q-V9rj^iD$%JaC z8;a$wCiKYYS{0jmZgQ-y6#F4C4~-pdvmeErLa0Wse>+ma4qHX5LVo{~#+B{ZYcYYv zcj45BN|gg>Q2wv6I1Hk5XcGeQcKY{l{6m0>hx`9dDS=7e+`-b-iiMbko#$`fR!|Vm z#nsu|*d7tiGpEJ})>C&W^MuDEnSM2iLOZGXO;$6>+S?&T7!=*f*JQ2|i8ueTdLoaZH zZuL7%uK&Hjy5@6^3(#k#m+5#6hAc$wgt-Vcf2%XxF-y<~PLeS6d^$Ecy9HQr@)!-X z%S2Kl*lun1Odf+xs)iEO>HPbp8BZ)ed`7qzs;~h*dsI?#$zIAoUg@FshQH$*6kJ?^ z5V4vjsNd|-rO(qk5sj=U0CQ?Q=2|+QxMeF?Ng&4f@G0>#Ii%>xZ2@?qTU6GcSFgZSF-Q7Ik=+7v29t~x75F74teXv*1hU*rSj z_S}S6PSOYATwxNlL-BWe@Smjnc%BRK>h_VYCc{Px6m52+$z3bk`L2=mDY4k+GF5`9 zdu3(?iOTcHVylEq8VSdk5O<+piWG&Rel=MX zWq>n%DqOT{M7S5uH4O1k%OjP9MnrTD3iN|2DIrp{yfjGH%RG&{SPqrq!SHz57!uV2 zDZ!6^Pdq@55R!|cdYu8Wt(SA#HfIBADu&7pdkZUUyj@87#e{JpVq{dyPI5$&_MnJn z1bm+fi6E&89%mFc;(4?kF+Hs)zlh3an&4;wB7dex3}P9~*pJST64r+j(bzS#+W_0R zRj(hm!g<*D>)vDMb0~W>^#KnW!nGjY z#>()&F=Xj?1HrAeG#8r???=PEl)>fUqeBa~)W>Nongk9};YUI~jg_&_^z$zCX^_|S zm>m*E9t&wo>~(W<7HrnV`O&bOMT$xaI&Ld`@03A^NI3(^tsDW)QOwBYu|&|fN#@{; zpazr8_IECKa3_M_WI!o$0{~Pp28@-nC_5OUP@ru~ltpP&EF($P2qf&G)}v2sbs zu^@oh+-V?j-!rnI@y9nIxsy8aevo^B{@syxq^}J65;yz;$lBAv;tsCwvJFz!J-VB4UK1fQZ3e_%jE8x&zdNK-?S-53Xik%uID2e#Gs!h=>~V9^~71uK|% z8AT0`h@)+wkkmPoSPFi&(GD%kzG#5sfA{r9t*fhI{63O+YE6^S)C%*cs=fk)u>|rN zaIf5T zWzo?`Z3-)BiHyJi~^&&nQF9mel-#}CP zSl|hW#XvPqKst6PYryXH%~3_3+!1iNZ}K2RO@uh;rlhIwWTpEodoK=;mcbI4Ncne+ zLmth&h}l7Haeo>s!;TEz6Npm%tzJ+iWAcrJcv88E_SPeT0heXQ!t|&tUq?VFDw?Ou_%2&Hi^+{@cZr#AzNsn=2`91*}Fvr3zCg zo5C;XI|8q+sL4M5gT_K)L8}Y{m;hrl%*j*23Oh8f2rt?RQiX&t)lV$Y&2MPg$HE?o zaS$E4HmGv~D$xP{j1OvrVuwj(o=R$QkxgX)0Ap!Lp}2^rJC-$SFqo3&3Q01y5`m3) z4K->sS=InXELCA$Au}6jeQ*(KDwL7Nc%5}h`sh!T(Vsqvf2D6oLQT}>m)DAZW4`){ z_FZXI;ERaC|N7;uGD3=2JScMFRL` zE$yn=TuwDd9ff=^;)u5A4(tf52Lt1>neel`_6-FTK6mf7bbKhsnKK`Y*FBJWaS6J~ z)CHRO9UQXtpHp*L`f!UWlz`t>8q0I65<#1wxkpt5A}mnEie>sTAqlcTN>zd*idr7Q zzC2O7X1K2g%d4A)j5$x6;ILBnogsG})nSit`Y&%m5#P$oIws6CtO8b1!%mXw$6(o; zmE0II+UHBwv!0U1vr;29{1bu90NNwE{OEv5~&EnQV#*XjD;Sp?=ay(U5=3 z=LK|xaNvL_6pMg-lkj8gog6HW3T}%4OA*Pf!b#3cS1V)2Ei+alOdoBB3fF%`~aXFhB9?r=1y`aVN+nsLM%mjj)LmRlauyd=(N zOoK4NJYbw=u9D;o#_9@pgY#2F1XQ+$Ob9NOBEpTan9gUH>Spv?T!)i)QctoMN8`R_ zrb2DKrGK;07rz?T{o#?N$Y_c7&sQlLRyV>4GB%eGNiPj+g9)Dd{LJSPZOv}ZdyLGK zsUU9=><$Wjt2hSM0NixrtbUxM3(yM@A}z{X(}NZs$vCnGH6B{*50YMDRS^imTF~!N z<-*n>dCLJ-xkwka-x@d30iC9__e4yJcAtWr0%={>W1gOo{)y|DhJskzPb-0*$B33x z@5mgv&AjD+?AJecTh$-%Ofl*eVT*(t%;T(&D7n$+U<)3V$D{O3rC6o#LT>fB3 zrHLdO)O4xrg})M1GK0*SQT>Cu=-OcdxTXzC{9$rUnu;`CpQ-YdgP2AIIGv#l6O*7! zdCB*o5M~>eu;?T+prT7CU7V){WOF$>rnL_#7*{pdg3cqrxlqq5m)gsTI4^yi9bH|( zYf7xc6*RG}q&az=KqUy;esq-y?_WP>+u>?1UtvCQHL}<52NVb2&=LKH@x^)Jf}6L- zLPz^XZ=L%6nBnm*X99OfJgN~_DVhgLw)xB~uz#}rmluX*@o z(1UgYo-G?e{jiGddLOJ~(rN^-&%lQKw+>tIz*NDsY^GglX1230c+N@moG}GFr8Ec~ zHG6>bo+)b8ZQa*%mVKnmuXwxD>t z8Xa|Gw>tQt+7jlxY=Ltjq*!i6Uiz8Qc}{8B5w%~(qRx7q{v_Zt7+6y+t9$xMup}l$ z0|1Fa%(ZQfe zka6lG*1P7jk88Ar->IBT3_Ui*Gzu<@_CRD_t68oA4Q+{n4K$|YM9`8J2UG0Hcn-7t z9z!}*{r=?z1e!VB%XU1}Ly6f&VSC15R{xn_w$?{TImt_1^Jp9K&)vmlZyN=cUQg{T z?t&`O+uENcg^TGMwo2-+%q8}FR-aO@y&ktsE{97l+sQr+C9@~eq07edZ_Puv*`OSR zst7}FbATTwJBm0rm*_k>t&c}wAKXjJD=0TUke%v3T#R(I;I?=~T-p)pn!bO>{s}=b zup|pxG%gPi*w!$swj;8uFkCWn)anJ!eLW)DbMdzdIo-SM2b$9wIBGBU)_6RVcs_V} zE_N7hxV0>4YQ6*^+9D&`y`-Oa+N%@v&D)7Naxosa)X+7xoR`pk6c4O7FsD?(G~(GS<8o!lJSSY>lqe<0{r zcznzbdSGl!At5FZm1U~dl>O+O>{}QbtV2*RyfTqZtQ|K`>mt@(l2SRmI16iE!ebE` zF^l_?m?d&L-PDucu2gVzhna~DOp5#rSNip#RH06bXk!PRlZHxeFR3rG8?N^=gyd6K zF_ywC+?61vMiBA&-C3~Wpi^lvdL z;q~jMd+|B*j2H3mfiklB;rb9VG@^k&8y+)zSM)2VQdDwZ9sDB?(LciFIc8dQ7u$4y z_MnlPsydf;`lnbfO+Pbk_>(IZr1^ZjTCa%5*M1%jJ5sk~>AlidT#0@u@Cd~>gy-+ zA(gCn=a<@ueagfvIi^x{;=+=Od(s^6sv^)`gpLM9r1FEl%!rBviF9msL1{xC}>M6@7N_z(x3maHIR=}O%YD8x#F)MTjy{q4j5Z&`+~O=O4nO$ zs;*eDek{M${)1KS!SJiLs;otDuI(_|*76DOm9X%SDGDzqm2A3elQ_QX@6smyy7dQV zer{%;NZ7hsV#K@R+NUJ4*bEK$dSNkI#=XQ-!gX^p6ng2fpWwoHo*nfDG|po~!J`Rn z>_~b^$8Yip1R;qOnu4KYWWmI+q^VJdr?Q_0`MR_=`J_TtjcKbc1AFfr53jST%c88M z(a!Vt(+S5m_hR?UoXhf+KfOr0HQY3ki`U&w17`Sg7(vh=zfyf$Q{DXvGSa2*?bBCY zNC`M>!6P_vC(6cBTE-vfc0ZDePX(ohIe`Y^%aSczvVlaD{Dhy9lZmU6D%Es^gW#)n z4Mj25!~rQm>;i!|uV^=4gr#mT9VBWb_a zH8wdlmK%-(>p7rl%TLdQjUE#h`})mAs}o<(M%8y+EgSYvLd7~6H`@7e3-QrnoeFLV z63Wm*=iO#A##+8>Wc-XcqK+%2#KfUvkuqhBZNP)q9J?n9N)gw|NrzrC;buCxU#XGs zwg+8hygjIh5uvB>%E970t&&NnW~Z9d(RDT7Y&mzO$3Bzg;;7Nrvt|Unb=auq>$u#g z|9QC#uzem2_F0eGT(e<%g_!MV3gCXt;mJ&OeDRi2g$lh<}ZswXw=Zf?pWwCn8Hz% zs{weKX+nC_onfArO0T8eI2*N0-OofL;ovnaElwB_|0;StQaG+FnZ9&Mrc2>Xq_a0g z|K1i|@K-cHBF{CBO2C4(g2|1s{zU22R8vMc>&K95nnhxTI|MaANSU(!(T*{#VvVUm z%Y_E1ia;7F>fE(K{IV;91fhUd)kr$Pry!AF zVN|D~pSVL16y(U-|3@5EyM)^XeM8J+Pgvfm@Ea{X*B#BM*{LU!peQqj{Zu&0%tuswq`Y+= zO4woFva7PGoY#YRgNR#x8x&d(1 z%c>JfprMMp<5GBQ7w9c;G$H-SAm{en_+t{l<=L(By>=4LPmis4D2j4cRaQ3 zS)p*AJ7%FRbAMJ^$XT81O4@9vr4P@tp(ccM8W&pI7QU8KKj%q=#6sV5)Cu>~nwK_F zRi{sK#l+dTN@`LCFiV=P{p`&oxul3bH4A2g*78}Tb$_#}dyi8~SFl-Pwq(FATJD!k zQ#>+Y240cU-IoV8wMn(tMcdc5!!;gQN_ASc{%dHx9f@}}2G{h_ zYo9*wn z3Fb4=t^KW=t5M9ScM;iFY~852x(N2fl3x$vtl-P4%ZBcAH1oDQb5f}0~;fMYVTW78XsQnjK%Skn)C=y7bT7!da193#>uCTr~Qw|0Pz5F zMI_%}=r87?S6Y#2#f+9KM;Cc*^9*AMWRT6fs`4%~A9@U)Gu;W_USkJ;et0x%B$jFR z7Ci(J3w|Xph4qRGnJ&+E*+;Kkx^Ye<==vxeDZZdEihNhYXXEXEcP*+8C*}LD;XG&h zl<3+X`m3`V7Yx{_S*ua$wN<)f+a+1dH1Uqx1ts-4v4-44X`aYx2(!#P{Y9;aG-7`^ zeHB%sD+O*gz50Bkto1wK&1aZ@PTM(+2OIK`n~keU441YC?Tj@*jrOr=TkJ>a*%GJO)9wxZefv|vVg^JF&ix@g+ETbZX!ox&2nFU0lm)``h&5zy*>g6?~ zvm~qIa*`|vV&MmZFxnd}56PQkI>lEh(}F$^nW^EE;HfIK{EKQzD;Li(WqBHkGpe?V z+_bg=v)4T`=oZIl=vsFYmSTRA^-IdP{MbIZequ1t&HOMSTYAi^-Qe|}UN_Y8dYem{ zTe#I~Dss5*9vs*Gjd<}{Si~PLL<_OEyXWh(5{lgUfp5H}}0}@*z_&(*r0o-WMBA1h&St`K*J;&6< zuV%4L%YXTr$z|G_-v*3E^Lh9KhwfI#lIE@KJDBjVRhhS2+6~zxrVyphR%hcbs2Kh9R8E39)SA*65``Lhtlo zMK7{S{2zK>C(FEwzX7ToE{o7CHz?K4=-nuNfBEm9l!j%QD`!(|97J-b9!)!AaY7AjVXAiZI2Lja?O# z%2JD}j8Nkq6eH$~iq|%b+D(++`@3JJim?s=BOvYZlTqz=B0C*}?T()2p+zS%lOKRG zzh#cXJW1mAUr{V5thgg_403kbxJ&7N`){{weAw#tZKl-K%eSIFHC6OIUDXzD$+|0cBm+q%8To$agT)-*Su^%$L@es1K=&bBZPP>%-Go{V znq7%7a_@|sJoNKq8&~XG%>wpCdz}+a7;0wkZA$9UecY&T(>(^YNmEZnG>jh=CZHp?uIdN>a zb5MGI+?U=0wiG|Pd*~apdlXZbdw>sfSI3U0^)#FB`mP^be3r&&Dgw|RTs86S{I~totD7VGyk(^}fUf76aq;C?ODcDH0y{S7tgcK; z*UNsP1wi|gx1n!AsT1|l(+D&hTybxN$CBOa-BF?=;ngWOxr6n3uc@uVh~Y(&>43<~ z3b+?kEIkW)WTNRkJ?XoJtHZY4tkeY^ktQg4s79c_tMqZuVL2&OTxg=Tg%!D<49(_b z(61f022Spap9Vhd#r!+iB|j?L^eD`j#8@*S5lFVuRn#FR&oq6#95rXBk3BAVJWNdv zb#fM{270GA)-tXh-g!CMIgwi5^`gU1-*sY+PM)AgMoS&e&UxN0_3;e<5>qrTzDmZn zITq%UzI%S;l07P%B6$I_eMRn@r2xPOs%5KeL1C=nst`;e;62wbif6;PjkK>4%Oi>< z<3pJWhk_EWlIH{9f=cdZ$#F4LC6eXnF#wB=fI6UX!>D!Ezt4N#nlmD;E`84W2t{vy z4uJ9KOwX&pAXO&9BCj-=XVG-hWCG5sFw*Y7IQap$!;Nz-i7F}n{i*B(B2)331aHf? zdAr?<_Xnx+q}4#AIcz1o4Rm>!;fnks*0Au~=@XDV$w5!=Cu_Ee^07(a&{1A`3Hi!i_3MJhyw3`0fVvdJkE7U`Y%^ypFif0yaBuskhKL`S= zkbiOO$+rC&;DA_`^@Sw}d8bV=P4nG^nu5|V68PbVs1{N#gT@Wv_r$D6x+r^t^lZ8F zi|CgjX~{*1rKV8$S{ZJOvd@(=&HpR8dYiY4M-CJ&6X;#4TmI*ajP z^MW`&s(wj12E|)0C*gESsyN$;X!Re8kjbhM(fPSJClMXm7{s|+UlGoc4ViSRS(w$V zd`+>slN1>?ah5+x+&*6S2Ezu|1}g{gUkx+}V=zbZ!|O8NQ%6qbpJ8?RSgq#Ds0?ThZAxh7Fz3LCJ}s$C zE>c+|PrIuG)#qRrlIBl*o=!idD-Huv1zzEXbZRr{P0& zV{moWq94CK>KrIqAO{seG3HDamXuwOOcCX4mt1EbDZmERG_OPIkI)g4s>u?D zXIlmxPJDQFFV%Lcgikcw(BPRu`}>DEqhI2R&YHYU#)RmAQ7|!R49;|PY9z5+Hr#+& ze|vUvxpgfdtVl1n?YPRdFVuQ1wI5GxF(zR~2HY~f=`{;(L{X=Rd3h<8J_p{&H4=x- zQL$uQjfUW7f9yl^)vH)AycyX20md6?sZo*XZ^Gp=j%}pm7>`yCA!VNP1KZlnc0osH zgSe;Yt1L?@mz65tr_GhZ3Z}-dJ-e0?q`QO**3S%#rygsr1q(`UiwHx30uA*?H)`6s zYbkn8TgbQVI}VHKaqh)az)o%!+?(EjYwmAsQMQ4of-Q$lXx6n9Hnh>O(a^wF#HOu^ zsfbZqDN!{6_tUKav=GIcJI8d@`fzcX&GU1+Lv*V1n>BEByHj*hP>Z;c*k)!VL%YlgZqvcY+&X9N7y$PD(Wx(@hlA-^rir%JY;Zw0Q*aR*{e5OovG ziYXDV8WlF}00FKp9arhOzlksWkt4d0fp~W~Q_4r@PsFz_snFC%0xmi`j#7qb)~_>G z_>y`J0VNYPv)5jG=2RJ#8SHeU#&j}euai8^Cilg_+t5GK!kW~Q~c6h96ra{zQ}SuvP8j-$ zG?Rr_gNxQQY3pRHL>JVeF(;g5(;|C4bgXDLGgKuhR#s4TMHGkY6sp1mRy9gKr#W59 zLceNd21lV>(@jw)wOCyHJ>Aws7@aDDNr244Avo@FD-A_UL;@-M4_h-N?XE)v#%>J= zgQ&?eH7Gp#SlYRZv}5iqOhRoYx;UDl37JPkw8%%PfgSNcvn_UwCuC|%sGTVTcJjO3 z&=(`zB40{cQP3X1U(A)Z9MofU?R^)IaM7*C@PT25EqE2GXhIZ}kG);;7)81{TEXqG zd9k!QY?|yx+i%$l%Px@5-8SorE0K^1W|$%|*W=+_n@Nb3*79Oij2W5;m%sB* z(_x5bm@&n47@nvCI%emh6wzV3FU^oOQO`s^}Ekk=S~0}?wdm~C4+P&QCFdZNXV7Yv%?SF~r&y}i#T zMSeY0;o(=RID^jv?Iw?vfwKA!ipG zfhasd;9uD!heUR0r2?EsaGf4=FmCtDGf$1YV|~vq)mwWmyF63ydOkcV^p1T!8?*I_ z583G#eVliv;~e8`zmHd_owJs`a>~|DnB8|h?`>t{jW!YmIIYK>Y*hTQh+c{cION~Z zsKUGK=Y=?9vxb)rp+!*6H6ahFof(l{J|QAR2O}g3i1#iZ-2RBl7c7H;HgdYjv#}k# zes(1ezonq)-J6JwG!%9nux%7|Gzc|kh(kd)R>I@@-kj~<>zGI}w@a)mP$ZmUE+W)F--0kIK zD}92K!OLM~<>BP_9qN4+tBs27N(s!dlaIUQ4`(2Gxz>k9di^93Kw}A;y*6*uBuTJ3 zhRn`g1W%>H5;%exLfH9&>cv>#k)R$$=jce&Uf#&_^#|eM%N1{MDG|ks{GiE+zCRx~ z^+vtD(3zN)XWF>4 zdwt1tj`9sFl1!zsijtd{PuQ%WYms>pwdAaCC`Y7*?0Bw$(-R2?=Y8r zrASgfdN~_?)BtybtXbX2(p*9n8-FO_wK>#nG+CLN$33;#P`;#*xx~7iFCv^UrQvlM zknm={u+EsGB0A~O%AR=3>27dID@}cSH+HWf^RA)N@~?)rD7}8G{hO?mfc-5(sE4tX zd>;^BD6mwd00`E_v0zUa2J$hV`_AL8(#aE?Y&@J2B!hr2%0!+9Ae#AV&ao1LA+|G2 z8zv)ak_JMrjr2>7lhzj;(KT63M$j-^wel}J1_8+eszM;t(kuC)9$F)yh&A2e42J(- zGbjx$9)S&5hEa{ZoCVvpV)t@&U5q)rxrIi>>&xr;mzw_AehJCF9NebU7QF~p6Lo3n zIN4?|laH?Dj%QDr4i2X)h(Q@JQ(-VuhleIK^Ttj03C(;Pk}1f7)$0Qf!F0O=AQyRz z^Ge$d%e8<*^|UfX5<)VecJv+5q6!a+^HgEn9M{sqWudPnJ4WDgOpbu6Kg@6xfg|A= z^;z8G1=60fx)@nqy(~q^y%xE?)vA9v)usB?#HY~lA~eM1@Ht+b^Pe~3Y26+L)>sq& zjVEwcrnqwJJ~UwBOJ;@i4roFoQczm{O*uw3ww@Uy^=3}nQu0}Y(8ZmfG4GtT zwMvkP2h)6t>g>m>8}ioc&9?$WoE;R*FiwO*&!OQ_(&7^hsm7lyzNf3sylqoZQkkSq zO@1C7XYmRV4yGIh5^G4%~h-d!0cgQ`&;CFdkHdz+2(GvAT z{>_F-mSmihwNg>eCzm`x;a!m1l9x_Uqop_@>WHY;qG3J>8ay%%3N$ojElh(}1GhQj z7?pu21t*K%LY%JzFBkGD`5za}HCVlfkdU|P* zI)g_%O&rY-#Xb<}g4!~ZIbXM$apvRfV0*A%%&dC3R7EoL3IjuH*3mE{&nvOr(_i?l zn;_CgoyxAGWd4y*M0@QoqjFOF!&3(@7MIC{LL}^}42Q^Nx0b zbtaMKrGzYOguHHTySwr#1{eKG1=Z|apI#I$@+K_wCBedY`qm7Rdc+pq5{W zMh^<9k!G6BP;yy6BVp=MV#4~XAa%(0<4JCACVMw=-(g#yQu1?!T%U)#8scNx!Gv8C z2zwDhT7tRBi0qH%r5ty|wABs+Q{mRA#8`joi&!Eb?s8=&=KYz3O-}18cTCMpQn3v_ zC(7Jj7Uo9*zJCIIICihFL&W2*|MH&qii1L=|GJg~7`of%{~AWk`p%x@%R6@_Nek!7 zEeNMJfrcgv6d>XibNO#=2MmFrLq1Auj_py@k{NcUESEK@`qo23qLP-DR)R~rkRAFK zw(P|2*}9md4Rk**3p9vICC5N{{Zk=0)@{na2o?|g-e2e)Xsi+ZJSxIrlddB0)pT_@ zjUmF$$ko#f?OlI=3siJdsixn1&40@1Hv!*zELq^$zITiVIrRPW%H%USs+XFR;bas7 ztY6<6IniUTp6-?_7nZiahSJ2ryn+2B8C!3l?R{xBRhk@KaMF$MRasPp8mM9n8LG-7 zXl#d~Bf-J(iYd^N6p&Gx=>ngCb#ry+rA=EPpi;pG%}Q4Um^b*f=|sI)phup0zKkDk z4>My2kFS&^)zx-}EqOcnLJ#MLAI(*`gIA=~y0OZNhtFyF+=h=o9rMY>y%kU%@Z>zP z@9D^}g$miu9Ym+i!Ofu&iEXwB#ZBjEByj4VI(iuK+F%AyQ_It7iy?Zf`EqhFI{>5h z_!n)j#gYf^4`7AsVj#_g9$d;_RIbO+{+n|Cbe$|-pPA13gjn|hxSeJLT-+j1@u&Q- zkJg@5%;3STe!P-Nf_KtyvTNbtDDx^cWyi#GceHl@I=7Ph5n~U6Fsm~i|3$%+qN$~^FaQJV~mTcGKbT9fez3#v(?9~&u{S5+(uq1ka(!*Pz-8%{)t)IBW zHRktAzM>RE`s4dBto0?#TPWf*wg!Otj~X7Fx0?DU=9h7q06ifpbv;w2cfn1 zOvFyB<5uF-uu}Y5%jNI0qiNVfN^@G8aGdGa_3_E`Zrk)VP~zGp#gLNCA~a}LN#6{9 zIozbv(0}6*kqi1=QQ%r!cOZ7|cIQy`X24)>|F6{Ne^KbaDtiAX8C42E0KtlC<^Ncf^FJKeIXO6f zr62xl-T#$PWn^V!XZqhVs=r{d@@mRmx81y{bVJp2s9)#0b_6-sfF4?YOtx@!pnLv2oe`;lV9m{QFcjEM$0%qa|Vgu-}5Gm z1-T8GKEoLw`3In)MY|q+cTYFY+nvT-r&%w8XauFa?{Kk|fK2jgX&$qikOcI-4|{X( z#}|0#Tkk*wUx56kF!oXMkv}}ZgvIDL4b#M(VOp*?pOjCNh*a)IlO=BkSbnGU2o=E= zC~H8#6Y`9GYKefOsnpO z$$ByZ4RZn8_{sKf{ClzI#m0U8J90l@F@s(#J}91NqfW%nKGFMS7R1r}X}4}uL^XT{ zdWiO({Q<(wgF@6Ic~<97kp+<6&T7?6IfW zu;UDQBJE*+{ZAzP)<%u!?XK}3?vq!!%#Zaik1$t1FyYliu)wj@UBqp&roBllkGZ)E z+4xYHwcn){Dx!z07Ks$R<6rv}8qAKP#=RK>ysMclK}lkVs=Er9H{glYm`Vw%0W3g2 zroZborlt-DG@=g`&775KP7W<X z(!`+55J(%ufOP4m0HfONvr5_E?%e@iPS=6(>7TVA6D<+~oM1N0NvZGhe=q>g?GWOV zJAj2>ZTdBZ*-@;L)xI|Kv0MT9D1AYA<)SK5jaAof-}38VI)fGjx5O0?GRce zJ`+bhz1eC`DXw?5l=|vovEE39M?; zV~HsnsiCMn8CVhHgH2ZI59kT0{;vC8kA{g>p}^r=;LoO{JhG!=*$j~7%9GVTJAB@; zkhuZdV{XUpUSw%E^C-o1oPCjNJhFX|lOEf?%1%x6ignWxyJ_FC;A}tjs`kZu{dfb) zuOA#mhlLTGuV>(redX<~?;i-16bHbbAOa*4N42jNGozltaRagV z-*(fw7mELjF9wW$=347T>WT)00r`O>=;BdoI}guo)Ut~0(^7q0RO@X6o9+7xU~>E! z(H*8HHmjhvVaX@lZmvutx{)qK+tkjFJGbH@hG$ za~E2qC-|-pinxk;9JmHdLzx!lk%ZATgFRF*Crp+dKEns$-i&h`-T8$n*SQ~p^i}-GN10^W! z5LP-1R~NGe#(8ikLqlR8i_rg#6^F8PK)_g35i&f_{ZF*m2=^Biruc0b0TBX5yuUBD zzuYh{NGOXZqzp34$8W4P0YlNe{4aqlXD~3gCh@43h|}4OubG zR|T)84dfFf2g$D1>+yv1#6E|Z8x)EXh=ZU7>e!xKoeGFej0NB#Yl1jyna@&=bVN5(SIpY3riCXt%{v`ni=l;BMPFBi#r^4+ zo_wI~5nvoOe<@-n)300WsG{m!NJ>i0=2OtNzB{sHX~z?GusLA)UZgHAe(Fo9WoF0J zX~&{l(#5>0qI2eq(Y9+yL-qWU<}qQ-2$dO3nG_|AA>B29(qM6!O47H6t2>$lmuv!= zp@$XdL^)Sf9Gf&4+EYWDNk9=>5*uOwwqY?=4{F0DWPpj0Dvt-OQz@83HQb2XMxu-f z0Asf)RBb~zWcvG$Jwz~{{R{j1OPH+kYVN8>7|H8JcxeG&fvaMD=}ZqZ-N)pml?+!e z*PV+wEGuuX>w`&X%4tpw01vc`P{nRIeW2Q(a4!J7D7_@Z7L)8v0)V>(yZ(w`)0U;E z_)qdJ8wv*W!jlD;YKKlFiUuM0Q&w>^%Aa=H%m&g-RLK%)T8+JKSz#Zq=bGbKX-c-gMwkG>~$+t%%~FjR5cs zSR8ZUCZi*_)3hd7jMfAZ{fiW&pY&rLRQlzpzqe_hqM9XxR0v??S%RKf{)B&>fxib8 zv5&{o!&ITVDH~k&=+dg(4;fmbIWyB_r|l&sw_Baddw-+0aOP?=C+k|F4sVmw8=*W=fvD@i;Ql%3{Tvu zj9$8B{tid>+t+~U%hAa#86Q9IbEDTLeXecqsabHG2s)I39p?mmy8$(f6oQ%Hi!+QX zI0}VjJdh6vKs(rv1Oyyb=1$4}9{O!b>TFKCh&)3YvPG#W{vY`qq*Y_#I#VpiFdTys zk=a9}RHDm(3S>uvewJi0v?U4D^*W*|Fm=qYhJ0ytI{glj#;b99Hsw)M^7W)f@UqQe zmwQ`{G_ehZ&@qBPjIvGQ?Pg4yo;-DA)}fPXQ!$9I_q+ z;iMsJHzQ!YgitDw+I974;10BONjUFhvZT%<1zAK!LWJ)pyd^lKKRz9b`3w~IVdw2+ zLhMPE^fNsTyQhVvRNiU3X7W_g>T<>@nbWA6PjH1oPvk!8{3g5L*mFd$Lfx1-i}m{^{m%%vx+76$|Usi{HeWJ()Pqtb(eX>|`z z7FAzAV`Hz#emuO-kDqE)ZMUb&%62=g-tRtkM2fW;lKr#Bg$oLZ_s#}6PXK!oF46)x z1OlO$#v63gh=0AyDX<5iZEb$NnCIgm z4PjXUAsDy)Cm0kdI3Q*@y008Kc;HgY+!FgyB}1d+ zbR1(iK+GbtDcMTbW)4PiQ${Aa;q{2qzEBTkm#`&W} zKoiC{17$c+AX3&D_CfC-SV*PB?p}axV9;Rjj|>U&B{E!z+W~NGuSN^rOSZcEC0Lzt zHBNnA)?3eF=v9o#V=cDcU-gIJ@qYFLHV$sM)w!paKHqJ$FJ5*TKYy%k`9d0=8h4H5 z!CJR=xA~fzRV!cpze8$$g^;&vgq!m(xCABxF|oe5*9gR(I4F?bzUEPS25l(C`GuP4 ztLg6STX2xg()>LRMdfr7Wq`K?>xPt|laeEg3c6B>T&4I4Rx4S5M%<0Q1%~u+cfAbk zy11HNr)G@stE!SQRi(5A^BA$LaV#EHUUxhGt^8bE;L5|^e(>8&c{Fe2*qvIcp)EVB zoOlK4dKvo2Ut4T6wUEnJw{}!{svG&ad|ybp`5IgYz+RJ!4PMgyJTB<{=6*;+J3YQ&mM5H=-F9n&V3waKA zlPnA(pLXD#I*Hb0Y7{D5>SV0ro5E|cpgYdE>Zp?)@gtBV?OB4ASqnJ-aaV(>)>4EuF1SX-0qESnix++JbylkN4D-n;>MX z6XM!stQZ7^uxkuBdl)zsmm;z55UvW*kO?Re2$~U#be-4P4|FDYr<@_BWc#4Q4O{#NiX==yLhMw^~)lrlh z>yoAsy_0Uc%ha;FcQBcF(PN{Nji!93VGG@N@6Zm`24?gkDmsIV^9M0WeM4bS^I*vw zw^+^6+r;d6FM_qPlV$yThN>0sp?BnOeY0T6;mLN3ccvQYTlt~-zrLb+bVBljxu19* z^$ata)gHTzyd+IIjZkXDqSRGFI z2Lo39o+jM5(r~R~*l;-5>tCO}xHho7bOZ>_3|E)==iHd%BMbK92cYSuK~4#&BrA+| zjs=l~rrWy|k%E;BS^uFL7>Rs1#zj5a11Y|JT(v}#^g9Kjf9*qQhDu$RY3QxDIJI{g zyuXBg)Z{TQ#_L&LM%qE!x*MtsZ{M6p?2})deKb8;OS=y5MVQa>-Z${5=algIMQ}Hs z?-gsib-AJ}iN;@QOjebBp8?y6dM;Fi6lDCpY%f6M+05-Ie0*C$!Y7g zC{_no8^dJ?>4%3*1-_Mm9uP}W?OUU1C08fV9TI&@zw)O`b{k%9BH2+bU@VkZH)n1>;Acs3@GjHYJZ{(SwqI}QPNvE6uq(wc`WXr< z<`ByZJEJc^U1+{+QlQ&F6q}S0f`Sekg)>M;FrXh5!2}r+n6WI0i9no6O5{r5V~h-) z?k6S@h#3gbO)Q_`$^j!9WsF>pN;_moWV&-GE4HU+iT?QN*!gx9dHIqAO$ZE`zj`~a0iLG9jVp#wW0ogw!|i@u{qIhYHPc?qGZvg*QvweX)o)T zHLJf09{`_E4ZRC=RgwisGzt1r*p*WAqzeR)aeO|NouZCqMGYnbl3e#lxN zMJz2T{;8##VnYqXv|A%n598K$t9`a|<|`b`=pTbEo-g^}#jfb8zK?97_2`gD$uBD- zDBLrbzr11n*}^H19~Hdx1N{+<;~^{sGi0KaVVEK_JRQg|Wl<%bH|Olu9jiG7N)vmU zJDLg+elBIJ?eU3uom$zC?M%z!6pmx7fwJYQcXg$Au|Ifu`OpNu63WM|JIC+>V;Kn7 z63JxkQwuzX6~+p=S9nOa$jM!6G8a-%)h!VMi<-kq)gU&=%SH|{k91$3qJP#&7(Z&f zbau@hR~b4#pRFmH&)wHbid#JA_ycn@R8*5A&*Lu+NblI9?T5BxA$Uc6jJe;|AE=I! zthhJD(eGgEy7=5!ACE;Cww(-GX^EXJlB?kG-dwD${)Q6i+m5rR&XkWGpPYPs>wno^MslPMMGl|L<4)4e^~dtzD51%h zyp5|~NFb{<-C43Io(jsWY-t}j?2D@rD@?_sWHF-fjG1p^^ z*$6;A!W)0|)H)XgfQ4hxuvWetSK8kQsw&wN8FAhT!dK=)c;34{ z;cM=VEO;jC%l)X}*4>`pzhO_X~EyUY~!H_a%G-ZU)WnPSk$Q?nvX9O1~LT(*2M6^x8{uw!u zq82J(Z{mR00YQ>B@q~jf{Y;dRZ{(PT2AeR~zMqC>>dxpOZ!KBq3Lr*3heDqY4J?<5 z^ZblLzaOpME|;k-w+&HlqP`gIOQLzolZX@ol2ZeIXTK|q@&5k3^d3iC$WP4Hkntu; z;)qVxBA(9=mydL%kShdj%-0c-1I1wa8V;qJ8SPVecHQ9`%K>HF0nJM9_Tf|ZdDi7$Q zLqB_4z?wQ6z?w>wYF)HtHREOxN>1?hfDG+u0TJ#_%Bgk*-JJBHH8It<+7-~RtaUz& z*s-BsLK%bkDY{ey?Rov+1hlT z>QelhbSS18%`tjeU4st1(XsNiar;i(PZ@R*oEJya`wr%sT?r)bpe%|HiaZWrD_u|r zr@Xxu$&0{Xazc6xxtKy2A5)A&fkstx8tZ|Gt^<`e$I*vCfj(y>y2WYA_zS~Y&bC%3 z3-%M)+(|VS;YA5&DQS-^b;&ijWdU=Df5lZtK6vNMSG`&_Iy1!GOv?F=)-98wcGF9I zIA^mIuJ+rnYH4#20o)iDX1SbUIsJD4Deqb?epmi{mY`AdCozC@A_)dSYiurL%fD^K zxEYwo#uDYjnCdvlh!9CWdJMv$FSW{H7C&F&Ioudd5cXS{gS~t}-d5Y^b7LT*niv5} zBJgmlhXxIYr#_X7rPJ)7rG?=cd%%sjtwkQNRmK=vb0PRClq@VvMG3SwL&6A|>gnMU zO3dV`G$LRW8Tb{`Q6qYh*`z^+)Rcr%i?NWY%#1u+7H9RSDAwc*lyegyQQ;|f-}nTM zQ%7t)&~te%&@%U6(;|aOjrJcQwV`Ecj}Z+MR#bzj`nqV9 zwonULY=?UFV!7F9J6I;|fka~b(Yn098E27cN}=-fYE|fomD>9wEA?LkKK-TzFp(j~ z@1#@M^@hr5ofqxjKXeQ{37&slg5;m{87DUFdf&ze9)(c&>KThjvt`lAF#qI=Wn_;3 z5_T?-1moz!Gw#p&hrz82dr(0(Yq)EJh+V|5%tQ43zH>Cqj;z_2B$6@KR*LT@zWD`7LC7xTXg7D zBo=W>RoJvKDxk2nP15wdg+9|cKT~bEJu7=df3rCf_Co!kd>}@BW=xd-EjRo~r>7=y zj{%%g>yxJLN()RV+IPnRDc#%B)R~eRX<{48{U-4vbIWvPS!Vpa(yHE0d+L^7jET>j z7-nT8vcqKCcb%b|qwM-29r)^IO5YS4UXZT3_MDmdnXp9naACU#fvayEcQawAL(bU^ zOuC(DGWo3-m@mA#I+Y(>;-kvOD#-y@t3s&5O794*LL{!eP9w($Xl;V`%Ni@nao5oB z^Etr%iWPz7qU0=0I5-fhrdu?RFRRZ*i_I2;4o~{9{#=QMaS`8K@r)|=wbBmbA~w2o zy(saMitb7_`&Iw!dhM@$z4|%(ekGGeVVjhWKtz1y()a|bvI%W&cGSR5Q?`Gp9d=n0 zf*x@GEEiyikFeQnoxq4tV(Sf(q5NY!fcF-Vwj>slNSon(`yJ4Ju@u46UJM zn1KQ^F*2lH!PBUyYw6nA(Kcd00?Mu&1vIL8rJcm&rpY#+z`OI?xq{0KDHR$-zjOeY=?wIT8_1WiF9ATWdT2z-CJC&{+qlQPa_vAsEQuoAl3#Eikm2XF#f3C0EQpUT8$-CH#9tprO9euDAXdYM{BQ z5hHlQruspWO`$U&1Q$<)jm@%y?vaxn`!ws)eOh5c)J5iK%k)IER!9 z)*4)-K@%{w>aU?j;R7SJ5hI6Q`pR`(1ofMO7TC)y-Ap0E2_&R6=#N9m3YGne&MQa_ z4cD}u=0(BqF?1fz=^3d)OOh|0rjL8OU<{Nz}P0XYr9cNx|~cb+~yg zAC-lhdf{zuUEi+j*{U^;Hsvp+)?nO-f2&QEnZ)00`P8uJoUm4rrMNPQ@wF!AQgV7$ zF8QwY8|C^384$m8(>C>VPps#t4`r7#A3Blkh$? z9vfym$k>O;@Pve-K-q7~36DV=HWv(`+eb-q2(`WH@mkHk zN@6Rm4E53RazQSGHisaVk`KjtRKqEhjmsEbg5l|ZWF=BCXk-2Zprxy-q;urP*#H9< zA=JAkT-biA)#tq3@83_6stI~Qg{FAkBfQ-HTAyDtszQ+b1V%UQQ@ZhHm`;u&CByg7abNqYPprp^xIre^wk1%KLCUVl;1 z-^pD);p{XMnYxgO`YkH`k;wyIN4=%2xv6X<`2gUI{s3Ac{027QADHi`q&ZTpq$bp3 zNU-Yx1C@&tq3J3h0@h6@Tr3mz$P%TIm}|Ii1!fp{psjaMD_~XDifQ^H|3s^` zJ+*3D>fA0v=JI0^SKZY5F<*be&^+wV_7 z$FEA$wM$aw%0^&Dd&femdy&nmR&VFwNo=32^eB0mS!4xL^Ha6v{|cF#Sa^*9pX3D~SDK0g?(D6&u}0fpmQ1-Mi?+AxN}TWL6fZSC8$1 z&YcI)y()>Dj)o$F)r8Q5V2HM@*7aizPF#~r4b2k`expTubOSH#C0@3-)8iM5NnFY+fyi*l=*`VmMH1&TT&dF(rvEa=}M<)g)w`c zRA(P@lEZZu>}=Xp61`kmXi5F?J87kOMWwh}+7Ugz71Z#h4QDg3tSoRdXUoUiz3?mB zE*~=wPh;=-jxaZwr5j%hTwFX=r1i5x`3hwwX~L$0%; zuypvns2l>;^k!YWIOHkhK!SG^WPN4+9yWkTQk{O5A8?6_)8k7rp@ebP;bAK>V%Q|B zsJNr#;OrR%2RS*1v2&QTBL#3&)5CyC{Bb8|w+2*@u0MhP@+=~@TFOL$tLT~2!_Pn* z%BwDQoo#KO2CEywyu(F~2sh#E!C`kp7~$`deM6;_b|axT@~Q2;y5 zY+Ic}###&5HTv=ZtI)1ed@A3=-5s|&TX{9_FecJ|Vk&RbaXF|{Z`E)0{gbsbKU($j zExK>su}C=xImrK7{~may>3=`+Q@xOmp8i{6wmm8g$7&*itQ4VdOfd)kr1Z?d41LL+ zpHyLNvUqA}!t16f7x$TJvfu6d;>XaB9GF^72>HhIlrk0ZuqIoWzwQ6~ea7)kbrJZf zH4>?&yeldy16E<;Ip^?2w-K=0?V0m~gPUe8K01!U3{~gQ2F&v;?e0n(slYE7@=Iwk zF&QV@kBRyDM@OTa-^0%{{Kz-K|3iwI4?`>}KBIZI;!ww!^K83V^HNOajE>x|2)LAN z``FWhPD8A5XcOC8{~X7yX(I_Nkkr#bq~`&hvIPXs54zNQu))XhgVoXA^F-qS?MVm` z5oLnh+K!8#0;UObitB=|!3V5`Cr$?YcE(U2z&biExcEm@1eRgar&EGTr=br0sI?~l z3L)fq_X-A90}X-c5!~SGukZp5kpVCRIsmX*87tlZa_)Jr>B62ylTV zMb*3#|61FV@N!a1f<5phMxzvykV-%mN>C>%Su9|w4Ip$BL8Zd*m>)v;EkMlj6*~mb zTvbIH=bIH0WD+G9ufujL@4?*w)5G0xy0*C^+;tBE7pNqORgY1LXy;4yZfyv z&s7A+-a1mep&IY0E$paQe2=_yptqEzugQ{SgdMb~O`@yEZM<_WxKi{)FgOOo#MB4J z)Gz|uKz9Wdmb`c{Sds`ur^$EMecOXTx;GPs%gES z>daE0g{xG}F1~mFI+=cN%&n~9<*+tWrlPyqagj`c1wrMXBEN3R*fp4-Y-v8ff!9-V z(5WSR_STx_&H?wjUd8lT|KYMTP!1x^J^1&~sy<7Hwzh4;`Zu08DuG7Qac@U1fHAS(Bl%8C(1J-MzzHeJPo54a7VY}$07@ZEQcXNXX+lod~`iYRH?AGqQz*2tKJ^>8h@e8l&? z6a@R})RjjLs*r_(g~zt0Zh0fTmjv^^7<@M=4gd zNQS0&BpyCjd=S}x9m2&Pi>N>=J(P--=>_Ou=S;H*99gRp&0uMyY7=`7--Ur_M`(Pn z(gx7FPV4RTOOM*Ee=p2^RcXik%DUc?i?)5|7W+x}s_+5_Pwvq;J~8_8dVu;yNf&{?o_xQi;C!{7hfdrwUU}>5+0q(Z zgs*aDR=qj$XJLZnBKq?*EWn5=+sNv1B(g|TK5@Woh-{>uD8PxVUJMra1f3%;Wek#L zVq^@uKD;%MHDEyGp2k2@t$?Be`q*GVW}2iyZbX@J5HkAQBaEMA3{KfWX2i25eKX|A zj>X9wxY(H@8a=eIn|K`u`q(FdgFb_=nAI&>O&Rr;sj3B-ZQsquio{5$M3W?Gm(3DA zWzDD9oI!WFH&EhjCpK!m*vadyR%lL>F9G|ir^69O0r|T7W6uz0F&cN1 zOu_g<_xoXYmfHrtTZL?9*WW|NOc3DWgJ3ce7zxcV%V8bQ!nx-#UjevIhuEA)I%v;| zup~bbI_jWxztrY<`B+~G&3-UBt#B4D1={`L9p&!D-|jLv$vskKXCjua0+?Nmw}JNx z)&S{ha$Ed>bKCS<{%b4w4^uv7hF=X0B|AH3g8#XDDM8UoiV$e?FmQ-6af%9yh>5T< zF$gnoG7B?{v9q$XaR{*saj>v(GO>y<3NkVC6i|y4F zCY+lj@9Bnktn(3LKe=hXh~J4*?2)mX^koj-T0GT%!@uOKIvRG-TRF_)*ZygmYq`21 zq5RIO&;Y;at(@P?)-*LW|KD47@ZrYL_6463M1^GbMzpdnUmPZQ@McTs@&`5dS9uo% zZg>^8$jj$t;G?F~lYE7}f(o|g9* 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-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 ===== schedule("weekly-schedule", "Weekly Schedule", "Multi-day weekly schedule with shift assignments, category fills, and repeated header.", "schedule", "table"); diff --git a/examples/src/main/java/com/demcha/examples/support/StructuredProposalSampleData.java b/examples/src/main/java/com/demcha/examples/support/StructuredProposalSampleData.java new file mode 100644 index 000000000..0c315f917 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/StructuredProposalSampleData.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 structured proposal examples. + * + *

Kept in lockstep with the qa module's {@code NorthlineProposalFixtures} + * — 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 StructuredProposalSampleData { + + private StructuredProposalSampleData() { + } + + 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", + "badge-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("PROJECT AT A GLANCE", 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", "badge-goals", List.of( + new ProposalGoals.Goal("goal-brand", + "Strengthen brand credibility and visual consistency."), + new ProposalGoals.Goal("goal-usability", + "Improve website usability and drive meaningful action."), + new ProposalGoals.Goal("goal-message", + "Communicate your value clearly across all touchpoints."), + new ProposalGoals.Goal("goal-growth", + "Build a scalable digital foundation for future growth.")))) + .scope(new ProposalScope("SCOPE OF WORK", "badge-scope", 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", "badge-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", "badge-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", "badge-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", "badge-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", "badge-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/templates/proposal/v2/NorthlineProposalV2Example.java b/examples/src/main/java/com/demcha/examples/templates/proposal/v2/NorthlineProposalV2Example.java new file mode 100644 index 000000000..0d91e2365 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/proposal/v2/NorthlineProposalV2Example.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.NorthlineProposal; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.StructuredProposalSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code proposal.v2} Northline Proposal preset + * against the shared structured proposal sample data. + * + *

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

+ * + *

The preset owns its page geometry — size, margins, the footer band + * and the page background — so the session starts unconfigured; see + * {@code NorthlineProposal.RECOMMENDED_MARGIN}.

+ */ +public final class NorthlineProposalV2Example { + + private NorthlineProposalV2Example() { + } + + /** + * @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-northline-v2.pdf"); + StructuredProposalDocumentSpec spec = StructuredProposalSampleData.sample(); + DocumentTemplate template = NorthlineProposal.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/NorthlineProposalFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalFixtures.java new file mode 100644 index 000000000..63844a745 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalFixtures.java @@ -0,0 +1,149 @@ +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 Northline 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 StructuredProposalSampleData} — the two modules cannot share a + * source file, so a content change here belongs there too.

+ */ +final class NorthlineProposalFixtures { + + private NorthlineProposalFixtures() { + } + + 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", + "badge-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("PROJECT AT A GLANCE", 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", "badge-goals", List.of( + new ProposalGoals.Goal("goal-brand", + "Strengthen brand credibility and visual consistency."), + new ProposalGoals.Goal("goal-usability", + "Improve website usability and drive meaningful action."), + new ProposalGoals.Goal("goal-message", + "Communicate your value clearly across all touchpoints."), + new ProposalGoals.Goal("goal-growth", + "Build a scalable digital foundation for future growth.")))) + .scope(new ProposalScope("SCOPE OF WORK", "badge-scope", 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", "badge-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", "badge-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", "badge-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", "badge-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", "badge-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/NorthlineProposalLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalLayoutSnapshotTest.java new file mode 100644 index 000000000..78e7d893b --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalLayoutSnapshotTest.java @@ -0,0 +1,34 @@ +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 NorthlineProposal} — freezes the + * resolved geometry of both pages, including the natural page-one → page-two + * break, which the pixel budget alone could quietly absorb shifting. + * + *

The preset is a fixed two-page composition (each page's bands are + * composed explicitly), so the canonical fixture IS the pagination + * contract; there is no overflow fixture to grow.

+ * + *

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

+ */ +class NorthlineProposalLayoutSnapshotTest { + + @Test + void canonicalProposalMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + NorthlineProposal.create().compose( + session, NorthlineProposalFixtures.canonicalProposal()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(2); + TemplateTestSupport.assertCanonicalSnapshot( + session, "northline_proposal_layout", "proposal"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalSmokeTest.java new file mode 100644 index 000000000..4e7d7ac83 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalSmokeTest.java @@ -0,0 +1,127 @@ +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.ProposalPhaseGrid; +import com.demcha.compose.document.templates.data.proposal.ProposalSummaryBlock; +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 the structured proposal pipeline through + * {@link NorthlineProposal} — proves the preset renders a + * {@link StructuredProposalDocumentSpec} end-to-end, that the packaged + * icon set resolves from the templates artifact (a full render loads + * every icon token the canonical fixture names), that an empty document + * renders through the section guards, and that the phase-grid header + * contract fails with a named count rather than an index error. + */ +class NorthlineProposalSmokeTest { + + private static void render(StructuredProposalDocumentSpec spec) throws Exception { + // The preset owns its page geometry (size, margins, background), + // so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + NorthlineProposal.create().compose(session, spec); + assertThat(session.roots()).isNotEmpty(); + // Drive layout + render — the icon loading, the zero-row table + // guards, and the chrome only exist at render time. + assertThat(session.toPdfBytes()).isNotEmpty(); + } + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = NorthlineProposal.create(); + assertThat(template.id()).isEqualTo(NorthlineProposal.ID); + assertThat(template.displayName()).isEqualTo(NorthlineProposal.DISPLAY_NAME); + } + + @Test + void rendersCanonicalProposalWithPackagedIcons() throws Exception { + render(NorthlineProposalFixtures.canonicalProposal()); + } + + @Test + void rendersEmptyProposal() throws Exception { + // Exercises the guards: no goal cells (the flattened column spec + // cannot describe zero cells), no phase grid, no signature row — + // and the investment table still carries its header + total band. + 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 (the recorded composed-cell blind spot), so + // their content is asserted on the rendered text layer instead. + byte[] pdfBytes; + try (DocumentSession session = GraphCompose.document().create()) { + NorthlineProposal.create().compose( + session, NorthlineProposalFixtures.canonicalProposal()); + pdfBytes = session.toPdfBytes(); + } + String text; + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + text = new PDFTextStripper().getText(document); + } + // Composed cells wrap, so the assertions stay within one line. + assertThat(text) + .contains("Discovery report") + .contains("Brand Identity Refinement") + .contains("2 weeks") + .contains("TOTAL INVESTMENT") + .contains("£19,250"); + } + + @Test + void rejectsUnknownIconTokenByName() { + StructuredProposalDocumentSpec spec = StructuredProposalDocumentSpec.from( + StructuredProposalData.builder() + .executiveSummary(new ProposalSummaryBlock("SUMMARY", + "no-such-icon", List.of("Body."))) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + assertThatThrownBy(() -> NorthlineProposal.create().compose(session, spec)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("no-such-icon"); + } + } + + @Test + void headerCountIsNotValidatedWhenTheGridNeverRenders() throws Exception { + // A wrong header count with zero phases constrains nothing — the + // grid is skipped before the validation. + render(StructuredProposalDocumentSpec.from(StructuredProposalData.builder() + .timeline(new ProposalPhaseGrid("TIMELINE", "badge-timeline", + List.of("PHASE", "FOCUS", "DURATION"), List.of())) + .build())); + } + + @Test + void phaseGridRejectsHeaderCountMismatchByName() { + StructuredProposalDocumentSpec spec = StructuredProposalDocumentSpec.from( + StructuredProposalData.builder() + .timeline(new ProposalPhaseGrid("TIMELINE", "badge-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(() -> NorthlineProposal.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/NorthlineProposalVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalVisualParityTest.java new file mode 100644 index 000000000..c276e7186 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalVisualParityTest.java @@ -0,0 +1,48 @@ +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 NorthlineProposal} — both pages + * of the canonical fixture against checked-in baselines. + * + *

Separate from {@code ProposalV2VisualParityTest} because that gate is + * parameterised on the narrative {@code ProposalDocumentSpec} while this + * preset consumes the structured spec. Budget and tolerance mirror the + * other template parity gates (Lato/Spectral are bundled TTFs, the same + * cross-platform drift class as the CV presets' faces).

+ * + *

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 NorthlineProposalVisualParityTest { + + 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()) { + NorthlineProposal.create().compose( + document, NorthlineProposalFixtures.canonicalProposal()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("northline_proposal", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/northline_proposal_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/northline_proposal_layout.json new file mode 100644 index 000000000..629dd3f5a --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/northline_proposal_layout.json @@ -0,0 +1,5267 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 523.276, + "innerHeight" : 785.89, + "margin" : { + "top" : 8.0, + "right" : 36.0, + "bottom" : 48.0, + "left" : 36.0 + } + }, + "totalPages" : 2, + "nodes" : [ { + "path" : "Proposal[0]", + "entityName" : "Proposal", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 36.0, + "computedY" : -690.811, + "placementX" : 36.0, + "placementY" : -690.811, + "placementWidth" : 523.276, + "placementHeight" : 1524.701, + "startPage" : 0, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 1524.701, + "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]/Header[0]", + "entityName" : "Header", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 36.0, + "computedY" : 775.89, + "placementX" : 36.0, + "placementY" : 775.89, + "placementWidth" : 523.276, + "placementHeight" : 58.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 58.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]/Header[0]/HeaderRow[0]", + "entityName" : "HeaderRow", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/Header[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 783.89, + "placementX" : 36.0, + "placementY" : 783.89, + "placementWidth" : 523.276, + "placementHeight" : 50.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 50.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]/Header[0]/HeaderRow[0]/LogoMark[0]", + "entityName" : "LogoMark", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Header[0]/HeaderRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 783.89, + "placementX" : 36.0, + "placementY" : 783.89, + "placementWidth" : 50.0, + "placementHeight" : 50.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.0, + "contentHeight" : 50.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]/Header[0]/HeaderRow[0]/LogoMark[0]/Monogram[0]", + "entityName" : "Monogram", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Header[0]/HeaderRow[0]/LogoMark[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 790.89, + "placementX" : 36.0, + "placementY" : 790.89, + "placementWidth" : 50.0, + "placementHeight" : 36.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.0, + "contentHeight" : 36.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]/Header[0]/HeaderRow[0]/Wordmark[1]", + "entityName" : "Wordmark", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Header[0]/HeaderRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 98.5, + "computedY" : 789.69, + "placementX" : 98.5, + "placementY" : 789.69, + "placementWidth" : 92.096, + "placementHeight" : 38.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.096, + "contentHeight" : 38.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]/Header[0]/HeaderRow[0]/Wordmark[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Header[0]/HeaderRow[0]/Wordmark[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 98.5, + "computedY" : 808.89, + "placementX" : 98.5, + "placementY" : 808.89, + "placementWidth" : 92.096, + "placementHeight" : 19.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.096, + "contentHeight" : 19.2, + "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]/Header[0]/HeaderRow[0]/Wordmark[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Header[0]/HeaderRow[0]/Wordmark[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 98.5, + "computedY" : 789.69, + "placementX" : 98.5, + "placementY" : 789.69, + "placementWidth" : 60.128, + "placementHeight" : 19.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.128, + "contentHeight" : 19.2, + "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]/Header[0]/HeaderRow[0]/SpacerNode[2]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "Proposal[0]/Header[0]/HeaderRow[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 210.422, + "computedY" : 808.89, + "placementX" : 210.422, + "placementY" : 808.89, + "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]/Header[0]/HeaderRow[0]/DocumentLabel[3]", + "entityName" : "DocumentLabel", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Header[0]/HeaderRow[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 475.552, + "computedY" : 799.39, + "placementX" : 475.552, + "placementY" : 799.39, + "placementWidth" : 83.724, + "placementHeight" : 19.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.724, + "contentHeight" : 19.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]/Header[0]/HeaderRow[0]/DocumentLabel[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Header[0]/HeaderRow[0]/DocumentLabel[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 475.552, + "computedY" : 807.59, + "placementX" : 475.552, + "placementY" : 807.59, + "placementWidth" : 83.724, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.724, + "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]/Header[0]/HeaderRow[0]/DocumentLabel[3]/Align[1]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/Header[0]/HeaderRow[0]/DocumentLabel[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 475.552, + "computedY" : 799.39, + "placementX" : 475.552, + "placementY" : 799.39, + "placementWidth" : 83.724, + "placementHeight" : 8.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.724, + "contentHeight" : 8.2, + "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]/Header[0]/HeaderRow[0]/DocumentLabel[3]/Align[1]/DocumentLabelRule[0]", + "entityName" : "DocumentLabelRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Header[0]/HeaderRow[0]/DocumentLabel[3]/Align[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 524.176, + "computedY" : 799.39, + "placementX" : 524.176, + "placementY" : 799.39, + "placementWidth" : 35.1, + "placementHeight" : 2.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.1, + "contentHeight" : 2.2, + "margin" : { + "top" : 6.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]/Header[0]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Header[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 775.89, + "placementX" : 36.0, + "placementY" : 775.89, + "placementWidth" : 523.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.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]", + "entityName" : "TitleBlock", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 36.0, + "computedY" : 613.59, + "placementX" : 36.0, + "placementY" : 613.59, + "placementWidth" : 523.276, + "placementHeight" : 144.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 144.3, + "margin" : { + "top" : 18.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]/LineNode[0]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/TitleBlock[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 755.29, + "placementX" : 36.0, + "placementY" : 755.29, + "placementWidth" : 45.002, + "placementHeight" : 2.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.002, + "contentHeight" : 2.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/TitleBlock[1]/TitleLines[1]", + "entityName" : "TitleLines", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/TitleBlock[1]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 613.59, + "placementX" : 36.0, + "placementY" : 613.59, + "placementWidth" : 523.276, + "placementHeight" : 139.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 139.7, + "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[1]/TitleLead[0]", + "entityName" : "TitleLead", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/TitleBlock[1]/TitleLines[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 683.278, + "placementX" : 36.0, + "placementY" : 683.278, + "placementWidth" : 221.72, + "placementHeight" : 70.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 221.72, + "contentHeight" : 70.012, + "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[1]/TitleLine1[1]", + "entityName" : "TitleLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/TitleBlock[1]/TitleLines[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 635.278, + "placementX" : 36.0, + "placementY" : 635.278, + "placementWidth" : 353.372, + "placementHeight" : 70.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 353.372, + "contentHeight" : 70.012, + "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[1]/TitleLine2[2]", + "entityName" : "TitleLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/TitleBlock[1]/TitleLines[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 587.278, + "placementX" : 36.0, + "placementY" : 587.278, + "placementWidth" : 379.638, + "placementHeight" : 70.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 379.638, + "contentHeight" : 70.012, + "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" : 36.0, + "computedY" : 585.99, + "placementX" : 36.0, + "placementY" : 585.99, + "placementWidth" : 366.336, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 366.336, + "contentHeight" : 9.6, + "margin" : { + "top" : 18.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" : 36.0, + "computedY" : 585.99, + "placementX" : 36.0, + "placementY" : 585.99, + "placementWidth" : 366.336, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 366.336, + "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]/SummaryBand[3]", + "entityName" : "SummaryBand", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 36.0, + "computedY" : 341.89, + "placementX" : 36.0, + "placementY" : 341.89, + "placementWidth" : 523.276, + "placementHeight" : 226.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 226.1, + "margin" : { + "top" : 18.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]", + "entityName" : "SummaryColumn", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 360.04, + "placementX" : 36.0, + "placementY" : 360.04, + "placementWidth" : 324.431, + "placementHeight" : 207.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 324.431, + "contentHeight" : 207.95, + "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" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 540.99, + "placementX" : 36.0, + "placementY" : 540.99, + "placementWidth" : 324.431, + "placementHeight" : 27.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 324.431, + "contentHeight" : 27.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]/SummaryColumn[0]/SectionHeading[0]/SectionBadge[0]", + "entityName" : "SectionBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 540.99, + "placementX" : 36.0, + "placementY" : 540.99, + "placementWidth" : 27.0, + "placementHeight" : 27.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.0, + "contentHeight" : 27.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]/SummaryColumn[0]/SectionHeading[0]/SectionBadge[0]/Icon-badge-summary[0]", + "entityName" : "Icon-badge-summary", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[0]/SectionBadge[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 42.48, + "computedY" : 547.47, + "placementX" : 42.48, + "placementY" : 547.47, + "placementWidth" : 14.04, + "placementHeight" : 14.04, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.04, + "contentHeight" : 14.04, + "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[1]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 74.34, + "computedY" : 546.39, + "placementX" : 74.34, + "placementY" : 546.39, + "placementWidth" : 145.854, + "placementHeight" : 16.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 145.854, + "contentHeight" : 16.2, + "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]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 468.19, + "placementX" : 36.0, + "placementY" : 468.19, + "placementWidth" : 318.63, + "placementHeight" : 65.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 318.63, + "contentHeight" : 65.8, + "margin" : { + "top" : 7.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[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 405.04, + "placementX" : 36.0, + "placementY" : 405.04, + "placementWidth" : 314.24, + "placementHeight" : 52.35, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 314.24, + "contentHeight" : 52.35, + "margin" : { + "top" : 10.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]/SpacerNode[3]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 387.04, + "placementX" : 36.0, + "placementY" : 387.04, + "placementWidth" : 0.0, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 18.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]/SummaryColumn[0]/SectionHeading[4]", + "entityName" : "SectionHeading", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 360.04, + "placementX" : 36.0, + "placementY" : 360.04, + "placementWidth" : 324.431, + "placementHeight" : 27.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 324.431, + "contentHeight" : 27.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]/SummaryColumn[0]/SectionHeading[4]/SectionBadge[0]", + "entityName" : "SectionBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 360.04, + "placementX" : 36.0, + "placementY" : 360.04, + "placementWidth" : 27.0, + "placementHeight" : 27.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.0, + "contentHeight" : 27.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]/SummaryColumn[0]/SectionHeading[4]/SectionBadge[0]/Icon-badge-goals[0]", + "entityName" : "Icon-badge-goals", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[4]/SectionBadge[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 42.48, + "computedY" : 366.52, + "placementX" : 42.48, + "placementY" : 366.52, + "placementWidth" : 14.04, + "placementHeight" : 14.04, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.04, + "contentHeight" : 14.04, + "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[1]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 74.34, + "computedY" : 365.44, + "placementX" : 74.34, + "placementY" : 365.44, + "placementWidth" : 106.353, + "placementHeight" : 16.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.353, + "contentHeight" : 16.2, + "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]", + "entityName" : "GlanceColumn", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 376.129, + "computedY" : 341.89, + "placementX" : 376.129, + "placementY" : 341.89, + "placementWidth" : 183.147, + "placementHeight" : 226.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 183.147, + "contentHeight" : 226.1, + "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]", + "entityName" : "GlancePanel", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 376.129, + "computedY" : 341.89, + "placementX" : 376.129, + "placementY" : 341.89, + "placementWidth" : 183.147, + "placementHeight" : 226.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 183.147, + "contentHeight" : 226.1, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 16.0, + "right" : 16.0, + "bottom" : 16.0, + "left" : 16.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 392.129, + "computedY" : 539.39, + "placementX" : 392.129, + "placementY" : 539.39, + "placementWidth" : 115.553, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.553, + "contentHeight" : 12.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.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[1]", + "entityName" : "GlanceFact", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 392.129, + "computedY" : 502.99, + "placementX" : 392.129, + "placementY" : 502.99, + "placementWidth" : 151.147, + "placementHeight" : 29.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 151.147, + "contentHeight" : 29.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[1]/Icon-fact-duration[0]", + "entityName" : "Icon-fact-duration", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 392.129, + "computedY" : 505.19, + "placementX" : 392.129, + "placementY" : 505.19, + "placementWidth" : 25.0, + "placementHeight" : 25.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.0, + "contentHeight" : 25.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[1]/FactText[1]", + "entityName" : "FactText", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 429.129, + "computedY" : 504.49, + "placementX" : 429.129, + "placementY" : 504.49, + "placementWidth" : 79.184, + "placementHeight" : 26.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 79.184, + "contentHeight" : 26.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[1]/FactText[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[1]/FactText[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 429.129, + "computedY" : 521.29, + "placementX" : 429.129, + "placementY" : 521.29, + "placementWidth" : 79.184, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 79.184, + "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]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[1]/FactText[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[1]/FactText[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 429.129, + "computedY" : 504.49, + "placementX" : 429.129, + "placementY" : 504.49, + "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[2]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 392.129, + "computedY" : 494.99, + "placementX" : 392.129, + "placementY" : 494.99, + "placementWidth" : 151.147, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 151.147, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.0, + "right" : 0.0, + "bottom" : 7.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[3]", + "entityName" : "GlanceFact", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 392.129, + "computedY" : 458.59, + "placementX" : 392.129, + "placementY" : 458.59, + "placementWidth" : 151.147, + "placementHeight" : 29.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 151.147, + "contentHeight" : 29.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[3]/Icon-fact-start[0]", + "entityName" : "Icon-fact-start", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 392.129, + "computedY" : 460.79, + "placementX" : 392.129, + "placementY" : 460.79, + "placementWidth" : 25.0, + "placementHeight" : 25.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.0, + "contentHeight" : 25.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[3]/FactText[1]", + "entityName" : "FactText", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[3]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 429.129, + "computedY" : 460.09, + "placementX" : 429.129, + "placementY" : 460.09, + "placementWidth" : 104.062, + "placementHeight" : 26.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.062, + "contentHeight" : 26.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[3]/FactText[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[3]/FactText[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 429.129, + "computedY" : 476.89, + "placementX" : 429.129, + "placementY" : 476.89, + "placementWidth" : 64.552, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.552, + "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]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[3]/FactText[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[3]/FactText[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 429.129, + "computedY" : 460.09, + "placementX" : 429.129, + "placementY" : 460.09, + "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[4]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 392.129, + "computedY" : 450.59, + "placementX" : 392.129, + "placementY" : 450.59, + "placementWidth" : 151.147, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 151.147, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.0, + "right" : 0.0, + "bottom" : 7.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[5]", + "entityName" : "GlanceFact", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 392.129, + "computedY" : 414.19, + "placementX" : 392.129, + "placementY" : 414.19, + "placementWidth" : 151.147, + "placementHeight" : 29.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 151.147, + "contentHeight" : 29.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[5]/Icon-fact-contact[0]", + "entityName" : "Icon-fact-contact", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[5]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 392.129, + "computedY" : 416.39, + "placementX" : 392.129, + "placementY" : 416.39, + "placementWidth" : 25.0, + "placementHeight" : 25.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.0, + "contentHeight" : 25.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[5]/FactText[1]", + "entityName" : "FactText", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[5]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 429.129, + "computedY" : 415.69, + "placementX" : 429.129, + "placementY" : 415.69, + "placementWidth" : 78.148, + "placementHeight" : 26.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.148, + "contentHeight" : 26.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[5]/FactText[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[5]/FactText[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 429.129, + "computedY" : 432.49, + "placementX" : 429.129, + "placementY" : 432.49, + "placementWidth" : 76.248, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.248, + "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]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[5]/FactText[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[5]/FactText[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 429.129, + "computedY" : 415.69, + "placementX" : 429.129, + "placementY" : 415.69, + "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[6]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 392.129, + "computedY" : 406.19, + "placementX" : 392.129, + "placementY" : 406.19, + "placementWidth" : 151.147, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 151.147, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.0, + "right" : 0.0, + "bottom" : 7.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[7]", + "entityName" : "GlanceFact", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 392.129, + "computedY" : 357.89, + "placementX" : 392.129, + "placementY" : 357.89, + "placementWidth" : 151.147, + "placementHeight" : 41.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 151.147, + "contentHeight" : 41.3, + "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[7]/Icon-fact-validity[0]", + "entityName" : "Icon-fact-validity", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[7]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 392.129, + "computedY" : 366.04, + "placementX" : 392.129, + "placementY" : 366.04, + "placementWidth" : 25.0, + "placementHeight" : 25.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.0, + "contentHeight" : 25.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[7]/FactText[1]", + "entityName" : "FactText", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[7]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 429.129, + "computedY" : 360.24, + "placementX" : 429.129, + "placementY" : 360.24, + "placementWidth" : 93.05, + "placementHeight" : 36.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 93.05, + "contentHeight" : 36.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]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[7]/FactText[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[7]/FactText[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 429.129, + "computedY" : 387.24, + "placementX" : 429.129, + "placementY" : 387.24, + "placementWidth" : 80.136, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.136, + "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]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[7]/FactText[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[7]/FactText[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 429.129, + "computedY" : 370.44, + "placementX" : 429.129, + "placementY" : 370.44, + "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[7]/FactText[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[7]/FactText[1]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 429.129, + "computedY" : 360.24, + "placementX" : 429.129, + "placementY" : 360.24, + "placementWidth" : 93.05, + "placementHeight" : 10.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 93.05, + "contentHeight" : 10.2, + "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" : 36.0, + "computedY" : 286.789, + "placementX" : 36.0, + "placementY" : 286.789, + "placementWidth" : 523.276, + "placementHeight" : 37.101, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 37.101, + "margin" : { + "top" : 18.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-brand[0]", + "entityName" : "Icon-goal-brand", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 303.89, + "placementX" : 36.0, + "placementY" : 303.89, + "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]/GoalCells[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 63.0, + "computedY" : 288.59, + "placementX" : 63.0, + "placementY" : 288.59, + "placementWidth" : 80.352, + "placementHeight" : 35.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.352, + "contentHeight" : 35.3, + "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" : 162.794, + "computedY" : 286.789, + "placementX" : 162.794, + "placementY" : 286.789, + "placementWidth" : 1.0, + "placementHeight" : 37.101, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 37.101, + "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-usability[3]", + "entityName" : "Icon-goal-usability", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 170.494, + "computedY" : 303.89, + "placementX" : 170.494, + "placementY" : 303.89, + "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]/GoalCells[4]/ParagraphNode[4]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 4, + "depth" : 3, + "layer" : 3, + "computedX" : 197.494, + "computedY" : 288.59, + "placementX" : 197.494, + "placementY" : 288.59, + "placementWidth" : 72.54, + "placementHeight" : 35.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.54, + "contentHeight" : 35.3, + "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" : 286.789, + "placementX" : 297.288, + "placementY" : 286.789, + "placementWidth" : 1.0, + "placementHeight" : 37.101, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 37.101, + "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-message[6]", + "entityName" : "Icon-goal-message", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 6, + "depth" : 3, + "layer" : 3, + "computedX" : 304.988, + "computedY" : 303.89, + "placementX" : 304.988, + "placementY" : 303.89, + "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]/GoalCells[4]/ParagraphNode[7]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 7, + "depth" : 3, + "layer" : 3, + "computedX" : 331.988, + "computedY" : 288.59, + "placementX" : 331.988, + "placementY" : 288.59, + "placementWidth" : 87.291, + "placementHeight" : 35.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.291, + "contentHeight" : 35.3, + "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" : 431.782, + "computedY" : 286.789, + "placementX" : 431.782, + "placementY" : 286.789, + "placementWidth" : 1.0, + "placementHeight" : 37.101, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 37.101, + "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-growth[9]", + "entityName" : "Icon-goal-growth", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 9, + "depth" : 3, + "layer" : 3, + "computedX" : 439.482, + "computedY" : 303.89, + "placementX" : 439.482, + "placementY" : 303.89, + "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]/GoalCells[4]/ParagraphNode[10]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 10, + "depth" : 3, + "layer" : 3, + "computedX" : 466.482, + "computedY" : 288.59, + "placementX" : 466.482, + "placementY" : 288.59, + "placementWidth" : 86.607, + "placementHeight" : 35.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.607, + "contentHeight" : 35.3, + "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" : 36.0, + "computedY" : 64.539, + "placementX" : 36.0, + "placementY" : 64.539, + "placementWidth" : 523.276, + "placementHeight" : 204.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 204.25, + "margin" : { + "top" : 18.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]", + "entityName" : "SectionHeading", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 241.789, + "placementX" : 36.0, + "placementY" : 241.789, + "placementWidth" : 523.276, + "placementHeight" : 27.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 27.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]/SectionHeading[0]/SectionBadge[0]", + "entityName" : "SectionBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 241.789, + "placementX" : 36.0, + "placementY" : 241.789, + "placementWidth" : 27.0, + "placementHeight" : 27.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.0, + "contentHeight" : 27.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]/SectionHeading[0]/SectionBadge[0]/Icon-badge-scope[0]", + "entityName" : "Icon-badge-scope", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/SectionHeading[0]/SectionBadge[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 42.48, + "computedY" : 248.269, + "placementX" : 42.48, + "placementY" : 248.269, + "placementWidth" : 14.04, + "placementHeight" : 14.04, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.04, + "contentHeight" : 14.04, + "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[1]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 74.34, + "computedY" : 247.189, + "placementX" : 74.34, + "placementY" : 247.189, + "placementWidth" : 111.523, + "placementHeight" : 16.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.523, + "contentHeight" : 16.2, + "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[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 233.789, + "placementX" : 36.0, + "placementY" : 233.789, + "placementWidth" : 523.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.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]", + "entityName" : "ScopeRow01", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 200.739, + "placementX" : 36.0, + "placementY" : 200.739, + "placementWidth" : 523.276, + "placementHeight" : 33.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 33.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 5.0, + "right" : 0.0, + "bottom" : 5.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow01[2]/ScopeBadge[0]", + "entityName" : "ScopeBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow01[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 213.789, + "placementX" : 36.0, + "placementY" : 213.789, + "placementWidth" : 26.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.0, + "contentHeight" : 15.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]/ScopeRow01[2]/ScopeBadge[0]/ScopeNumber[0]", + "entityName" : "ScopeNumber", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow01[2]/ScopeBadge[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 216.189, + "placementX" : 36.0, + "placementY" : 216.189, + "placementWidth" : 26.0, + "placementHeight" : 10.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.0, + "contentHeight" : 10.2, + "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" : 74.0, + "computedY" : 217.389, + "placementX" : 74.0, + "placementY" : 217.389, + "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" : 270.428, + "computedY" : 205.739, + "placementX" : 270.428, + "placementY" : 205.739, + "placementWidth" : 273.564, + "placementHeight" : 23.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 273.564, + "contentHeight" : 23.05, + "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" : 36.0, + "computedY" : 199.739, + "placementX" : 36.0, + "placementY" : 199.739, + "placementWidth" : 523.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.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" : 36.0, + "computedY" : 166.689, + "placementX" : 36.0, + "placementY" : 166.689, + "placementWidth" : 523.276, + "placementHeight" : 33.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 33.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 5.0, + "right" : 0.0, + "bottom" : 5.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow02[4]/ScopeBadge[0]", + "entityName" : "ScopeBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow02[4]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 179.739, + "placementX" : 36.0, + "placementY" : 179.739, + "placementWidth" : 26.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.0, + "contentHeight" : 15.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]/ScopeBadge[0]/ScopeNumber[0]", + "entityName" : "ScopeNumber", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow02[4]/ScopeBadge[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 182.139, + "placementX" : 36.0, + "placementY" : 182.139, + "placementWidth" : 26.0, + "placementHeight" : 10.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.0, + "contentHeight" : 10.2, + "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" : 74.0, + "computedY" : 183.339, + "placementX" : 74.0, + "placementY" : 183.339, + "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" : 270.428, + "computedY" : 171.689, + "placementX" : 270.428, + "placementY" : 171.689, + "placementWidth" : 284.661, + "placementHeight" : 23.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 284.661, + "contentHeight" : 23.05, + "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" : 36.0, + "computedY" : 165.689, + "placementX" : 36.0, + "placementY" : 165.689, + "placementWidth" : 523.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.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" : 36.0, + "computedY" : 132.639, + "placementX" : 36.0, + "placementY" : 132.639, + "placementWidth" : 523.276, + "placementHeight" : 33.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 33.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 5.0, + "right" : 0.0, + "bottom" : 5.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow03[6]/ScopeBadge[0]", + "entityName" : "ScopeBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow03[6]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 145.689, + "placementX" : 36.0, + "placementY" : 145.689, + "placementWidth" : 26.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.0, + "contentHeight" : 15.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]/ScopeBadge[0]/ScopeNumber[0]", + "entityName" : "ScopeNumber", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow03[6]/ScopeBadge[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 148.089, + "placementX" : 36.0, + "placementY" : 148.089, + "placementWidth" : 26.0, + "placementHeight" : 10.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.0, + "contentHeight" : 10.2, + "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" : 74.0, + "computedY" : 149.289, + "placementX" : 74.0, + "placementY" : 149.289, + "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" : 270.428, + "computedY" : 137.639, + "placementX" : 270.428, + "placementY" : 137.639, + "placementWidth" : 250.938, + "placementHeight" : 23.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 250.938, + "contentHeight" : 23.05, + "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" : 36.0, + "computedY" : 131.639, + "placementX" : 36.0, + "placementY" : 131.639, + "placementWidth" : 523.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.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" : 36.0, + "computedY" : 98.589, + "placementX" : 36.0, + "placementY" : 98.589, + "placementWidth" : 523.276, + "placementHeight" : 33.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 33.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 5.0, + "right" : 0.0, + "bottom" : 5.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow04[8]/ScopeBadge[0]", + "entityName" : "ScopeBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow04[8]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 111.639, + "placementX" : 36.0, + "placementY" : 111.639, + "placementWidth" : 26.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.0, + "contentHeight" : 15.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]/ScopeBadge[0]/ScopeNumber[0]", + "entityName" : "ScopeNumber", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow04[8]/ScopeBadge[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 114.039, + "placementX" : 36.0, + "placementY" : 114.039, + "placementWidth" : 26.0, + "placementHeight" : 10.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.0, + "contentHeight" : 10.2, + "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" : 74.0, + "computedY" : 115.239, + "placementX" : 74.0, + "placementY" : 115.239, + "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" : 270.428, + "computedY" : 103.589, + "placementX" : 270.428, + "placementY" : 103.589, + "placementWidth" : 256.446, + "placementHeight" : 23.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.446, + "contentHeight" : 23.05, + "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" : 36.0, + "computedY" : 97.589, + "placementX" : 36.0, + "placementY" : 97.589, + "placementWidth" : 523.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.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" : 36.0, + "computedY" : 64.539, + "placementX" : 36.0, + "placementY" : 64.539, + "placementWidth" : 523.276, + "placementHeight" : 33.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 523.276, + "contentHeight" : 33.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 5.0, + "right" : 0.0, + "bottom" : 5.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow05[10]/ScopeBadge[0]", + "entityName" : "ScopeBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow05[10]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 77.589, + "placementX" : 36.0, + "placementY" : 77.589, + "placementWidth" : 26.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.0, + "contentHeight" : 15.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]/ScopeBadge[0]/ScopeNumber[0]", + "entityName" : "ScopeNumber", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow05[10]/ScopeBadge[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 79.989, + "placementX" : 36.0, + "placementY" : 79.989, + "placementWidth" : 26.0, + "placementHeight" : 10.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.0, + "contentHeight" : 10.2, + "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" : 74.0, + "computedY" : 81.189, + "placementX" : 74.0, + "placementY" : 81.189, + "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" : 270.428, + "computedY" : 69.539, + "placementX" : 270.428, + "placementY" : 69.539, + "placementWidth" : 260.577, + "placementHeight" : 23.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.577, + "contentHeight" : 23.05, + "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]/Header[6]", + "entityName" : "Header", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 36.0, + "computedY" : 6.539, + "placementX" : 36.0, + "placementY" : 6.539, + "placementWidth" : 523.276, + "placementHeight" : 58.0, + "startPage" : 0, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 58.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]/Header[6]/HeaderRow[0]", + "entityName" : "HeaderRow", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/Header[6]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 783.89, + "placementX" : 36.0, + "placementY" : 783.89, + "placementWidth" : 523.276, + "placementHeight" : 50.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 50.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]/Header[6]/HeaderRow[0]/LogoMark[0]", + "entityName" : "LogoMark", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Header[6]/HeaderRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 783.89, + "placementX" : 36.0, + "placementY" : 783.89, + "placementWidth" : 50.0, + "placementHeight" : 50.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 50.0, + "contentHeight" : 50.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]/Header[6]/HeaderRow[0]/LogoMark[0]/Monogram[0]", + "entityName" : "Monogram", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Header[6]/HeaderRow[0]/LogoMark[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 790.89, + "placementX" : 36.0, + "placementY" : 790.89, + "placementWidth" : 50.0, + "placementHeight" : 36.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 50.0, + "contentHeight" : 36.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]/Header[6]/HeaderRow[0]/Wordmark[1]", + "entityName" : "Wordmark", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Header[6]/HeaderRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 98.5, + "computedY" : 789.69, + "placementX" : 98.5, + "placementY" : 789.69, + "placementWidth" : 92.096, + "placementHeight" : 38.4, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 92.096, + "contentHeight" : 38.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]/Header[6]/HeaderRow[0]/Wordmark[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Header[6]/HeaderRow[0]/Wordmark[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 98.5, + "computedY" : 808.89, + "placementX" : 98.5, + "placementY" : 808.89, + "placementWidth" : 92.096, + "placementHeight" : 19.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 92.096, + "contentHeight" : 19.2, + "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]/Header[6]/HeaderRow[0]/Wordmark[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Header[6]/HeaderRow[0]/Wordmark[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 98.5, + "computedY" : 789.69, + "placementX" : 98.5, + "placementY" : 789.69, + "placementWidth" : 60.128, + "placementHeight" : 19.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 60.128, + "contentHeight" : 19.2, + "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]/Header[6]/HeaderRow[0]/SpacerNode[2]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "Proposal[0]/Header[6]/HeaderRow[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 210.422, + "computedY" : 808.89, + "placementX" : 210.422, + "placementY" : 808.89, + "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]/Header[6]/HeaderRow[0]/DocumentLabel[3]", + "entityName" : "DocumentLabel", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Header[6]/HeaderRow[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 475.552, + "computedY" : 799.39, + "placementX" : 475.552, + "placementY" : 799.39, + "placementWidth" : 83.724, + "placementHeight" : 19.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 83.724, + "contentHeight" : 19.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]/Header[6]/HeaderRow[0]/DocumentLabel[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Header[6]/HeaderRow[0]/DocumentLabel[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 475.552, + "computedY" : 807.59, + "placementX" : 475.552, + "placementY" : 807.59, + "placementWidth" : 83.724, + "placementHeight" : 10.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 83.724, + "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]/Header[6]/HeaderRow[0]/DocumentLabel[3]/Align[1]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/Header[6]/HeaderRow[0]/DocumentLabel[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 475.552, + "computedY" : 799.39, + "placementX" : 475.552, + "placementY" : 799.39, + "placementWidth" : 83.724, + "placementHeight" : 8.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 83.724, + "contentHeight" : 8.2, + "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]/Header[6]/HeaderRow[0]/DocumentLabel[3]/Align[1]/DocumentLabelRule[0]", + "entityName" : "DocumentLabelRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Header[6]/HeaderRow[0]/DocumentLabel[3]/Align[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 524.176, + "computedY" : 799.39, + "placementX" : 524.176, + "placementY" : 799.39, + "placementWidth" : 35.1, + "placementHeight" : 2.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 35.1, + "contentHeight" : 2.2, + "margin" : { + "top" : 6.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]/Header[6]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Header[6]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 775.89, + "placementX" : 36.0, + "placementY" : 775.89, + "placementWidth" : 523.276, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.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]", + "entityName" : "Deliverables", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 36.0, + "computedY" : 638.89, + "placementX" : 36.0, + "placementY" : 638.89, + "placementWidth" : 523.276, + "placementHeight" : 119.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 119.0, + "margin" : { + "top" : 18.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" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Deliverables[7]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 730.89, + "placementX" : 36.0, + "placementY" : 730.89, + "placementWidth" : 523.276, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 27.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]/SectionHeading[0]/SectionBadge[0]", + "entityName" : "SectionBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Deliverables[7]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 730.89, + "placementX" : 36.0, + "placementY" : 730.89, + "placementWidth" : 27.0, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 27.0, + "contentHeight" : 27.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]/SectionHeading[0]/SectionBadge[0]/Icon-badge-deliverables[0]", + "entityName" : "Icon-badge-deliverables", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/Deliverables[7]/SectionHeading[0]/SectionBadge[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 42.48, + "computedY" : 737.37, + "placementX" : 42.48, + "placementY" : 737.37, + "placementWidth" : 14.04, + "placementHeight" : 14.04, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 14.04, + "contentHeight" : 14.04, + "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[1]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 74.34, + "computedY" : 736.29, + "placementX" : 74.34, + "placementY" : 736.29, + "placementWidth" : 95.364, + "placementHeight" : 16.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 95.364, + "contentHeight" : 16.2, + "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]", + "entityName" : "DeliverableColumns", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/Deliverables[7]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 638.89, + "placementX" : 36.0, + "placementY" : 638.89, + "placementWidth" : 523.276, + "placementHeight" : 92.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 92.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 7.0, + "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" : 36.0, + "computedY" : 638.89, + "placementX" : 36.0, + "placementY" : 638.89, + "placementWidth" : 175.2, + "placementHeight" : 85.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 175.2, + "contentHeight" : 85.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[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 711.89, + "placementX" : 36.0, + "placementY" : 711.89, + "placementWidth" : 119.16, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 119.16, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 36.0, + "computedY" : 694.89, + "placementX" : 36.0, + "placementY" : 694.89, + "placementWidth" : 175.2, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 175.2, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 36.0, + "computedY" : 677.89, + "placementX" : 36.0, + "placementY" : 677.89, + "placementWidth" : 165.03, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 165.03, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 36.0, + "computedY" : 660.89, + "placementX" : 36.0, + "placementY" : 660.89, + "placementWidth" : 116.83, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 116.83, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 36.0, + "computedY" : 643.89, + "placementX" : 36.0, + "placementY" : 643.89, + "placementWidth" : 138.9, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 138.9, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 287.172, + "computedY" : 655.89, + "placementX" : 287.172, + "placementY" : 655.89, + "placementWidth" : 217.84, + "placementHeight" : 68.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 217.84, + "contentHeight" : 68.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[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesRight[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 287.172, + "computedY" : 711.89, + "placementX" : 287.172, + "placementY" : 711.89, + "placementWidth" : 217.84, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 217.84, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 287.172, + "computedY" : 694.89, + "placementX" : 287.172, + "placementY" : 694.89, + "placementWidth" : 165.27, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 165.27, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 287.172, + "computedY" : 677.89, + "placementX" : 287.172, + "placementY" : 677.89, + "placementWidth" : 187.4, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 187.4, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 287.172, + "computedY" : 660.89, + "placementX" : 287.172, + "placementY" : 660.89, + "placementWidth" : 164.33, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 164.33, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 36.0, + "computedY" : 410.74, + "placementX" : 36.0, + "placementY" : 410.74, + "placementWidth" : 523.276, + "placementHeight" : 210.15, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 210.15, + "margin" : { + "top" : 18.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]", + "entityName" : "SectionHeading", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Timeline[8]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 593.89, + "placementX" : 36.0, + "placementY" : 593.89, + "placementWidth" : 523.276, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 27.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]/SectionHeading[0]/SectionBadge[0]", + "entityName" : "SectionBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Timeline[8]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 593.89, + "placementX" : 36.0, + "placementY" : 593.89, + "placementWidth" : 27.0, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 27.0, + "contentHeight" : 27.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]/SectionHeading[0]/SectionBadge[0]/Icon-badge-timeline[0]", + "entityName" : "Icon-badge-timeline", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/Timeline[8]/SectionHeading[0]/SectionBadge[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 42.48, + "computedY" : 600.37, + "placementX" : 42.48, + "placementY" : 600.37, + "placementWidth" : 14.04, + "placementHeight" : 14.04, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 14.04, + "contentHeight" : 14.04, + "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[1]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Timeline[8]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 74.34, + "computedY" : 599.29, + "placementX" : 74.34, + "placementY" : 599.29, + "placementWidth" : 61.83, + "placementHeight" : 16.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 61.83, + "contentHeight" : 16.2, + "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]/TimelineTable[1]", + "entityName" : "TimelineTable", + "entityKind" : "TableNode", + "parentPath" : "Proposal[0]/Timeline[8]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 410.74, + "placementX" : 36.0, + "placementY" : 410.74, + "placementWidth" : 523.276, + "placementHeight" : 176.15, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 176.15, + "margin" : { + "top" : 7.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]", + "entityName" : "MoneyBand", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]", + "childIndex" : 9, + "depth" : 2, + "layer" : 2, + "computedX" : 36.0, + "computedY" : 188.34, + "placementX" : 36.0, + "placementY" : 188.34, + "placementWidth" : 523.276, + "placementHeight" : 204.4, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 204.4, + "margin" : { + "top" : 18.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]", + "entityName" : "InvestmentColumn", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/MoneyBand[9]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 36.0, + "computedY" : 188.34, + "placementX" : 36.0, + "placementY" : 188.34, + "placementWidth" : 308.733, + "placementHeight" : 204.4, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 308.733, + "contentHeight" : 204.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]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]", + "entityName" : "SectionHeading", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 365.74, + "placementX" : 36.0, + "placementY" : 365.74, + "placementWidth" : 308.733, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 308.733, + "contentHeight" : 27.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]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]/SectionBadge[0]", + "entityName" : "SectionBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.0, + "computedY" : 365.74, + "placementX" : 36.0, + "placementY" : 365.74, + "placementWidth" : 27.0, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 27.0, + "contentHeight" : 27.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]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]/SectionBadge[0]/Icon-badge-investment[0]", + "entityName" : "Icon-badge-investment", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]/SectionBadge[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 42.48, + "computedY" : 372.22, + "placementX" : 42.48, + "placementY" : 372.22, + "placementWidth" : 14.04, + "placementHeight" : 14.04, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 14.04, + "contentHeight" : 14.04, + "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[1]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 74.34, + "computedY" : 371.14, + "placementX" : 74.34, + "placementY" : 371.14, + "placementWidth" : 86.103, + "placementHeight" : 16.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 86.103, + "contentHeight" : 16.2, + "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]/InvestmentTable[1]", + "entityName" : "InvestmentTable", + "entityKind" : "TableNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 36.0, + "computedY" : 188.34, + "placementX" : 36.0, + "placementY" : 188.34, + "placementWidth" : 308.733, + "placementHeight" : 170.4, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 308.733, + "contentHeight" : 170.4, + "margin" : { + "top" : 7.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]", + "entityName" : "TermsColumn", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/MoneyBand[9]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 376.129, + "computedY" : 218.74, + "placementX" : 376.129, + "placementY" : 218.74, + "placementWidth" : 183.147, + "placementHeight" : 174.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 183.147, + "contentHeight" : 174.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]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]", + "entityName" : "SectionHeading", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 376.129, + "computedY" : 365.74, + "placementX" : 376.129, + "placementY" : 365.74, + "placementWidth" : 183.147, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 183.147, + "contentHeight" : 27.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]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]/SectionBadge[0]", + "entityName" : "SectionBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 376.129, + "computedY" : 365.74, + "placementX" : 376.129, + "placementY" : 365.74, + "placementWidth" : 27.0, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 27.0, + "contentHeight" : 27.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]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]/SectionBadge[0]/Icon-badge-terms[0]", + "entityName" : "Icon-badge-terms", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]/SectionBadge[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 382.609, + "computedY" : 372.22, + "placementX" : 382.609, + "placementY" : 372.22, + "placementWidth" : 14.04, + "placementHeight" : 14.04, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 14.04, + "contentHeight" : 14.04, + "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[1]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 414.469, + "computedY" : 371.14, + "placementX" : 414.469, + "placementY" : 371.14, + "placementWidth" : 44.712, + "placementHeight" : 16.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 44.712, + "contentHeight" : 16.2, + "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]", + "entityName" : "TermsList", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 376.129, + "computedY" : 218.74, + "placementX" : 376.129, + "placementY" : 218.74, + "placementWidth" : 182.676, + "placementHeight" : 147.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 182.676, + "contentHeight" : 147.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 7.0, + "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" : 376.129, + "computedY" : 332.34, + "placementX" : 376.129, + "placementY" : 332.34, + "placementWidth" : 175.69, + "placementHeight" : 26.4, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 175.69, + "contentHeight" : 26.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 376.129, + "computedY" : 300.94, + "placementX" : 376.129, + "placementY" : 300.94, + "placementWidth" : 171.01, + "placementHeight" : 26.4, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 171.01, + "contentHeight" : 26.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 376.129, + "computedY" : 269.54, + "placementX" : 376.129, + "placementY" : 269.54, + "placementWidth" : 177.14, + "placementHeight" : 26.4, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 177.14, + "contentHeight" : 26.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 376.129, + "computedY" : 223.74, + "placementX" : 376.129, + "placementY" : 223.74, + "placementWidth" : 182.676, + "placementHeight" : 40.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 182.676, + "contentHeight" : 40.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.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" : 36.0, + "computedY" : 78.54, + "placementX" : 36.0, + "placementY" : 78.54, + "placementWidth" : 523.276, + "placementHeight" : 91.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 523.276, + "contentHeight" : 91.8, + "margin" : { + "top" : 18.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 11.0, + "right" : 11.0, + "bottom" : 11.0, + "left" : 11.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/SectionHeading[0]", + "entityName" : "SectionHeading", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Acceptance[10]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 47.0, + "computedY" : 132.34, + "placementX" : 47.0, + "placementY" : 132.34, + "placementWidth" : 501.276, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 501.276, + "contentHeight" : 27.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]/SectionHeading[0]/SectionBadge[0]", + "entityName" : "SectionBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Acceptance[10]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 47.0, + "computedY" : 132.34, + "placementX" : 47.0, + "placementY" : 132.34, + "placementWidth" : 27.0, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 27.0, + "contentHeight" : 27.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]/SectionHeading[0]/SectionBadge[0]/Icon-badge-acceptance[0]", + "entityName" : "Icon-badge-acceptance", + "entityKind" : "ImageNode", + "parentPath" : "Proposal[0]/Acceptance[10]/SectionHeading[0]/SectionBadge[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 53.48, + "computedY" : 138.82, + "placementX" : 53.48, + "placementY" : 138.82, + "placementWidth" : 14.04, + "placementHeight" : 14.04, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 14.04, + "contentHeight" : 14.04, + "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]/SectionHeading[0]/SectionHeadingTitle[1]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Acceptance[10]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 85.34, + "computedY" : 137.74, + "placementX" : 85.34, + "placementY" : 137.74, + "placementWidth" : 87.966, + "placementHeight" : 16.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 87.966, + "contentHeight" : 16.2, + "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]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Acceptance[10]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 47.0, + "computedY" : 113.34, + "placementX" : 47.0, + "placementY" : 113.34, + "placementWidth" : 432.25, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 432.25, + "contentHeight" : 12.0, + "margin" : { + "top" : 7.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]/SignatureFields[2]", + "entityName" : "SignatureFields", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/Acceptance[10]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 47.0, + "computedY" : 89.54, + "placementX" : 47.0, + "placementY" : 89.54, + "placementWidth" : 501.276, + "placementHeight" : 23.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 501.276, + "contentHeight" : 23.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 13.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/SignatureFields[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Acceptance[10]/SignatureFields[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 47.0, + "computedY" : 89.54, + "placementX" : 47.0, + "placementY" : 89.54, + "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]/SignatureFields[2]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Acceptance[10]/SignatureFields[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 113.177, + "computedY" : 89.54, + "placementX" : 113.177, + "placementY" : 89.54, + "placementWidth" : 96.915, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 96.915, + "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]/SignatureFields[2]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Acceptance[10]/SignatureFields[2]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 216.092, + "computedY" : 89.54, + "placementX" : 216.092, + "placementY" : 89.54, + "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]/SignatureFields[2]/LineNode[3]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Acceptance[10]/SignatureFields[2]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 282.269, + "computedY" : 89.54, + "placementX" : 282.269, + "placementY" : 89.54, + "placementWidth" : 96.915, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 96.915, + "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]/SignatureFields[2]/ParagraphNode[4]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Acceptance[10]/SignatureFields[2]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 385.184, + "computedY" : 89.54, + "placementX" : 385.184, + "placementY" : 89.54, + "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]/SignatureFields[2]/LineNode[5]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Acceptance[10]/SignatureFields[2]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 451.361, + "computedY" : 89.54, + "placementX" : 451.361, + "placementY" : 89.54, + "placementWidth" : 96.915, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 96.915, + "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/northline_proposal-page-0.png b/qa/src/test/resources/visual-baselines/proposal-v2-layered/northline_proposal-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..895525f2241282a60b845515f351b1066204d0d3 GIT binary patch literal 116268 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
^-W%#^2 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 z z^b03{+@h>B4BCC6JQG@{(mwIp*m3AqS_134qrU(c!Xo4%vTy#aBy%f0h1y;uX@Ae1 z>cy>?#rc(PaDa~O2ct7e-CQSJ%pMV969c@a!2~12ko{Pq>z6f4nc5Vo^_9+#61UA1k zdj{$VQw>mSs8wO(bsYS0N9#PFnpH?x0}I`6UU)!sy=*!T1lES*oDRRZ97C_NeBp6= z*M%6#XXSoWycYU-b7Ba8=4k&<2!Z&#z)EU3&z2X@?epf#)ee05lkQjtc=zX(+@|&A zXeU^dT$icsF|yP0#%A^$Rs!U{6&|3A71k6(nBbc0;`@4scl-H{ta|(elFlECZi!m- z$0%?HfXx@Y4DtV}cXDebyuf+Jnm#b-V9p#1_g@52q7Mmc8z$@}&ey_>9x zV8s&fvtNNiMKu|I=5ONq6n|AR>UH|qLQ5e;;6hw>g);E%Sg%dg{UV^W?`rkKFU_Z4 zVx6VSz>&g z_4BENc?In;YkHA>5gz5E_FDNxzjS7+kVl$YZfl$)fsoUo?K7eFT8Hmt5(t2~@O0`u zV*^)-aosp*DgO@>Ie36II?%8!b>IQe-kDD<3cE0lhpkK$&~Mrb)tFzub_V4oRbBwW z2>>m&57-)X_WR8kOSF*?x^zBU0g0B(#uIJCQUZ! zsQ2g@he-L6`Cr(Qm8-FP8z4K%(S&^p6LM?#7i2Pr37mwNn{U8o#p1$s_tP0AhLvby zg7LSbIHv4INt?%(;zS|ilOF9rAEgRj|3Z9%+VcsKOqGe4Y)aydUGbO{y%s(1d;I%O zPt|+CYyWmOUa;hEI%&H776?yL70C4hd1Ca2;#5+#fdcYH8&e!Y&K^=*tR)aegWtW~ zd>xLl4%mcSA0nPnxg0Ta=zozwV%295T^I=WU~ZZ0thy`%)H=8bdRy* z4A_d42@t&V@_a!;GD!2dF}~Q2QT!{%w-t|Q9kakz|*T+L3({Ljbbb?HE8~YpY@H7Doi2KXU5WtLstQxlxbtsuv z)+S^vVDaBCX^U!7{c5nq8h{ct8H7`-@U8vfPr4;@c z^Nv0-K&Glvre-%B1&bZssI zh>b3*pq)B;HOmK(ZNNduzuA)P%iX0Ut(?tYTJguM_riq{cWj98st4Un#I6K#$%>R&I%i0l-}>=F#Kj zu1N}r0;HHQxADY)-+p^}DUA8}{@1N@8r`nta__V}N&EGWW^a}qe%w*>m&!*$`TBwJ zt%q1G5`MQ1WUoIGp9#Jk?SA|kWr!(@k>$1+?a*R&Ya&asUM3Ir{-1IKAZa9$Tqy@MIg!o znPd<96zUb&dP`Tc@%v!aTg?O0wsj9ao$6-&uRTDA*a2;9YQqt8>IXE!FV4LQ>A}>K z1*S&Sg&F9fK`t4m^Hu)0_J1;ooR%OmvV^nw5sUj+fi05cdtZ?Xye0yxhe)MRUn0 zX5d>p?m81m-og4C$Oe^|;05lo5PDV)xi}0;oD!aalI&|Fm9l z$9vqvuGb4^fLMoB$oT9Ca}sb0coyEe3)8^~qjxPLo$K1FHFi|E zDf9UfB`n)STYS#Vtk-yd_pP(>+aTG=i1m5R=A!L4^Sc?K@69s!qmDjleBz~9$;iQz z{;Nar312qsQ;}V68F=r}I*rrftJ$5wo1iTFDSN24^Pe-kcUGHAWyyoRRNZ+0DpgDBM=FKpvyEfgTuR!!ebsnDc-I&LiEik;c zQ47_9YhQ_Xe|F)c2fsG~S$_+HL7n>MvEba_Qf~Y8Tv|uqzTocleMB3fE50-X^lv%E zF6BL^!-wU^cra$xy@nrEEnK;PlShvHkFalA z)pGn14ti z55@#@$AseakEOAfN^LoY5kSCJBETnZpL`ALV3v@jDkNyvN%*fiF5WM%<4Gh07{3B{ zvK%w30Z{yFz*F^}amGkIEwq>)eL;{gblZ|Z;@02xQ_`2Me>o76|Bw za6RJ}QOq5fgr>li$<@~oLdm)UQe$y(wNtsQw*d4JcIP<1j1TV~&ZrL?pB<4rc*i-_ zg^wmy3{-G@UYq!yn0xQ=au$~a!U=yt$U8g>WRp3&b&c=>K{pD@bFNDjFt}(6*B;M- zT(YU$Uhz@rUI1oCp`vrCRxhiwE774=884sSunv?!9f+3rdnfHyBn5U`@df}3Nw*AG zHNROe2eLrm)M^~BY5APF0l4J*Lz5fBz7wD{{!0N%h{FURTu~T0Mqge`FGV)dHwWau z5`}ejIV#kFfWg0%;dAbenGUif57)CXp1WuVfFPm+(`>?@0)dJWRw6t!0Ej0E2C|p1 zVM67Re`_(*=I;^!`} zug0)!cd8IL!`c~xxzHFE7Qi-GV{IB8SBpopr8ig%pq30N{^R&mw7pj3K#GspB2D6Q zu{pubPjwNFX7&c#xCABmfz;>JqyiSs!`!LAFSuuKGl$<#Xbci!Q`Km4X@JUKD#4_1 zy$HLyB+Z{M^1rJfaE5hFW*d9YKSwb32S;udU^oYYBgBrf7UD4}&S70`<49TxDt+le ze!Gz&QaucZ{6?QSVZCnmN#Hk2+W1FD@o-G0KZ+y&%jVLw|Lr4ymfcY0IVE*S%kgm} zI%-NG9{I}om_6a!Hy-G5i2@U6%2HmXF92{22G`=GT67qJYJ*_F= z$X?*6KT5y3c$?gC|7{#^4B3#|l-wKxv%Bugx=uPJwXE~6wz=ZiPJrRiq;$^k57(fCJ- z*gpoq<53UnrjFC(gQ$f{%5+k&PbAh7-X(T(#L{8S?H7MoSJ9Iv!El&`j85YP1Di|n zWd@+QVlGKUBRQl)t|sqe5pk485*`O1_|hEgu`yHgW&_YOUGT-+Dq6ZkW8?AeT*H&y zkwriFZw^H+S(c8LzC_SOo(hdIH>^Zh&LH}L?rz*Y84nYQCJ@V?38j`?$&->Sr+t>k zug>k1yX{;6%UH)khV5hg8?LJ?D|){)UHh?R=RPSpGNbJMH7l%j3ut1O$zNs|bFDGh7yh=rw2ZnRD{Qy)OnEP(tc?DiphfbiFZHXfzN)a$mD=y) zKxPFd&Yf2Tlc&N04wL=dika`mJz%rH&eM0LMkOEEy|Plx8V-4DrTR@SmPS>6%0d~C zGlz4qXU>ckaZW7C{)7=XoS@&2J#j8Du;RtM%c@EA7sJ7gUm~?5dX!!N#=fIJCJw=2 zBeQ`TM+{vXIU0rQ3Q1<>$LbGh=~MeHLa8IbH^F)%*R-g|Of1gTrHVBsuA^mI&5mz? z3Y}_CAONqB6glf{n?&l6ztRJC^7J3WtN8_^VTEqk@%(w-xd-fsTcH?`2>qq!t9&|3 zvISD?tcjL*{Y~viQ4%^R7G?T3VKzMy`v*2#xUgc~uFpv9lb1d7pJoQRAUW5 zVwnxaM#y6vR4`ack`>8vqqT`Vqu_Ty54HZ$>iAFmiGr|$D_UurC&Q7D~jV!G~N>V}Xl7q-h}2WG=ZLaFO#$8#k3C(>tCkagjL}Xy96q3=lgP zTw7*Vzdj9{Q{5GMUhDY(#Co0bH(}m4gPV7V-)nCn%A8eafMH;gr<>Nm5eUz!r zBjX+*OCM^^THB-BODum>#0w#E6=_1dK(P5eY!A6L+|>3sHaKjMoAtuZ zHVF!Ym`#f7I_FM)f^oxE^3IO7jER#Ybjy-VioDA$ zOXIgh&~9yEeN_8$S%j}D=AGdOnYz93TK4BaMIb*P0^i{Chvk^k;9TdE%Gj;m49-LJ>_&4p;LK#-S3`p&431LImX+SFsquUXZn8Qhi4Q*|4Df{;DpS-- z@c$Oh7Z#W0aoU9qpBpROTmG(X0!qDH<19hD^%E`o%(`*OC~tZt0`F(kVP?XfgkJBn zFX}HD_VbfZ&bH!vjO+FBCr)ORB)Z)UEa`XMf7RmH_OFkF#)~+)FexL>vn(8)Ieg=K z_#16Eso?kEG>1No2&T$oxb3lG36zT1V+qLQ%JemN&*w5-moxt!_{4UQroA~0A4i28 zcQv|IfaCX}E46xQbX0w3-dY%h7FXzv@e+a?d*7sok7 zFc>;ta*z^Mb5K0)VF+(i_0+D2Sq>`&J3(8E1w%*k7o{%=;Vp~bOM4crjr)u_6`AWtKXpNRcy8e9gXjae z;gDE0^HlO0BP+X2(?GeyQ$f_!YKtWQ9-*C5y|gk{e63*~!{oPFmPbFyA%bEIyeWs8 zp;AJYw6V`&)X5uvtH(Zz$(uw&B=rgq3S#iZraD6^G0gU774zrp_ucu5O4A8VhI~Vv zWIMAB>D@B7%zfeigk6O?hRGT7Kc~IR--?l1{qyc*%M>vQ(^s$IGEVg+Z6F0wr%amy zp%X}cnT_5223?r_yEi&Mo&No-BP|t;IN1#=H63%LAhmeV-$B7*`m9DbrDhDRlTo< zlDnv0>VnJOIyu!$1z`?R66L4{^^cN&WQWEom{6;{RQB;7U10OsbRy+hnosQ7Pogjo zQnjrra8D`P8*_z>%%`pK!M+&2X}b9TZNA3aJB%;g!<-mp=C~MAQFcIzwi8qszTfJ> ztidweZFd1x3K$Q!+bNWMpk-j{2djDI6Wo;_k;X~7ARXZ0V#%@RrI&!;mzso52^kF0 zKv9+~{h)VFhE(WwMklrDwx4P#YmMmEUm}c&OJ8jWACPf5e(h*&ww(NAyfs3vx_xYX zkY>ujT4cM?MkyYdZ@kv-4n(8!;`aweKL7Ej&<6!%p2m$LFP# zVo&0Uc`*=Fu-e{u35?K8V!j^ZMmAcRrns$P-`bA({?!IN_=z_5`fO$~Jyx-@EW4n; zb#JXWy^|}>Sgk^#c#r%G#cF!YuRniZE=JSFh6=hVdi$gC9i};v8(GLa`X!S$!)pm_ z8x%<3W`x|^-O-2Le{$}?DBc9P!9YEF$EcOBGmKG_l!8uTJ&#c}FkO~)#Yedl#ocMf z+u-sEoUr{%6R9E#jQ^@}5?5bLsmrIur+=rG7u8r+saHz$I3l#=pLvspSuP9^0-`L< zsK*Vf{^}W(jT3N}Y{Uw~O>xSm?Q2xfM0NE$jtnqf)-00DM~|M$D)@7xx>2rHE`^bl z?r|JJeMvV9Zg#X9u#%Pn2`tj?`{vJ$nQn}@uphFysl>H#iM##QNQ%^nVf3~d(2!3o z!=}QI^}F^T3yKD4RjheYoF2;_hI-xx7BWWV>k+Eine0#tm9x z;d2Ib1;-}G6fFEJoDwVn>@>koWV@pJ_GYrhAkpF%Um7$DL$7MCw zlw4wwba9=~9-PK!Xg{cP7tXE4M|JPoaPj}p_Lfmm{n7ug2$D*QgoHGTzcWqt~z!qobvkk-dg1iCXS#A`#7V;q*i_1;=i%# z+bJE@S{M}z5zl1ie~zu+oc+KM1-*U{{pCYZPQ#rLpFGNAci=_Biox&#<3nrW9|7Bk z(rI%M`^hEyn;so8CjKju(!GzlEh`cO6RI`VOuuCtLDE0?`6nNm`d+rU!P;<-!~B5o z<^xhxXLF|*=)Qr*5T`(KHj)D_xl`zpVn{Q1J^lC<%Q&1O#3|RgjVGhJl$d!__meAe z&wKyaRIM|-=b04Fy??4SvoaY`&S(@pgQtdV^Vx)$3#HSc;DAC?H>!zW!>?~?-W!d| z9`8ahNu{mRh%fcdlY3+@@T8#wwp2hTsOL0^d*$ zeX<7(K_l&bb2E-jKia65RT@|OhcO{s-qH=qZ;TTZbvdX8%JlV5|9n}WL67Vot z@O1{V2QUV%I`s+>$~a8cI7p4x>+ZdW>s)>_*BG@+)}El`JTd~Ms<_UH#>m(!iF)Mq zYtN&TZnjk`v@ceRr^e_|D+d2G+}hyDeM*aUqu%~>$e_XtqoC&W$wcR8x8>DP$#1tk zHw+O|j=yib)^+luO$P}^XO(x*G|DS%!i(5TWv17VgHLKtb^g89bi&7?DYDOAvxA)WJuOu~ot%rRiQz@Kh}$eGy1!ycI2) zm#+iGFAo%?n#(J(#M;G6*1bn&m8V2SrksfV4gEoHo@7ii*Ze4f&ckL-ZP#r31)k)dYE-WDh38OI!SpB5N?ad9R+U~Xe3lagmC&zQfR9v!SP=-}2Ls)g?gQ-YI$^H7mS zny1-8ciJGay zojt-46Sot=RuthXmij!b0?2r|S!S~VD!pm>(?M(pBV!*1o1QWX_{<*Bn!$RL1C@En zd56I%%IuV;>x}cy^%Qw}j;zdC8IwUtm6Y=oY?LFPzUHIrqeB>oFb*MCe-erf>UUWi zBA&LJxJm<6=e?@QY;+qB=~rk(X7UQ-Chr5E*bI#2oUJ_z#E`I_O@<<#^`AdU5`PV3 zt6ZFKWKP3nF%17GDnt@%M+!?}*p@#OOPe~d;jqGpN}~*I3E3&xn-)_A?(BfMJOTrP z72<2$Xt08DLwXn+vZO#BwV+gZzTrCo)R30(;toas?hv)1&9xF5xZ(GSsQBMb-k-Zq ztr(E#8SMCVw1r`p8K60It5^g!g&gG?*Tp@nK9>Q3H`zPHf0@nw&fzjRrFmyT~U_Ti;yoT?KgZL?2m>W zr68gfcg4jjKFtyHm4?GT^|L?HUz+c44X9>{9)O}0QO}DMPq)6~V8nX-C556=uTG!$ zSCfwV{l;~rpU;=rfNZQMto5?FNku&<)B;wHJD!N(wpHlKGh_#)eMnD*7`byK18u+> z)3P1#U=o9Qbi3Gs46hjY)xo?7NVbtMm}p0)V>aH4it_LcMKGcjslvPtq@l(NNcl}h z!h#~rm?339ViAlwm)^mez&G037m5#djK))4B2OECKKlqy3GQX&-q0)ok9;FYM0;<^ZEWs_)Y&SB z)78h8qYkxPuiM%p!h5Tx#lJmmCN!SaIdt6<3P?4^OJ7OomvTXmTLK>38<@?ykX*)r z6ibkK-n~NduosTuylSh>gMYECH6eVM3*W;>-YQQcQ{V@O!TKxp9`Jki??ubH3@}T^ z+;pRkyPoyzfHr;0`Ai*7i))mD&=aE7^P;Qlz`L1QWxVD^Ilq$^=Vpe&X3vCQaneH? z9Tk?Zhn=x0grj4v$2)qR>Iraawx75)KMX4dBOqKgO)Xc>#_VP$W*cv7j{bn24l0}c z(d@~6p3g=Zc8cA3$k7*vumFuwU#uVE(JQP{6)*;J{IZSY^H}uJ(EOi0We{IVqB*l58^Kwex|4~vmfb-G96H$-C0ULs5A zGm<9C==9I<4fcOupc zO;ZkQAO!k$qq%~QDNE5(fQue>pdQ{Lx$00wR;BH{6-B#cVo& z|8PduNSChc3--h#ZNbmm5uvTB57E$T^Z*n#j!nCK=o>-QEHT4uQNB7&pU#9;hUArzUwIe+~E{U9N z`=Nko==6NL3L6QP^or%yhGltRHK=>7uf$|N`U7^HOiWIEs-72i*Js(DpWb)B@e@KN zq@Q$t5L(Jdq0iuD9x|UgP+GztiE8zRr&Q1{EC=PCF}@8%E0g7FW$mL6b_5aO3gpw)2)r;e;TJEW_=A9jnbnH(pi*FO@R$od z$W2<>aH~X*d8pGFPkGJ#x!tw)-kAk^xBf0v5|k4hES)8;#J)Of{R`+ta6QPA(K(a5 z3xqztMTQ^?`;$3=#0a2rgG$GaMBU!^vIJY&hlZI^4v+VhLU_tU4> z&MC`n{ze;l@t+u_=u(tTOo(32?S0NmM`R<*vnF}F!C_Iyc4g$FHUnOLXD6Of-{Q$v z&wN;#0A;B@Za(Iv+wqFp?ax`%lOStd^15R{p+&%Y_OWAg_4nXf4sy!P=Z6-QfeW*hg5;i)Y@kWcGqoX`YcX-re z&p3V4iZE?r=qqsqZAJN;qXM$XeU|rFCe-#?^)tL+571oq#2!cfN)U&rA6`5BxNB*P zM1t1s?U)GNN%YZaUOo#BD792ke&m!8_Ix8ip^YQLKV~pg%xG;>)Wxf|)H?HN1|3e$ zAKzgGg#qGkNQ=^e@E7$#eLKBdkLO=WcwDEJ`97?_@6309L$b)9C6N^e%M+UFdp`O7}ttE1-%NM3O+@OAj1&~wt&^<&avmD z9NW|%pMbjBy{=4h9$E&$3w+zNURTL6i|RQD&li{Rdg4|Xx#d6$&xNvXFfB36&R6Zw z@Cz?R!*96@F_jU!=Un|jkocL~F064tGhFEQw4zz+oR*(cO}#iw;6YH>|Me6h|UO2 zpGRz7O)Vd>>Km^uD@0LQhfi+D%9mFP(qQP|mkvyYj#z^o_vZTCsz6yN_?4hFEThrA zzRj$|?Gf)`4D(Z*2P_jh|JBi@4|aI!wenc=Hwhy`scZ&1z60wFU%=~n?HPv;@T2cd z{qo)<_FX{g>t*<|yy-#i)hy1i!~0P_4R`ww9)YaQN@cu6&0B66Qv+k(ap)*zh&1=L zJ25;i7`5(DSa-!YgdR9#Qg{+IYFgcn^E_KFt`2yRv~C|_g#0L8>@nh#4$Rjbob_%bDE)E-xb)kEcZV!Nu%0HNjB(Z+Y79Tw#> zz|q(!M!};II3QCReZxvu@jT|cXj$^K)@sKPpi99SK~BAwsZGBjb%6A+86lEq&0T-M z21L+laZ1w4em-wT%jz@UwgC>rjU@NyH4{BSdK^;WY@Niqr4F~tZDud$k8G3)03n8Y z7#3R7NgMsxty?7Bl0FRn<3O4aXh`P=DSDByVfp;N0R6hJw8HEV)qD24$QG`ClZ|Z* zQi1=g5JR6Z?*Y#5rJ3YeDl341p$B0F60|-Bs3*trN7=)^1U7@k;fjaefsU!Fg$&BZ z-rfv8R+Gb<)TYA3&BWgK^Ci$zAi`>mO1qSsrl@RNXfqw83L8fIDd@gbd1GYQAy*rK z5O9P|6&b#My!mC%Vo-|^dAP-DYjHBZt&{$7b607=O)CcY%dX$&n_qEk9H$(jDO_5L zQHeZGZ};7u$K>3MH+H^^AyXK?D^&6wzP6jD0D3`RpD!W#K4!Q*!bDbkI`8&E9@cwP zS$PF-f_OS$6C(F{aodHWVVMME${3OlhgkMF4jHsd3z?nT^G&_D)Q?9&Zkq?308gO? z>lKwQ&SgZh)Yv7s9HNR$)vjCD>ZY!@#v-NJkZ6DwQ1>Vh|LPE^2v zrS)k*eze@g_t7fnZPvv|D8~%<7h2K!g~+HMoe!>}EB)eoQtaKFb$yo(FbU^83n$ji z0$rPdXw4qm9n*z<$v3a_Y=LwnsgOD)Q1V8p@wgPI3Lod_0)O>acdX7u$6uE$%&b>s zM{-Wy_;QcPN={aJkMZZp0E{?GUAseLMK$FllGK!h z`2=jHY%-gYyy?l=VOI1+h6}Pm4~Z%bQ@xB|TY`o~?M3%0K6ieT5^wA)C)XF9`Odoq z=dzkgGT=|fYxDd;X4gfVA7s$5r;vd|&S!Xv;5FqFuw-UnN;GCj^()xo%xI*fHOMfs zBNK7-Jd5nF@x$^Vel?I({>vn~D2Jcsl0c#YEKD4M@^u5S$TlPy#mwH@ky%#lZGzCx zbe^wUa{J=JkI<&gm&uRGZ%q)LjBC6~ic8LpICad={ zJYIEo$jvv8+eV7Kz2)^Fdg*42c-Mog?W<*jCwRgj%y4-h z#HS74NBH*WoXw|tVVIje*W<4gVc`VlZU{I+q5%EMEhDw+Hg~^?B#`HL-lh3q?|9V? zL+=@LOz1KhKw}C(Wd0CUdLw-GAKb-cH`8~>VVCMd;LjVbkF%94Hq%Q<@eJcS%KnH^ z8b@kN@G4$M;)$(2549z6*yk&!AXAxJXvAXjlOI+v&_)_Zj>n)C#COJs4idurzBK~l zuQ%K^9ItPJ)c4MtPW; zmcZo9b=C_JJBA<}*9*c?y(e6#mAWERUM&aD=)S>buV!sM%!?mJ=0ma}++RZMbmI0T+ZwP9e^60j7ZrD8VZIey+5g=afkGC44$3|5SA= zqk(Rc8TK1uy3dLaVp$i%gg}aax~@yD#ZEpMi#YW>ju^9Gk%7^m#)PZldUAtu+=q!7 z?Y*ZS9c=%m6&XOKB~oNcAb4qc*7>{486fAh(|>rmwaypx5Qt#w zr}eW@kw-I%TB}SoxZ?rkEE0_MfQiwX@_wVakJy>GWFz=5NDxi|W~oVMMDYBBk=Yui zUx~OhpIg3EuwjVUOwHc0&s&AFtyUV?`@_%2S$$-Q{i*a*?Mr@f$~9PQc|NS;jjRSS z&7J;Ybx2D?tUQ!0iQHWZ&12^;;%6u}<&+<{FrU(X6JWmRIQQA#GdL`ii`AJACYF~T zvS_Xi6?s=*h2o&`y8eLq^v0_A8IZF(Y|KcB3xX2g%ZqhH?GAxU1mOgjC0{(w=xE>- z;Q1nPSOB>yl<kp!}&|`WGfCzjMc{)tkSo4$-Tcu9e9ArfyIV0(K#F- zO8Mk1s|PIjBr=Sts6sa)SgdqUE$Vh?_W-Q5T;^Cg;x-QT|QmDT45esly4Bmf~L3=@Yd|gWa8JNSQ#U3&7 z?GBI!P(IXL+eSkM89^x!m2*J1eF946W(@d_4>R^JRf&5d1FI!b&H$pTW^C4yScHkw zVx-XOE=yQnWUs_l;~2^7%mZ+qrHeTemQ4D~&B}gt@&h#4{ z(Qc@Zjq=LcOPbE>-9BSX=67yp*lKX(fJuK1+pa@AF0JjfcaSp&CyAH2F7RCEM_0|M&opK2Ho>Ps5iP6c;Kism3Sp#Iu+JnE%wGIhRmiz@ z01>t({U<9nMKegs#`3o*v9|^}?6ZmPT!B!g|MGTkwb}a}lQxY=R6s_xn=Bh?4IIE ze1h}*J1~0r`x?#E%v(^(kQ>UgRyDu`a?acA$^QtvT<&esh&dKW2$Ax)(~qmm7<#o~ zNJUFq)2*EGWqBt3U~WWyMY%mdUwlW~+#3RG+e8u#V0u_~f;$2T+)RXZC8TNJJ273p zGK&gA?ASgS`FEYd7(ly7@A69lWzjRXk_WEP4x#f5Qx4E2c}kBn9n)R(VoxHh{sjPd zw4-{oKZs?dtXz{ml@vhZvJQ)7d}Q$Fih^v?ISpPBeUo8E%EtHMol36(o^4)Q84cGqma-0A*M6H~iP>jCbOLUa z>Xa%~B+3jyAcT4(^ctKFR@9)FSItFH76V5B;Fc6t!H*r3^Q=hDAO`wl238D+Inrvz z?>C}Es_A9v$rDs(C}=a(jZm9`3l-w5pPDgW%U*||d?@7<{duiQ?rYgBC>8Is7wPVP z-bVbQe}HFtmf@;zyZ5b3%&0Z~c?=>i`&P()vq-UL@2drV@H5(XK6#{A16siuV`~R9 zp!-BcS44O=N$hHvnod1D@nL`g7i#G#DKu zM#BD$^sS8kD|Oq1TL438ynjL~`CN+K^()Y7EF9e3v~v9QUN7*4Ho>K<2FeZFq??Ixs|LoYDlVtQEO z)KadLye&3RdTN2^ClEg0xbuR0*rB3aQsR2>m_9ze21rBSeZ$&nx!Res-gnM5*Gw3c z%>}nqr*!C@zSf5%bb;$@DW1|G7h|rH$55^+5Z7HkiBFahwWb0-DU_c%Yqa-y1R*6VF{+r`H;J zd^faRZ{QKoIxx}^oSYOda20K9WvxW4MBs-)Uu~?H?FO&b#$Yf!U;1r-zM9-Bl$Ax| zgs%_XrWzdL%t`_{YL*TgbM{KI^WGD8mlV5UeK?@b*p#O2iD28XAd$N{N!Ws}N2Jtn zSfmYKV51CGb?arhxWy)LKJo@_4cKuEPJuM!<&{Nj$7K~5r*)-l37}w7Qc@Sp`W!^I zWc(GS<-+f0u-72Eq0^FNtMLC+oE9h;FT?0{{T|4vry^b<=26d``S1O6?!DaOhFg~6 zmDWO1lCrFQKI;^qR$FG=3*lN<1fPB@vXQzB92#ZC)NfuPEmsx#9~MLhCg5~813*-B z+AlJgxg9GHUR}$}QODed{{n zS76BiG9{>4#zO3KAIU1N_#S89FWFcvLE0jM&a8+!X>(1&R%=<4I<0z*#FXtQ;?^nj zm^zgY;}!Im@=eMH*o$z(05&|T;OsI3um{zX+tl5f5B_orXJ+kCUe>$C5+%pXUu!h0 zIVmHIl^t2oW`_rHVZv^W%#Enmt4gW-zIzb5nxxui=TAuF>_M4k%G@mMrlXfxHM8i> zbo6#STi41N_GZGQqP-1+$5cq$)RpPK+dLE+`t!2tGF?X~RyofsJ`GgYJ%9Jnz9BBC z)2bG~X5ukXZllv;HbgTHc(v`7Lc^3aZ?h+u_e_;Wn@ZfMXFIr`^JIaK?xaxr@91-& z*Apl@vRz?nO)YDsx7%`W)5p2QRGx8R)Ak=zncGd2OndIkED`^6{3ppsW4*+$HmI9KBl zN2ElFdnHCKfYF=+=70XKw5N&;Ucq42GJXCC8gER%OCFo(s}qd*=G$DGOjc1G*WLZ- z@9=Em(3qf}`zpD{<_O@BwzCCnap-k;Pem?aNhc1en^?lsm(!w-2iGTw&*Pdr5E3Q8 zplD`&3dh|u!bP0ZiJ8fbLxE24R0YF!{redo{ps!ZG)ggkm&Yi~7-5Cb;kO}(3=f#@ zb<2-LQRD#?jI+~>hzIf=j+JTiV2@gSB&8x>wr3VkOr)g%XjbAd`t(I&d)4nj)Cnri zNEE;#=d<8!{(^q~0N{5u7pA*K91B;4-Z6ORPqG#oGO%7c@iT?^e2)WkER*ADfP^E) z^U)J54$W98bP)l@@f7CC+50SKbBju`A^ld?Vj2q$7q(te&<`oDe51TLVIImO^@4)k z(A2%|usfKeYoRwL&R+@02RTh)_%8LYMh<3{qI}F6o>OuW`rOy)s8}%wNJtxvCHfrk ze0{Hb;W4@r`^xwfpa&9y4gfwxB+DgvxC^pIw(BRY)G{K?Tw|a1q{BRwmmCt^p}dmV zg)5qDg7^;qu#;fMR&hs1(h$u?8Id4tV)r4vzhtTepT02dp;))B9-bLp-RQElNcXaN$r#P>4Z)gMp|?#7Sa3Ryie5FVgLvcRf7_PbB}=0 z?4GyN*fpIE79Kl+m$8xD;|BOY8;~_JRL&aX%d;|RK4p_yHk{zfr@^H*M$M7_I^ApB z&#@34;2;RY3Pbj*I}|vE1TudV=y2J*uqo`Tf96ZVw;^FwC~P!UpXB9PM-7mKAk80A z4!)xfZj-XS9A?wBA^a<59vs78!%>XrMR7(ujLwUzb|agqtWp#rpO8%eYz!?OrFN~) zXMnrdpdat0dC3&+IL4QhUY=jM~oebjB7zT z!E-X^W4i8$vmh%*+m)0#DeK$6=y{VQ7z*IC0Q&8P{4_vLnlK!JiK%e%?Uaw#TF%l? zSes0FozY6q_6LwnHRVNyrXc`QXj(SDw0(8urm!9QMSzQy5N=2?flyjopD@>_fJ~y3%Z5FrN-8at3ZSU|6~#w-Q90!1}>@{ z+G0+)iLdM+JpReg!b~EaTooWQNXy;aA6UV4XNxB~r{F-P5pD1S^7*!QfQ=Azo_iqI zQtpEQohoRTLB5u}btpLtkud~sVF^p>=cwvp<$q)|iM2^Wf*&$DoWs-uwV3M+4TY6+ zI+8x+QeQALAl=UaNqLP3!~I+JKz1qv)0=z^%6I<3BG+`PZ!0zf&w{Il zeoQRgD7hkss(pZI;lF}QzlkpSB2bMgqJcmaIUXk2iv-1s(0dIB+ z3M0u?kS8L@;1Fk$SknE+9l!jX*>w}|t83fADUKU{4+Z^<(`VGAT^^G*obLr`bFjZP z4_+@;qV+Tt7USwlZxJ}Be~l>r#aR}Rnx=BCGJ`#cTSWqq!I^eS6d+d^ZW5?^V_AsH zpWwX7Iv1=9F|pXZ`El6IL-~eTI^h#B$7lkL)1hilRZTm~#&W;(TA{<-uoNHf5wG@n zGv93<4FfSzOK5HIO3AM~;5O$_Hp^H{H~f#6y(i2BW2s?rQ1?WPR==`5b3|1f^jbQ^ zlQ^W-Yy#kLyRFt!VVR@7vjwG9^hrh^ClH(&9sL%$qNz#K-Tfxf2!QQUIvKfeLeeex zkF?c+mE-SOZNr}?Ry|HQ-eI)i4vxm0okxN3UhvnE{lGKX&P+KD7SRB(Id&_VH#-8)^v%Z;5)eC(iTyY1ws`o zV28IRN%r1U*aPyL^!B-`x^6g)f3Nx)XurvVsfXL?tFz*i8fl?OVIJ%{zM!>AX>BgEdtGSTlY=(WL+eC2PiC)&D2g>lbc;E zLi5yZUUpS#w5L*^iM3t5;fv)wz=@6>5%AcB(IBxu)Do%5c4ZdPzM-dgCE8^*XqLb3 z$}%$%*4S&mb*}euvpYnTwNjXu|&WuAhQ2!KK5wkq;gT{0s}K@eBVy4E)1r8tcXU z@L!J4CQR-tJiYC>3vb7-^JMV6i;n0Fv*p4$AQ_le+i0h<2b!-fJU;_qs)EJ=F?*W! z@1pM}mS)nh;8+nV=Gj0|(o@<&)zsrph>KpC>7rMSlLhZbtTE4x+2{X(^Jrre2<}nRV(f#gc>QB7Drf3g^HiV zDItAL#^)3N%WxJJ%+^r8-WZWzE z(ei>uiK}BmXn_bo9f0wup-4bLHBR@%J~ppVYn-euy2Dl+XnQOxM#CVTR}{{hSXT~$j@^~ zJPil1;-Av@swM6h0YI{&s3XjQ2}5fb+!P!kF((LAyh!}&uoGB!`~2>Q(0_=3-X$pK z8cgj}U)$GI8JrUQ>zO&3KwNiTBC<@&g$py|d%PSKQ$NzR2B175LY_q|2cR^~&9-!h znBIKPncjhbwsWUqXH}Vcxvv#5`#|Nfh?0`W53Gz)We6;9)G-_?tj<6tbK&`yzt}Fc zZ+cU4NH#e%$MRkOH&+B4f9tJZ3M@%mL@#p$a&oeqsTi(|^nLJFAb_t=PM~G*&ZNUh zV7zF3zFT7WEgHrjqLwBV!PN8tDlB++5b(l>yjhb9jdC5JKkyp>xUEwjde@YkNAF5J z>A(+ehkWQ!VY(33k6YJ@>Eyh=&-^M5oJ|HdXd$d?#+JqE$yr|5jIe?!F_sk;iUcEq zt9WgYfeUa*Nl0vz7D%V!1TXpSH2HpU2%(@^xo?}^KW_AZZ(Kr`aL&@%1Xv7@gCc^e z0*zUiMP8Nuf@t}`Va@R$eSV+;dx=k-yEv>D&gaNs4FJZKoHmzE0pBazm&&?jY*!I= z$dD@_i2e(!vGQ2VmBuXnY!6}8>sU|K8;ud)BZr%A5-G=oS(C9{@z|}1kngdGrxLI8 zSwVC2@=gnS2sjMDQyn-NUjyKzJ~MV*Y&ja%+~k5z>tE-ZjV(!DH_|tGp@FY8+^&yR z?CZ7hI;xw_Ym6~IS#{3Pzy$O@%-cGK8nuRCSjt*LD}Ya==?09&^`G9?uDG9D?O41n zDIFC**mW``?{D(s8Q^Z)1Np+`oloRPgH+ZpUU$B{Ui@deLE`dLpCcwFCa&54RHv~D zZ1Q6s7@RAw&@yuk=}5?Mti(|g(FJ6w%_1#z(sxAJ-Q(u+;p=} z?s_C}cFMi8=yvU%LZ#omHW?klF%EMj=NNDsz#o(_L*z~f#7wqPum0906XB2V z%6GOvgF&Z_H49v-AGp-#CY!^Y6}!pmVrx~PrsBgNe~rKJPa!g#il)7I?>*b--0;p8#G zipvAzHmj>Nj^k7^uqEPzbFEHK=e@SAW1eFTDmdM-$W&W7e3Y_|gxhQpa9F4zTCQ8^ zk9UMQjpXO+UaMc7&&K$CPn{NK2grlJlAqmQy`qO=Ka{w1Mm&>hy)5#Xc9sla6=*!# zN(bCIW5NruJq|cu&`%c=j@mXp!^Lm0Y(C^TX+i&w8?WD8zXR-^4C8ncCW6{7urIh) z2Po#58rA$Ln4Ua&QqTbSOu|>a@+_z59cF>>F!0_T>$?~08C3lhTGYM=#REk3CIW- z^T_0DH9z2KO4{tQ+q|DzwOtP+iKs576$W6Quwy=m`9a;Ywbu=+Z7!pkrzS9+<5IEs zFKZ(%?}gy1Y%X@_GSvs@Ak!jFx?AjGxte3U72TID9Vu{L>OtiUmG-Nn-?g-_(yAS1 zao(|g%VKgEv%WX%0Ku_Q z;6}~sKe6)2d7~*Dedm8?~hnXp@WU9&T=6h>a>&tCtAVJl4EM$>m+lL#Y zBy(M_!p{b${guc!`WG;uJ_FXsKswDy&Le!byI>a<&%Pc?6b$Tjiv-^p=`vjB?WMCv zMiBP`%zWpStlsY%aoLa)E-B(U9~;Hgj5Z&Trp&KVoDq$7zmGT_I5D)}k=={1E@hk^ z`#y*hmzQkf@5iS4-u=EMyI&$&pSPMkVw1n-k4-=4@x zimCg0w)Us2p1+7#cB;;mb!A=h2> zsBRIV+!RJE2iObG@Bkv{FXLfMnWqH1gk&u|OkQWnhrOCo?^l`!JzN4;VTXO^*w`+L z@5L?WFyHwD=RvkaAXURv#uDX(|0R&MI)(yGosYhZ58w5Zth2&iul*9)4_#si3Y4-9 z`Qmf$nJ_hKT4o{xQwu?fg;Kuuz6G|H1f%2SY8)#w*PkKwxzr5uw_&Gs^Efp^-OdRn>n{8HaX1)u1C2Nt046NcO(g>*Nya z*8&W0wjW7T(M9H(J7QKAf)o@nh~;)~G2+yKDg)g&zsg;jT6|jd;6Y2qcVl~@Kk>lD1#gAd>-U4* z181C(D&zHvB3gj$D>EuH=?GPFl>8*f2YP2HoILl}y4Ka854=c)Hi%rHkWh&@(+X2R z(2ahagtJvzp0M2Av$A^6RFv1s>rlbt@a%Em(`2Q2sx-jS6A>EjaoBF3UUyU}?5&lj z+XAMuaGdX+`RW1BtDK%sA?19LTHAI$>E`6vHg2AbS?L;`$+piBJgIm+F?sImb1Gpd z{M?jNuKCm(<4&+23}j>h+!HIEZP%)Xr}yTXps`Ffjo8VLQbKV+1v%kLi?BIMMOyJP?x7o&o1Vps*a@*JZG*#0JKx zJ0!*6!yTYy0@y7@gKGprS)Z=P`gn~;*yeWcGZd%jyU0}WYrx+?DD{5tyiqXLL^_ai zH{H}!_$!h0KLC3QLQ-6;a(mC>!PM zggZVEZ6v+6uXqHO)yjRv^jZM}Sp$8sdGst zXeLKcCup=5?h@@0^F4=Ri^qKVJZQJL7GQU{TvnW@Cy6^i$xZGm=FH|fqsF#ngCBr( z7_tT|^D_J@O(A;Jcz4@#?7_4Buo)fL?Wneh%+uRL+2e;%t>R3+{nzc#F>{szhudp9 zK`PIs4v;yYJn8>FGWh-YcGjOrO(AIrPFS1Ee#2om0gEIm3&!K)<34hx;CsmoN9X8H z;AbY7pVW=!HT)eCt-;;{ekO&}zPP*589VfhX-;RI@SR~t0fVx0N%JoL7O?UPX`Lh# zr>16KV|4j`Cv!zFIuv$DWTU+&2oR7%Ei&{midx}Lf+*4B^R1uR>aXm2ZXI%8MecIE-o{AQ!lD|4jc&x@;1)cr*% z)wP{_e*syczpWagkYW7z#AjG3s#poG_Ch}E@CGURQVtCo$7z%r!%6vPNdwTILCU}5gy*dqNcxc3OVG`r47yg;N z8nKLsh#ds5vo8WZI+D+%`hk9f&_!%|=u(cW?4tKc+)rm=W1SAOzwziowR6r!o+k^i zbfg0-ooU(PaEc+z?wi*?r*(k6_K?>xel?3kXHq6wK=@@r;8X>ndf*-#W%k4^)Ju#| zQRV@b*?C>7C2|YUCyuX02+FiylQZFb^YQPPfMmBcUQo9xU=nCweLIcum&HT?ojCb@qX3q@qXOkPty9+qs5eWD)v3#2DHW- zeV@*Yo}_(7kHxlFgSN{pgZn+DH8Y%5(P+D{r62MFNlCpJ4Tt-7UR~gB!`B+tDmi>t zod$QfM=?wFB2LbNER{~UT%6ft06?*Yif}pFuzN&T?S(~k?($6fiuDDP11(2vmeYB? z9!6Y$hjaqDmKG`ZeZFZ9kjL_w{W>d%1>O(G-C{Bf#bGobBm!=`-&r2?od@z~yC9&= zg5vl8eK0vtcYAVH%n&(!!Vm`GoA1Xe6w8ePewl;UzUJV!E7oWCXjyXLJCkIS#^r5^ zIh$oePZzXFVV0wS)0#^X8?A{)bQ zgU*${g8{#*^ov3|fY!*-sc{->+}~D4oTaF#*{@q$2=ZmeB1WP{v;E*&K9gnR_c2vG zHka}NX1G*7D*!EmSRu-iiOTR8b6?dRjZp`RH-EP|Z%d6k0!qdIq|FG z*v$L&l}Y??f4eQsl3;12wc#|C!rUraYOB`m`LwK?NSoP7414>M+d?TSyfmB@Om`cM zh~>Q|yiY++>n3J%3vdQy)3jsy{8#v{N41;Otml=efGNt|#Z=OTXCJ*JKJ_i+=@lNSK0CA$#rJN-vsLi~*4K z=8;)X0_J=@AwapS$o*-f`q>eEYBoH|`U%&@*OHa`otf9&QEXL|^{>I9y!>?qy<0E4 za5*wTqaMFr%Q8rGyKWvX;HFY33_gW&xXgVV9Ks9=FB_f!dOXM}3INz9gP|(`{|f zvf>zt#>}69B)=g)8DyXc=6J5^y7jJNz(5>0OA+zAk}YLZvJZ(JL+QsPFX1@bRiAAKpES!ob$6 zJOhS}C~!S2$O5fazPahGMR)@e!$<%64?ro)r^ruZV8;9Q+nARrx_ewh5uJeyH>}?* zJ)e_#11v!8wh6K6{dZo<&Ss$He;*~ajai4&#^)1>-}DW;dzl8>)a)PPTHQojk9r+z z(Z}`bNYSvQyIK1zZ!0`l$tnS@M{N?(=FhDcoHaJ$_aP)EJ>KBM^O$VN(2?+$nYnqr zD%Im|rO2n4gz(=98Be6m+St zRS>yK3>eH)oVtZ-*MVJLLK=lu9`0#s6|?Hq7v-pKamZ8ThZX*e)H|hTnSill&FojQ zC7(Rv94CKE$S~_D{uUZgngq^o5T_Dqu6XuW-}jtx`WqpKtt6|vZdu7}+=@Adc>x8H zK+B`E@YI-to>xu5O-lG_2^kDHZC!F~`AfvUWc5zQDXJyq!128`Ae?g@w1tz3bA-3v zrfarZc4!FEQrE?_T!V|1UxPoA_xFH-?Rv-nuj!SH8c_01i|#CA7g_WwPsjyi?vi3w*9_K0aJrd*n<1u(^AHG$xF! zJJ4;5JG|iRLDTlVIXX>x?XolmY~{li}&q-8xPmBIcLMCfA)U2-yURJu}l2DAE2b} z9{3h7fPYapz%v3KD=Fy()<1X)z_*D0eFCs_SpT_VfWT?+?{0xjp!1(*4s7l|0DAC$ z>VtxSj%Zsv_SAFQQRx!HMWb_!QQMe8)b+TYANDY^Mc{gEy4B^OIbq*Nkorz7BfZXjMK!IQT#x^|o=cn7(JjXdN;O;=S+vt6dagrj7 z9ru4R_fW+L!u~MUJ!lOb3 zoH+*MgDW|kRzqdw!nRtb@U-&Xmg7-nmT$*)@_qQm_skYBRpPxx0Nms+ICzZ?QUJ8f zdB@uWP|#Q<`qkBytC}&90vxb=ijq!ZojN(o7Pk!oR1j>pTI%=JSAnV_95Rz7 zI{-NcJtmrugW7eB)VE~Q;dmJRkNIc`AV-($9&>Ht^*$}&1zKBj4hax34ETdPLZ%D< zT7J!8;xdvJxK^PVLI{VYNm+Vh@vT4x0Zx@-5D?x9G&U(D*75c zafyu-UZqR#N-*;$fHd={%lC`Qm7g!~SY-(P0DyZ12v#a;7X|^?6vI0!>!`e5O0UkF zy6Znu1n0h~zb7Q;2y_r5VyQ@|h%P{G%Y0TEXe@61&<7pB^yYq-qz0xJ;0YABlcngM zH94&a$w8na!0;Vt-uXL|gW^nFFSKe8&){Ew-pG{h+;BW>ZzY1}tNdW2W_Ex>52I;V ztFAgvpkVf|_NQhr-M5t012k|TWz*dUTlg_?tDV!@xqnJ<@K(E(t$B6w9^k@3e+Oo@ zy%M0x-KSYpzgdKa0=TFwqwUrv2I8oQKO`H9%oqIz$oLlYknJNW<}ML`{&C_0d%ZlO zNNQ1c{o>)>XL*kuGmYR`*AikS^MDfEco+I zd&{KU`)YIEy^xaTbYRVt#lO684*&*V#fEURrC*Uq zn*a(dhB($vKY*PkB~h1ZFEgkd{%Hzzlc*~s4}iz{0_=jRQwvtB05ph{J(5|*G!uXo zkN7wGbAnHI01B2MON3R-D8o>?-@mp~XTc_6xrxVzI-aNQ0Ci6u!KhhwJr+EBQUBilFj*rmY)**cyE!ok zYsu4%su}#3Sq6g!x`?52o4)e4rk8~u|ds3p@l6qe3X;LRVo#Iq9t(;?- zXXS*_p3_3v;&E-!rCKZ{Tll^ZmELWV+Q_U=Z6;3&iD<3xc_vw-&t|xWSwMw~V4mZS>f z6*1JtO?8h@TZ`0i+Z%M1!`r{k{X`SHV}NCt9=5Cho?T77n{8GO&tx+XitolrJdA)R zGdQhJ?genDi>RD2#Qbp`#nhVZwfuQsxYQW7NL%+E6kvZCA6UnvL>a6WX|oj=^J(+( zHCDoir~{I0sqs>S{(2fvM${9$0B?z-7)WSv$#oS3b&_YK+&0US$TJrHjy_tH#?evk zqfeS_1$HD(i%c+Cuq&yWRGbE>yA?DV{wE~c%@)V1o7q|DBeG_rbd z6wa>AAWgi=>aQx7ynbA3DoTkef?mYnyAt@5u$6$ST3kG821BFLy+vjD202NYN>k$;vbv7Qk)R;yp>=Wq3sgFlO-I%Q^<01JmwW6f| zkk7i5gWm>r#Fj8^w~PX{opL24R^lK;x89&6x8+~zv8pPo?mJgGZ87+tTWTAgTVGp0AV4GO87Ce8h;Q(-Kv53C75ad6OitnCovnfo*7qrFM5Ce zRybB-cfbJ96X(_&8|XJ}53-tGeGM?|1cH1=aXO)fVSLY8P? z@f%^sig4+xGG^T2-s_H&V`>_9l!J1^_~7zVq%L3wRcE{ALd=AwBqc-oEmiJ&pyM0h zHVlBw4O(6Ubc>jhE^&YLV${A&9|EoFqTia-fB5CgZQ$_($IULBsWH(nW%6%NW@g%J zzG;E%sUtuMyWq!b)(SQYR!rhS5QBt<2=WcUZH=tTm$|}(Ej1wVRZD-8lxYSYjJMhcGL64Y050b~IS1vyO#o#217+?b zTOahd@sM6=VQ1Jv3e;BI5|Py4orK12nlDo73E(6P#abSJoQNBNbjegjTkg7FN|FFQ zE}C*dooV4uZ9zE~D8L9Sj}Pg|kV{xLu;i!&sOtmdr23uTY2ki#!0r{Bs!bh=-5ZeR zan!EkevABtDyUqHt^EIHM> znTXbGo_%JW76rL)8La4$LY3kuaTwqE4azni-C;|9ezi6|U>`m`7bCfcFoY4q znle!71E5LX6`*`yPImHB&qAG&xQ@(?Sx&$@gv1~cDJpxsR6D0;Ss_=rx z`~04+GIW}9*$7|rS&i5B?rU~&@DiCVa6}}!suQ@Q2|xJF0<^hV;&l0Pkr9WVl0To8 zq>nm0wTs)$)JM|NC%T9xADPR2FAJ7TGx{_TzS+PiZBl_DV69|b)V9rK&>6(C6m1$Vqho>tdYNwrOK=T44^nXUd(rtULfGir zpzTJZVzys_)p}hbd!^}muxb{Xh{ef!)C%k=e^+UvR(b^tR!g{qu?64``hrbzi*$aw zolIs$6gA)fC?t3W{9W!rdB3{{S*ZB9ho?+V6lCdB!XF29(b)=nV;=IrO`b5Q5l zj}9&u74uO)|2q2MsrwHHC-n>*JM+gFJ13iWS$7A4rTOIf*YqAmT?)Iym#RPMT5q~{ zI9l}7$1Vu~3Iz8H#gJC&>`{USvS;U+lB|oKwJr5#eW!#f@fR*5Uv7?#9^Ecbw z$2=WD&lPDDIGD_cG7Ri(9bd|LIaV9UyBFZ;aixskN zTc%XMWwpKsk1>?Lvnbz75UqEx&0vFjXz8ckDBA*a)P#h7X&5KfGA@+0>LwL@2CK4h z=tr2lu+(qv&zr2vJ^hKh7__XBn2`fJ%CCF2whS;cI!Z_d+G)Z@Z$Q7rzNK{uT&f#* zy57(K`bl-Em&0b3nesOMc2>+W4m|ec^gK63-v+mnwA=2FHvIj`fP(3%eJK3blXl!9 zH0~f+g4u8ox6+5EP*XVey)9W&6fBKnJWlm|bJ5NPt}EbIT0OpzoAgcfAw>?4@OxHS zSx!f5QB9@S8>t=btfP!P$^Nn7Zb+2)W%~{?-8+n9j-6oVS%vqoQ4eZ-wwpo+UXR1^ z*KDJCH>u8+i;L;eafxY<~0gvh z!Tcb4rq$CPb$#apnh4es%EI-TzbosU<@`4tPFI4br!HfWFb|;Tf?n*egT`u^vo}jm zlbJR{Yfp~_8a)2;XN2iO0~f6#NPDz8Ke&TIjg>aS>5UI+5rp`+Ob%6tWJA$kP%(1P zTVH*Cm$&hgc}zjBbEqlSvQgm?BRGkH)G#_m{GCarg*o33buzSFy|z5V1UOG#h8Lwx z--uO|lKL~krH8+V`eJ;!+x;D=R6LW-cdZVrK;XtHjRz}1`yR=qqg$F4td{OS7DDP^i|La z_~~^#h@%JljBT6C1Qjy{o7=5PZ($5)f%8`FUePvq7G3Yn{Nkv6u*!3Rj!{^AjEjS7 z3@KD>MnB4*O=gtX$-!%jyQU@IQP1GgE85C7jqB}wapO~j3}0(oanM)ajww;{3_feF zv${uZJrv30f)+%B(mzum`-E|_XjCuG)q~`wzdD}5btK)iUIv8Mj3F6nz*N#aC~@U` zM6Mk)IqDqz^!_+ZN|xGJty5WPHWZ!Xc&?q&E@kCD{IjJVj{NK9`D!h@$PfK^aieN+ zVo>YfaS~aCHh1X6#1*PYF=hFUw3wph&8rqm9Yd-6Ea9z%H7o1DuVC<2?eJxC>GcDC zDRYELw7!6v7h_#VQu|?qN%cyMtUzpBl42HnH(0(}UbhE%jCr!fVMUjI9m^JhL-&Ba zKM1^EwllBKXc!wKJvh4j^%=o&AMLkJBP-jcL5E7zi}^YFq0J!wY9I4-owwumW$$cm zbtyj}_>W~O-WF-jHfHw(%+F`>N!E6rwlDkspCjWu3AJrA_{@%$#r$$vCr?0C9yYES zg|l12tX4_o&5;uW(fGm3eCeHE{y+gXP?;5pqhGC3qP;*uG_B4s)Tg>FJgys1CV2 z^aUk*ZC{6gfXC%`czfDc6=QuZrTO16hj`$%6b~ugp`tb;GwH4~YkpP6u5KyQX@Wd8 z>0s%~`ne`(j1Z}iJg-tP``dl!ij~5CsrycwH<#=2Qt|i>^HbpP66OReT*9~N#Wx&k z%EEXPRyn$4JpR+=&<>mZCx`%eV=0D6-VW7$!UP^7qZwPmHW5JiJp-5Vn5(Byf zWFvKR|GIEG`D#lomCc^nMY5`^zw8&YMP_UKI7(M}Dafo6lA>24d*?{@uUC)7+F3<$ z1H?GF;G92RyFr%(HkP(YDNY6j$d)R<5dMD;oS?jP$~U<;bHWNSuV$Vj2`U)x;$#T~5~(Bd;-LBznI@EmCTIWl=kj~= zxMO(TONq>|SIhlMyCktNjn7lV1^1zk`D)j!H=Qmvw9t=0BHbr{qOwfe38i(m%Urx* z7BQN<+p9)bU>*Yb03upmS9?6c=-qr2LpTzAc%OW@nCtU?QoTB~1?KzZ)v^T+8x>a5 z!5zwgRL9c@NR9&5_ObnYO{@cJh<>{bS_H|U?D8f%u!h~^}BkAkk^|Ve&aB6b&2@A zwPAsSEQISLg$CMN#pfO&XQwE<3h|PXl67*0+AuK!n3T_*K^1&o_uo+r!WS51qc#MB zSR^)k@`R@}+Oe+trE(n~VZY+#l=U>t68ywCkx0S1+DQ-jdRjDVT&w!<^+_SKHuJHV z6IYdEtF%mWSTbUcEZr6*YXd|fU&Nzz!z4oO*BMEIYOllOcWg|VUwu-FU)#?7ruXZMrd-vP!O@LtgCamb%FYpWDw z)h0jVM7V^59&NVX&G~x%;N)&c5->WrA%d^h-Qg1YiZ@I zF6Q~4Co^^y_ojTLZn?M`^)HXk8W^&297}b7HahK7i9U=3;XM-b4QL9n9S9EUyrfZO zWC=JxePw0gy?K(<9SX(0FJw_I5c{rLdzIW;aSbI;On5CstKXyRW!75c`gt`p>xsxS z0U7;0F$a}UkS*2NTqN{{)KwUw)ybe8iocIF@uSUQG3VfR9%Gb3Olka|!BxBnZZ==s z@;WO2^|Sd$`Fi{21fs#325RDt>6&_VIfWsT(F)bC)dK^@pjoiG^dpuZvfU|^-^U?P zbN#Cvx#aOpJPIkX?uKU$1NzW_sL&(R3y$L#Ndm4bXD4T~-$*AGUgeWgjzTi7W z!ZX7w3y&ZMho31LykaTw3aOpQJh-m>dkM3P$4D+(!^OuZq$B7i-RvZ#^cr32fg8r) zx!-|eos2I?gY3(TzwMHI&QdR244I8NjrVMeYin|2nN{`3()<8&XnZCa=6Gk0sy3z> zGMmHJsxd|r4A{gf@qHxE);3QT-DOovi!WC*61#B~4!5QWUys7;;v=MnC1GSfv#PNC zen4qBFuTsWL^hXCqr!9LFO^v1hBM_ICH#aD;NRqV9iU+t7v*Ui3vAN|PE(@PgQg~z zD+zX1m)`_UI3H6laA)bw9|3kDqsD4x2w$6x7&!<1kYRrCuFG142&rvmtzqTKpv`={ zAf%r(c`c(lvYt`O<{6wPH|g8aP*Gb}96Ke2i%raD$Y_$J&tv?0*j(|Anm%79G}D{` zi!P7QghYL~_!iBbKnV#Fc?pA8n4@pnRlrZ9R)()Ar0ghpIDPRMN3&&d?6(*U#2CWk z@xeB82IE*ahf%%q_-&Xl7Q_L2)XD)l;vP?#AkUHJ;KHUK5y!oTg?u3lfQ(=Z$Kz)_ za38!~%comB{fMZLrUB30TtL++a;FQ7y}y?_p(ZvWvCxA(NX_q)5SrkKpQw|-(;lSr zmq0O6#QpF&skqh`S#8;rikJ!h-*dKOZT2f;4)7wd*jmjAwOs^+wK0Jv>bf)%Uu``l zB&c!02{5x9UbYlqc87nDVwTm%{;9$8>xwaySy9X`&ItYUo)fdGXVg zGW(SU3@Nct!;6n?i6y&mAjo&f%{M|M@MQp~k89BxrjEhD1N~Ft}PBG-((pCKQhO2}_nL zBn`AgQ-N%hssVK?CtYeFBl2E$Oi?+ndm87D%y5XfHVc|@|#VZjMZ(y zmEs&;5^vp@cK3f2sYSg0M1^w>OQIFC(J~u}BzGqbn6kzVzJYNh-yy?UZPqz|tB#FH z!{u6+u`KTO2t*hA7ENZ%S>fgXf&E@n2b;aMK0@mFENn z_9mdC>lEkM7#D8v8PZ>I;ReIj)u(UX)>xDF7|7ULCyx~~uTgBZ@SO2(1nEr|kRUFG;rp!ULN1>p$SKQ*HmTQ1N zYmAeZ;9hF;XXtK&--}L$Qj8OpRMIACeF5ddM3avAvyq;q9HQ*Y&vSRL_f~^76y~9t zyG|OVnHEL!xwT@CfIEC4fa6?#yh$YJXFMS&GKa5uQ1Hwt{7I6URnfJo`rl%9C`Z1E z+01-#5~qu$%}Px1AdfX4WQTVWmkqLd@zR}pYH2`Pkp0!bd|Ar$M@dt4T_m4#>ei=s zg5hXDxr*slahJ_H%-VZ0dmINsy?*prJ5EUd>)ee?^KJO`;RsHCYEFT`4IF)NrE-bO z-XhZqdy0Rr!@Mc<<6~sD#i@QAkIb>LM0D6MVOerEP`@4rA6I@Dy1hyieL8dHt&f=U zSFT72?hvaYm-!oslw4|?uUca)q_Q_;PnU(#V?Tb#mPbKv+<@_k&J_8rU;kbLIWqiN zyZ2#$otG%S2@|@y;1C&H~Bw zZxNASN+ob9|IdHOQc*gRHUbC zRga1NQOm{HB%=-=1y5w=9$9-1nWS{J(sK0T59Fy9TTP%D)1v6)$AM6yCZ;;C!YEn1 z6)o3R#;R95uKxgEuE7hFV5UKw-?;QJ60!8#t}*qXF1(DkK5LvbfR+^U>+db#T!kwn zYoVb<1lNm$KhM(7w&jcyKkoITGHJnTCqL3vc^YwMMma3x4H3-{|8~^4aCJtCrU&N7 zs4guoiCM8~?>!j%(}-h7`uTG0jJUDN)`~mR{V;+?pg2+UfH+Bkj!%I1D1+o=l9vig z1t~4dYZT>zbU3u^n2q8&o{OKwl9Z?7oNgaiL1`^JihLb1js4EH% z(r^6EOm>%JrT3`BRmZkibqO4J40NX582=e6(iIZw*iz5Oi1D^aQif`GzT;q2DH z%hMgqx)tu5zL5wOc86ax*LHGb(5h|s-K2DP^)ThQhiJmr=c_1M7V?HF9eYCA5g$ax z7>lS3WH80IR;An#{H3NgNKFzYjvbd zE%7oyx+x`*mNRM4+|X9UkwN{uX@EPCZ|3H^J`Rb{E5=j@YpLwp_EO;S80Z7p@$<6b zM@5B^UtT~KMXaNP!-dWzb2ui_T@e;(VeIqXN1O7SC}R|@e5C~u{@s!VAT&vZQ7Mlg zSWn~liy08Gliobv#N*3>?xnlfX|H>j@cW+R8evfFIs4nNBwSJNP&=1$&qcVCV?qp* zAqbb``fnU$%=*NUtq1fBLF1f5gj!}kC{PC%c;T|0P(YgtUXMb1#7vK=>nGIW5hV>% z6_4prnJ{+>CbiVK4=e!L1>86F??yI#aTS2VQ87X`)j*F3gPNN?zW%X-)fg^g+;4hB z%-4f>5xzDC@<&WW+b0+wch)>H0qkLTk!Ltdb3+ttfChwDQ5p{2t zE{wrq$SDxzA7wb$t!Mh77U2n(!6784iiV!S@)4Ad2<^bLa%0IwMbH4_%}bK_YO#K1 zygf{8nlN{;KH?AU_)=3~E zJ;1i`PHkC+ipfnM76NUAb=7#sEOUQsM*s6YYiYXolR~uV{-^C}tAN;;^PK~XFFZHS zTOZ9|B@=@{zvJsH6(6bu-Ev?dznnoT>Gq4a3&4blbOPBCBTBAE-WqH+X=pmtgJ`k< z(6~VQ4d+VXpm}~nq;@y$+gE)VKS)z7Kwccp8z>?q|F$$go0K6jx%)i;P#r<5-G2GJ zkCQnepes(CgT+Czp!v7sKYY);+GbRt<9I7^uyxeLV$wpiWgK4tzu|+YoMxKrtS}!R zpZyq6bUDZq-fTdn=P0Ws2a>Uu4ytvc78;sN11{>W$r}V3iS5_NUMIJPmzt7Iad=YV zg%T&u7?54?CCi0_X5x9AVx*oRmbEY&@yEorc!GI zpnxqN&FFAVuP_J>YEFkPq?5GL2fgT4q&IU$z~2b?TO?)lNWThjfiUiXWJa35L8-JP zNQfMR7p6Bzoa%HXg(*gS`WnnGEhyMQ{_KMTn6JV?P0cm%`Ql}-N~wVaPa|FV%~c8l zB7mG#XFcG&FwX@J!XPl>^DLk|7#OZ^4E#7JjGeh>gjp-@LsW8FmIO)0%^?H&BrMQC z?rA*7lKg|ik-9-xkx#iF@^Itu#|e~cDUEhPYedpI5ZQ)wc0{dLUQ-cKn`0rfEV6jt zB3b(D@rOv-tYk7(xm77$cv@P1@y|1meJqYj*p8z=1VN!!?P#1IK9LfejR?xgH_wnn z6%^!^7-%M}CQQX7o^0VR-jEJPVyc{nuK}4%QL{td=dn2JtdL@5x^hb_-ruSn-*g@W_@a#dU4?#@%RJg_TzCRtYI5*ZYp5nD5(6TTgI2K3@h&NRa8H z0=%fa9o$(Nu@uWV44MU+{IB7ld~r*u7>-gbTtAg4HkpE9Zq0e1GjC^NrPF5>MmDHI zJd;GJI7Mk-SU5@le|BNDw548}~`1e}U$D_{VBPlL*H%k#&r^?*h5^}p*2}&ye zMyu!s%ax5_s{2VI?_FS9zXWKqj;i24!-=w$6@1P2bDGFnY@KH*Jv08_n2mM*Fx=c# z0+#6zydG>R(3k)ApJ!N@G|QAld8KC-kh_w+J_wQ3~S1e{YHrvJW>`tEG3 z;0<)UJGnb0?-xq9E)cU^L_*FxSZw+=44w0<1U%0$w&n*DR2W!aNHoeGlD{`#;xO#+ zL;QPG;8<>YE9~C%;xx`)taa2x<)E^d8D0jZu)&PW^&Ufj{ z>#h02+f>1imx9cec?3@wKV8$`b+zhqtCix~ieL5TF6NGshFSO&r~?8<4pD{gOUex& z(pn@!|4q$AxdEjfsK?$j_~j71(xqLqs|%O1#Qju+mEzx#!sQ`pd{~&p;AIp+ywl9= zL=ycHR$$uE{RIkH@9jd^`)qM**kuXRE&yGAXez-@j;(j)9CSJ{I@d^0#y|J)V1+pm z;tiU@`M|PMJ8~fA^D@Cdk;q`aX9y57zO3w~CWYl*7N)`$Il9CD;=6raop)2Fyq6mGYh zIQT-|_;!Ksn$CQ)?MMt?Y(OoHUA0Ovqp-BNnVi4@}9h=`r>&*F?yiWhsVhMwbt;c&P8_HYpOFuZGL0!x;#X0Z@QnCp7)#fkK=Pp zQN(u=BoyEbfvuK`y2s(m1hlRP3}O3tjx5mD%b98*K7MH$JG*BKeq0OsB$=fB_W8qH zd7$-8eUkX_{q>U`OY!vD(*XT*Y$QCYtLnB7S{dI3o#e-)nInsQ! z(iTt(9~xpWihbOo#i+*=yg26k#8j~=7MZAsA=E)#kj0CS_vQD}iHV7wWOzTW1b5pv ziS)0@^Bn0Ec`r8E8F@gKN)I>Np&ADKkTD_BKu0GL%Tr|b-pW82TUmAJna;8ldtHd8q6%Qug{~@%jd!ZFVT8ZPM(s* z(4Fk=tbRPY*h7sL>J7)H&JWE0j%kS5a_&JMh%bO<(2=LB(5+9WmztFpzX>Gd;)RI%BIsV|gDH<0Pot0Xnq7|Di>mxv47oI;ddrN% zBXxZie2lEZ921q^QI%j|LOL*O&B8hWz8#x?K8Y9RKQgKV$mm+pWFy>iUKT5<25$hP zkpz!qZvG4De?&5?tP1m?Rs?=)TL*g7=V3g?87IE&mptPlwW|01gH~Vw0V%QX4MKQ& z}y1c;a+un;@lD<4kFMkN2KzpB~rIbXP96jkrmrq?KhYnGEI zc87|~$6UAe-{T*n+3#JqT8gVL+93!j|8_f?(0$KlL*GZZs~x;unNiaoYPsD{%SNbQ zb0!;mkev`9zzJ(UPh#E5A2ABQ&2a<}ddjB1W+LI@b6d>F5|2ZhUR9JTp%-Z? zOhnET?B0m1|+e1?OO%y$9>K?KiFsbxFwC)|O?e^Y{h=_T2jn zJ;7(Z2M#FyDQB;zCB>g)+qk0}lbf4D?Q&IDQ^Ku^wzYZGx^FjK-k0zuY z?YrELOs+q$9k#Z1xgM%cx8|0Lvu~UwuGQFiv+3ofy-iW0&8%O8)gAf%*-!4q;3Uw+ zBlPkI zpp!84)iD}tG(YzWttB@W&99{Tn5cLM197;^<#J;t#%zU10W$X6Vz=vnkUqYx^J+@q zZ1?SYM2lb-NpsUOHbmQ$Nrze(kcvcG7ZiHP-_6taTxOErR!3%G;$|+MV57J2j5py) zGxPgvh2!QcuxnJszfZ)R6On(@|KL1`WHS^l;{%$)4p|PReS^?5l|S!`Ri~oun4X17 zCu1_p3temI)qCckMMq~fOcT7HLSB;Bg(Dz?fGs`=2=F2;aC5|=`h6M=T?CZ#<~Mxv zD3p0GKG&oj`}7et_trZ-Z;)^_xwOWxWcCH^P87KBv?lm9lV^U}s zH|qPO-{1zoQt^VZKW+e7Z64#U{;*uqsvQUL!${J(mbCjVmCxA8PNsi^1!^s}F73>n z_VYFZ%;gq_6)MK(PsyW=ncTMg8ZM)t(65o$@0BI)ltqU#yxx~vO`+G(8+2jh0nU%p zwWaz-7C-Fjld_#Ans_Bn{;^M#94)1+ePCs8ZsN2bI*-Lh@}y-dHV? z1^+}w<@b{o-5LWL53tMhODI%1@MSieDSU%A*UWOnj`}(1y`QiDdvm@7G=!n-M33)( zI*6@S6!HIYfu)bf63BA?J$v>j{{P`(wkEzhw-(Yr;?P(sZ)2&NvC5#;$I{sLt-dEX@(^~!c zUo%`2KSiX!RHvazEahy5=jESg%%7UX?1v)HIJW5Fe1D@&a6h)tQe`_Lq2}7m+uoTg z-PuR8}I8m7QjU((%zb`y@PEzAhM5!{qb#v=Cx$aMPJ##|#Ym72nhQ1OG5R`}?6~H-_kQ0y3)Fy|w z?efRzxizaW$L(!{BXfjLw|93Fx?pP*&f|J_g_H;0U+>Olj6U4pE}?iY{_6SeUdBg% zm|meJYqeIFbiO!EinNCJk;n?Aqkt^$qj|(`{1rJ&(CX*p`?AIv_L{aeE~98!x%c0` zd0RgVSrwFjE($ZQ%w3X(NGd+SoizmOs<5`*pYz9RXnOxyE&f5SL>>g1s@$rhvz;m@ z61ut;rk={i#dAMy%U_&_i;umq_Jn(SemN%2&N$iLTwRQg8Gt5uXmN*mg1zXaC+h_) z+L%s<2*wi-5@-9xm2*SXzAd09@Bj)rurFqrB4a^zY}9r0H>3PL`E|@^;z{9i?2m** z83b5f1_y1P7d@ENV^8dPUT?073AiLqb*G6KCASIHXBCVgUG6t1aNNW$p<=rj_MXCT z&yLgj!H!1xo$e$DPhr=5l&l?xW(cY>tRcK`W6`4whI0 zq#>f6ItWj+3Y%Yks91!ivpDCn&JFFP@_1d|P3!0fl(KT!OM-1%!$mrO2PQtUM=>(m zc>C>auJta5fY`As`gN91F~6zVU0;mRE7o6}bmiBUil0d8sH#RREl&GxXC(+}jZQVy zpRM_m3BHJ0o=h&s%ggn!Z_~v`s{qtv#_|a`tR9m8oDMkNn zy@e^y#CRWKjU>D3s^lvIhZGaeP2m5WAG9sN$CT!ezPYp{xqUZ%H07+!RKX6Lcq;vh zBGO42eUclOq9-M0go)|j59T1yHbtP8r59*#N_Zcxr>mUgO_OpJZyMu0M@h-)*fGQ< zIu7o$aM?OlgsIC(OB&KRjddI~9FrI)vh>`L5FVx;fLl}91dg}KG33nIvdyB zS0s#&DywV!;N&mzHiEeM*|>YgF*(qK)P%8=3g(2Rd}40nM4KWig+S(TL|7;KmApCS z2*)_G(}0SYq#&}*iCd@L%w?FJmpVk-KcB-d3iKkB!-0rP1?4=caYJu^gOKa1P06{j z$cPk;t@UZrzTjU>PrD?a6g7eQ93cB=s{LT+DGT>{4=MUSTlnpY%I;}+&{W=w zByA)Ft784(L{b+{3fkrV=6N?a#f(7%326t52Xa6d;}^apl#UeQi~hP|CaeASVuqHK zsP=Lkbg6J+lQ5bhl-lAHW%k8w9kBa-v~N$_vgk0{8^8|RX|Rcjd|R{I(os@J%mH8~ z_eno8xg136T!rqaXy;@jpQ<#4A<@}1VOuG$)xz%jQ?KJdK>Y^kiuvsZE%0Z-VO{0$1%*2IrWBuErsTZCl_6wQ#y+6XTLX>HmJdC zUEZSMbMv!mTJ`Ud7&V!Eo-h^r6+vShSYY57jgzutK2zaoaHgm!*@W_F6C&r7m65WcNMe4$j%0Js&mN&} zlqqBtPwkk#JL+y&p)a8f??bhbu{99*+%~$Px_aW&SUF(9933Am$J|Y%O=?dUr2tiM z$e@W52p^ZppjjJjnpf!;-W@QTWnrG)+#j@<%bCL0f|*uNv+8eRrL{IGDu1Q8(gN+r ze!wd(L9LQJfNFcdMplGPAv)TChly7u9yE<`DM^Y8Ltzq~J|by@J{%d?s{&!W$hAN2 z9v3GOR4ZsDA^wbm)skUbGq@4*<&QAsZS43a34Ik8trFN~jhyxqDp}>19BO+yzwj5b z6mmIoe-Hri9CJA{HS_rS_1k&eR<*hyy|o$O!k#E}0uG)JWSSlp;_U*YzuGw|Nht%w z?ge;VveaU~$_j&^eMcgXa}R~Jn--A@>6zoMHtF@U*YXbbZ#N@?NWpX4&=yqTeT;idzt7Vlcchr8klVPPQrU4Dg%QPT&y9(2 zrx~*Gi;u87dho(L=P7?G${J7q9S}?%esdhaP*rcnY*yqbvL~bE)kCg==La%-I z-aa(%hWy`07ktODLU#8w!zBhrRLg zx_2NWY$&XokF$;sdH@)cpw8sVzf^IbtgS2z zjW>QGvnLiOC2ZKaP!mACBiG|X?y1icYT94R5d^3%Lbv3 zhw~p%>;MqpE9S2HJWutxoppIUG@^9oI$&}5)3fOX(8y{xp{JSiXc-ME%sCN6zgdd| zMqCS0YB_ul#!mpRk7q)C5w{F`VrMoMo%?$SwCeTr@OXdL_59#%Pb@yTF$u))yMrQZ z?aluZArws9)Y6ESn~!6Xn5t~{lnJN=yVHK->t%l)-#RZ~zC8VT;N|gAVQO(iDh|pA z(k@R!#Op{NQRVa~Ivi2!yL}Z%-GLzW2EgQ|6|iGtVFvU5MM563M2Azt#q>df)Yzx$ z%ilY&xD+rSc+N%^k|cZqBreA6W?4@?81I9aUitAw zlHYMiP{SPncq7|}iJm_KA>y#4JQ3*8KZm0>;Pi3q<>7XG!R&{K+><06x>P6y$1qzp zl=@0nw~7qrrO}g)bB8ez%;ECBl^mEqw7YcNEH1kGHACc*9ZE z4e`22E;%FFect}vLGQV4lHd6uu z%ph$39O%F=A_(o#;Ea01mqov@sLA&sFk^R!2 zkux3=ioXA1A&UV04G5v7EgyF|dHiR>;Fj-EHg6~RiPiv<=-%n*W?h#Cg13Ene#MT= z2`x_``TGP!^KW-^A%Nkl`zy^J7ZbSwq*2u>u9;{U_VZ4+4;ghka3^`~)(>!TAV8Xo ze`z5ITWav{;btleGb?3)>Tq|C9;9DXNP)WOQ*l$La@@u0!s24IJsibyKj_7$N}ViZ zAw%I)is3%%5wcqV2!|>XDZwL>WZaka7XX!<09yR+ILC#i60vUm#vlplAHXs?Z=sUT_YXLKlST^CK;0jTfp-xpLL##aNY}ooMcJFY!H!Ax68N~yiUTRZ zl<8?KFxU29K}ceD$x-=P(omr?tfukTNq~Avz|YQ4V#oIAq+72qF_Cb zbRpJ{2LqG^)9#BlH*24PW`pJwbJ*#MY$M2Wk1<7xN>Z88(Dr8|LzE?Q_Y<$WFKRP4 zZv?7myTh|SmX;@_2D{q}_LYCqJ?co`qyb17f2-|ZBds%uxfJzb$=s6fh>Zi>sn1G& z4KQo^XuL7dfH-yRx7?~bpBXWohtShe!v_8j%HBGv%CKwqrCYkB8|m&2>5>qTMnbwv z7u`~ekPeYPJ}t@4KK(SbkMHVe6QP6Om-LT1>RawGh>h#bSW?*8YjaOjK3^ZJzC4YIy9U|I zn3!*qBy=PxGX#^NMK6v|KKLHd4aJJ)2FDrbXuZCl006^BVsjsE^Ia6=Lz34$aF*cNNcI1(9N;?Ylt`>*hE=voqk8x*z z?bQ^ISXf6hN@%529#|*Ej7xA6?6It4oo|n7!kCRB<SdG2TXWdc*}Pmk1`AHU|L&Z^2PbM ze@Q+jou8$y*;Zdr4$xfs;rGGV1ynAKX3GfHTB==ROcmZR|wi!}L8+xXNfP$(n%HlI~=C z-{GYxI=|C&X?c^JD;)D+@>4Zh4csWu5e=$ku4Xm)=UG!#Q-^!pzA=k$O{s9-s1*P% z8;HisEj&Z?>BPpiWMwNns&Y*XpS|g=o@h{tC}ZTx-N}4kHthLX>l#o6pYj-+=9}G& z@XhKobUhuV%v_j!M81}PnOkPNoa+^d042b(!xE)b)m5l!>Fb0NMY)gbn7&syLqs^12DeHxx{GjS&Ls9b%_A-G8NNaM z_NXvj4WSa;Ze7%T0fWsB-|`Eq)D(BwI=UD3D9RJ2JyQPj6VI2j+MZIX;;Pm$gCa#)n5) zV7g>^hQcr2p-V=YR@^sKr>=dY|E!H-$jf7(Xe0YiUAHN&VKi}a;_$;7(>reJXl<3J zc{nT+sdT-amH1#qp99SBxj4V+3mPsih9U=KSm-T(G=2PbZw=E1Jce{d`H5=TN3B0o z7&Zcf!>`r@uqQ0F+)l8EQ@}}I51n6t3ifLY8c(SS^e^ZFK8S^u7CR==;^45duT*Sh z5bgTiKk~0lRF?Y3yB$ieRKcrlS^R@i=QGl(`cGPlHoO0f05-+UQ#q&a*d*u&+O=P! zt+lk!MZxmIk6`B{8;xdB6+_;E>EeuwwF?c9R^XXV`aht!|BLkgzu?@AE1Gdm zK$ri|iJb4=`@hcS{Qo|r|DV4Bj%^W59WekrlSh$NxzOSy)D%|!JJIub5dgiyuhaZ? zK_bh?i2wioe#bQ4(QGr_#`q*Y4-wxN=z$;g6knl}@r9}gh?B)1Kx|TGB~06vvkP8+ zTg-7`g@n+h+390Ee0s_toHLQsb}Za9;8H%N*B`d>z0|oEiJb!cP5O+}tub zzu`i%5F`p!`jP0x$|W>MB1{8lAGOGf_4WYRoZhKY1$m9&E;%{ay#if7DNf^kHshe< za?8$kM2e=a*ZqRyv#Ob5=+hY6yX}Lc<*&3oxG8MFT*BjrSqL}+sz8DUGg=P=XK^|U z*+MQgpw;~M^WF?%!1Vj-v)P{_k?Juz`FaD4v-7>_$^PXJCjJl@vY6HOi*PRq78BV= z?z#z7^|O5s&xz>nfmUV41N5dv^^PlMJpHd^5c2Cy?_+*@?pmYYt)P8`nkW@%O^hp-J5>T-OqzAJ zHG~zOP*QGCkhJ&se3tuYY^ie_`3u(`S!=U;Xbm_cA*u^OJN>c)mPr>QwhWN0%F1g% z<-#Xi^PJ~@!@WcU@e(IIl0+OI^C10hiA<;mpkHqzwsg1$GzTwp$x$ z(0Rt>rP@~(qgFPAF`S7E&8a7U+@%!Ts%0xbv=EA>&Kh_zAPEC@!6L)`^PtjrkgShDuTjqQKNYLDL;kjKI!}q#Mn;S1`LG z<7LLx{BOE&R{gF#0)V<2KF*-i+uPfCh993L<`xMu=-hBBS&$lYf1`GavOEqAC!pmS z4K1GcJp&lF`R~Hn7X7$o9KirO zjCRLv;HqCdwGm9lfUxsrbz!3*m+!Ne#&EhH5i`Hv2H}QjAuSTLsby9A@bGZ=*DNu8 zL9d1`Y`4e}^&q;kn$FypuTe5Ym>;&Z^W5L_K!rsnr#9Zf=@%s6C9pS{)X1!SNXw+a zrBKcUTAIG@P1!+utxBcmVN}H!W_q3*WA<_CJQ5rE3kS39gy|;D@aZ(DvdSkmmID+C zElsQ`1BGy3ZuM8XnyWO+uObyP9M2G|^tMO$x?O$Akl)a&cHOC|H%@(6 zaeU$9 z_9FQOVPkLs8E(#R@jP;G@EU+7j32!fCOK7u)TEpM0!Vo2&8GBRiWXDfJyKHTWXfUW=nUqb~nSQ)*a_nJuchI)gmgPH_q_gYcaD?-uK+UkpitmiuA$EMZx)wCQJ`8ZV! zl=}aSl9}|jD(Qq6LpG*6v_=OumU*$<)!srQmPV;`?sqk`7gT`+Am-ZmrjQu=!}GD z_zd(iiZUMM3h`I86}%=YAuN@dMnp6VUXHsY zEvo{1~>PyM-6uIIxe3Q;J#^gxaip0*K2A@s(6c) zD=RF!y(b0SS5i!XX&*n?jVXv1oCZoFvf%#EmB&rVo#^z*zjkCz?SXM_lnic2e~7V? z%|SJa=lxID2t|QBe0QN1Ld&FC-shL_F$nb%9+X5R z?eyEd9W;KXqo#*9{qnpUtoWb9DW4Vv$U8i5|Hx4WsjmAVr5{7ig~DBdEr!r>vfpmsEtS6XRf;uWC%+ z7#O5bQ3ftb(bgyoh4;et@~(YO<#rPa=^6ockj7`2E~048+#qiBzjB5+1@85z>@ap$ z&z-bI%ZwH7sbzuVW-s}p^JJ(gEqTvdKIiVoJ~FqHbkN!fzqQU&LIeTi&WR654WMHvXkh<7pRYGIdf zmQkS*8zlzBR?=W6Ksh` zL$A(U{p{oyMw83jQz4OGi)ovbnHtX9Cx4aE`#o;4D&6bj?Eei4L=7)hj*kxR+o6#S zV5e^uqNXsP04E>p`PwV=&ZshbWh1=_W*}2gKh`dkR?u_0M;Yui@%{D>BIYxo7E_z} z%HWA_1pOd&Sq6%G10&^^B!jAaj$OBVROr;&=e9=qc>DJ{Z$h#=7Wc#7a=%Q5yFq~} zyR1F*t$tXW85u$U5rxN102klmeO5scfdAj-+Lntt~7h@YFaOK@fV z>ZPx_hjU1N?!(-Jo<#z_!uK)Y>eJk7!-c>)R=@4-OFRw$kBIZ03obdkUj6*K@$AiC zn4=lhX-S<^7%bZr5Ets3B8jamh?Iq~n24p0iJVmE?taCYh&6a#fn_y&7>9`hO|^co zNAJZ#8UUsrp(v7{q>|!RocWUCmLwJoCg!fpZwr3~h>efTb#r>y-9Z)7$iJenVM4!u zAI<-Ik9$7e`O9xOExM&E}T6ykkz;SZB)7mJ*v7V6j1JYFg zW8OLuJxzWw!Jw?; zL=DPIx;eG9bHKCyGc;LO4g&hUQG+-2w=qxlA}fJ>E`}E(lPEzD=a;MTmxd4FdHZcHq#|Yf_Wg~Yt=qkZrttV>P+#An%fkXoc%!S= zd|;fsThd=P<3#6h3A1=zCX`nH?9cNn(W(D+Rygmdk?}Z-RzI3dpGHi}Nog&wcCjKF zWEBp0qD6R&n3{4Qjg3sos~+U!3R`~Uh&f9p^`*hUYd`6s&NuK>^@rQWox}%o=~-fK zeIJOX;N$b(A|tjHS#dNRrDTv8jKULcUFp3T2&F3Y zePOj-+-&Dp;G@~chOEQsnFswky0zMH7|Jam#c0RM_)N0qB>861K=y{$C*cIiRu&xR zAZ2kAxQ!d08uFUTYxiD7^sz?u4O(LyE1)`L7&ht4`0z>F@V;ZG?qBd9Y&eTg;iR3;ziTA)lEX~g;hEB*8%|2_w)x--W`4V4fo5kk`3dZQmcPGf%Kx3BvC$j$ zibUqCa{u3adjfnr^Gt51T%HA_kzfG!&=-&v0fd^N)lvf~>G>1g!UsCX*RZ96Tj)WK zu3;vn(^79Ozqr<}O>!p&?0{iRFET6yIdMR@~dzCW& zN#{!R93loX93{!g{MT-|%l%j*SPVY>8Z%Kd^YebCr3`>SZ~L8+60L5ps`$SUgRie| zxLYg<*6okv9Hr4A!e}XR!-BE$w&fS6VC{uj*j&u#68aY_OUn3LkxR_hmX@-cy$}r@ z4+k$VtPF?lNiBGg2X67^FyIe7J313{7u@i+jmO6%6SWuJoM^USc*hE8?7W`4!+z#) zj5Q0Z)62`A`~t73{TE5$k4)r6)f|A>AG}vX^To-@MAgB!`30e*Erio4Qn|gum9_uq zM1+#G6SzJlaFifraea3FrtviV5P^m1O(#AyDJhJZktir%rGIg@y+1zn){Pt%Yk{7QO)O)^%%S^g+mdB%25WD^q$SK9 z$bwh7-i`tC>{LJeKF*B8%zRT{(r%LbYHO1Ait;w2GDrECB*jp4A&0f4!5$sg-pt#E z$qevo-)>#suJ+0(fhrqb5l7*Wv4M=&X*4pFQq{QH%YPs(jNv={kYdgQR33dezx>N- zOSi5fEuBZh5$gRk=c~QWMK7|N%@PABsW>7bth0l?VK(G(s9iVHjfP#9u%)F-w*1e zf0Pnu68S+jn)}vE)-rr{cZVRfzo0><)L^CKw2A`&wo(82X5|A)j1@#RXXnp?01R{! zuM&%EeB(JV9uPv@&;oF@d3pIOKDCBc6coIHKo6rDFy2v9Vj4up#KjdWVlfV zUYRTJz+Y9@jdX|=h`kQc?J9yae2M!Ng!TXo9F@*s^%!&oo&6LaGrzR?fC4p zT0YKgz${26e%UbV;;Y-}Fl?&mP@j=)2L z;>bL1n|KQQ(oN<7y9Z>`?mj>7$M4mZrf1 z)hIEE2;kE)RiRKQDXEwo8%f-&-`y}xSHszP3(n4_&=5TIO4 z9CQYjD=^_m(0|+HVR?+ePhJWLoCBC~aD`TBzB~MXp2?aJT6&Y?X2rdZrPsfeuO<2J zYyT&>{C@#-fScQWu@`r#G5n8}dbW^%6p5;Q>|q-C!2eG>HNpIR`&sjCng_)~Q#^{I zzLxHP?ARnh!0`!OnfLs+h^J~)PIG?tUy1-YL4E=`4Yow9C7#pce^g!^JdH)kv>;I$ zv?!$SsdQInd(2Z4=ZB-N3)qlj{DS?c+^s=MAC5vVMh&HbZlEL_5}gACP>xB{YvMA8 zBtEiI1D0H19)Z}9CK+hRKGlraZYwCLt5?Yui_Caa@#w;R01`f1H8>k6ogodO{qwU+ z;tqN4MoAg|_JC^IkT>|9{qZUbP)Q+KH#o(BnhN=yyR~qTDrfgIWXHf=zQ4? z+{{8n_~#Qd(R6&Yy#vgT=f3+!y^ibGyNf|R(|~1dF&-QDb-AKbDARw{U;ec7^^}^H z2}V)yK>T49`SmI9asA0cJeoIlxvc6!R0wsgeh_f3+txcbpG>5RfjPY8$J*%G2W~7S z%^qr8WA$X@!=|}wxIpuN%s!|)RZTWNIw1xab~)fE$~ZkGK?MA@lCPki0@jBzNKhIc3G?tmfH=rw>VIsn&`{Z6vi*cjgilX9Sm*s`c~D@J zDi)&LDML@mv2cKw$_1>ncxLTc{8iRp4D>3NcidYV=UjI{o@SdVTTow(hWbNf(Je*f zBLQL7EFc9nZ3parJ^*ND?`E(*)FQ9xbtV5F_<1RDImO5Vxw3KJt!;?c19`E>MHBXT z_f4>DZ#_L$C_TRuEgMVc2TIOU1uAx`7aErc%G!fpLO-W15uwqj;uC@Q{43-^rN_$v z%s55)5vd=y)GlDID{Z&3G+m=~1-&C5>MOTCATaGWHM4=1{E1jJe1<=#QL~6uCrjXl z13XVDNjhO6gLij#S*#_SUkYFPukT{jrVp3}VTF7KQy<)J%TLiG#K6h#RVFNRYJV!o zYQw$VWJD5U=0|mHZ1ggP2*%TZ%~W4$sMclF)zuBn(dOsZhg{JFw+wToEeVKXRF}QL zsAN!T{fVCOX>`{J(SO#`Pw)3^xZOB;!hI`;#3^te1u36GfiQl9Bov!H?ezQ{2ZA%v zESn9?@dQx?;zkaSo#H}tzO=eoSqH_Fix0jq0o!2h4=!nik01=RMMcE0_vgtR{fPqH zZM3e9fPCA-Jh6@M!d{}HghQSp`YpazN__h>3vZSgu5`>*%8by5MGWW{kxH7{Ou)D< z;yEx#pRYmqi7W>TnJ9glJ^kg@R4wT#qHoahz_c@mxr3vivdrmc=hQs@8_3kW9PInq zmB?QSVFOm!3iM!~Pl;cXmGY1o7>aDZcHf`YpJ|+FkCJ#%LR5H_0w?9k(n7Vi+=)jh z@H*qf-B635Ww|&~9TJtFbZ4epysb}53iqw&eV&&3+kfRo<{-TII6wT$lPo^}OLuZ! zQLOa5ayu@k{+_v9!L-4ci0ioOJIR?= zemNnEQ!#1V@4vUswy__WalKvb81mtHphj?2$*jf2ibj!uKAS907^l8q$%!jKU;Q9d z;R=0%!j|2(lU)jDBg5hQA`Wyp6%J>B7j^7m@}ubWd=hFcxeJRE6q>Uy+_W=g&eaLz zLYPE!+pd2LNEmGYUD#-I0|5F04e5o7@e`0h%N3OStCaF14Fp6A0A0`Qh)|?lWadxE zk3Nfl@P~YO;v@i8+oL^l+I;)M>uaF9|((MU!R4z6^Bl?+9Er^Rq z!0AiN@_1BEAoT}iOo}kY)SaxUZ<;e$pYu?s+!xSzTBdjcR=3%NTD*yuuwjkf1;G}u z8WM?uF?~)B4-EnAF88)o@x`m3UPfL;=e$Jl~Jpu|E_EMHR2JR zQ)GfdPtSz$oPN7L%gHD6Tn+C%gj6B3r(hJ%AZb1zSs~o|6)qC6;S6E?xSZMr7MFmY zy*R@+lK`8G>J=014|N<<#zc5r#&C@gRBV@I;pXeaOc(;}9>eZYju77mV9np}p93F{ z&mts{@%L~Ilf-4Ri^e{wO%c}uX`JB08{QT|{}SY7bjVbbrsR$%POOMwzU$#9?kqSz z-VGqr@Xqwxw}W!TGTw~F1^I6_U+a56b5HVyrXi>*@;?Q8en(ee%uSwed6ae+rkkVD zg_Z)-;H2AY_YarI)3GHS0#CtvV9D^kQ011jieI;&lmGt&j96l?)Dd5A_D}=H1-ywc zU@)F`|9sO*5r<3@|FCzL>*m=$!Rk+Sx=;}1gq}E%Ac&^p1BqAOKDF`)9&h7FUd7z}U}xcha(V`Q zhl&)UF*snYh0^zHOz78u_w@w zVlj4D&5c7rUEhF)7`xx(7a&xktsHw8Z=;iJ<0~npOCknGMbU2QX^z;*!ZSN(;m?1w zFB3LWHv3%!T%o0`Lih{@EM^rSnSLg@ z{|?R=uQ*~fdHJwHZgdAl4Fhq^BRj7PKL3om* z1ebwy{x|=09^jv@9brjx^mSVn{h!Ye5ZHwy_WrZFjMNzLRxM%k;0Km!E&r*wx; zVgR@tG|4z5!hPnD=;%~>9faHsJ=_WNC-h1_w7Th)r0!5cSX8Xp?Tv_@9 zx@AH*{&V5$#6uF}Mrz1`ybrK+CvM~A7Edy^%ud)c6m-%SluAf^#A5W(3bKXWMQ2aw z7a$ZH!@~8gnp_$vN)MR%M&5VU@Ef~O7H%GsQ;mAw zKoCy^2wa#pV+uEtJ{voMIX*Jx6mGEfT`r08WP#Gv$fF-$H`dbvEIqOwU%pN{PcFKh z3$>petrjX4%~0FS@GA1~Db85g7BV;tFpP@|^}S{6LnT0Pk;d1SMbyT}mXg#!kp1_D zk6=NFgZ+Lg)7O8)&(iYXah8ffcK2E0qPO<$@4WHMdRyo1xs(65;J4Fx3}Yb{6JgQC zJ{%|Ay*iSJUQ8)IY%68B<*9c2-kt}D2BQSYd>Mzy3g*S+iOuoq#hx~ht-Wpuw{@N0 z%3&a@0Bz~wT@zClDj1melZvuZ+G-u_vx*ysq8Wci$0SHZU2FO@`wGKA?gYuoO~Ze> zumrdCIIpebWyGb~QGXuskCOa6loS6t6lvzkYwpMdGbu=qB9>O5434{uZ%!ZwLd3#= z^?S*r98ehOQs2r^>)Hvua|JHqUC@#0;PYvfuZW?&x`Pyt_aoC?vrtAyZfMEkAL<*A zwckY@I_t1K1Pa$E)(sYhxY+UAzZ}POnvmz9P5&}C(iMS4np!bIQfs>1N})#Xp1Et2 zevo3N-`%N0vacnqEG{j1J>$6$y&ib?huhwq3Y_>icR~H)`Fgzb8%|f(l!@pioV6xo zp6pWJSikqk`yQ`K0=i(9WO1KqbkLbC^z~Fw3|0-#3aR&~$e3JhA8}aV>xiLk$Lmoe z(?_ih1%VFdUZYx~s-QgaTEZ#W!%{u$hpL5*Ip>>HFjkN6L9)CQN4F#JEF@G7_E2uY zMjAOsAV|J`Mwf^hMAgUr(OQPRfgEBrX)>^FG^Fd1@3}~9^29oE;%s?~I6U|@XYI4O zz?-x0qO8bJ6v{{s=Z(724g?1T$|hyoFc94#stY`3tojl46zUr7gBvZSO&gCCamO?m ztLk~6>o@M!R=G`t9$LzqPUM(W3*q42(3IJ+KR?OaV5J}I7G-p1QPmJyGGpKQcRN=(K*`oa*WXpBRETwrTUYKnx) z�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 literal 0 HcmV?d00001 diff --git a/qa/src/test/resources/visual-baselines/proposal-v2-layered/northline_proposal-page-1.png b/qa/src/test/resources/visual-baselines/proposal-v2-layered/northline_proposal-page-1.png new file mode 100644 index 0000000000000000000000000000000000000000..bd2540df445aba02a1d6607dd2d934b10a9dada3 GIT binary patch literal 89800 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 T603*)WO8u=tyCzu$b1VjZF8DkWZA8Jv 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 icons ship inside the templates artifact under + * {@code templates/proposal/northline/icons/}, keyed by the icon tokens the + * structured proposal data carries (e.g. {@code badge-summary}, + * {@code fact-start}, {@code goal-brand}). Loaded bytes are cached per + * token, so a two-page proposal reads each icon file once per JVM.

+ */ +final class NorthlineIcons { + + private static final String ICON_ROOT = "/templates/proposal/northline/icons/"; + private static final Map CACHE = new ConcurrentHashMap<>(); + + private NorthlineIcons() { + } + + /** + * Loads (and caches) the icon for a data-supplied token. + * + * @param token the icon token, without extension + * @return the icon image data + * @throws IllegalArgumentException when the token names no packaged icon + * — an icon token is data, so a wrong one is a data error, the + * same class the phase-grid header contract throws + */ + static DocumentImageData image(String token) { + return CACHE.computeIfAbsent(token, NorthlineIcons::read); + } + + private static DocumentImageData read(String token) { + String resourcePath = ICON_ROOT + token + ".png"; + try (InputStream input = NorthlineIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalArgumentException( + "Unknown northline proposal icon token '" + token + + "' — no packaged icon at " + resourcePath + "."); + } + return DocumentImageData.fromBytes(input.readAllBytes()); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read northline proposal icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlinePageOne.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlinePageOne.java new file mode 100644 index 000000000..0bbfbd603 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlinePageOne.java @@ -0,0 +1,350 @@ +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.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.node.TextAlign; +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.DocumentTextStyle; +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.ProposalTitleLines; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalData; + +import java.util.List; + +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BAND_TOP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BODY; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BODY_LEADING; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FACT_DIVIDER_GAP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FACT_GAP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FACT_ICON; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FACT_LABEL; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FACT_LINE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FACT_NOTE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FACT_VALUE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FACT_VALUE_LINE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FACT_VALUE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GAP_HEADING; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GAP_SECTION; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GLANCE_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GLANCE_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GOAL_GAP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GOAL_ICON; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GOAL_TEXT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GOAL_TEXT_LINES; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.HAIRLINE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.LABEL_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.LATO_LINE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.META; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.META_SEPARATOR; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.PANEL_BACKGROUND; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.PANEL_HEADING; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.PANEL_PADDING; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.PANEL_RADIUS; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.RULE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.RULE_QUIET; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SCOPE_BADGE_H; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SCOPE_BADGE_W; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SCOPE_BODY; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SCOPE_GAP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SCOPE_NUMBER; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SCOPE_ROW_PAD; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SCOPE_TITLE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SCOPE_TITLE_SPLIT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SUMMARY_GAP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SUMMARY_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SUMMARY_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TABLE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TITLE_ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TITLE_INK; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TITLE_LAST_LINE_HEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TITLE_PITCH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TITLE_RULE_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineWidgets.sectionHeading; + +/** + * Page one of the Northline proposal: the title block, the summary band + * with the glance card, the goal cells, and the numbered scope list. + * + *

Layout notes carried over from the ported template: the title lines + * stack as anchored children of one container because the reference sets + * the title at a pitch tighter than the font's own line height, which text + * leading (additive, non-negative) cannot reach; the goal cells flatten + * every icon/text pair into one row because a row is refused inside a row + * cell; the scope list is rows plus hairlines rather than a table because + * the reference has horizontal separators and no vertical rules.

+ */ +final class NorthlinePageOne { + + private NorthlinePageOne() { + } + + static void compose(PageFlowBuilder page, StructuredProposalData data) { + renderTitleBlock(page, data.title()); + renderTitleMeta(page, data); + renderSummaryBand(page, data); + renderGoalCells(page, data.goals()); + renderScopeOfWork(page, data.scope()); + } + + /** Accent rule, then the three title lines — ink lead, accent remainder. */ + private static void renderTitleBlock(PageFlowBuilder page, ProposalTitleLines title) { + page.addSection("TitleBlock", block -> { + block.margin(BAND_TOP, 0f, 0f, 0f); + block.spacing(0); + block.addLine(line -> line + .horizontal(TITLE_RULE_WIDTH) + .thickness(2.6) + .color(ACCENT) + .margin(DocumentInsets.bottom(2))); + block.add(renderTitleLines(title)); + }); + } + + /** + * The three title lines, stacked on the reference's own pitch: each + * line is a child of one container placed {@code TITLE_PITCH} apart — + * this stacks what the data already declares as separate lines. + */ + private static DocumentNode renderTitleLines(ProposalTitleLines title) { + return new ShapeContainerBuilder() + .name("TitleLines") + .rectangle(CONTENT_WIDTH, 2 * TITLE_PITCH + TITLE_LAST_LINE_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .position(titleLine("TitleLead", title.lead(), TITLE_INK), + 0, 0, LayerAlign.TOP_LEFT) + .position(titleLine("TitleLine1", title.second(), TITLE_ACCENT), + 0, TITLE_PITCH, LayerAlign.TOP_LEFT) + .position(titleLine("TitleLine2", title.third(), TITLE_ACCENT), + 0, 2 * TITLE_PITCH, LayerAlign.TOP_LEFT) + .build(); + } + + private static DocumentNode titleLine(String name, String text, DocumentTextStyle style) { + return new ParagraphBuilder() + .name(name).text(text).textStyle(style).build(); + } + + /** Prepared-for, prepared-by and date, joined by a quieter separator. */ + private static void renderTitleMeta(PageFlowBuilder page, StructuredProposalData data) { + page.addSection("TitleMeta", section -> { + section.margin(BAND_TOP, 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 column left, glance 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()); + // The goals heading sits in this column, level with the + // bottom of the glance card — it belongs to the band. + column.add(sectionHeading( + data.goals().heading(), data.goals().icon(), SUMMARY_WIDTH)); + }); + row.addSection("GlanceColumn", column -> renderGlancePanel(column, data.glance())); + }); + } + + /** Heading plus the summary paragraphs. */ + private static void renderExecutiveSummary(SectionBuilder column, + ProposalSummaryBlock summary) { + column.spacing(0); + column.add(sectionHeading(summary.heading(), summary.icon(), SUMMARY_WIDTH)); + List paragraphs = summary.paragraphs(); + for (int i = 0; i < paragraphs.size(); i++) { + String text = paragraphs.get(i); + float top = i == 0 ? (float) GAP_HEADING : (float) GAP_SECTION * 0.6f; + column.addParagraph(p -> p + .text(text) + .textStyle(BODY) + .lineSpacing(BODY_LEADING) + .margin(top, 0f, 0f, 0f)); + } + // Clears the last paragraph before the goals heading. + column.addSpacer(spacer -> spacer.height(GAP_SECTION)); + } + + /** + * The quiet card of project facts. {@code softPanel} colours the + * section that already owns the facts, so the card is their parent + * rather than a rectangle drawn behind them. + */ + private static void renderGlancePanel(SectionBuilder column, ProposalGlance glance) { + double inner = GLANCE_WIDTH - 2 * PANEL_PADDING; + column.addSection("GlancePanel", panel -> { + panel.spacing(0).softPanel(PANEL_BACKGROUND, PANEL_RADIUS, PANEL_PADDING); + panel.addParagraph(p -> p + .text(glance.heading()) + .textStyle(PANEL_HEADING) + .margin(0f, 0f, (float) GAP_HEADING, 0f)); + List facts = glance.facts(); + 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 at the left of a label-over-value stack. + * The container's height derives from the number of text lines the fact + * actually has, so the optional note line makes its own room. + */ + private static DocumentNode renderGlanceFact(ProposalGlance.Fact fact, double width) { + boolean hasNote = !fact.note().isBlank(); + double height = LABEL_SIZE * FACT_LINE + FACT_VALUE_SIZE * FACT_VALUE_LINE + + (hasNote ? (LABEL_SIZE + 0.5) * FACT_LINE : 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(NorthlineWidgets.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 deliberately: the icon/text pairs and the + * separators are all direct children of one row, and the column widths + * carry the structure. Skipped entirely when the data has no goals — + * the flattened column spec cannot describe zero cells. + */ + private static void renderGoalCells(PageFlowBuilder page, ProposalGoals goals) { + List items = goals.items(); + if (items.isEmpty()) { + return; + } + // Three goal-text lines set the separator height; the pitch is the + // font line plus the additive leading. + double separatorHeight = GOAL_TEXT_LINES * (TABLE_SIZE * LATO_LINE + BODY_LEADING); + 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(separatorHeight) + .thickness(HAIRLINE) + .color(RULE)); + } + ProposalGoals.Goal goal = items.get(i); + if (goal.icon().isBlank()) { + // Keep the child-per-column mapping of the flattened row. + row.addSpacer(GOAL_ICON); + } else { + row.addImage(image -> NorthlineWidgets.configureIcon( + image, goal.icon(), GOAL_ICON)); + } + row.addParagraph(p -> p + .text(goal.text()) + .textStyle(GOAL_TEXT) + .lineSpacing(BODY_LEADING)); + } + }); + } + + /** Column spec for the flattened goal row. */ + 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 at the flow's top level. */ + private static void renderScopeOfWork(PageFlowBuilder page, ProposalScope scope) { + double titleWidth = CONTENT_WIDTH * SCOPE_TITLE_SPLIT - SCOPE_BADGE_W - 2 * SCOPE_GAP; + page.addSection("ScopeOfWork", section -> { + section.margin(BAND_TOP, 0f, 0f, 0f); + section.spacing(0); + section.add(sectionHeading(scope.heading(), scope.icon(), CONTENT_WIDTH)); + section.addLine(line -> line + .fill() + .thickness(HAIRLINE) + .color(RULE) + .margin(DocumentInsets.top(GAP_HEADING))); + 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_BADGE_W), + DocumentRowColumn.fixed(titleWidth), + DocumentRowColumn.weight(1)); + row.add(renderScopeBadge(item.number())); + row.addParagraph(p -> p.text(item.title()).textStyle(SCOPE_TITLE)); + row.addParagraph(p -> p + .text(item.description()) + .textStyle(SCOPE_BODY) + .lineSpacing(BODY_LEADING)); + }); + if (i < items.size() - 1) { + section.addLine(line -> line.fill().thickness(HAIRLINE).color(RULE)); + } + } + }); + } + + /** The teal step badge and the number it owns. */ + private static DocumentNode renderScopeBadge(String number) { + return new ShapeContainerBuilder() + .name("ScopeBadge") + .roundedRect(SCOPE_BADGE_W, SCOPE_BADGE_H, 2.0) + .fillColor(ACCENT) + .center(NorthlineWidgets.paragraph("ScopeNumber", number, SCOPE_NUMBER, + TextAlign.CENTER)) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlinePageTwo.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlinePageTwo.java new file mode 100644 index 000000000..17db60deb --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlinePageTwo.java @@ -0,0 +1,333 @@ +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.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.NorthlineStyles.ACCEPTANCE_FIELD_GAP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.ACCEPTANCE_PADDING; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BAND_TOP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BODY; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BODY_LEADING; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.DELIVERABLES_LEFT_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.DELIVERABLES_RIGHT_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GAP_HEADING; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.HAIRLINE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.INK; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.INVESTMENT_ROW_PAD; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.INVESTMENT_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.INVESTMENT_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.MONEY_GAP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.PANEL_BACKGROUND; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.PANEL_RADIUS; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.RULE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.RULE_QUIET; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SIGNATURE_LABEL; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SIGNATURE_LABEL_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TABLE_BODY; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TABLE_BODY_BOLD; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TABLE_HEADER; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TERMS_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TERMS_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TIMELINE_WEIGHTS; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.TOTAL_TEXT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineWidgets.renderBullet; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineWidgets.sectionHeading; + +/** + * Page two of the Northline proposal: the deliverable columns, the phase + * grid, the investment / terms band, and the signing card. + * + *

Layout notes carried over from the ported template: the phase grid is + * the one region with real vertical rules and therefore the one real + * table; the investment block sits inside a row cell where a nested row is + * refused, so it is a table too — with the recorded cost that its cell + * strokes also draw a rule down the ITEM/AMOUNT boundary. Prose cells in + * the phase grid are composed paragraphs (a plain-text cell reports its + * whole string as the column's natural width and a narrower fixed column is + * rejected rather than wrapped), while the phase cell stays a plain-text + * cell — {@code DocumentTableTextAnchor} centres a text cell's value but + * not a composed one's.

+ */ +final class NorthlinePageTwo { + + private NorthlinePageTwo() { + } + + 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. */ + private static void renderDeliverables(PageFlowBuilder page, + ProposalDeliverables deliverables) { + page.addSection("Deliverables", section -> { + section.margin(BAND_TOP, 0f, 0f, 0f); + section.spacing(0); + section.add(sectionHeading( + deliverables.heading(), deliverables.icon(), CONTENT_WIDTH)); + section.addRow("DeliverableColumns", row -> { + row.verticalAlign(RowVerticalAlign.TOP) + .gap(0) + .padding(DocumentInsets.top(GAP_HEADING)) + .weights(DELIVERABLES_LEFT_WEIGHT, DELIVERABLES_RIGHT_WEIGHT); + row.addSection("DeliverablesLeft", column -> { + column.spacing(0); + deliverables.leftColumn().forEach(item -> renderBullet(column, item)); + }); + row.addSection("DeliverablesRight", column -> { + column.spacing(0); + deliverables.rightColumn().forEach(item -> renderBullet(column, item)); + }); + }); + }); + } + + /** + * The phase grid. Requires one authored header per column: the grid + * draws four columns, so four headers — anything else is a data error + * reported here rather than an index error deep in the table. Skipped + * entirely when the data has no phases, including that header-count + * validation — a grid that never renders constrains nothing. + */ + 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, 10)) + .textStyle(TABLE_HEADER) + .textAnchor(DocumentTableTextAnchor.CENTER_LEFT) + .build(); + DocumentTableStyle cellStyle = DocumentTableStyle.builder() + .stroke(DocumentStroke.of(RULE, HAIRLINE)) + .padding(DocumentInsets.symmetric(9, 10)) + .textStyle(TABLE_BODY) + .textAnchor(DocumentTableTextAnchor.TOP_LEFT) + .lineSpacing(BODY_LEADING) + .build(); + DocumentTableStyle centredCellStyle = DocumentTableStyle.builder() + .stroke(DocumentStroke.of(RULE, HAIRLINE)) + .padding(DocumentInsets.symmetric(9, 10)) + .textStyle(TABLE_BODY) + .textAnchor(DocumentTableTextAnchor.CENTER_LEFT) + .lineSpacing(BODY_LEADING) + .build(); + + page.addSection("Timeline", section -> { + section.margin(BAND_TOP, 0f, 0f, 0f); + section.spacing(0); + section.add(sectionHeading(timeline.heading(), timeline.icon(), CONTENT_WIDTH)); + section.addTable(table -> { + table.name("TimelineTable") + .width(CONTENT_WIDTH) + .margin(DocumentInsets.top(GAP_HEADING)) + .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, 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, with the last band always the labelled total. */ + private static void renderInvestmentTable(SectionBuilder column, + ProposalInvestment investment) { + double labelWidth = INVESTMENT_WIDTH * 0.62; + double amountWidth = INVESTMENT_WIDTH - labelWidth; + + DocumentTableStyle headerLabel = investmentStyle(INK, TABLE_HEADER, + DocumentTableTextAnchor.CENTER_LEFT); + DocumentTableStyle headerAmount = investmentStyle(INK, TABLE_HEADER, + DocumentTableTextAnchor.CENTER_RIGHT); + DocumentTableStyle rowLabel = investmentStyle(null, TABLE_BODY, + DocumentTableTextAnchor.CENTER_LEFT); + DocumentTableStyle rowAmount = investmentStyle(null, TABLE_BODY, + DocumentTableTextAnchor.CENTER_RIGHT); + DocumentTableStyle subtotalLabel = investmentStyle(PANEL_BACKGROUND, TABLE_BODY_BOLD, + DocumentTableTextAnchor.CENTER_LEFT); + DocumentTableStyle subtotalAmount = investmentStyle(PANEL_BACKGROUND, TABLE_BODY_BOLD, + DocumentTableTextAnchor.CENTER_RIGHT); + DocumentTableStyle optionalAmount = investmentStyle(null, TABLE_BODY_BOLD, + DocumentTableTextAnchor.CENTER_RIGHT); + DocumentTableStyle totalLabel = investmentStyle(ACCENT, TOTAL_TEXT, + DocumentTableTextAnchor.CENTER_LEFT); + DocumentTableStyle totalAmount = investmentStyle(ACCENT, TOTAL_TEXT, + DocumentTableTextAnchor.CENTER_RIGHT); + + column.spacing(0); + column.add(sectionHeading( + investment.heading(), investment.icon(), INVESTMENT_WIDTH)); + column.addTable(table -> { + table.name("InvestmentTable") + .width(INVESTMENT_WIDTH) + .margin(DocumentInsets.top(GAP_HEADING)) + .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)); + }); + } + + /** One investment cell style; {@code fill} may be null for the plain rows. */ + private static DocumentTableStyle investmentStyle(DocumentColor fill, + DocumentTextStyle text, + DocumentTableTextAnchor anchor) { + DocumentTableStyle.Builder builder = DocumentTableStyle.builder() + .stroke(DocumentStroke.of(RULE_QUIET, HAIRLINE)) + .padding(DocumentInsets.symmetric(INVESTMENT_ROW_PAD, 10)) + .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(), terms.icon(), TERMS_WIDTH)); + column.addSection("TermsList", list -> { + list.spacing(0).padding((float) GAP_HEADING, 0f, 0f, 0f); + terms.items().forEach(item -> renderBullet(list, item)); + }); + } + + /** + * The signing card. The signature fields are flat row columns — label, + * rule per field — with the column spec derived from the field count, + * so no pair nests inside a cell; the row is skipped when the data has + * no fields. + */ + private static void renderAcceptance(PageFlowBuilder page, ProposalAcceptance acceptance) { + double inner = CONTENT_WIDTH - 2 * ACCEPTANCE_PADDING; + page.addSection("Acceptance", card -> { + card.margin(BAND_TOP, 0f, 0f, 0f); + card.spacing(0).softPanel(PANEL_BACKGROUND, PANEL_RADIUS, ACCEPTANCE_PADDING, + DocumentStroke.of(RULE, HAIRLINE)); + card.add(sectionHeading(acceptance.heading(), acceptance.icon(), inner)); + card.addParagraph(p -> p + .text(acceptance.statement()) + .textStyle(BODY) + .lineSpacing(BODY_LEADING) + .margin((float) GAP_HEADING, 0f, 0f, 0f)); + List fields = acceptance.fields(); + if (fields.isEmpty()) { + return; + } + card.addRow("SignatureFields", row -> { + row.verticalAlign(RowVerticalAlign.BOTTOM) + .gap(6) + .padding(DocumentInsets.top(ACCEPTANCE_FIELD_GAP)) + .columns(signatureColumns(fields.size())); + for (String field : fields) { + row.addParagraph(p -> p.text(field).textStyle(SIGNATURE_LABEL)); + row.addLine(line -> line.fill().thickness(HAIRLINE).color(INK)); + } + }); + }); + } + + /** Label-strip + growing-rule column pair per signature field. */ + private static DocumentRowColumn[] signatureColumns(int fieldCount) { + DocumentRowColumn[] columns = new DocumentRowColumn[fieldCount * 2]; + for (int i = 0; i < fieldCount; i++) { + columns[i * 2] = DocumentRowColumn.fixed(SIGNATURE_LABEL_WIDTH); + columns[i * 2 + 1] = DocumentRowColumn.weight(1); + } + return columns; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposal.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposal.java new file mode 100644 index 000000000..6936a0dab --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposal.java @@ -0,0 +1,164 @@ +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.NorthlineStyles.ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FOOTER_HEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FOOTER_TEXT_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.FOOTER_ZONE_HEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.INK; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.MARGIN_SIDE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.MARGIN_TOP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.ON_DARK; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.PAGE_BACKGROUND; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.PAGE_BLOCK_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.PAGE_HEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.PAGE_WIDTH; + +/** + * Northline Proposal — the first structured proposal preset: a two-page + * teal-and-navy business proposal on the Spectral/Lato pair. + * + *

Page one carries the brand header, the three stacked title lines, the + * meta line, the executive summary beside the at-a-glance card, the goal + * cells, and the numbered scope list; page two repeats the header and + * carries the deliverable columns, the phase grid, the investment / terms + * band, and the signing card. Like the ported template, the preset issues + * no explicit page break: page one's bands are sized so reference-volume + * content ends just short of the content box and the page-two header opens + * the second page (a break issued after that natural advance would leave a + * blank page between them). The two-page distribution is therefore a + * property of the content volume — noticeably lighter content lets the + * page-two bands climb onto page one. A section whose data is empty keeps + * its badge disc and heading; only structures that cannot be composed + * empty — the goal cells, the phase grid, the signature row — are + * skipped.

+ * + *

The page chrome is not flow content: the navy footer band and the + * teal page-number block are {@link PageBackgroundFill}s (their geometry + * comes from the page and they repeat on every page), the brand line and + * the {@code 0{page}} number are a {@link DocumentHeaderFooter} in the + * FOOTER zone, and the bottom page margin equals the band height so + * content stops above the chrome. The preset therefore owns its session + * geometry — page size, margins, page background — and a session margin + * set by the caller would be overwritten; see {@link #RECOMMENDED_MARGIN}.

+ * + *

The preset consumes the structured proposal model + * ({@link StructuredProposalDocumentSpec}); the icon tokens the data + * carries resolve against the packaged Northline icon set. The colours and + * the measured geometry are preset-local ({@link NorthlineStyles}) — the + * look is not shared with any other family today.

+ */ +public final class NorthlineProposal { + + /** + * Stable template identifier. + */ + public static final String ID = "proposal-northline"; + + /** + * Human-readable display name. + */ + public static final String DISPLAY_NAME = "Northline Proposal"; + + /** + * Recommended session margin (in points). The preset sets its own page + * geometry — side margins, the top margin, and a bottom margin equal to + * the footer band — inside {@code compose}, so callers leave the + * session margin at zero and let the preset own the page frame. + */ + public static final double RECOMMENDED_MARGIN = 0.0; + + private NorthlineProposal() { + } + + /** + * 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 underneath the chrome. + .margin(new DocumentInsets(MARGIN_TOP, MARGIN_SIDE, + FOOTER_HEIGHT, MARGIN_SIDE)) + .pageBackground(PAGE_BACKGROUND); + + renderChrome(document, data.brand()); + + document.pageFlow(page -> { + // spacing(0): flow spacing survives a page break and would + // indent the page-two header; the rhythm lives on the bands. + page.name("Proposal").spacing(0); + page.addSection("Header", + header -> NorthlineWidgets.renderHeader(header, data.brand())); + NorthlinePageOne.compose(page, data); + page.addSection("Header", + header -> NorthlineWidgets.renderHeader(header, data.brand())); + NorthlinePageTwo.compose(page, data); + }); + } + + /** + * The band that closes every page: the navy band and the teal + * corner block as page-ratio background fills, and the brand line + + * page number as FOOTER-zone chrome with {@code {page}} resolved + * per page ({@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( + PageBackgroundFill.bottomBand(FOOTER_HEIGHT / PAGE_HEIGHT, INK), + new PageBackgroundFill( + 1.0 - PAGE_BLOCK_WIDTH / PAGE_WIDTH, + 1.0 - FOOTER_HEIGHT / PAGE_HEIGHT, + PAGE_BLOCK_WIDTH / PAGE_WIDTH, + FOOTER_HEIGHT / PAGE_HEIGHT, + ACCENT))); + + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + // The backend places the baseline at (height - fontSize) + // above the page edge; this height centres the cap band + // inside the footer band. + .height((float) FOOTER_ZONE_HEIGHT) + .leftText(brand.footerName() + " | " + brand.website()) + .rightText("0{page}") + .fontSize((float) FOOTER_TEXT_SIZE) + .textColor(ON_DARK) + .build()); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineStyles.java new file mode 100644 index 000000000..964b6ebbf --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineStyles.java @@ -0,0 +1,204 @@ +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 Northline look: colour roles, the Spectral/Lato type scale, and the + * measured geometry constants shared by the preset's bands. + * + *

Preset-local rather than a {@code BrandTheme}: the teal-and-navy + * proposal look is not shared with any other family today, and every value + * below was measured against the ported template's reference render — a + * theme slot would add indirection without a second consumer. The Northline + * orange variant parameterises the colours when it lands.

+ * + *

Geometry notes carried over from the ported template: every width is a + * fraction of {@link #CONTENT_WIDTH}; the only hardcoded points are + * dimensions nothing else depends on (icon sizes, badge diameter, logo + * square, footer band height, card padding), each named so a revision + * changes one constant. {@link #BODY_LEADING} is EXTRA leading in points, + * not a multiplier — the engine adds it to the font's own line height.

+ */ +final class NorthlineStyles { + + private NorthlineStyles() { + } + + // --- page --------------------------------------------------------------- + static final double PAGE_WIDTH = 595.276; // A4 portrait, points + static final double PAGE_HEIGHT = 841.890; + static final double MARGIN_SIDE = 36.0; + static final double MARGIN_TOP = 8.0; + /** The denominator of every derived width below. */ + static final double CONTENT_WIDTH = PAGE_WIDTH - 2 * MARGIN_SIDE; + + // --- band splits, measured from the reference --------------------------- + static final double SUMMARY_WEIGHT = 0.62; + static final double GLANCE_WEIGHT = 0.35; + static final double SUMMARY_GAP = CONTENT_WIDTH * 0.03; + static final double INVESTMENT_WEIGHT = 0.59; + static final double TERMS_WEIGHT = 0.35; + static final double MONEY_GAP = CONTENT_WIDTH * 0.06; + static final double DELIVERABLES_LEFT_WEIGHT = 0.48; + static final double DELIVERABLES_RIGHT_WEIGHT = 0.52; + /** PHASE / FOCUS / DURATION / OUTPUT, from the four measured vertical rules. */ + static final double[] TIMELINE_WEIGHTS = {0.232, 0.298, 0.179, 0.291}; + /** Where the scope description column starts. */ + static final double SCOPE_TITLE_SPLIT = 0.448; + + static final double SUMMARY_WIDTH = CONTENT_WIDTH * SUMMARY_WEIGHT; + static final double GLANCE_WIDTH = CONTENT_WIDTH * GLANCE_WEIGHT; + static final double INVESTMENT_WIDTH = CONTENT_WIDTH * INVESTMENT_WEIGHT; + static final double TERMS_WIDTH = CONTENT_WIDTH * TERMS_WEIGHT; + + // --- independent dimensions --------------------------------------------- + static final double BADGE_DIAMETER = 27.0; + static final double BADGE_GLYPH = BADGE_DIAMETER * 0.52; + static final double BADGE_GAP = BADGE_DIAMETER * 0.42; + static final double GOAL_ICON = 20.0; + static final double GOAL_GAP = 7.0; + /** Lines a goal statement wraps to; sets the separator height. */ + static final double GOAL_TEXT_LINES = 3; + static final double FACT_ICON = 25.0; + static final double FACT_GAP = 12.0; + static final double LOGO_SIZE = 50.0; + static final double FOOTER_HEIGHT = 48.0; + static final double PANEL_PADDING = 16.0; + static final double PANEL_RADIUS = 7.0; + static final double SCOPE_BADGE_W = 26.0; + static final double SCOPE_BADGE_H = 15.0; + static final double SCOPE_GAP = 12.0; + static final double TITLE_RULE_WIDTH = CONTENT_WIDTH * 0.086; + static final double PAGE_BLOCK_WIDTH = 62.0; + static final double HAIRLINE = 0.7; + /** Helvetica cap height as a fraction of the type size. */ + static final double HELVETICA_CAP = 0.717; + /** Footer chrome text size (the backend draws footer chrome in Standard-14). */ + static final double FOOTER_TEXT_SIZE = 9.5; + /** + * Not the band height: the backend places the footer baseline at + * (height - fontSize) above the page edge, so this value seats the cap + * band in the middle of a {@link #FOOTER_HEIGHT} band. + */ + static final double FOOTER_ZONE_HEIGHT = + (FOOTER_HEIGHT - FOOTER_TEXT_SIZE * HELVETICA_CAP) / 2 + FOOTER_TEXT_SIZE; + static final double WORDMARK_WIDTH = CONTENT_WIDTH * 0.19; + static final double DOC_LABEL_WIDTH = CONTENT_WIDTH * 0.16; + static final double SIGNATURE_LABEL_WIDTH = CONTENT_WIDTH * 0.115; + + // --- vertical rhythm ----------------------------------------------------- + static final double GAP_SECTION = 18.0; + /** + * The gap above a band, carried by the band rather than by the page + * flow: flow spacing survives a page break and would indent the + * page-two header, so the flow spacing stays zero and the rhythm lives + * on the bands — a header carries no leading space on any page. + */ + static final float BAND_TOP = (float) GAP_SECTION; + static final double GAP_HEADING = 7.0; + static final double GAP_ROW = 5.0; + /** Inner padding of the acceptance card; the glance card keeps PANEL_PADDING. */ + static final double ACCEPTANCE_PADDING = 11.0; + /** Gap between the acceptance statement and the signature fields. */ + static final double ACCEPTANCE_FIELD_GAP = 13.0; + /** Vertical padding inside a scope row, each side (measured). */ + static final double SCOPE_ROW_PAD = 5.0; + /** Vertical padding in an investment cell, each side (measured). */ + static final double INVESTMENT_ROW_PAD = 4.0; + /** Gap above and below a divider between glance facts. */ + static final double FACT_DIVIDER_GAP = 7.0; + /** Glance label / value line heights, as multiples of the type size. */ + static final double FACT_LINE = 1.4; + static final double FACT_VALUE_LINE = 1.3; + + // --- type scale ---------------------------------------------------------- + static final double BODY_SIZE = 10.0; + /** EXTRA leading in points (added to the font's own line height). */ + static final double BODY_LEADING = 1.45; + /** Lato line height as a multiple of the type size (measured). */ + static final double LATO_LINE = 1.213; + static final double TITLE_SIZE = 46.0; + /** The reference's title pitch between stacked title lines. */ + static final double TITLE_PITCH = 48.0; + /** Height reserved for the last title line inside the stacked-title container. */ + static final double TITLE_LAST_LINE_HEIGHT = TITLE_SIZE * 0.95; + static final double HEADING_SIZE = 13.5; + static final double TABLE_SIZE = 9.0; + static final double LABEL_SIZE = 8.0; + static final double FACT_VALUE_SIZE = 14.0; + + // --- theme tokens: role names, not colour names --------------------------- + static final DocumentColor INK = DocumentColor.rgb(1, 25, 52); + static final DocumentColor ACCENT = DocumentColor.rgb(20, 111, 120); + static final DocumentColor PAGE_BACKGROUND = DocumentColor.rgb(252, 252, 252); + static final DocumentColor PANEL_BACKGROUND = DocumentColor.rgb(245, 246, 247); + static final DocumentColor RULE = DocumentColor.rgb(203, 208, 213); + static final DocumentColor RULE_QUIET = DocumentColor.rgb(228, 231, 234); + static final DocumentColor BODY_TEXT = DocumentColor.rgb(39, 51, 75); + static final DocumentColor MUTED_TEXT = DocumentColor.rgb(85, 93, 109); + 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(BODY_FONT, HEADING_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle PANEL_HEADING = + style(BODY_FONT, BODY_SIZE + 0.5, DocumentTextDecoration.BOLD, ACCENT); + static final DocumentTextStyle BODY = + style(BODY_FONT, BODY_SIZE, DocumentTextDecoration.DEFAULT, BODY_TEXT); + static final DocumentTextStyle META = + style(BODY_FONT, LABEL_SIZE, DocumentTextDecoration.BOLD, MUTED_TEXT); + static final DocumentTextStyle META_SEPARATOR = + style(BODY_FONT, LABEL_SIZE, DocumentTextDecoration.DEFAULT, RULE); + 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, BODY_TEXT); + static final DocumentTextStyle GOAL_TEXT = + style(BODY_FONT, TABLE_SIZE, DocumentTextDecoration.DEFAULT, BODY_TEXT); + static final DocumentTextStyle SCOPE_TITLE = + style(BODY_FONT, TABLE_SIZE + 0.5, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle SCOPE_BODY = + style(BODY_FONT, TABLE_SIZE, DocumentTextDecoration.DEFAULT, MUTED_TEXT); + static final DocumentTextStyle SCOPE_NUMBER = + style(BODY_FONT, LABEL_SIZE + 0.5, DocumentTextDecoration.BOLD, ON_DARK); + 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, 16.0, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle MONOGRAM = + style(BODY_FONT, 30.0, DocumentTextDecoration.BOLD, ON_DARK); + static final DocumentTextStyle DOC_LABEL = + style(BODY_FONT, LABEL_SIZE + 1, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle SIGNATURE_LABEL = + style(BODY_FONT, TABLE_SIZE, DocumentTextDecoration.DEFAULT, INK); + + 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/NorthlineWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineWidgets.java new file mode 100644 index 000000000..278e3a19b --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/NorthlineWidgets.java @@ -0,0 +1,208 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.LineBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +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.node.TextVerticalAlign; +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.DocumentTextIndent; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.text.TextOrnaments; +import com.demcha.compose.document.templates.data.proposal.ProposalBrand; + +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BADGE_DIAMETER; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BADGE_GAP; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BADGE_GLYPH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BODY; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.BODY_LEADING; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.DOC_LABEL; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.DOC_LABEL_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GAP_HEADING; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.GAP_ROW; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.HAIRLINE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.INK; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.LOGO_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.MONOGRAM; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.RULE; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.SECTION_HEADING; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.WORDMARK; +import static com.demcha.compose.document.templates.proposal.presets.NorthlineStyles.WORDMARK_WIDTH; + +/** + * The building blocks the Northline bands share: the page header, the + * icon-badged section heading, the teal bullet, and the small node helpers. + * + *

Constraint notes carried over from the ported template: the engine + * refuses a row nested inside another row's cell, so the header flattens + * its columns, and the section heading is a shape container hosting two + * anchored children rather than a row — half its uses sit inside a row + * cell. The heading container carries no fill and no margin (a margin + * would displace its paint); the gap above it comes from the enclosing + * flow's spacing.

+ */ +final class NorthlineWidgets { + + private NorthlineWidgets() { + } + + /** + * Logo square, wordmark, document label and the hairline that closes + * the header. One flat row: the logo is a shape container owning its + * monogram, the wordmark and the label are sections, and the weight(1) + * column between them holds the two ends apart. + */ + static void renderHeader(SectionBuilder header, ProposalBrand brand) { + header.spacing(0); + header.addRow("HeaderRow", row -> { + row.verticalAlign(RowVerticalAlign.CENTER) + .gap(LOGO_SIZE * 0.25) + // Not auto(): a section's natural width is the width it + // is offered, so two auto columns each claim the whole + // row. Both ends are measured strips instead. + .columns(DocumentRowColumn.fixed(LOGO_SIZE), + DocumentRowColumn.fixed(WORDMARK_WIDTH), + DocumentRowColumn.weight(1), + DocumentRowColumn.fixed(DOC_LABEL_WIDTH)); + row.add(logoMark(brand.monogram())); + row.addSection("Wordmark", mark -> { + mark.spacing(0); + mark.addParagraph(p -> p.text(brand.nameLine1()).textStyle(WORDMARK)); + mark.addParagraph(p -> p.text(brand.nameLine2()).textStyle(WORDMARK)); + }); + // 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.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 option, and the rule + // sits flush RIGHT under the label. + label.addAligned(HorizontalAlign.RIGHT, new LineBuilder() + .name("DocumentLabelRule") + .horizontal(BADGE_DIAMETER * 1.3) + .thickness(2.2) + .color(ACCENT) + .margin(DocumentInsets.top(6)) + .build()); + }); + }); + header.addLine(line -> line + .fill() + .thickness(HAIRLINE) + .color(RULE) + .margin(DocumentInsets.top(GAP_HEADING))); + } + + /** The navy square and the monogram it owns. */ + private static DocumentNode logoMark(String monogram) { + return new ShapeContainerBuilder() + .name("LogoMark") + .rectangle(LOGO_SIZE, LOGO_SIZE) + .fillColor(INK) + .center(paragraph("Monogram", monogram, MONOGRAM, TextAlign.CENTER)) + .build(); + } + + /** + * The heading every section opens with: a teal badge owning a white + * glyph, and the title vertically centred beside it. + * + * @param title the heading text, already uppercase in the data + * @param iconToken the icon token from the data + * @param width the width of the column the heading sits in + */ + static DocumentNode sectionHeading(String title, String iconToken, double width) { + return new ShapeContainerBuilder() + .name("SectionHeading") + .rectangle(width, BADGE_DIAMETER) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .position(badge(iconToken), 0, 0, LayerAlign.CENTER_LEFT) + .position(new ParagraphBuilder() + .name("SectionHeadingTitle") + .text(title) + .textStyle(SECTION_HEADING) + .verticalAlign(TextVerticalAlign.CENTER) + .build(), BADGE_DIAMETER + BADGE_GAP, 0, LayerAlign.CENTER_LEFT) + .build(); + } + + /** + * The teal disc and the glyph it owns. A blank token leaves the disc + * plain — the container still needs a layer, so an empty paragraph + * stands in for the glyph. + */ + private static DocumentNode badge(String iconToken) { + ShapeContainerBuilder badge = new ShapeContainerBuilder() + .name("SectionBadge") + .circle(BADGE_DIAMETER) + .fillColor(ACCENT); + if (iconToken.isBlank()) { + badge.center(new ParagraphBuilder() + .name("BadgeGlyph").text("").textStyle(SECTION_HEADING).build()); + } else { + badge.center(icon(iconToken, BADGE_GLYPH)); + } + return badge.build(); + } + + /** + * A bullet item: an inline teal dot followed by the text, with a + * hanging indent so wrapped lines clear the dot. The dot is an inline + * shape run rather than a bullet glyph, so it keeps its own colour and + * cannot be lost to font coverage. + */ + static void renderBullet(SectionBuilder host, String text) { + host.addParagraph(p -> p + .dot(4.2, ACCENT) + .inlineText(" " + text, BODY) + .bulletOffset(" ") + // Wrapped lines align under the first line text, not the dot. + .indentStrategy(DocumentTextIndent.FROM_SECOND_LINE) + .lineSpacing(BODY_LEADING) + .margin(0f, 0f, (float) GAP_ROW, 0f)); + } + + /** A named, vertically centred paragraph node. */ + static DocumentNode paragraph(String name, + String text, + DocumentTextStyle textStyle, + TextAlign align) { + return new ParagraphBuilder() + .name(name) + .text(text) + .textStyle(textStyle) + .align(align) + .verticalAlign(TextVerticalAlign.CENTER) + .build(); + } + + /** One packaged icon at a given size, as a node. */ + static DocumentNode icon(String token, double size) { + return new ImageBuilder() + .name("Icon-" + token) + .source(NorthlineIcons.image(token)) + .size(size, size) + .build(); + } + + /** The same icon, configured in place on a row's own image builder. */ + static void configureIcon(ImageBuilder image, String token, double size) { + image.name("Icon-" + token) + .source(NorthlineIcons.image(token)) + .size(size, size); + } +} diff --git a/templates/src/main/resources/templates/proposal/northline/icons/badge-acceptance.png b/templates/src/main/resources/templates/proposal/northline/icons/badge-acceptance.png new file mode 100644 index 0000000000000000000000000000000000000000..2c7eca12bd3deac92faaeff666a17a2e9c1c649b GIT binary patch literal 1540 zcmZ{kc~sI_6vrPRDw>0)<&tYUW!a)qVUSBAM;KhnRBUP#1S@l+#9RY1%`6u(4RguX zqn4HCl4Fffsd=;!cgHmooRG1?r3JH?-^@8PbLNlUx%YkUyZ3$1{o|fS&p0 z0RVK!Bo9A`w7*j03@vgfR_fq5|rY}0En{(Ku!YyR|tS1tE6e~ zE~ua$O7Zl72puKi5f=iAMcN+=k@mMMBHYDLpur}46E)&Jkm0Z;!LLclwng|DPZ#h8cb+@!JA2e<2VO z*#6sr9Uc`H%ce)MzO6A&@67~2O-%OK?Vm96rnK|CDbe(~E52A3%_L?wnOJC=Kc?(D zJMkE$buKvTEH%VX(v)~ax8G>5wd_f;#`_8fT6F3Z5v^Q*J&oVO=k=5hoJ?`{$M!uM zF1;*&E0@caCu#KIiMN$YDUa?Py&Xa`Iz#`*dW`l3U@bSi>^k@XGfq=dPic!r`u(SG zd(b_HS7GLcV7b5-k$h_Oc4Xg0bJpqvb*G{3!-F{wtGsrJN=0;<1#92U`TK%OLb2_E zPtGDkk$!)7mbYUtjG3(RnbcJ$zxrzpFz$EV!3-Bojw zBOl$>vmiPKH$^pp~zRSzc_DahQ+{nrs?v1{^waS-_z^Vb5f4(qG^V-adk3gqQnZd&v zxzy~)G9Jrc+)bm(ba8ra+4Hf7cmkdVLEx+e@OF(LxC_!JV+*%ez*fswnJZ9=5ZO)@ zGZ#dajFSCaY)p7<_-q+PGH>++z&l)jcs6fU1K^#i!ZXtZci0ihEo&>OYK=te4;wf% zFSiUS0S=4I6Oy2y6CrC#IdTkKw6yrqM0B$~W3>+v>H%9NJv?2c{`>Gm@ki%~yIPjj z%efWJuf>R$@OVjd?nXcPmHI(7J}-sU`~iH7tR4G&r9N;GhE$%fqjGewYv__VWolA_ z6g2Q%4}_o2abaaa&lVTA)A%ihtT&vWlD|4k5?1ojbH!H^CyDF)U0TprJ)OmuNPe6x zmT`Fn=ot-uT?z@$lTH(wU~G4no5pSy>s=C+{9sU;hYm;X$rp|xmAc#=>{ZyfQOU^6 zcu8gCu%K}!y{kRr6HF?;WE7ASH@Q~t-YCku4me(juvr%Uf+JO;Wj3qbn45U*LEu6S zSj&KUw8772A$5(lEgj>y`d#-;4+#3}Swpo=1M(N~jEEIn4=U#k6O%i4^orSjvxkh< zhi{u<2V1?*jk_|F<69r}!MDJz+MqXW1I_m^8-rK+39*BMw%&5mS6o{$-cM3PAFN*PZ3Mg7SKNebj nW=&2AvcEpI|G%X|XBVkppy33&L}Kt9T8Ds4^zpdoPD}k0H=~{} literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/proposal/northline/icons/badge-deliverables.png b/templates/src/main/resources/templates/proposal/northline/icons/badge-deliverables.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe3a6432fb8ea126aae7347a7c31fe198b42ad9 GIT binary patch literal 2548 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 Co>;~J literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/proposal/northline/icons/badge-investment.png b/templates/src/main/resources/templates/proposal/northline/icons/badge-investment.png new file mode 100644 index 0000000000000000000000000000000000000000..8d422c44dfe79466794ea4e4d051ff0cfecbda8e GIT binary patch literal 2019 zcmZ{ldr;Ep8pnU&4M7DrNTn<}d7+!4q7vQ-@3)M+Q6^%VmsD0I6D-lxA}@HVO~tg9 zS{Ji4b31yxlv-*TWpy-NFNxZ!VF`PT%?R<(&Y3fF{@7>cc|Pwv@AI8!-kEpi%RLb6 zqYp(x0RYhV^CcftllCnk+Uh!2l}%8?EY9~}5CE_&0f18o019=BvjhN48~{jY06?q) z03*iLj!+l%g*H9FhpeVLzU=SJQ$v^G8e9?Hmr-IuY&diFWq8aX2ClM|d6}`9DEw`mv;h zoWB$Vy6$&&-NVW&E{fThVK-`Z-O0WY0sVCO+1NmPUJ-4Cb-3D^Kp+ ztF@E%cYzSGU%*A*d2pQ@9)~zf4@CUdf8K_VDB})WUa++dHOEVC^pZ-cbUiql0<}Qr zBXZ1UL8+-ISZdM9?87T>ufgq|*yEq-GNmiE?BLdM#~T$E^6MS%2BN~Z^MeQY_p0G2H$~5XUA z0xwxvH~X71W`A~uxvCr4T(+yP+wrBdj@r~#!89DbVo}b ztcmQdjCN8dq4ZvBr&31aDc|Xq&^RP{-0)gd|GcDzYUR<3XoH7-y>_5^OGMC~o2R4k z43py{A#F{l_6aNZ$XHJ0sO!9=hi9RyZQ1=j=(niP!m(e%IN3s*aEOdUtP#kH{AC`2 zjmM4MKTy&sHYv5UV@TEN6?jMamZ`y!FXMOI8dM&qAF@JI^kcAi$>-h48&Z9@TuGOx zAwpPdX>vMko+r#zm7!*G^df_+xrCvQU>hrI>65JQ-1A_vg^SD23f~u<4AHt=LFH)C z*iYqSkW6PvKr(0n0$VyucqVx~ap)qIvx~p#c$+%{&eFY~i>QH6hQ5tl;cWbHWXAtX zK!^P1X0aY7F&P0X?7#en!TDWPWTQ{H{n=^Sj$^6kJA5rYdYkk3#+C%mbPrqNNRAHd zgR#&AYQ{QLT;g$~9zykuHCU)bt$GgXz51T=)!LU7OIm3SA7rciy9qE{f&i#&(AlLK zc}Oa{LlYsXz0s0ip@wx~Gj&?V_Mx1Qk{jWx6sB7V&Kr71yh*}^f`S{`-ZdqPkS>C+ z#fe(HhKP93Kp=8fF+Nt=A~?fFQ$6olJWXtm65k>b*UOl2u#_%)+iW01iOm?~Xep-! z)}?tH&+OkD)g%C%^J6s9L9C)@tD3P10oz__l((wna|SXS@kwzcMXTzuKp8BaU`|b9 z&i`V_+Jv1i7P7rgNS=a60ykezxCb~~(h^pWY$H`7PL0l%r7cmd!A-~R9-jET*tz58 zG&hNtG5pxi)gaOt;k@0opr(VzAP#*Y=uUx@wf}B;L`AzJ0^We>`4K{hYbmK#Q`JiY zDGpP4j-wUJKkbxqEQX5sR<}*t%IhI7HIDB6r`sdhmQEWi|8G4buaO{PA+F!kcd4H0 zL(v=$%qdN*lnK&IgA8dpXI;%8w)HlnwNH_FFHQ|M9WB!7*3 zWoQeJxV7EB4m0)#wv^u67HR6xEjY8|hu9-$(uP55J=mhnRfMpQF$W%|Fx!HG^3n<6@I+rT!`7cK+`trfRhQ z0ZP|!15bgEgvc{Kfcm5ea|=0N=FoF3Kf9c<+_3f@SJ!Hupxb(95>m49=w-~=GsxEl z0L8~kRDNK|ZE~mkoTY=Sc(G?YW__tsH`6m{-l+$kzhYkRhBn>j63gm2Bi?37Smht~ z5aSu{GKapp0&b8phz(l;hZvUsYX*L`_EYIH9%?qLcjGwc9B0O`(s{XRCC&dtqJKEV z5M{+N()}6lrt9KEz~6ntEVg`HTwkwqb%&BZKv%lkto-Q>|Fwuq)!r(2O9eBk*_j-w Pc00h&E129wq80oH99D~} literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/proposal/northline/icons/badge-scope.png b/templates/src/main/resources/templates/proposal/northline/icons/badge-scope.png new file mode 100644 index 0000000000000000000000000000000000000000..c4af91d00697c80b59458819af17bd54259279a8 GIT binary patch literal 1159 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo3dtTpz6=aiY77hwEes65fIbc|1LK5e(ZCBQ)b`JVId&drqk#xr9k5XkPF zwTqFxRe<4G!{h@h2607`e;?3)pnhT1RkqcqnJ>?Z_#u2C^#R)kmNQIWC(X`dx_v=WigZ@lWfrNA-xGhE&wufJ<&8G^RZJ_GCC+C$Ge@wQz5ILk7Ly;de&bP>|EK4@ zn7W8h!C&|XTh6ztMBc*Df!3`b-dW-tpBGbGveH#wDFe;s|m$xr%K z;mk0OhX#i))aC78d*yH2A@Add{28V<%uY$)kh=c*^SK&df4i)C^X>NS8*FyW>l^(K z%wOdAMDJ?h!YsxLmOE_Ayi9&r+-8oOaP_6OL!5vs^9*)5=IdQ+j2|(5;M>7&@`=f# z?%mNx*BjY){BXV6u=;@Wf_ddDcb{l{u2di{zF*w*0bk_XNxRrCOuS?CQhVCB`ppM) zJ??)vS(5caB{zUlw{dUt(+c+XICRNqi1x7&|N(4A~W)A$(4CLG9nZKee94NQb#TTXK5p z_D^;%*FQQx`Rr7KSCdOiE~~6gEMnHIJ|I?Lw(+0RwXqcnTk#j4G|VY{E4>2&3r^ZG#Xrkf0FXE=my{CGUJgavkqu|5Ni)` zQCNLd>w=DHZfZMQfqVtin^n~o2fj5dPuZF!61niqm80G%=MyBqEHC&HE&Rjp+lnKv tmh0KAICOG%e|KYD#0pSC2ZG4<{RSS&wxX|MwgPh`gQu&X%Q~loCIA4E;&=c6 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/proposal/northline/icons/badge-summary.png b/templates/src/main/resources/templates/proposal/northline/icons/badge-summary.png new file mode 100644 index 0000000000000000000000000000000000000000..cb967c5cbc423fbcb2e3d2f6c553a99a3ff9083d GIT binary patch literal 1168 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo3dtTpz6=aiY77hwEes65fI*%lKaoI@c6%`clZY7_ZW}*|Zn<#W!ArP0-oe}2bIp}|Zr;sytzvuF3>!FA zk`@WxNH#Ps42>vzc5mkWH=lk_I%_uDy84{?=I`fc-sC-!x z&T>DNW~x50e&^0N3)2*DZ`Ts8=iI?=!|;ybdIM`>j`IWF4@^I9hI4wlxP09uC#bKS zWdG}Ee@BIwp!ZWxqv#%$dSj)wS2^(-oT;D07h8P(J?l@Lw?s=WRrW;77eA+0q6LyWR`V@V+dFB3l}pSriL7}?4L3yZD;GU~ils1A zh`~(B$;`!9)S%u^diMdV4ZidKrO7xah*t35ne*WD-U%1Jsl1f~273>chy(Xa^bRupTOQ0QR$w(3D7g8hOA~9)@=_q*Zmrjb zhLah-O{_kC+Cn-DNeZ$ zMXL_*YIsdq=@XUgXLUd)@alr%Bca=m-RYPq7;vq~Ut?WEiqy3k*^liUdRRL)G8l>} z9Ai2X(ICMskj$8*r!uRai~BA6`m-SR-TI=I>ygP~+TexlY9%UVC_fO)&>2R*fLI2wK*Nem^?3PoAzrViwH?r#%%Nagd!~P`+ zs5Xmn=WE7KU;pmfA*XN*#k9<7k&v}ze9B3;Qut55zn9e)ByFGg=g9J?_w!esyvT8N ze(9W}fmt~#nfNrzR_(T3_V?Pq7mL{6Fy0TA^7tG1gDq#}W`&g1XB?BIxFuHZ%wzif z%7^0yyWOA3-M5~+kg#Wb&+vC%z+J%uw~fB3Ok$bxtiR#;0e8K&7LDY)41GcG_nj~` zxx*;OyuN`svFO$_hKkr@yCyF_xNY0!*u^&|_1@JBcZbE(fP>Kj5{O)zf6n2euDlC2PwU#4)bxaofvUdNfsl zV^hO{b9FM}#_A!LukBm@cF*CLpS`8TE+{^)%{YH%&k|-OC^%`7Cc8kRt7y*D9~qVL zSDL;yuKuAR)qB$`;^)ncAGSBRA23dkj$poZPc&+STmhR5)BFbc1MgQk&X_OC&0ip1 z!D_?)t|I*CN!AaH6}&Rc5zQ;44%j}h{jlVeglRCt{f62HN2DAsf0^y{(fWXQ0=uZZ z6K@&Ed$zd?%R5%iVCs-#uD%yOccHCQuFo>Q1dW@^53KrrH7#RmfV9qfrq|jJ%o4XL zFU}RtGBJHUrI0mZ{)fME1ycL31xnvYsJVNM!*tgco{WpX&KLVN#y;rC`aXRQZ-edw zOhEG>3epS`}eo6 zDz-n6T7Q4lyT1)je*X?bb;oK{$ye+amu*2_gqePGPrBpNyyw8!-qmW|aoz0ttVs6P z#+8Y|@4lz+{V~(==fSm)OE^u9cryxF|1in~n|3kW6FlF)(&&Iq-^QvFUk$@vr~HfOD88V4hUIkf tnz~7!Bv#kIRM>9w|Dm@F1f;as=S6RvvHPXED=;51c)I$ztaD0e0stk0xgP)k literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/proposal/northline/icons/badge-timeline.png b/templates/src/main/resources/templates/proposal/northline/icons/badge-timeline.png new file mode 100644 index 0000000000000000000000000000000000000000..861438a155e9e1c495b27ede5e4ded81d65f4a7b GIT binary patch literal 1171 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo3dtTpz6=aiY77hwEes65fIu;%3+#r1*|O=Y`>_ zOHC}HyBB+&Ns)9Z`3eq9~iz*xY$!|?I19gS97 zcGcA;KIRp3=wlT~W;_zXU^vzNM~&TG=CDuagX%JUW+a~Z-Fs3eWln13Wpn47zj_-U z|Ct;bD?er1IobU@ci7|@qz_yT=9LP_S!nF@;DXVVmG=dHFuq}sZ&-g|{w61v=%;<^ z>wgqK;4Ii#cztWL^8?)vLO0kuL>H}L$UY#Qu-QjaR+-t3>3qZA2*yRf?%w&yd}wa| zbM~qOwhvf0*j#lMS#;(=xp+m-Tzg;s3YI&araC$YrfiyhVAZapx+zm1NGHu}x}p9+ zsKEQ~C9%zp9|9ATt}|-4tbC?(^b%ga})?>akuNZS6ABmC}@zg6>(_?KUQcd57?793&@KCdDt6xHv~>pH@} z$W!;glX|n*_zqQFgVM^^Q@tY--Rx$-|dhxL# zLxx|Y<1wS`QLr3X*|Lr1BCGdJU%hR8_p*4wwZG!l-LkXvDvepZP%UbGh`@ZznUO8a($rSkoF1{dV%@84N#96}g;r?Yp&44^?BK&4LBB zu@-Uy>GNfdGe3GW`LUrx55iA9j~NTUoh-CbIA>?s$KLT#0_u2(z0X-imy14U?VYhd zAo9!SCO;0lE-iz$WT#I}vx`qfKl$8LCsY$M<3`>ijvveNQoC;|KDv?AA&{Wuwu|>q z(Dp5@f7E`cX?45JZ2ZLip>Klap+AppKUiMV@M?&;Df~cGF}K~7!|sR63FYFTY_7?g z-#9IUbs$lV*D-m(H^6 pytB*el1tt(iR2zbFv0st{P0WNgLC;WF#>ZZgQu&X%Q~loCIAr5-bw%f literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/proposal/northline/icons/fact-contact.png b/templates/src/main/resources/templates/proposal/northline/icons/fact-contact.png new file mode 100644 index 0000000000000000000000000000000000000000..553d008b221d085a4762a4ee78baee887990c80c GIT binary patch literal 2946 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 T`eX_l($5V literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/proposal/northline/icons/fact-duration.png b/templates/src/main/resources/templates/proposal/northline/icons/fact-duration.png new file mode 100644 index 0000000000000000000000000000000000000000..c9c7cc34d9ea09059884b6fc68c7fd5dac39ea00 GIT binary patch literal 1400 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo3dtTpz6=aiY77hwEes65fIpjmDjfYSeO}awyV2Qhta%|+u{4l`&kF{ zJ}?$+e^Srb0`oaW@%f*tw>O#fl>W}@Qf3ulUXQ)}O6kizjtI(bLG5R-4u!eZXqPmZv=%-S_CcG4>HZ zv*VuHZU0ik=|u&LufI)Mps#AT@W|FBCmo$)rdg=|czWih+xLI>=H9uM+32rO!Tv`1 z(Ia{H1MO<}wz(X>!(=jR^`0-^U47PgTfMD4mV6>J;V*0Ufa;ci|jc$^Y*! z*3N%#RJ-|&-rhY2eINYUynf;{PnpPPb`d|5@@B_3s$Ig1H>4Y- zSb54w`$d}@7Pc^)gCG&v7TfFJPpkR=Q<%Ak)uQTr+AZ~@Rx6!b_kT{@dq&{$HD4bY z#Rg+Ia_w(QvynHLb69ES+nNIcQ$DhsDYH|Un7P|qy-(o4OgK6<>C@u6>92F+#X|Rs z8onyudGA|m@Ky$hn1vwo98N|AT3IDhvL!0&@y){rcJsvLe%Yo!XBDf(De*Zbf>PnX z53TfR_;+U0;R%yv@_%pYka*z3frOqg7u}lf`h@w?8*cSajG5nBg$RQIJ`X?T6u9*DFK%MQv zAq$6HCI{~8T<88JzIbZVge$&Vwwv=c+6QU3oafsX8C_Acq9spb<(Ulo^}qBAy5qKf zSkQlvS@OEix7X*w{?(>lVp=LWBR8SOyJ*k+qMr9Wb+3<~x})-TL1F!SzVvhZF0%e( z(VJNkIU}t~pZ&1UH|9&vJKU{1Xa7{;7u_5sKKUE(I_CJZm8yK{#4)a(9!z#@pj)78&qol`;+0FSd% A<^TWy literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/proposal/northline/icons/fact-start.png b/templates/src/main/resources/templates/proposal/northline/icons/fact-start.png new file mode 100644 index 0000000000000000000000000000000000000000..6a39b6cbc62f9b7ee7186d9f0f038c817bcde31b GIT binary patch literal 4924 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 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/proposal/northline/icons/goal-brand.png b/templates/src/main/resources/templates/proposal/northline/icons/goal-brand.png new file mode 100644 index 0000000000000000000000000000000000000000..711a159781086f443e86aa1982241c77b4089c80 GIT binary patch literal 4269 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 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/proposal/northline/icons/goal-growth.png b/templates/src/main/resources/templates/proposal/northline/icons/goal-growth.png new file mode 100644 index 0000000000000000000000000000000000000000..e697c58d8ba8d5bf3e884e81dbef66bf20d2a1fb GIT binary patch literal 2874 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 V Date: Sun, 30 Aug 2026 20:16:49 +0100 Subject: [PATCH 05/85] feat(templates): add the ConsultingInvoice preset and the structured invoice model (#611) --- CHANGELOG.md | 28 + .../readme/examples/invoice-consulting-v2.pdf | Bin 0 -> 91956 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../support/ConsultingInvoiceSampleData.java | 127 + .../examples/support/ShowcaseMetadata.java | 1 + .../v2/ConsultingInvoiceV2Example.java | 54 + .../resources/consulting-invoice-logo.png | Bin 0 -> 64808 bytes .../presets/ConsultingInvoiceFixtures.java | 135 + .../ConsultingInvoiceLayoutSnapshotTest.java | 43 + .../presets/ConsultingInvoiceSmokeTest.java | 168 + .../ConsultingInvoiceVisualParityTest.java | 46 + .../invoice/consulting_invoice_layout.json | 2867 +++++++++++++++++ .../consulting_invoice_overflow_layout.json | 2867 +++++++++++++++++ .../sample-data/consulting-invoice-logo.png | Bin 0 -> 64808 bytes .../consulting_invoice-page-0.png | Bin 0 -> 94555 bytes .../templates/data/invoice/InvoiceBrand.java | 47 + .../data/invoice/InvoiceContactBlock.java | 45 + .../data/invoice/InvoiceMasthead.java | 48 + .../data/invoice/InvoiceNotesBlock.java | 30 + .../data/invoice/InvoicePaymentBlock.java | 61 + .../data/invoice/InvoiceRecipient.java | 42 + .../data/invoice/InvoiceServiceLines.java | 100 + .../data/invoice/InvoiceSummaryBlock.java | 23 + .../data/invoice/InvoiceTotalsBlock.java | 51 + .../data/invoice/StructuredInvoiceData.java | 215 ++ .../StructuredInvoiceDocumentSpec.java | 35 + .../invoice/presets/ConsultingBody.java | 238 ++ .../invoice/presets/ConsultingClosing.java | 179 + .../invoice/presets/ConsultingIcons.java | 70 + .../invoice/presets/ConsultingInvoice.java | 193 ++ .../invoice/presets/ConsultingMasthead.java | 221 ++ .../invoice/presets/ConsultingStyles.java | 149 + .../invoice/presets/ConsultingText.java | 169 + .../invoice/consulting/icons/bank.png | Bin 0 -> 2769 bytes .../invoice/consulting/icons/email.png | Bin 0 -> 2181 bytes .../invoice/consulting/icons/location.png | Bin 0 -> 3495 bytes .../consulting/icons/payment-calendar.png | Bin 0 -> 2764 bytes .../invoice/consulting/icons/phone.png | Bin 0 -> 2992 bytes .../invoice/consulting/icons/website.png | Bin 0 -> 6072 bytes .../invoice/StructuredInvoiceDataTest.java | 173 + 40 files changed, 8427 insertions(+) create mode 100644 assets/readme/examples/invoice-consulting-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/ConsultingInvoiceSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/invoice/v2/ConsultingInvoiceV2Example.java create mode 100644 examples/src/main/resources/consulting-invoice-logo.png create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/consulting_invoice_layout.json create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/consulting_invoice_overflow_layout.json create mode 100644 qa/src/test/resources/sample-data/consulting-invoice-logo.png create mode 100644 qa/src/test/resources/visual-baselines/invoice-v2-layered/consulting_invoice-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceBrand.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceNotesBlock.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoicePaymentBlock.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceRecipient.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceSummaryBlock.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceTotalsBlock.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceData.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceDocumentSpec.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingBody.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoice.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingText.java create mode 100644 templates/src/main/resources/templates/invoice/consulting/icons/bank.png create mode 100644 templates/src/main/resources/templates/invoice/consulting/icons/email.png create mode 100644 templates/src/main/resources/templates/invoice/consulting/icons/location.png create mode 100644 templates/src/main/resources/templates/invoice/consulting/icons/payment-calendar.png create mode 100644 templates/src/main/resources/templates/invoice/consulting/icons/phone.png create mode 100644 templates/src/main/resources/templates/invoice/consulting/icons/website.png create mode 100644 templates/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceDataTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index cbec0eca9..35441123d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,21 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **A structured invoice document model.** The invoice family's data layer knew one + shape — an invoice as pre-formatted display strings, with one address block per + party, line items whose quantity and money are already rendered, and a flat list of + summary rows. That cannot carry the structured business invoice: a brand lockup with + the sender's own logo, labelled masthead metadata, a contact block with a business + registration, priced service lines carrying `BigDecimal` figures and the unit they + are counted in, a totals stack with its own total band, bank payment fields, and a + footer line. `templates.data.invoice` now carries that second model — + `StructuredInvoiceData` (+ its section records) wrapped by + `StructuredInvoiceDocumentSpec` — alongside the display one; a preset consumes the + model whose shape it renders. The brand logo arrives as `DocumentImageData`, because + the logo is caller-supplied content rather than template chrome, and it stays + optional so a wordmark-only lockup composes. Every component normalizes `null` to + its empty form, money and quantities default to zero, and collections are frozen. + - **A structured proposal document model.** The proposal family's data layer knew one shape — a titled run of prose sections with a flat timeline and pricing list — which cannot carry the structured business proposal: brand marks, an authored multi-line @@ -21,6 +36,19 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **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 + with an emphasized total band and the bank details beside the notes and the due-by + chip. Ships as `invoice.presets.ConsultingInvoice` consuming the new structured + invoice model, with its contact marks, bank badge and calendar packaged in the + templates artifact, porting the rendered layout of the published standalone + `northpoint-consulting-invoice` template. Long invoices flow: the line-items table + repeats its header and the totals stack stays whole. Guarded by a smoke test + (including the empty document, the wordmark fallback, the rendered figures and the + repeated header), exact layout snapshots for the single page and the overflow, and a + pixel-parity gate; the examples showcase gains `invoice-consulting-v2`. + - **A second invoice preset: `ClassicInvoice`.** The letterhead-style invoice — a header band with the company name and a 28pt INVOICE title, a TOTAL DUE hero strip, BILL TO / FROM party columns, and a dedicated Summary table composed after the diff --git a/assets/readme/examples/invoice-consulting-v2.pdf b/assets/readme/examples/invoice-consulting-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0d832fbded0cf36b1ee41e6fc097ea6f9dec83d3 GIT binary patch literal 91956 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%0AU4R-fua1m)$8jT>#by> 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
  • hhIGBS{5WRmBqggVG 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 J$f?QW{4d(SCF1}9 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 398cd51e9..dbecd3306 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -80,6 +80,7 @@ import com.demcha.examples.templates.coverletter.CvSidebarPortraitLetterV2Example; import com.demcha.examples.templates.coverletter.CvTimelineMinimalLetterV2Example; import com.demcha.examples.templates.cv.v2.CharcoalGoldExample; +import com.demcha.examples.templates.cv.v2.TealPulseExample; import com.demcha.examples.templates.cv.v2.TerracottaRailExample; import com.demcha.examples.templates.cv.v2.CvBlueBannerExample; import com.demcha.examples.templates.cv.v2.CvBoxedV2Example; @@ -156,6 +157,7 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + SerifHeadlineExample.generate()); System.out.println("Generated: " + CharcoalGoldExample.generate()); System.out.println("Generated: " + TerracottaRailExample.generate()); + System.out.println("Generated: " + TealPulseExample.generate()); // Cover letters (v2 layered — 15 paired letters, one per CV preset) System.out.println("Generated: " + CvBlueBannerLetterV2Example.generate()); 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 9df177429..0d2b08574 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -65,6 +65,7 @@ record Entry(String title, String description, List tags, String codeUrl cv("cv-serif-headline-v2", "SerifHeadlineExample", "Serif Headline", "Volkhov masthead over a two-column body: roles on a timeline rail and marked project cards beside degrees and skill meters, closing with full-width certification and achievement bands.", "serif", "two-column"); cv("cv-charcoal-gold-v2", "CharcoalGoldExample", "Charcoal Gold", "Charcoal sidebar with a ringed photograph, rated skills and languages, beside a paper column with a two-tone name, a dated experience rail and paired credential columns.", "sidebar", "photo", "gold"); cv("cv-terracotta-rail-v2", "TerracottaRailExample", "Terracotta Rail", "Serif monogram over a terracotta rule, contact channels behind their marks and two bulleted lists, beside a letter-spaced masthead, roles on a ringed rail, a projects grid and the degrees.", "sidebar", "monogram", "terracotta"); + cv("cv-teal-pulse-v2", "TealPulseExample", "Teal Pulse", "Clinical sheet in five bands: a heart crossed by a pulse beside the name, a contact strip on rules, competencies beside the summary and roles, and a three-column closing band over a tracked tagline.", "clinical", "badges", "teal"); // ===== Templates / Cover Letter (v2 layered, paired 1:1 with CV) ===== // Registered directly: letter() points at the layered preset examples under diff --git a/examples/src/main/java/com/demcha/examples/support/TealPulseSampleData.java b/examples/src/main/java/com/demcha/examples/support/TealPulseSampleData.java new file mode 100644 index 000000000..1022015bd --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/TealPulseSampleData.java @@ -0,0 +1,167 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.OptionalDouble; + +/** + * Shared sample data for the Teal Pulse CV example. + * + *

    The sample is the preset's reference content: a nurse's one-page CV with + * four contact channels including a link, twelve competencies, a summary, + * three roles with their highlights, a degree, four certifications, three + * facts and the closing tagline.

    + * + *

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

    + */ +public final class TealPulseSampleData { + + /** The break an entry stacks its highlights on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + /** The dash this sheet writes a date range with. */ + private static final String EN_DASH = String.valueOf((char) 0x2013); + + private TealPulseSampleData() { + } + + /** The single-page reference CV. */ + public static CvDocument sample() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, competencies())); + placements.add(new CvDocument.Placement(Slot.MAIN, summary())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.FOOTER, education())); + placements.add(new CvDocument.Placement(Slot.FOOTER, certifications())); + placements.add(new CvDocument.Placement(Slot.FOOTER, facts())); + placements.add(new CvDocument.Placement(Slot.FOOTER, tagline())); + return new CvDocument(identity(), placements); + } + + private static CvIdentity identity() { + return new CvIdentity( + CvName.of("ISABELLA", "MOORE"), + "REGISTERED NURSE", + new Contact("+44 7700 900123", "isabella.moore@email.com", + "Manchester, United Kingdom"), + List.of(new Link("LinkedIn", "https://www.linkedin.com/in/isabellamoore-rn")), + Optional.empty()); + } + + private static SkillsSection competencies() { + List entries = new ArrayList<>(); + for (String name : new String[] { + "Patient Assessment", "Care Planning", "Medication Administration", + "Clinical Documentation", "Infection Prevention", "IV Therapy", + "Wound Care", "Patient Education", "Safeguarding", "Team Collaboration", + "Discharge Coordination", "Electronic Health Records"}) { + entries.add(new CvSkill(name, OptionalDouble.empty())); + } + return new SkillsSection("CORE COMPETENCIES", + List.of(new SkillGroup("CORE COMPETENCIES", entries))); + } + + private static ParagraphSection summary() { + return new ParagraphSection("PROFESSIONAL SUMMARY", + "Compassionate Registered Nurse with 7+ years of experience delivering " + + "high-quality patient care across acute medical, surgical, and " + + "community settings. Skilled in patient assessment, medication " + + "administration, multidisciplinary collaboration, discharge " + + "planning, and maintaining accurate clinical documentation. Known " + + "for calm decision-making, strong communication, and patient-centred " + + "care."); + } + + private static EntriesSection experience() { + return new EntriesSection("PROFESSIONAL EXPERIENCE", List.of( + CvEntry.builder("Senior Staff Nurse") + .subtitle("Manchester Royal Infirmary, Manchester, UK") + .date("2021" + EN_DASH + "Present") + .body(String.join(NEWLINE, + "Deliver direct nursing care for adult patients on a busy " + + "acute medical ward.", + "Coordinate care plans with doctors, therapists, and support " + + "staff to improve outcomes.", + "Supervise junior nurses and support student placements during " + + "clinical rotations.", + "Improved discharge coordination and patient communication " + + "across the ward.", + "Maintain precise documentation and ensure compliance with " + + "clinical standards.")) + .build(), + CvEntry.builder("Staff Nurse") + .subtitle("Salford General Hospital, Salford, UK") + .date("2018" + EN_DASH + "2021") + .body(String.join(NEWLINE, + "Provided nursing care across medical and surgical units.", + "Administered medications, monitored vital signs, and escalated " + + "deteriorating patients promptly.", + "Supported infection control procedures and safe discharge " + + "planning.", + "Built strong rapport with patients and families during " + + "treatment and recovery.")) + .build(), + CvEntry.builder("Community Nurse") + .subtitle("NorthCare Community Health, Greater Manchester, UK") + .date("2016" + EN_DASH + "2018") + .body(String.join(NEWLINE, + "Delivered home-based nursing care and patient education.", + "Managed wound care, medication support, and follow-up visits " + + "for vulnerable patients.", + "Worked closely with GPs, social services, and families to " + + "coordinate holistic care.")) + .build())); + } + + private static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("BSc (Hons) Adult Nursing") + .subtitle("University of Manchester") + .date("2013" + EN_DASH + "2016") + .build())); + } + + private static EntriesSection certifications() { + List entries = new ArrayList<>(); + for (String name : new String[] { + "NMC Registered Nurse", "Immediate Life Support (ILS)", + "Venepuncture and Cannulation Certification", "Safeguarding Adults Level 3"}) { + entries.add(CvEntry.builder(name).build()); + } + return new EntriesSection("CERTIFICATIONS", entries); + } + + private static EntriesSection facts() { + return new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Languages:") + .body("English (Native), Polish (Conversational)") + .build(), + CvEntry.builder("Right to Work:").body("United Kingdom").build(), + CvEntry.builder("Availability:").body("1 month notice").build())); + } + + /** + * The closing line. Its title names the berth and is not drawn — only the + * body reaches the sheet. + */ + private static ParagraphSection tagline() { + return new ParagraphSection("TAGLINE", + "COMPASSIONATE CARE. CLINICAL EXCELLENCE. BETTER OUTCOMES."); + } +} diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/TealPulseExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/TealPulseExample.java new file mode 100644 index 000000000..35243ac00 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/TealPulseExample.java @@ -0,0 +1,51 @@ +package com.demcha.examples.templates.cv.v2; + +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.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.TealPulse; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.TealPulseSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code cv.v2} Teal Pulse preset against the nursing + * sample. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-teal-pulse-v2.pdf}.

    + * + *

    The preset owns its page geometry — the design is drawn on a raster + * whose proportion is not A4's — so the session starts unconfigured.

    + */ +public final class TealPulseExample { + + private TealPulseExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare("templates/cv", "cv-teal-pulse-v2.pdf"); + CvDocument doc = TealPulseSampleData.sample(); + DocumentTemplate template = TealPulse.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + template.compose(document, doc); + 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/cv/presets/TealPulseFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseFixtures.java new file mode 100644 index 000000000..d9138f809 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseFixtures.java @@ -0,0 +1,166 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.OptionalDouble; + +/** + * Shared fixture data for the {@link TealPulse} gates — the SAME document + * feeds the pixel parity test and the layout snapshot test, so a geometry + * shift the pixel budget absorbs still trips the exact snapshot, and vice + * versa. + */ +final class TealPulseFixtures { + + /** The break an entry stacks its highlights on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + /** The dash this sheet writes a date range with. */ + private static final String EN_DASH = String.valueOf((char) 0x2013); + + private TealPulseFixtures() { + } + + /** + * The canonical one-page CV — the brand mark, four contact channels + * including a link, twelve competencies, a summary, three roles with their + * highlights, a degree, four certifications, three facts and the closing + * tagline. + */ + static CvDocument canonicalCv() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, competencies())); + placements.add(new CvDocument.Placement(Slot.MAIN, summary())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.FOOTER, education())); + placements.add(new CvDocument.Placement(Slot.FOOTER, certifications())); + placements.add(new CvDocument.Placement(Slot.FOOTER, facts())); + placements.add(new CvDocument.Placement(Slot.FOOTER, tagline())); + return new CvDocument(identity(), placements); + } + + static CvIdentity identity() { + return new CvIdentity( + CvName.of("ISABELLA", "MOORE"), + "REGISTERED NURSE", + new Contact("+44 7700 900123", "isabella.moore@email.com", + "Manchester, United Kingdom"), + List.of(new Link("LinkedIn", "https://www.linkedin.com/in/isabellamoore-rn")), + Optional.empty()); + } + + static SkillsSection competencies() { + List entries = new ArrayList<>(); + for (String name : new String[] { + "Patient Assessment", "Care Planning", "Medication Administration", + "Clinical Documentation", "Infection Prevention", "IV Therapy", + "Wound Care", "Patient Education", "Safeguarding", "Team Collaboration", + "Discharge Coordination", "Electronic Health Records"}) { + entries.add(new CvSkill(name, OptionalDouble.empty())); + } + return new SkillsSection("CORE COMPETENCIES", + List.of(new SkillGroup("CORE COMPETENCIES", entries))); + } + + static ParagraphSection summary() { + return new ParagraphSection("PROFESSIONAL SUMMARY", + "Compassionate Registered Nurse with 7+ years of experience delivering " + + "high-quality patient care across acute medical, surgical, and " + + "community settings. Skilled in patient assessment, medication " + + "administration, multidisciplinary collaboration, discharge " + + "planning, and maintaining accurate clinical documentation. Known " + + "for calm decision-making, strong communication, and patient-centred " + + "care."); + } + + static EntriesSection experience() { + return new EntriesSection("PROFESSIONAL EXPERIENCE", List.of( + CvEntry.builder("Senior Staff Nurse") + .subtitle("Manchester Royal Infirmary, Manchester, UK") + .date("2021" + EN_DASH + "Present") + .body(String.join(NEWLINE, + "Deliver direct nursing care for adult patients on a busy " + + "acute medical ward.", + "Coordinate care plans with doctors, therapists, and support " + + "staff to improve outcomes.", + "Supervise junior nurses and support student placements during " + + "clinical rotations.", + "Improved discharge coordination and patient communication " + + "across the ward.", + "Maintain precise documentation and ensure compliance with " + + "clinical standards.")) + .build(), + CvEntry.builder("Staff Nurse") + .subtitle("Salford General Hospital, Salford, UK") + .date("2018" + EN_DASH + "2021") + .body(String.join(NEWLINE, + "Provided nursing care across medical and surgical units.", + "Administered medications, monitored vital signs, and escalated " + + "deteriorating patients promptly.", + "Supported infection control procedures and safe discharge " + + "planning.", + "Built strong rapport with patients and families during " + + "treatment and recovery.")) + .build(), + CvEntry.builder("Community Nurse") + .subtitle("NorthCare Community Health, Greater Manchester, UK") + .date("2016" + EN_DASH + "2018") + .body(String.join(NEWLINE, + "Delivered home-based nursing care and patient education.", + "Managed wound care, medication support, and follow-up visits " + + "for vulnerable patients.", + "Worked closely with GPs, social services, and families to " + + "coordinate holistic care.")) + .build())); + } + + static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("BSc (Hons) Adult Nursing") + .subtitle("University of Manchester") + .date("2013" + EN_DASH + "2016") + .build())); + } + + static EntriesSection certifications() { + List entries = new ArrayList<>(); + for (String name : new String[] { + "NMC Registered Nurse", "Immediate Life Support (ILS)", + "Venepuncture and Cannulation Certification", "Safeguarding Adults Level 3"}) { + entries.add(CvEntry.builder(name).build()); + } + return new EntriesSection("CERTIFICATIONS", entries); + } + + static EntriesSection facts() { + return new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Languages:") + .body("English (Native), Polish (Conversational)") + .build(), + CvEntry.builder("Right to Work:").body("United Kingdom").build(), + CvEntry.builder("Availability:").body("1 month notice").build())); + } + + /** + * The closing line. Its title names the berth and is not drawn — only the + * body reaches the sheet. + */ + static ParagraphSection tagline() { + return new ParagraphSection("TAGLINE", + "COMPASSIONATE CARE. CLINICAL EXCELLENCE. BETTER OUTCOMES."); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseLayoutSnapshotTest.java new file mode 100644 index 000000000..2725dc099 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseLayoutSnapshotTest.java @@ -0,0 +1,32 @@ +package com.demcha.compose.document.templates.cv.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 TealPulse} — freezes the resolved + * geometry of the canonical one-page CV, which the pixel budget cannot see: a + * small column or spacing shift stays under the visual-diff budget but changes + * the snapshot. + * + *

    The preset owns its page geometry, so the session starts unconfigured.

    + * + *

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

    + */ +class TealPulseLayoutSnapshotTest { + + @Test + void canonicalCvMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + TealPulse.create().compose(session, TealPulseFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "teal_pulse_layout", "cv-v2"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseSmokeTest.java new file mode 100644 index 000000000..99be8f790 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseSmokeTest.java @@ -0,0 +1,265 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.Slot; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link TealPulse} — proves the preset renders a + * {@link CvDocument} end-to-end with its packaged marks, sets its own page + * over whatever the caller configured, draws only the tagline's body, and + * carries the channels and the titles as link annotations, which move no pixel + * and no layout node so neither gate would notice them going missing. + * + *

    It also pins what happens past one page, which is not what the other + * ported CV presets do: the bands flow, so a longer CV runs onto a second + * page, while the body row itself cannot be split.

    + */ +class TealPulseSmokeTest { + + private static byte[] render(CvDocument doc) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + TealPulse.create().compose(session, doc); + 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); + } + } + + /** + * The text with its spaces removed. The sheet's headings and its name are + * letter-spaced with real space characters, so what is being asserted is + * the wording, not the tracking. + */ + private static String compact(String text) { + return text.replaceAll("(?U)\\s", ""); + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + /** The canonical document with one section replaced. */ + private static CvDocument withSection(Slot slot, EntriesSection replacement, + String replacedTitle) { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : TealPulseFixtures.canonicalCv().placements()) { + if (placement.section().title().equals(replacedTitle)) { + placements.add(new CvDocument.Placement(slot, replacement)); + } else { + placements.add(placement); + } + } + return new CvDocument(TealPulseFixtures.identity(), placements); + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = TealPulse.create(); + assertThat(template.id()).isEqualTo(TealPulse.ID); + assertThat(template.displayName()).isEqualTo(TealPulse.DISPLAY_NAME); + } + + @Test + void rendersCanonicalCvWithPackagedMarks() throws Exception { + render(TealPulseFixtures.canonicalCv()); + } + + @Test + void canonicalRenderCarriesEveryBandsText() throws Exception { + String text = textOf(render(TealPulseFixtures.canonicalCv())); + assertThat(text) + .contains("isabella.moore@email.com") + .contains("Patient Assessment") + .contains("Compassionate Registered Nurse") + .contains("Manchester Royal Infirmary") + .contains("BSc (Hons) Adult Nursing") + .contains("NMC Registered Nurse") + .contains("Right to Work:"); + assertThat(compact(text)) + .contains("ISABELLAMOORE") + .contains("REGISTEREDNURSE") + .contains("PROFESSIONALEXPERIENCE") + .contains("COMPASSIONATECARE.CLINICALEXCELLENCE.BETTEROUTCOMES."); + } + + @Test + void theTaglineBerthDrawsItsBodyAndNotItsTitle() throws Exception { + // The title is how a document names the berth; only the line reaches + // the sheet, so a document is free to call the berth what it likes. + String text = compact(textOf(render(TealPulseFixtures.canonicalCv()))); + assertThat(text) + .contains("COMPASSIONATECARE.") + .doesNotContain("TAGLINE"); + } + + @Test + void thePresetSetsItsOwnPageOverTheCallersOwn() throws Exception { + // The sheet is a fixed composition on the design's own page, so a + // caller who configures A4 still gets the design's proportion. + try (DocumentSession session = GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(40f, 40f, 40f, 40f) + .create()) { + TealPulse.create().compose(session, TealPulseFixtures.canonicalCv()); + byte[] pdfBytes = session.toPdfBytes(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + float height = document.getPage(0).getMediaBox().getHeight(); + assertThat(height).isCloseTo((float) TealPulseStyles.PAGE_HEIGHT, + org.assertj.core.data.Offset.offset(0.5f)); + assertThat(height).isNotCloseTo((float) DocumentPageSize.A4.height(), + org.assertj.core.data.Offset.offset(1.0f)); + } + } + } + + @Test + void contactChannelsAndLinksAreClickable() throws Exception { + List targets = linkTargets(render(TealPulseFixtures.canonicalCv())); + assertThat(targets) + .contains("mailto:isabella.moore@email.com") + .contains("tel:+447700900123") + .contains("https://www.linkedin.com/in/isabellamoore-rn"); + } + + @Test + void aLinkShowsItsLabelAndHidesItsAddress() throws Exception { + // The strip draws the label, so its gaps are the same whatever the + // profile behind it is called; the address is reachable, not written. + byte[] pdfBytes = render(TealPulseFixtures.canonicalCv()); + assertThat(textOf(pdfBytes)) + .contains("LinkedIn") + .doesNotContain("linkedin.com/in/isabellamoore-rn"); + assertThat(linkTargets(pdfBytes)) + .contains("https://www.linkedin.com/in/isabellamoore-rn"); + } + + @Test + void aRoleAndADegreeBecomeLinksWhenTheirEntryCarriesOne() throws Exception { + CvDocument linked = withSection(Slot.MAIN, + new EntriesSection("PROFESSIONAL EXPERIENCE", List.of( + CvEntry.builder("Senior Staff Nurse") + .subtitle("Manchester Royal Infirmary, Manchester, UK") + .date("2021") + .link("https://example.test/mri") + .body("Deliver direct nursing care.") + .build())), + "PROFESSIONAL EXPERIENCE"); + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : linked.placements()) { + if (placement.section().title().equals("EDUCATION")) { + placements.add(new CvDocument.Placement(Slot.FOOTER, + new EntriesSection("EDUCATION", List.of( + CvEntry.builder("BSc (Hons) Adult Nursing") + .subtitle("University of Manchester") + .date("2013") + .link("https://example.test/manchester") + .build())))); + } else { + placements.add(placement); + } + } + + List targets = linkTargets( + render(new CvDocument(TealPulseFixtures.identity(), placements))); + assertThat(targets) + .contains("https://example.test/mri") + .contains("https://example.test/manchester"); + } + + @Test + void aDocumentWithNothingButAnIdentityStillRenders() throws Exception { + // Every berth empty: no badge, no heading, and nothing drawn but the + // mark, the name and the rules that frame them. + render(new CvDocument(TealPulseFixtures.identity(), List.of())); + } + + @Test + void anIdentityWithoutLinksDrawsTheThreeChannels() throws Exception { + CvIdentity noLinks = new CvIdentity(CvName.of("Ada", "Lovelace"), "Analyst", + new Contact("+44 20 7946 0000", "ada@example.test", "London, UK"), + List.of(), Optional.empty()); + + // A run that breaks at a space carries one annotation per piece, so it + // is the set of targets that is asserted, not the count. + byte[] pdfBytes = render(new CvDocument(noLinks, List.of())); + assertThat(Set.copyOf(linkTargets(pdfBytes))) + .containsExactlyInAnyOrder("mailto:ada@example.test", "tel:+442079460000"); + } + + @Test + void aLongerCvCarriesTheClosingBandOntoASecondPage() throws Exception { + // The bands are stacked in the page flow, so a CV with more roles than + // the design holds runs over rather than losing anything. + try (DocumentSession session = GraphCompose.document().create()) { + TealPulse.create().compose(session, withRoles(6)); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(2); + } + } + + @Test + void refusesABodyTallerThanOnePage() { + // What cannot flow is the body itself: its two columns are one row, + // and a row is atomic, so it raises rather than being cut in half. + assertThatThrownBy(() -> render(withRoles(14))) + .hasMessageContaining("BodyGrid"); + } + + /** The canonical CV with its experience replaced by {@code count} roles. */ + private static CvDocument withRoles(int count) { + List many = new ArrayList<>(); + for (int index = 0; index < count; index++) { + many.add(CvEntry.builder("Senior Staff Nurse " + index) + .subtitle("Manchester Royal Infirmary, Manchester, UK") + .date("2021") + .body("Deliver direct nursing care for adult patients on a busy ward.") + .build()); + } + return withSection(Slot.MAIN, + new EntriesSection("PROFESSIONAL EXPERIENCE", many), + "PROFESSIONAL EXPERIENCE"); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseVisualParityTest.java new file mode 100644 index 000000000..70dd5fd05 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseVisualParityTest.java @@ -0,0 +1,41 @@ +package com.demcha.compose.document.templates.cv.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 TealPulse} — the canonical + * one-page CV against a checked-in baseline. + * + *

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

    + */ +class TealPulseVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "cv-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()) { + TealPulse.create().compose(document, TealPulseFixtures.canonicalCv()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("teal_pulse", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/teal_pulse_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/teal_pulse_layout.json new file mode 100644 index 000000000..5ec326d45 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/teal_pulse_layout.json @@ -0,0 +1,3647 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.28, + "pageHeight" : 769.6, + "innerWidth" : 595.28, + "innerHeight" : 769.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "TealPulseCv[0]", + "entityName" : "TealPulseCv", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 0.0, + "computedY" : 2.0, + "placementX" : 0.0, + "placementY" : 2.0, + "placementWidth" : 595.28, + "placementHeight" : 767.601, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.28, + "contentHeight" : 767.601, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 18.35, + "right" : 28.604, + "bottom" : 7.556, + "left" : 28.604 + } + }, { + "path" : "TealPulseCv[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "TealPulseCv[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 28.604, + "computedY" : 676.575, + "placementX" : 28.604, + "placementY" : 676.575, + "placementWidth" : 538.073, + "placementHeight" : 74.676, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.073, + "contentHeight" : 74.676, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.175, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/Masthead[0]/BrandMark[0]", + "entityName" : "BrandMark", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.604, + "computedY" : 685.579, + "placementX" : 28.604, + "placementY" : 685.579, + "placementWidth" : 71.239, + "placementHeight" : 56.668, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.239, + "contentHeight" : 56.668, + "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" : "TealPulseCv[0]/Masthead[0]/BrandMark[0]/Icon_brandheart[0]", + "entityName" : "Icon_brandheart", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/Masthead[0]/BrandMark[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 28.604, + "computedY" : 675.363, + "placementX" : 28.604, + "placementY" : 675.363, + "placementWidth" : 71.239, + "placementHeight" : 77.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.239, + "contentHeight" : 77.1, + "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" : "TealPulseCv[0]/Masthead[0]/BrandMark[0]/Icon_brandheart[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "TealPulseCv[0]/Masthead[0]/BrandMark[0]/Icon_brandheart[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 675.363, + "placementX" : 28.604, + "placementY" : 675.363, + "placementWidth" : 71.239, + "placementHeight" : 77.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.239, + "contentHeight" : 77.1, + "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" : "TealPulseCv[0]/Masthead[0]/BrandMark[0]/Icon_brandheart[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/Masthead[0]/BrandMark[0]/Icon_brandheart[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 28.604, + "computedY" : 675.363, + "placementX" : 28.604, + "placementY" : 675.363, + "placementWidth" : 77.1, + "placementHeight" : 77.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.1, + "contentHeight" : 77.1, + "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" : "TealPulseCv[0]/Masthead[0]/BrandMark[0]/BrandPulse[1]", + "entityName" : "BrandPulse", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/Masthead[0]/BrandMark[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 17.81, + "computedY" : 688.278, + "placementX" : 17.81, + "placementY" : 688.278, + "placementWidth" : 92.827, + "placementHeight" : 44.255, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.827, + "contentHeight" : 44.255, + "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" : "TealPulseCv[0]/Masthead[0]/Identity[1]", + "entityName" : "Identity", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 120.891, + "computedY" : 676.575, + "placementX" : 120.891, + "placementY" : 676.575, + "placementWidth" : 340.363, + "placementHeight" : 74.676, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.363, + "contentHeight" : 74.676, + "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" : "TealPulseCv[0]/Masthead[0]/Identity[1]/DisplayName[0]", + "entityName" : "DisplayName", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/Masthead[0]/Identity[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 120.891, + "computedY" : 695.951, + "placementX" : 120.891, + "placementY" : 695.951, + "placementWidth" : 340.363, + "placementHeight" : 55.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.363, + "contentHeight" : 55.3, + "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" : "TealPulseCv[0]/Masthead[0]/Identity[1]/ProfessionalTitle[1]", + "entityName" : "ProfessionalTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/Masthead[0]/Identity[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 120.891, + "computedY" : 676.575, + "placementX" : 120.891, + "placementY" : 676.575, + "placementWidth" : 205.712, + "placementHeight" : 19.376, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.712, + "contentHeight" : 19.376, + "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" : "TealPulseCv[0]/ContactStrip[1]", + "entityName" : "ContactStrip", + "entityKind" : "RowNode", + "parentPath" : "TealPulseCv[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 28.604, + "computedY" : 646.892, + "placementX" : 28.604, + "placementY" : 646.892, + "placementWidth" : 538.073, + "placementHeight" : 20.508, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.073, + "contentHeight" : 20.508, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 12.413, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ContactStrip[1]/Contact_0_location[0]", + "entityName" : "Contact_0_location", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ContactStrip[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.604, + "computedY" : 651.505, + "placementX" : 28.604, + "placementY" : 651.505, + "placementWidth" : 120.885, + "placementHeight" : 15.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 120.885, + "contentHeight" : 15.6, + "margin" : { + "top" : -4.318, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ContactStrip[1]/ContactSeparator_1[1]", + "entityName" : "ContactSeparator_1", + "entityKind" : "LineNode", + "parentPath" : "TealPulseCv[0]/ContactStrip[1]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 178.536, + "computedY" : 646.892, + "placementX" : 178.536, + "placementY" : 646.892, + "placementWidth" : 1.0, + "placementHeight" : 20.508, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 20.508, + "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" : "TealPulseCv[0]/ContactStrip[1]/Contact_1_email[2]", + "entityName" : "Contact_1_email", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ContactStrip[1]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 208.584, + "computedY" : 651.205, + "placementX" : 208.584, + "placementY" : 651.205, + "placementWidth" : 111.22, + "placementHeight" : 16.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.22, + "contentHeight" : 16.2, + "margin" : { + "top" : -4.318, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ContactStrip[1]/ContactSeparator_2[3]", + "entityName" : "ContactSeparator_2", + "entityKind" : "LineNode", + "parentPath" : "TealPulseCv[0]/ContactStrip[1]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 348.852, + "computedY" : 646.892, + "placementX" : 348.852, + "placementY" : 646.892, + "placementWidth" : 1.0, + "placementHeight" : 20.508, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 20.508, + "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" : "TealPulseCv[0]/ContactStrip[1]/Contact_2_phone[4]", + "entityName" : "Contact_2_phone", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ContactStrip[1]", + "childIndex" : 4, + "depth" : 3, + "layer" : 3, + "computedX" : 378.9, + "computedY" : 652.155, + "placementX" : 378.9, + "placementY" : 652.155, + "placementWidth" : 81.613, + "placementHeight" : 14.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 81.613, + "contentHeight" : 14.3, + "margin" : { + "top" : -4.318, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ContactStrip[1]/ContactSeparator_3[5]", + "entityName" : "ContactSeparator_3", + "entityKind" : "LineNode", + "parentPath" : "TealPulseCv[0]/ContactStrip[1]", + "childIndex" : 5, + "depth" : 3, + "layer" : 3, + "computedX" : 489.561, + "computedY" : 646.892, + "placementX" : 489.561, + "placementY" : 646.892, + "placementWidth" : 1.0, + "placementHeight" : 20.508, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 20.508, + "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" : "TealPulseCv[0]/ContactStrip[1]/Contact_3_linkedin[6]", + "entityName" : "Contact_3_linkedin", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ContactStrip[1]", + "childIndex" : 6, + "depth" : 3, + "layer" : 3, + "computedX" : 519.608, + "computedY" : 652.505, + "placementX" : 519.608, + "placementY" : 652.505, + "placementWidth" : 47.068, + "placementHeight" : 13.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.068, + "contentHeight" : 13.6, + "margin" : { + "top" : -4.318, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/MastheadRule[2]", + "entityName" : "MastheadRule", + "entityKind" : "LineNode", + "parentPath" : "TealPulseCv[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 28.604, + "computedY" : 633.13, + "placementX" : 28.604, + "placementY" : 633.13, + "placementWidth" : 538.073, + "placementHeight" : 1.349, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.073, + "contentHeight" : 1.349, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 15.651, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]", + "entityName" : "BodyGrid", + "entityKind" : "RowNode", + "parentPath" : "TealPulseCv[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 28.604, + "computedY" : 177.009, + "placementX" : 28.604, + "placementY" : 177.009, + "placementWidth" : 538.073, + "placementHeight" : 440.47, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.073, + "contentHeight" : 440.47, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 16.191, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]", + "entityName" : "Sidebar", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.604, + "computedY" : 239.229, + "placementX" : 28.604, + "placementY" : 239.229, + "placementWidth" : 118.781, + "placementHeight" : 378.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.781, + "contentHeight" : 378.25, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 4.857, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetenciesDash[0]", + "entityName" : "CompetenciesDash", + "entityKind" : "LineNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 28.604, + "computedY" : 611.002, + "placementX" : 28.604, + "placementY" : 611.002, + "placementWidth" : 29.143, + "placementHeight" : 1.619, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.143, + "contentHeight" : 1.619, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.556, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetenciesHeading[1]", + "entityName" : "CompetenciesHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 28.604, + "computedY" : 590.967, + "placementX" : 28.604, + "placementY" : 590.967, + "placementWidth" : 110.685, + "placementHeight" : 12.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.685, + "contentHeight" : 12.48, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 18.889, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "entityName" : "CompetencyItems", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 28.604, + "computedY" : 267.832, + "placementX" : 28.604, + "placementY" : 267.832, + "placementWidth" : 118.781, + "placementHeight" : 304.245, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.781, + "contentHeight" : 304.245, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_PatientAssessment[0]", + "entityName" : "Competency_PatientAssessment", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 561.169, + "placementX" : 28.604, + "placementY" : 561.169, + "placementWidth" : 90.748, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.748, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_CarePlanning[1]", + "entityName" : "Competency_CarePlanning", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 534.502, + "placementX" : 28.604, + "placementY" : 534.502, + "placementWidth" : 67.823, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.823, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_MedicationAdministration[2]", + "entityName" : "Competency_MedicationAdministration", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 507.835, + "placementX" : 28.604, + "placementY" : 507.835, + "placementWidth" : 118.781, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.781, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_ClinicalDocumentation[3]", + "entityName" : "Competency_ClinicalDocumentation", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 481.168, + "placementX" : 28.604, + "placementY" : 481.168, + "placementWidth" : 105.828, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.828, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_InfectionPrevention[4]", + "entityName" : "Competency_InfectionPrevention", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 454.501, + "placementX" : 28.604, + "placementY" : 454.501, + "placementWidth" : 94.302, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 94.302, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_IVTherapy[5]", + "entityName" : "Competency_IVTherapy", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 427.834, + "placementX" : 28.604, + "placementY" : 427.834, + "placementWidth" : 56.433, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.433, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_WoundCare[6]", + "entityName" : "Competency_WoundCare", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 401.167, + "placementX" : 28.604, + "placementY" : 401.167, + "placementWidth" : 63.378, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.378, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_PatientEducation[7]", + "entityName" : "Competency_PatientEducation", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 374.5, + "placementX" : 28.604, + "placementY" : 374.5, + "placementWidth" : 83.385, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.385, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_Safeguarding[8]", + "entityName" : "Competency_Safeguarding", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 8, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 347.833, + "placementX" : 28.604, + "placementY" : 347.833, + "placementWidth" : 64.687, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.687, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_TeamCollaboration[9]", + "entityName" : "Competency_TeamCollaboration", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 9, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 321.166, + "placementX" : 28.604, + "placementY" : 321.166, + "placementWidth" : 90.82, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.82, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_DischargeCoordination[10]", + "entityName" : "Competency_DischargeCoordination", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 10, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 294.499, + "placementX" : 28.604, + "placementY" : 294.499, + "placementWidth" : 106.901, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.901, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]/Competency_ElectronicHealthRecords[11]", + "entityName" : "Competency_ElectronicHealthRecords", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetencyItems[2]", + "childIndex" : 11, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 267.832, + "placementX" : 28.604, + "placementY" : 267.832, + "placementWidth" : 116.145, + "placementHeight" : 10.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.145, + "contentHeight" : 10.908, + "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" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]/CompetenciesClosingRule[3]", + "entityName" : "CompetenciesClosingRule", + "entityKind" : "LineNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Sidebar[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 28.604, + "computedY" : 239.229, + "placementX" : 28.604, + "placementY" : 239.229, + "placementWidth" : 116.573, + "placementHeight" : 1.619, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.573, + "contentHeight" : 1.619, + "margin" : { + "top" : 26.985, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Main[1]", + "entityName" : "Main", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 171.37, + "computedY" : 177.009, + "placementX" : 171.37, + "placementY" : 177.009, + "placementWidth" : 395.306, + "placementHeight" : 440.47, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 395.306, + "contentHeight" : 440.47, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 17.27 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]", + "entityName" : "SectionHeader_PROFESSIONALSUMMARY", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 188.641, + "computedY" : 586.177, + "placementX" : 188.641, + "placementY" : 586.177, + "placementWidth" : 378.036, + "placementHeight" : 31.302, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 378.036, + "contentHeight" : 31.302, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.794, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]/Badge_PROFESSIONALSUMMARY[0]", + "entityName" : "Badge_PROFESSIONALSUMMARY", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 586.177, + "placementX" : 188.641, + "placementY" : 586.177, + "placementWidth" : 31.302, + "placementHeight" : 31.302, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.302, + "contentHeight" : 31.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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]/Badge_PROFESSIONALSUMMARY[0]/Icon_summary[0]", + "entityName" : "Icon_summary", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]/Badge_PROFESSIONALSUMMARY[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 194.292, + "computedY" : 591.828, + "placementX" : 194.292, + "placementY" : 591.828, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]/Badge_PROFESSIONALSUMMARY[0]/Icon_summary[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]/Badge_PROFESSIONALSUMMARY[0]/Icon_summary[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 194.292, + "computedY" : 591.828, + "placementX" : 194.292, + "placementY" : 591.828, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]/Badge_PROFESSIONALSUMMARY[0]/Icon_summary[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]/Badge_PROFESSIONALSUMMARY[0]/Icon_summary[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 194.292, + "computedY" : 591.828, + "placementX" : 194.292, + "placementY" : 591.828, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]/SectionHeaderRule_PROFESSIONALSUMMARY[1]", + "entityName" : "SectionHeaderRule_PROFESSIONALSUMMARY", + "entityKind" : "ShapeNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 229.118, + "computedY" : 601.153, + "placementX" : 229.118, + "placementY" : 601.153, + "placementWidth" : 337.559, + "placementHeight" : 1.349, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 337.559, + "contentHeight" : 1.349, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]/SectionHeading_PROFESSIONALSUMMARY[2]", + "entityName" : "SectionHeading_PROFESSIONALSUMMARY", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALSUMMARY[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 229.118, + "computedY" : 594.208, + "placementX" : 229.118, + "placementY" : 594.208, + "placementWidth" : 144.93, + "placementHeight" : 15.24, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 144.93, + "contentHeight" : 15.24, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SummaryText[1]", + "entityName" : "SummaryText", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 188.641, + "computedY" : 477.181, + "placementX" : 188.641, + "placementY" : 477.181, + "placementWidth" : 317.12, + "placementHeight" : 98.202, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 317.12, + "contentHeight" : 98.202, + "margin" : { + "top" : 0.0, + "right" : 56.668, + "bottom" : 15.651, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]", + "entityName" : "SectionHeader_PROFESSIONALEXPERIENCE", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 188.641, + "computedY" : 430.228, + "placementX" : 188.641, + "placementY" : 430.228, + "placementWidth" : 378.036, + "placementHeight" : 31.302, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 378.036, + "contentHeight" : 31.302, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.556, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/Badge_PROFESSIONALEXPERIENCE[0]", + "entityName" : "Badge_PROFESSIONALEXPERIENCE", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 430.228, + "placementX" : 188.641, + "placementY" : 430.228, + "placementWidth" : 31.302, + "placementHeight" : 31.302, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.302, + "contentHeight" : 31.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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/Badge_PROFESSIONALEXPERIENCE[0]/Icon_experience[0]", + "entityName" : "Icon_experience", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/Badge_PROFESSIONALEXPERIENCE[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 194.292, + "computedY" : 435.879, + "placementX" : 194.292, + "placementY" : 435.879, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/Badge_PROFESSIONALEXPERIENCE[0]/Icon_experience[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/Badge_PROFESSIONALEXPERIENCE[0]/Icon_experience[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 194.292, + "computedY" : 435.879, + "placementX" : 194.292, + "placementY" : 435.879, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/Badge_PROFESSIONALEXPERIENCE[0]/Icon_experience[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/Badge_PROFESSIONALEXPERIENCE[0]/Icon_experience[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 194.292, + "computedY" : 435.879, + "placementX" : 194.292, + "placementY" : 435.879, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/Badge_PROFESSIONALEXPERIENCE[0]/Icon_experience[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/Badge_PROFESSIONALEXPERIENCE[0]/Icon_experience[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 194.292, + "computedY" : 435.879, + "placementX" : 194.292, + "placementY" : 435.879, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/SectionHeaderRule_PROFESSIONALEXPERIENCE[1]", + "entityName" : "SectionHeaderRule_PROFESSIONALEXPERIENCE", + "entityKind" : "ShapeNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 229.118, + "computedY" : 445.204, + "placementX" : 229.118, + "placementY" : 445.204, + "placementWidth" : 337.559, + "placementHeight" : 1.349, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 337.559, + "contentHeight" : 1.349, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]/SectionHeading_PROFESSIONALEXPERIENCE[2]", + "entityName" : "SectionHeading_PROFESSIONALEXPERIENCE", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/SectionHeader_PROFESSIONALEXPERIENCE[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 229.118, + "computedY" : 438.259, + "placementX" : 229.118, + "placementY" : 438.259, + "placementWidth" : 160.457, + "placementHeight" : 15.24, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 160.457, + "contentHeight" : 15.24, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHeadline_0[3]", + "entityName" : "ExperienceHeadline_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 188.641, + "computedY" : 411.992, + "placementX" : 188.641, + "placementY" : 411.992, + "placementWidth" : 325.998, + "placementHeight" : 10.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 325.998, + "contentHeight" : 10.68, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.016, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]", + "entityName" : "ExperienceHighlights_0", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 188.641, + "computedY" : 338.962, + "placementX" : 188.641, + "placementY" : 338.962, + "placementWidth" : 321.805, + "placementHeight" : 66.014, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 321.805, + "contentHeight" : 66.014, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 18.35, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]/Highlight_0_Deliverdirectnursingcareforadultpatientsonabusyacutemedicalward[0]", + "entityName" : "Highlight_0_Deliverdirectnursingcareforadultpatientsonabusyacutemedicalward", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 395.184, + "placementX" : 188.641, + "placementY" : 395.184, + "placementWidth" : 279.348, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 279.348, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]/Highlight_0_Coordinatecareplanswithdoctorstherapistsandsupportstafftoimproveoutcomes[1]", + "entityName" : "Highlight_0_Coordinatecareplanswithdoctorstherapistsandsupportstafftoimproveoutcomes", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 381.128, + "placementX" : 188.641, + "placementY" : 381.128, + "placementWidth" : 321.805, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 321.805, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]/Highlight_0_Supervisejuniornursesandsupportstudentplacementsduringclinicalrotations[2]", + "entityName" : "Highlight_0_Supervisejuniornursesandsupportstudentplacementsduringclinicalrotations", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 367.073, + "placementX" : 188.641, + "placementY" : 367.073, + "placementWidth" : 299.585, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 299.585, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]/Highlight_0_Improveddischargecoordinationandpatientcommunicationacrosstheward[3]", + "entityName" : "Highlight_0_Improveddischargecoordinationandpatientcommunicationacrosstheward", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 353.017, + "placementX" : 188.641, + "placementY" : 353.017, + "placementWidth" : 289.874, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 289.874, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]/Highlight_0_Maintainprecisedocumentationandensurecompliancewithclinicalstandards[4]", + "entityName" : "Highlight_0_Maintainprecisedocumentationandensurecompliancewithclinicalstandards", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_0[4]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 338.962, + "placementX" : 188.641, + "placementY" : 338.962, + "placementWidth" : 294.444, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 294.444, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHeadline_1[5]", + "entityName" : "ExperienceHeadline_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 188.641, + "computedY" : 309.932, + "placementX" : 188.641, + "placementY" : 309.932, + "placementWidth" : 256.133, + "placementHeight" : 10.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.133, + "contentHeight" : 10.68, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.016, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_1[6]", + "entityName" : "ExperienceHighlights_1", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 188.641, + "computedY" : 250.957, + "placementX" : 188.641, + "placementY" : 250.957, + "placementWidth" : 351.719, + "placementHeight" : 51.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 351.719, + "contentHeight" : 51.959, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 18.35, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_1[6]/Highlight_1_Providednursingcareacrossmedicalandsurgicalunits[0]", + "entityName" : "Highlight_1_Providednursingcareacrossmedicalandsurgicalunits", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_1[6]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 293.124, + "placementX" : 188.641, + "placementY" : 293.124, + "placementWidth" : 209.76, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.76, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_1[6]/Highlight_1_Administeredmedicationsmonitoredvitalsignsandescalateddeterioratingpatientspromptly[1]", + "entityName" : "Highlight_1_Administeredmedicationsmonitoredvitalsignsandescalateddeterioratingpatientspromptly", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_1[6]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 279.069, + "placementX" : 188.641, + "placementY" : 279.069, + "placementWidth" : 351.719, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 351.719, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_1[6]/Highlight_1_Supportedinfectioncontrolproceduresandsafedischargeplanning[2]", + "entityName" : "Highlight_1_Supportedinfectioncontrolproceduresandsafedischargeplanning", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_1[6]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 265.013, + "placementX" : 188.641, + "placementY" : 265.013, + "placementWidth" : 255.643, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.643, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_1[6]/Highlight_1_Builtstrongrapportwithpatientsandfamiliesduringtreatmentandrecovery[3]", + "entityName" : "Highlight_1_Builtstrongrapportwithpatientsandfamiliesduringtreatmentandrecovery", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_1[6]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 250.957, + "placementX" : 188.641, + "placementY" : 250.957, + "placementWidth" : 289.05, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 289.05, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHeadline_2[7]", + "entityName" : "ExperienceHeadline_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 188.641, + "computedY" : 221.928, + "placementX" : 188.641, + "placementY" : 221.928, + "placementWidth" : 357.282, + "placementHeight" : 10.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 357.282, + "contentHeight" : 10.68, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.016, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_2[8]", + "entityName" : "ExperienceHighlights_2", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]", + "childIndex" : 8, + "depth" : 4, + "layer" : 4, + "computedX" : 188.641, + "computedY" : 177.009, + "placementX" : 188.641, + "placementY" : 177.009, + "placementWidth" : 321.315, + "placementHeight" : 37.903, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 321.315, + "contentHeight" : 37.903, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_2[8]/Highlight_2_Deliveredhomebasednursingcareandpatienteducation[0]", + "entityName" : "Highlight_2_Deliveredhomebasednursingcareandpatienteducation", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_2[8]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 205.12, + "placementX" : 188.641, + "placementY" : 205.12, + "placementWidth" : 220.645, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 220.645, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_2[8]/Highlight_2_Managedwoundcaremedicationsupportandfollowupvisitsforvulnerablepatients[1]", + "entityName" : "Highlight_2_Managedwoundcaremedicationsupportandfollowupvisitsforvulnerablepatients", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_2[8]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 191.064, + "placementX" : 188.641, + "placementY" : 191.064, + "placementWidth" : 321.315, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 321.315, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_2[8]/Highlight_2_WorkedcloselywithGPssocialservicesandfamiliestocoordinateholisticcare[2]", + "entityName" : "Highlight_2_WorkedcloselywithGPssocialservicesandfamiliestocoordinateholisticcare", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/BodyGrid[3]/Main[1]/ExperienceHighlights_2[8]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 188.641, + "computedY" : 177.009, + "placementX" : 188.641, + "placementY" : 177.009, + "placementWidth" : 299.862, + "placementHeight" : 9.792, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 299.862, + "contentHeight" : 9.792, + "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" : "TealPulseCv[0]/ClosingBandRule[4]", + "entityName" : "ClosingBandRule", + "entityKind" : "LineNode", + "parentPath" : "TealPulseCv[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 28.604, + "computedY" : 159.469, + "placementX" : 28.604, + "placementY" : 159.469, + "placementWidth" : 538.073, + "placementHeight" : 1.349, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.073, + "contentHeight" : 1.349, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 14.572, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]", + "entityName" : "ClosingBand", + "entityKind" : "RowNode", + "parentPath" : "TealPulseCv[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 28.604, + "computedY" : 43.334, + "placementX" : 28.604, + "placementY" : 43.334, + "placementWidth" : 538.073, + "placementHeight" : 101.564, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.073, + "contentHeight" : 101.564, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.873, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]", + "entityName" : "EducationColumn", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.604, + "computedY" : 60.866, + "placementX" : 28.604, + "placementY" : 60.866, + "placementWidth" : 121.179, + "placementHeight" : 84.031, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 121.179, + "contentHeight" : 84.031, + "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" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]", + "entityName" : "ColumnHeader_EDUCATION", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 28.604, + "computedY" : 117.373, + "placementX" : 28.604, + "placementY" : 117.373, + "placementWidth" : 121.179, + "placementHeight" : 27.524, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 121.179, + "contentHeight" : 27.524, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.873, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/Badge_EDUCATION[0]", + "entityName" : "Badge_EDUCATION", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 28.604, + "computedY" : 117.373, + "placementX" : 28.604, + "placementY" : 117.373, + "placementWidth" : 27.524, + "placementHeight" : 27.524, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.524, + "contentHeight" : 27.524, + "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" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/Badge_EDUCATION[0]/Icon_education[0]", + "entityName" : "Icon_education", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/Badge_EDUCATION[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 33.616, + "computedY" : 122.385, + "placementX" : 33.616, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/Badge_EDUCATION[0]/Icon_education[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/Badge_EDUCATION[0]/Icon_education[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 33.616, + "computedY" : 122.385, + "placementX" : 33.616, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/Badge_EDUCATION[0]/Icon_education[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/Badge_EDUCATION[0]/Icon_education[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 33.616, + "computedY" : 122.385, + "placementX" : 33.616, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/ColumnHeadingStack_EDUCATION[1]", + "entityName" : "ColumnHeadingStack_EDUCATION", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 65.842, + "computedY" : 115.526, + "placementX" : 65.842, + "placementY" : 115.526, + "placementWidth" : 83.94, + "placementHeight" : 18.266, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.94, + "contentHeight" : 18.266, + "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" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/ColumnHeadingStack_EDUCATION[1]/ColumnHeading_EDUCATION[0]", + "entityName" : "ColumnHeading_EDUCATION", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/ColumnHeadingStack_EDUCATION[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 65.842, + "computedY" : 122.272, + "placementX" : 65.842, + "placementY" : 122.272, + "placementWidth" : 51.84, + "placementHeight" : 11.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.84, + "contentHeight" : 11.52, + "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" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/ColumnHeadingStack_EDUCATION[1]/ColumnHeadingRule_EDUCATION[1]", + "entityName" : "ColumnHeadingRule_EDUCATION", + "entityKind" : "LineNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/ColumnHeader_EDUCATION[0]/ColumnHeadingStack_EDUCATION[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 65.842, + "computedY" : 115.526, + "placementX" : 65.842, + "placementY" : 115.526, + "placementWidth" : 83.94, + "placementHeight" : 1.619, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.94, + "contentHeight" : 1.619, + "margin" : { + "top" : 5.127, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/EducationDegree_0[1]", + "entityName" : "EducationDegree_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 28.604, + "computedY" : 92.84, + "placementX" : 28.604, + "placementY" : 92.84, + "placementWidth" : 118.804, + "placementHeight" : 12.66, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.804, + "contentHeight" : 12.66, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.667, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/EducationInstitution_0[2]", + "entityName" : "EducationInstitution_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 28.604, + "computedY" : 76.853, + "placementX" : 28.604, + "placementY" : 76.853, + "placementWidth" : 95.907, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.907, + "contentHeight" : 10.32, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.667, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]/EducationDates_0[3]", + "entityName" : "EducationDates_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/EducationColumn[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 28.604, + "computedY" : 60.866, + "placementX" : 28.604, + "placementY" : 60.866, + "placementWidth" : 44.892, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.892, + "contentHeight" : 10.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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]", + "entityName" : "CertificationsColumn", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 171.37, + "computedY" : 43.334, + "placementX" : 171.37, + "placementY" : 43.334, + "placementWidth" : 198.167, + "placementHeight" : 101.564, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 198.167, + "contentHeight" : 101.564, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 19.429 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]", + "entityName" : "ColumnHeader_CERTIFICATIONS", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 190.799, + "computedY" : 117.373, + "placementX" : 190.799, + "placementY" : 117.373, + "placementWidth" : 162.316, + "placementHeight" : 27.524, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 162.316, + "contentHeight" : 27.524, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.873, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/Badge_CERTIFICATIONS[0]", + "entityName" : "Badge_CERTIFICATIONS", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 190.799, + "computedY" : 117.373, + "placementX" : 190.799, + "placementY" : 117.373, + "placementWidth" : 27.524, + "placementHeight" : 27.524, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.524, + "contentHeight" : 27.524, + "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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/Badge_CERTIFICATIONS[0]/Icon_certifications[0]", + "entityName" : "Icon_certifications", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/Badge_CERTIFICATIONS[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 195.812, + "computedY" : 122.385, + "placementX" : 195.812, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/Badge_CERTIFICATIONS[0]/Icon_certifications[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/Badge_CERTIFICATIONS[0]/Icon_certifications[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 195.812, + "computedY" : 122.385, + "placementX" : 195.812, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/Badge_CERTIFICATIONS[0]/Icon_certifications[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/Badge_CERTIFICATIONS[0]/Icon_certifications[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 195.812, + "computedY" : 122.385, + "placementX" : 195.812, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/Badge_CERTIFICATIONS[0]/Icon_certifications[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/Badge_CERTIFICATIONS[0]/Icon_certifications[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 195.812, + "computedY" : 122.385, + "placementX" : 195.812, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/ColumnHeadingStack_CERTIFICATIONS[1]", + "entityName" : "ColumnHeadingStack_CERTIFICATIONS", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 228.038, + "computedY" : 115.526, + "placementX" : 228.038, + "placementY" : 115.526, + "placementWidth" : 125.077, + "placementHeight" : 18.266, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 125.077, + "contentHeight" : 18.266, + "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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/ColumnHeadingStack_CERTIFICATIONS[1]/ColumnHeading_CERTIFICATIONS[0]", + "entityName" : "ColumnHeading_CERTIFICATIONS", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/ColumnHeadingStack_CERTIFICATIONS[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 228.038, + "computedY" : 122.272, + "placementX" : 228.038, + "placementY" : 122.272, + "placementWidth" : 77.117, + "placementHeight" : 11.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.117, + "contentHeight" : 11.52, + "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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/ColumnHeadingStack_CERTIFICATIONS[1]/ColumnHeadingRule_CERTIFICATIONS[1]", + "entityName" : "ColumnHeadingRule_CERTIFICATIONS", + "entityKind" : "LineNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/ColumnHeader_CERTIFICATIONS[0]/ColumnHeadingStack_CERTIFICATIONS[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 228.038, + "computedY" : 115.526, + "placementX" : 228.038, + "placementY" : 115.526, + "placementWidth" : 125.077, + "placementHeight" : 1.619, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 125.077, + "contentHeight" : 1.619, + "margin" : { + "top" : 5.127, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/CertificationItems[1]", + "entityName" : "CertificationItems", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 190.799, + "computedY" : 43.334, + "placementX" : 190.799, + "placementY" : 43.334, + "placementWidth" : 178.738, + "placementHeight" : 62.166, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 178.738, + "contentHeight" : 62.166, + "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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/CertificationItems[1]/Certification_NMCRegisteredNurse[0]", + "entityName" : "Certification_NMCRegisteredNurse", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/CertificationItems[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 190.799, + "computedY" : 95.18, + "placementX" : 190.799, + "placementY" : 95.18, + "placementWidth" : 99.825, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.825, + "contentHeight" : 10.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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/CertificationItems[1]/Certification_ImmediateLifeSupportILS[1]", + "entityName" : "Certification_ImmediateLifeSupportILS", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/CertificationItems[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 190.799, + "computedY" : 77.898, + "placementX" : 190.799, + "placementY" : 77.898, + "placementWidth" : 118.882, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.882, + "contentHeight" : 10.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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/CertificationItems[1]/Certification_VenepunctureandCannulationCertification[2]", + "entityName" : "Certification_VenepunctureandCannulationCertification", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/CertificationItems[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 190.799, + "computedY" : 60.616, + "placementX" : 190.799, + "placementY" : 60.616, + "placementWidth" : 178.738, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 178.738, + "contentHeight" : 10.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" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/CertificationItems[1]/Certification_SafeguardingAdultsLevel3[3]", + "entityName" : "Certification_SafeguardingAdultsLevel3", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/CertificationsColumn[1]/CertificationItems[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 190.799, + "computedY" : 43.334, + "placementX" : 190.799, + "placementY" : 43.334, + "placementWidth" : 117.214, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 117.214, + "contentHeight" : 10.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" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]", + "entityName" : "AdditionalColumn", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 374.703, + "computedY" : 43.751, + "placementX" : 374.703, + "placementY" : 43.751, + "placementWidth" : 191.974, + "placementHeight" : 101.146, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 191.974, + "contentHeight" : 101.146, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 19.429 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]", + "entityName" : "ColumnHeader_ADDITIONALINFORMATION", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 394.132, + "computedY" : 117.373, + "placementX" : 394.132, + "placementY" : 117.373, + "placementWidth" : 172.545, + "placementHeight" : 27.524, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 172.545, + "contentHeight" : 27.524, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.873, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/Badge_ADDITIONALINFORMATION[0]", + "entityName" : "Badge_ADDITIONALINFORMATION", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 394.132, + "computedY" : 117.373, + "placementX" : 394.132, + "placementY" : 117.373, + "placementWidth" : 27.524, + "placementHeight" : 27.524, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.524, + "contentHeight" : 27.524, + "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" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/Badge_ADDITIONALINFORMATION[0]/Icon_additional[0]", + "entityName" : "Icon_additional", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/Badge_ADDITIONALINFORMATION[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 399.144, + "computedY" : 122.385, + "placementX" : 399.144, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/Badge_ADDITIONALINFORMATION[0]/Icon_additional[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/Badge_ADDITIONALINFORMATION[0]/Icon_additional[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 399.144, + "computedY" : 122.385, + "placementX" : 399.144, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/Badge_ADDITIONALINFORMATION[0]/Icon_additional[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/Badge_ADDITIONALINFORMATION[0]/Icon_additional[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 399.144, + "computedY" : 122.385, + "placementX" : 399.144, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/Badge_ADDITIONALINFORMATION[0]/Icon_additional[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/Badge_ADDITIONALINFORMATION[0]/Icon_additional[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 399.144, + "computedY" : 122.385, + "placementX" : 399.144, + "placementY" : 122.385, + "placementWidth" : 17.5, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.5, + "contentHeight" : 17.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" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/ColumnHeadingStack_ADDITIONALINFORMATION[1]", + "entityName" : "ColumnHeadingStack_ADDITIONALINFORMATION", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 431.37, + "computedY" : 115.526, + "placementX" : 431.37, + "placementY" : 115.526, + "placementWidth" : 135.306, + "placementHeight" : 18.266, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 135.306, + "contentHeight" : 18.266, + "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" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/ColumnHeadingStack_ADDITIONALINFORMATION[1]/ColumnHeading_ADDITIONALINFORMATION[0]", + "entityName" : "ColumnHeading_ADDITIONALINFORMATION", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/ColumnHeadingStack_ADDITIONALINFORMATION[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 431.37, + "computedY" : 122.272, + "placementX" : 431.37, + "placementY" : 122.272, + "placementWidth" : 123.773, + "placementHeight" : 11.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.773, + "contentHeight" : 11.52, + "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" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/ColumnHeadingStack_ADDITIONALINFORMATION[1]/ColumnHeadingRule_ADDITIONALINFORMATION[1]", + "entityName" : "ColumnHeadingRule_ADDITIONALINFORMATION", + "entityKind" : "LineNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/ColumnHeader_ADDITIONALINFORMATION[0]/ColumnHeadingStack_ADDITIONALINFORMATION[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 431.37, + "computedY" : 115.526, + "placementX" : 431.37, + "placementY" : 115.526, + "placementWidth" : 135.306, + "placementHeight" : 1.619, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 135.306, + "contentHeight" : 1.619, + "margin" : { + "top" : 5.127, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/AdditionalFacts[1]", + "entityName" : "AdditionalFacts", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 394.132, + "computedY" : 43.751, + "placementX" : 394.132, + "placementY" : 43.751, + "placementWidth" : 163.122, + "placementHeight" : 61.749, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 163.122, + "contentHeight" : 61.749, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 42.636, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/AdditionalFacts[1]/Fact_Languages[0]", + "entityName" : "Fact_Languages", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/AdditionalFacts[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 394.132, + "computedY" : 80.15, + "placementX" : 394.132, + "placementY" : 80.15, + "placementWidth" : 105.367, + "placementHeight" : 25.35, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.367, + "contentHeight" : 25.35, + "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" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/AdditionalFacts[1]/Fact_RighttoWork[1]", + "entityName" : "Fact_RighttoWork", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/AdditionalFacts[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 394.132, + "computedY" : 61.95, + "placementX" : 394.132, + "placementY" : 61.95, + "placementWidth" : 120.486, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 120.486, + "contentHeight" : 10.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" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/AdditionalFacts[1]/Fact_Availability[2]", + "entityName" : "Fact_Availability", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]/ClosingBand[5]/AdditionalColumn[2]/AdditionalFacts[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 394.132, + "computedY" : 43.751, + "placementX" : 394.132, + "placementY" : 43.751, + "placementWidth" : 104.645, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.645, + "contentHeight" : 10.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" : "TealPulseCv[0]/TaglineRule[6]", + "entityName" : "TaglineRule", + "entityKind" : "ShapeContainerNode", + "parentPath" : "TealPulseCv[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 28.604, + "computedY" : 20.127, + "placementX" : 28.604, + "placementY" : 20.127, + "placementWidth" : 538.073, + "placementHeight" : 11.334, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.073, + "contentHeight" : 11.334, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.864, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TealPulseCv[0]/TaglineRule[6]/TaglineRuleLine[0]", + "entityName" : "TaglineRuleLine", + "entityKind" : "ShapeNode", + "parentPath" : "TealPulseCv[0]/TaglineRule[6]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.604, + "computedY" : 25.119, + "placementX" : 28.604, + "placementY" : 25.119, + "placementWidth" : 538.073, + "placementHeight" : 1.349, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.073, + "contentHeight" : 1.349, + "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" : "TealPulseCv[0]/TaglineRule[6]/Icon_heart[1]", + "entityName" : "Icon_heart", + "entityKind" : "SectionNode", + "parentPath" : "TealPulseCv[0]/TaglineRule[6]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 551.776, + "computedY" : 18.344, + "placementX" : 551.776, + "placementY" : 18.344, + "placementWidth" : 14.9, + "placementHeight" : 14.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.9, + "contentHeight" : 14.9, + "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" : "TealPulseCv[0]/TaglineRule[6]/Icon_heart[1]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "TealPulseCv[0]/TaglineRule[6]/Icon_heart[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 551.776, + "computedY" : 18.344, + "placementX" : 551.776, + "placementY" : 18.344, + "placementWidth" : 14.9, + "placementHeight" : 14.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.9, + "contentHeight" : 14.9, + "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" : "TealPulseCv[0]/TaglineRule[6]/Icon_heart[1]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "TealPulseCv[0]/TaglineRule[6]/Icon_heart[1]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 551.776, + "computedY" : 18.344, + "placementX" : 551.776, + "placementY" : 18.344, + "placementWidth" : 14.9, + "placementHeight" : 14.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.9, + "contentHeight" : 14.9, + "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" : "TealPulseCv[0]/Tagline[7]", + "entityName" : "Tagline", + "entityKind" : "ParagraphNode", + "parentPath" : "TealPulseCv[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 28.604, + "computedY" : 9.555, + "placementX" : 28.604, + "placementY" : 9.555, + "placementWidth" : 538.073, + "placementHeight" : 9.708, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.073, + "contentHeight" : 9.708, + "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/cv-v2-layered/teal_pulse-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/teal_pulse-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..6417b289f1b51f915a1b083c544e62faea5ca213 GIT binary patch literal 113663 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 literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulse.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulse.java new file mode 100644 index 000000000..7301d71ed --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulse.java @@ -0,0 +1,220 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvSection; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.MARGIN_X; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.PAD_BOTTOM; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.PAGE; + +/** + * Teal Pulse — a clinical one-page CV in five stacked bands: a heart crossed + * by a pulse beside the name, a contact strip divided by short rules, a + * two-column body carrying the competencies beside the summary and the roles, + * a three-column closing band, and a tracked line under a rule that ends in a + * small heart. + * + *

    Exactly one of those bands is two-column, and both vertical rules on the + * sheet are the left border of the column to their right rather than lines + * placed beside it — so they are the grid: change a weight and the rules + * follow.

    + * + *

    The page is the design's, not the caller's

    + * + *

    The design was drawn on a raster whose proportion is not A4's, and every + * length on the sheet is a share of that grid, so the preset sets its own page + * size and margin. A session configured by the caller is overwritten. This is + * the opposite choice from {@link CharcoalGold}, which follows the page it is + * given, and it is made here because the sheet is a fixed composition rather + * than a layout that rescales.

    + * + *

    One page, and what happens past it

    + * + *

    The sheet is drawn for one page but does not insist on it, which sets it + * apart from the other ported presets in this package. The bands are stacked + * in the page flow, so a CV with more roles than the design holds carries the + * closing band onto a second page rather than losing anything — it will look + * like a one-page design that ran over, because that is what it is.

    + * + *

    What cannot flow is the body itself: its two columns are a single row, + * and a row is atomic. A body taller than one page — the competencies beside + * the summary and every role — raises {@code AtomicNodeTooLargeException}, + * naming the node and the height it needed. The preset draws no cap of its + * own, because a CV that quietly loses a role is worse than one that refuses + * to compose. {@link TimelineMinimal} is the preset in this package that + * splits its own columns across pages.

    + * + *

    How a document reaches its berth

    + * + *

    The bands are fixed, so the preset assigns each section a berth by title + * rather than reading {@link + * com.demcha.compose.document.templates.cv.data.Slot}. It has six:

    + * + *
      + *
    • competencies, a {@link SkillsSection} — the narrow column;
    • + *
    • the summary, a {@link ParagraphSection}, and experience, an + * {@link EntriesSection} whose bodies are one highlight per line — the + * wide column;
    • + *
    • education, certifications and the closing facts, + * {@link EntriesSection}s — the three columns of the closing band;
    • + *
    • the tagline, a {@link ParagraphSection} whose body is the line under + * the closing rule. Only its body is drawn: the title is how the + * document names the berth, not something the sheet prints.
    • + *
    + * + *

    A section whose title matches no berth is not drawn, and a berth with no + * section takes its badge and heading with it. The competencies are skills + * without levels: this design writes them as dotted lines, so a rating would + * have nowhere to go.

    + * + *

    The marks, the tracking and the links

    + * + *

    Every mark is chrome — the brand's two halves, the four contact glyphs, + * the five badges and the closing heart — so no document names one, and the + * badge each band carries is fixed by the berth it heads.

    + * + *

    Headings are letter-spaced by writing each character as its own run with + * a small space between: a text style carries no letter-spacing, and the gap + * is split across several spacers because a run's size sets its line's height + * as well as its advance.

    + * + *

    The email, the phone and each link are reachable from the PDF, with the + * {@code mailto:} and {@code tel:} targets built from the values. A link is + * drawn as its own label with the address behind it — {@code Link("LinkedIn", + * "https://…")} sets the word and links the URL — so the strip's gaps do not + * depend on how long a profile's address happens to be. A role and a degree + * become links when their entry carries {@code CvEntry.link()}.

    + * + *

    Fonts

    + * + *

    The sheet is set in Lato, with Poppins for the name and Barlow Condensed + * for the headings. The templates artifact carries none of them — register + * them on the session, or the engine substitutes and the measured geometry + * here no longer matches the type sitting in it.

    + * + *

    Usage:

    + *
    {@code
    + * DocumentTemplate template = TealPulse.create();
    + * template.compose(session, cv);
    + * }
    + * + * @since 2.2.3 + */ +public final class TealPulse { + + /** Stable identifier of this preset. */ + public static final String ID = "teal-pulse"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Teal Pulse"; + + private static final List COMPETENCY_KEYS = + List.of("competencies", "competency", "skills", "expertise"); + private static final List SUMMARY_KEYS = + List.of("summary", "profile", "about"); + private static final List TAGLINE_KEYS = + List.of("tagline", "motto", "closing"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "employment", "work history", "career"); + private static final List EDUCATION_KEYS = + List.of("education", "qualifications"); + private static final List CERTIFICATION_KEYS = + List.of("certifications", "certification", "licences", "licenses"); + private static final List FACT_KEYS = + List.of("additional", "details", "other"); + + private TealPulse() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link CvDocument} + */ + 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, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + List sections = doc.sections(); + + SkillsSection competencies = berth(sections, SkillsSection.class, COMPETENCY_KEYS); + // The tagline is claimed first: its own keys are narrow, but the + // summary's are broad enough to take a closing line titled loosely. + ParagraphSection tagline = berth(sections, ParagraphSection.class, TAGLINE_KEYS); + ParagraphSection summary = + berthExcept(sections, ParagraphSection.class, SUMMARY_KEYS, tagline); + EntriesSection experience = berth(sections, EntriesSection.class, EXPERIENCE_KEYS); + EntriesSection education = berth(sections, EntriesSection.class, EDUCATION_KEYS); + EntriesSection certifications = + berth(sections, EntriesSection.class, CERTIFICATION_KEYS); + EntriesSection facts = berth(sections, EntriesSection.class, FACT_KEYS); + + // The sheet is a fixed composition on the design's own page, so the + // preset sets both rather than following what the caller configured. + document.pageSize(PAGE).margin(DocumentInsets.zero()); + document.pageFlow(page -> { + page.name("TealPulseCv"); + page.spacing(0); + page.padding(new DocumentInsets(PAD_TOP, MARGIN_X, PAD_BOTTOM, MARGIN_X)); + TealPulseMasthead.render(page, doc.identity()); + TealPulseBody.render(page, competencies, summary, experience); + TealPulseClosing.render(page, education, certifications, facts, tagline); + }); + } + + /** + * The first section of the wanted shape whose title names this berth, + * or {@code null} when the document fills no such berth. + */ + private static T berth(List sections, + Class type, + List keys) { + return berthExcept(sections, type, keys, null); + } + + /** The same, skipping a section another berth has already claimed. */ + private static T berthExcept(List sections, + Class type, + List keys, + CvSection taken) { + for (CvSection section : sections) { + if (!type.isInstance(section) || section == taken) { + continue; + } + for (String key : keys) { + if (SectionLookup.titleContains(section.title(), key)) { + return type.cast(section); + } + } + } + return null; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java new file mode 100644 index 000000000..a0562a1c1 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java @@ -0,0 +1,239 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ACCENT_DEEP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BODY_TEXT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BODY_TO_CLOSING_RULE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BULLET_GAP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BULLET_LEADING; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BULLET_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.COMPETENCY_GAP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.COMPETENCY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.DASH_TO_HEADING; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.DIVIDER_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ENTRY_HEADLINE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ENTRY_TO_BULLETS; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.HEADER_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.HEADER_TO_ENTRY; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.HEADING_FONT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.HEADING_TO_ITEMS; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ITEMS_TO_CLOSING_RULE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.MAIN_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.MAIN_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.RULE_PALE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.RULE_SOFT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SIDEBAR_CLOSING_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SIDEBAR_CLOSING_RULE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SIDEBAR_DASH_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SIDEBAR_DASH_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SIDEBAR_HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SIDEBAR_HEADING_TRACKING_EM; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SIDEBAR_PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SIDEBAR_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SUMMARY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SUMMARY_RIGHT_INSET; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SUMMARY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SUMMARY_TO_EXPERIENCE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.style; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.dottedLine; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.sectionHeader; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.tracked; + +/** + * The body row: the competencies in the narrow column, the summary and the + * roles in the wide one. + */ +final class TealPulseBody { + + private TealPulseBody() { + } + + /** + * The one two-column band on the sheet. + * + *

    The rule between the columns is the main column's own left accent, + * not a drawn line. That is what makes its height follow the taller of the + * two columns, which is what the design shows: it runs well past the end + * of the competency list.

    + */ + static void render(PageFlowBuilder page, SkillsSection competencies, + ParagraphSection summary, EntriesSection experience) { + page.addRow("BodyGrid", row -> { + row.weights(SIDEBAR_WEIGHT, MAIN_WEIGHT); + row.verticalAlign(RowVerticalAlign.TOP); + row.spacing(0); + row.addSection("Sidebar", sidebar -> renderCompetencies(sidebar, competencies)); + row.addSection("Main", main -> { + main.spacing(0); + main.accentLeft(RULE_SOFT, DIVIDER_WIDTH); + main.padding(new DocumentInsets(0, 0, 0, MAIN_PAD_LEFT)); + renderSummary(main, summary); + renderExperience(main, experience); + }); + row.margin(new DocumentInsets(0, 0, BODY_TO_CLOSING_RULE, 0)); + }); + } + + // -- the narrow column ------------------------------------------------- + + /** A dash, a tracked heading, the dotted lines, and a pale closing rule. */ + private static void renderCompetencies(SectionBuilder section, SkillsSection competencies) { + section.spacing(0); + section.padding(new DocumentInsets(SIDEBAR_PAD_TOP, 0, 0, 0)); + if (competencies == null) { + return; + } + section.addLine(line -> line + .name("CompetenciesDash") + .horizontal(SIDEBAR_DASH_WIDTH) + .thickness(SIDEBAR_DASH_THICKNESS) + .color(ACCENT) + .margin(new DocumentInsets(0, 0, DASH_TO_HEADING, 0))); + + DocumentTextStyle headingStyle = style( + HEADING_FONT, SIDEBAR_HEADING_SIZE, ACCENT_DEEP, DocumentTextDecoration.BOLD); + ParagraphBuilder heading = new ParagraphBuilder() + .name("CompetenciesHeading") + .textStyle(headingStyle) + .align(TextAlign.LEFT) + .lineSpacing(1.0); + tracked(heading, competencies.title(), headingStyle, SIDEBAR_HEADING_TRACKING_EM); + section.add(heading.margin(new DocumentInsets(0, 0, HEADING_TO_ITEMS, 0)).build()); + + section.addSection("CompetencyItems", items -> { + items.spacing(COMPETENCY_GAP); + for (SkillGroup group : competencies.groups()) { + for (CvSkill skill : group.entries()) { + items.add(dottedLine("Competency_" + compact(skill.name()), skill.name(), + COMPETENCY_SIZE, 1.0)); + } + } + }); + section.addLine(line -> line + .name("CompetenciesClosingRule") + .horizontal(SIDEBAR_CLOSING_RULE_WIDTH) + .thickness(SIDEBAR_CLOSING_RULE_THICKNESS) + .color(RULE_PALE) + .margin(new DocumentInsets(ITEMS_TO_CLOSING_RULE, 0, 0, 0))); + } + + // -- the wide column --------------------------------------------------- + + /** + * The summary under its badge. + * + *

    The paragraph carries a right inset because the design breaks its + * first line with a finger's width of the column still free: reproducing + * the line breaks means reproducing the measure, not only the type + * size.

    + * + *

    The summary is one flowing block here, so a body written as several + * lines is joined into one and left to wrap. This is the one berth that + * does that — everywhere else a line the document wrote is a line the + * sheet draws.

    + */ + private static void renderSummary(SectionBuilder main, ParagraphSection summary) { + if (summary == null || summary.body().isBlank()) { + return; + } + main.add(sectionHeader(summary.title(), TealPulseIcons.SUMMARY, HEADER_TO_BODY)); + main.addParagraph(paragraph -> paragraph + .name("SummaryText") + .text(summary.body().replace(String.valueOf((char) 10), " ")) + .textStyle(style(BODY_FONT, SUMMARY_SIZE, BODY_TEXT, + DocumentTextDecoration.DEFAULT)) + .align(TextAlign.LEFT) + .lineSpacing(SUMMARY_LEADING) + .margin(new DocumentInsets(0, SUMMARY_RIGHT_INSET, SUMMARY_TO_EXPERIENCE, 0))); + } + + /** The roles, each a two-voice headline over its dotted highlights. */ + private static void renderExperience(SectionBuilder main, EntriesSection experience) { + if (experience == null || experience.entries().isEmpty()) { + return; + } + main.add(sectionHeader(experience.title(), TealPulseIcons.EXPERIENCE, HEADER_TO_ENTRY)); + List entries = experience.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + boolean last = i == entries.size() - 1; + int index = i; + DocumentTextStyle roleStyle = style( + BODY_FONT, ENTRY_HEADLINE_SIZE, ACCENT_DEEP, DocumentTextDecoration.BOLD); + DocumentTextStyle metaStyle = style( + BODY_FONT, ENTRY_HEADLINE_SIZE, BODY_TEXT, DocumentTextDecoration.BOLD); + main.addParagraph(paragraph -> { + paragraph.name("ExperienceHeadline_" + index) + .textStyle(metaStyle) + .align(TextAlign.LEFT) + .lineSpacing(1.0); + if (entry.link().isBlank()) { + paragraph.inlineText(entry.title(), roleStyle); + } else { + paragraph.inlineText(entry.title(), roleStyle, + new DocumentLinkOptions(entry.link())); + } + paragraph.inlineText(headlineTail(entry), metaStyle) + .margin(new DocumentInsets(0, 0, ENTRY_TO_BULLETS, 0)); + }); + main.addSection("ExperienceHighlights_" + index, highlights -> { + highlights.spacing(BULLET_GAP); + for (String item : lines(entry.body())) { + highlights.add(dottedLine( + "Highlight_" + index + "_" + compact(item), item, + BULLET_SIZE, BULLET_LEADING)); + } + highlights.margin(new DocumentInsets(0, 0, last ? 0 : ENTRY_GAP, 0)); + }); + } + } + + /** + * What follows the role in its headline: the employer, then the dates, + * joined the way the design joins them. A dash and a pipe are typography + * rather than content, so they live here and not in the document. + */ + private static String headlineTail(CvEntry entry) { + StringBuilder tail = new StringBuilder(); + if (!entry.subtitle().isBlank()) { + tail.append(' ').append((char) 0x2014).append(' ').append(entry.subtitle()); + } + if (!entry.date().isBlank()) { + tail.append(tail.isEmpty() ? " " : " | ").append(entry.date()); + } + return tail.toString(); + } + + /** A body, one entry per line the document wrote. */ + static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split(String.valueOf((char) 10))) { + if (!line.isBlank()) { + out.add(line.strip()); + } + } + return out; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseClosing.java new file mode 100644 index 000000000..a466210c0 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseClosing.java @@ -0,0 +1,235 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +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.node.TextAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ACCENT_DEEP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_COL1_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_COL2_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_COL3_TEXT_INSET; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_COL3_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_DEGREE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_FACT_GAP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_LEADING; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_LINE_GAP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_TO_TAGLINE_RULE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_WEIGHT_1; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_WEIGHT_2; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_WEIGHT_3; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BODY_TEXT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.CERT_ITEM_GAP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.CLOSING_RULE_TO_BAND; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.DIVIDER_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.FULL_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.HEADING_FONT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.RULE_SOFT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.RULE_STRONG; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.TAGLINE_RULE_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.TAGLINE_RULE_TO_TEXT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.TAGLINE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.TAGLINE_TRACKING_EM; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.style; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.columnHeader; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.dottedLine; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.icon; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.tracked; + +/** + * What closes the sheet: the three-column band and the tagline under its + * rule. + */ +final class TealPulseClosing { + + private TealPulseClosing() { + } + + static void render(PageFlowBuilder page, EntriesSection education, + EntriesSection certifications, EntriesSection facts, + ParagraphSection tagline) { + page.addLine(line -> line + .name("ClosingBandRule") + .horizontal(CONTENT_WIDTH) + .thickness(FULL_RULE_THICKNESS) + .color(RULE_STRONG) + .margin(new DocumentInsets(0, 0, CLOSING_RULE_TO_BAND, 0))); + renderBand(page, education, certifications, facts); + renderTagline(page, tagline); + } + + // -- the band ---------------------------------------------------------- + + /** + * The three closing columns. + * + *

    The two rules between them are left accents on the second and third + * columns, so they sit on the band's own weight boundaries and cannot + * drift off the grid.

    + */ + private static void renderBand(PageFlowBuilder page, EntriesSection education, + EntriesSection certifications, EntriesSection facts) { + page.addRow("ClosingBand", row -> { + row.weights(BAND_WEIGHT_1, BAND_WEIGHT_2, BAND_WEIGHT_3); + row.verticalAlign(RowVerticalAlign.TOP); + row.spacing(0); + row.addSection("EducationColumn", column -> { + column.spacing(0); + renderEducation(column, education); + }); + row.addSection("CertificationsColumn", column -> { + column.spacing(0); + column.accentLeft(RULE_SOFT, DIVIDER_WIDTH); + column.padding(new DocumentInsets(0, 0, 0, BAND_PAD_LEFT)); + renderCertifications(column, certifications); + }); + row.addSection("AdditionalColumn", column -> { + column.spacing(0); + column.accentLeft(RULE_SOFT, DIVIDER_WIDTH); + column.padding(new DocumentInsets(0, 0, 0, BAND_PAD_LEFT)); + renderFacts(column, facts); + }); + row.margin(new DocumentInsets(0, 0, BAND_TO_TAGLINE_RULE, 0)); + }); + } + + /** Each degree as three stacked lines: the award, the campus, the years. */ + private static void renderEducation(SectionBuilder column, EntriesSection education) { + if (education == null || education.entries().isEmpty()) { + return; + } + column.add(columnHeader(education.title(), TealPulseIcons.EDUCATION, BAND_COL1_WIDTH)); + List entries = education.entries(); + for (int index = 0; index < entries.size(); index++) { + CvEntry entry = entries.get(index); + boolean last = index == entries.size() - 1; + column.add(bandLine("EducationDegree_" + index, entry.title(), BAND_DEGREE_SIZE, + DocumentTextDecoration.BOLD, BAND_LINE_GAP, entry.link())); + column.add(bandLine("EducationInstitution_" + index, entry.subtitle(), + BAND_BODY_SIZE, DocumentTextDecoration.DEFAULT, BAND_LINE_GAP, "")); + column.add(bandLine("EducationDates_" + index, entry.date(), BAND_BODY_SIZE, + DocumentTextDecoration.DEFAULT, last ? 0 : BAND_LINE_GAP, "")); + } + } + + /** One line of closing-band body text, carrying a link when it has one. */ + private static DocumentNode bandLine(String name, String text, double size, + DocumentTextDecoration decoration, double gapBelow, + String link) { + DocumentTextStyle textStyle = style(BODY_FONT, size, BODY_TEXT, decoration); + ParagraphBuilder paragraph = new ParagraphBuilder() + .name(name) + .text(text) + .textStyle(textStyle) + .align(TextAlign.LEFT) + .lineSpacing(1.0) + .margin(new DocumentInsets(0, 0, gapBelow, 0)); + if (link != null && !link.isBlank()) { + paragraph.link(new DocumentLinkOptions(link)); + } + return paragraph.build(); + } + + private static void renderCertifications(SectionBuilder column, EntriesSection section) { + if (section == null || section.entries().isEmpty()) { + return; + } + column.add(columnHeader(section.title(), TealPulseIcons.CERTIFICATIONS, + BAND_COL2_WIDTH)); + column.addSection("CertificationItems", items -> { + items.spacing(CERT_ITEM_GAP); + for (CvEntry entry : section.entries()) { + items.add(dottedLine("Certification_" + compact(entry.title()), entry.title(), + BAND_BODY_SIZE, 1.0)); + } + }); + } + + /** + * The closing facts: a bold label and its value as two runs of one + * wrapping paragraph, which is why a fact that runs to a second line + * starts it at the column edge rather than under its value. + */ + private static void renderFacts(SectionBuilder column, EntriesSection section) { + if (section == null || section.entries().isEmpty()) { + return; + } + column.add(columnHeader(section.title(), TealPulseIcons.ADDITIONAL, BAND_COL3_WIDTH)); + DocumentTextStyle labelStyle = + style(BODY_FONT, BAND_BODY_SIZE, BODY_TEXT, DocumentTextDecoration.BOLD); + DocumentTextStyle valueStyle = + style(BODY_FONT, BAND_BODY_SIZE, BODY_TEXT, DocumentTextDecoration.DEFAULT); + column.addSection("AdditionalFacts", facts -> { + facts.spacing(BAND_FACT_GAP); + facts.padding(new DocumentInsets(0, BAND_COL3_TEXT_INSET, 0, 0)); + for (CvEntry entry : section.entries()) { + facts.addParagraph(paragraph -> paragraph + .name("Fact_" + compact(entry.title())) + .textStyle(valueStyle) + .align(TextAlign.LEFT) + .lineSpacing(BAND_LEADING) + .inlineText(entry.title(), labelStyle) + .inlineText(" " + entry.body().replace(String.valueOf((char) 10), " "), + valueStyle) + .margin(DocumentInsets.zero())); + } + }); + } + + // -- the tagline ------------------------------------------------------- + + /** + * The rule and the heart are one terminal — the rule anchored to its left, + * the heart to its right — so the mark follows the rule's end whatever the + * content width becomes. The tracked line sits under it. + */ + private static void renderTagline(PageFlowBuilder page, ParagraphSection tagline) { + if (tagline == null || tagline.body().isBlank()) { + return; + } + double heartSize = TealPulseIcons.size(TealPulseIcons.HEART); + double heartLift = -(heartSize - TAGLINE_RULE_HEIGHT) / 2.0; + DocumentNode rule = new ShapeBuilder() + .name("TaglineRuleLine") + .size(CONTENT_WIDTH, FULL_RULE_THICKNESS) + .fillColor(RULE_STRONG) + .build(); + page.addContainer(container -> container + .name("TaglineRule") + .rectangle(CONTENT_WIDTH, TAGLINE_RULE_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(rule) + .position(icon(TealPulseIcons.HEART), 0, heartLift, LayerAlign.CENTER_RIGHT) + .margin(new DocumentInsets(0, 0, TAGLINE_RULE_TO_TEXT, 0))); + + DocumentTextStyle textStyle = + style(HEADING_FONT, TAGLINE_SIZE, ACCENT_DEEP, DocumentTextDecoration.BOLD); + ParagraphBuilder line = new ParagraphBuilder() + .name("Tagline") + .textStyle(textStyle) + .align(TextAlign.CENTER) + .lineSpacing(1.0); + tracked(line, tagline.body().replace(String.valueOf((char) 10), " "), textStyle, + TAGLINE_TRACKING_EM); + page.add(line.margin(DocumentInsets.zero()).build()); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseIcons.java new file mode 100644 index 000000000..388e205e5 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseIcons.java @@ -0,0 +1,105 @@ +package com.demcha.compose.document.templates.cv.presets; + +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 Teal Pulse CV marks: the two halves of the brand + * mark, the four contact glyphs, the five badge glyphs and the heart that + * closes the sheet. + * + *

    They ship inside the templates artifact under + * {@code templates/cv/teal-pulse/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 sheet that repeats a mark reads each file once per JVM.

    + * + *

    Every mark here is chrome — this sheet draws the same ones whatever the + * CV says — so the tokens are constants and no document names one. Each + * carries the width it is drawn at: an icon's box is not its glyph, and the + * sizes are measurements off the drawing rather than a shared constant.

    + */ +final class TealPulseIcons { + + static final String BRAND_HEART = "brand-heart"; + static final String BRAND_PULSE = "brand-pulse"; + static final String LOCATION = "location"; + static final String EMAIL = "email"; + static final String PHONE = "phone"; + static final String LINKEDIN = "linkedin"; + static final String SUMMARY = "summary"; + static final String EXPERIENCE = "experience"; + static final String EDUCATION = "education"; + static final String CERTIFICATIONS = "certifications"; + static final String ADDITIONAL = "additional"; + static final String HEART = "heart"; + + private static final String ICON_ROOT = "/templates/cv/teal-pulse/icons/"; + + /** + * The width each mark is drawn at — its whole box, not the glyph inside, + * which sits a few points within it. These are points rather than + * measurements off the drawing: the asset resolver chose them per glyph so + * that each one's visible ink matches what the design shows. + */ + private static final Map SIZES = Map.ofEntries( + Map.entry(BRAND_HEART, 77.1), + Map.entry(BRAND_PULSE, 92.8), + Map.entry(LOCATION, 15.6), + Map.entry(EMAIL, 16.2), + Map.entry(PHONE, 14.3), + Map.entry(LINKEDIN, 13.6), + Map.entry(SUMMARY, 20.0), + Map.entry(EXPERIENCE, 20.0), + Map.entry(EDUCATION, 17.5), + Map.entry(CERTIFICATIONS, 17.5), + Map.entry(ADDITIONAL, 17.5), + Map.entry(HEART, 14.9)); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private TealPulseIcons() { + } + + /** + * The width one mark is drawn at. + * + * @param token one of the packaged tokens + * @return the drawn width in points + */ + static double size(String token) { + Double size = SIZES.get(token); + if (size == null) { + throw new IllegalStateException("No size for teal pulse CV icon '" + token + "'"); + } + return size; + } + + /** + * Reads one mark. + * + * @param token one of the packaged tokens + * @return the parsed icon + */ + static SvgIcon icon(String token) { + return CACHE.computeIfAbsent(token, TealPulseIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = TealPulseIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing teal pulse CV icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read teal pulse CV icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseMasthead.java new file mode 100644 index 000000000..d83774d96 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseMasthead.java @@ -0,0 +1,264 @@ +package com.demcha.compose.document.templates.cv.presets; + +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.RowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.InlineImageAlignment; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.RowArrangement; +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.DocumentInsets; +import com.demcha.compose.document.style.DocumentLineCap; +import com.demcha.compose.document.style.DocumentLineJoin; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.svg.SvgPath; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvIdentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ACCENT_DEEP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BODY_TEXT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.CONTACT_ICON_DROP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.CONTACT_ICON_GAP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.CONTACT_PAIR_LIFT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.CONTACT_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.CONTACT_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.DISPLAY_TEXT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.FULL_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.LOGO_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.LOGO_TO_IDENTITY; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.LOGO_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.MARK_STROKE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.MASTHEAD_TO_CONTACT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.NAME_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.NAME_TO_ROLE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.NAME_TRACKING_EM; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.PULSE_BOX_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.PULSE_BOX_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.PULSE_DROP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.PULSE_SHIFT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ROLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ROLE_TRACKING_EM; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.RULE_STRONG; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.RULE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SEPARATOR; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SEPARATOR_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SEPARATOR_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.gapRun; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.style; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.icon; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.tracked; + +/** + * The top of the sheet: the mark beside the name, the contact strip, and the + * rule that closes them. + */ +final class TealPulseMasthead { + + private TealPulseMasthead() { + } + + /** One channel of the contact strip: a mark, a value and where it points. */ + private record Channel(String token, String value, String href) { + } + + static void render(PageFlowBuilder page, CvIdentity identity) { + page.addRow("Masthead", row -> { + row.columns(DocumentRowColumn.fixed(LOGO_WIDTH), DocumentRowColumn.weight(1)); + row.verticalAlign(RowVerticalAlign.CENTER); + row.spacing(LOGO_TO_IDENTITY); + row.add(brandMark()); + row.addSection("Identity", section -> renderIdentity(section, identity)); + row.margin(new DocumentInsets(0, 0, MASTHEAD_TO_CONTACT, 0)); + }); + renderContactStrip(page, identity); + page.addLine(line -> line + .name("MastheadRule") + .horizontal(CONTENT_WIDTH) + .thickness(FULL_RULE_THICKNESS) + .color(RULE_STRONG) + .margin(new DocumentInsets(0, 0, RULE_TO_BODY, 0))); + } + + // -- the mark ---------------------------------------------------------- + + /** + * A heart outline crossed by a flat pulse. + * + *

    No single glyph has this geometry — every heartbeat icon puts the + * pulse in the left half — so the mark is two vectors centred in one box. + * Each child is wider or taller than that box, and a shape container + * clamps an over-sized child to the top left rather than centring it, so + * each is pulled back by half its own overflow. Those two corrections + * exist only to cancel the clamp.

    + */ + private static DocumentNode brandMark() { + double heartSize = TealPulseIcons.size(TealPulseIcons.BRAND_HEART); + double heartLift = -(heartSize - LOGO_HEIGHT) / 2.0; + return new ShapeContainerBuilder() + .name("BrandMark") + .rectangle(LOGO_WIDTH, LOGO_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .position(icon(TealPulseIcons.BRAND_HEART), 0, heartLift, LayerAlign.CENTER) + .position(pulse(), PULSE_SHIFT, PULSE_DROP, LayerAlign.CENTER) + .build(); + } + + /** + * The pulse, drawn from the packaged glyph's own geometry at a box this + * preset chooses, so the line spans the mark while the spike keeps the + * height the design draws. The stroke is the design's, not the glyph's. + */ + private static DocumentNode pulse() { + SvgPath geometry = TealPulseIcons.icon(TealPulseIcons.BRAND_PULSE) + .layers().get(0).geometry(); + return new PathBuilder() + .name("BrandPulse") + .size(PULSE_BOX_WIDTH, PULSE_BOX_HEIGHT) + .svg(geometry) + .stroke(DocumentStroke.of(ACCENT, MARK_STROKE)) + .lineCap(DocumentLineCap.ROUND) + .lineJoin(DocumentLineJoin.ROUND) + .build(); + } + + // -- the name ---------------------------------------------------------- + + /** The tracked display name over the tracked role, both in capitals. */ + private static void renderIdentity(SectionBuilder section, CvIdentity identity) { + section.spacing(0); + DocumentTextStyle nameStyle = + style(DISPLAY_FONT, NAME_SIZE, DISPLAY_TEXT, DocumentTextDecoration.DEFAULT); + ParagraphBuilder name = new ParagraphBuilder() + .name("DisplayName") + .textStyle(nameStyle) + .align(TextAlign.LEFT) + .lineSpacing(1.0); + tracked(name, identity.name().full().toUpperCase(Locale.ROOT), nameStyle, + NAME_TRACKING_EM); + section.add(name.margin(new DocumentInsets(0, 0, NAME_TO_ROLE, 0)).build()); + + DocumentTextStyle roleStyle = + style(DISPLAY_FONT, ROLE_SIZE, ACCENT_DEEP, DocumentTextDecoration.BOLD); + ParagraphBuilder role = new ParagraphBuilder() + .name("ProfessionalTitle") + .textStyle(roleStyle) + .align(TextAlign.LEFT) + .lineSpacing(1.0); + tracked(role, identity.jobTitle().toUpperCase(Locale.ROOT), roleStyle, ROLE_TRACKING_EM); + section.add(role.margin(DocumentInsets.zero()).build()); + } + + // -- the strip --------------------------------------------------------- + + /** + * The contact strip: the three channels and a row per link, each a mark + * and a value, divided by short rules. + * + *

    Each pair is one paragraph, so the row's distribution can never split + * a mark from its value. Spreading the children pins the run to both + * margins and makes the gaps even, which a fixed gap would reach only by + * luck of the font's metrics.

    + * + *

    A link shows its own label and carries the address behind it, so the + * strip's gaps do not depend on how long a profile's URL happens to be.

    + */ + private static void renderContactStrip(PageFlowBuilder page, CvIdentity identity) { + List channels = channels(identity); + page.addRow("ContactStrip", row -> { + row.verticalAlign(RowVerticalAlign.CENTER); + row.arrangement(RowArrangement.SPACE_BETWEEN); + for (int index = 0; index < channels.size(); index++) { + if (index > 0) { + separator(row, index); + } + row.add(channelPair(channels.get(index), index)); + } + row.margin(new DocumentInsets(0, 0, CONTACT_TO_RULE, 0)); + }); + } + + /** The strip's order: where, then how to write, then how to call, then links. */ + private static List channels(CvIdentity identity) { + Contact contact = identity.contact(); + List channels = new ArrayList<>(); + channels.add(new Channel(TealPulseIcons.LOCATION, contact.address(), null)); + channels.add(new Channel(TealPulseIcons.EMAIL, contact.email(), + "mailto:" + contact.email())); + channels.add(new Channel(TealPulseIcons.PHONE, contact.phone(), telUri(contact.phone()))); + for (Link link : identity.links()) { + channels.add(new Channel(TealPulseIcons.LINKEDIN, link.label(), link.url())); + } + return channels; + } + + private static DocumentNode channelPair(Channel channel, int index) { + DocumentTextStyle textStyle = + style(BODY_FONT, CONTACT_SIZE, BODY_TEXT, DocumentTextDecoration.DEFAULT); + DocumentLinkOptions link = channel.href() == null || channel.href().isBlank() + ? null + : new DocumentLinkOptions(channel.href()); + ParagraphBuilder pair = new ParagraphBuilder() + .name("Contact_" + index + "_" + compact(channel.token())) + .textStyle(textStyle) + .align(TextAlign.LEFT) + .lineSpacing(1.0) + .inlineSvgIcon(TealPulseIcons.icon(channel.token()), + TealPulseIcons.size(channel.token()), InlineImageAlignment.CENTER, + CONTACT_ICON_DROP, link); + String value = gapRun(CONTACT_ICON_GAP, CONTACT_SIZE) + channel.value(); + if (link == null) { + pair.inlineText(value, textStyle); + } else { + pair.inlineText(value, textStyle, link); + } + // The pair still sits below the axis the design uses. It is centred in + // a row whose height the separators set, so a NEGATIVE top margin of + // twice the wanted lift raises it by half of it. Negative rather than a + // positive bottom margin: both shift a centred child equally, but a + // bottom margin would grow the box past the separators and take the + // whole strip — and everything under it — down the page. + return pair.margin(new DocumentInsets(-2 * CONTACT_PAIR_LIFT, 0, 0, 0)).build(); + } + + private static void separator(RowBuilder row, int index) { + row.addLine(line -> line + .name("ContactSeparator_" + index) + .vertical(SEPARATOR_HEIGHT) + .thickness(SEPARATOR_THICKNESS) + .color(SEPARATOR) + .margin(DocumentInsets.zero())); + } + + /** + * The dial target for a phone number: its digits, keeping a leading + * {@code +} so an international number stays international, and dropping a + * parenthesised trunk prefix the way a caller dialling from abroad does. + */ + private static String telUri(String phone) { + String dialled = phone.replaceAll("\\(0+\\)", ""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseStyles.java new file mode 100644 index 000000000..5f8cb68e4 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseStyles.java @@ -0,0 +1,313 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +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 measured geometry, palette and type scale of the Teal Pulse CV. + * + *

    Every length is a measurement off one grid

    + * + *

    The design was drawn on a 1103×1426 raster, so each length here is + * written as {@link #px} of a pixel measured off it and {@code px} is the one + * conversion into points. Re-measuring the drawing therefore changes one + * number per length and never a chain of them — and the page itself takes + * that grid's proportion rather than A4's, which is why this preset sets its + * own page.

    + * + *

    Leading is not a multiple of the type size

    + * + *

    A paragraph's line pitch on this engine is about + * {@code 1.216 × size + 0.872 × lineSpacing}, so the leading constants below + * are the values that produce the drawn pitch rather than ratios of it. A + * single-line paragraph ignores leading entirely and takes {@code 1.216 × + * size}, which is why the bullet rhythm is section spacing instead.

    + */ +final class TealPulseStyles { + + private TealPulseStyles() { + } + + // -- the grid ---------------------------------------------------------- + + /** The raster the design was drawn on. */ + static final double REFERENCE_WIDTH_PX = 1103.0; + static final double REFERENCE_HEIGHT_PX = 1426.0; + + static final double PAGE_WIDTH = 595.28; + static final double PAGE_HEIGHT = PAGE_WIDTH * REFERENCE_HEIGHT_PX / REFERENCE_WIDTH_PX; + static final DocumentPageSize PAGE = DocumentPageSize.of(PAGE_WIDTH, PAGE_HEIGHT); + + /** + * One measurement off the drawing, in points. + * + * @param referencePixels the pixel measured on the 1103-wide raster + * @return the same distance on the page + */ + static double px(double referencePixels) { + return referencePixels * PAGE_WIDTH / REFERENCE_WIDTH_PX; + } + + static final double MARGIN_X = px(53); + static final double PAD_TOP = px(34); + static final double PAD_BOTTOM = px(14); + static final double CONTENT_WIDTH = PAGE_WIDTH - 2 * MARGIN_X; + + /** The sidebar runs from the left margin to the column rule. */ + static final double SIDEBAR_WEIGHT = 0.26533; + static final double MAIN_WEIGHT = 1.0 - SIDEBAR_WEIGHT; + static final double MAIN_PAD_LEFT = px(32); + static final double MAIN_CONTENT_WIDTH = CONTENT_WIDTH * MAIN_WEIGHT - MAIN_PAD_LEFT; + + /** + * The closing band's first divider is collinear with the body's column + * rule, so its first weight is the sidebar's — that is the shared grid, + * not a coincidence to be measured twice. + */ + static final double BAND_WEIGHT_1 = SIDEBAR_WEIGHT; + static final double BAND_WEIGHT_2 = 0.37789; + static final double BAND_WEIGHT_3 = 1.0 - BAND_WEIGHT_1 - BAND_WEIGHT_2; + + static final double BAND_PAD_LEFT = px(36); + + /** + * Two right insets, because the design uses two: a heading's underline + * stops well short of the divider while the body under it runs on almost + * to the rule. One inset for both would either wrap the longest line or + * overrun every underline. + */ + static final double BAND_RULE_INSET = px(40); + static final double BAND_COL1_WIDTH = CONTENT_WIDTH * BAND_WEIGHT_1 - BAND_RULE_INSET; + static final double BAND_COL2_WIDTH = + CONTENT_WIDTH * BAND_WEIGHT_2 - BAND_PAD_LEFT - BAND_RULE_INSET; + static final double BAND_COL3_WIDTH = CONTENT_WIDTH * BAND_WEIGHT_3 - BAND_PAD_LEFT; + + /** + * Two blocks wrap inside a measure narrower than the column holding them, + * and the design is unambiguous about both: the summary breaks with a + * finger's width of its column still free, and so does the first fact. + * Reproducing the line breaks means reproducing the measure, not only the + * type size. + */ + static final double SUMMARY_RIGHT_INSET = px(105); + static final double BAND_COL3_TEXT_INSET = px(79); + + // -- type -------------------------------------------------------------- + + static final FontName DISPLAY_FONT = FontName.POPPINS; + + /** + * The drawing's heading face sets about a fifth narrower per cap height + * than the body's bold, so the headings take a condensed face and keep + * both dimensions rather than shrinking to fit and losing the cap height. + */ + static final FontName HEADING_FONT = FontName.BARLOW_CONDENSED; + static final FontName BODY_FONT = FontName.LATO; + + static final double NAME_SIZE = 39.5; + static final double ROLE_SIZE = 13.84; + static final double CONTACT_SIZE = 7.86; + static final double SIDEBAR_HEADING_SIZE = 10.4; + static final double COMPETENCY_SIZE = 9.09; + static final double MAIN_HEADING_SIZE = 12.7; + static final double SUMMARY_SIZE = 9.91; + static final double ENTRY_HEADLINE_SIZE = 8.90; + static final double BULLET_SIZE = 8.16; + static final double BAND_HEADING_SIZE = 9.6; + static final double BAND_BODY_SIZE = 8.6; + static final double BAND_DEGREE_SIZE = 10.55; + static final double TAGLINE_SIZE = 8.09; + + static final double SUMMARY_LEADING = 5.37; + static final double BULLET_LEADING = 1.0; + static final double BAND_LEADING = 4.71; + + // -- tracking ---------------------------------------------------------- + + /** + * A space's advance as a fraction of the type size. Tracking is written as + * spacer runs between the letters because a text style carries no + * letter-spacing, and this is what turns a wanted em fraction into a + * number of spaces. + */ + static final double SPACE_ADVANCE_EM = 0.25; + + static final double NAME_TRACKING_EM = 0.045; + static final double ROLE_TRACKING_EM = 0.43; + static final double MAIN_HEADING_TRACKING_EM = 0.124; + static final double SIDEBAR_HEADING_TRACKING_EM = 0.251; + static final double BAND_HEADING_TRACKING_EM = 0.215; + static final double TAGLINE_TRACKING_EM = 0.239; + + // -- palette ----------------------------------------------------------- + + static final DocumentColor ACCENT = DocumentColor.rgb(6, 100, 112); + static final DocumentColor ACCENT_DEEP = DocumentColor.rgb(0, 80, 95); + static final DocumentColor RULE_STRONG = DocumentColor.rgb(0, 88, 104); + static final DocumentColor RULE_SOFT = DocumentColor.rgb(119, 174, 182); + static final DocumentColor RULE_PALE = DocumentColor.rgb(177, 204, 207); + static final DocumentColor SEPARATOR = DocumentColor.rgb(54, 125, 135); + static final DocumentColor DISPLAY_TEXT = DocumentColor.rgb(34, 36, 50); + static final DocumentColor BODY_TEXT = DocumentColor.rgb(17, 17, 17); + static final DocumentColor PAPER = DocumentColor.WHITE; + + // -- the mark ---------------------------------------------------------- + + static final double LOGO_WIDTH = px(132); + static final double LOGO_HEIGHT = px(105); + static final double LOGO_TO_IDENTITY = px(39); + static final double MARK_STROKE = px(3); + + /** The pulse crosses the heart below its centre, not through it. */ + static final double PULSE_DROP = px(6.5); + + /** + * The pulse's box is its INK box: a path is mapped onto the size given by + * its own bounds rather than its viewBox. Its height is the spike's, and + * that is why the pulse is a path and not an icon — the drawing's line is + * flatter than any heartbeat glyph, and an icon keeps its aspect. + */ + static final double PULSE_BOX_WIDTH = px(172); + static final double PULSE_BOX_HEIGHT = px(82); + + /** + * A shape container clamps an over-wide child to the left exactly as it + * top-clamps an over-tall one, so the pulse is pulled back by half its own + * overflow. + */ + static final double PULSE_SHIFT = -(PULSE_BOX_WIDTH - LOGO_WIDTH) / 2.0; + + // -- rules, badges and dots -------------------------------------------- + + static final double DIVIDER_WIDTH = px(2); + static final double FULL_RULE_THICKNESS = px(2.5); + static final double HEADER_RULE_THICKNESS = px(2.5); + static final double BAND_RULE_THICKNESS = px(3); + static final double SIDEBAR_DASH_WIDTH = px(54); + static final double SIDEBAR_DASH_THICKNESS = px(3); + static final double SIDEBAR_CLOSING_RULE_WIDTH = px(216); + static final double SIDEBAR_CLOSING_RULE_THICKNESS = px(3); + static final double TAGLINE_RULE_HEIGHT = px(21); + + static final double BADGE_MAIN = px(58); + static final double BADGE_BAND = px(51); + static final double SECTION_GAP = px(17); + static final double BAND_HEADER_GAP = px(18); + static final double DOT_DIAMETER = px(6); + static final double DOT_GAP = px(17); + + static final double SEPARATOR_HEIGHT = px(38); + static final double SEPARATOR_THICKNESS = px(1.5); + + /** + * A contact icon is twice the height of the value beside it, so it is the + * icon that sets the line box: centring puts the icon on that box's middle + * while the value still sits near its foot, and the pair reads as standing + * at two levels. These two corrections put both back where the drawing has + * them — the first raises the pair, the second returns the icon to the + * value's own axis. + */ + static final double CONTACT_ICON_DROP = -px(4); + static final double CONTACT_PAIR_LIFT = px(4); + + /** + * The gap asked of the type, not the gap that appears: an icon's box + * carries its own bearing, so about half the drawn gap is requested and + * the bearing makes up the rest. + */ + static final double CONTACT_ICON_GAP = px(7.5); + + // -- the rhythm between blocks ----------------------------------------- + + static final double MASTHEAD_TO_CONTACT = px(17); + static final double CONTACT_TO_RULE = px(23); + static final double RULE_TO_BODY = px(29); + static final double NAME_TO_ROLE = px(0); + static final double SIDEBAR_PAD_TOP = px(9); + static final double DASH_TO_HEADING = px(14); + static final double HEADING_TO_ITEMS = px(35); + static final double COMPETENCY_GAP = px(29.2); + static final double ITEMS_TO_CLOSING_RULE = px(50); + static final double HEADER_TO_BODY = px(20); + static final double SUMMARY_TO_EXPERIENCE = px(29); + static final double HEADER_TO_ENTRY = px(14); + static final double ENTRY_TO_BULLETS = px(13); + static final double ENTRY_GAP = px(34); + static final double BODY_TO_CLOSING_RULE = px(30); + static final double CLOSING_RULE_TO_BAND = px(27); + static final double BAND_HEADING_TO_UNDERLINE = px(9.5); + static final double BAND_HEADER_TO_BODY = px(22); + + /** + * The closing-band heading does not sit on its badge's centre line: the + * stack is seated below it so the underline clears the badge's lower half + * rather than cutting through it. + */ + static final double BAND_HEADING_DROP = px(12); + static final double BAND_LINE_GAP = px(10.5); + static final double BAND_FACT_GAP = px(14.6); + static final double CERT_ITEM_GAP = px(12.9); + static final double BAND_TO_TAGLINE_RULE = px(22); + static final double TAGLINE_RULE_TO_TEXT = px(1.6); + + /** + * Bullet pitch is section spacing, not line spacing: a single-line + * paragraph takes the font's own line height whatever leading it is given, + * so the drawn pitch has to be the gap between paragraphs. + */ + static final double BULLET_GAP = px(7.9); + + // -- helpers ----------------------------------------------------------- + + static DocumentTextStyle style(FontName font, double size, DocumentColor color, + DocumentTextDecoration decoration) { + return DocumentTextStyle.builder() + .fontName(font) + .size(size) + .color(color) + .decoration(decoration) + .build(); + } + + /** + * The size a spacer run is set at so that {@code runs} of them advance the + * wanted fraction of an em. + */ + static DocumentTextStyle spacerStyle(DocumentTextStyle textStyle, double trackingEm, + int runs) { + return textStyle.withSize(trackingEm * textStyle.size() / (runs * SPACE_ADVANCE_EM)); + } + + /** + * How many spacer characters carry one gap. + * + *

    A run's size sets the line's height as well as its advance, so a + * single space wide enough for heavy tracking would make the line taller + * than its own type. Splitting the gap across several smaller spaces keeps + * every spacer below the text size.

    + */ + static int spacerRuns(double trackingEm) { + return Math.max(1, (int) Math.ceil(trackingEm / SPACE_ADVANCE_EM)); + } + + /** + * Spaces that advance about {@code width} points at {@code size}. + * + *

    Deliberately not one resized space: a run's size sets the line's + * height as well as its advance, so a single space wide enough for the gap + * would make its line several times too tall. The count follows the size, + * so changing the type scale moves the gap with it.

    + */ + static String gapRun(double width, double size) { + int spaces = (int) Math.max(1, Math.round(width / (SPACE_ADVANCE_EM * size))); + return " ".repeat(spaces); + } + + /** A node name built from a heading, with the spacing taken out of it. */ + static String compact(String value) { + return value == null ? "" : value.replaceAll("[^A-Za-z0-9]", ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseWidgets.java new file mode 100644 index 000000000..1a40b3a73 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseWidgets.java @@ -0,0 +1,234 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeBuilder; +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.TextAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; + +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ACCENT_DEEP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BADGE_BAND; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BADGE_MAIN; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_HEADER_GAP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_HEADER_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_HEADING_DROP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_HEADING_TO_UNDERLINE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_HEADING_TRACKING_EM; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BAND_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BODY_TEXT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.DOT_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.DOT_GAP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.HEADER_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.HEADING_FONT; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.MAIN_CONTENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.MAIN_HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.MAIN_HEADING_TRACKING_EM; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.PAPER; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SECTION_GAP; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.gapRun; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.spacerRuns; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.spacerStyle; +import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.style; + +/** + * The idioms this sheet repeats: the tracked run, the badge, the dotted line + * and the two heading bars. + */ +final class TealPulseWidgets { + + private TealPulseWidgets() { + } + + // -- tracking ---------------------------------------------------------- + + /** + * A letter-spaced run. + * + *

    A text style carries no letter-spacing, so every character is its own + * run and the gaps between them are spaces set small enough to advance the + * wanted fraction of an em. The gap is split across several spacers rather + * than carried on one, because a run's size sets its line's height as well + * as its advance.

    + * + * @param paragraph the paragraph to write into + * @param text the text to space out + * @param textStyle the style of the letters + * @param trackingEm the gap as a fraction of an em + */ + static void tracked(ParagraphBuilder paragraph, String text, DocumentTextStyle textStyle, + double trackingEm) { + int runs = spacerRuns(trackingEm); + DocumentTextStyle spacer = spacerStyle(textStyle, trackingEm, runs); + for (int index = 0; index < text.length(); index++) { + paragraph.inlineText(String.valueOf(text.charAt(index)), textStyle); + if (index + 1 < text.length()) { + paragraph.inlineText(" ".repeat(runs), spacer); + } + } + } + + /** + * The same, with the paper laid behind every run, so a rule the heading is + * drawn over shows only past the end of the words. + */ + static void knockedOut(ParagraphBuilder paragraph, String text, + DocumentTextStyle textStyle, double trackingEm) { + int runs = spacerRuns(trackingEm); + DocumentTextStyle spacer = spacerStyle(textStyle, trackingEm, runs); + for (int index = 0; index < text.length(); index++) { + knockedOutRun(paragraph, String.valueOf(text.charAt(index)), textStyle); + if (index + 1 < text.length()) { + knockedOutRun(paragraph, " ".repeat(runs), spacer); + } + } + } + + /** One knocked-out run. No horizontal padding, so neighbours abut. */ + private static void knockedOutRun(ParagraphBuilder paragraph, String text, + DocumentTextStyle textStyle) { + paragraph.inlineHighlight(text, textStyle, PAPER, 0, + new DocumentInsets(HEADER_RULE_THICKNESS, 0, HEADER_RULE_THICKNESS, 0)); + } + + // -- marks ------------------------------------------------------------- + + /** A teal disc owning a white glyph — the pair moves and scales as one. */ + static DocumentNode badge(String name, String token, double diameter) { + return new ShapeContainerBuilder() + .name("Badge_" + compact(name)) + .circle(diameter) + .fillColor(ACCENT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .center(icon(token)) + .build(); + } + + /** + * One mark as a node. It is wrapped in a section rather than placed + * directly, so the vector path reaches the page rather than a coloured + * stand-in shaped like its box. + */ + static DocumentNode icon(String token) { + return new SectionBuilder() + .name("Icon_" + compact(token)) + .spacing(0) + .padding(DocumentInsets.zero()) + .margin(DocumentInsets.zero()) + .addSvgIcon(TealPulseIcons.icon(token), TealPulseIcons.size(token)) + .build(); + } + + // -- lines ------------------------------------------------------------- + + /** + * A teal dot leading a near-black label. + * + *

    Not a list: a list marker takes its item's own text colour, and here + * the dot and the label are deliberately different colours.

    + */ + static DocumentNode dottedLine(String name, String text, double size, double leading) { + DocumentTextStyle textStyle = + style(BODY_FONT, size, BODY_TEXT, DocumentTextDecoration.DEFAULT); + return new ParagraphBuilder() + .name(name) + .textStyle(textStyle) + .align(TextAlign.LEFT) + .lineSpacing(leading) + .dot(DOT_DIAMETER, ACCENT) + .inlineText(gapRun(DOT_GAP, size) + text, textStyle) + .margin(DocumentInsets.zero()) + .build(); + } + + // -- heading bars ------------------------------------------------------ + + /** + * The main column's heading: a badge, the words, and a rule running from + * them to the right margin. + * + *

    The obvious construction is unavailable here. A row of fixed / auto / + * weighted cells would let the layout derive the rule's length from the + * heading's width, but a row cannot nest inside a row cell and the main + * column is a row cell; the alternative, a shape container placing + * children by anchor, needs every width up front.

    + * + *

    So the rule is drawn at full length from just past the badge and the + * heading is laid over it with the paper knocked out behind every run. The + * rule then shows exactly where the heading is not, which is the picture an + * auto column would have produced, and its visible length still follows the + * words rather than a width guessed while authoring.

    + */ + static DocumentNode sectionHeader(String title, String token, double gapBelow) { + double railStart = BADGE_MAIN + SECTION_GAP; + DocumentNode rail = new ShapeBuilder() + .name("SectionHeaderRule_" + compact(title)) + .size(MAIN_CONTENT_WIDTH - railStart, HEADER_RULE_THICKNESS) + .fillColor(ACCENT) + .build(); + DocumentTextStyle headingStyle = style( + HEADING_FONT, MAIN_HEADING_SIZE, ACCENT_DEEP, DocumentTextDecoration.BOLD); + ParagraphBuilder heading = new ParagraphBuilder() + .name("SectionHeading_" + compact(title)) + .textStyle(headingStyle) + .align(TextAlign.LEFT) + .lineSpacing(1.0); + knockedOut(heading, title, headingStyle, MAIN_HEADING_TRACKING_EM); + knockedOutRun(heading, gapRun(SECTION_GAP, MAIN_HEADING_SIZE), headingStyle); + return new ShapeContainerBuilder() + .name("SectionHeader_" + compact(title)) + .rectangle(MAIN_CONTENT_WIDTH, BADGE_MAIN) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(badge(title, token, BADGE_MAIN)) + .position(rail, railStart, 0, LayerAlign.CENTER_LEFT, 0) + .position(heading.margin(DocumentInsets.zero()).build(), + railStart, 0, LayerAlign.CENTER_LEFT, 1) + .margin(new DocumentInsets(0, 0, gapBelow, 0)) + .build(); + } + + /** + * The closing band's heading: the rule sits UNDER the words rather than + * after them, so its width is derivable — the column less the badge and + * the gap — and nothing has to be knocked out. + */ + static DocumentNode columnHeader(String title, String token, double columnWidth) { + DocumentTextStyle headingStyle = style( + HEADING_FONT, BAND_HEADING_SIZE, ACCENT_DEEP, DocumentTextDecoration.BOLD); + ParagraphBuilder heading = new ParagraphBuilder() + .name("ColumnHeading_" + compact(title)) + .textStyle(headingStyle) + .align(TextAlign.LEFT) + .lineSpacing(1.0); + tracked(heading, title, headingStyle, BAND_HEADING_TRACKING_EM); + double stackStart = BADGE_BAND + BAND_HEADER_GAP; + DocumentNode stack = new SectionBuilder() + .name("ColumnHeadingStack_" + compact(title)) + .spacing(0) + .add(heading.margin(DocumentInsets.zero()).build()) + .addLine(line -> line + .name("ColumnHeadingRule_" + compact(title)) + .horizontal(columnWidth - stackStart) + .thickness(BAND_RULE_THICKNESS) + .color(ACCENT) + .margin(new DocumentInsets(BAND_HEADING_TO_UNDERLINE, 0, 0, 0))) + .build(); + return new ShapeContainerBuilder() + .name("ColumnHeader_" + compact(title)) + .rectangle(columnWidth, BADGE_BAND) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(badge(title, token, BADGE_BAND)) + .position(stack, stackStart, BAND_HEADING_DROP, LayerAlign.CENTER_LEFT) + .margin(new DocumentInsets(0, 0, BAND_HEADER_TO_BODY, 0)) + .build(); + } +} diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/additional.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/additional.svg new file mode 100644 index 000000000..50719fb48 --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/additional.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/brand-heart.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/brand-heart.svg new file mode 100644 index 000000000..e678eff0f --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/brand-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/brand-pulse.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/brand-pulse.svg new file mode 100644 index 000000000..b02fd7af5 --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/brand-pulse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/certifications.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/certifications.svg new file mode 100644 index 000000000..972d65546 --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/certifications.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/education.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/education.svg new file mode 100644 index 000000000..66eb8e377 --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/education.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/email.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/email.svg new file mode 100644 index 000000000..291f1c368 --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/experience.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/experience.svg new file mode 100644 index 000000000..d474a2838 --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/experience.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/heart.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/heart.svg new file mode 100644 index 000000000..20d5f5076 --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/linkedin.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/linkedin.svg new file mode 100644 index 000000000..3ed716e9e --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/location.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/location.svg new file mode 100644 index 000000000..876c7101e --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/phone.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/phone.svg new file mode 100644 index 000000000..bfab7b00d --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/teal-pulse/icons/summary.svg b/templates/src/main/resources/templates/cv/teal-pulse/icons/summary.svg new file mode 100644 index 000000000..173514856 --- /dev/null +++ b/templates/src/main/resources/templates/cv/teal-pulse/icons/summary.svg @@ -0,0 +1 @@ + \ No newline at end of file From 31cdd942f03b383fa64b12cff78e1a529fd3d2f1 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 17:39:44 +0100 Subject: [PATCH 21/85] feat(templates): give CvSkill the level as the document words it (#628) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A rated skill could say how much — a number in [0, 1] a preset draws as dots or a meter — or it could say it in words by not being a skill at all and living in a RowsSection instead. It could not say both, which is why CharcoalGold sets its languages as rows: that design writes "Native" and "B2 – Upper Intermediate" out, and a number could not carry them back. A design that shows a rating and names it in the same line had nowhere to go. CvSkill now carries `note`, a plain string blank when absent, reachable through CvSkill.of(name, level, note). The two channels stay separate because a number cannot carry a wording and a wording cannot be measured into a meter; a preset draws whichever it has room for, or both. The two-argument constructor and both existing factories are kept explicitly, so existing calls compile and link unchanged and every skill built through them still carries no note. --- CHANGELOG.md | 13 ++++ .../templates/cv/data/CvSkillNoteTest.java | 63 +++++++++++++++++++ .../document/templates/cv/data/CvSkill.java | 38 ++++++++++- 3 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvSkillNoteTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index f2e77d060..1e16148fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,19 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **`CvSkill` carries the level as the document words it.** A rated skill could say how + much — a number in `[0, 1]` a preset draws as dots or a meter — or it could say it in + words by not being a skill at all and living in a `RowsSection` instead. It could not + say both, which is why `CharcoalGold` sets its languages as rows: that design writes + "Native" and "B2 – Upper Intermediate" out, and a number could not carry them back. A + design that shows a rating *and* names it had nowhere to go. `CvSkill` now carries + `note` — a plain string, blank when absent, like the fields beside it — reachable + through `CvSkill.of(name, level, note)`. The two channels stay separate because a + number cannot carry a wording and a wording cannot be measured into a meter; a preset + draws whichever it has room for, or both. The two-argument constructor and both + existing factories are kept explicitly, so existing calls compile and link unchanged + and every skill built through them still carries no note. + - **The structured invoice model carries what a second sheet needs.** It landed with one consumer, `ConsultingInvoice`, and a model shaped around one document is a model nobody has tested. Fitting a second published invoice to it found six things it could diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvSkillNoteTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvSkillNoteTest.java new file mode 100644 index 000000000..a76b79a1c --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvSkillNoteTest.java @@ -0,0 +1,63 @@ +package com.demcha.compose.document.templates.cv.data; + +import org.junit.jupiter.api.Test; + +import java.util.OptionalDouble; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Pins the written-out level on {@link CvSkill}: what it normalises, and that + * every way of building a skill that predates it still compiles and still + * produces a skill without one. + */ +class CvSkillNoteTest { + + @Test + void aSkillCarriesTheLevelAsTheDocumentWordsIt() { + CvSkill skill = new CvSkill("Spanish", OptionalDouble.of(0.6), + "Professional Working"); + assertThat(skill.note()).isEqualTo("Professional Working"); + assertThat(skill.level()).hasValue(0.6); + } + + @Test + void theFactoryTakesBothChannels() { + CvSkill skill = CvSkill.of("French", 0.4, "Basic"); + assertThat(skill.note()).isEqualTo("Basic"); + assertThat(skill.level()).hasValue(0.4); + } + + @Test + void anAbsentNoteIsBlankRatherThanNull() { + assertThat(new CvSkill("Java", OptionalDouble.empty(), null).note()).isEmpty(); + assertThat(new CvSkill("Java", OptionalDouble.empty(), " ").note()).isEmpty(); + } + + @Test + void aNoteIsTrimmed() { + assertThat(new CvSkill("Java", OptionalDouble.empty(), " Native ").note()) + .isEqualTo("Native"); + } + + @Test + void theTwoArgumentConstructorStillBuildsASkillWithoutANote() { + CvSkill skill = new CvSkill("Java", OptionalDouble.of(0.9)); + assertThat(skill.note()).isEmpty(); + assertThat(skill.level()).hasValue(0.9); + } + + @Test + void theNameOnlyAndLevelFactoriesStillBuildSkillsWithoutANote() { + assertThat(CvSkill.of("Java").note()).isEmpty(); + assertThat(CvSkill.of("Java").level()).isEmpty(); + assertThat(CvSkill.of("Java", 0.5).note()).isEmpty(); + assertThat(CvSkill.of("Java", 0.5).level()).hasValue(0.5); + } + + @Test + void aSkillGroupBuiltFromNamesCarriesNoNotes() { + SkillGroup group = SkillGroup.of("Languages", "Java", "Kotlin"); + assertThat(group.entries()).allSatisfy(skill -> assertThat(skill.note()).isEmpty()); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvSkill.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvSkill.java index 6ab5e3b28..1f1590061 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvSkill.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvSkill.java @@ -15,11 +15,18 @@ * empty level, so name-only renderers are completely unaffected by the * level channel.

    * + *

    The note is the level written out — "Native", "B2 – Upper + * Intermediate", "3 years" — for the designs that show a rating and name it + * in the same line. It is a separate channel from {@link #level} because a + * number cannot carry a wording and a wording cannot be measured into a + * meter; a preset draws whichever of the two it has room for, or both.

    + * * @param name non-blank skill label * @param level optional proficiency in {@code [0, 1]}; empty when * unspecified + * @param note the level as the document words it; blank when unspecified */ -public record CvSkill(String name, OptionalDouble level) { +public record CvSkill(String name, OptionalDouble level, String note) { /** * Validates that both fields are non-null, trims {@code name} and @@ -29,6 +36,7 @@ public record CvSkill(String name, OptionalDouble level) { public CvSkill { Objects.requireNonNull(name, "name"); Objects.requireNonNull(level, "level"); + note = note == null ? "" : note.trim(); name = name.trim(); if (name.isBlank()) { throw new IllegalArgumentException("name must not be blank"); @@ -42,6 +50,17 @@ public record CvSkill(String name, OptionalDouble level) { } } + /** + * Backward-compatible constructor for callers that predate the written-out + * level. + * + * @param name non-blank skill label + * @param level optional proficiency in {@code [0, 1]} + */ + public CvSkill(String name, OptionalDouble level) { + this(name, level, ""); + } + /** * Skill with no proficiency level. * @@ -49,7 +68,7 @@ public record CvSkill(String name, OptionalDouble level) { * @return a {@code CvSkill} carrying an empty level */ public static CvSkill of(String name) { - return new CvSkill(name, OptionalDouble.empty()); + return new CvSkill(name, OptionalDouble.empty(), ""); } /** @@ -61,6 +80,19 @@ public static CvSkill of(String name) { */ public static CvSkill of(String name, double level) { return new CvSkill(name, - OptionalDouble.of(Math.max(0.0, Math.min(1.0, level)))); + OptionalDouble.of(Math.max(0.0, Math.min(1.0, level))), ""); + } + + /** + * Skill with a proficiency level and the wording that names it. + * + * @param name non-blank skill label + * @param level proficiency, clamped into {@code [0, 1]} + * @param note the level as the document words it + * @return a {@code CvSkill} carrying both channels + */ + public static CvSkill of(String name, double level, String note) { + return new CvSkill(name, + OptionalDouble.of(Math.max(0.0, Math.min(1.0, level))), note); } } From 6a519a2acafb3c04f73abcb56213c506540db1d5 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 18:46:09 +0100 Subject: [PATCH 22/85] feat(templates): add the Slate Orange masthead-and-rail CV preset (#629) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(templates): give CvSkill the level as the document words it A rated skill could say how much — a number in [0, 1] a preset draws as dots or a meter — or it could say it in words by not being a skill at all and living in a RowsSection instead. It could not say both, which is why CharcoalGold sets its languages as rows: that design writes "Native" and "B2 – Upper Intermediate" out, and a number could not carry them back. A design that shows a rating and names it in the same line had nowhere to go. CvSkill now carries `note`, a plain string blank when absent, reachable through CvSkill.of(name, level, note). The two channels stay separate because a number cannot carry a wording and a wording cannot be measured into a meter; a preset draws whichever it has room for, or both. The two-argument constructor and both existing factories are kept explicitly, so existing calls compile and link unchanged and every skill built through them still carries no note. * feat(templates): add the Slate Orange masthead-and-rail CV preset A one-page sheet built as a full-bleed slate band over a two-column body: an orange monogram tile beside the name, the role line and a tracked specialism strip, with the contact lines across an orange hairline; then a narrow column of marked competencies, trophied achievements, rated languages and closing facts, beside a wide column carrying the profile, the roles held on a rail, and a credentials footer. It ports a published standalone template onto the existing CvDocument, and is the first preset to use CvSkill.note: its language rows show a rating and name it on the same line, which is the pair the model could not carry before. The four fills that reach a paper edge — the slate band, the orange tile and the two column dividers — are page backgrounds rather than section fills, because a fill on a section is bounded by its content. Every horizontal pair inside a body column is a table with fixed widths: a row cannot nest in a row cell and both columns are cells, and where a cell needs several stacked lines it holds a single-column table of its own. Seven berths reach their sections by title, including a specialism berth whose body is drawn and whose title is not. As on the presets before it a link is drawn as its own label with the address behind it, the one deliberate departure from the ported sheet at 2,100 of 2,173,720 pixels, and a role or a degree becomes a link when its entry carries one. Guarded by a smoke test, an exact layout snapshot and a pixel-parity gate; the examples showcase gains `cv-slate-orange-v2`. --- CHANGELOG.md | 26 + assets/readme/examples/cv-slate-orange-v2.pdf | Bin 0 -> 51757 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../examples/support/ShowcaseMetadata.java | 1 + .../support/SlateOrangeSampleData.java | 207 ++ .../templates/cv/v2/SlateOrangeExample.java | 51 + .../cv/presets/SlateOrangeFixtures.java | 206 ++ .../SlateOrangeLayoutSnapshotTest.java | 32 + .../cv/presets/SlateOrangeSmokeTest.java | 277 +++ .../presets/SlateOrangeVisualParityTest.java | 41 + .../cv-v2/slate_orange_layout.json | 2147 +++++++++++++++++ .../cv-v2-layered/slate_orange-page-0.png | Bin 0 -> 155530 bytes .../templates/cv/presets/SlateOrange.java | 245 ++ .../cv/presets/SlateOrangeAside.java | 267 ++ .../cv/presets/SlateOrangeIcons.java | 114 + .../templates/cv/presets/SlateOrangeMain.java | 398 +++ .../cv/presets/SlateOrangeMasthead.java | 304 +++ .../cv/presets/SlateOrangeStyles.java | 342 +++ .../cv/presets/SlateOrangeWidgets.java | 162 ++ .../cv/slate-orange/icons/achievement.svg | 1 + .../cv/slate-orange/icons/availability.svg | 1 + .../cv/slate-orange/icons/calendar.svg | 1 + .../cv/slate-orange/icons/communication.svg | 1 + .../templates/cv/slate-orange/icons/crm.svg | 1 + .../slate-orange/icons/customer-service.svg | 1 + .../templates/cv/slate-orange/icons/email.svg | 1 + .../cv/slate-orange/icons/linkedin.svg | 1 + .../cv/slate-orange/icons/location.svg | 1 + .../cv/slate-orange/icons/office-suite.svg | 1 + .../cv/slate-orange/icons/operations.svg | 1 + .../templates/cv/slate-orange/icons/phone.svg | 1 + .../cv/slate-orange/icons/problem-solving.svg | 1 + .../cv/slate-orange/icons/relocation.svg | 1 + .../cv/slate-orange/icons/remote-work.svg | 1 + .../cv/slate-orange/icons/reporting.svg | 1 + .../templates/cv/slate-orange/icons/sales.svg | 1 + .../cv/slate-orange/icons/time-management.svg | 1 + 37 files changed, 4840 insertions(+) create mode 100644 assets/readme/examples/cv-slate-orange-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/SlateOrangeSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/SlateOrangeExample.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/slate_orange_layout.json create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/slate_orange-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrange.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeAside.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeWidgets.java create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/achievement.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/availability.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/calendar.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/communication.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/crm.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/customer-service.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/email.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/linkedin.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/location.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/office-suite.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/operations.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/phone.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/problem-solving.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/relocation.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/remote-work.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/reporting.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/sales.svg create mode 100644 templates/src/main/resources/templates/cv/slate-orange/icons/time-management.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e16148fc..32a558537 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -97,6 +97,32 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A masthead-and-rail CV preset: `SlateOrange`.** A one-page sheet built as a + full-bleed slate band over a two-column body: an orange monogram tile beside the name, + the role line and a tracked specialism strip, with the contact lines across an orange + hairline; then a narrow column of marked competencies, trophied achievements, rated + languages and closing facts, beside a wide column carrying the profile, the roles held + on a rail, and a credentials footer of education and certifications. Ships as + `cv.presets.SlateOrange` on the existing `CvDocument` model, porting the rendered + layout of a published standalone template; it is the first preset to use + `CvSkill.note`, which its language rows need to show a rating and name it on the same + line. The four fills that reach a paper edge — the slate band, the orange tile and the + two column dividers — are page backgrounds rather than section fills, because a fill + on a section is bounded by its content. Every horizontal pair inside a body column is + a table with fixed widths: a row cannot nest in a row cell and both columns are cells, + so mark and label, language and rating, role and dates, and the two credential columns + are all tables, and where a cell needs several stacked lines it holds a single-column + table of its own. Seven berths reach their sections by title, including a specialism + berth whose body is drawn and whose title is not. As on the presets before it, a link + is drawn as its own label with the address behind it — the one deliberate departure + from the ported sheet, measured at 2 100 of 2 173 720 pixels — and a role or a degree + becomes a link when its entry carries one. Guarded by a smoke test (including the + unknown-mark data error, an achievement with no mark falling back to the trophy, a + language with and without its wording, the monogram and the strip, the link targets, + an identity with no links, a document with nothing but an identity, and the refusal of + a CV taller than the sheet), an exact layout snapshot and a pixel-parity gate; the + examples showcase gains `cv-slate-orange-v2`. + - **A clinical CV preset in five bands: `TealPulse`.** A one-page sheet whose mark is a heart crossed by a flat pulse, beside a letter-spaced name over a contact strip divided by short rules; then a two-column body carrying the competencies as dotted diff --git a/assets/readme/examples/cv-slate-orange-v2.pdf b/assets/readme/examples/cv-slate-orange-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d3656f57cae7318bc30181e8173daf9436caa2f9 GIT binary patch literal 51757 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 tags, String codeUrl cv("cv-charcoal-gold-v2", "CharcoalGoldExample", "Charcoal Gold", "Charcoal sidebar with a ringed photograph, rated skills and languages, beside a paper column with a two-tone name, a dated experience rail and paired credential columns.", "sidebar", "photo", "gold"); cv("cv-terracotta-rail-v2", "TerracottaRailExample", "Terracotta Rail", "Serif monogram over a terracotta rule, contact channels behind their marks and two bulleted lists, beside a letter-spaced masthead, roles on a ringed rail, a projects grid and the degrees.", "sidebar", "monogram", "terracotta"); cv("cv-teal-pulse-v2", "TealPulseExample", "Teal Pulse", "Clinical sheet in five bands: a heart crossed by a pulse beside the name, a contact strip on rules, competencies beside the summary and roles, and a three-column closing band over a tracked tagline.", "clinical", "badges", "teal"); + cv("cv-slate-orange-v2", "SlateOrangeExample", "Slate Orange", "Full-bleed slate masthead with an orange monogram tile, over a sidebar of marked competencies, trophied achievements and rated languages beside a profile, a dated experience rail and a credentials footer.", "sidebar", "masthead", "orange"); // ===== Templates / Cover Letter (v2 layered, paired 1:1 with CV) ===== // Registered directly: letter() points at the layered preset examples under diff --git a/examples/src/main/java/com/demcha/examples/support/SlateOrangeSampleData.java b/examples/src/main/java/com/demcha/examples/support/SlateOrangeSampleData.java new file mode 100644 index 000000000..00220b388 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/SlateOrangeSampleData.java @@ -0,0 +1,207 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * Shared sample data for the Slate Orange CV example. + * + *

    The sample is the preset's reference content: a one-page CV with four + * contact lines including a link, ten marked competencies, three + * achievements, three rated languages, three closing facts, a profile, four + * roles, a degree and four certifications.

    + * + *

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

    + */ +public final class SlateOrangeSampleData { + + /** The break a body stacks its lines on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private SlateOrangeSampleData() { + } + + /** The single-page reference CV. */ + public static CvDocument sample() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.MAIN, specialisms())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, competencies())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, achievements())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, languages())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, facts())); + placements.add(new CvDocument.Placement(Slot.MAIN, profile())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.FOOTER, education())); + placements.add(new CvDocument.Placement(Slot.FOOTER, certifications())); + return new CvDocument(identity(), placements); + } + + private static CvIdentity identity() { + return new CvIdentity( + CvName.of("DANIEL", "HARPER"), + "VERSATILE PROFESSIONAL", + new Contact("(555) 123-4567", + "daniel.harper@email.com", + "Austin, Texas \u2022 Open to Relocate"), + List.of(new Link("LinkedIn", "https://www.linkedin.com/in/danielharper")), + Optional.empty()); + } + + /** The strip under the role. Only the body is drawn; the title names the berth. */ + private static ParagraphSection specialisms() { + return new ParagraphSection("SPECIALISMS", String.join(NEWLINE, + "OPERATIONS", "CUSTOMER SUCCESS", "COORDINATION")); + } + + /** The competencies, each behind the mark its entry names. */ + private static EntriesSection competencies() { + return new EntriesSection("CORE COMPETENCIES", List.of( + CvEntry.builder("Customer Service Excellence").icon("customer-service").build(), + CvEntry.builder("Operations & Process Support").icon("operations").build(), + CvEntry.builder("Project & Calendar Management").icon("calendar").build(), + CvEntry.builder("Data Management & Reporting").icon("reporting").build(), + CvEntry.builder("Communication & Stakeholders").icon("communication").build(), + CvEntry.builder("Problem Solving & Adaptability").icon("problem-solving").build(), + CvEntry.builder("Sales & Relationship Building").icon("sales").build(), + CvEntry.builder("Microsoft Office & Google Suite").icon("office-suite").build(), + CvEntry.builder("CRM Systems (Salesforce, HubSpot)").icon("crm").build(), + CvEntry.builder("Time Management & Prioritization").icon("time-management").build())); + } + + /** The achievements: a bold title over its body, beside one shared trophy. */ + private static EntriesSection achievements() { + return new EntriesSection("SELECTED ACHIEVEMENTS", List.of( + CvEntry.builder("Process Improvement") + .icon("achievement") + .body("Designed a new tracking system that reduced reporting time " + + "by 30% and improved accuracy.") + .build(), + CvEntry.builder("Customer Satisfaction") + .icon("achievement") + .body("Maintained a 96% customer satisfaction rating through " + + "responsive support and issue resolution.") + .build(), + CvEntry.builder("Revenue Contribution") + .icon("achievement") + .body("Consistently exceeded monthly sales goals by 15\u201320% " + + "through relationship building and consultative service.") + .build())); + } + + /** The languages, each carrying both the rating and the word for it. */ + private static SkillsSection languages() { + return new SkillsSection("LANGUAGES", List.of(new SkillGroup("LANGUAGES", List.of( + CvSkill.of("English", 1.0, "Native"), + CvSkill.of("Spanish", 0.8, "Professional Working"), + CvSkill.of("French", 0.4, "Basic"))))); + } + + /** The closing facts, on the same mark column at a wider pitch. */ + private static EntriesSection facts() { + return new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Availability: Full-time").icon("availability").build(), + CvEntry.builder("Willing to Relocate: Yes").icon("relocation").build(), + CvEntry.builder("Remote Work: Open to Hybrid/Remote").icon("remote-work").build())); + } + + private static ParagraphSection profile() { + return new ParagraphSection("PROFESSIONAL PROFILE", + "Adaptable and resourceful professional with 6+ years of " + + "experience across operations, customer service, sales, and " + + "project support. Known for strong communication, " + + "organizational skills, and the ability to thrive in " + + "fast-paced environments. Adept at managing priorities, " + + "building relationships, and delivering results that drive " + + "efficiency, customer satisfaction, and business growth."); + } + + /** The roles held, each a headline over its bullets. */ + private static EntriesSection experience() { + return new EntriesSection("PROFESSIONAL EXPERIENCE", List.of( + CvEntry.builder("Operations Coordinator") + .subtitle("BrightStart Logistics, Austin, TX") + .date("Jan 2022 \u2013 Present") + .body(String.join(NEWLINE, + "Coordinate daily operations and scheduling for a team of " + + "12 across multiple sites.", + "Develop and maintain dashboards and reports to track KPIs " + + "and operational metrics.", + "Streamline communication between departments, reducing " + + "response time by 25%.", + "Manage vendor relationships and assist with contract and " + + "invoice reconciliation.")) + .build(), + CvEntry.builder("Customer Support Specialist") + .subtitle("TechWave Solutions, Remote") + .date("Jun 2020 \u2013 Dec 2021") + .body(String.join(NEWLINE, + "Provided technical support to customers via phone, email, " + + "and live chat.", + "Resolved an average of 40+ inquiries daily with a " + + "first-contact resolution rate of 92%.", + "Created knowledge base articles and improved internal " + + "documentation.", + "Collaborated with product and engineering teams to " + + "escalate and resolve issues.")) + .build(), + CvEntry.builder("Sales Associate") + .subtitle("Urban Outfitters, Austin, TX") + .date("Mar 2019 \u2013 May 2020") + .body(String.join(NEWLINE, + "Consistently exceeded sales targets by 15\u201320% through " + + "product knowledge and personalized customer service.", + "Built and maintained strong customer relationships, " + + "driving repeat business.", + "Merchandised floor displays and contributed to visual " + + "standards and promotions.", + "Recognized as \u201cTop Performer\u201d for Q4 2019.")) + .build(), + CvEntry.builder("Administrative Assistant / Project Assistant") + .subtitle("Greenfield Nonprofit Initiative, Austin, TX") + .date("May 2018 \u2013 Feb 2019") + .body(String.join(NEWLINE, + "Supported project managers with scheduling, documentation, " + + "and meeting logistics.", + "Managed calendars, travel arrangements, and expense " + + "reports.", + "Maintained donor records and prepared reports for " + + "leadership and stakeholders.", + "Assisted with event planning and community outreach " + + "initiatives.")) + .build())); + } + + /** The degree; the design's third line is where and when, as one line. */ + private static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("Bachelor of Arts in Communications") + .subtitle("University of Texas at Austin") + .place("Austin, TX \u2022 Graduated May 2018") + .build())); + } + + /** The certifications, one bulleted line each. */ + private static EntriesSection certifications() { + return new EntriesSection("CERTIFICATIONS & TRAINING", List.of( + CvEntry.builder("Google Project Management Certificate (Coursera) \u2013 2023").build(), + CvEntry.builder("HubSpot Customer Service Certification \u2013 2022").build(), + CvEntry.builder("Microsoft Excel: Advanced Formulas & Functions \u2013 2021").build(), + CvEntry.builder("ServSafe Food Handler Certification \u2013 2019").build())); + } +} diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/SlateOrangeExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/SlateOrangeExample.java new file mode 100644 index 000000000..698d32580 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/SlateOrangeExample.java @@ -0,0 +1,51 @@ +package com.demcha.examples.templates.cv.v2; + +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.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.SlateOrange; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.SlateOrangeSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code cv.v2} Slate Orange preset against the + * operations sample. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-slate-orange-v2.pdf}.

    + * + *

    The preset owns its page geometry — the sheet is drawn to the paper edge + * and every column pads itself — so the session starts unconfigured.

    + */ +public final class SlateOrangeExample { + + private SlateOrangeExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare("templates/cv", "cv-slate-orange-v2.pdf"); + CvDocument doc = SlateOrangeSampleData.sample(); + DocumentTemplate template = SlateOrange.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + template.compose(document, doc); + 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/cv/presets/SlateOrangeFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeFixtures.java new file mode 100644 index 000000000..7557c0bf3 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeFixtures.java @@ -0,0 +1,206 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * Shared fixture data for the {@link SlateOrange} gates — the SAME document + * feeds the pixel parity test and the layout snapshot test, so a geometry + * shift the pixel budget absorbs still trips the exact snapshot, and vice + * versa. + */ +final class SlateOrangeFixtures { + + /** The break a body stacks its lines on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private SlateOrangeFixtures() { + } + + /** + * The canonical one-page CV — the monogram tile, four contact lines + * including a link, ten marked competencies, three achievements, three + * rated languages, three closing facts, a profile, four roles, a degree + * and four certifications. + */ + static CvDocument canonicalCv() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.MAIN, specialisms())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, competencies())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, achievements())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, languages())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, facts())); + placements.add(new CvDocument.Placement(Slot.MAIN, profile())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.FOOTER, education())); + placements.add(new CvDocument.Placement(Slot.FOOTER, certifications())); + return new CvDocument(identity(), placements); + } + + static CvIdentity identity() { + return new CvIdentity( + CvName.of("DANIEL", "HARPER"), + "VERSATILE PROFESSIONAL", + new Contact("(555) 123-4567", + "daniel.harper@email.com", + "Austin, Texas \u2022 Open to Relocate"), + List.of(new Link("LinkedIn", "https://www.linkedin.com/in/danielharper")), + Optional.empty()); + } + + /** The strip under the role. Only the body is drawn; the title names the berth. */ + static ParagraphSection specialisms() { + return new ParagraphSection("SPECIALISMS", String.join(NEWLINE, + "OPERATIONS", "CUSTOMER SUCCESS", "COORDINATION")); + } + + /** The competencies, each behind the mark its entry names. */ + static EntriesSection competencies() { + return new EntriesSection("CORE COMPETENCIES", List.of( + CvEntry.builder("Customer Service Excellence").icon("customer-service").build(), + CvEntry.builder("Operations & Process Support").icon("operations").build(), + CvEntry.builder("Project & Calendar Management").icon("calendar").build(), + CvEntry.builder("Data Management & Reporting").icon("reporting").build(), + CvEntry.builder("Communication & Stakeholders").icon("communication").build(), + CvEntry.builder("Problem Solving & Adaptability").icon("problem-solving").build(), + CvEntry.builder("Sales & Relationship Building").icon("sales").build(), + CvEntry.builder("Microsoft Office & Google Suite").icon("office-suite").build(), + CvEntry.builder("CRM Systems (Salesforce, HubSpot)").icon("crm").build(), + CvEntry.builder("Time Management & Prioritization").icon("time-management").build())); + } + + /** The achievements: a bold title over its body, beside one shared trophy. */ + static EntriesSection achievements() { + return new EntriesSection("SELECTED ACHIEVEMENTS", List.of( + CvEntry.builder("Process Improvement") + .icon("achievement") + .body("Designed a new tracking system that reduced reporting time " + + "by 30% and improved accuracy.") + .build(), + CvEntry.builder("Customer Satisfaction") + .icon("achievement") + .body("Maintained a 96% customer satisfaction rating through " + + "responsive support and issue resolution.") + .build(), + CvEntry.builder("Revenue Contribution") + .icon("achievement") + .body("Consistently exceeded monthly sales goals by 15\u201320% " + + "through relationship building and consultative service.") + .build())); + } + + /** The languages, each carrying both the rating and the word for it. */ + static SkillsSection languages() { + return new SkillsSection("LANGUAGES", List.of(new SkillGroup("LANGUAGES", List.of( + CvSkill.of("English", 1.0, "Native"), + CvSkill.of("Spanish", 0.8, "Professional Working"), + CvSkill.of("French", 0.4, "Basic"))))); + } + + /** The closing facts, on the same mark column at a wider pitch. */ + static EntriesSection facts() { + return new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Availability: Full-time").icon("availability").build(), + CvEntry.builder("Willing to Relocate: Yes").icon("relocation").build(), + CvEntry.builder("Remote Work: Open to Hybrid/Remote").icon("remote-work").build())); + } + + static ParagraphSection profile() { + return new ParagraphSection("PROFESSIONAL PROFILE", + "Adaptable and resourceful professional with 6+ years of " + + "experience across operations, customer service, sales, and " + + "project support. Known for strong communication, " + + "organizational skills, and the ability to thrive in " + + "fast-paced environments. Adept at managing priorities, " + + "building relationships, and delivering results that drive " + + "efficiency, customer satisfaction, and business growth."); + } + + /** The roles held, each a headline over its bullets. */ + static EntriesSection experience() { + return new EntriesSection("PROFESSIONAL EXPERIENCE", List.of( + CvEntry.builder("Operations Coordinator") + .subtitle("BrightStart Logistics, Austin, TX") + .date("Jan 2022 \u2013 Present") + .body(String.join(NEWLINE, + "Coordinate daily operations and scheduling for a team of " + + "12 across multiple sites.", + "Develop and maintain dashboards and reports to track KPIs " + + "and operational metrics.", + "Streamline communication between departments, reducing " + + "response time by 25%.", + "Manage vendor relationships and assist with contract and " + + "invoice reconciliation.")) + .build(), + CvEntry.builder("Customer Support Specialist") + .subtitle("TechWave Solutions, Remote") + .date("Jun 2020 \u2013 Dec 2021") + .body(String.join(NEWLINE, + "Provided technical support to customers via phone, email, " + + "and live chat.", + "Resolved an average of 40+ inquiries daily with a " + + "first-contact resolution rate of 92%.", + "Created knowledge base articles and improved internal " + + "documentation.", + "Collaborated with product and engineering teams to " + + "escalate and resolve issues.")) + .build(), + CvEntry.builder("Sales Associate") + .subtitle("Urban Outfitters, Austin, TX") + .date("Mar 2019 \u2013 May 2020") + .body(String.join(NEWLINE, + "Consistently exceeded sales targets by 15\u201320% through " + + "product knowledge and personalized customer service.", + "Built and maintained strong customer relationships, " + + "driving repeat business.", + "Merchandised floor displays and contributed to visual " + + "standards and promotions.", + "Recognized as \u201cTop Performer\u201d for Q4 2019.")) + .build(), + CvEntry.builder("Administrative Assistant / Project Assistant") + .subtitle("Greenfield Nonprofit Initiative, Austin, TX") + .date("May 2018 \u2013 Feb 2019") + .body(String.join(NEWLINE, + "Supported project managers with scheduling, documentation, " + + "and meeting logistics.", + "Managed calendars, travel arrangements, and expense " + + "reports.", + "Maintained donor records and prepared reports for " + + "leadership and stakeholders.", + "Assisted with event planning and community outreach " + + "initiatives.")) + .build())); + } + + /** The degree; the design's third line is where and when, as one line. */ + static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("Bachelor of Arts in Communications") + .subtitle("University of Texas at Austin") + .place("Austin, TX \u2022 Graduated May 2018") + .build())); + } + + /** The certifications, one bulleted line each. */ + static EntriesSection certifications() { + return new EntriesSection("CERTIFICATIONS & TRAINING", List.of( + CvEntry.builder("Google Project Management Certificate (Coursera) \u2013 2023").build(), + CvEntry.builder("HubSpot Customer Service Certification \u2013 2022").build(), + CvEntry.builder("Microsoft Excel: Advanced Formulas & Functions \u2013 2021").build(), + CvEntry.builder("ServSafe Food Handler Certification \u2013 2019").build())); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeLayoutSnapshotTest.java new file mode 100644 index 000000000..38afc1408 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeLayoutSnapshotTest.java @@ -0,0 +1,32 @@ +package com.demcha.compose.document.templates.cv.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 SlateOrange} — freezes the resolved + * geometry of the canonical one-page CV, which the pixel budget cannot see: a + * small column or spacing shift stays under the visual-diff budget but changes + * the snapshot. + * + *

    The preset owns its page geometry, so the session starts unconfigured.

    + * + *

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

    + */ +class SlateOrangeLayoutSnapshotTest { + + @Test + void canonicalCvMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + SlateOrange.create().compose(session, SlateOrangeFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "slate_orange_layout", "cv-v2"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeSmokeTest.java new file mode 100644 index 000000000..17e635b89 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeSmokeTest.java @@ -0,0 +1,277 @@ +package com.demcha.compose.document.templates.cv.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.core.identity.Contact; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.OptionalDouble; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link SlateOrange} — proves the preset renders a + * {@link CvDocument} end-to-end with its packaged marks, draws the monogram + * from the name and the specialism strip from its berth's body, reports an + * unknown mark as a data error, draws both channels of a rated language, + * refuses a CV taller than its sheet rather than losing a role, and carries + * the channels and the titles as link annotations — which move no pixel and + * no layout node, so neither gate would notice them going missing. + */ +class SlateOrangeSmokeTest { + + private static byte[] render(CvDocument doc) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + SlateOrange.create().compose(session, doc); + 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); + } + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + /** The canonical document with one section replaced. */ + private static CvDocument withSection(Slot slot, EntriesSection replacement, + String replacedTitle) { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : SlateOrangeFixtures.canonicalCv().placements()) { + if (placement.section().title().equals(replacedTitle)) { + placements.add(new CvDocument.Placement(slot, replacement)); + } else { + placements.add(placement); + } + } + return new CvDocument(SlateOrangeFixtures.identity(), placements); + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = SlateOrange.create(); + assertThat(template.id()).isEqualTo(SlateOrange.ID); + assertThat(template.displayName()).isEqualTo(SlateOrange.DISPLAY_NAME); + } + + @Test + void rendersCanonicalCvWithPackagedMarks() throws Exception { + render(SlateOrangeFixtures.canonicalCv()); + } + + @Test + void canonicalRenderCarriesEveryBlocksText() throws Exception { + String text = textOf(render(SlateOrangeFixtures.canonicalCv())); + assertThat(text) + .contains("DANIEL HARPER") + .contains("VERSATILE PROFESSIONAL") + .contains("Customer Service Excellence") + .contains("Process Improvement") + .contains("Professional Working") + .contains("Adaptable and resourceful professional") + .contains("BrightStart Logistics, Austin, TX") + .contains("Bachelor of Arts in Communications") + .contains("ServSafe Food Handler Certification"); + } + + @Test + void theMonogramAndTheSpecialismStripAreDrawn() throws Exception { + // The monogram comes from the name's own initials, and the strip is + // the specialism berth's body joined by the design's own separator. + String text = textOf(render(SlateOrangeFixtures.canonicalCv())); + assertThat(text.lines().map(String::strip).toList()) + .anyMatch(line -> line.startsWith("DH")); + assertThat(text.replaceAll("(?U)\\s", "")) + .contains("OPERATIONS") + .contains("CUSTOMERSUCCESS") + .contains("COORDINATION") + .doesNotContain("SPECIALISMS"); + } + + @Test + void aLanguageDrawsBothItsRatingAndItsWording() throws Exception { + // The discs come from the level and the words beside them from the + // note; this is the block that wants both channels of a rated skill. + SkillsSection languages = new SkillsSection("LANGUAGES", + List.of(new SkillGroup("LANGUAGES", List.of( + CvSkill.of("Dutch", 0.6, "Conversational"))))); + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : SlateOrangeFixtures.canonicalCv().placements()) { + placements.add(placement.section().title().equals("LANGUAGES") + ? new CvDocument.Placement(Slot.SIDEBAR, languages) + : placement); + } + + String text = textOf(render(new CvDocument(SlateOrangeFixtures.identity(), placements))); + assertThat(text).contains("Dutch").contains("Conversational"); + } + + @Test + void aSkillWithoutANoteLeavesThatColumnEmpty() throws Exception { + SkillsSection languages = new SkillsSection("LANGUAGES", + List.of(new SkillGroup("LANGUAGES", List.of( + new CvSkill("Dutch", OptionalDouble.of(0.6)))))); + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : SlateOrangeFixtures.canonicalCv().placements()) { + placements.add(placement.section().title().equals("LANGUAGES") + ? new CvDocument.Placement(Slot.SIDEBAR, languages) + : placement); + } + + String text = textOf(render(new CvDocument(SlateOrangeFixtures.identity(), placements))); + assertThat(text).contains("Dutch").doesNotContain("Conversational"); + } + + @Test + void contactChannelsAndLinksAreClickable() throws Exception { + // The dial target is derived from the number as the document writes + // it: this one carries no country code, so neither does the target. + List targets = linkTargets(render(SlateOrangeFixtures.canonicalCv())); + assertThat(targets) + .contains("tel:5551234567") + .contains("mailto:daniel.harper@email.com") + .contains("https://www.linkedin.com/in/danielharper"); + } + + @Test + void aLinkShowsItsLabelAndHidesItsAddress() throws Exception { + byte[] pdfBytes = render(SlateOrangeFixtures.canonicalCv()); + assertThat(textOf(pdfBytes)) + .contains("LinkedIn") + .doesNotContain("linkedin.com/in/danielharper"); + assertThat(linkTargets(pdfBytes)).contains("https://www.linkedin.com/in/danielharper"); + } + + @Test + void aRoleAndADegreeBecomeLinksWhenTheirEntryCarriesOne() throws Exception { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : SlateOrangeFixtures.canonicalCv().placements()) { + placements.add(switch (placement.section().title()) { + case "PROFESSIONAL EXPERIENCE" -> new CvDocument.Placement(Slot.MAIN, + new EntriesSection("PROFESSIONAL EXPERIENCE", List.of( + CvEntry.builder("Operations Coordinator") + .subtitle("BrightStart Logistics, Austin, TX") + .date("Jan 2022") + .link("https://example.test/brightstart") + .body("Coordinate daily operations.") + .build()))); + case "EDUCATION" -> new CvDocument.Placement(Slot.FOOTER, + new EntriesSection("EDUCATION", List.of( + CvEntry.builder("Bachelor of Arts in Communications") + .subtitle("University of Texas at Austin") + .link("https://example.test/utexas") + .build()))); + default -> placement; + }); + } + + List targets = linkTargets( + render(new CvDocument(SlateOrangeFixtures.identity(), placements))); + assertThat(targets) + .contains("https://example.test/brightstart") + .contains("https://example.test/utexas"); + } + + @Test + void anUnknownMarkIsReportedAsADataError() { + EntriesSection wrong = new EntriesSection("CORE COMPETENCIES", List.of( + CvEntry.builder("Telepathy").icon("telescope").build())); + + assertThatThrownBy(() -> render(withSection(Slot.SIDEBAR, wrong, "CORE COMPETENCIES"))) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("telescope") + .hasMessageContaining("time-management"); + } + + @Test + void anAchievementWithoutAMarkTakesTheTrophy() throws Exception { + // Every achievement carries the same mark in this design, so an entry + // that names none is drawn with it rather than without one. + EntriesSection unmarked = new EntriesSection("SELECTED ACHIEVEMENTS", List.of( + CvEntry.builder("Process Improvement").body("Reduced reporting time.").build())); + + String text = textOf(render(withSection(Slot.SIDEBAR, unmarked, + "SELECTED ACHIEVEMENTS"))); + assertThat(text).contains("Process Improvement").contains("Reduced reporting time."); + } + + @Test + void aDocumentWithNothingButAnIdentityStillRenders() throws Exception { + // Every berth empty: the band, the monogram and the name, and nothing + // in either column. + render(new CvDocument(SlateOrangeFixtures.identity(), List.of())); + } + + @Test + void anIdentityWithoutLinksDrawsTheThreeChannels() throws Exception { + CvIdentity noLinks = new CvIdentity(CvName.of("Ada", "Lovelace"), "Analyst", + new Contact("+44 20 7946 0000", "ada@example.test", "London, UK"), + List.of(), Optional.empty()); + + // A run that breaks at a space carries one annotation per piece, so it + // is the set of targets that is asserted, not the count. + byte[] pdfBytes = render(new CvDocument(noLinks, List.of())); + assertThat(Set.copyOf(linkTargets(pdfBytes))) + .containsExactlyInAnyOrder("mailto:ada@example.test", "tel:+442079460000"); + } + + @Test + void refusesACvTallerThanTheSheet() { + // The body's two columns are one row, and a row is atomic: a CV that + // outgrows the sheet raises rather than losing a role to a silent cap. + List many = new ArrayList<>(); + for (int index = 0; index < 14; index++) { + many.add(CvEntry.builder("Operations Coordinator " + index) + .subtitle("BrightStart Logistics, Austin, TX") + .date("Jan 2022") + .body("Coordinate daily operations and scheduling for a team of 12.") + .build()); + } + + assertThatThrownBy(() -> render(withSection(Slot.MAIN, + new EntriesSection("PROFESSIONAL EXPERIENCE", many), + "PROFESSIONAL EXPERIENCE"))) + .hasMessageContaining("Body"); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeVisualParityTest.java new file mode 100644 index 000000000..041eb0c5e --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeVisualParityTest.java @@ -0,0 +1,41 @@ +package com.demcha.compose.document.templates.cv.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 SlateOrange} — the canonical + * one-page CV against a checked-in baseline. + * + *

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

    + */ +class SlateOrangeVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "cv-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()) { + SlateOrange.create().compose(document, SlateOrangeFixtures.canonicalCv()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("slate_orange", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/slate_orange_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/slate_orange_layout.json new file mode 100644 index 000000000..aea329edd --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/slate_orange_layout.json @@ -0,0 +1,2147 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 595.276, + "innerHeight" : 841.89, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "SlateOrangeCv[0]", + "entityName" : "SlateOrangeCv", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 0.0, + "computedY" : 2.07, + "placementX" : 0.0, + "placementY" : 2.07, + "placementWidth" : 595.276, + "placementHeight" : 839.82, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 839.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" : "SlateOrangeCv[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "SlateOrangeCv[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 705.29, + "placementX" : 0.0, + "placementY" : 705.29, + "placementWidth" : 595.276, + "placementHeight" : 136.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 136.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" : "SlateOrangeCv[0]/Masthead[0]/Monogram[0]", + "entityName" : "Monogram", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 745.39, + "placementX" : 0.0, + "placementY" : 745.39, + "placementWidth" : 85.8, + "placementHeight" : 96.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.8, + "contentHeight" : 96.5, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 35.8, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Masthead[0]/Monogram[0]/Initials[0]", + "entityName" : "Initials", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/Monogram[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 748.79, + "placementX" : 0.0, + "placementY" : 748.79, + "placementWidth" : 85.8, + "placementHeight" : 57.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.8, + "contentHeight" : 57.3, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.7, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Masthead[0]/Monogram[0]/Align[1]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/Monogram[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 745.39, + "placementX" : 0.0, + "placementY" : 745.39, + "placementWidth" : 85.8, + "placementHeight" : 1.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.8, + "contentHeight" : 1.7, + "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" : "SlateOrangeCv[0]/Masthead[0]/Monogram[0]/Align[1]/MonogramRule[0]", + "entityName" : "MonogramRule", + "entityKind" : "LineNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/Monogram[0]/Align[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 24.3, + "computedY" : 745.39, + "placementX" : 24.3, + "placementY" : 745.39, + "placementWidth" : 37.2, + "placementHeight" : 1.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 37.2, + "contentHeight" : 1.7, + "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" : "SlateOrangeCv[0]/Masthead[0]/Identity[1]", + "entityName" : "Identity", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 85.8, + "computedY" : 728.135, + "placementX" : 85.8, + "placementY" : 728.135, + "placementWidth" : 268.949, + "placementHeight" : 113.755, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 268.949, + "contentHeight" : 113.755, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 27.4, + "right" : 0.0, + "bottom" : 0.0, + "left" : 22.0 + } + }, { + "path" : "SlateOrangeCv[0]/Masthead[0]/Identity[1]/Name[0]", + "entityName" : "Name", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/Identity[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 107.8, + "computedY" : 768.077, + "placementX" : 107.8, + "placementY" : 768.077, + "placementWidth" : 236.196, + "placementHeight" : 46.413, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.196, + "contentHeight" : 46.413, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Masthead[0]/Identity[1]/RoleLine[1]", + "entityName" : "RoleLine", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/Identity[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 107.8, + "computedY" : 747.668, + "placementX" : 107.8, + "placementY" : 747.668, + "placementWidth" : 157.064, + "placementHeight" : 18.909, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 157.064, + "contentHeight" : 18.909, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Masthead[0]/Identity[1]/Tagline[2]", + "entityName" : "Tagline", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/Identity[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 107.8, + "computedY" : 728.135, + "placementX" : 107.8, + "placementY" : 728.135, + "placementWidth" : 246.949, + "placementHeight" : 12.033, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 246.949, + "contentHeight" : 12.033, + "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" : "SlateOrangeCv[0]/Masthead[0]/MastheadHairline[2]", + "entityName" : "MastheadHairline", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 383.7, + "computedY" : 705.29, + "placementX" : 383.7, + "placementY" : 705.29, + "placementWidth" : 1.2, + "placementHeight" : 136.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.2, + "contentHeight" : 136.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 34.4, + "right" : 0.0, + "bottom" : 23.2, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Masthead[0]/MastheadHairline[2]/MastheadHairlineRule[0]", + "entityName" : "MastheadHairlineRule", + "entityKind" : "LineNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/MastheadHairline[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 383.7, + "computedY" : 728.49, + "placementX" : 383.7, + "placementY" : 728.49, + "placementWidth" : 1.2, + "placementHeight" : 79.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.2, + "contentHeight" : 79.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" : "SlateOrangeCv[0]/Masthead[0]/Contact[3]", + "entityName" : "Contact", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 384.9, + "computedY" : 730.27, + "placementX" : 384.9, + "placementY" : 730.27, + "placementWidth" : 169.418, + "placementHeight" : 111.62, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 169.418, + "contentHeight" : 111.62, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 36.8, + "right" : 0.0, + "bottom" : 0.0, + "left" : 21.4 + } + }, { + "path" : "SlateOrangeCv[0]/Masthead[0]/Contact[3]/Contact_0_phone[0]", + "entityName" : "Contact_0_phone", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/Contact[3]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 406.3, + "computedY" : 793.57, + "placementX" : 406.3, + "placementY" : 793.57, + "placementWidth" : 71.659, + "placementHeight" : 11.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.659, + "contentHeight" : 11.52, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.58, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Masthead[0]/Contact[3]/Contact_1_email[1]", + "entityName" : "Contact_1_email", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/Contact[3]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 406.3, + "computedY" : 772.47, + "placementX" : 406.3, + "placementY" : 772.47, + "placementWidth" : 119.15, + "placementHeight" : 11.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.15, + "contentHeight" : 11.52, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.58, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Masthead[0]/Contact[3]/Contact_2_linkedin[2]", + "entityName" : "Contact_2_linkedin", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/Contact[3]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 406.3, + "computedY" : 751.37, + "placementX" : 406.3, + "placementY" : 751.37, + "placementWidth" : 50.635, + "placementHeight" : 11.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.635, + "contentHeight" : 11.52, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.58, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Masthead[0]/Contact[3]/Contact_3_location[3]", + "entityName" : "Contact_3_location", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Masthead[0]/Contact[3]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 406.3, + "computedY" : 730.27, + "placementX" : 406.3, + "placementY" : 730.27, + "placementWidth" : 148.018, + "placementHeight" : 11.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 148.018, + "contentHeight" : 11.52, + "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" : "SlateOrangeCv[0]/Body[1]", + "entityName" : "Body", + "entityKind" : "RowNode", + "parentPath" : "SlateOrangeCv[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 2.07, + "placementX" : 0.0, + "placementY" : 2.07, + "placementWidth" : 595.276, + "placementHeight" : 703.22, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 703.22, + "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" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]", + "entityName" : "Sidebar", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 7.94, + "placementX" : 0.0, + "placementY" : 7.94, + "placementWidth" : 204.177, + "placementHeight" : 697.35, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 204.177, + "contentHeight" : 697.35, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 18.5, + "right" : 22.85, + "bottom" : 22.0, + "left" : 22.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Competencies[0]", + "entityName" : "Competencies", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 22.0, + "computedY" : 437.715, + "placementX" : 22.0, + "placementY" : 437.715, + "placementWidth" : 159.327, + "placementHeight" : 249.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.327, + "contentHeight" : 249.075, + "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" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Competencies[0]/CompetenciesHeading[0]", + "entityName" : "CompetenciesHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Competencies[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 672.465, + "placementX" : 22.0, + "placementY" : 672.465, + "placementWidth" : 96.538, + "placementHeight" : 14.325, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.538, + "contentHeight" : 14.325, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Competencies[0]/CompetenciesHeadingRule[1]", + "entityName" : "CompetenciesHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Competencies[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 667.965, + "placementX" : 22.0, + "placementY" : 667.965, + "placementWidth" : 159.327, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.327, + "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" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Competencies[0]/CompetencyTable[2]", + "entityName" : "CompetencyTable", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Competencies[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 437.715, + "placementX" : 22.0, + "placementY" : 437.715, + "placementWidth" : 159.317, + "placementHeight" : 220.75, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.317, + "contentHeight" : 220.75, + "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" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Achievements[1]", + "entityName" : "Achievements", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 22.0, + "computedY" : 242.11, + "placementX" : 22.0, + "placementY" : 242.11, + "placementWidth" : 159.327, + "placementHeight" : 172.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.327, + "contentHeight" : 172.005, + "margin" : { + "top" : 23.6, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Achievements[1]/AchievementsHeading[0]", + "entityName" : "AchievementsHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Achievements[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 399.79, + "placementX" : 22.0, + "placementY" : 399.79, + "placementWidth" : 116.675, + "placementHeight" : 14.325, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.675, + "contentHeight" : 14.325, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Achievements[1]/AchievementsHeadingRule[1]", + "entityName" : "AchievementsHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Achievements[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 395.29, + "placementX" : 22.0, + "placementY" : 395.29, + "placementWidth" : 159.327, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.327, + "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" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Achievements[1]/AchievementTable[2]", + "entityName" : "AchievementTable", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Achievements[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 242.11, + "placementX" : 22.0, + "placementY" : 242.11, + "placementWidth" : 159.317, + "placementHeight" : 143.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.317, + "contentHeight" : 143.68, + "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" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Languages[2]", + "entityName" : "Languages", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 22.0, + "computedY" : 153.125, + "placementX" : 22.0, + "placementY" : 153.125, + "placementWidth" : 159.327, + "placementHeight" : 71.685, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.327, + "contentHeight" : 71.685, + "margin" : { + "top" : 17.3, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Languages[2]/LanguagesHeading[0]", + "entityName" : "LanguagesHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Languages[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 210.485, + "placementX" : 22.0, + "placementY" : 210.485, + "placementWidth" : 55.663, + "placementHeight" : 14.325, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 55.663, + "contentHeight" : 14.325, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Languages[2]/LanguagesHeadingRule[1]", + "entityName" : "LanguagesHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Languages[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 205.985, + "placementX" : 22.0, + "placementY" : 205.985, + "placementWidth" : 159.327, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.327, + "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" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Languages[2]/LanguageTable[2]", + "entityName" : "LanguageTable", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Languages[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 153.125, + "placementX" : 22.0, + "placementY" : 153.125, + "placementWidth" : 159.317, + "placementHeight" : 43.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.317, + "contentHeight" : 43.36, + "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" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Additional[3]", + "entityName" : "Additional", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 22.0, + "computedY" : 29.94, + "placementX" : 22.0, + "placementY" : 29.94, + "placementWidth" : 159.327, + "placementHeight" : 99.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.327, + "contentHeight" : 99.285, + "margin" : { + "top" : 23.9, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Additional[3]/AdditionalHeading[0]", + "entityName" : "AdditionalHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Additional[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 114.9, + "placementX" : 22.0, + "placementY" : 114.9, + "placementWidth" : 126.337, + "placementHeight" : 14.325, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 126.337, + "contentHeight" : 14.325, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Additional[3]/AdditionalHeadingRule[1]", + "entityName" : "AdditionalHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Additional[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 110.4, + "placementX" : 22.0, + "placementY" : 110.4, + "placementWidth" : 159.327, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.327, + "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" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Additional[3]/AdditionalTable[2]", + "entityName" : "AdditionalTable", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/Sidebar[0]/Additional[3]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 22.0, + "computedY" : 29.94, + "placementX" : 22.0, + "placementY" : 29.94, + "placementWidth" : 159.317, + "placementHeight" : 70.96, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.317, + "contentHeight" : 70.96, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]", + "entityName" : "MainColumn", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 204.177, + "computedY" : 2.07, + "placementX" : 204.177, + "placementY" : 2.07, + "placementWidth" : 391.099, + "placementHeight" : 703.22, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 391.099, + "contentHeight" : 703.22, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 18.5, + "right" : 22.0, + "bottom" : 22.0, + "left" : 22.85 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Profile[0]", + "entityName" : "Profile", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 227.027, + "computedY" : 588.365, + "placementX" : 227.027, + "placementY" : 588.365, + "placementWidth" : 346.249, + "placementHeight" : 98.425, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.249, + "contentHeight" : 98.425, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Profile[0]/ProfileHeading[0]", + "entityName" : "ProfileHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Profile[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 227.027, + "computedY" : 672.465, + "placementX" : 227.027, + "placementY" : 672.465, + "placementWidth" : 109.138, + "placementHeight" : 14.325, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.138, + "contentHeight" : 14.325, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Profile[0]/ProfileHeadingRule[1]", + "entityName" : "ProfileHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Profile[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 227.027, + "computedY" : 667.965, + "placementX" : 227.027, + "placementY" : 667.965, + "placementWidth" : 346.249, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.249, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Profile[0]/ProfileBody[2]", + "entityName" : "ProfileBody", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Profile[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 227.027, + "computedY" : 588.365, + "placementX" : 227.027, + "placementY" : 588.365, + "placementWidth" : 333.296, + "placementHeight" : 66.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.296, + "contentHeight" : 66.6, + "margin" : { + "top" : 13.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]", + "entityName" : "Experience", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 227.027, + "computedY" : 114.63, + "placementX" : 227.027, + "placementY" : 114.63, + "placementWidth" : 346.249, + "placementHeight" : 450.735, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.249, + "contentHeight" : 450.735, + "margin" : { + "top" : 23.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceHeading[0]", + "entityName" : "ExperienceHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 227.027, + "computedY" : 551.04, + "placementX" : 227.027, + "placementY" : 551.04, + "placementWidth" : 126.563, + "placementHeight" : 14.325, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 126.563, + "contentHeight" : 14.325, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceHeadingRule[1]", + "entityName" : "ExperienceHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 227.027, + "computedY" : 546.54, + "placementX" : 227.027, + "placementY" : 546.54, + "placementWidth" : 346.249, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.249, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]", + "entityName" : "ExperienceEntries", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 227.027, + "computedY" : 114.63, + "placementX" : 227.027, + "placementY" : 114.63, + "placementWidth" : 346.239, + "placementHeight" : 418.91, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.239, + "contentHeight" : 418.91, + "margin" : { + "top" : 13.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]", + "entityName" : "ExperienceEntry_0", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 227.027, + "computedY" : 427.46, + "placementX" : 227.027, + "placementY" : 427.46, + "placementWidth" : 346.239, + "placementHeight" : 106.08, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.239, + "contentHeight" : 106.08, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 18.4, + "left" : 13.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/RoleLine_0[0]", + "entityName" : "RoleLine_0", + "entityKind" : "LayerStackNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 521.12, + "placementX" : 240.027, + "placementY" : 521.12, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/RoleLine_0[0]/RoleTable_0[0]", + "entityName" : "RoleTable_0", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/RoleLine_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 240.027, + "computedY" : 521.12, + "placementX" : 240.027, + "placementY" : 521.12, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/RoleLine_0[0]/Marker_0[1]", + "entityName" : "Marker_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/RoleLine_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 224.227, + "computedY" : 526.82, + "placementX" : 224.227, + "placementY" : 526.82, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/Employer_0[1]", + "entityName" : "Employer_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 508.2, + "placementX" : 240.027, + "placementY" : 508.2, + "placementWidth" : 116.025, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.025, + "contentHeight" : 10.92, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 6.6, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/Highlights_0[2]", + "entityName" : "Highlights_0", + "entityKind" : "ListNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 445.86, + "placementX" : 240.027, + "placementY" : 445.86, + "placementWidth" : 319.311, + "placementHeight" : 55.74, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 319.311, + "contentHeight" : 55.74, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]", + "entityName" : "ExperienceEntry_1", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 227.027, + "computedY" : 321.38, + "placementX" : 227.027, + "placementY" : 321.38, + "placementWidth" : 346.239, + "placementHeight" : 106.08, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.239, + "contentHeight" : 106.08, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 18.4, + "left" : 13.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/RoleLine_1[0]", + "entityName" : "RoleLine_1", + "entityKind" : "LayerStackNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 415.04, + "placementX" : 240.027, + "placementY" : 415.04, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/RoleLine_1[0]/RoleTable_1[0]", + "entityName" : "RoleTable_1", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/RoleLine_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 240.027, + "computedY" : 415.04, + "placementX" : 240.027, + "placementY" : 415.04, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/RoleLine_1[0]/Marker_1[1]", + "entityName" : "Marker_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/RoleLine_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 224.227, + "computedY" : 420.74, + "placementX" : 224.227, + "placementY" : 420.74, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/Employer_1[1]", + "entityName" : "Employer_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 402.12, + "placementX" : 240.027, + "placementY" : 402.12, + "placementWidth" : 106.379, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.379, + "contentHeight" : 10.92, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 6.6, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/Highlights_1[2]", + "entityName" : "Highlights_1", + "entityKind" : "ListNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 339.78, + "placementX" : 240.027, + "placementY" : 339.78, + "placementWidth" : 320.307, + "placementHeight" : 55.74, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 320.307, + "contentHeight" : 55.74, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]", + "entityName" : "ExperienceEntry_2", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 227.027, + "computedY" : 202.31, + "placementX" : 227.027, + "placementY" : 202.31, + "placementWidth" : 346.239, + "placementHeight" : 119.07, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.239, + "contentHeight" : 119.07, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 18.4, + "left" : 13.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/RoleLine_2[0]", + "entityName" : "RoleLine_2", + "entityKind" : "LayerStackNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 308.96, + "placementX" : 240.027, + "placementY" : 308.96, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/RoleLine_2[0]/RoleTable_2[0]", + "entityName" : "RoleTable_2", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/RoleLine_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 240.027, + "computedY" : 308.96, + "placementX" : 240.027, + "placementY" : 308.96, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/RoleLine_2[0]/Marker_2[1]", + "entityName" : "Marker_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/RoleLine_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 224.227, + "computedY" : 314.66, + "placementX" : 224.227, + "placementY" : 314.66, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/Employer_2[1]", + "entityName" : "Employer_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 296.04, + "placementX" : 240.027, + "placementY" : 296.04, + "placementWidth" : 100.528, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.528, + "contentHeight" : 10.92, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 6.6, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/Highlights_2[2]", + "entityName" : "Highlights_2", + "entityKind" : "ListNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 220.71, + "placementX" : 240.027, + "placementY" : 220.71, + "placementWidth" : 307.972, + "placementHeight" : 68.73, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 307.972, + "contentHeight" : 68.73, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]", + "entityName" : "ExperienceEntry_3", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 227.027, + "computedY" : 114.63, + "placementX" : 227.027, + "placementY" : 114.63, + "placementWidth" : 346.239, + "placementHeight" : 87.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.239, + "contentHeight" : 87.68, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/RoleLine_3[0]", + "entityName" : "RoleLine_3", + "entityKind" : "LayerStackNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 189.89, + "placementX" : 240.027, + "placementY" : 189.89, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/RoleLine_3[0]/RoleTable_3[0]", + "entityName" : "RoleTable_3", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/RoleLine_3[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 240.027, + "computedY" : 189.89, + "placementX" : 240.027, + "placementY" : 189.89, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/RoleLine_3[0]/Marker_3[1]", + "entityName" : "Marker_3", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/RoleLine_3[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 224.227, + "computedY" : 195.59, + "placementX" : 224.227, + "placementY" : 195.59, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/Employer_3[1]", + "entityName" : "Employer_3", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 176.97, + "placementX" : 240.027, + "placementY" : 176.97, + "placementWidth" : 151.251, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 151.251, + "contentHeight" : 10.92, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 6.6, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/Highlights_3[2]", + "entityName" : "Highlights_3", + "entityKind" : "ListNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 240.027, + "computedY" : 114.63, + "placementX" : 240.027, + "placementY" : 114.63, + "placementWidth" : 316.795, + "placementHeight" : 55.74, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 316.795, + "contentHeight" : 55.74, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Credentials[2]", + "entityName" : "Credentials", + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 227.027, + "computedY" : 24.07, + "placementX" : 227.027, + "placementY" : 24.07, + "placementWidth" : 346.249, + "placementHeight" : 78.56, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.249, + "contentHeight" : 78.56, + "margin" : { + "top" : 12.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Credentials[2]/CredentialsRule[0]", + "entityName" : "CredentialsRule", + "entityKind" : "LineNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Credentials[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 227.027, + "computedY" : 101.63, + "placementX" : 227.027, + "placementY" : 101.63, + "placementWidth" : 346.249, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.249, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Credentials[2]/CredentialTable[1]", + "entityName" : "CredentialTable", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Credentials[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 227.027, + "computedY" : 24.07, + "placementX" : 227.027, + "placementY" : 24.07, + "placementWidth" : 346.239, + "placementHeight" : 65.46, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.239, + "contentHeight" : 65.46, + "margin" : { + "top" : 12.1, + "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/cv-v2-layered/slate_orange-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/slate_orange-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..1d0c506654ab5d1910b026dbfc13d6df59c75a16 GIT binary patch literal 155530 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 @PgSQ~{h4zIu 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 Do7!>n literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrange.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrange.java new file mode 100644 index 000000000..0eba71d02 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrange.java @@ -0,0 +1,245 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvSection; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.MAIN_CELL_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.PAGE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.SIDEBAR_CELL_WEIGHT; + +/** + * Slate Orange — a one-page CV built as a full-bleed slate band over a + * two-column body: an orange monogram tile beside the name, the role line and + * the specialism strip, with the contact lines across an orange hairline; + * then a narrow column of marked competencies, trophy-marked achievements, + * rated languages and closing facts, beside a wide column carrying the + * profile, the roles held on a rail, and a credentials footer. + * + *

    Why the fills are page backgrounds

    + * + *

    The slate band, the orange tile, the hairline between the two body + * columns and the fainter one between the credential columns are page + * backgrounds rather than section fills or line nodes. A fill on a section is + * bounded by its content and would stop short of the paper edge; a page + * background takes its geometry from the canvas and reaches all four edges + * however much content happens to sit on it.

    + * + *

    Why every horizontal pair inside a column is a table

    + * + *

    A row cannot nest inside a row cell, and both body columns are cells of + * the body row — so every pair inside one that a row would otherwise carry is + * a table with fixed column widths: mark and label, language and rating, role + * and dates, the two credential columns. Where a column needs several stacked + * lines inside one cell, that cell holds a single-column table of its own, + * because a cell holds one node.

    + * + *

    The experience rail is the left border of each entry rather than a + * drawn line, so it stretches to whatever height the entry turns out to have + * instead of being a length computed against today's text.

    + * + *

    One page, and what happens past it

    + * + *

    The experience block is held together, and the body's two columns are a + * single row — a row is atomic, so a CV taller than the sheet raises + * {@code AtomicNodeTooLargeException}, naming the node and the height it + * needed. The preset draws no cap of its own, because a CV that quietly loses + * a role is worse than one that refuses to compose. {@link TimelineMinimal} + * is the preset in this package that splits its own columns across pages.

    + * + *

    How a document reaches its berth

    + * + *

    The bands are fixed, so the preset assigns each section a berth by title + * rather than reading {@link + * com.demcha.compose.document.templates.cv.data.Slot}. It has seven:

    + * + *
      + *
    • the specialisms, a {@link ParagraphSection} of one specialism per + * line, drawn as the strip under the role. Only its body is drawn: the + * title is how the document names the berth;
    • + *
    • competencies, achievements and the closing facts, + * {@link EntriesSection}s, and languages, a {@link SkillsSection} — the + * narrow column;
    • + *
    • the profile, a {@link ParagraphSection}, and experience, an + * {@link EntriesSection} whose bodies are one highlight per line — the + * wide column;
    • + *
    • education and certifications, {@link EntriesSection}s — the + * credentials footer.
    • + *
    + * + *

    A section whose title matches no berth is not drawn, and a berth with no + * section takes its heading and rule with it.

    + * + *

    The marks, the ratings and the links

    + * + *

    A competency, an achievement and a closing fact each take the mark its + * entry names in {@code CvEntry.icon()}, from this preset's own vocabulary, + * and an unknown token is reported as a data error naming the set. An entry + * with no token is drawn without a mark — except an achievement, which falls + * back to the trophy the design gives them all.

    + * + *

    A language draws both channels of its skill: the discs from + * {@code CvSkill.level()} and the words beside them from + * {@code CvSkill.note()}. A skill with no level draws no discs, and one with + * no note leaves that column empty rather than inventing a wording.

    + * + *

    The phone, the email and each link are reachable from the PDF, with the + * {@code tel:} and {@code mailto:} targets built from the values — so a + * number written without a country code gets a national dial target, which is + * what the document said. A link is + * drawn as its own label with the address behind it, so the contact column's + * width does not depend on how long a profile happens to be called. A role + * and a degree become links when their entry carries + * {@code CvEntry.link()}.

    + * + *

    Fonts

    + * + *

    The sheet is set in Fira Sans Condensed, with Asap Condensed for the + * name and the headings. The templates artifact carries neither — register + * them on the session, or the engine substitutes and the measured geometry + * here no longer matches the type sitting in it. Both faces are condensed on + * purpose: the design's measure is narrow enough that a normal-width face + * turns single-line bullets into two.

    + * + *

    Usage:

    + *
    {@code
    + * DocumentTemplate template = SlateOrange.create();
    + * template.compose(session, cv);
    + * }
    + * + * @since 2.2.3 + */ +public final class SlateOrange { + + /** Stable identifier of this preset. */ + public static final String ID = "slate-orange"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Slate Orange"; + + private static final List SPECIALISM_KEYS = + List.of("specialisms", "specialities", "specialties", "focus"); + private static final List COMPETENCY_KEYS = + List.of("competencies", "competency", "skills", "expertise"); + private static final List ACHIEVEMENT_KEYS = + List.of("achievements", "achievement", "awards", "highlights"); + private static final List LANGUAGE_KEYS = + List.of("languages", "language"); + private static final List FACT_KEYS = + List.of("additional", "details", "other"); + private static final List PROFILE_KEYS = + List.of("profile", "summary", "about"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "employment", "work history", "career"); + private static final List EDUCATION_KEYS = + List.of("education", "qualifications"); + private static final List CERTIFICATION_KEYS = + List.of("certifications", "certification", "training", "licences", "licenses"); + + private SlateOrange() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link CvDocument} + */ + 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, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + List sections = doc.sections(); + + // The specialisms are claimed before the profile: their own keys + // are narrow, but the profile's are broad enough to take a strip + // titled loosely. + ParagraphSection specialisms = + berth(sections, ParagraphSection.class, SPECIALISM_KEYS); + ParagraphSection profile = + berthExcept(sections, ParagraphSection.class, PROFILE_KEYS, specialisms); + EntriesSection competencies = + berth(sections, EntriesSection.class, COMPETENCY_KEYS); + EntriesSection achievements = + berthExcept(sections, EntriesSection.class, ACHIEVEMENT_KEYS, competencies); + SkillsSection languages = berth(sections, SkillsSection.class, LANGUAGE_KEYS); + EntriesSection facts = berth(sections, EntriesSection.class, FACT_KEYS); + EntriesSection experience = berth(sections, EntriesSection.class, EXPERIENCE_KEYS); + EntriesSection education = berth(sections, EntriesSection.class, EDUCATION_KEYS); + EntriesSection certifications = + berth(sections, EntriesSection.class, CERTIFICATION_KEYS); + + // The sheet is a fixed composition drawn to the paper edge, so the + // preset sets the page and takes the margin off: every column pads + // itself, and a session margin would move the fills off the fills. + document.pageSize(PAGE).margin(DocumentInsets.zero()); + SlateOrangeMasthead.renderChrome(document); + + document.pageFlow(page -> { + page.name("SlateOrangeCv"); + page.spacing(0); + SlateOrangeMasthead.render(page, doc.identity(), specialisms); + page.addRow("Body", row -> { + row.spacing(0); + row.weights(SIDEBAR_CELL_WEIGHT, MAIN_CELL_WEIGHT); + row.addSection("Sidebar", side -> SlateOrangeAside.compose(side, + competencies, achievements, languages, facts)); + row.addSection("MainColumn", main -> SlateOrangeMain.compose(main, + profile, experience, education, certifications)); + }); + }); + } + + /** + * The first section of the wanted shape whose title names this berth, + * or {@code null} when the document fills no such berth. + */ + private static T berth(List sections, + Class type, + List keys) { + return berthExcept(sections, type, keys, null); + } + + /** The same, skipping a section another berth has already claimed. */ + private static T berthExcept(List sections, + Class type, + List keys, + CvSection taken) { + for (CvSection section : sections) { + if (!type.isInstance(section) || section == taken) { + continue; + } + for (String key : keys) { + if (SectionLookup.titleContains(section.title(), key)) { + return type.cast(section); + } + } + } + return null; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeAside.java new file mode 100644 index 000000000..22606cb8e --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeAside.java @@ -0,0 +1,267 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.style.DocumentInsets; +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.DocumentTableTextAnchor; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ACHIEVEMENT_BODY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ACHIEVEMENT_BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ACHIEVEMENT_GAP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ACHIEVEMENT_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ACHIEVEMENTS_TOP_GAP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ADDITIONAL_ICON_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ADDITIONAL_PITCH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ADDITIONAL_TOP_GAP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.BODY_TOP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.COMPETENCY_PITCH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HALF_GAP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ICON_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LANGUAGE_LEVEL_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LANGUAGE_NAME_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LANGUAGE_PITCH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LANGUAGE_RATING_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LANGUAGE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LANGUAGES_TOP_GAP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LEVEL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LINE_FACTOR; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.MUTED; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.PAGE_MARGIN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RATING_DOT_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RATING_EMPTY; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RULE_TO_SIDEBAR_BODY; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.SIDEBAR_TABLE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.cellStyle; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.gap; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.leading; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.style; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeWidgets.heading; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeWidgets.iconCell; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeWidgets.iconTable; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeWidgets.spacer; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeWidgets.text; + +/** + * The narrow column: the marked competencies, the achievements, the rated + * languages and the closing facts. + */ +final class SlateOrangeAside { + + /** The mark every achievement takes when its entry names none. */ + private static final String DEFAULT_ACHIEVEMENT_MARK = SlateOrangeIcons.ACHIEVEMENT; + + /** How many discs a rating is drawn out of. */ + private static final int RATING_SCALE = 5; + + private SlateOrangeAside() { + } + + static void compose(SectionBuilder side, EntriesSection competencies, + EntriesSection achievements, SkillsSection languages, + EntriesSection facts) { + side.spacing(0); + side.padding((float) BODY_TOP, (float) HALF_GAP, (float) PAGE_MARGIN, + (float) PAGE_MARGIN); + if (hasEntries(competencies)) { + renderCompetencies(side, competencies); + } + if (hasEntries(achievements)) { + renderAchievements(side, achievements); + } + if (hasSkills(languages)) { + renderLanguages(side, languages); + } + if (hasEntries(facts)) { + renderFacts(side, facts); + } + } + + /** The competencies — one mark-and-label row each, on a fixed mark column. */ + private static void renderCompetencies(SectionBuilder side, EntriesSection section) { + side.addSection("Competencies", block -> { + block.spacing(0); + heading(block, "Competencies", section.title()); + iconTable(block, "CompetencyTable", "Competency", section.entries(), + COMPETENCY_PITCH, ICON_COLUMN); + }); + } + + /** The closing facts — the same mark column at a wider row pitch. */ + private static void renderFacts(SectionBuilder side, EntriesSection section) { + side.addSection("Additional", block -> { + block.spacing(0); + block.margin((float) ADDITIONAL_TOP_GAP, 0f, 0f, 0f); + heading(block, "Additional", section.title()); + iconTable(block, "AdditionalTable", "Additional", section.entries(), + ADDITIONAL_PITCH, ADDITIONAL_ICON_COLUMN); + }); + } + + // -- achievements ------------------------------------------------------ + + /** + * The achievements — a trophy in its own column beside a bold title over + * its body. + * + *

    Two table rows per achievement rather than one: the title and the + * body are separate lines that must both start at the label column, and a + * cell holds one node. The body's row leaves the mark column empty, which + * is what makes the body hang on the title's left edge rather than wrap + * back under the trophy.

    + */ + private static void renderAchievements(SectionBuilder side, EntriesSection section) { + side.addSection("Achievements", block -> { + block.spacing(0); + block.margin((float) ACHIEVEMENTS_TOP_GAP, 0f, 0f, 0f); + heading(block, "Achievements", section.title()); + List entries = section.entries(); + block.addTable(table -> { + table.name("AchievementTable"); + table.margin(new DocumentInsets(RULE_TO_SIDEBAR_BODY, 0, 0, 0)); + table.width(SIDEBAR_TABLE_WIDTH); + table.columns( + DocumentTableColumn.fixed(ICON_COLUMN), + DocumentTableColumn.fixed(SIDEBAR_TABLE_WIDTH - ICON_COLUMN)); + table.defaultCellStyle(cellStyle(DocumentInsets.zero(), + DocumentTableTextAnchor.TOP_LEFT)); + for (int index = 0; index < entries.size(); index++) { + CvEntry entry = entries.get(index); + boolean last = index == entries.size() - 1; + String mark = entry.icon().isBlank() + ? DEFAULT_ACHIEVEMENT_MARK + : entry.icon(); + table.rowCells( + DocumentTableCell.node(iconCell("AchievementIcon_" + index, mark, + ACHIEVEMENT_TITLE_SIZE)), + DocumentTableCell.node(text("AchievementTitle_" + index, + entry.title(), + style(BODY_FONT, ACHIEVEMENT_TITLE_SIZE, INK, true)))); + table.rowCells( + DocumentTableCell.node(spacer("AchievementGutter_" + index)), + DocumentTableCell.node(new ParagraphBuilder() + .name("AchievementBody_" + index) + .text(entry.body()) + .lineSpacing(leading(ACHIEVEMENT_BODY_LEADING, + ACHIEVEMENT_BODY_SIZE)) + .textStyle(style(BODY_FONT, ACHIEVEMENT_BODY_SIZE, INK, false)) + .build())); + if (!last) { + // The gap belongs to the row, not to the paragraph in + // it: a margin on a node inside a table cell is the + // cell's business, and the cell ignores it. + table.rowStyle(2 * index + 1, cellStyle( + new DocumentInsets(0, 0, ACHIEVEMENT_GAP, 0), + DocumentTableTextAnchor.TOP_LEFT)); + } + } + }); + }); + } + + // -- languages --------------------------------------------------------- + + /** + * The languages — the name, the level as the document words it, and the + * rating as five discs, on one line. + * + *

    This is the block that wants both channels of a rated skill: the + * discs come from {@code CvSkill.level()} and the words beside them from + * {@code CvSkill.note()}. A skill with no level draws no discs, and one + * with no note leaves that column empty rather than inventing a + * wording.

    + */ + private static void renderLanguages(SectionBuilder side, SkillsSection languages) { + List entries = new ArrayList<>(); + for (SkillGroup group : languages.groups()) { + entries.addAll(group.entries()); + } + side.addSection("Languages", block -> { + block.spacing(0); + block.margin((float) LANGUAGES_TOP_GAP, 0f, 0f, 0f); + heading(block, "Languages", languages.title()); + block.addTable(table -> { + table.name("LanguageTable"); + table.margin(new DocumentInsets(RULE_TO_SIDEBAR_BODY, 0, 0, 0)); + table.width(SIDEBAR_TABLE_WIDTH); + table.columns( + DocumentTableColumn.fixed(LANGUAGE_NAME_COLUMN), + DocumentTableColumn.fixed(LANGUAGE_LEVEL_COLUMN), + DocumentTableColumn.fixed(LANGUAGE_RATING_COLUMN)); + table.defaultCellStyle(cellStyle( + new DocumentInsets(0, 0, + gap(LANGUAGE_PITCH, LANGUAGE_SIZE * LINE_FACTOR), 0), + DocumentTableTextAnchor.CENTER_LEFT)); + for (int index = 0; index < entries.size(); index++) { + CvSkill skill = entries.get(index); + table.rowCells( + DocumentTableCell.node(text("LanguageName_" + index, skill.name(), + style(BODY_FONT, LANGUAGE_SIZE, INK, false))), + DocumentTableCell.node(skill.note().isBlank() + ? spacer("LanguageLevel_" + index) + : text("LanguageLevel_" + index, skill.note(), + style(BODY_FONT, LEVEL_SIZE, MUTED, false))), + DocumentTableCell.node(rating("LanguageRating_" + index, skill))); + } + table.rowStyle(entries.size() - 1, + cellStyle(DocumentInsets.zero(), DocumentTableTextAnchor.CENTER_LEFT)); + }); + }); + } + + /** + * One language's rating, as inline shape runs rather than a bullet glyph, + * so it cannot fall victim to whatever a fallback font does or does not + * ship. + * + *

    The paragraph is styled although it carries no words: a paragraph + * takes its line box from its type whether or not a glyph uses it, and the + * default box would set the whole row's pitch.

    + */ + private static DocumentNode rating(String name, CvSkill skill) { + ParagraphBuilder paragraph = new ParagraphBuilder(); + paragraph.name(name); + paragraph.lineSpacing(0); + DocumentTextStyle gapStyle = style(BODY_FONT, LANGUAGE_SIZE, INK, false); + paragraph.textStyle(gapStyle); + if (skill.level().isEmpty()) { + return paragraph.build(); + } + int filled = (int) Math.round(skill.level().getAsDouble() * RATING_SCALE); + for (int disc = 0; disc < RATING_SCALE; disc++) { + paragraph.dot(RATING_DOT_DIAMETER, disc < filled ? ACCENT : RATING_EMPTY); + if (disc < RATING_SCALE - 1) { + // Two spaces, not one: the design sets the discs nearly twice + // their own diameter apart, and one space at this size is half + // of that. + paragraph.inlineText(" ", gapStyle); + } + } + return paragraph.build(); + } + + // -- presence ---------------------------------------------------------- + + private static boolean hasEntries(EntriesSection section) { + return section != null && !section.entries().isEmpty(); + } + + private static boolean hasSkills(SkillsSection section) { + return section != null + && section.groups().stream().anyMatch(group -> !group.entries().isEmpty()); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeIcons.java new file mode 100644 index 000000000..373a39701 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeIcons.java @@ -0,0 +1,114 @@ +package com.demcha.compose.document.templates.cv.presets; + +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.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Slate Orange CV marks: the four contact glyphs, + * the ten competency marks, the trophy the achievements share, and the three + * marks the closing block draws. + * + *

    They ship inside the templates artifact under + * {@code templates/cv/slate-orange/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 sheet that repeats a mark reads each file once per JVM.

    + * + *

    {@link #ENTRY_TOKENS} is the vocabulary a document names through + * {@code CvEntry.icon()}. It is scoped to this preset — another preset + * packages its own set — and an entry with no token is drawn without a mark. + * Each mark carries the width it is drawn at: an icon's box is not its glyph, + * and the sizes are per-glyph rather than one shared number.

    + */ +final class SlateOrangeIcons { + + static final String PHONE = "phone"; + static final String EMAIL = "email"; + static final String LINKEDIN = "linkedin"; + static final String LOCATION = "location"; + static final String ACHIEVEMENT = "achievement"; + + private static final String ICON_ROOT = "/templates/cv/slate-orange/icons/"; + + /** The width each mark is drawn at, as the asset resolver chose it. */ + private static final Map SIZES = Map.ofEntries( + Map.entry(PHONE, 10.2), + Map.entry(EMAIL, 10.2), + Map.entry(LINKEDIN, 10.2), + Map.entry(LOCATION, 10.2), + Map.entry("customer-service", 12.4), + Map.entry("operations", 12.4), + Map.entry("calendar", 12.4), + Map.entry("reporting", 12.4), + Map.entry("communication", 12.4), + Map.entry("problem-solving", 12.4), + Map.entry("sales", 12.4), + Map.entry("office-suite", 12.4), + Map.entry("crm", 12.4), + Map.entry("time-management", 12.4), + Map.entry(ACHIEVEMENT, 13.0), + Map.entry("availability", 11.8), + Map.entry("relocation", 11.8), + Map.entry("remote-work", 11.8)); + + /** The marks a document may name on a competency or a closing fact. */ + static final Set ENTRY_TOKENS = Set.of( + "customer-service", "operations", "calendar", "reporting", "communication", + "problem-solving", "sales", "office-suite", "crm", "time-management", + ACHIEVEMENT, "availability", "relocation", "remote-work"); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private SlateOrangeIcons() { + } + + /** + * The width one mark is drawn at. + * + * @param token one of the packaged tokens + * @return the drawn width in points + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error + */ + static double size(String token) { + Double size = SIZES.get(token); + if (size == null) { + throw new IllegalArgumentException( + "Unknown slate orange CV icon token '" + token + + "'. This preset packages " + ENTRY_TOKENS.stream().sorted().toList() + + " for an entry mark."); + } + return size; + } + + /** + * Reads one mark. + * + * @param token one of the packaged tokens + * @return the parsed icon + */ + static SvgIcon icon(String token) { + size(token); + return CACHE.computeIfAbsent(token, SlateOrangeIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = SlateOrangeIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing slate orange CV icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read slate orange CV icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java new file mode 100644 index 000000000..e0754e7e6 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java @@ -0,0 +1,398 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ListBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.ListMarker; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +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.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.BODY_TOP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_GUTTER; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_HEADING_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_LEFT_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_LINE_PITCH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_RIGHT_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_RULE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_RULE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_TABLE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.DEGREE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.EDUCATION_LINE_PITCH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.EDUCATION_LINE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.EMPLOYER_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.EMPLOYER_TO_HIGHLIGHTS; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ENTRY_INDENT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ENTRY_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.EXPERIENCE_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HALF_GAP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HIGHLIGHT_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HIGHLIGHT_PITCH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HIGHLIGHT_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LINE_FACTOR; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.MARKER_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.NO_BORDER; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.PAGE_MARGIN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.PERIOD_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.PERIOD_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.PROFILE_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.PROFILE_TO_EXPERIENCE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ROLE_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ROLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ROLE_TO_EMPLOYER; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RULE_TO_CREDENTIALS; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RULE_TO_MAIN_BODY; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.TABLE_SLACK; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.cellStyle; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.gap; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.italic; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.leading; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.style; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeWidgets.heading; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeWidgets.spacer; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeWidgets.text; + +/** + * The wide column: the profile, the roles on a rail, and the credentials + * footer. + */ +final class SlateOrangeMain { + + private SlateOrangeMain() { + } + + static void compose(SectionBuilder main, ParagraphSection profile, + EntriesSection experience, EntriesSection education, + EntriesSection certifications) { + main.spacing(0); + main.padding((float) BODY_TOP, (float) PAGE_MARGIN, (float) PAGE_MARGIN, + (float) HALF_GAP); + if (profile != null && !profile.body().isBlank()) { + renderProfile(main, profile); + } + if (hasEntries(experience)) { + renderExperience(main, experience); + } + if (hasEntries(education) || hasEntries(certifications)) { + renderCredentials(main, education, certifications); + } + } + + /** The profile — one paragraph at the design's measured leading. */ + private static void renderProfile(SectionBuilder main, ParagraphSection profile) { + main.addSection("Profile", block -> { + block.spacing(0); + heading(block, "Profile", profile.title()); + block.addParagraph(p -> p + .name("ProfileBody") + .text(profile.body().replace(String.valueOf((char) 10), " ")) + .lineSpacing(leading(PROFILE_LEADING, BODY_SIZE)) + .textStyle(style(BODY_FONT, BODY_SIZE, INK, false)) + .margin((float) RULE_TO_MAIN_BODY, 0f, 0f, 0f)); + }); + } + + // -- experience -------------------------------------------------------- + + /** + * The roles held, on one rail. + * + *

    The rail is the left border of each entry's own section, so it + * stretches to whatever height that entry turns out to have and + * consecutive entries butt together into one unbroken line. The last entry + * does not carry it: the design's rail stops at the final marker rather + * than running past the final bullet, and the entry list is what decides + * which entry that is.

    + * + *

    The marker is a disc positioned on the rail by a layer stack, nudged + * left by the entry's own indent plus half the disc so its centre lands on + * the border rather than beside it. Both terms are geometry the sheet + * already holds, not offsets tuned by eye.

    + */ + private static void renderExperience(SectionBuilder main, EntriesSection experience) { + main.addSection("Experience", block -> { + block.spacing(0); + block.margin((float) PROFILE_TO_EXPERIENCE, 0f, 0f, 0f); + block.keepTogether(); + heading(block, "Experience", experience.title()); + block.addSection("ExperienceEntries", host -> { + host.spacing(0); + host.margin((float) RULE_TO_MAIN_BODY, 0f, 0f, 0f); + List entries = experience.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + boolean last = i == entries.size() - 1; + int index = i; + host.addSection("ExperienceEntry_" + index, body -> { + body.spacing(0); + if (!last) { + body.accentLeft(RULE, RULE_THICKNESS); + } + body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, + (float) ENTRY_INDENT); + renderEntry(body, entry, index); + }); + } + }); + }); + } + + /** One entry: the role and its dates, the employer line, then the bullets. */ + private static void renderEntry(SectionBuilder body, CvEntry entry, int index) { + body.addLayerStack(stack -> stack + .name("RoleLine_" + index) + .layer(roleLine(entry, index), LayerAlign.TOP_LEFT, 0) + .position(marker(index), + -(ENTRY_INDENT + MARKER_DIAMETER / 2.0), 0.0, + LayerAlign.TOP_LEFT, 1)); + body.addParagraph(p -> p + .name("Employer_" + index) + .text(entry.subtitle()) + .lineSpacing(0) + .textStyle(italic(BODY_FONT, EMPLOYER_SIZE, INK)) + .margin((float) ROLE_TO_EMPLOYER, 0f, (float) EMPLOYER_TO_HIGHLIGHTS, 0f)); + List highlights = lines(entry.body()); + if (highlights.isEmpty()) { + return; + } + body.addList(list -> list + .name("Highlights_" + index) + .items(highlights) + .marker(ListMarker.bullet()) + .textStyle(style(BODY_FONT, HIGHLIGHT_SIZE, INK, false)) + .itemSpacing(gap(HIGHLIGHT_PITCH, HIGHLIGHT_SIZE * LINE_FACTOR)) + .lineSpacing(leading(HIGHLIGHT_LEADING, HIGHLIGHT_SIZE))); + } + + /** The role and its dates, the dates flush right on the same line. */ + private static DocumentNode roleLine(CvEntry entry, int index) { + ParagraphBuilder role = new ParagraphBuilder() + .name("Role_" + index) + .text(entry.title()) + .lineSpacing(0) + .textStyle(style(BODY_FONT, ROLE_SIZE, INK, true)); + if (!entry.link().isBlank()) { + role.link(new DocumentLinkOptions(entry.link())); + } + return new TableBuilder() + .name("RoleTable_" + index) + .width(ENTRY_WIDTH) + .columns( + DocumentTableColumn.fixed(ROLE_COLUMN), + DocumentTableColumn.fixed(PERIOD_COLUMN)) + .defaultCellStyle(cellStyle(DocumentInsets.zero(), + DocumentTableTextAnchor.BOTTOM_LEFT)) + .rowCells( + DocumentTableCell.node(role.build()), + DocumentTableCell.node(new ParagraphBuilder() + .name("Period_" + index) + .text(entry.date()) + .align(TextAlign.RIGHT) + .lineSpacing(0) + .textStyle(style(BODY_FONT, PERIOD_SIZE, INK, false)) + .build())) + .build(); + } + + /** The disc that caps the rail beside a role line. */ + private static DocumentNode marker(int index) { + ParagraphBuilder paragraph = new ParagraphBuilder(); + paragraph.name("Marker_" + index); + paragraph.lineSpacing(0); + paragraph.textStyle(style(BODY_FONT, MARKER_DIAMETER, ACCENT, false)); + paragraph.dot(MARKER_DIAMETER, ACCENT); + return paragraph.build(); + } + + // -- credentials ------------------------------------------------------- + + /** + * The credentials footer: a rule across the column, then education and + * certifications side by side. + * + *

    One table, three rows. The first is the two headings; the second is + * their orange rules, drawn as cells filled to half a point of height, + * because a cell's stroke is a box with no per-edge control and a line + * node in a cell is not drawn at all. The third holds each column's + * content: a single-column table on the left, because a cell holds one + * node and a degree is three stacked lines, and the certifications list on + * the right, which is one list node and needs no wrapper.

    + */ + private static void renderCredentials(SectionBuilder main, EntriesSection education, + EntriesSection certifications) { + main.addSection("Credentials", block -> { + block.spacing(0); + block.margin((float) EXPERIENCE_TO_RULE, 0f, 0f, 0f); + block.addLine(line -> line + .name("CredentialsRule") + .fill() + .thickness(RULE_THICKNESS) + .color(RULE)); + block.addTable(table -> { + table.name("CredentialTable"); + table.margin(new DocumentInsets(RULE_TO_CREDENTIALS, 0, 0, 0)); + table.width(CREDENTIAL_TABLE_WIDTH); + table.columns( + DocumentTableColumn.fixed(CREDENTIAL_LEFT_COLUMN), + DocumentTableColumn.fixed(CREDENTIAL_GUTTER), + DocumentTableColumn.fixed(CREDENTIAL_RIGHT_COLUMN)); + table.defaultCellStyle(cellStyle(DocumentInsets.zero(), + DocumentTableTextAnchor.TOP_LEFT)); + table.rowCells( + DocumentTableCell.node(text("EducationHeading", + education == null ? "" : education.title(), + style(DISPLAY_FONT, CREDENTIAL_HEADING_SIZE, INK, true))), + DocumentTableCell.node(spacer("CredentialGutterHeading")), + DocumentTableCell.node(text("CertificationsHeading", + certifications == null ? "" : certifications.title(), + style(DISPLAY_FONT, CREDENTIAL_HEADING_SIZE, INK, true)))); + table.rowCells( + credentialRule("EducationHeadingRule"), + DocumentTableCell.node(spacer("CredentialGutterRule")), + credentialRule("CertificationsHeadingRule")); + table.rowCells( + DocumentTableCell.node(educationLines(education)), + DocumentTableCell.node(spacer("CredentialGutterBody")), + DocumentTableCell.node(certificationList(certifications))); + table.rowStyle(0, cellStyle( + new DocumentInsets(0, 0, CREDENTIAL_HEADING_TO_RULE, 0), + DocumentTableTextAnchor.TOP_LEFT)); + table.rowStyle(2, cellStyle( + new DocumentInsets(CREDENTIAL_RULE_TO_BODY, 0, 0, 0), + DocumentTableTextAnchor.TOP_LEFT)); + }); + }); + } + + /** A heading rule, as a cell filled to a hairline of height. */ + private static DocumentTableCell credentialRule(String name) { + return DocumentTableCell + .node(new ParagraphBuilder() + .name(name) + .text(" ") + .lineSpacing(0) + .textStyle(style(BODY_FONT, CREDENTIAL_RULE_SIZE, ACCENT, false)) + .build()) + .withStyle(DocumentTableStyle.builder() + .padding(DocumentInsets.zero()) + .fillColor(ACCENT) + .stroke(NO_BORDER) + .build()); + } + + /** + * Each degree as three stacked lines: the award, the institution and + * whatever the entry says about when. + */ + private static DocumentNode educationLines(EntriesSection education) { + double width = CREDENTIAL_LEFT_COLUMN - TABLE_SLACK; + TableBuilder table = new TableBuilder() + .name("EducationLines") + .width(width) + .columns(DocumentTableColumn.fixed(width)) + .defaultCellStyle(cellStyle( + new DocumentInsets(0, 0, + gap(EDUCATION_LINE_PITCH, EDUCATION_LINE_SIZE * LINE_FACTOR), 0), + DocumentTableTextAnchor.TOP_LEFT)); + if (education == null) { + return table.rowCells(DocumentTableCell.node(spacer("EducationEmpty"))).build(); + } + List entries = education.entries(); + for (int index = 0; index < entries.size(); index++) { + CvEntry entry = entries.get(index); + ParagraphBuilder degree = new ParagraphBuilder() + .name("Degree_" + index) + .text(entry.title()) + .lineSpacing(0) + .textStyle(style(BODY_FONT, DEGREE_SIZE, INK, true)); + if (!entry.link().isBlank()) { + degree.link(new DocumentLinkOptions(entry.link())); + } + table.rowCells(DocumentTableCell.node(degree.build())); + table.rowCells(DocumentTableCell.node(new ParagraphBuilder() + .name("Institution_" + index) + .text(entry.subtitle()) + .lineSpacing(0) + .textStyle(italic(BODY_FONT, EDUCATION_LINE_SIZE, INK)) + .build())); + table.rowCells(DocumentTableCell.node(text("EducationDetail_" + index, + detail(entry), style(BODY_FONT, EDUCATION_LINE_SIZE, INK, false)))); + } + return table.build(); + } + + /** + * The line under an institution: what the entry says about where and when, + * joined the way the design joins them. + */ + private static String detail(CvEntry entry) { + StringBuilder detail = new StringBuilder(); + if (!entry.place().isBlank()) { + detail.append(entry.place()); + } + if (!entry.date().isBlank()) { + detail.append(detail.isEmpty() ? "" : " " + (char) 0x2022 + " ").append(entry.date()); + } + return detail.toString(); + } + + /** The certifications, as one bulleted list. */ + private static DocumentNode certificationList(EntriesSection certifications) { + List items = new ArrayList<>(); + if (certifications != null) { + for (CvEntry entry : certifications.entries()) { + items.add(entry.title()); + } + } + if (items.isEmpty()) { + return spacer("CertificationsEmpty"); + } + return new ListBuilder() + .name("CertificationItems") + .items(items) + .marker(ListMarker.bullet()) + .textStyle(style(BODY_FONT, CREDENTIAL_SIZE, INK, false)) + .itemSpacing(gap(CREDENTIAL_LINE_PITCH, CREDENTIAL_SIZE * LINE_FACTOR)) + .build(); + } + + // -- shared ------------------------------------------------------------ + + /** A body, one entry per line the document wrote. */ + private static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split(String.valueOf((char) 10))) { + if (!line.isBlank()) { + out.add(line.strip()); + } + } + return out; + } + + private static boolean hasEntries(EntriesSection section) { + return section != null && !section.entries().isEmpty(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMasthead.java new file mode 100644 index 000000000..84395f8f9 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMasthead.java @@ -0,0 +1,304 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageBackgroundFill; +import com.demcha.compose.document.dsl.LineBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.HorizontalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.BODY_TOP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CONTACT_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CONTACT_PITCH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CONTACT_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CONTACT_TOP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIALS_DIVIDER_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIALS_DIVIDER_X; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIALS_DIVIDER_Y; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HAIRLINE_BOTTOM; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HAIRLINE_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HAIRLINE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HAIRLINE_TOP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HALF_GAP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.IDENTITY_TOP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.IDENTITY_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.INITIALS_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LINE_FACTOR; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.MASTHEAD_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.MASTHEAD_INK; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.MASTHEAD_MUTED; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.MONOGRAM_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.MONOGRAM_RULE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.MONOGRAM_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.MONOGRAM_TOP; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.NAME_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.NAME_TO_ROLE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.PAGE_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.PAGE_MARGIN; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.PAGE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ROLE_LINE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ROLE_TO_TAGLINE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RULE_FAINT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.SIDEBAR_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.SLATE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.TAGLINE_SEPARATOR; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.TAGLINE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.TILE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.gap; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.style; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeWidgets.inlineIcon; + +/** + * The page chrome and the band above the body: the monogram tile, the + * identity strip, the orange hairline and the contact column. + */ +final class SlateOrangeMasthead { + + private SlateOrangeMasthead() { + } + + /** One line of the contact column: a mark, a value and where it points. */ + private record Channel(String token, String value, String href) { + } + + /** + * The four fills whose geometry is a fact about the page rather than about + * any content: the slate band, the orange tile over its left end, the + * hairline dividing the two body columns, and the fainter one dividing the + * two credential columns. + * + *

    They are page backgrounds rather than section fills or lines: a fill + * on a section is bounded by its content and would stop short of the paper + * edge, while a page background takes its geometry from the canvas and + * reaches all four. Order matters — the tile is listed after the band so + * it paints over it.

    + */ + static void renderChrome(DocumentSession document) { + document.pageBackgrounds(List.of( + PageBackgroundFill.topBandPoints(MASTHEAD_HEIGHT, PAGE_HEIGHT, SLATE), + new PageBackgroundFill(0.0, 0.0, + TILE_WIDTH / PAGE_WIDTH, MASTHEAD_HEIGHT / PAGE_HEIGHT, ACCENT), + new PageBackgroundFill( + (PAGE_MARGIN + SIDEBAR_WIDTH + HALF_GAP) / PAGE_WIDTH, + (MASTHEAD_HEIGHT + BODY_TOP) / PAGE_HEIGHT, + RULE_THICKNESS / PAGE_WIDTH, + (PAGE_HEIGHT - MASTHEAD_HEIGHT - BODY_TOP - PAGE_MARGIN) / PAGE_HEIGHT, + RULE), + new PageBackgroundFill( + CREDENTIALS_DIVIDER_X, CREDENTIALS_DIVIDER_Y, + RULE_THICKNESS / PAGE_WIDTH, CREDENTIALS_DIVIDER_HEIGHT, + RULE_FAINT))); + } + + /** + * The band's content, as four cells of one top-level row. + * + *

    The row's height is set by the hairline cell rather than by whichever + * text block happens to be tallest: that cell's padding and its line add + * up to the band's height exactly, so the body below starts where the + * slate fill ends however the type is later adjusted.

    + */ + static void render(PageFlowBuilder page, CvIdentity identity, ParagraphSection specialisms) { + page.addRow("Masthead", row -> { + row.spacing(0); + row.columns( + DocumentRowColumn.fixed(TILE_WIDTH), + DocumentRowColumn.fixed(IDENTITY_WIDTH), + DocumentRowColumn.fixed(HAIRLINE_THICKNESS), + // The remainder, not a fourth measured width: four fixed + // columns summing to the page leave the engine nothing to + // round with, and it refuses the row by a third of a point. + DocumentRowColumn.weight(1.0)); + row.addSection("Monogram", tile -> renderTile(tile, identity)); + row.addSection("Identity", block -> renderIdentity(block, identity, specialisms)); + row.addSection("MastheadHairline", SlateOrangeMasthead::renderHairline); + row.addSection("Contact", block -> renderContact(block, identity)); + }); + } + + // -- the tile ---------------------------------------------------------- + + /** + * The initials and the short rule under them, centred in the tile. + * + *

    Both are centred on the cell rather than positioned at a measured x, + * so they follow the same constant the tile's fill uses. The initials come + * from the name itself: a document states its name once, and a second + * place to keep true is a second place to be wrong.

    + */ + private static void renderTile(SectionBuilder tile, CvIdentity identity) { + tile.spacing(0); + tile.padding((float) MONOGRAM_TOP, 0f, 0f, 0f); + tile.addParagraph(p -> p + .name("Initials") + .text(initials(identity)) + .align(TextAlign.CENTER) + .lineSpacing(0) + .textStyle(style(DISPLAY_FONT, MONOGRAM_SIZE, MASTHEAD_INK, true)) + .margin(0f, 0f, (float) INITIALS_TO_RULE, 0f)); + tile.addAligned(HorizontalAlign.CENTER, new LineBuilder() + .name("MonogramRule") + .horizontal(MONOGRAM_RULE_WIDTH) + .thickness(MONOGRAM_RULE_THICKNESS) + .color(MASTHEAD_INK) + .build()); + } + + private static String initials(CvIdentity identity) { + StringBuilder out = new StringBuilder(2); + appendInitial(out, identity.name().first()); + appendInitial(out, identity.name().last()); + return out.toString(); + } + + private static void appendInitial(StringBuilder out, String part) { + if (!part.isBlank()) { + out.append(Character.toUpperCase(part.charAt(0))); + } + } + + // -- the identity strip ------------------------------------------------ + + /** Name, role line and specialism strip, stacked on one left edge. */ + private static void renderIdentity(SectionBuilder block, CvIdentity identity, + ParagraphSection specialisms) { + block.spacing(0); + block.padding((float) IDENTITY_TOP, 0f, 0f, (float) PAGE_MARGIN); + block.addParagraph(p -> p + .name("Name") + .text(identity.name().full().toUpperCase(Locale.ROOT)) + .lineSpacing(0) + .textStyle(style(DISPLAY_FONT, NAME_SIZE, MASTHEAD_INK, true)) + .margin(0f, 0f, (float) NAME_TO_ROLE, 0f)); + block.addParagraph(p -> p + .name("RoleLine") + .text(identity.jobTitle().toUpperCase(Locale.ROOT)) + .lineSpacing(0) + .textStyle(style(DISPLAY_FONT, ROLE_LINE_SIZE, ACCENT, true)) + .margin(0f, 0f, (float) ROLE_TO_TAGLINE, 0f)); + if (specialisms == null || specialisms.body().isBlank()) { + return; + } + block.addParagraph(p -> p + .name("Tagline") + .text(String.join(TAGLINE_SEPARATOR, lines(specialisms.body()))) + .lineSpacing(0) + .textStyle(style(DISPLAY_FONT, TAGLINE_SIZE, MASTHEAD_MUTED, false))); + } + + /** The specialisms, one per line the document wrote. */ + private static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split(String.valueOf((char) 10))) { + if (!line.isBlank()) { + out.add(line.strip().toUpperCase(Locale.ROOT)); + } + } + return out; + } + + // -- the hairline ------------------------------------------------------ + + /** + * The vertical accent between the two halves of the band. It is a cell of + * the row, so its horizontal position comes from the row's own column + * widths rather than from a measured x — and its padding is what gives the + * row its height. + */ + private static void renderHairline(SectionBuilder cell) { + cell.spacing(0); + cell.padding((float) HAIRLINE_TOP, 0f, (float) HAIRLINE_BOTTOM, 0f); + cell.addLine(line -> line + .name("MastheadHairlineRule") + .vertical(HAIRLINE_HEIGHT) + .thickness(HAIRLINE_THICKNESS) + .color(ACCENT)); + } + + // -- the contact column ------------------------------------------------ + + /** + * The contact lines. + * + *

    Each is one paragraph rather than a table: the mark is an inline run + * measured into the line box, so it shares a baseline with its value by + * construction, and nothing here has to line up with a column. Where the + * value points somewhere the run becomes an inline link, so the target + * reaches the PDF as a real annotation rather than as text that merely + * looks like one.

    + * + *

    A link shows its own label and carries the address behind it, so the + * column's width does not depend on how long a profile happens to be + * called.

    + */ + private static void renderContact(SectionBuilder block, CvIdentity identity) { + block.spacing(0); + block.padding((float) CONTACT_TOP, 0f, 0f, (float) CONTACT_PAD_LEFT); + DocumentTextStyle valueStyle = style(BODY_FONT, CONTACT_SIZE, MASTHEAD_INK, false); + List channels = channels(identity); + for (int i = 0; i < channels.size(); i++) { + Channel channel = channels.get(i); + boolean last = i == channels.size() - 1; + int index = i; + block.addParagraph(p -> { + p.name("Contact_" + index + "_" + channel.token()); + p.lineSpacing(0); + inlineIcon(p, channel.token()); + p.inlineText(" ", valueStyle); + if (channel.href() == null || channel.href().isBlank()) { + p.inlineText(channel.value(), valueStyle); + } else { + p.inlineText(channel.value(), valueStyle, + new DocumentLinkOptions(channel.href())); + } + p.margin(0f, 0f, + last ? 0f : (float) gap(CONTACT_PITCH, CONTACT_SIZE * LINE_FACTOR), 0f); + }); + } + } + + /** The column's order: how to call, how to write, the links, then where. */ + private static List channels(CvIdentity identity) { + Contact contact = identity.contact(); + List channels = new ArrayList<>(); + channels.add(new Channel(SlateOrangeIcons.PHONE, contact.phone(), + telUri(contact.phone()))); + channels.add(new Channel(SlateOrangeIcons.EMAIL, contact.email(), + "mailto:" + contact.email())); + for (Link link : identity.links()) { + channels.add(new Channel(SlateOrangeIcons.LINKEDIN, link.label(), link.url())); + } + channels.add(new Channel(SlateOrangeIcons.LOCATION, contact.address(), null)); + return channels; + } + + /** + * The dial target for a phone number: its digits, keeping a leading + * {@code +} so an international number stays international, and dropping a + * parenthesised trunk prefix the way a caller dialling from abroad does. + */ + private static String telUri(String phone) { + String dialled = phone.replaceAll("\\(0+\\)", ""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeStyles.java new file mode 100644 index 000000000..0ab50afd2 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeStyles.java @@ -0,0 +1,342 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.document.table.DocumentTableTextAnchor; +import com.demcha.compose.font.FontName; + +/** + * The measured geometry, palette and type scale of the Slate Orange CV. + * + *

    Everything horizontal derives from four numbers

    + * + *

    {@link #PAGE_WIDTH}, {@link #PAGE_MARGIN}, {@link #SIDEBAR_WEIGHT} and + * {@link #COLUMN_GAP}: the page-background bands, the body row's weights and + * every table's column widths read the same four, so a fill and the content + * sitting on it cannot drift apart. Only genuinely independent marks — a rule + * thickness, a marker diameter — are written as points.

    + * + *

    Vertical pitches are measured, then converted

    + * + *

    The engine's line box is {@link #LINE_FACTOR} times the type size and + * {@code lineSpacing} adds points on top of it, so a measured pitch minus the + * line it has to clear is the gap that produces it — {@link #gap} and + * {@link #leading} are that conversion. A CSS-style multiple would be + * silently wrong.

    + */ +final class SlateOrangeStyles { + + private SlateOrangeStyles() { + } + + // -- type -------------------------------------------------------------- + + /** The condensed display face: name, monogram and every section heading. */ + static final FontName DISPLAY_FONT = FontName.ASAP_CONDENSED; + + /** + * The body face: everything the display face does not set. + * + *

    Condensed, and chosen by measurement rather than by eye. Against the + * design on three separate strings — a summary line, an experience bullet + * and a competency label — this face averages within one per cent, where + * the face its letterforms most resemble runs a tenth to a quarter too + * wide on all three. That is the difference between a bullet on one line + * and a bullet on two.

    + */ + static final FontName BODY_FONT = FontName.FIRA_SANS_CONDENSED; + + static final double MONOGRAM_SIZE = 50.0; + static final double NAME_SIZE = 40.5; + static final double ROLE_LINE_SIZE = 16.5; + static final double TAGLINE_SIZE = 10.5; + static final double CONTACT_SIZE = 9.6; + static final double HEADING_SIZE = 12.5; + + /** + * The body size, set from the design's line WIDTH rather than its ink + * height, because the two disagree here: matched on height the summary ran + * to six lines where the design has five and every line broke on a + * different word. Matching the width sets the type a few per cent small + * and puts every break back where the design has it. + */ + static final double BODY_SIZE = 9.4; + + /** + * The sidebar label size, set the same way and then backed off a quarter + * point: the longest additional-information label needed all but four + * points of its column and the engine broke it anyway. One size has to + * hold both sidebar blocks, because the design sets both at one size. + */ + static final double LABEL_SIZE = 8.65; + + static final double ACHIEVEMENT_TITLE_SIZE = 9.4; + static final double ACHIEVEMENT_BODY_SIZE = 8.3; + static final double LANGUAGE_SIZE = 8.8; + static final double LEVEL_SIZE = 6.2; + static final double ROLE_SIZE = 10.35; + static final double EMPLOYER_SIZE = 9.1; + static final double PERIOD_SIZE = 8.1; + static final double HIGHLIGHT_SIZE = 9.05; + static final double DEGREE_SIZE = 8.7; + static final double EDUCATION_LINE_SIZE = 8.6; + static final double CREDENTIAL_SIZE = 7.25; + + /** + * The credential headings, which the design sets smaller than the ones + * above them. Not an oversight to be tidied into {@link #HEADING_SIZE}: + * the two credential columns are a footer rather than a third and fourth + * section of the page, and the design's caps measure smaller to say so. + */ + static final double CREDENTIAL_HEADING_SIZE = 10.0; + + /** The engine's line box as a multiple of the type size. */ + static final double LINE_FACTOR = 1.2; + + // -- palette ----------------------------------------------------------- + + static final DocumentColor SLATE = DocumentColor.rgb(34, 46, 56); + static final DocumentColor ACCENT = DocumentColor.rgb(194, 96, 72); + static final DocumentColor INK = DocumentColor.rgb(46, 57, 68); + static final DocumentColor MASTHEAD_INK = DocumentColor.WHITE; + static final DocumentColor MASTHEAD_MUTED = DocumentColor.rgb(216, 220, 224); + static final DocumentColor MUTED = DocumentColor.rgb(138, 144, 153); + static final DocumentColor RULE = DocumentColor.rgb(200, 200, 202); + static final DocumentColor RULE_FAINT = DocumentColor.rgb(227, 227, 227); + static final DocumentColor RATING_EMPTY = DocumentColor.rgb(202, 205, 207); + + // -- the page ---------------------------------------------------------- + + static final double PAGE_WIDTH = 595.276; + static final double PAGE_HEIGHT = 841.89; + static final DocumentPageSize PAGE = DocumentPageSize.A4; + static final double PAGE_MARGIN = 22.0; + static final double CONTENT_WIDTH = PAGE_WIDTH - 2.0 * PAGE_MARGIN; + + static final double MASTHEAD_HEIGHT = 136.6; + static final double TILE_WIDTH = 85.8; + static final double COLUMN_GAP = 45.7; + static final double SIDEBAR_WEIGHT = 0.31514; + static final double MAIN_WEIGHT = 1.0 - SIDEBAR_WEIGHT; + static final double COLUMNS_WIDTH = CONTENT_WIDTH - COLUMN_GAP; + static final double SIDEBAR_WIDTH = COLUMNS_WIDTH * SIDEBAR_WEIGHT; + static final double MAIN_WIDTH = COLUMNS_WIDTH * MAIN_WEIGHT; + + /** + * The body row carries no padding and no spacing of its own: each column + * pads itself and half the gap goes to each side, so the page margin and + * the gap live inside the cells and the cell weights are what is left once + * they are added back on. + */ + static final double HALF_GAP = COLUMN_GAP / 2.0; + static final double SIDEBAR_CELL = SIDEBAR_WIDTH + PAGE_MARGIN + HALF_GAP; + static final double MAIN_CELL = MAIN_WIDTH + PAGE_MARGIN + HALF_GAP; + static final double SIDEBAR_CELL_WEIGHT = SIDEBAR_CELL / PAGE_WIDTH; + static final double MAIN_CELL_WEIGHT = MAIN_CELL / PAGE_WIDTH; + + // -- rules and marks --------------------------------------------------- + + static final double RULE_THICKNESS = 0.6; + static final double HAIRLINE_THICKNESS = 1.2; + static final double MONOGRAM_RULE_THICKNESS = 1.7; + static final double MARKER_DIAMETER = 5.6; + static final double RATING_DOT_DIAMETER = 5.6; + + /** + * A hundredth of a point of slack under every table. The engine compares a + * table's declared width against its container's to the last bit, and a + * sum of derived doubles lands a ten-thousandth of a point over — enough + * to be refused. Taking it off the last column leaves every other column + * exactly where the measurement put it. + */ + static final double TABLE_SLACK = 0.01; + + /** + * No cell borders. + * + *

    A table draws its rules per cell from that cell's own style, and the + * default style has one. The tables here are a layout mechanism rather + * than a grid the reader should see, so every cell states the absence + * explicitly: a zero-width, fully transparent stroke.

    + */ + static final DocumentStroke NO_BORDER = + DocumentStroke.of(DocumentColor.rgba(0, 0, 0, 0), 0.0); + + // -- the masthead ------------------------------------------------------ + + static final double HAIRLINE_X = 383.7; + static final double IDENTITY_WIDTH = HAIRLINE_X - TILE_WIDTH; + static final double HAIRLINE_TOP = 34.4; + static final double HAIRLINE_HEIGHT = 79.0; + static final double HAIRLINE_BOTTOM = MASTHEAD_HEIGHT - HAIRLINE_TOP - HAIRLINE_HEIGHT; + static final double MONOGRAM_TOP = 35.8; + static final double MONOGRAM_RULE_WIDTH = 37.2; + static final double INITIALS_TO_RULE = 1.7; + static final double IDENTITY_TOP = 27.4; + static final double NAME_TO_ROLE = 1.5; + static final double ROLE_TO_TAGLINE = 7.5; + static final double CONTACT_TOP = 36.8; + static final double CONTACT_PAD_LEFT = 21.4; + static final double CONTACT_PITCH = 21.1; + + /** + * The specialism strip's separator. + * + *

    Nine spaces a side rather than two: the design tracks that whole + * line, a text style carries no letter-spacing, and padding the separator + * recovers the width without putting spaces inside a word — which is what + * the extracted text would then say the document contains.

    + */ + static final String TAGLINE_SEPARATOR = " • "; + + // -- the rhythm between blocks ----------------------------------------- + + static final double BODY_TOP = 18.5; + static final double HEADING_TO_RULE = 3.5; + static final double RULE_TO_SIDEBAR_BODY = 9.5; + static final double RULE_TO_MAIN_BODY = 13.0; + + /** + * The three gaps between sidebar blocks are three separate measurements + * off the design, not one constant applied three times. Deriving them from + * each other would be inventing a rhythm the design does not have. + */ + static final double ACHIEVEMENTS_TOP_GAP = 23.6; + static final double LANGUAGES_TOP_GAP = 17.3; + static final double ADDITIONAL_TOP_GAP = 23.9; + + static final double ICON_COLUMN = 24.8; + + /** + * The closing block's icon column, which the design makes narrower than + * the competencies'. Worth its own constant rather than rounding to the + * shared one: the longest label in that block cleared the shared column by + * less than the rounding and broke onto a second line. + */ + static final double ADDITIONAL_ICON_COLUMN = 22.9; + + static final double SIDEBAR_TABLE_WIDTH = SIDEBAR_WIDTH - TABLE_SLACK; + static final double COMPETENCY_PITCH = 23.15; + static final double ACHIEVEMENT_BODY_LEADING = 11.3; + + /** + * Half the gap the design shows between achievements, because the trophy's + * own line box is taller than the title beside it and a table row is as + * tall as its tallest cell — the mark has already paid for the rest. + */ + static final double ACHIEVEMENT_GAP = 3.5; + + static final double LANGUAGE_PITCH = 16.4; + static final double ADDITIONAL_PITCH = 25.1; + static final double LANGUAGE_NAME_COLUMN = SIDEBAR_WIDTH * 0.230; + static final double LANGUAGE_LEVEL_COLUMN = SIDEBAR_WIDTH * 0.407; + static final double LANGUAGE_RATING_COLUMN = + SIDEBAR_TABLE_WIDTH - LANGUAGE_NAME_COLUMN - LANGUAGE_LEVEL_COLUMN; + + static final double PROFILE_LEADING = 13.83; + static final double PROFILE_TO_EXPERIENCE = 23.0; + static final double ENTRY_INDENT = 13.0; + static final double ENTRY_WIDTH = MAIN_WIDTH - ENTRY_INDENT - TABLE_SLACK; + + /** + * The design's three inter-entry gaps differ, and this is the one value + * that has to serve all three. It sits at the low end of that range rather + * than the middle: the body row is atomic and the page has about a point + * of slack, so a gap that split the difference would cost a second page. + */ + static final double ENTRY_GAP = 18.4; + + static final double ROLE_TO_EMPLOYER = 2.0; + static final double EMPLOYER_TO_HIGHLIGHTS = 6.6; + static final double HIGHLIGHT_PITCH = 14.96; + static final double HIGHLIGHT_LEADING = 12.99; + static final double PERIOD_COLUMN = ENTRY_WIDTH * 0.30; + static final double ROLE_COLUMN = ENTRY_WIDTH - PERIOD_COLUMN; + + static final double EXPERIENCE_TO_RULE = 12.0; + static final double RULE_TO_CREDENTIALS = 12.1; + static final double CREDENTIAL_LEFT_COLUMN = MAIN_WIDTH * 0.400; + static final double CREDENTIAL_GUTTER = MAIN_WIDTH * 0.0585; + static final double CREDENTIAL_TABLE_WIDTH = MAIN_WIDTH - TABLE_SLACK; + static final double CREDENTIAL_RIGHT_COLUMN = + CREDENTIAL_TABLE_WIDTH - CREDENTIAL_LEFT_COLUMN - CREDENTIAL_GUTTER; + + /** + * The credential headings sit closer to their rules than the headings + * above them do. A table row's padding is not a paragraph's margin — it + * has no line box to clear — so the same visual gap is a smaller number + * here. + */ + static final double CREDENTIAL_HEADING_TO_RULE = 2.5; + static final double CREDENTIAL_RULE_TO_BODY = 6.5; + static final double EDUCATION_LINE_PITCH = 12.4; + static final double CREDENTIAL_LINE_PITCH = 11.9; + + /** A heading rule inside a credential column, as a filled hairline row. */ + static final double CREDENTIAL_RULE_SIZE = 0.5; + + /** + * The credentials divider is the one mark whose extent is measured rather + * than derived: a table cell's stroke is a box with no per-edge control, + * so the divider cannot be the right column's own border and is a page + * background like the three above it. + */ + static final double CREDENTIALS_DIVIDER_X = 0.61422; + static final double CREDENTIALS_DIVIDER_Y = 0.89671; + static final double CREDENTIALS_DIVIDER_HEIGHT = 0.07713; + + // -- helpers ----------------------------------------------------------- + + static DocumentTextStyle style(FontName font, double size, DocumentColor color, + boolean bold) { + return DocumentTextStyle.builder() + .fontName(font) + .size(size) + .color(color) + .decoration(bold ? DocumentTextDecoration.BOLD : DocumentTextDecoration.DEFAULT) + .build(); + } + + static DocumentTextStyle italic(FontName font, double size, DocumentColor color) { + return DocumentTextStyle.builder() + .fontName(font) + .size(size) + .color(color) + .decoration(DocumentTextDecoration.ITALIC) + .build(); + } + + /** A cell's padding and how its content sits in it. */ + static DocumentTableStyle cellStyle(DocumentInsets padding, + DocumentTableTextAnchor anchor) { + return DocumentTableStyle.builder() + .padding(padding) + .textAnchor(anchor) + .stroke(NO_BORDER) + .build(); + } + + /** A measured pitch, minus the content it has to clear, is the gap that produces it. */ + static double gap(double pitch, double contentHeight) { + return Math.max(0.0, pitch - contentHeight); + } + + /** + * A measured leading, as the additive value {@code lineSpacing} actually + * is: the line box is {@link #LINE_FACTOR} times the type size and the + * setting adds points on top of it. + */ + static double leading(double measuredLeading, double size) { + return Math.max(0.0, measuredLeading - LINE_FACTOR * size); + } + + /** A node name built from a heading, with the spacing taken out of it. */ + static String compact(String value) { + return value == null ? "" : value.replaceAll("[^A-Za-z0-9]", ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeWidgets.java new file mode 100644 index 000000000..c44000072 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeWidgets.java @@ -0,0 +1,162 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.InlineImageAlignment; +import com.demcha.compose.document.style.DocumentInsets; +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.DocumentTableTextAnchor; +import com.demcha.compose.document.templates.cv.data.CvEntry; + +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_RULE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.HEADING_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LABEL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LINE_FACTOR; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.RULE_TO_SIDEBAR_BODY; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.SIDEBAR_TABLE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.cellStyle; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.gap; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.style; + +/** + * The idioms this sheet repeats: the heading over its rule, a mark as a + * cell's node, a line of text as a cell's node, the empty cell, and the + * mark-and-label table both sidebar blocks are built from. + */ +final class SlateOrangeWidgets { + + private SlateOrangeWidgets() { + } + + /** + * A caps heading over its orange rule. + * + *

    The rule is filled rather than given a width, so it spans whichever + * column the heading is in — one method serves the sidebar and the main + * column alike. The credential columns cannot use it, because they live + * inside table cells where a line node is not drawn; their rules are + * filled cells instead.

    + */ + static void heading(SectionBuilder block, String name, String text) { + block.addParagraph(p -> p + .name(name + "Heading") + .text(text) + .lineSpacing(0) + .textStyle(style(DISPLAY_FONT, HEADING_SIZE, INK, true)) + .margin(0f, 0f, (float) HEADING_TO_RULE, 0f)); + block.addLine(line -> line + .name(name + "HeadingRule") + .fill() + .thickness(RULE_THICKNESS) + .color(ACCENT)); + } + + /** One line of text as a cell's single node. */ + static DocumentNode text(String name, String value, DocumentTextStyle textStyle) { + return new ParagraphBuilder() + .name(name) + .text(value) + .lineSpacing(0) + .textStyle(textStyle) + .build(); + } + + /** An empty cell that still has to be a paragraph, because a cell holds a node. */ + static DocumentNode spacer(String name) { + return new ParagraphBuilder() + .name(name) + .text(" ") + .lineSpacing(0) + .textStyle(style(BODY_FONT, CREDENTIAL_RULE_SIZE, INK, false)) + .build(); + } + + /** Places a mark inline, on the baseline of the paragraph it opens. */ + static void inlineIcon(ParagraphBuilder paragraph, String token) { + paragraph.inlineSvgIcon(SlateOrangeIcons.icon(token), SlateOrangeIcons.size(token), + InlineImageAlignment.CENTER); + } + + /** + * A mark on its own, as a cell's single node. + * + *

    Styled at the size of the label beside it although it carries no + * text: the default line box would set the row's pitch instead of the mark + * doing so. An inline run is measured into that box, so a mark taller than + * the label would be drawn clipped to it — whichever is larger wins.

    + */ + static DocumentNode iconCell(String name, String token, double labelSize) { + double boxSize = Math.max(labelSize, SlateOrangeIcons.size(token) / LINE_FACTOR); + ParagraphBuilder paragraph = new ParagraphBuilder(); + paragraph.name(name); + paragraph.lineSpacing(0); + paragraph.textStyle(style(BODY_FONT, boxSize, INK, false)); + inlineIcon(paragraph, token); + return paragraph.build(); + } + + /** + * The shape both mark-and-label blocks share: a fixed mark column beside a + * label column, one table row per entry. + * + *

    The pitch is the table's own row padding, so adding an eleventh entry + * changes nothing about the spacing — the alternative, a bottom margin + * repeated on every label, is the same fact stated ten times. It is a gap + * BETWEEN rows, so the last row does not carry it: there it would become a + * gap between this block and the next, which the next block already + * owns.

    + */ + static void iconTable(SectionBuilder block, String tableName, String rowName, + List entries, double pitch, double iconColumn) { + block.addTable(table -> { + table.name(tableName); + table.margin(new DocumentInsets(RULE_TO_SIDEBAR_BODY, 0, 0, 0)); + table.width(SIDEBAR_TABLE_WIDTH); + table.columns( + DocumentTableColumn.fixed(iconColumn), + DocumentTableColumn.fixed(SIDEBAR_TABLE_WIDTH - iconColumn)); + table.defaultCellStyle(cellStyle( + new DocumentInsets(0, 0, gap(pitch, rowHeight(entries)), 0), + DocumentTableTextAnchor.CENTER_LEFT)); + for (int index = 0; index < entries.size(); index++) { + CvEntry entry = entries.get(index); + table.rowCells( + DocumentTableCell.node(entry.icon().isBlank() + ? spacer(rowName + "Icon_" + index) + : iconCell(rowName + "Icon_" + index, entry.icon(), LABEL_SIZE)), + DocumentTableCell.node(text(rowName + "Label_" + index, entry.title(), + style(BODY_FONT, LABEL_SIZE, INK, false)))); + } + table.rowStyle(entries.size() - 1, + cellStyle(DocumentInsets.zero(), DocumentTableTextAnchor.CENTER_LEFT)); + }); + } + + /** A row is as tall as the tallest mark in the block or its label's line box. */ + private static double rowHeight(List entries) { + double tallest = LABEL_SIZE * LINE_FACTOR; + for (CvEntry entry : entries) { + if (!entry.icon().isBlank()) { + tallest = Math.max(tallest, SlateOrangeIcons.size(entry.icon())); + } + } + return tallest; + } + + /** A node name built from a heading, with the spacing taken out of it. */ + static String nameOf(String value) { + return compact(value); + } +} diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/achievement.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/achievement.svg new file mode 100644 index 000000000..c66f37eb8 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/achievement.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/availability.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/availability.svg new file mode 100644 index 000000000..4f051b9b1 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/availability.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/calendar.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/calendar.svg new file mode 100644 index 000000000..2d7a77e2f --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/communication.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/communication.svg new file mode 100644 index 000000000..dba396bdb --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/communication.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/crm.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/crm.svg new file mode 100644 index 000000000..cb1adeac7 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/crm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/customer-service.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/customer-service.svg new file mode 100644 index 000000000..a5f199ad3 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/customer-service.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/email.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/email.svg new file mode 100644 index 000000000..cec0bf4aa --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/linkedin.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/linkedin.svg new file mode 100644 index 000000000..c8b287ae2 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/location.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/location.svg new file mode 100644 index 000000000..d7ac490e4 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/office-suite.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/office-suite.svg new file mode 100644 index 000000000..eaf930ab5 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/office-suite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/operations.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/operations.svg new file mode 100644 index 000000000..435b26489 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/operations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/phone.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/phone.svg new file mode 100644 index 000000000..4628e2568 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/problem-solving.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/problem-solving.svg new file mode 100644 index 000000000..a430a1b79 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/problem-solving.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/relocation.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/relocation.svg new file mode 100644 index 000000000..e5d78cbeb --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/relocation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/remote-work.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/remote-work.svg new file mode 100644 index 000000000..157c50180 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/remote-work.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/reporting.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/reporting.svg new file mode 100644 index 000000000..1e0f0ce1d --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/reporting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/sales.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/sales.svg new file mode 100644 index 000000000..cc4c5a563 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/sales.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/slate-orange/icons/time-management.svg b/templates/src/main/resources/templates/cv/slate-orange/icons/time-management.svg new file mode 100644 index 000000000..4f051b9b1 --- /dev/null +++ b/templates/src/main/resources/templates/cv/slate-orange/icons/time-management.svg @@ -0,0 +1 @@ + \ No newline at end of file From dc7d9051c8f052904cd657e7620dce5acbc866a8 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 19:19:10 +0100 Subject: [PATCH 23/85] feat(templates): add the Violet Grid banded CV preset (#631) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A one-page sheet with no page-level grid at all: a two-tone name beside the contact list, three opening lines, a six-up grid of marked skills divided by dotted rules, a strip of tools on inline discs, the roles held on a dated timeline whose dates sit outside the rail, the projects behind tinted tiles, education and languages side by side, and a tinted band closing on a quotation. Every split is local to one band, and none of the four knows about the others — which is why every horizontal arrangement is either a top-level row or a table and none of them nests: a row cannot sit inside a row's cell. Three marks are relationships rather than lengths. A section rule starts where its heading ends because it is a weighted column taking what an auto column leaves; the timeline rail is the left border of every entry but the last, so consecutive entries butt into one line that stops at the final marker; and a project's hairline is its copy's left border, so it is exactly as tall as the copy. None has to be re-measured when the content changes. Unlike its ported siblings this sheet flows: each experience entry is held together, so a longer CV runs onto a second page rather than cutting a role in half. As on the presets before it a link is drawn as its own label with the address behind it, the one deliberate departure from the ported sheet, at 1,882 of 2,173,720 pixels. Guarded by a smoke test, an exact layout snapshot and a pixel-parity gate; the examples showcase gains `cv-violet-grid-v2`. --- CHANGELOG.md | 28 + assets/readme/examples/cv-violet-grid-v2.pdf | Bin 0 -> 45165 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../examples/support/ShowcaseMetadata.java | 1 + .../support/VioletGridSampleData.java | 224 + .../templates/cv/v2/VioletGridExample.java | 51 + .../cv/presets/VioletGridFixtures.java | 222 + .../presets/VioletGridLayoutSnapshotTest.java | 32 + .../cv/presets/VioletGridSmokeTest.java | 266 ++ .../presets/VioletGridVisualParityTest.java | 41 + .../cv-v2/violet_grid_layout.json | 4217 +++++++++++++++++ .../cv-v2-layered/violet_grid-page-0.png | Bin 0 -> 139076 bytes .../templates/cv/presets/VioletGrid.java | 229 + .../templates/cv/presets/VioletGridBody.java | 342 ++ .../cv/presets/VioletGridClosing.java | 466 ++ .../templates/cv/presets/VioletGridIcons.java | 112 + .../cv/presets/VioletGridMasthead.java | 214 + .../cv/presets/VioletGridStyles.java | 421 ++ .../cv/presets/VioletGridWidgets.java | 147 + .../cv/violet-grid/icons/design-systems.svg | 1 + .../templates/cv/violet-grid/icons/email.svg | 1 + .../cv/violet-grid/icons/graduation.svg | 1 + .../icons/information-architecture.svg | 1 + .../cv/violet-grid/icons/linkedin.svg | 1 + .../cv/violet-grid/icons/location.svg | 1 + .../templates/cv/violet-grid/icons/phone.svg | 1 + .../cv/violet-grid/icons/project-health.svg | 1 + .../cv/violet-grid/icons/project-wallet.svg | 1 + .../cv/violet-grid/icons/prototyping.svg | 1 + .../templates/cv/violet-grid/icons/quote.svg | 1 + .../violet-grid/icons/usability-testing.svg | 1 + .../cv/violet-grid/icons/ux-research.svg | 1 + .../cv/violet-grid/icons/website.svg | 1 + .../cv/violet-grid/icons/wireframing.svg | 1 + 34 files changed, 7030 insertions(+) create mode 100644 assets/readme/examples/cv-violet-grid-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/VioletGridSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/VioletGridExample.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/violet_grid_layout.json create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/violet_grid-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGrid.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridWidgets.java create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/design-systems.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/email.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/graduation.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/information-architecture.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/linkedin.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/location.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/phone.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/project-health.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/project-wallet.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/prototyping.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/quote.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/usability-testing.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/ux-research.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/website.svg create mode 100644 templates/src/main/resources/templates/cv/violet-grid/icons/wireframing.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 32a558537..26aee1bef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -97,6 +97,34 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A banded single-column CV preset: `VioletGrid`.** A one-page sheet with no page-level + grid at all: a two-tone name beside the contact list, three opening lines, a six-up + grid of marked skills divided by dotted rules, a strip of tools on inline discs, the + roles held on a dated timeline whose dates sit outside the rail, the projects behind + tinted tiles, education and languages side by side, and a tinted band closing on a + quotation. Ships as `cv.presets.VioletGrid` on the existing `CvDocument` model, + porting the rendered layout of a published standalone template; like `SlateOrange` it + reads a rated language's wording from `CvSkill.note`. Every split is local to one + band — the masthead splits where the contact marks begin, the timeline into dates, + rail and content, a project into tile and copy, the credentials into two halves — and + none of the four knows about the others, which is why every horizontal arrangement is + either a top-level row or a table and none of them nests. Three marks are + relationships rather than lengths: a section rule starts where its heading ends + because it is a weighted column taking what an auto column leaves; the timeline rail + is the left border of every entry but the last, so consecutive entries butt into one + line; and a project's hairline is its copy's left border, so it is exactly as tall as + the copy. Seven berths reach their sections by title, including a quotation berth + whose body is drawn and whose title is not. Unlike its ported siblings this sheet + flows: each experience entry is held together, so a longer CV runs onto a second page + rather than cutting a role in half. As on the presets before it a link is drawn as its + own label with the address behind it, the one deliberate departure from the ported + sheet, measured at 1 882 of 2 173 720 pixels. Guarded by a smoke test (including the + unknown-mark data error, a skill with no mark, the two-tone name, the quotation's + title staying off the sheet, the link targets on every kind of title, an identity with + no links, a document with nothing but an identity, and the run onto a second page), an + exact layout snapshot and a pixel-parity gate; the examples showcase gains + `cv-violet-grid-v2`. + - **A masthead-and-rail CV preset: `SlateOrange`.** A one-page sheet built as a full-bleed slate band over a two-column body: an orange monogram tile beside the name, the role line and a tracked specialism strip, with the contact lines across an orange diff --git a/assets/readme/examples/cv-violet-grid-v2.pdf b/assets/readme/examples/cv-violet-grid-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eb94465c65ee4028c35f3d3c3274b9a27e91ceea GIT binary patch literal 45165 zcma&NQ;=p+vn|?X+qP|2mu=hbvRz%aZQHhO+qUtQ>-2w5?0av--Vggdb4IQ)a^}pH zk%LS@M2wD!o*kO(<>+%4nu(B+(9XyTnwJ-vLB+$~l#oH#(Am)1&K#OS&D7D!($1EU z;Xl?43WnyUPK3<=%$1<|`Jqj1P5$G?_WyI2F|{>!wjg9;Th@Brqw*K)3;BC-}?jF-LeZ z*wxe(CZqvL1n3blqKO5qA@Z|HelzLr+32Z9g#IufYjLr(Q#^+-rH+M9{*f+0v_V6a z7TwS5^!1qPI)$efw*PA!Q{&l_9?&oB=_WQ1P=kucXXFGB* z)30Yc#*F5zuU97ga}!)2{^#@LMSN3D&rTb9^Mvl(tJx;=?S9|<=i}v3{%0TNyW78j z4xhlo82PsxQNhi-!)FG;Ux}TTT4gdsee2BO-P#1i_Y?Eh-|b)58#i&WJDFEjo!9+E z#*U{O*M+h`E**3xuD{qemoC2FljnXiS8ohxrCv284jwb*d&}AiA`cj9DR+2&`UZa7 zW%p?)_1DK|?Y_T3*p41Ed%H^RQq^7RyS^24yF5H(_jkSf=*_xOmq`8I79$fsOBw90 z=R-6W_Vt$*?kRhVP2g{Bjr(KCA;5OFzf~$;ud8X^&V=k=;?{*i{RpDCLf%K+dON-d zT7S%KCT;tZO}pRVq*sby9anITrOq~aRFq=M*TA|_SW$1Ygu;RD_38|WGrEo79|-Yx zwy2ka3b&cD9b5AdJx6TCdgSBe1R3?&FX4Ryoncl`gO^tV+pjMpc9!}5MLpj53Fh}+ ze5%EbyG4`DgvBp!T`jID>MaV)M!8%QOoUi;qy$=xp{maC6cGA##hLM(>gv@%C9NsL z&DT3OTcy>#jCZ%KT4YM7QCSDfs?e73n65D0Rv`BI=aisb|5_i^llmESR;@egA)bzh zy&VsDt4?li>Km7Q2Ym$WLU*Y0Kqk=Jw%fwK9%#(mz*uCTvWjjN?(eR5^m#;}t^F|2 zAVo5WUP-PU;R48Myb>MOS`Q{WNQ&n1c_HU8?orsV)8#*X1#Y?80P^Ee} z5;Z1?-L-a{MEeHZ{FdULx-uUJQbxh9@@pnAlq}p)$c&Dru6_BTyg0-5c%#060LUb} zYB(`SaOfPdxd7r$$f!pNLc8GhzdH5Tn*wYNN-}d#jyAF{#VJD*wFJfiP?L;4bEhj7 zhcc!J^I=d5icb~cBBwSrj}%&q{b7PJ&A;iBD214WMW>kyBQqP^vXAX%!r|rCvgpX4 z9>d`u2MpD$RS9w^kAkTla6UuVai@Af=f87*u>BxtU)Fkt|G{IWoe(b16F|6 z%tfgU#tom@U}Y)_cEz!g(vs=9y4^~;9L%>a_&Mg1Vze9hm#`wjW7gAn$+e|ihL4nF zhI!dTI@tNlI_T6C%uPKDgVQ%AfCZ&q9UrP=RjQrod|2kIvDOxB3xF=w0Ej58rF(27 za<9$I^Lgs*PtllsK`D%inxc9|B#f7hQ-|T_FR-j=V?f3ef{LIm>7=OQ+aQ$*p}1Pm z@D2r#@Ydy?1Ec^8wGwX?O&B9_3CKh}S)A2SJdygeRoB30+|Y@*|%sua$bPn1}+ z%Zl_G;Go0$EmYV;&%yGo{0jtjYp;I#!XHN?d1UR^pjJa=X~sdH$~M|_R>p#qHFl`f zeCG-lO~*mH_PhxPi_0}*d5Oc>HGfW@|xqJAhc@}22-#K{` zSW>TiDOKcyW0dO@*To=dK(MnSVc$V#m5w=i6{@ zv>C$c(3@fD2}hFAlA7j*rwdu7Z*zdHI#DW9CO1d`9+eXoa2sRBYt}OW&HmZa|4D*9DI!Q0b=StHx z2J0wgKJp}FUC+t6@*Q>j#kG))h$i_zZlxi z^a+*R(C9KZSVO4sTuhiv)tK~M*y(e0bKC2MUdT9WV3+%3!>v{ z48m4%bop%ct&g@6(-|}F!I$9TnXhoCzYAbj~KFFzuoje@4MzJmn-Sd_Ec4k_3P``;TTK^@^$IiL4T&ZgFd7_ zvOlN4KtCSHF!m@XncG=AL0Jd>^bfuG?Qh)bFFhC|M55h(WGxML!`eu>F2uOD)V8Wl zWLRRft6%0|Vt0SrebbMw^M7YI79^|mYGKV4^E_6#KJ$*CFT8XoPt5@J(NCpqwG4PnLV3cIa_qlNCooyob@@69(~Y66UFFjGyWbff zI|<1zzLYJMl}i_6Jg^o7jc0qZN+o4pXoUee?+2GJPO9xkou*c0z7%Y%S@0BtjnliM zsZQKio0}V?rq3!@i^DHe#U-kCy%oj}Ps3HIUzgAIeiS~DR^?r`$2YlRSnth&RzF3S zPqLZF6*S$Rm87$0-)erlnUx^{+i^8#j=IQMiNNNhi*fi5Ha5!1A+;Gr?riGoHPyye z&+Km3T?nl?YTY^Yq$cSj~F%mS9e2tpNMyQ{(cDvg5xEDI?gndbiTqz6goLMI&<^S(Ruth zsNwR1%3GW}BANk~SSwyV%3@-Gs7O6__OQHU6)YE4o(G!YeCF9XT;o!5H4vyU#Te14 z7zf@5ZyrZ$JUd%A21*no;e1h1nLkr7y`nBvx@ojiqs{A_!Im?Gk&(UH0^V>cW3wT? zD3I&}7@YVn%q(r8D8xLpG-Sf&q1y^xqUjq4ZU{0*6ty7b1rCop?M~oykTpHicqu;& zn+#c+{(`bI`5g6NTY(~PKFE>KizZbffwJa$~cCM;w_6rEsoG zs@*R6)=jCD`DNU*Q-tM?CBa6l&Bcn~qvCl5rzgy6<0{j(=&$R_HU zq)ZQ_Sjop08!C>xIwAR)=PG50ehK}dV~^NJ5}nA|u$WJsHW2<2axQlikcvd7$$?tt zTUE}C^rm7<3eHewEY?;QF=>H%n4wg|X_ykWDsp9a0y`%g%6B%ETT#KIoPS%cM9J3+ zgOvvM0_nwYhXSEA8q1pJLdBqlsEmxMnjOg0%Q3nVHEk0m(bi?GzP5m|WUYq5J#)|S zH$(z}q2nv*?qI!Oo+k$&p}ny&Z?UMkxM9xiLYygy2YG#71WO#gZCjPBTjH>d0ld7avL!&iD~ZRDi@a+lt@`} zBI@a6H{8(&=@T<`f?20SS)@yH=Obpqw>Lqdo5mK2E_E-s&3R8~gadnhhwC(1pE9xc zrA=E|gS*7P7TWGjOJBLCRO;Grg_zRd$q-nwa!#D8?V(nwK6PIORy+CebU~2edi~iP9g^*2VGw&6lqb=LWTF@9l~P715l!~&$fQRv?q#(e`^;LnY-)&KqNgu$McQ^6*sg^Tqdz^)JZ)-uU6FsEb=)Y0dol*rW= zI@(&mS0GEfIhx=Vvf*iA?+DIGM=c{d%=LmL5D|4%2nu#n+1a9PVEeQh6gm|~j0dvt z>Tqd8^=LB+=X%Kv1dm@oTG-8Pf(@4mB_6${hvT%QN?cp#xnb+N^S5)&x55bX$W3fv z)hkx9l2=?RcW0hy(^<)?Qni@JH-DW3*~K7DtoU{o>{cNQF(2t4|E-A&K@x7p0btWrht%wZQTd1kfB&V0_VG zb+{Ks1rfLjRB=@4_(yiajxm$39ViIRiqa_KDaILh!!%D@D&oYU7OK`+3@IA^w$lekWp>vDQT%F(=&)) zOsC|Pc(XD7Fz}o*YNLv?{-)T_kPo@bTHdhYYLjs3n4vx7(2CU9 z2XUZKPVCPQHw`WKqF|Z2cMROQu%Q&6!ts;~0#S>gFW6c*i2GGxj(E)Agf^;cS|V{e zi@J__F1*y)-HV9>eHfi1X~%9DvD|IfL%_!N^LF<$%EIr;CFq?$#1OSl!r+@VvFork zhoI>4>vVEo>bAih*HnQoTO7ZG8nP9cwyFmu`gLGADnB&09x!|M8M*a8kVom)I=n z4)^>AgyLb9d*aErAgiYX=jzwso|Eu?;^j-=y#?mdyuz1>GZ*A;Si$LXTbW`usU(-W z5THv<@tm-#agx3gE{syQkgKFcb$(xV%C6_u>4+l#sCyRL_*oNI*_BFi)ypMRHUO(q zFiXm0YZPV`Z2G;outQ3kYmb!z3|jPR z<0T=7N1q4%4>qM}^pXg3QeTlTx5l38HY!5eG=#G2G;HIz6kQ*P>s8^NRat0MGy`Zc z<-fVp$Ab%$Hje9?+uyl@AlQY3ER@SI0ZJsY#fwo)7O3X=62CoQ>a{%5zrAokBP~pi z9ZLSR%*a?7nrE zxY%ovEczvQg)Pf$$S?879Tv~MVGM7CDJ=ohq$?b{l9Wkv2(LyOo5?^e; zqcSUB@Of@1^6pvZq#Pe~AdEihR+q4B9cfFmhmI&|fwH5kojM*fk_wEd+O!oPaY%t@ zMrF4G-zaoS@hHDk35cb%jH!x}JSj`uz|dIEq09X`3q&cJFJ~Qv29vb3jyr_>u1_fS zXuL@mDo2jMTLwwrhR=D>ouW~z&=EO_3&KK4uoWakkUdKv2hA*fAH<7;((D+dKr(HW=(7Xolz`g-ZOrresL3X#;0WU6T5P$ zy_oNo^}_uX*;*H2DXrP39ETOJgn3=6xma9Mny!KMqeC%kZ6Gq7SpjciP*Cye+kg*t zFjZ$$1A)Mj!@A3UuxBmHxNx*G&YZg&mvo#AnSSS#OZ=cc-g={UL(aT(7MUmSm9_IH z!PJF4eG#u7wVnM==Uciqpi3`C*G{9f{>N=3bIm7%gm8ApnA2F|++)^UE>*8acFtB| zY~KytuncDCtUD3%|cMyegsdGtCEmpFL!|cO?g=He|rTRIr|3~n1v9TBW())b32G%-x3koum zoS_;BTzl7a`veT9Tls7+uz>T`h1<2+uVsY6K^V3Lp0ZR5QM;E$+^vHWZ>*e6cR)$Y z&vU-jrL8NGGG>YSDkDHc34z#YY8_^pQwbT5wFoWOo$8UppsvA z)Ja)6JjElIN@|yU7rJEBhbkO)fTbQadZc9rG6~bW{YjcBU}7$bnZ3e*_R%}ZY&tj& z47!}!_zBzOzWa>n08fG755;8sxI_T8w)&EpcLmxsn?b`62~uM{TwGwp0*;C3G%|Uh zQcYQ+G7DA|?w?THSH)1r-$*NCuscDOw&kUE894nvs6E4d5K$8!Bs*czpnPJ+I7mIfWsyI2&HW3J(`Gz4Zv? zJB=lLQaCuF`W zc)D9W+!El6c#F>eHtljijz$r~`Tkq4ib68wei;5z?Y+-2MBf5hxzLeT$zWhzyM)v~ z>40BzQ`nqS7~9)zcSYR7Q6)(0I>@3x((?#5C4(?zVIU*IZJign_q!dqZ;Iq-;4f*% zN-1h2{VAq>W@AZ7zE-6Oh#MnwQB2I1BpkQy3+tO%HC}?=(@L~sBSPSYrTzz-J#5_j zbuf_UnrI)}syG2@#?kZGSv-iTjNzPJ-K0ddg(>}DA|X&BHZW9NYga_Y=me%7=ZIW= zlF7hy$F*z#_GQ$f#c5s18idd)pSTR0BYKukI;gx?^@z;RI~VxB5#}smd2jIFAFEW` z<667#t4MKpofqH{mp$~RdoG@n`8`|SQ4$tnKJ(rfof9s80F7<}Qj-j10hN_?RF)7# zA=)q#VTCQ5V?}b~(baU3`-UB#^Y!Z6ddN*^L-F_h$kyjUyfD~v7!i0et#ETea(xSU z7FKtj`vJUaMUiP4?O~Wlx*yfJQ&Jb?8rtR6f`xh2zhDJc`9h^y9aFNp(^2I=szaoH z-aSGtehZ?!e@(Z>;*n43ljOrqGSXQXQ!9%xp^C8NmKPi3-iA<_iUn5=42o%&r%(Wxy87@o==X#D+QEHR6^L@d7OW{?&np}=w= zDywG_fyTpCMTIyuU$zQT!7=Y&PnEoDTJ;QDs?D`@3pgHA?r)97CAahNM8zPx+J>*z z8NNCJ8z@UnFdutY`>d$)@>QPDV!VeAlZFwDcG0tJa#BUQnp$O>HC(X4B~#T0?`P>& z8(i}H(s?JCP0$Y0Mh|?CpXi94lFyv#5U#d3q??M#In41-}W)q4BqZ z{wSeseeP|5^M3RHetc$HZJKptaGH$tvnhCV_$!XPRFB?{CwYG29-HRs0f85#pNK`R zPxCfDu9(Sn_tSJ|vxk*j4?%!QI-*@3b4ttgfEkArm2>LS+Y=jxuw<4d<2}bHR^tfa zCUxk-Ifv%mzzzTTyNs_*q4Q}ma~6>>$7&4Q8A7Z=_i&^XNv@V%HiRfnd|;#Z`-tuP zGZOFHe1heB`R-L|%epus(~I{>YR>z?%@YE1)5G$9)<%1GBp;BDyLQp~2-#i2yOEp% zBQ!X>Q*$zA*@Cy;_*^c+`>q3#ic!&85JU~@FRmkZ5&D|6j4(;HHSutpNclw_lqmBH zBR$ibm7#=Y7Ffm*@%HlFtsLSFIcoO8Blb_Ob_Kp>l_ed44uKi*6ZQ_zOZ==jY5Q@Z zqI50uDq>z#N7RoBTPq{KNF(pZpIS%%H{DW2%I<3pkTi$DAy|v zUrFNu(EZ`OfU3Q-2omr00}k5pn=jQcr%n5Y9_hS*j~E$q!LyIj#M~@u7qMdDpgW^W z$XH`|`5!aT!u2SNLf9{MnW|S?L99F6bG+koirRa3hR`yw?4xtm#(nB2(sUeuag&ZC zlT%X8dcEg~*FGJx7=8JOF2US4$B>Fn<4;f4|0-EuW^V0HQQ3i_A?UNBJ=y<;jAp+! zPf@ShAC+{k=&D+F2GV=I?2uc1YWO~^Lay}MD)|!!Ezhe>@}WQQfE19ki!LGQ`kJ_7F$e;OMrrxo8D}EFD_;%njHyQ`@B9C7%jvbJ zNxK_FzABJG@SydFKUZLk@ZhKKdC~E^hcYqxMAdW}Yk8LiG%_UaS=KUyBkXKHycY*u z7LTT!K<}JREGivuJzqeSmTZZoC}@UL!#?y>VVFBz>gEC+^5XeGbrxIckR@Dvv|X1L znaskp9bJ1hOW-{i7R6q5dFcBN(o z)p<7%F6-byKX=(1R3+d>Wkq$#m#W?Np^xWF$qDj8$yKR$M_B857SyUK7u8Ih{n2$B zZ8}l_GuJ2YU)0l2z=hS3rC*~6k8#xV&=?wVadWM0LvZ%h)c1RSeF)YASncS(D@cX` z&ILLP9I#cLzmUycUB_#_Udi|+yr-nMG)g3sWD>DWbNKW=(kn+9SBs9dlbzDxtThiR zj*`+6_l7)|E3MhQ+Xqa$hv0VGjt><&Zeq^KYM^I&WCBXNdzyv}GmUPX5f(^N+dA0h z=!vF|QBJS@r6(2n4BLi;FRohOH*4fuk7&7Z?i;LcWcl&T#i)~6PmXTBCBgSuChzn< zBuYKQ6Dhc_BZq=|IA=5EI@jq*ehV~|G8K`y$e{Q~+pR``>LE#X)$oZ3?Xv_Uq(D4= zP$9gaekTX_x7-u2%_yv0biY=a0O@<$chy#{9QL7W=1IxTbN@qcxr;dqp18+~4eB8~ z4L2>!SdEW~4BEMW2Tk^_XcmLipXU7R7%abZ6Y6#v$=CH!{jGnu@}nndFhXXAN+&9 z@2%VGImRCp{x`dKHx9q>-05is{C0>4etRUW?a;;3b`BR(g zM*!M!-Yc;-cv{Zpcw#q5c8D`-pj~bjn$r>=12|_2qd)Kz>e;Y)L}@7{q9IYFHxxSu_$r`@b!hk0k8t&??zOA}r$L zwB=0DhYo`0`^_VH7Mt2m<{v|PO}7zFPA&rr+c0|Hj>@9Q+OA4{g7g=XnI7v|{=d%q z@kH4)Za?meJzHE3^G;V*^KW4w;9}PlZ&YieW~Y2Jo`3?K<^b&ck@*++X?hP8dsq9U?i-iV(m9e& z5j67L2AFo4&q0$D7e$hvrA-F~hgFH;+iRWqwn9+LG2@4rSb*i6XV4qDpqi8#sc!idU9K+V_f zPoIzmhEhbUq~yfp0#GhhYiVO0>+8-$r&5h{w2W}bOEBvHi`oU^6KRf=bFZ8;PF{e* zu3q%cb#En!4M1QRQbPk!7WrYn*^7~p;Ly!rVybl&Jn*6NdLwXU!@GX!W~Z0qg?rDp zudtdIr3b?a*D4Q=FEb>!%1Uegwn0O_qmFx8@jytcDr+PT_ zd9KRvXzcmixlJi?IBq}Z&ka@Nq0sq7146)ttcIPM=oOJ@@8m>Q$$?x#lhgP)pqwI^ zfk@n~I=c_KHKf;b202xmdjq-U{?%{Z%MIK*2J_isAx`KkHS<=6>jH`Ba9oR+3U?%Y3*A^NYw z#7Kg&Mi?~;@JSFgxIUhCXDT7UB*}{0uy|xQ!WIMFLBUVs@{sv3%vV^%$`gw6B;DUB zElpg^54%fi&--`~X zB|qk_lSP@=aCV<@x6rz)Ix;&UXK7Tsn{r!H6zcw@#3qCoHE%OBb#JNmuO~{{?;c7= z>gpLxy^makhBGV?jcqVSz<3A9I{tD(F>a{Y z6~M=@@$3Q|!anSSy!2Xn&!%~ilx_h5dUT+~1UP#>fYEk@697TwN8d#DXI-_e-y}zd zEE2#&U)OskrQG6~8F!8Nm&*9~n54Z?_eJtCPzR8hROGLoLY>#O=>NRap#SeX4ds6p zL&Xw!Dvs#3HFZY1{OydtxDsYOb@A2ZWn;s4pPuB|k z%$pR!Uf~v^@Me!$loL}_+c#6@83hJL!|V+8rSI}I$8FBh!=P8R|j>drc+s zyotj|G084es76U^_uY1=n>WJ-IBXN}?JIIqWH`b*9Ab&4w3Y3;uUNAD7%9J2*Er4@ z9&7rC;FEP3@cHLv6;~8BEJ!9S+{=6tRJoY^-AzjD&C#?7*n?$3ALv3OG}vhMeSVW!sQQ+qVN=8PM zx<9G{BJngJ3p(d{RQdjH*iQ-RcvTmwX+jR2byh-FloXI^9-eVg;D+WS3zPjV5_-Zt z(bt)qKpS+jp4hY+N_nf5X()$NRazUT@}(P~%PN_BX+kC|wiUA9=j9uI2ao{!(o5T3rL#6!ZC(8)VK zqr#zu=)8BSZ1qxcSn5!eC2Ex!5b!}zb10~cv5CCxtUgL`I5afS_sMOOcT!ZV}i^cIdZqX-5#^K<11s~d8v4RARg%Z2#&A< zoG5Im*Gy!+92PA283D)Bvx2uZ{1$aEJEO>{5S4}Yi^&b;gd2@hU8fqhaDQ9P@vZGZ zLR|zQ0-%Qg=CivsJMojF^^UfYolFLxTLJHdTo&k2iJBq6s} zLAV8;I@Db`+xj&cHwT#Xx_~VR=3#!Yt9My__3q34<@H~sk?>hx#kCGhG&$Tl55s%q zV)`ChPFdk}Gh{JqE36D3d)0su{hRLY+2jzjhqF(GQXw|RPVObX=(P=v> zID~K1)Jdb^@xd-A>anW7v-jg9-i>%53vl>(EeGJ7vMq|kL1M~DXdE~`rTr_dn!>j~ zRHrj*qdz0d=KB{rjAl8xM#i31hPaL_sBl_)d{o`aE9<|8O`LoSo011e)fk-Q<*n+U1(r96yfco#oNEPG!3IVjkaPwix@}z1oE}(7>eEO)7?PyN z%AidL*BTYXq`5&+{AUFn49GFxUeOO@$eSe?z+-j2vL7&G2)0UB3iP}#bSt6OSf z!a2TTYK_NRa%Zc5Xj^?hQH!Qi9tIzWj(pR#X6|lXzA<~n)^{YtbljIlz+4of>2--_ zSjet{ttVHm&uU?92`;|1B{OW9#0ISt3hT;1;q~eA#-0bTMTXn9de+3=*gAVmDTU+| z=2?R6JOf094}SeEpY-Af<|fxaH7pZRx-(KZ7z_hmHcS!^yaaJa0VR>j&IfgpLvzk7 z`f2fQ5ziAL59!!b&TjgPEe}jEXPUtYB%EM=^GYsTiq0hXbTQ*y>Dw4-XVFyq7V`R% z2bBfv9h`YSb3BCNy-~1RU$p29`)-d#ltvZd<*rh%o1XGrFPGfgVi|V%4Os03EZD_Tc=+byC z;btJqsj<>qjmQxM3s*8~EaZS^oqWvq3GM84feiyQB{DvJh6g|XyxUw{x2TI!b_+}0 zec|#ImDGtzc}Q#!YJY-hEE>0j!WJ0^#e$~6!4UK<#R%-J&G=dNO^F(qJgkuwE&bz@ zd1Z;`S2t-TMc4`^)oJvhh9DtmJ;NIntsx1bnSdoQ5L?qrKq+%kT_#DqebD$gV1#i( zo9-yRsY;F%vYFEG;g|Bs1#-P!8{QvE!}ZkX#lP>el>;WO0T@M_0VoJ`Nr+(O`Qf
    j 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 tags, String codeUrl cv("cv-terracotta-rail-v2", "TerracottaRailExample", "Terracotta Rail", "Serif monogram over a terracotta rule, contact channels behind their marks and two bulleted lists, beside a letter-spaced masthead, roles on a ringed rail, a projects grid and the degrees.", "sidebar", "monogram", "terracotta"); cv("cv-teal-pulse-v2", "TealPulseExample", "Teal Pulse", "Clinical sheet in five bands: a heart crossed by a pulse beside the name, a contact strip on rules, competencies beside the summary and roles, and a three-column closing band over a tracked tagline.", "clinical", "badges", "teal"); cv("cv-slate-orange-v2", "SlateOrangeExample", "Slate Orange", "Full-bleed slate masthead with an orange monogram tile, over a sidebar of marked competencies, trophied achievements and rated languages beside a profile, a dated experience rail and a credentials footer.", "sidebar", "masthead", "orange"); + cv("cv-violet-grid-v2", "VioletGridExample", "Violet Grid", "Single-column sheet in bands: a two-tone name beside the contact list, a six-up grid of marked skills on dotted rules, a tools strip, a dated timeline, tinted project tiles and a closing quotation.", "single-column", "grid", "violet"); // ===== Templates / Cover Letter (v2 layered, paired 1:1 with CV) ===== // Registered directly: letter() points at the layered preset examples under diff --git a/examples/src/main/java/com/demcha/examples/support/VioletGridSampleData.java b/examples/src/main/java/com/demcha/examples/support/VioletGridSampleData.java new file mode 100644 index 000000000..3266599a1 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/VioletGridSampleData.java @@ -0,0 +1,224 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * Shared sample data for the Violet Grid CV example. + * + *

    The sample is the preset's reference content: a one-page CV with five + * contact lines including two links, three opening lines, six marked skills, + * eleven tools, three roles, two projects, a degree, three rated languages + * and the closing quotation.

    + * + *

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

    + */ +public final class VioletGridSampleData { + + /** The break a body stacks its lines on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private VioletGridSampleData() { + } + + /** The single-page reference CV. */ + public static CvDocument sample() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.MAIN, summary())); + placements.add(new CvDocument.Placement(Slot.MAIN, skills())); + placements.add(new CvDocument.Placement(Slot.MAIN, tools())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.MAIN, projects())); + placements.add(new CvDocument.Placement(Slot.FOOTER, education())); + placements.add(new CvDocument.Placement(Slot.FOOTER, languages())); + placements.add(new CvDocument.Placement(Slot.FOOTER, quote())); + return new CvDocument(identity(), placements); + } + + private static CvIdentity identity() { + return new CvIdentity( + CvName.of("SOFIA", "MARTINEZ"), + "UX / UI DESIGNER", + new Contact("+1 (415) 555-7842", + "sofia.martinez.design@gmail.com", + "San Francisco, CA, USA"), + List.of( + new Link("sofiamartinez.design", "https://sofiamartinez.design"), + new Link("LinkedIn", "https://www.linkedin.com/in/sofia-martinez-ux")), + Optional.empty()); + } + + /** The opening lines, set as written rather than wrapped. */ + private static ParagraphSection summary() { + return new ParagraphSection("SUMMARY", String.join(NEWLINE, + "User-centered designer with 5+ years of experience " + + "crafting intuitive digital experiences for web and " + + "mobile products.", + "I combine research, design thinking, and visual design " + + "to solve complex problems and deliver accessible, " + + "elegant solutions.", + "Passionate about collaborating with cross-functional " + + "teams to create products that delight users and drive " + + "business impact.")); + } + + /** The six-up grid: a mark, a label and a description each. */ + private static EntriesSection skills() { + return new EntriesSection("DESIGN SKILLS", List.of( + CvEntry.builder("UX RESEARCH") + .icon("ux-research") + .body("User interviews, surveys, personas, journey maps, " + + "competitive analysis") + .build(), + CvEntry.builder("INFORMATION ARCHITECTURE") + .icon("information-architecture") + .body("Sitemaps, user flows, card sorting, content strategy") + .build(), + CvEntry.builder("WIREFRAMING") + .icon("wireframing") + .body("Low to high-fidelity wireframes, layout design, " + + "interaction flows") + .build(), + CvEntry.builder("PROTOTYPING") + .icon("prototyping") + .body("Interactive prototypes, microinteractions, transitions") + .build(), + CvEntry.builder("USABILITY TESTING") + .icon("usability-testing") + .body("Test planning, usability tests, heuristic evaluation, " + + "insights & iteration") + .build(), + CvEntry.builder("DESIGN SYSTEMS") + .icon("design-systems") + .body("Component libraries, design tokens, pattern " + + "documentation") + .build())); + } + + /** The tools strip — names without levels. */ + private static SkillsSection tools() { + List entries = new ArrayList<>(); + for (String name : new String[] { + "Figma", "FigJam", "Adobe XD", "Sketch", "Miro", "Notion", "Jira", "Slack", "Maze", "Hotjar", "Airtable"}) { + entries.add(CvSkill.of(name)); + } + return new SkillsSection("TOOLS", + List.of(new SkillGroup("TOOLS", entries))); + } + + /** The roles held, each a headline over its bullets. */ + private static EntriesSection experience() { + return new EntriesSection("EXPERIENCE", List.of( + CvEntry.builder("Senior UX/UI Designer") + .subtitle("NovaFin (FinTech Startup)") + .place("San Francisco, CA") + .date("2022 - Present") + .body(String.join(NEWLINE, + "Led end-to-end design for a personal finance platform, " + + "from discovery to launch, improving task success rate by " + + "32%.", + "Conducted user research, built personas and journey " + + "maps, and translated insights into clear product " + + "opportunities.", + "Designed wireframes, prototypes, and high-fidelity " + + "interfaces for web and mobile using Figma.", + "Established and maintained a scalable design system, " + + "increasing design consistency and development speed.", + "Collaborated with product managers, engineers, and data " + + "analysts in an agile environment.")) + .build(), + CvEntry.builder("UX Designer") + .subtitle("BrightHealth (HealthTech)") + .place("San Francisco, CA") + .date("2020 - 2022") + .body(String.join(NEWLINE, + "Redesigned patient portal experience, reducing support " + + "tickets by 28% and improving user satisfaction.", + "Planned and facilitated usability tests and synthesized " + + "findings to drive iterative improvements.", + "Partnered with engineers to ensure feasible solutions " + + "and pixel-perfect implementation.", + "Created reusable components and style guides to support " + + "a cohesive cross-platform experience.")) + .build(), + CvEntry.builder("Junior UX/UI Designer") + .subtitle("Lumen Digital Agency") + .place("Austin, TX") + .date("2018 - 2020") + .body(String.join(NEWLINE, + "Supported discovery workshops, user flows, and " + + "wireframes for clients across e-commerce and SaaS.", + "Designed responsive websites and landing pages following " + + "best practices in accessibility and usability.", + "Collaborated with copywriters and developers to deliver " + + "high-quality, user-centered solutions.")) + .build())); + } + + /** The projects, each behind its tinted tile. */ + private static EntriesSection projects() { + return new EntriesSection("SELECTED PROJECTS", List.of( + CvEntry.builder("NovaFin Mobile App") + .subtitle("Personal Finance Management") + .date("2023") + .icon("project-wallet") + .body("Led UX/UI design for budgeting, goal tracking, and " + + "insights features. Conducted user interviews and " + + "usability tests that informed a simplified navigation " + + "and data visualization. Resulted in 32% improvement in " + + "task success rate and 22% increase in weekly active " + + "users.") + .build(), + CvEntry.builder("BrightHealth Patient Portal") + .subtitle("Healthcare Platform Redesign") + .date("2021") + .icon("project-health") + .body("Redesigned key patient flows including appointment " + + "scheduling, test results, and messaging. Created a new " + + "design system and component library used across web and " + + "mobile. Reduced support tickets by 28%.") + .build())); + } + + /** The degree, with the place and the years on its third line. */ + private static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("Bachelor of Fine Arts in Graphic Design") + .subtitle("California College of the Arts") + .place("San Francisco, CA") + .date("2014 - 2018") + .icon("graduation") + .build())); + } + + /** The languages, each carrying both the rating and the word for it. */ + private static SkillsSection languages() { + return new SkillsSection("LANGUAGES", List.of(new SkillGroup("LANGUAGES", List.of( + CvSkill.of("English", 1.0, "Native"), + CvSkill.of("Spanish", 1.0, "Native"), + CvSkill.of("Portuguese", 0.6, "Conversational"))))); + } + + /** The closing line. Its title names the berth and is not drawn. */ + private static ParagraphSection quote() { + return new ParagraphSection("QUOTE", + "I design with empathy, iterate with purpose, and " + + "collaborate to build products people love."); + } +} diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/VioletGridExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/VioletGridExample.java new file mode 100644 index 000000000..646ab9a06 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/VioletGridExample.java @@ -0,0 +1,51 @@ +package com.demcha.examples.templates.cv.v2; + +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.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.VioletGrid; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.VioletGridSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code cv.v2} Violet Grid preset against the design + * sample. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-violet-grid-v2.pdf}.

    + * + *

    The preset owns its page geometry — every length is a share of the + * design's own grid — so the session starts unconfigured.

    + */ +public final class VioletGridExample { + + private VioletGridExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare("templates/cv", "cv-violet-grid-v2.pdf"); + CvDocument doc = VioletGridSampleData.sample(); + DocumentTemplate template = VioletGrid.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + template.compose(document, doc); + 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/cv/presets/VioletGridFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridFixtures.java new file mode 100644 index 000000000..88876cecc --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridFixtures.java @@ -0,0 +1,222 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * Shared fixture data for the {@link VioletGrid} gates — the SAME document + * feeds the pixel parity test and the layout snapshot test, so a geometry + * shift the pixel budget absorbs still trips the exact snapshot, and vice + * versa. + */ +final class VioletGridFixtures { + + /** The break a body stacks its lines on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private VioletGridFixtures() { + } + + /** + * The canonical one-page CV — five contact lines including two links, + * three opening lines, six marked skills, eleven tools, three roles, two + * projects, a degree, three rated languages and the closing quotation. + */ + static CvDocument canonicalCv() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.MAIN, summary())); + placements.add(new CvDocument.Placement(Slot.MAIN, skills())); + placements.add(new CvDocument.Placement(Slot.MAIN, tools())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.MAIN, projects())); + placements.add(new CvDocument.Placement(Slot.FOOTER, education())); + placements.add(new CvDocument.Placement(Slot.FOOTER, languages())); + placements.add(new CvDocument.Placement(Slot.FOOTER, quote())); + return new CvDocument(identity(), placements); + } + + static CvIdentity identity() { + return new CvIdentity( + CvName.of("SOFIA", "MARTINEZ"), + "UX / UI DESIGNER", + new Contact("+1 (415) 555-7842", + "sofia.martinez.design@gmail.com", + "San Francisco, CA, USA"), + List.of( + new Link("sofiamartinez.design", "https://sofiamartinez.design"), + new Link("LinkedIn", "https://www.linkedin.com/in/sofia-martinez-ux")), + Optional.empty()); + } + + /** The opening lines, set as written rather than wrapped. */ + static ParagraphSection summary() { + return new ParagraphSection("SUMMARY", String.join(NEWLINE, + "User-centered designer with 5+ years of experience " + + "crafting intuitive digital experiences for web and " + + "mobile products.", + "I combine research, design thinking, and visual design " + + "to solve complex problems and deliver accessible, " + + "elegant solutions.", + "Passionate about collaborating with cross-functional " + + "teams to create products that delight users and drive " + + "business impact.")); + } + + /** The six-up grid: a mark, a label and a description each. */ + static EntriesSection skills() { + return new EntriesSection("DESIGN SKILLS", List.of( + CvEntry.builder("UX RESEARCH") + .icon("ux-research") + .body("User interviews, surveys, personas, journey maps, " + + "competitive analysis") + .build(), + CvEntry.builder("INFORMATION ARCHITECTURE") + .icon("information-architecture") + .body("Sitemaps, user flows, card sorting, content strategy") + .build(), + CvEntry.builder("WIREFRAMING") + .icon("wireframing") + .body("Low to high-fidelity wireframes, layout design, " + + "interaction flows") + .build(), + CvEntry.builder("PROTOTYPING") + .icon("prototyping") + .body("Interactive prototypes, microinteractions, transitions") + .build(), + CvEntry.builder("USABILITY TESTING") + .icon("usability-testing") + .body("Test planning, usability tests, heuristic evaluation, " + + "insights & iteration") + .build(), + CvEntry.builder("DESIGN SYSTEMS") + .icon("design-systems") + .body("Component libraries, design tokens, pattern " + + "documentation") + .build())); + } + + /** The tools strip — names without levels. */ + static SkillsSection tools() { + List entries = new ArrayList<>(); + for (String name : new String[] { + "Figma", "FigJam", "Adobe XD", "Sketch", "Miro", "Notion", "Jira", "Slack", "Maze", "Hotjar", "Airtable"}) { + entries.add(CvSkill.of(name)); + } + return new SkillsSection("TOOLS", + List.of(new SkillGroup("TOOLS", entries))); + } + + /** The roles held, each a headline over its bullets. */ + static EntriesSection experience() { + return new EntriesSection("EXPERIENCE", List.of( + CvEntry.builder("Senior UX/UI Designer") + .subtitle("NovaFin (FinTech Startup)") + .place("San Francisco, CA") + .date("2022 - Present") + .body(String.join(NEWLINE, + "Led end-to-end design for a personal finance platform, " + + "from discovery to launch, improving task success rate by " + + "32%.", + "Conducted user research, built personas and journey " + + "maps, and translated insights into clear product " + + "opportunities.", + "Designed wireframes, prototypes, and high-fidelity " + + "interfaces for web and mobile using Figma.", + "Established and maintained a scalable design system, " + + "increasing design consistency and development speed.", + "Collaborated with product managers, engineers, and data " + + "analysts in an agile environment.")) + .build(), + CvEntry.builder("UX Designer") + .subtitle("BrightHealth (HealthTech)") + .place("San Francisco, CA") + .date("2020 - 2022") + .body(String.join(NEWLINE, + "Redesigned patient portal experience, reducing support " + + "tickets by 28% and improving user satisfaction.", + "Planned and facilitated usability tests and synthesized " + + "findings to drive iterative improvements.", + "Partnered with engineers to ensure feasible solutions " + + "and pixel-perfect implementation.", + "Created reusable components and style guides to support " + + "a cohesive cross-platform experience.")) + .build(), + CvEntry.builder("Junior UX/UI Designer") + .subtitle("Lumen Digital Agency") + .place("Austin, TX") + .date("2018 - 2020") + .body(String.join(NEWLINE, + "Supported discovery workshops, user flows, and " + + "wireframes for clients across e-commerce and SaaS.", + "Designed responsive websites and landing pages following " + + "best practices in accessibility and usability.", + "Collaborated with copywriters and developers to deliver " + + "high-quality, user-centered solutions.")) + .build())); + } + + /** The projects, each behind its tinted tile. */ + static EntriesSection projects() { + return new EntriesSection("SELECTED PROJECTS", List.of( + CvEntry.builder("NovaFin Mobile App") + .subtitle("Personal Finance Management") + .date("2023") + .icon("project-wallet") + .body("Led UX/UI design for budgeting, goal tracking, and " + + "insights features. Conducted user interviews and " + + "usability tests that informed a simplified navigation " + + "and data visualization. Resulted in 32% improvement in " + + "task success rate and 22% increase in weekly active " + + "users.") + .build(), + CvEntry.builder("BrightHealth Patient Portal") + .subtitle("Healthcare Platform Redesign") + .date("2021") + .icon("project-health") + .body("Redesigned key patient flows including appointment " + + "scheduling, test results, and messaging. Created a new " + + "design system and component library used across web and " + + "mobile. Reduced support tickets by 28%.") + .build())); + } + + /** The degree, with the place and the years on its third line. */ + static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("Bachelor of Fine Arts in Graphic Design") + .subtitle("California College of the Arts") + .place("San Francisco, CA") + .date("2014 - 2018") + .icon("graduation") + .build())); + } + + /** The languages, each carrying both the rating and the word for it. */ + static SkillsSection languages() { + return new SkillsSection("LANGUAGES", List.of(new SkillGroup("LANGUAGES", List.of( + CvSkill.of("English", 1.0, "Native"), + CvSkill.of("Spanish", 1.0, "Native"), + CvSkill.of("Portuguese", 0.6, "Conversational"))))); + } + + /** The closing line. Its title names the berth and is not drawn. */ + static ParagraphSection quote() { + return new ParagraphSection("QUOTE", + "I design with empathy, iterate with purpose, and " + + "collaborate to build products people love."); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridLayoutSnapshotTest.java new file mode 100644 index 000000000..c47638b85 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridLayoutSnapshotTest.java @@ -0,0 +1,32 @@ +package com.demcha.compose.document.templates.cv.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 VioletGrid} — freezes the resolved + * geometry of the canonical one-page CV, which the pixel budget cannot see: a + * small column or spacing shift stays under the visual-diff budget but changes + * the snapshot. + * + *

    The preset owns its page geometry, so the session starts unconfigured.

    + * + *

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

    + */ +class VioletGridLayoutSnapshotTest { + + @Test + void canonicalCvMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + VioletGrid.create().compose(session, VioletGridFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "violet_grid_layout", "cv-v2"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridSmokeTest.java new file mode 100644 index 000000000..f6a36a2cd --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridSmokeTest.java @@ -0,0 +1,266 @@ +package com.demcha.compose.document.templates.cv.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.core.identity.Contact; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.Slot; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link VioletGrid} — proves the preset renders a + * {@link CvDocument} end-to-end with its packaged marks, sets the two-tone + * name from the structured one, draws only the quotation's body, reports an + * unknown mark as a data error, and carries the channels and the titles as + * link annotations, which move no pixel and no layout node so neither gate + * would notice them going missing. + */ +class VioletGridSmokeTest { + + private static byte[] render(CvDocument doc) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + VioletGrid.create().compose(session, doc); + 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); + } + } + + /** + * The text with its spaces removed. The name and every heading are + * letter-spaced with real space runs, so what is being asserted is the + * wording, not the tracking. + */ + private static String compact(String text) { + return text.replaceAll("(?U)\\s", ""); + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + /** The canonical document with one section replaced. */ + private static CvDocument withSection(Slot slot, EntriesSection replacement, + String replacedTitle) { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : VioletGridFixtures.canonicalCv().placements()) { + if (placement.section().title().equals(replacedTitle)) { + placements.add(new CvDocument.Placement(slot, replacement)); + } else { + placements.add(placement); + } + } + return new CvDocument(VioletGridFixtures.identity(), placements); + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = VioletGrid.create(); + assertThat(template.id()).isEqualTo(VioletGrid.ID); + assertThat(template.displayName()).isEqualTo(VioletGrid.DISPLAY_NAME); + } + + @Test + void rendersCanonicalCvWithPackagedMarks() throws Exception { + render(VioletGridFixtures.canonicalCv()); + } + + @Test + void canonicalRenderCarriesEveryBandsText() throws Exception { + String text = textOf(render(VioletGridFixtures.canonicalCv())); + assertThat(text) + .contains("sofia.martinez.design@gmail.com") + .contains("User-centered designer") + .contains("Figma") + .contains("NovaFin (FinTech Startup)") + .contains("NovaFin Mobile App") + .contains("Bachelor of Fine Arts in Graphic Design") + .contains("Conversational") + .contains("I design with empathy"); + assertThat(compact(text)) + .contains("SOFIAMARTINEZ") + .contains("UX/UIDESIGNER") + .contains("DESIGNSKILLS") + .doesNotContain("QUOTE"); + } + + @Test + void theNameIsSetFromTheStructuredNameInTwoTones() throws Exception { + // Both names are runs of one paragraph, so the gap between them is a + // real word space; the two tones are what the design asks for. + String text = textOf(render(VioletGridFixtures.canonicalCv())); + assertThat(text.lines().map(String::strip).toList()) + .anyMatch(line -> line.contains("SOFIA") && line.contains("MARTINEZ")); + } + + @Test + void contactChannelsAndLinksAreClickable() throws Exception { + List targets = linkTargets(render(VioletGridFixtures.canonicalCv())); + assertThat(targets) + .contains("mailto:sofia.martinez.design@gmail.com") + .contains("tel:+14155557842") + .contains("https://sofiamartinez.design") + .contains("https://www.linkedin.com/in/sofia-martinez-ux"); + } + + @Test + void aLinkShowsItsLabelAndHidesItsAddress() throws Exception { + // The column draws the label, so its width is the same whatever the + // profile behind it is called; the address is reachable, not written. + byte[] pdfBytes = render(VioletGridFixtures.canonicalCv()); + assertThat(textOf(pdfBytes)) + .contains("LinkedIn") + .doesNotContain("linkedin.com/in/sofia-martinez-ux"); + assertThat(linkTargets(pdfBytes)) + .contains("https://www.linkedin.com/in/sofia-martinez-ux"); + } + + @Test + void aRoleAProjectAndADegreeBecomeLinksWhenTheirEntryCarriesOne() throws Exception { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : VioletGridFixtures.canonicalCv().placements()) { + placements.add(switch (placement.section().title()) { + case "EXPERIENCE" -> new CvDocument.Placement(Slot.MAIN, + new EntriesSection("EXPERIENCE", List.of( + CvEntry.builder("Senior UX/UI Designer") + .subtitle("NovaFin") + .place("San Francisco, CA") + .date("2022") + .link("https://example.test/novafin") + .body("Led end-to-end design.") + .build()))); + case "SELECTED PROJECTS" -> new CvDocument.Placement(Slot.MAIN, + new EntriesSection("SELECTED PROJECTS", List.of( + CvEntry.builder("NovaFin Mobile App") + .subtitle("Personal Finance") + .date("2023") + .icon("project-wallet") + .link("https://example.test/app") + .body("Led UX/UI design.") + .build()))); + case "EDUCATION" -> new CvDocument.Placement(Slot.FOOTER, + new EntriesSection("EDUCATION", List.of( + CvEntry.builder("Bachelor of Fine Arts") + .subtitle("California College of the Arts") + .place("San Francisco, CA") + .date("2014 - 2018") + .icon("graduation") + .link("https://example.test/cca") + .build()))); + default -> placement; + }); + } + + List targets = linkTargets( + render(new CvDocument(VioletGridFixtures.identity(), placements))); + assertThat(targets) + .contains("https://example.test/novafin") + .contains("https://example.test/app") + .contains("https://example.test/cca"); + } + + @Test + void anUnknownMarkIsReportedAsADataError() { + EntriesSection wrong = new EntriesSection("DESIGN SKILLS", List.of( + CvEntry.builder("Telepathy").icon("telescope").body("Reading minds.").build())); + + assertThatThrownBy(() -> render(withSection(Slot.MAIN, wrong, "DESIGN SKILLS"))) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("telescope") + .hasMessageContaining("wireframing"); + } + + @Test + void aSkillWithoutAMarkIsDrawnWithoutOne() throws Exception { + EntriesSection unmarked = new EntriesSection("DESIGN SKILLS", List.of( + CvEntry.builder("UX RESEARCH").body("User interviews and surveys.").build())); + + String text = textOf(render(withSection(Slot.MAIN, unmarked, "DESIGN SKILLS"))); + // The description wraps inside its narrow column, so a fragment + // of one line is what is asserted. + assertThat(text).contains("User interviews and"); + } + + @Test + void aDocumentWithNothingButAnIdentityStillRenders() throws Exception { + // Every berth empty: the name, the discipline line and its rule, and + // nothing else on the sheet. + render(new CvDocument(VioletGridFixtures.identity(), List.of())); + } + + @Test + void anIdentityWithoutLinksDrawsTheThreeChannels() throws Exception { + CvIdentity noLinks = new CvIdentity(CvName.of("Ada", "Lovelace"), "Analyst", + new Contact("+44 20 7946 0000", "ada@example.test", "London, UK"), + List.of(), Optional.empty()); + + // A run that breaks at a space carries one annotation per piece, so it + // is the set of targets that is asserted, not the count. + byte[] pdfBytes = render(new CvDocument(noLinks, List.of())); + assertThat(Set.copyOf(linkTargets(pdfBytes))) + .containsExactlyInAnyOrder("mailto:ada@example.test", "tel:+442079460000"); + } + + @Test + void aLongerCvRunsOntoASecondPageRatherThanLosingARole() throws Exception { + // The page is a stack of bands, so more content than the design holds + // runs over; each entry is held together, so a role is never cut in two. + List many = new ArrayList<>(); + for (int index = 0; index < 8; index++) { + many.add(CvEntry.builder("Senior UX/UI Designer " + index) + .subtitle("NovaFin") + .place("San Francisco, CA") + .date("2022") + .body("Led end-to-end design for a personal finance platform.") + .build()); + } + + try (DocumentSession session = GraphCompose.document().create()) { + VioletGrid.create().compose(session, withSection(Slot.MAIN, + new EntriesSection("EXPERIENCE", many), "EXPERIENCE")); + assertThat(session.layoutSnapshot().totalPages()).isGreaterThan(1); + } + String text = textOf(render(withSection(Slot.MAIN, + new EntriesSection("EXPERIENCE", many), "EXPERIENCE"))); + assertThat(text).contains("Senior UX/UI Designer 7"); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridVisualParityTest.java new file mode 100644 index 000000000..9645814b1 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridVisualParityTest.java @@ -0,0 +1,41 @@ +package com.demcha.compose.document.templates.cv.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 VioletGrid} — the canonical + * one-page CV against a checked-in baseline. + * + *

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

    + */ +class VioletGridVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "cv-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()) { + VioletGrid.create().compose(document, VioletGridFixtures.canonicalCv()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("violet_grid", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/violet_grid_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/violet_grid_layout.json new file mode 100644 index 000000000..34cb04f2c --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/violet_grid_layout.json @@ -0,0 +1,4217 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 535.466, + "innerHeight" : 818.192, + "margin" : { + "top" : 13.542, + "right" : 29.905, + "bottom" : 10.156, + "left" : 29.905 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "VioletGridCv[0]", + "entityName" : "VioletGridCv", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 29.905, + "computedY" : 10.348, + "placementX" : 29.905, + "placementY" : 10.348, + "placementWidth" : 535.466, + "placementHeight" : 818.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 818.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" : "VioletGridCv[0]/Header[0]", + "entityName" : "Header", + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 734.92, + "placementX" : 29.905, + "placementY" : 734.92, + "placementWidth" : 535.466, + "placementHeight" : 93.428, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 93.428, + "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" : "VioletGridCv[0]/Header[0]/Identity[0]", + "entityName" : "Identity", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/Header[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 739.279, + "placementX" : 29.905, + "placementY" : 739.279, + "placementWidth" : 284.374, + "placementHeight" : 89.069, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 284.374, + "contentHeight" : 89.069, + "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" : "VioletGridCv[0]/Header[0]/Identity[0]/Name[0]", + "entityName" : "Name", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/Header[0]/Identity[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 775.002, + "placementX" : 29.905, + "placementY" : 775.002, + "placementWidth" : 284.374, + "placementHeight" : 53.346, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 284.374, + "contentHeight" : 53.346, + "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" : "VioletGridCv[0]/Header[0]/Identity[0]/Discipline[1]", + "entityName" : "Discipline", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/Header[0]/Identity[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 754.683, + "placementX" : 29.905, + "placementY" : 754.683, + "placementWidth" : 157.277, + "placementHeight" : 20.319, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 157.277, + "contentHeight" : 20.319, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 13.147, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/Header[0]/Identity[0]/IdentityRule[2]", + "entityName" : "IdentityRule", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/Header[0]/Identity[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 739.279, + "placementX" : 29.905, + "placementY" : 739.279, + "placementWidth" : 39.497, + "placementHeight" : 2.257, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 39.497, + "contentHeight" : 2.257, + "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" : "VioletGridCv[0]/Header[0]/Contact[1]", + "entityName" : "Contact", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/Header[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 398.355, + "computedY" : 734.92, + "placementX" : 398.355, + "placementY" : 734.92, + "placementWidth" : 152.21, + "placementHeight" : 93.428, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 152.21, + "contentHeight" : 93.428, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 4.514, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/Header[0]/Contact[1]/Contact_0_email[0]", + "entityName" : "Contact_0_email", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/Header[0]/Contact[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 398.355, + "computedY" : 812.334, + "placementX" : 398.355, + "placementY" : 812.334, + "placementWidth" : 152.21, + "placementHeight" : 11.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 152.21, + "contentHeight" : 11.5, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.854, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/Header[0]/Contact[1]/Contact_1_phone[1]", + "entityName" : "Contact_1_phone", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/Header[0]/Contact[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 398.355, + "computedY" : 792.98, + "placementX" : 398.355, + "placementY" : 792.98, + "placementWidth" : 97.746, + "placementHeight" : 11.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.746, + "contentHeight" : 11.5, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.854, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/Header[0]/Contact[1]/Contact_2_location[2]", + "entityName" : "Contact_2_location", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/Header[0]/Contact[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 398.355, + "computedY" : 773.627, + "placementX" : 398.355, + "placementY" : 773.627, + "placementWidth" : 114.927, + "placementHeight" : 11.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 114.927, + "contentHeight" : 11.5, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.854, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/Header[0]/Contact[1]/Contact_3_website[3]", + "entityName" : "Contact_3_website", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/Header[0]/Contact[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 398.355, + "computedY" : 754.273, + "placementX" : 398.355, + "placementY" : 754.273, + "placementWidth" : 103.158, + "placementHeight" : 11.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.158, + "contentHeight" : 11.5, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.854, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/Header[0]/Contact[1]/Contact_4_linkedin[4]", + "entityName" : "Contact_4_linkedin", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/Header[0]/Contact[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 398.355, + "computedY" : 734.92, + "placementX" : 398.355, + "placementY" : 734.92, + "placementWidth" : 56.382, + "placementHeight" : 11.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.382, + "contentHeight" : 11.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" : "VioletGridCv[0]/SummaryLine_0[1]", + "entityName" : "SummaryLine_0", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 709.078, + "placementX" : 29.905, + "placementY" : 709.078, + "placementWidth" : 482.062, + "placementHeight" : 11.172, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 482.062, + "contentHeight" : 11.172, + "margin" : { + "top" : 14.67, + "right" : 0.0, + "bottom" : 1.241, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/SummaryLine_1[2]", + "entityName" : "SummaryLine_1", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 696.664, + "placementX" : 29.905, + "placementY" : 696.664, + "placementWidth" : 495.804, + "placementHeight" : 11.172, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 495.804, + "contentHeight" : 11.172, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.241, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/SummaryLine_2[3]", + "entityName" : "SummaryLine_2", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 684.251, + "placementX" : 29.905, + "placementY" : 684.251, + "placementWidth" : 501.018, + "placementHeight" : 11.172, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 501.018, + "contentHeight" : 11.172, + "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" : "VioletGridCv[0]/SkillsHeading[4]", + "entityName" : "SkillsHeading", + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 650.396, + "placementX" : 29.905, + "placementY" : 650.396, + "placementWidth" : 535.466, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 14.783, + "margin" : { + "top" : 19.071, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/SkillsHeading[4]/SkillsHeadingText[0]", + "entityName" : "SkillsHeadingText", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillsHeading[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 650.396, + "placementX" : 29.905, + "placementY" : 650.396, + "placementWidth" : 76.844, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.844, + "contentHeight" : 14.783, + "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" : "VioletGridCv[0]/SkillsHeading[4]/SkillsHeadingText[0]/SkillsHeadingLabel[0]", + "entityName" : "SkillsHeadingLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillsHeading[4]/SkillsHeadingText[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 650.396, + "placementX" : 29.905, + "placementY" : 650.396, + "placementWidth" : 76.844, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.844, + "contentHeight" : 14.783, + "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" : "VioletGridCv[0]/SkillsHeading[4]/SkillsHeadingRule[1]", + "entityName" : "SkillsHeadingRule", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillsHeading[4]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 106.749, + "computedY" : 656.562, + "placementX" : 106.749, + "placementY" : 656.562, + "placementWidth" : 458.622, + "placementHeight" : 8.617, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 458.622, + "contentHeight" : 8.617, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 7.617, + "right" : 0.0, + "bottom" : 0.0, + "left" : 11.285 + } + }, { + "path" : "VioletGridCv[0]/SkillsHeading[4]/SkillsHeadingRule[1]/SkillsHeadingRuleLine[0]", + "entityName" : "SkillsHeadingRuleLine", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/SkillsHeading[4]/SkillsHeadingRule[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 118.034, + "computedY" : 656.562, + "placementX" : 118.034, + "placementY" : 656.562, + "placementWidth" : 447.337, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 447.337, + "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" : "VioletGridCv[0]/SkillGrid[5]", + "entityName" : "SkillGrid", + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 562.656, + "placementX" : 29.905, + "placementY" : 562.656, + "placementWidth" : 535.466, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 76.737, + "margin" : { + "top" : 11.003, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]", + "entityName" : "Skill_0", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 569.965, + "placementX" : 29.905, + "placementY" : 569.965, + "placementWidth" : 88.304, + "placementHeight" : 69.429, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.304, + "contentHeight" : 69.429, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 6.207, + "bottom" : 0.0, + "left" : 6.207 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 36.112, + "computedY" : 618.893, + "placementX" : 36.112, + "placementY" : 618.893, + "placementWidth" : 75.891, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]/Align[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 63.807, + "computedY" : 618.893, + "placementX" : 63.807, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 63.807, + "computedY" : 618.893, + "placementX" : 63.807, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]/SkillLabel_0[1]", + "entityName" : "SkillLabel_0", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 36.112, + "computedY" : 601.283, + "placementX" : 36.112, + "placementY" : 601.283, + "placementWidth" : 75.891, + "placementHeight" : 7.793, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 7.793, + "margin" : { + "top" : 9.818, + "right" : 0.0, + "bottom" : 3.385, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]/SkillDescription_0[2]", + "entityName" : "SkillDescription_0", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_0[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 36.112, + "computedY" : 569.965, + "placementX" : 36.112, + "placementY" : 569.965, + "placementWidth" : 75.891, + "placementHeight" : 27.933, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 27.933, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 1.695, + "bottom" : 0.0, + "left" : 1.695 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_0[1]", + "entityName" : "SkillDivider_0", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 118.209, + "computedY" : 562.656, + "placementX" : 118.209, + "placementY" : 562.656, + "placementWidth" : 1.128, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 76.737, + "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" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_0[1]/SkillDividerRule[0]", + "entityName" : "SkillDividerRule", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_0[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 118.209, + "computedY" : 562.656, + "placementX" : 118.209, + "placementY" : 562.656, + "placementWidth" : 1.128, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 76.737, + "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" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]", + "entityName" : "Skill_1", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 119.337, + "computedY" : 580.121, + "placementX" : 119.337, + "placementY" : 580.121, + "placementWidth" : 88.304, + "placementHeight" : 59.272, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.304, + "contentHeight" : 59.272, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 6.207, + "bottom" : 0.0, + "left" : 6.207 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 125.544, + "computedY" : 618.893, + "placementX" : 125.544, + "placementY" : 618.893, + "placementWidth" : 75.891, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]/Align[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 153.239, + "computedY" : 618.893, + "placementX" : 153.239, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 153.239, + "computedY" : 618.893, + "placementX" : 153.239, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]/SkillLabel_1[1]", + "entityName" : "SkillLabel_1", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 125.544, + "computedY" : 601.283, + "placementX" : 125.544, + "placementY" : 601.283, + "placementWidth" : 75.891, + "placementHeight" : 7.793, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 7.793, + "margin" : { + "top" : 9.818, + "right" : 0.0, + "bottom" : 3.385, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]/SkillDescription_1[2]", + "entityName" : "SkillDescription_1", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_1[2]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 125.544, + "computedY" : 580.121, + "placementX" : 125.544, + "placementY" : 580.121, + "placementWidth" : 75.891, + "placementHeight" : 17.776, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 17.776, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 1.695, + "bottom" : 0.0, + "left" : 1.695 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_1[3]", + "entityName" : "SkillDivider_1", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 207.641, + "computedY" : 562.656, + "placementX" : 207.641, + "placementY" : 562.656, + "placementWidth" : 1.128, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 76.737, + "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" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_1[3]/SkillDividerRule[0]", + "entityName" : "SkillDividerRule", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_1[3]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 207.641, + "computedY" : 562.656, + "placementX" : 207.641, + "placementY" : 562.656, + "placementWidth" : 1.128, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 76.737, + "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" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]", + "entityName" : "Skill_2", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 4, + "depth" : 3, + "layer" : 3, + "computedX" : 208.77, + "computedY" : 569.965, + "placementX" : 208.77, + "placementY" : 569.965, + "placementWidth" : 88.304, + "placementHeight" : 69.429, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.304, + "contentHeight" : 69.429, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 6.207, + "bottom" : 0.0, + "left" : 6.207 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 214.976, + "computedY" : 618.893, + "placementX" : 214.976, + "placementY" : 618.893, + "placementWidth" : 75.891, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]/Align[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 242.672, + "computedY" : 618.893, + "placementX" : 242.672, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 242.672, + "computedY" : 618.893, + "placementX" : 242.672, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]/SkillLabel_2[1]", + "entityName" : "SkillLabel_2", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 214.976, + "computedY" : 601.283, + "placementX" : 214.976, + "placementY" : 601.283, + "placementWidth" : 75.891, + "placementHeight" : 7.793, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 7.793, + "margin" : { + "top" : 9.818, + "right" : 0.0, + "bottom" : 3.385, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]/SkillDescription_2[2]", + "entityName" : "SkillDescription_2", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_2[4]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 214.976, + "computedY" : 569.965, + "placementX" : 214.976, + "placementY" : 569.965, + "placementWidth" : 75.891, + "placementHeight" : 27.933, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 27.933, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 1.695, + "bottom" : 0.0, + "left" : 1.695 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_2[5]", + "entityName" : "SkillDivider_2", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 5, + "depth" : 3, + "layer" : 3, + "computedX" : 297.074, + "computedY" : 562.656, + "placementX" : 297.074, + "placementY" : 562.656, + "placementWidth" : 1.128, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 76.737, + "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" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_2[5]/SkillDividerRule[0]", + "entityName" : "SkillDividerRule", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_2[5]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 297.074, + "computedY" : 562.656, + "placementX" : 297.074, + "placementY" : 562.656, + "placementWidth" : 1.128, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 76.737, + "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" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]", + "entityName" : "Skill_3", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 6, + "depth" : 3, + "layer" : 3, + "computedX" : 298.202, + "computedY" : 569.965, + "placementX" : 298.202, + "placementY" : 569.965, + "placementWidth" : 88.304, + "placementHeight" : 69.429, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.304, + "contentHeight" : 69.429, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 6.207, + "bottom" : 0.0, + "left" : 6.207 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 304.409, + "computedY" : 618.893, + "placementX" : 304.409, + "placementY" : 618.893, + "placementWidth" : 75.891, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]/Align[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 332.104, + "computedY" : 618.893, + "placementX" : 332.104, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 332.104, + "computedY" : 618.893, + "placementX" : 332.104, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]/SkillLabel_3[1]", + "entityName" : "SkillLabel_3", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 304.409, + "computedY" : 601.283, + "placementX" : 304.409, + "placementY" : 601.283, + "placementWidth" : 75.891, + "placementHeight" : 7.793, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 7.793, + "margin" : { + "top" : 9.818, + "right" : 0.0, + "bottom" : 3.385, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]/SkillDescription_3[2]", + "entityName" : "SkillDescription_3", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_3[6]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 304.409, + "computedY" : 569.965, + "placementX" : 304.409, + "placementY" : 569.965, + "placementWidth" : 75.891, + "placementHeight" : 27.933, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 27.933, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 1.695, + "bottom" : 0.0, + "left" : 1.695 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_3[7]", + "entityName" : "SkillDivider_3", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 7, + "depth" : 3, + "layer" : 3, + "computedX" : 386.506, + "computedY" : 562.656, + "placementX" : 386.506, + "placementY" : 562.656, + "placementWidth" : 1.128, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 76.737, + "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" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_3[7]/SkillDividerRule[0]", + "entityName" : "SkillDividerRule", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_3[7]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 386.506, + "computedY" : 562.656, + "placementX" : 386.506, + "placementY" : 562.656, + "placementWidth" : 1.128, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 76.737, + "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" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]", + "entityName" : "Skill_4", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 8, + "depth" : 3, + "layer" : 3, + "computedX" : 387.634, + "computedY" : 569.965, + "placementX" : 387.634, + "placementY" : 569.965, + "placementWidth" : 88.304, + "placementHeight" : 69.429, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.304, + "contentHeight" : 69.429, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 6.207, + "bottom" : 0.0, + "left" : 6.207 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 393.841, + "computedY" : 618.893, + "placementX" : 393.841, + "placementY" : 618.893, + "placementWidth" : 75.891, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]/Align[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 421.536, + "computedY" : 618.893, + "placementX" : 421.536, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 421.536, + "computedY" : 618.893, + "placementX" : 421.536, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]/SkillLabel_4[1]", + "entityName" : "SkillLabel_4", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 393.841, + "computedY" : 601.283, + "placementX" : 393.841, + "placementY" : 601.283, + "placementWidth" : 75.891, + "placementHeight" : 7.793, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 7.793, + "margin" : { + "top" : 9.818, + "right" : 0.0, + "bottom" : 3.385, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]/SkillDescription_4[2]", + "entityName" : "SkillDescription_4", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_4[8]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 393.841, + "computedY" : 569.965, + "placementX" : 393.841, + "placementY" : 569.965, + "placementWidth" : 75.891, + "placementHeight" : 27.933, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 27.933, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 1.695, + "bottom" : 0.0, + "left" : 1.695 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_4[9]", + "entityName" : "SkillDivider_4", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 9, + "depth" : 3, + "layer" : 3, + "computedX" : 475.938, + "computedY" : 562.656, + "placementX" : 475.938, + "placementY" : 562.656, + "placementWidth" : 1.128, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 76.737, + "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" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_4[9]/SkillDividerRule[0]", + "entityName" : "SkillDividerRule", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/SkillDivider_4[9]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 475.938, + "computedY" : 562.656, + "placementX" : 475.938, + "placementY" : 562.656, + "placementWidth" : 1.128, + "placementHeight" : 76.737, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 76.737, + "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" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]", + "entityName" : "Skill_5", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]", + "childIndex" : 10, + "depth" : 3, + "layer" : 3, + "computedX" : 477.067, + "computedY" : 569.965, + "placementX" : 477.067, + "placementY" : 569.965, + "placementWidth" : 88.304, + "placementHeight" : 69.429, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.304, + "contentHeight" : 69.429, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 6.207, + "bottom" : 0.0, + "left" : 6.207 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 483.274, + "computedY" : 618.893, + "placementX" : 483.274, + "placementY" : 618.893, + "placementWidth" : 75.891, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]/Align[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 510.969, + "computedY" : 618.893, + "placementX" : 510.969, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 510.969, + "computedY" : 618.893, + "placementX" : 510.969, + "placementY" : 618.893, + "placementWidth" : 20.5, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.5, + "contentHeight" : 20.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" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]/SkillLabel_5[1]", + "entityName" : "SkillLabel_5", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 483.274, + "computedY" : 601.283, + "placementX" : 483.274, + "placementY" : 601.283, + "placementWidth" : 75.891, + "placementHeight" : 7.793, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 7.793, + "margin" : { + "top" : 9.818, + "right" : 0.0, + "bottom" : 3.385, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]/SkillDescription_5[2]", + "entityName" : "SkillDescription_5", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/SkillGrid[5]/Skill_5[10]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 483.274, + "computedY" : 569.965, + "placementX" : 483.274, + "placementY" : 569.965, + "placementWidth" : 75.891, + "placementHeight" : 27.933, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.891, + "contentHeight" : 27.933, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 1.695, + "bottom" : 0.0, + "left" : 1.695 + } + }, { + "path" : "VioletGridCv[0]/ToolsHeading[6]", + "entityName" : "ToolsHeading", + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 532.469, + "placementX" : 29.905, + "placementY" : 532.469, + "placementWidth" : 535.466, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 14.783, + "margin" : { + "top" : 15.404, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ToolsHeading[6]/ToolsHeadingText[0]", + "entityName" : "ToolsHeadingText", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ToolsHeading[6]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 532.469, + "placementX" : 29.905, + "placementY" : 532.469, + "placementWidth" : 34.064, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.064, + "contentHeight" : 14.783, + "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" : "VioletGridCv[0]/ToolsHeading[6]/ToolsHeadingText[0]/ToolsHeadingLabel[0]", + "entityName" : "ToolsHeadingLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ToolsHeading[6]/ToolsHeadingText[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 532.469, + "placementX" : 29.905, + "placementY" : 532.469, + "placementWidth" : 34.064, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.064, + "contentHeight" : 14.783, + "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" : "VioletGridCv[0]/ToolsHeading[6]/ToolsHeadingRule[1]", + "entityName" : "ToolsHeadingRule", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ToolsHeading[6]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 63.969, + "computedY" : 538.635, + "placementX" : 63.969, + "placementY" : 538.635, + "placementWidth" : 501.402, + "placementHeight" : 8.617, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 501.402, + "contentHeight" : 8.617, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 7.617, + "right" : 0.0, + "bottom" : 0.0, + "left" : 11.285 + } + }, { + "path" : "VioletGridCv[0]/ToolsHeading[6]/ToolsHeadingRule[1]/ToolsHeadingRuleLine[0]", + "entityName" : "ToolsHeadingRuleLine", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/ToolsHeading[6]/ToolsHeadingRule[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 75.254, + "computedY" : 538.635, + "placementX" : 75.254, + "placementY" : 538.635, + "placementWidth" : 490.117, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 490.117, + "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" : "VioletGridCv[0]/ToolsLine[7]", + "entityName" : "ToolsLine", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 512.186, + "placementX" : 29.905, + "placementY" : 512.186, + "placementWidth" : 528.641, + "placementHeight" : 9.732, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 528.641, + "contentHeight" : 9.732, + "margin" : { + "top" : 10.551, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceHeading[8]", + "entityName" : "ExperienceHeading", + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 8, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 477.259, + "placementX" : 29.905, + "placementY" : 477.259, + "placementWidth" : 535.466, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 14.783, + "margin" : { + "top" : 20.143, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceHeading[8]/ExperienceHeadingText[0]", + "entityName" : "ExperienceHeadingText", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceHeading[8]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 477.259, + "placementX" : 29.905, + "placementY" : 477.259, + "placementWidth" : 63.841, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.841, + "contentHeight" : 14.783, + "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" : "VioletGridCv[0]/ExperienceHeading[8]/ExperienceHeadingText[0]/ExperienceHeadingLabel[0]", + "entityName" : "ExperienceHeadingLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceHeading[8]/ExperienceHeadingText[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 477.259, + "placementX" : 29.905, + "placementY" : 477.259, + "placementWidth" : 63.841, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.841, + "contentHeight" : 14.783, + "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" : "VioletGridCv[0]/ExperienceHeading[8]/ExperienceHeadingRule[1]", + "entityName" : "ExperienceHeadingRule", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceHeading[8]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 93.746, + "computedY" : 483.425, + "placementX" : 93.746, + "placementY" : 483.425, + "placementWidth" : 471.625, + "placementHeight" : 8.617, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 471.625, + "contentHeight" : 8.617, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 7.617, + "right" : 0.0, + "bottom" : 0.0, + "left" : 11.285 + } + }, { + "path" : "VioletGridCv[0]/ExperienceHeading[8]/ExperienceHeadingRule[1]/ExperienceHeadingRuleLine[0]", + "entityName" : "ExperienceHeadingRuleLine", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/ExperienceHeading[8]/ExperienceHeadingRule[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 105.031, + "computedY" : 483.425, + "placementX" : 105.031, + "placementY" : 483.425, + "placementWidth" : 460.34, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 460.34, + "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" : "VioletGridCv[0]/ExperienceEntries[9]", + "entityName" : "ExperienceEntries", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 9, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 262.073, + "placementX" : 29.905, + "placementY" : 262.073, + "placementWidth" : 535.456, + "placementHeight" : 204.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.456, + "contentHeight" : 204.296, + "margin" : { + "top" : 10.89, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 75.891 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]", + "entityName" : "ExperienceEntry_0", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 105.796, + "computedY" : 382.189, + "placementX" : 105.796, + "placementY" : 382.189, + "placementWidth" : 459.566, + "placementHeight" : 84.18, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 459.566, + "contentHeight" : 84.18, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 13.542, + "left" : 20.031 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]", + "entityName" : "EntryTitle_0", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 125.826, + "computedY" : 455.065, + "placementX" : 125.826, + "placementY" : 455.065, + "placementWidth" : 439.535, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]/TitleTable_0[0]", + "entityName" : "TitleTable_0", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 125.826, + "computedY" : 455.065, + "placementX" : 125.826, + "placementY" : 455.065, + "placementWidth" : 439.535, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]/Period_0[1]", + "entityName" : "Period_0", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 29.905, + "computedY" : 455.515, + "placementX" : 29.905, + "placementY" : 455.515, + "placementWidth" : 57.005, + "placementHeight" : 10.404, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.005, + "contentHeight" : 10.404, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]/Marker_0[2]", + "entityName" : "Marker_0", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 101.987, + "computedY" : 456.908, + "placementX" : 101.987, + "placementY" : 456.908, + "placementWidth" : 7.617, + "placementHeight" : 7.617, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 7.617, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/Highlights_0[1]", + "entityName" : "Highlights_0", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 125.826, + "computedY" : 395.731, + "placementX" : 125.826, + "placementY" : 395.731, + "placementWidth" : 439.535, + "placementHeight" : 55.892, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 55.892, + "margin" : { + "top" : 3.442, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]", + "entityName" : "ExperienceEntry_1", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 105.796, + "computedY" : 309.577, + "placementX" : 105.796, + "placementY" : 309.577, + "placementWidth" : 459.566, + "placementHeight" : 72.613, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 459.566, + "contentHeight" : 72.613, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 13.542, + "left" : 20.031 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]", + "entityName" : "EntryTitle_1", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 125.826, + "computedY" : 370.885, + "placementX" : 125.826, + "placementY" : 370.885, + "placementWidth" : 439.535, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]/TitleTable_1[0]", + "entityName" : "TitleTable_1", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 125.826, + "computedY" : 370.885, + "placementX" : 125.826, + "placementY" : 370.885, + "placementWidth" : 439.535, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]/Period_1[1]", + "entityName" : "Period_1", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 29.905, + "computedY" : 371.335, + "placementX" : 29.905, + "placementY" : 371.335, + "placementWidth" : 47.893, + "placementHeight" : 10.404, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.893, + "contentHeight" : 10.404, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]/Marker_1[2]", + "entityName" : "Marker_1", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 101.987, + "computedY" : 372.729, + "placementX" : 101.987, + "placementY" : 372.729, + "placementWidth" : 7.617, + "placementHeight" : 7.617, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 7.617, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/Highlights_1[1]", + "entityName" : "Highlights_1", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 125.826, + "computedY" : 323.119, + "placementX" : 125.826, + "placementY" : 323.119, + "placementWidth" : 439.535, + "placementHeight" : 44.325, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 44.325, + "margin" : { + "top" : 3.442, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]", + "entityName" : "ExperienceEntry_2", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 105.796, + "computedY" : 262.073, + "placementX" : 105.796, + "placementY" : 262.073, + "placementWidth" : 459.566, + "placementHeight" : 47.504, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 459.566, + "contentHeight" : 47.504, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 20.031 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]", + "entityName" : "EntryTitle_2", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 125.826, + "computedY" : 298.273, + "placementX" : 125.826, + "placementY" : 298.273, + "placementWidth" : 439.535, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]/TitleTable_2[0]", + "entityName" : "TitleTable_2", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 125.826, + "computedY" : 298.273, + "placementX" : 125.826, + "placementY" : 298.273, + "placementWidth" : 439.535, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]/Period_2[1]", + "entityName" : "Period_2", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 29.905, + "computedY" : 298.723, + "placementX" : 29.905, + "placementY" : 298.723, + "placementWidth" : 47.893, + "placementHeight" : 10.404, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.893, + "contentHeight" : 10.404, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]/Marker_2[2]", + "entityName" : "Marker_2", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 101.987, + "computedY" : 300.116, + "placementX" : 101.987, + "placementY" : 300.116, + "placementWidth" : 7.617, + "placementHeight" : 7.617, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 7.617, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/Highlights_2[1]", + "entityName" : "Highlights_2", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 125.826, + "computedY" : 262.073, + "placementX" : 125.826, + "placementY" : 262.073, + "placementWidth" : 439.535, + "placementHeight" : 32.758, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 32.758, + "margin" : { + "top" : 3.442, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ProjectsHeading[10]", + "entityName" : "ProjectsHeading", + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 10, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 231.717, + "placementX" : 29.905, + "placementY" : 231.717, + "placementWidth" : 535.466, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 14.783, + "margin" : { + "top" : 15.573, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ProjectsHeading[10]/ProjectsHeadingText[0]", + "entityName" : "ProjectsHeadingText", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ProjectsHeading[10]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 231.717, + "placementX" : 29.905, + "placementY" : 231.717, + "placementWidth" : 105.864, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.864, + "contentHeight" : 14.783, + "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" : "VioletGridCv[0]/ProjectsHeading[10]/ProjectsHeadingText[0]/ProjectsHeadingLabel[0]", + "entityName" : "ProjectsHeadingLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ProjectsHeading[10]/ProjectsHeadingText[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 231.717, + "placementX" : 29.905, + "placementY" : 231.717, + "placementWidth" : 105.864, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.864, + "contentHeight" : 14.783, + "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" : "VioletGridCv[0]/ProjectsHeading[10]/ProjectsHeadingRule[1]", + "entityName" : "ProjectsHeadingRule", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ProjectsHeading[10]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 135.769, + "computedY" : 237.883, + "placementX" : 135.769, + "placementY" : 237.883, + "placementWidth" : 429.602, + "placementHeight" : 8.617, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 429.602, + "contentHeight" : 8.617, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 7.617, + "right" : 0.0, + "bottom" : 0.0, + "left" : 11.285 + } + }, { + "path" : "VioletGridCv[0]/ProjectsHeading[10]/ProjectsHeadingRule[1]/ProjectsHeadingRuleLine[0]", + "entityName" : "ProjectsHeadingRuleLine", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/ProjectsHeading[10]/ProjectsHeadingRule[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 147.054, + "computedY" : 237.883, + "placementX" : 147.054, + "placementY" : 237.883, + "placementWidth" : 418.317, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 418.317, + "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" : "VioletGridCv[0]/Project_0[11]", + "entityName" : "Project_0", + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 11, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 177.452, + "placementX" : 29.905, + "placementY" : 177.452, + "placementWidth" : 535.466, + "placementHeight" : 45.745, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 45.745, + "margin" : { + "top" : 8.52, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/Project_0[11]/ProjectThumb_0[0]", + "entityName" : "ProjectThumb_0", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/Project_0[11]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 180.314, + "placementX" : 29.905, + "placementY" : 180.314, + "placementWidth" : 56.989, + "placementHeight" : 42.882, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.989, + "contentHeight" : 42.882, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 11.849 + } + }, { + "path" : "VioletGridCv[0]/Project_0[11]/ProjectThumb_0[0]/ProjectTile_0[0]", + "entityName" : "ProjectTile_0", + "entityKind" : "ShapeContainerNode", + "parentPath" : "VioletGridCv[0]/Project_0[11]/ProjectThumb_0[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 41.754, + "computedY" : 180.314, + "placementX" : 41.754, + "placementY" : 180.314, + "placementWidth" : 45.139, + "placementHeight" : 42.882, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.139, + "contentHeight" : 42.882, + "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" : "VioletGridCv[0]/Project_0[11]/ProjectThumb_0[0]/ProjectTile_0[0]/ProjectGlyph_0[0]", + "entityName" : "ProjectGlyph_0", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/Project_0[11]/ProjectThumb_0[0]/ProjectTile_0[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 50.324, + "computedY" : 187.755, + "placementX" : 50.324, + "placementY" : 187.755, + "placementWidth" : 28.0, + "placementHeight" : 28.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.0, + "contentHeight" : 28.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" : "VioletGridCv[0]/Project_0[11]/ProjectThumb_0[0]/ProjectTile_0[0]/ProjectGlyph_0[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/Project_0[11]/ProjectThumb_0[0]/ProjectTile_0[0]/ProjectGlyph_0[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 50.324, + "computedY" : 187.755, + "placementX" : 50.324, + "placementY" : 187.755, + "placementWidth" : 28.0, + "placementHeight" : 28.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.0, + "contentHeight" : 28.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" : "VioletGridCv[0]/Project_0[11]/ProjectThumb_0[0]/ProjectTile_0[0]/ProjectGlyph_0[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "VioletGridCv[0]/Project_0[11]/ProjectThumb_0[0]/ProjectTile_0[0]/ProjectGlyph_0[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 50.324, + "computedY" : 187.755, + "placementX" : 50.324, + "placementY" : 187.755, + "placementWidth" : 28.0, + "placementHeight" : 28.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.0, + "contentHeight" : 28.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" : "VioletGridCv[0]/Project_0[11]/ProjectCopy_0[1]", + "entityName" : "ProjectCopy_0", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/Project_0[11]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 108.052, + "computedY" : 177.452, + "placementX" : 108.052, + "placementY" : 177.452, + "placementWidth" : 457.309, + "placementHeight" : 45.745, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 457.309, + "contentHeight" : 45.745, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 19.466 + } + }, { + "path" : "VioletGridCv[0]/Project_0[11]/ProjectCopy_0[1]/ProjectTitle_0[0]", + "entityName" : "ProjectTitle_0", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/Project_0[11]/ProjectCopy_0[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 127.519, + "computedY" : 211.652, + "placementX" : 127.519, + "placementY" : 211.652, + "placementWidth" : 437.842, + "placementHeight" : 11.544, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 437.842, + "contentHeight" : 11.544, + "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" : "VioletGridCv[0]/Project_0[11]/ProjectCopy_0[1]/ProjectBody_0[1]", + "entityName" : "ProjectBody_0", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/Project_0[11]/ProjectCopy_0[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 127.519, + "computedY" : 177.452, + "placementX" : 127.519, + "placementY" : 177.452, + "placementWidth" : 424.042, + "placementHeight" : 32.169, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 424.042, + "contentHeight" : 32.169, + "margin" : { + "top" : 2.031, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/Project_1[12]", + "entityName" : "Project_1", + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 12, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 124.751, + "placementX" : 29.905, + "placementY" : 124.751, + "placementWidth" : 535.466, + "placementHeight" : 42.882, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 42.882, + "margin" : { + "top" : 9.818, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/Project_1[12]/ProjectThumb_1[0]", + "entityName" : "ProjectThumb_1", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/Project_1[12]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 124.751, + "placementX" : 29.905, + "placementY" : 124.751, + "placementWidth" : 56.989, + "placementHeight" : 42.882, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.989, + "contentHeight" : 42.882, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 11.849 + } + }, { + "path" : "VioletGridCv[0]/Project_1[12]/ProjectThumb_1[0]/ProjectTile_1[0]", + "entityName" : "ProjectTile_1", + "entityKind" : "ShapeContainerNode", + "parentPath" : "VioletGridCv[0]/Project_1[12]/ProjectThumb_1[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 41.754, + "computedY" : 124.751, + "placementX" : 41.754, + "placementY" : 124.751, + "placementWidth" : 45.139, + "placementHeight" : 42.882, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.139, + "contentHeight" : 42.882, + "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" : "VioletGridCv[0]/Project_1[12]/ProjectThumb_1[0]/ProjectTile_1[0]/ProjectGlyph_1[0]", + "entityName" : "ProjectGlyph_1", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/Project_1[12]/ProjectThumb_1[0]/ProjectTile_1[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 50.324, + "computedY" : 132.193, + "placementX" : 50.324, + "placementY" : 132.193, + "placementWidth" : 28.0, + "placementHeight" : 28.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.0, + "contentHeight" : 28.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" : "VioletGridCv[0]/Project_1[12]/ProjectThumb_1[0]/ProjectTile_1[0]/ProjectGlyph_1[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/Project_1[12]/ProjectThumb_1[0]/ProjectTile_1[0]/ProjectGlyph_1[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 50.324, + "computedY" : 132.193, + "placementX" : 50.324, + "placementY" : 132.193, + "placementWidth" : 28.0, + "placementHeight" : 28.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.0, + "contentHeight" : 28.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" : "VioletGridCv[0]/Project_1[12]/ProjectThumb_1[0]/ProjectTile_1[0]/ProjectGlyph_1[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "VioletGridCv[0]/Project_1[12]/ProjectThumb_1[0]/ProjectTile_1[0]/ProjectGlyph_1[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 50.324, + "computedY" : 132.193, + "placementX" : 50.324, + "placementY" : 132.193, + "placementWidth" : 28.0, + "placementHeight" : 28.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.0, + "contentHeight" : 28.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" : "VioletGridCv[0]/Project_1[12]/ProjectCopy_1[1]", + "entityName" : "ProjectCopy_1", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/Project_1[12]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 108.052, + "computedY" : 132.892, + "placementX" : 108.052, + "placementY" : 132.892, + "placementWidth" : 457.309, + "placementHeight" : 34.742, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 457.309, + "contentHeight" : 34.742, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 19.466 + } + }, { + "path" : "VioletGridCv[0]/Project_1[12]/ProjectCopy_1[1]/ProjectTitle_1[0]", + "entityName" : "ProjectTitle_1", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/Project_1[12]/ProjectCopy_1[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 127.519, + "computedY" : 156.09, + "placementX" : 127.519, + "placementY" : 156.09, + "placementWidth" : 437.842, + "placementHeight" : 11.544, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 437.842, + "contentHeight" : 11.544, + "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" : "VioletGridCv[0]/Project_1[12]/ProjectCopy_1[1]/ProjectBody_1[1]", + "entityName" : "ProjectBody_1", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/Project_1[12]/ProjectCopy_1[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 127.519, + "computedY" : 132.892, + "placementX" : 127.519, + "placementY" : 132.892, + "placementWidth" : 424.178, + "placementHeight" : 21.167, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 424.178, + "contentHeight" : 21.167, + "margin" : { + "top" : 2.031, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/CredentialHeadings[13]", + "entityName" : "CredentialHeadings", + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 13, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 101.109, + "placementX" : 29.905, + "placementY" : 101.109, + "placementWidth" : 535.466, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 14.783, + "margin" : { + "top" : 8.859, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/CredentialHeadings[13]/EducationHeadingLabel[0]", + "entityName" : "EducationHeadingLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/CredentialHeadings[13]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 101.109, + "placementX" : 29.905, + "placementY" : 101.109, + "placementWidth" : 62.401, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.401, + "contentHeight" : 14.783, + "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" : "VioletGridCv[0]/CredentialHeadings[13]/EducationHeadingRule[1]", + "entityName" : "EducationHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/CredentialHeadings[13]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 103.591, + "computedY" : 107.276, + "placementX" : 103.591, + "placementY" : 107.276, + "placementWidth" : 159.846, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 159.846, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.617, + "right" : 0.0, + "bottom" : 0.0, + "left" : 11.285 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/CredentialHeadings[13]/SpacerNode[2]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "VioletGridCv[0]/CredentialHeadings[13]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 274.722, + "computedY" : 115.893, + "placementX" : 274.722, + "placementY" : 115.893, + "placementWidth" : 39.497, + "placementHeight" : 0.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 39.497, + "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" : "VioletGridCv[0]/CredentialHeadings[13]/LanguagesHeadingLabel[3]", + "entityName" : "LanguagesHeadingLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/CredentialHeadings[13]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 314.219, + "computedY" : 101.109, + "placementX" : 314.219, + "placementY" : 101.109, + "placementWidth" : 63.291, + "placementHeight" : 14.783, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.291, + "contentHeight" : 14.783, + "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" : "VioletGridCv[0]/CredentialHeadings[13]/LanguagesHeadingRule[4]", + "entityName" : "LanguagesHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "VioletGridCv[0]/CredentialHeadings[13]", + "childIndex" : 4, + "depth" : 3, + "layer" : 3, + "computedX" : 388.794, + "computedY" : 107.276, + "placementX" : 388.794, + "placementY" : 107.276, + "placementWidth" : 165.292, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 165.292, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.617, + "right" : 0.0, + "bottom" : 0.0, + "left" : 11.285 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/CredentialBodies[14]", + "entityName" : "CredentialBodies", + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 14, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 50.973, + "placementX" : 29.905, + "placementY" : 50.973, + "placementWidth" : 535.466, + "placementHeight" : 42.519, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 42.519, + "margin" : { + "top" : 7.617, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]", + "entityName" : "Education", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 52.849, + "placementX" : 29.905, + "placementY" : 52.849, + "placementWidth" : 242.614, + "placementHeight" : 40.643, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 242.614, + "contentHeight" : 40.643, + "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" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]", + "entityName" : "EducationBody", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 52.849, + "placementX" : 29.905, + "placementY" : 52.849, + "placementWidth" : 242.614, + "placementHeight" : 40.643, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 242.614, + "contentHeight" : 40.643, + "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" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]/EducationLines[0]", + "entityName" : "EducationLines", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 81.251, + "computedY" : 52.849, + "placementX" : 81.251, + "placementY" : 52.849, + "placementWidth" : 191.268, + "placementHeight" : 38.33, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 191.268, + "contentHeight" : 38.33, + "margin" : { + "top" : 2.313, + "right" : 0.0, + "bottom" : 0.0, + "left" : 51.346 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]/EducationBadge[1]", + "entityName" : "EducationBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 29.905, + "computedY" : 52.867, + "placementX" : 29.905, + "placementY" : 52.867, + "placementWidth" : 40.625, + "placementHeight" : 40.625, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.625, + "contentHeight" : 40.625, + "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" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]/EducationBadge[1]/EducationGlyph[0]", + "entityName" : "EducationGlyph", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]/EducationBadge[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 37.218, + "computedY" : 60.179, + "placementX" : 37.218, + "placementY" : 60.179, + "placementWidth" : 26.0, + "placementHeight" : 26.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.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" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]/EducationBadge[1]/EducationGlyph[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]/EducationBadge[1]/EducationGlyph[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 37.218, + "computedY" : 60.179, + "placementX" : 37.218, + "placementY" : 60.179, + "placementWidth" : 26.0, + "placementHeight" : 26.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.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" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]/EducationBadge[1]/EducationGlyph[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]/Education[0]/EducationBody[0]/EducationBadge[1]/EducationGlyph[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 37.218, + "computedY" : 60.179, + "placementX" : 37.218, + "placementY" : 60.179, + "placementWidth" : 26.0, + "placementHeight" : 26.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.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" : "VioletGridCv[0]/CredentialBodies[14]/CredentialGutter[1]", + "entityName" : "CredentialGutter", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 272.529, + "computedY" : 92.492, + "placementX" : 272.529, + "placementY" : 92.492, + "placementWidth" : 39.497, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 39.497, + "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" : "VioletGridCv[0]/CredentialBodies[14]/CredentialGutter[1]/SpacerNode[0]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]/CredentialGutter[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 272.529, + "computedY" : 92.492, + "placementX" : 272.529, + "placementY" : 92.492, + "placementWidth" : 39.497, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 39.497, + "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" : "VioletGridCv[0]/CredentialBodies[14]/Languages[2]", + "entityName" : "Languages", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 312.026, + "computedY" : 50.973, + "placementX" : 312.026, + "placementY" : 50.973, + "placementWidth" : 253.325, + "placementHeight" : 42.519, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 253.325, + "contentHeight" : 42.519, + "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" : "VioletGridCv[0]/CredentialBodies[14]/Languages[2]/LanguageTable[0]", + "entityName" : "LanguageTable", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/CredentialBodies[14]/Languages[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 312.026, + "computedY" : 50.973, + "placementX" : 312.026, + "placementY" : 50.973, + "placementWidth" : 253.325, + "placementHeight" : 41.221, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 253.325, + "contentHeight" : 41.221, + "margin" : { + "top" : 1.298, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/QuoteBand[15]", + "entityName" : "QuoteBand", + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]", + "childIndex" : 15, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 10.348, + "placementX" : 29.905, + "placementY" : 10.348, + "placementWidth" : 414.689, + "placementHeight" : 27.084, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 414.689, + "contentHeight" : 27.084, + "margin" : { + "top" : 13.542, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 6.492, + "right" : 22.57, + "bottom" : 6.492, + "left" : 22.57 + } + }, { + "path" : "VioletGridCv[0]/QuoteBand[15]/QuoteLine[0]", + "entityName" : "QuoteLine", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/QuoteBand[15]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 52.475, + "computedY" : 16.839, + "placementX" : 52.475, + "placementY" : 16.839, + "placementWidth" : 369.55, + "placementHeight" : 14.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 369.55, + "contentHeight" : 14.1, + "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/cv-v2-layered/violet_grid-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/violet_grid-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..baa9ae30bfd47633d7689c2f47c75fc99cd8113d GIT binary patch literal 139076 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
    + * + *

    Unlike a sidebar CV this page has no page-level grid. The masthead splits + * where the contact marks begin, the timeline into dates / rail / content, a + * project into tile / copy, and the credentials into two halves — and none of + * those four splits knows about any of the others. That is why every + * horizontal arrangement here is either a top-level row or a table, and why + * none of them nests: a row cannot sit inside a row's cell.

    + * + *

    Three marks that are relationships, not lengths

    + * + *

    A section rule starts where its heading ends, so it is a weighted column + * taking what an auto column leaves. The timeline rail is the left border of + * every entry but the last, so consecutive entries butt into one unbroken line + * whose length follows from how many entries there are. A project's hairline + * is the left border of its copy, so it is exactly as tall as the copy. None + * of the three is a measured height, and none has to be re-measured when the + * content changes.

    + * + *

    One page, and what happens past it

    + * + *

    The page is a stack of bands, so a CV with more content than the design + * holds runs onto a second page rather than losing anything — each experience + * entry is held together, so a role is never cut in half, but the sheet is + * drawn for one page and a longer one will look like a one-page design that + * ran over. {@link TimelineMinimal} is the preset in this package built to + * paginate.

    + * + *

    How a document reaches its berth

    + * + *

    The bands are fixed, so the preset assigns each section a berth by title + * rather than reading {@link + * com.demcha.compose.document.templates.cv.data.Slot}. It has seven:

    + * + *
      + *
    • the summary, a {@link ParagraphSection} of one line per line — set as + * written rather than wrapped, because the design's own breaks leave + * room no greedy wrap would;
    • + *
    • skills, an {@link EntriesSection} whose entries carry a mark, a label + * and a description — the six-up grid;
    • + *
    • tools, a {@link SkillsSection} of unlevelled names — the strip;
    • + *
    • experience and projects, {@link EntriesSection}s;
    • + *
    • education, an {@link EntriesSection} whose first entry is drawn, and + * languages, a {@link SkillsSection} — the closing band;
    • + *
    • the quotation, a {@link ParagraphSection} whose body is the line in + * the tinted band. Only its body is drawn: the title is how the document + * names the berth.
    • + *
    + * + *

    A section whose title matches no berth is not drawn, and a berth with no + * section takes its heading and rule with it.

    + * + *

    The marks, the ratings and the links

    + * + *

    A skill, a project and the degree each take the mark its entry names in + * {@code CvEntry.icon()}, from this preset's own vocabulary, and an unknown + * token is reported as a data error naming the set. An entry with no token is + * drawn without a mark.

    + * + *

    A language draws both channels of its skill: the discs from + * {@code CvSkill.level()} and the words beside them from + * {@code CvSkill.note()}.

    + * + *

    The email, the phone and each link are reachable from the PDF, with the + * {@code mailto:} and {@code tel:} targets built from the values. A link is + * drawn as its own label with the address behind it, so the contact column's + * width does not depend on how long an address happens to be, and it takes the + * mark of the network it points at or the globe. A role, a project title and + * the degree become links when their entry carries {@code CvEntry.link()}.

    + * + *

    Fonts

    + * + *

    The sheet is set in Lato, with Asap Condensed for the name, the headings + * and the skill labels. The templates artifact carries neither — register them + * on the session, or the engine substitutes and the measured geometry here no + * longer matches the type sitting in it.

    + * + *

    Usage:

    + *
    {@code
    + * DocumentTemplate template = VioletGrid.create();
    + * template.compose(session, cv);
    + * }
    + * + * @since 2.2.3 + */ +public final class VioletGrid { + + /** Stable identifier of this preset. */ + public static final String ID = "violet-grid"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Violet Grid"; + + private static final List SUMMARY_KEYS = + List.of("summary", "profile", "about"); + private static final List QUOTE_KEYS = + List.of("quote", "motto", "tagline", "closing"); + private static final List SKILL_KEYS = + List.of("skills", "expertise", "competencies"); + private static final List TOOL_KEYS = + List.of("tools", "stack", "software"); + private static final List LANGUAGE_KEYS = + List.of("languages", "language"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "employment", "work history", "career"); + private static final List PROJECT_KEYS = + List.of("projects", "project", "portfolio", "selected work"); + private static final List EDUCATION_KEYS = + List.of("education", "qualifications"); + + private VioletGrid() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link CvDocument} + */ + 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, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + List sections = doc.sections(); + + // The quotation is claimed before the summary: its own keys are + // narrow, but the summary's are broad enough to take a closing line + // titled loosely. + ParagraphSection quote = berth(sections, ParagraphSection.class, QUOTE_KEYS); + ParagraphSection summary = + berthExcept(sections, ParagraphSection.class, SUMMARY_KEYS, quote); + EntriesSection skills = berth(sections, EntriesSection.class, SKILL_KEYS); + SkillsSection tools = berth(sections, SkillsSection.class, TOOL_KEYS); + SkillsSection languages = + berthExcept(sections, SkillsSection.class, LANGUAGE_KEYS, tools); + EntriesSection experience = berth(sections, EntriesSection.class, EXPERIENCE_KEYS); + EntriesSection projects = + berthExcept(sections, EntriesSection.class, PROJECT_KEYS, skills); + EntriesSection education = berth(sections, EntriesSection.class, EDUCATION_KEYS); + + // Every length on the sheet is a share of the design's own grid, so + // the preset sets the page and its margins rather than following + // what the caller configured. + document.pageSize(PAGE).margin(new DocumentInsets( + PAGE_MARGIN_TOP, PAGE_MARGIN_X, PAGE_MARGIN_BOTTOM, PAGE_MARGIN_X)); + document.pageFlow(page -> { + page.name("VioletGridCv"); + page.spacing(0); + VioletGridMasthead.render(page, doc.identity(), summary); + VioletGridBody.renderSkills(page, skills); + VioletGridBody.renderTools(page, tools); + VioletGridBody.renderExperience(page, experience); + VioletGridClosing.renderProjects(page, projects); + VioletGridClosing.renderCredentials(page, education, languages); + VioletGridClosing.renderQuote(page, quote); + }); + } + + /** + * The first section of the wanted shape whose title names this berth, + * or {@code null} when the document fills no such berth. + */ + private static T berth(List sections, + Class type, + List keys) { + return berthExcept(sections, type, keys, null); + } + + /** The same, skipping a section another berth has already claimed. */ + private static T berthExcept(List sections, + Class type, + List keys, + CvSection taken) { + for (CvSection section : sections) { + if (!type.isInstance(section) || section == taken) { + continue; + } + for (String key : keys) { + if (SectionLookup.titleContains(section.title(), key)) { + return type.cast(section); + } + } + } + return null; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java new file mode 100644 index 000000000..ebe330d8f --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java @@ -0,0 +1,342 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +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.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +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.DocumentTableTextAnchor; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BODY; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BULLET_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BULLET_DOT_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BULLET_PITCH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DATE_OFFSET; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.EMPLOYER_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ENTRY_INDENT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ENTRY_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_TO_ENTRIES; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_TO_SKILLS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_TO_TOOLS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HIGHLIGHT_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ICON_TO_LABEL; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LABEL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LABEL_TO_DESC; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LINE_FACTOR; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LOCATION_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LOCATION_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.MARKER_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.MARKER_OFFSET; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.MUTED; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PERIOD_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PIPE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.RAIL_INDENT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.RAIL_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ROLE_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ROLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SKILLS_TO_TOOLS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SKILL_COLUMN_INSET; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SKILL_DASH_OFF; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SKILL_DASH_ON; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SKILL_DESC_MEASURE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SKILL_DESC_PITCH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SKILL_DESC_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SKILL_DIVIDER_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SKILL_RAIL_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SUMMARY_TO_SKILLS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.TITLE_TO_BULLETS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.TOOLS_TO_EXPERIENCE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.TOOL_DOT_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.TOOL_GAP; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.TOOL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.cellStyle; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.centred; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.gap; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.leading; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.style; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.headingRow; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.lines; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.markerDot; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.text; + +/** + * The middle of the sheet: the six-up skills grid, the tools strip and the + * dated timeline. + */ +final class VioletGridBody { + + private VioletGridBody() { + } + + // -- the skills grid --------------------------------------------------- + + /** + * The skills grid — one row with 2n−1 columns: n equal content columns + * interleaved with n−1 fixed hairline columns. + * + *

    Building the separators as cells of the same row as the content is + * what stops them drifting from the boundaries they mark, and dividing by + * the entry count is what lets a seventh skill be a data change.

    + */ + static void renderSkills(PageFlowBuilder page, EntriesSection skills) { + if (skills == null || skills.entries().isEmpty()) { + return; + } + page.add(headingRow("Skills", skills.title(), SUMMARY_TO_SKILLS)); + List entries = skills.entries(); + int count = entries.size(); + double columnWidth = (CONTENT_WIDTH - (count - 1) * SKILL_DIVIDER_THICKNESS) / count; + double innerWidth = columnWidth - 2.0 * SKILL_COLUMN_INSET; + double descriptionInset = Math.max(0.0, (innerWidth - SKILL_DESC_MEASURE) / 2.0); + page.addRow("SkillGrid", row -> { + row.spacing(0); + row.margin(new DocumentInsets(HEADING_TO_SKILLS, 0, 0, 0)); + DocumentRowColumn[] columns = new DocumentRowColumn[2 * count - 1]; + for (int index = 0; index < count; index++) { + columns[2 * index] = DocumentRowColumn.weight(1.0); + if (index < count - 1) { + columns[2 * index + 1] = DocumentRowColumn.fixed(SKILL_DIVIDER_THICKNESS); + } + } + row.columns(columns); + for (int index = 0; index < count; index++) { + CvEntry entry = entries.get(index); + int position = index; + row.addSection("Skill_" + position, + column -> renderSkillColumn(column, entry, position, descriptionInset)); + if (index < count - 1) { + row.addSection("SkillDivider_" + position, VioletGridBody::renderDivider); + } + } + }); + } + + /** One column: the mark, the label and the description, on its own axis. */ + private static void renderSkillColumn(SectionBuilder column, CvEntry entry, int index, + double descriptionInset) { + column.spacing(0); + column.padding(0f, (float) SKILL_COLUMN_INSET, 0f, (float) SKILL_COLUMN_INSET); + if (!entry.icon().isBlank()) { + column.addSvgIcon(VioletGridIcons.icon(entry.icon()), + VioletGridIcons.size(entry.icon()), HorizontalAlign.CENTER); + } + column.addParagraph(p -> p + .name("SkillLabel_" + index) + .text(entry.title()) + .align(TextAlign.CENTER) + .lineSpacing(0) + .textStyle(style(DISPLAY_FONT, LABEL_SIZE, INK, true)) + .margin((float) ICON_TO_LABEL, 0f, (float) LABEL_TO_DESC, 0f)); + column.addParagraph(p -> p + .name("SkillDescription_" + index) + .text(entry.body()) + .align(TextAlign.CENTER) + .lineSpacing(leading(SKILL_DESC_PITCH, SKILL_DESC_SIZE)) + .textStyle(style(BODY_FONT, SKILL_DESC_SIZE, MUTED, false)) + // The description wraps to a narrower measure than the label + // above it, which is why the inset is on this paragraph and not + // on the column. + .padding(0f, (float) descriptionInset, 0f, (float) descriptionInset)); + } + + /** + * The dotted rule between two columns. + * + *

    A dashed line is the only primitive that produces a dotted rule. An + * accent border would take its height from the column beside it, which is + * what the height constant has to state by hand instead — the trade the + * design's dotted rule costs.

    + */ + private static void renderDivider(SectionBuilder cell) { + cell.spacing(0); + cell.addLine(line -> line + .name("SkillDividerRule") + .vertical(SKILL_RAIL_HEIGHT) + .thickness(SKILL_DIVIDER_THICKNESS) + .color(RULE) + .dashed(SKILL_DASH_ON, SKILL_DASH_OFF)); + } + + // -- the tools strip --------------------------------------------------- + + /** + * The tools — one paragraph of names and inline discs. + * + *

    The discs are inline shape runs rather than a bullet glyph, so they + * cannot fall victim to whatever a fallback font ships, and the line is + * running text rather than a grid — which is what the design's constant gap + * either side of every disc says it is.

    + */ + static void renderTools(PageFlowBuilder page, SkillsSection tools) { + if (tools == null || tools.groups().stream().allMatch(g -> g.entries().isEmpty())) { + return; + } + page.add(headingRow("Tools", tools.title(), SKILLS_TO_TOOLS)); + DocumentTextStyle name = style(BODY_FONT, TOOL_SIZE, BODY, false); + List items = new ArrayList<>(); + for (SkillGroup group : tools.groups()) { + for (CvSkill skill : group.entries()) { + items.add(skill.name()); + } + } + page.addParagraph(p -> { + p.name("ToolsLine"); + p.lineSpacing(0); + p.textStyle(name); + for (int index = 0; index < items.size(); index++) { + if (index > 0) { + p.inlineText(TOOL_GAP, name); + p.dot(TOOL_DOT_DIAMETER, ACCENT); + p.inlineText(TOOL_GAP, name); + } + p.inlineText(items.get(index), name); + } + p.margin((float) HEADING_TO_TOOLS, 0f, 0f, 0f); + }); + } + + // -- the timeline ------------------------------------------------------ + + /** + * The dated timeline. + * + *

    The entries host is indented so its LEFT EDGE lands on the rail. That + * is what lets each entry's left border BE the rail: consecutive entries + * butt together into one unbroken line, and it stops at the last marker + * because the last entry does not carry it.

    + */ + static void renderExperience(PageFlowBuilder page, EntriesSection experience) { + if (experience == null || experience.entries().isEmpty()) { + return; + } + page.add(headingRow("Experience", experience.title(), TOOLS_TO_EXPERIENCE)); + List entries = experience.entries(); + page.addSection("ExperienceEntries", host -> { + host.spacing(0); + host.margin((float) HEADING_TO_ENTRIES, 0f, 0f, 0f); + host.padding(0f, 0f, 0f, (float) RAIL_INDENT); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + boolean last = i == entries.size() - 1; + int index = i; + host.addSection("ExperienceEntry_" + index, body -> { + body.spacing(0); + body.keepTogether(); + if (!last) { + body.accentLeft(RULE, RAIL_THICKNESS); + } + body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, (float) ENTRY_INDENT); + renderEntry(body, entry, index); + }); + } + }); + } + + /** + * One entry: the title line with its dates and marker, then the bullets. + * + *

    The dates and the disc ride the title line's own layer stack at + * negative offsets, so both are placed relative to the line they belong to + * rather than at a measured y. The title itself is a two-column table — a + * row here would be a row inside a row's cell.

    + */ + private static void renderEntry(SectionBuilder body, CvEntry entry, int index) { + body.addLayerStack(stack -> stack + .name("EntryTitle_" + index) + .layer(titleLine(entry, index), LayerAlign.TOP_LEFT, 0) + .position(text("Period_" + index, entry.date(), + style(BODY_FONT, PERIOD_SIZE, ACCENT, false)), + DATE_OFFSET, centred(PERIOD_SIZE * LINE_FACTOR), + LayerAlign.TOP_LEFT, 1) + .position(markerDot("Marker_" + index, MARKER_DIAMETER, + MARKER_DIAMETER / LINE_FACTOR, ACCENT), + MARKER_OFFSET, centred(MARKER_DIAMETER), LayerAlign.TOP_LEFT, 1)); + List highlights = lines(entry.body()); + if (highlights.isEmpty()) { + return; + } + body.addTable(table -> { + table.name("Highlights_" + index); + table.margin(new DocumentInsets(TITLE_TO_BULLETS, 0, 0, 0)); + table.width(ENTRY_WIDTH); + table.columns( + DocumentTableColumn.fixed(BULLET_COLUMN), + DocumentTableColumn.fixed(ENTRY_WIDTH - BULLET_COLUMN)); + table.defaultCellStyle(cellStyle( + new DocumentInsets(0, 0, + gap(BULLET_PITCH, HIGHLIGHT_SIZE * LINE_FACTOR), 0), + DocumentTableTextAnchor.TOP_LEFT)); + for (int i = 0; i < highlights.size(); i++) { + table.rowCells( + DocumentTableCell.node(markerDot("HighlightDot_" + index + "_" + i, + BULLET_DOT_DIAMETER, HIGHLIGHT_SIZE, ACCENT)), + DocumentTableCell.node(text("Highlight_" + index + "_" + i, + highlights.get(i), + style(BODY_FONT, HIGHLIGHT_SIZE, BODY, false)))); + } + // The pitch is a gap BETWEEN bullets; left on the last one it + // becomes a gap the entry below already owns. + table.rowStyle(highlights.size() - 1, + cellStyle(DocumentInsets.zero(), DocumentTableTextAnchor.TOP_LEFT)); + }); + } + + /** The role, the employer and the location, as one line of three runs. */ + private static DocumentNode titleLine(CvEntry entry, int index) { + DocumentTextStyle role = style(BODY_FONT, ROLE_SIZE, INK, true); + DocumentTextStyle employer = style(BODY_FONT, EMPLOYER_SIZE, MUTED, false); + ParagraphBuilder title = new ParagraphBuilder() + .name("Role_" + index) + .lineSpacing(0) + .textStyle(role) + .inlineText(entry.title(), role); + if (!entry.subtitle().isBlank()) { + title.inlineText(PIPE, employer).inlineText(entry.subtitle(), employer); + } + if (!entry.link().isBlank()) { + title.link(new DocumentLinkOptions(entry.link())); + } + return new TableBuilder() + .name("TitleTable_" + index) + .width(ENTRY_WIDTH) + .columns( + DocumentTableColumn.fixed(ROLE_COLUMN), + DocumentTableColumn.fixed(LOCATION_COLUMN)) + .defaultCellStyle(cellStyle(DocumentInsets.zero(), + DocumentTableTextAnchor.TOP_LEFT)) + .rowCells( + DocumentTableCell.node(title.build()), + DocumentTableCell.node(new ParagraphBuilder() + .name("Location_" + index) + .text(entry.place()) + .align(TextAlign.RIGHT) + .lineSpacing(0) + .textStyle(style(BODY_FONT, LOCATION_SIZE, MUTED, false)) + .build())) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridClosing.java new file mode 100644 index 000000000..56dfceb63 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridClosing.java @@ -0,0 +1,466 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +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.DocumentTableTextAnchor; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ACCENT_RULE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BADGE_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BADGE_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BODY; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.CREDENTIALS_TO_QUOTE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.CREDENTIAL_GUTTER; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DEGREE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DEGREE_TO_INSTITUTION; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.EDUCATION_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.EDUCATION_RULE_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.EDUCATION_TEXT_TOP; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.EDU_DETAIL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.EXPERIENCE_TO_PROJECTS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_RULE_OFFSET; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_TO_EDUCATION; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_TO_PROJECTS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_TRACKING; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.INSTITUTION_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.INSTITUTION_TO_DETAIL; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LANGUAGES_BODY_OFFSET; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LANGUAGES_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LANGUAGES_RULE_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LANGUAGE_LEVEL_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LANGUAGE_NAME_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LANGUAGE_PITCH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LANGUAGE_RATING_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LANGUAGE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LEVEL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LINE_FACTOR; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.MUTED; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PIPE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECTS_TO_CREDENTIALS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_BODY_PITCH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_COPY_INDENT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_COPY_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_GAP; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_SUB_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_TITLE_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_YEAR_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PROJECT_YEAR_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.QUOTE_GAP; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.QUOTE_LINE_BOX; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.QUOTE_PAD_H; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.QUOTE_PAD_V; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.QUOTE_RADIUS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.QUOTE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.RATING_DOT_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.RATING_EMPTY; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.RATING_GAP; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.RATING_SCALE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.TABLE_SLACK; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.THUMB_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.THUMB_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.THUMB_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.THUMB_RADIUS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.THUMB_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.TINT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.TITLE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.cellStyle; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.gap; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.leading; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.style; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.headingRow; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.inlineIcon; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.text; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.tracked; + +/** + * What closes the sheet: the projects, the credentials band and the quote. + */ +final class VioletGridClosing { + + private VioletGridClosing() { + } + + // -- the projects ------------------------------------------------------ + + /** One top-level row per project: the tile, then the copy beside it. */ + static void renderProjects(PageFlowBuilder page, EntriesSection projects) { + if (projects == null || projects.entries().isEmpty()) { + return; + } + page.add(headingRow("Projects", projects.title(), EXPERIENCE_TO_PROJECTS)); + List entries = projects.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + int index = i; + double top = i == 0 ? HEADING_TO_PROJECTS : PROJECT_GAP; + page.addRow("Project_" + index, row -> { + row.spacing(0); + row.margin(new DocumentInsets(top, 0, 0, 0)); + row.columns( + DocumentRowColumn.fixed(THUMB_COLUMN), + DocumentRowColumn.weight(1.0)); + row.addSection("ProjectThumb_" + index, + cell -> renderThumb(cell, entry, index)); + row.addSection("ProjectCopy_" + index, + cell -> renderProjectCopy(cell, entry, index)); + }); + } + } + + /** + * The tinted tile and the glyph it owns — a shape container rather than a + * fill with a mark beside it: the tile IS the thumbnail, and centring the + * glyph in the container is what keeps the two together when either size + * changes. + */ + private static void renderThumb(SectionBuilder cell, CvEntry entry, int index) { + cell.spacing(0); + cell.padding(0f, 0f, 0f, (float) THUMB_PAD_LEFT); + if (entry.icon().isBlank()) { + return; + } + SectionBuilder glyph = new SectionBuilder(); + glyph.name("ProjectGlyph_" + index); + glyph.addSvgIcon(VioletGridIcons.icon(entry.icon()), VioletGridIcons.size(entry.icon())); + cell.addContainer(tile -> tile + .name("ProjectTile_" + index) + .roundedRect(THUMB_WIDTH, THUMB_HEIGHT, THUMB_RADIUS) + .fillColor(TINT) + .center(glyph.build())); + } + + /** + * The copy beside a thumbnail. The hairline is this section's own left + * border, so it runs the copy's height — which is what the design shows, + * and what a line with a measured height would get wrong the first time + * the copy ran to three lines. + */ + private static void renderProjectCopy(SectionBuilder cell, CvEntry entry, int index) { + DocumentTextStyle title = style(BODY_FONT, PROJECT_TITLE_SIZE, INK, true); + DocumentTextStyle subtitle = style(BODY_FONT, PROJECT_SUB_SIZE, MUTED, false); + cell.spacing(0); + cell.accentLeft(RULE, PROJECT_RULE_THICKNESS); + cell.padding(0f, 0f, 0f, (float) PROJECT_COPY_INDENT); + ParagraphBuilder name = new ParagraphBuilder() + .name("ProjectName_" + index) + .lineSpacing(0) + .textStyle(title) + .inlineText(entry.title(), title); + if (!entry.subtitle().isBlank()) { + name.inlineText(PIPE, subtitle).inlineText(entry.subtitle(), subtitle); + } + if (!entry.link().isBlank()) { + name.link(new DocumentLinkOptions(entry.link())); + } + cell.addTable(table -> table + .name("ProjectTitle_" + index) + .width(PROJECT_COPY_WIDTH) + .columns( + DocumentTableColumn.fixed(PROJECT_TITLE_COLUMN), + DocumentTableColumn.fixed(PROJECT_YEAR_COLUMN)) + .defaultCellStyle(cellStyle(DocumentInsets.zero(), + DocumentTableTextAnchor.TOP_LEFT)) + .rowCells( + DocumentTableCell.node(name.build()), + DocumentTableCell.node(new ParagraphBuilder() + .name("ProjectYear_" + index) + .text(entry.date()) + .align(TextAlign.RIGHT) + .lineSpacing(0) + .textStyle(style(BODY_FONT, PROJECT_YEAR_SIZE, MUTED, false)) + .build()))); + cell.addParagraph(p -> p + .name("ProjectBody_" + index) + .text(entry.body().replace(String.valueOf((char) 10), " ")) + .lineSpacing(leading(PROJECT_BODY_PITCH, PROJECT_BODY_SIZE)) + .textStyle(style(BODY_FONT, PROJECT_BODY_SIZE, BODY, false)) + .margin((float) TITLE_TO_BODY, 0f, 0f, 0f)); + } + + // -- the credentials band ---------------------------------------------- + + /** + * The credentials band: education and languages side by side. + * + *

    TWO top-level rows rather than one, and that is not a stylistic + * choice. The obvious shape — one row whose two cells each hold a heading + * and a body — cannot be built: a heading is a text and a rule side by + * side, so a cell holding one would need a nested row, which the layout + * compiler refuses. So the band is flattened: one row carries both headings + * and both rules as direct children, and a second carries the two bodies. + * Nothing is nested, and the two rows share the same column arithmetic, so + * the halves cannot drift apart.

    + */ + static void renderCredentials(PageFlowBuilder page, EntriesSection education, + SkillsSection languages) { + boolean hasEducation = education != null && !education.entries().isEmpty(); + boolean hasLanguages = languages != null + && languages.groups().stream().anyMatch(group -> !group.entries().isEmpty()); + if (!hasEducation && !hasLanguages) { + return; + } + renderCredentialHeadings(page, + hasEducation ? education.title() : "", + hasLanguages ? languages.title() : ""); + page.addRow("CredentialBodies", row -> { + row.spacing(0); + row.margin(new DocumentInsets(HEADING_TO_EDUCATION, 0, 0, 0)); + row.columns( + DocumentRowColumn.fixed(EDUCATION_COLUMN), + DocumentRowColumn.fixed(CREDENTIAL_GUTTER), + DocumentRowColumn.weight(1.0)); + row.addSection("Education", cell -> renderEducation(cell, education)); + row.addSection("CredentialGutter", cell -> cell.spacer(CREDENTIAL_GUTTER, 1.0)); + row.addSection("Languages", cell -> renderLanguages(cell, languages)); + }); + } + + /** + * Both headings and both rules, as children of one row. The two text + * columns take what their words need and the two weighted ones split what + * is left in the ratio the design's rules measure, so each rule still + * begins where its own heading ends. + */ + private static void renderCredentialHeadings(PageFlowBuilder page, String educationTitle, + String languagesTitle) { + page.addRow("CredentialHeadings", row -> { + row.spacing(0); + row.margin(new DocumentInsets(PROJECTS_TO_CREDENTIALS, 0, 0, 0)); + row.columns( + DocumentRowColumn.auto(), + DocumentRowColumn.weight(EDUCATION_RULE_WEIGHT), + DocumentRowColumn.fixed(CREDENTIAL_GUTTER), + DocumentRowColumn.auto(), + DocumentRowColumn.weight(LANGUAGES_RULE_WEIGHT)); + row.add(tracked("EducationHeadingLabel", educationTitle, DISPLAY_FONT, + HEADING_SIZE, ACCENT, true, HEADING_TRACKING).build()); + row.addLine(line -> line + .name("EducationHeadingRule") + .fill() + .thickness(HEADING_RULE_THICKNESS) + .color(ACCENT_RULE) + .margin(new DocumentInsets(HEADING_RULE_OFFSET, 0, 0, HEADING_TO_RULE))); + row.addSpacer(CREDENTIAL_GUTTER); + row.add(tracked("LanguagesHeadingLabel", languagesTitle, DISPLAY_FONT, + HEADING_SIZE, ACCENT, true, HEADING_TRACKING).build()); + row.addLine(line -> line + .name("LanguagesHeadingRule") + .fill() + .thickness(HEADING_RULE_THICKNESS) + .color(ACCENT_RULE) + .margin(new DocumentInsets(HEADING_RULE_OFFSET, 0, 0, HEADING_TO_RULE))); + }); + } + + /** + * The badge beside the degree, the institution and the detail line. + * + *

    A layer stack rather than a table: the badge is a shape container and + * the three lines are a stack, and neither survives a table cell here. The + * lines carry a left margin the width of the badge column, so the two + * layers do not overlap and the badge needs no offset.

    + */ + private static void renderEducation(SectionBuilder cell, EntriesSection education) { + cell.spacing(0); + if (education == null || education.entries().isEmpty()) { + return; + } + CvEntry entry = education.entries().get(0); + cell.addLayerStack(stack -> { + stack.name("EducationBody"); + stack.layer(educationLines(entry), LayerAlign.TOP_LEFT, 0); + if (!entry.icon().isBlank()) { + stack.position(badge(entry), 0.0, 0.0, LayerAlign.TOP_LEFT, 1); + } + }); + } + + /** The tinted circle and the glyph it owns. */ + private static DocumentNode badge(CvEntry entry) { + SectionBuilder glyph = new SectionBuilder(); + glyph.name("EducationGlyph"); + glyph.addSvgIcon(VioletGridIcons.icon(entry.icon()), VioletGridIcons.size(entry.icon())); + return new ShapeContainerBuilder() + .name("EducationBadge") + .circle(BADGE_DIAMETER) + .fillColor(TINT) + .center(glyph.build()) + .build(); + } + + /** The degree, the institution and the place-and-years line, as one column. */ + private static DocumentNode educationLines(CvEntry entry) { + DocumentTextStyle place = style(BODY_FONT, EDU_DETAIL_SIZE, MUTED, false); + DocumentTextStyle years = style(BODY_FONT, EDU_DETAIL_SIZE, ACCENT, false); + double width = EDUCATION_COLUMN - BADGE_COLUMN - TABLE_SLACK; + ParagraphBuilder degree = new ParagraphBuilder() + .name("Degree") + .text(entry.title()) + .lineSpacing(0) + .textStyle(style(BODY_FONT, DEGREE_SIZE, INK, true)); + if (!entry.link().isBlank()) { + degree.link(new DocumentLinkOptions(entry.link())); + } + ParagraphBuilder detail = new ParagraphBuilder() + .name("EducationDetail") + .lineSpacing(0) + .textStyle(place) + .inlineText(entry.place(), place); + if (!entry.date().isBlank()) { + detail.inlineText(PIPE, place).inlineText(entry.date(), years); + } + return new TableBuilder() + .name("EducationLines") + .margin(new DocumentInsets(EDUCATION_TEXT_TOP, 0, 0, BADGE_COLUMN)) + .width(width) + .columns(DocumentTableColumn.fixed(width)) + .defaultCellStyle(cellStyle(DocumentInsets.zero(), + DocumentTableTextAnchor.TOP_LEFT)) + .rowCells(DocumentTableCell.node(degree.build()) + .withStyle(cellStyle( + new DocumentInsets(0, 0, DEGREE_TO_INSTITUTION, 0), + DocumentTableTextAnchor.TOP_LEFT))) + .rowCells(DocumentTableCell.node(text("Institution", entry.subtitle(), + style(BODY_FONT, INSTITUTION_SIZE, BODY, false))) + .withStyle(cellStyle( + new DocumentInsets(0, 0, INSTITUTION_TO_DETAIL, 0), + DocumentTableTextAnchor.TOP_LEFT))) + .rowCells(DocumentTableCell.node(detail.build())) + .build(); + } + + /** + * The languages — a name, the level as the document words it, and a + * five-disc rating per row. + * + *

    The rating paragraph is styled although it carries no words: a + * paragraph takes its line box from its type whether or not a glyph uses + * it, and the default box would set the whole row's pitch.

    + */ + private static void renderLanguages(SectionBuilder block, SkillsSection languages) { + block.spacing(0); + if (languages == null) { + return; + } + List entries = new ArrayList<>(); + for (SkillGroup group : languages.groups()) { + entries.addAll(group.entries()); + } + if (entries.isEmpty()) { + return; + } + block.addTable(table -> { + table.name("LanguageTable"); + table.margin(new DocumentInsets(LANGUAGES_BODY_OFFSET, 0, 0, 0)); + table.width(LANGUAGES_COLUMN - TABLE_SLACK); + table.columns( + DocumentTableColumn.fixed(LANGUAGE_NAME_COLUMN), + DocumentTableColumn.fixed(LANGUAGE_LEVEL_COLUMN), + DocumentTableColumn.fixed(LANGUAGE_RATING_COLUMN - TABLE_SLACK)); + table.defaultCellStyle(cellStyle( + new DocumentInsets(0, 0, + gap(LANGUAGE_PITCH, LANGUAGE_SIZE * LINE_FACTOR), 0), + DocumentTableTextAnchor.CENTER_LEFT)); + for (int index = 0; index < entries.size(); index++) { + CvSkill skill = entries.get(index); + table.rowCells( + DocumentTableCell.node(text("LanguageName_" + index, skill.name(), + style(BODY_FONT, LANGUAGE_SIZE, BODY, false))), + DocumentTableCell.node(text("LanguageLevel_" + index, skill.note(), + style(BODY_FONT, LEVEL_SIZE, MUTED, false))), + DocumentTableCell.node(rating("LanguageRating_" + index, skill))); + } + table.rowStyle(entries.size() - 1, + cellStyle(DocumentInsets.zero(), DocumentTableTextAnchor.CENTER_LEFT)); + }); + } + + /** One language's discs, filled up to its rating and grey after it. */ + private static DocumentNode rating(String name, CvSkill skill) { + DocumentTextStyle box = style(BODY_FONT, LANGUAGE_SIZE, BODY, false); + ParagraphBuilder paragraph = new ParagraphBuilder(); + paragraph.name(name); + paragraph.lineSpacing(0); + paragraph.textStyle(box); + if (skill.level().isEmpty()) { + return paragraph.build(); + } + int filled = (int) Math.round(skill.level().getAsDouble() * RATING_SCALE); + for (int index = 0; index < RATING_SCALE; index++) { + paragraph.dot(RATING_DOT_DIAMETER, index < filled ? ACCENT : RATING_EMPTY); + if (index < RATING_SCALE - 1) { + paragraph.inlineText(RATING_GAP, box); + } + } + return paragraph.build(); + } + + // -- the closing band -------------------------------------------------- + + /** + * The closing band. + * + *

    A fill with a corner radius and its own padding rather than a soft + * panel, whose padding is a single uniform value: this band's side padding + * is several times its vertical padding.

    + * + *

    The quotation mark is a packaged glyph rather than a typographic one. + * At the size the design draws it a real quotation mark would need about + * forty points of type, and its line box alone would be nearly twice the + * band's height.

    + */ + static void renderQuote(PageFlowBuilder page, ParagraphSection quote) { + if (quote == null || quote.body().isBlank()) { + return; + } + DocumentTextStyle line = style(BODY_FONT, QUOTE_SIZE, BODY, false); + DocumentTextStyle box = style(BODY_FONT, QUOTE_LINE_BOX / LINE_FACTOR, BODY, false); + page.addSection("QuoteBand", band -> { + band.spacing(0); + band.margin((float) CREDENTIALS_TO_QUOTE, 0f, 0f, 0f); + band.fillColor(TINT); + band.cornerRadius(QUOTE_RADIUS); + band.padding((float) QUOTE_PAD_V, (float) QUOTE_PAD_H, + (float) QUOTE_PAD_V, (float) QUOTE_PAD_H); + band.addParagraph(p -> { + p.name("QuoteLine"); + p.lineSpacing(0); + p.textStyle(box); + inlineIcon(p, VioletGridIcons.QUOTE); + p.inlineText(QUOTE_GAP, line); + p.inlineText(quote.body().replace(String.valueOf((char) 10), " "), line); + }); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridIcons.java new file mode 100644 index 000000000..823b328c9 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridIcons.java @@ -0,0 +1,112 @@ +package com.demcha.compose.document.templates.cv.presets; + +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.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Violet Grid CV marks: the five contact glyphs, the + * six skill marks, the two project glyphs, the graduation cap and the + * quotation mark that opens the closing band. + * + *

    They ship inside the templates artifact under + * {@code templates/cv/violet-grid/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 sheet that repeats a mark reads each file once per JVM.

    + * + *

    {@link #ENTRY_TOKENS} is the vocabulary a document names through + * {@code CvEntry.icon()}. It is scoped to this preset — another preset + * packages its own set — and each mark carries the width it is drawn at, + * because an icon's box is not its glyph and the sizes are per-kind.

    + */ +final class VioletGridIcons { + + static final String EMAIL = "email"; + static final String PHONE = "phone"; + static final String LOCATION = "location"; + static final String WEBSITE = "website"; + static final String LINKEDIN = "linkedin"; + static final String GRADUATION = "graduation"; + static final String QUOTE = "quote"; + + private static final String ICON_ROOT = "/templates/cv/violet-grid/icons/"; + + /** The width each mark is drawn at, as the asset resolver chose it. */ + private static final Map SIZES = Map.ofEntries( + Map.entry(EMAIL, 11.5), + Map.entry(PHONE, 11.5), + Map.entry(LOCATION, 11.5), + Map.entry(WEBSITE, 11.5), + Map.entry(LINKEDIN, 11.5), + Map.entry("ux-research", 20.5), + Map.entry("information-architecture", 20.5), + Map.entry("wireframing", 20.5), + Map.entry("prototyping", 20.5), + Map.entry("usability-testing", 20.5), + Map.entry("design-systems", 20.5), + Map.entry("project-wallet", 28.0), + Map.entry("project-health", 28.0), + Map.entry(GRADUATION, 26.0), + Map.entry(QUOTE, 14.1)); + + /** The marks a document may name on a skill, a project or a degree. */ + static final Set ENTRY_TOKENS = Set.of( + "ux-research", "information-architecture", "wireframing", "prototyping", + "usability-testing", "design-systems", "project-wallet", "project-health", + GRADUATION); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private VioletGridIcons() { + } + + /** + * The width one mark is drawn at. + * + * @param token one of the packaged tokens + * @return the drawn width in points + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error + */ + static double size(String token) { + Double size = SIZES.get(token); + if (size == null) { + throw new IllegalArgumentException( + "Unknown violet grid CV icon token '" + token + + "'. This preset packages " + ENTRY_TOKENS.stream().sorted().toList() + + " for an entry mark."); + } + return size; + } + + /** + * Reads one mark. + * + * @param token one of the packaged tokens + * @return the parsed icon + */ + static SvgIcon icon(String token) { + size(token); + return CACHE.computeIfAbsent(token, VioletGridIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = VioletGridIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing violet grid CV icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read violet grid CV icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridMasthead.java new file mode 100644 index 000000000..7ae5ce376 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridMasthead.java @@ -0,0 +1,214 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ACCENT_LIGHT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BODY; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.CONTACT_COLUMN_X; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.CONTACT_ICON_GAP; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.CONTACT_PITCH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.CONTACT_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.CONTACT_TOP; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DISCIPLINE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DISCIPLINE_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DISCIPLINE_TRACKING; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADER_TO_SUMMARY; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.IDENTITY_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.IDENTITY_RULE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LINE_FACTOR; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.NAME_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SUMMARY_PITCH; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SUMMARY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.gap; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.style; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.inlineIcon; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.lines; +import static com.demcha.compose.document.templates.cv.presets.VioletGridWidgets.tracked; + +/** + * The top of the sheet: the two-tone name beside the contact column, and the + * opening lines under them. + */ +final class VioletGridMasthead { + + private VioletGridMasthead() { + } + + /** One line of the contact column: a mark, a value and where it points. */ + private record Channel(String token, String value, String href) { + } + + /** + * The masthead, as a top-level row split where the contact marks begin — + * the column is left-aligned on its marks rather than right-aligned to the + * margin, so that x is the split. + */ + static void render(PageFlowBuilder page, CvIdentity identity, ParagraphSection summary) { + page.addRow("Header", row -> { + row.spacing(0); + row.columns( + DocumentRowColumn.fixed(CONTACT_COLUMN_X), + DocumentRowColumn.weight(1.0)); + row.addSection("Identity", block -> renderIdentity(block, identity)); + row.addSection("Contact", block -> renderContact(block, identity)); + }); + renderSummary(page, summary); + } + + // -- the name ---------------------------------------------------------- + + /** + * The name, the discipline line and the accent rule under it. + * + *

    Both names are inline runs of ONE paragraph, so the gap between them + * is a real word space that follows the type size rather than a measured + * offset that would not.

    + */ + private static void renderIdentity(SectionBuilder block, CvIdentity identity) { + block.spacing(0); + DocumentTextStyle given = style(DISPLAY_FONT, NAME_SIZE, INK, false); + DocumentTextStyle family = style(DISPLAY_FONT, NAME_SIZE, ACCENT_LIGHT, false); + block.addParagraph(p -> p + .name("Name") + .lineSpacing(0) + .textStyle(given) + .inlineText(identity.name().first().toUpperCase(Locale.ROOT), given) + .inlineText(" ", given) + .inlineText(identity.name().last().toUpperCase(Locale.ROOT), family)); + block.add(tracked("Discipline", identity.jobTitle().toUpperCase(Locale.ROOT), + DISPLAY_FONT, DISCIPLINE_SIZE, ACCENT, true, DISCIPLINE_TRACKING) + .margin(0f, 0f, (float) DISCIPLINE_TO_RULE, 0f) + .build()); + block.addLine(line -> line + .name("IdentityRule") + .horizontal(IDENTITY_RULE_WIDTH) + .thickness(IDENTITY_RULE_THICKNESS) + .color(ACCENT)); + } + + // -- the contact column ------------------------------------------------ + + /** + * The contact lines. + * + *

    Each is one paragraph rather than a two-column table: the mark is an + * inline run measured into the line box, so it shares a baseline with its + * value by construction, and nothing in this column has to line up with + * anything outside it. Where the value points somewhere the run becomes an + * inline link, so the target reaches the PDF as a real annotation.

    + * + *

    A link shows its own label and carries the address behind it, so the + * column's width does not depend on how long an address happens to be.

    + */ + private static void renderContact(SectionBuilder block, CvIdentity identity) { + block.spacing(0); + block.padding((float) CONTACT_TOP, 0f, 0f, 0f); + DocumentTextStyle value = style(BODY_FONT, CONTACT_SIZE, BODY, false); + // The line box comes from the paragraph's own style, and an inline run + // taller than it is drawn clipped: take whichever of the mark and the + // text needs more room. + double boxSize = Math.max(CONTACT_SIZE, + VioletGridIcons.size(VioletGridIcons.EMAIL) / LINE_FACTOR); + DocumentTextStyle box = style(BODY_FONT, boxSize, BODY, false); + List channels = channels(identity); + for (int i = 0; i < channels.size(); i++) { + Channel channel = channels.get(i); + boolean last = i == channels.size() - 1; + int index = i; + block.addParagraph(p -> { + p.name("Contact_" + index + "_" + channel.token()); + p.lineSpacing(0); + p.textStyle(box); + inlineIcon(p, channel.token()); + p.inlineText(CONTACT_ICON_GAP, value); + if (channel.href() == null || channel.href().isBlank()) { + p.inlineText(channel.value(), value); + } else { + p.inlineText(channel.value(), value, new DocumentLinkOptions(channel.href())); + } + p.margin(0f, 0f, + last ? 0f : (float) gap(CONTACT_PITCH, boxSize * LINE_FACTOR), 0f); + }); + } + } + + /** The column's order: how to write, how to call, where, then the links. */ + private static List channels(CvIdentity identity) { + Contact contact = identity.contact(); + List channels = new ArrayList<>(); + channels.add(new Channel(VioletGridIcons.EMAIL, contact.email(), + "mailto:" + contact.email())); + channels.add(new Channel(VioletGridIcons.PHONE, contact.phone(), + telUri(contact.phone()))); + channels.add(new Channel(VioletGridIcons.LOCATION, contact.address(), null)); + for (Link link : identity.links()) { + channels.add(new Channel(markFor(link), link.label(), link.url())); + } + return channels; + } + + /** A link takes the mark of the network it points at, or the globe. */ + private static String markFor(Link link) { + String target = (link.url() + " " + link.label()).toLowerCase(Locale.ROOT); + return target.contains("linkedin") ? VioletGridIcons.LINKEDIN : VioletGridIcons.WEBSITE; + } + + /** + * The dial target for a phone number: its digits, keeping a leading + * {@code +} so an international number stays international, and dropping a + * parenthesised trunk prefix the way a caller dialling from abroad does. + */ + private static String telUri(String phone) { + String dialled = phone.replaceAll("\\(0+\\)", ""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + // -- the opening lines ------------------------------------------------- + + /** + * The opening block — one paragraph per line the document wrote. + * + *

    Not a wrapped paragraph, and that is a reading of the design rather + * than a convenience: its first line ends with room for the next word + * several times over, so no greedy wrap could produce it. The lines are + * sentences, set as lines, and the document says so.

    + */ + private static void renderSummary(PageFlowBuilder page, ParagraphSection summary) { + if (summary == null || summary.body().isBlank()) { + return; + } + DocumentTextStyle line = style(BODY_FONT, SUMMARY_SIZE, BODY, false); + List body = lines(summary.body()); + for (int i = 0; i < body.size(); i++) { + boolean last = i == body.size() - 1; + int index = i; + page.addParagraph(p -> p + .name("SummaryLine_" + index) + .text(body.get(index)) + .lineSpacing(0) + .textStyle(line) + .margin(index == 0 ? (float) HEADER_TO_SUMMARY : 0f, 0f, + last ? 0f : (float) gap(SUMMARY_PITCH, SUMMARY_SIZE * LINE_FACTOR), + 0f)); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridStyles.java new file mode 100644 index 000000000..81554035e --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridStyles.java @@ -0,0 +1,421 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.document.table.DocumentTableTextAnchor; +import com.demcha.compose.font.FontName; + +/** + * The measured geometry, palette and type scale of the Violet Grid CV. + * + *

    Every length is a measurement, converted once

    + * + *

    The design was drawn on a 1055-pixel-wide raster, so each length here is + * written as {@link #px} of a pixel measured off it. That keeps the source + * auditable — a reader can put a ruler on the drawing and find the number — + * and keeps one conversion factor rather than a page of pre-multiplied + * decimals. Widths that are shares of the page derive from + * {@link #CONTENT_WIDTH}; only genuinely independent marks (a disc's + * diameter, a rule's thickness) are their own constants.

    + * + *

    The type sizes are solved, not estimated

    + * + *

    Each is the drawing's measured ink width for one specific string divided + * by that string's width in ems in the face that sets it. An estimate from an + * average advance came out several per cent small everywhere, which is enough + * to move a line break — and a moved break is the difference a pixel gate can + * see.

    + */ +final class VioletGridStyles { + + private VioletGridStyles() { + } + + // -- the grid ---------------------------------------------------------- + + /** The drawing's raster width against A4's, in points per pixel. */ + static final double PX_TO_PT = 595.276 / 1055.0; + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + + /** + * One measurement off the drawing, in points. + * + * @param pixels the pixel measured on the 1055-wide raster + * @return the same distance on the page + */ + static double px(double pixels) { + return pixels * PX_TO_PT; + } + + /** The engine's line box as a multiple of the type size. */ + static final double LINE_FACTOR = 1.2; + + /** + * A hundredth of a point of slack under every table. The engine compares a + * table's declared width against its container's to the last bit, and a + * sum of derived doubles lands a ten-thousandth of a point over — enough + * to be refused. + */ + static final double TABLE_SLACK = 0.01; + + /** + * No cell borders. A table draws its rules per cell from that cell's own + * style, and the default style has one; every table here is a layout + * mechanism rather than a grid the reader should see, so each states the + * absence explicitly. + */ + static final DocumentStroke NO_BORDER = + DocumentStroke.of(DocumentColor.rgba(0, 0, 0, 0), 0.0); + + // -- palette ----------------------------------------------------------- + + /** The violet everything but the family name is set in. */ + static final DocumentColor ACCENT = DocumentColor.rgb(118, 78, 175); + + /** + * The lighter violet the family name takes. Two tones, not one: the + * drawing sets them measurably apart, and antialiasing only lightens — so + * the difference is a decision rather than noise. + */ + static final DocumentColor ACCENT_LIGHT = DocumentColor.rgb(141, 105, 193); + + /** The hairline that follows every section heading — the accent at half. */ + static final DocumentColor ACCENT_RULE = DocumentColor.rgb(190, 172, 220); + + /** The tint behind the project tiles, the education badge and the band. */ + static final DocumentColor TINT = DocumentColor.rgb(237, 231, 245); + + static final DocumentColor INK = DocumentColor.rgb(28, 26, 32); + static final DocumentColor BODY = DocumentColor.rgb(58, 56, 72); + static final DocumentColor MUTED = DocumentColor.rgb(96, 94, 110); + static final DocumentColor RULE = DocumentColor.rgb(219, 219, 219); + static final DocumentColor RATING_EMPTY = DocumentColor.rgb(226, 226, 226); + + // -- type -------------------------------------------------------------- + + /** + * The display face: the name, the discipline line, the section headings + * and the skill labels. Chosen by measurement: the drawing sets the name + * at a width-to-cap ratio this face matches within a few per cent, where + * the nearest-looking alternative is a quarter too wide. + */ + static final FontName DISPLAY_FONT = FontName.ASAP_CONDENSED; + + /** The body face: everything the display face does not set. */ + static final FontName BODY_FONT = FontName.LATO; + + static final double NAME_SIZE = 46.55; + static final double DISCIPLINE_SIZE = 17.73; + static final double HEADING_SIZE = 12.90; + + /** + * The skill labels, sized so the longest one clears its column's gutter. + * + *

    Solved from the drawing's own ink widths the size comes out larger — + * but at that size the longest label is wider than its column less the + * gutter, and the binding constraint is the gutter rather than the ink. All + * six are set at one size even though only one is constrained: six labels + * of a set at five sizes is a worse document than six one step small.

    + */ + static final double LABEL_SIZE = 6.8; + + static final double CONTACT_SIZE = 8.93; + static final double SUMMARY_SIZE = 9.31; + static final double SKILL_DESC_SIZE = 6.35; + static final double TOOL_SIZE = 8.11; + static final double PERIOD_SIZE = 8.67; + static final double ROLE_SIZE = 9.42; + static final double EMPLOYER_SIZE = 8.09; + static final double LOCATION_SIZE = 8.76; + static final double HIGHLIGHT_SIZE = 8.02; + static final double PROJECT_TITLE_SIZE = 9.62; + static final double PROJECT_SUB_SIZE = 8.35; + static final double PROJECT_YEAR_SIZE = 8.2; + static final double PROJECT_BODY_SIZE = 8.47; + static final double DEGREE_SIZE = 8.93; + static final double INSTITUTION_SIZE = 8.96; + static final double EDU_DETAIL_SIZE = 8.55; + static final double LANGUAGE_SIZE = 8.49; + static final double LEVEL_SIZE = 7.85; + static final double QUOTE_SIZE = 8.64; + + // -- tracking ---------------------------------------------------------- + + /** + * A space's advance in the body face, as a fraction of the em. + * + *

    Deliberately the BODY face's number even though tracking is only ever + * applied to display text: the display face's space is narrow enough that + * a gap of the wanted width would need a space run taller than the type it + * separates, and an inline run sets the line box. The body face's space is + * nearly twice as wide, so the same gap keeps the line box the type's — and + * a space has no glyph to give the substitution away.

    + */ + static final double SPACE_RATIO = 0.256; + + /** + * Tracking in points between one letter and the next. The headings' figure + * is an average over all six: solved one at a time they range too widely + * for any single typeface setting, because the drawing is a raster whose + * glyph advances are not internally consistent — six per-heading constants + * would be fitting noise rather than reproducing a design. + */ + static final double DISCIPLINE_TRACKING = 3.15; + static final double HEADING_TRACKING = 0.77; + + /** Gaps measured as constants whatever the words are, written as spaces. */ + static final String CONTACT_ICON_GAP = " "; + static final String TOOL_GAP = " "; + static final String PIPE = " | "; + static final String RATING_GAP = " "; + static final String QUOTE_GAP = " "; + + // -- the page ---------------------------------------------------------- + + static final double PAGE_MARGIN_X = px(53); + + /** + * Back-calculated rather than measured: the first ink on the page is a cap, + * and a line box starts above its caps, so the margin is where the name's + * box has to begin for its caps to land where the drawing puts them. + */ + static final double PAGE_MARGIN_TOP = px(24); + + /** + * Measured under the quote band, then taken in by three pixels. Nothing on + * this page sits at the bottom margin except the closing band, and the + * drawing puts its lower edge exactly ON the margin — so at the measured + * value the flow has no slack and the band's last points spill onto a + * second page. Three pixels of headroom is the difference between a + * one-page CV and a two-page one. + */ + static final double PAGE_MARGIN_BOTTOM = px(18); + + static final double CONTENT_WIDTH = 595.276 - 2.0 * PAGE_MARGIN_X; + + // -- the masthead ------------------------------------------------------ + + /** Where the contact marks begin, which is where the masthead row splits. */ + static final double CONTACT_COLUMN_X = px(653); + static final double CONTACT_TOP = px(8); + static final double CONTACT_PITCH = px(34.3); + static final double DISCIPLINE_TO_RULE = px(23.3); + static final double IDENTITY_RULE_WIDTH = px(70); + static final double IDENTITY_RULE_THICKNESS = px(4); + + /** + * Measured ink to ink, then corrected by two pixels against the render: + * the measurement is a cap-to-cap distance and what the engine wants is a + * margin under a line BOX, which grew when the name's size was solved. + */ + static final double HEADER_TO_SUMMARY = px(26); + static final double SUMMARY_PITCH = px(22); + + // -- headings ---------------------------------------------------------- + + static final double HEADING_TO_RULE = px(20); + static final double HEADING_RULE_THICKNESS = px(1.5); + + /** + * How far below the heading's line top the rule sits. The drawing centres + * it on the cap band rather than on the line box, and the two differ by + * the leading above the caps. + */ + static final double HEADING_RULE_OFFSET = px(13.5); + + // -- the skills grid --------------------------------------------------- + + static final double SUMMARY_TO_SKILLS = px(33.8); + static final double HEADING_TO_SKILLS = px(19.5); + static final double ICON_TO_LABEL = px(17.4); + static final double LABEL_TO_DESC = px(6); + static final double SKILL_DESC_PITCH = px(18); + static final double SKILL_DIVIDER_THICKNESS = px(2); + + /** + * The gutter between a column's content and the separators either side. + * + *

    The drawing gives its widest column more room than six equal columns + * leave, so the label that just fits there is flush here. This is that + * column's own narrowest gutter, applied to every column so the grid keeps + * one rhythm.

    + */ + static final double SKILL_COLUMN_INSET = px(11); + + /** + * The measure the descriptions wrap to, which is narrower than the column. + * + *

    Solved from the drawing's own line breaks rather than measured off + * it: greedy-wrapping all six descriptions, each column's breaks are + * reproduced by an interval of measures, and this is the value inside the + * most of them. No single measure reproduces all six — the drawing's own + * metrics disagree with any one face — so five of six is the best + * available.

    + */ + static final double SKILL_DESC_MEASURE = 72.5; + + /** + * The dotted separator's height — the one length on this page that is not + * derived from what it sits beside, and a known limit: a skill whose + * description ran to four lines would outgrow its separator. The + * alternative primitive stretches to the content but cannot be dashed, and + * the dotted rule is a visible feature of the design. + */ + static final double SKILL_RAIL_HEIGHT = px(136); + static final double SKILL_DASH_ON = px(2); + static final double SKILL_DASH_OFF = px(3.15); + + // -- the tools strip --------------------------------------------------- + + static final double SKILLS_TO_TOOLS = px(27.3); + static final double HEADING_TO_TOOLS = px(18.7); + static final double TOOL_DOT_DIAMETER = px(5.2); + + // -- the timeline ------------------------------------------------------ + + static final double TOOLS_TO_EXPERIENCE = px(35.7); + static final double HEADING_TO_ENTRIES = px(19.3); + + /** Where the rail stands, as an indent from the page margin. */ + static final double RAIL_INDENT = px(134.5); + + /** The gap between the rail and an entry's own content. */ + static final double ENTRY_INDENT = px(35.5); + static final double RAIL_THICKNESS = px(2); + static final double MARKER_DIAMETER = px(13.5); + static final double ENTRY_WIDTH = + CONTENT_WIDTH - RAIL_INDENT - ENTRY_INDENT - TABLE_SLACK; + static final double LOCATION_COLUMN = px(200); + static final double ROLE_COLUMN = ENTRY_WIDTH - LOCATION_COLUMN; + + /** The dates sit back at the page margin, outside the rail. */ + static final double DATE_OFFSET = -(RAIL_INDENT + ENTRY_INDENT); + + /** Half the disc, plus the indent, puts its centre on the border. */ + static final double MARKER_OFFSET = -(ENTRY_INDENT + MARKER_DIAMETER / 2.0); + + static final double BULLET_COLUMN = px(16); + static final double BULLET_DOT_DIAMETER = px(6); + static final double BULLET_PITCH = px(20.5); + static final double TITLE_TO_BULLETS = px(6.1); + static final double ENTRY_GAP = px(24); + + // -- the projects ------------------------------------------------------ + + static final double EXPERIENCE_TO_PROJECTS = px(27.6); + static final double HEADING_TO_PROJECTS = px(15.1); + static final double PROJECT_GAP = px(17.4); + static final double THUMB_COLUMN = px(138.5); + static final double THUMB_PAD_LEFT = px(21); + static final double THUMB_WIDTH = px(80); + static final double THUMB_HEIGHT = px(76); + static final double THUMB_RADIUS = px(10); + static final double PROJECT_COPY_INDENT = px(34.5); + static final double PROJECT_RULE_THICKNESS = px(2); + static final double PROJECT_COPY_WIDTH = + CONTENT_WIDTH - THUMB_COLUMN - PROJECT_COPY_INDENT - TABLE_SLACK; + static final double PROJECT_YEAR_COLUMN = px(120); + static final double PROJECT_TITLE_COLUMN = PROJECT_COPY_WIDTH - PROJECT_YEAR_COLUMN; + static final double TITLE_TO_BODY = px(3.6); + static final double PROJECT_BODY_PITCH = px(19.5); + + // -- the credentials band ---------------------------------------------- + + static final double PROJECTS_TO_CREDENTIALS = px(15.7); + static final double EDUCATION_COLUMN = px(430); + static final double CREDENTIAL_GUTTER = px(70); + static final double LANGUAGES_COLUMN = + CONTENT_WIDTH - EDUCATION_COLUMN - CREDENTIAL_GUTTER - TABLE_SLACK; + + /** How the two heading rules split what the two heading texts leave. */ + static final double EDUCATION_RULE_WEIGHT = 335.0 / 680.0; + static final double LANGUAGES_RULE_WEIGHT = 345.0 / 680.0; + + static final double HEADING_TO_EDUCATION = px(13.5); + static final double BADGE_DIAMETER = px(72); + static final double BADGE_COLUMN = px(91); + static final double EDUCATION_TEXT_TOP = px(4.1); + static final double DEGREE_TO_INSTITUTION = px(3); + static final double INSTITUTION_TO_DETAIL = px(8.7); + + /** + * The languages rows start a shade below where the education badge does. + * The bodies row already carries the heading gap; this is only the + * difference between the two halves. + */ + static final double LANGUAGES_BODY_OFFSET = px(15.8 - 13.5); + + static final double LANGUAGE_NAME_COLUMN = px(162); + static final double LANGUAGE_LEVEL_COLUMN = px(194); + static final double LANGUAGE_RATING_COLUMN = + LANGUAGES_COLUMN - LANGUAGE_NAME_COLUMN - LANGUAGE_LEVEL_COLUMN; + static final double LANGUAGE_PITCH = px(27.5); + static final double RATING_DOT_DIAMETER = px(10); + + /** How many discs a rating is drawn out of. */ + static final int RATING_SCALE = 5; + + // -- the closing band -------------------------------------------------- + + static final double CREDENTIALS_TO_QUOTE = px(24); + static final double QUOTE_RADIUS = px(6); + static final double QUOTE_PAD_H = px(40); + + /** + * The line box the band has to hold. The quotation mark is taller than the + * type beside it, and an inline run taller than its paragraph's line box is + * drawn clipped — so the box is the mark's height. + */ + static final double QUOTE_LINE_BOX = + Math.max(QUOTE_SIZE * LINE_FACTOR, VioletGridIcons.size(VioletGridIcons.QUOTE)); + + /** The band's measured height less what it holds, halved. */ + static final double QUOTE_PAD_V = (px(48) - QUOTE_LINE_BOX) / 2.0; + + // -- helpers ----------------------------------------------------------- + + static DocumentTextStyle style(FontName font, double size, DocumentColor color, + boolean bold) { + return DocumentTextStyle.builder() + .fontName(font) + .size(size) + .color(color) + .decoration(bold ? DocumentTextDecoration.BOLD : DocumentTextDecoration.DEFAULT) + .build(); + } + + /** A cell's padding and how its content sits in it. */ + static DocumentTableStyle cellStyle(DocumentInsets padding, + DocumentTableTextAnchor anchor) { + return DocumentTableStyle.builder() + .padding(padding) + .textAnchor(anchor) + .stroke(NO_BORDER) + .build(); + } + + /** A measured pitch, minus the content it has to clear, is the gap that produces it. */ + static double gap(double pitch, double contentHeight) { + return Math.max(0.0, pitch - contentHeight); + } + + /** + * A measured pitch as the additive value {@code lineSpacing} actually is: + * the line box is {@link #LINE_FACTOR} times the type size and the setting + * adds points on top of it. + */ + static double leading(double pitch, double size) { + return Math.max(0.0, pitch - LINE_FACTOR * size); + } + + /** How far to drop a mark of this height to centre it on a title's line box. */ + static double centred(double markHeight) { + return Math.max(0.0, (ROLE_SIZE * LINE_FACTOR - markHeight) / 2.0); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridWidgets.java new file mode 100644 index 000000000..6b215eeab --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridWidgets.java @@ -0,0 +1,147 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.RowBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.InlineImageAlignment; +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.DocumentTextStyle; +import com.demcha.compose.font.FontName; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ACCENT_RULE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_RULE_OFFSET; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_TRACKING; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.HEADING_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.SPACE_RATIO; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.style; + +/** + * The idioms this sheet repeats: the letter-spaced run, the heading followed + * by its hairline, a disc on its own, and a line of text as a node. + */ +final class VioletGridWidgets { + + private VioletGridWidgets() { + } + + /** + * Letter-spaced text, as one inline run per character. + * + *

    A text style carries no tracking, so the gap between two letters is a + * space run set at whatever size makes that space the wanted number of + * points wide — which is why the tracking is a number rather than a fixed + * word space. The gap is set in the BODY face even under display text: the + * display face's space is narrow enough that the wanted gap would need a + * run taller than the type it separates, and an inline run sets the line + * box. A space has no glyph to give the substitution away.

    + * + * @param name the node name + * @param text the text to space out + * @param font the face the letters are set in + * @param size the size the letters are set at + * @param color the colour of the letters + * @param bold whether the letters are bold + * @param tracking the gap in points; zero or less writes the text plainly + * @return the paragraph, unbuilt, so a caller can still give it a margin + */ + static ParagraphBuilder tracked(String name, String text, FontName font, double size, + DocumentColor color, boolean bold, double tracking) { + DocumentTextStyle glyph = style(font, size, color, bold); + ParagraphBuilder paragraph = new ParagraphBuilder(); + paragraph.name(name); + paragraph.lineSpacing(0); + paragraph.textStyle(glyph); + if (tracking <= 0.0) { + paragraph.text(text); + return paragraph; + } + DocumentTextStyle gap = style(BODY_FONT, tracking / SPACE_RATIO, color, bold); + for (int index = 0; index < text.length(); index++) { + paragraph.inlineText(String.valueOf(text.charAt(index)), glyph); + if (index < text.length() - 1) { + paragraph.inlineText(" ", gap); + } + } + return paragraph; + } + + /** + * A tracked caps heading followed by a hairline to the right margin. + * + *

    The text column takes what its words need and the rule column takes + * what is left, which is what makes the rule start where the text ends + * without anything having to know how wide the text is. Returned as a node + * rather than added to a builder, so one method serves callers holding + * different builder types.

    + */ + static DocumentNode headingRow(String name, String text, double topMargin) { + RowBuilder row = new RowBuilder(); + row.name(name + "Heading"); + row.spacing(0); + row.margin(new DocumentInsets(topMargin, 0, 0, 0)); + row.columns(DocumentRowColumn.auto(), DocumentRowColumn.weight(1.0)); + row.addSection(name + "HeadingText", cell -> { + cell.spacing(0); + cell.add(tracked(name + "HeadingLabel", text, DISPLAY_FONT, HEADING_SIZE, + ACCENT, true, HEADING_TRACKING).build()); + }); + row.addSection(name + "HeadingRule", cell -> { + cell.spacing(0); + cell.padding((float) HEADING_RULE_OFFSET, 0f, 0f, (float) HEADING_TO_RULE); + cell.addLine(line -> line + .name(name + "HeadingRuleLine") + .fill() + .thickness(HEADING_RULE_THICKNESS) + .color(ACCENT_RULE)); + }); + return row.build(); + } + + /** A disc on its own, in a paragraph whose line box is set by its type. */ + static DocumentNode markerDot(String name, double diameter, double boxSize, + DocumentColor fill) { + ParagraphBuilder paragraph = new ParagraphBuilder(); + paragraph.name(name); + paragraph.lineSpacing(0); + paragraph.textStyle(style(BODY_FONT, boxSize, fill, false)); + paragraph.dot(diameter, fill); + return paragraph.build(); + } + + /** One line of text as a node. */ + static DocumentNode text(String name, String value, DocumentTextStyle textStyle) { + return new ParagraphBuilder() + .name(name) + .text(value) + .lineSpacing(0) + .textStyle(textStyle) + .build(); + } + + /** Places a mark inline, on the baseline of the paragraph it opens. */ + static void inlineIcon(ParagraphBuilder paragraph, String token) { + paragraph.inlineSvgIcon(VioletGridIcons.icon(token), VioletGridIcons.size(token), + InlineImageAlignment.CENTER); + } + + /** A body, one entry per line the document wrote. */ + static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split(String.valueOf((char) 10))) { + if (!line.isBlank()) { + out.add(line.strip()); + } + } + return out; + } +} diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/design-systems.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/design-systems.svg new file mode 100644 index 000000000..abccd250f --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/design-systems.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/email.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/email.svg new file mode 100644 index 000000000..24628a6eb --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/graduation.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/graduation.svg new file mode 100644 index 000000000..f89ae1c16 --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/graduation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/information-architecture.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/information-architecture.svg new file mode 100644 index 000000000..ebadcc790 --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/information-architecture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/linkedin.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/linkedin.svg new file mode 100644 index 000000000..ab2d1bd8e --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/location.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/location.svg new file mode 100644 index 000000000..fde000d03 --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/phone.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/phone.svg new file mode 100644 index 000000000..7c823dae3 --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/project-health.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/project-health.svg new file mode 100644 index 000000000..d42590cf3 --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/project-health.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/project-wallet.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/project-wallet.svg new file mode 100644 index 000000000..70bd4b1c6 --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/project-wallet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/prototyping.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/prototyping.svg new file mode 100644 index 000000000..6dc414529 --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/prototyping.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/quote.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/quote.svg new file mode 100644 index 000000000..281a38b10 --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/quote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/usability-testing.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/usability-testing.svg new file mode 100644 index 000000000..b2857b690 --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/usability-testing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/ux-research.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/ux-research.svg new file mode 100644 index 000000000..31f42319d --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/ux-research.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/website.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/website.svg new file mode 100644 index 000000000..faddf384b --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/website.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/violet-grid/icons/wireframing.svg b/templates/src/main/resources/templates/cv/violet-grid/icons/wireframing.svg new file mode 100644 index 000000000..0273be191 --- /dev/null +++ b/templates/src/main/resources/templates/cv/violet-grid/icons/wireframing.svg @@ -0,0 +1 @@ + \ No newline at end of file From f3a34ad55dd41008cf9360b731d430e9f6fb0b4f Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 20:21:30 +0100 Subject: [PATCH 24/85] feat(templates): add the Orange Ops two-column CV preset (#632) A one-page operations CV in three bands over a split body: a two-tone name above a dark role bar whose right edge and three accent slashes lean by one ratio, a contact strip on hairlines, then a narrow column of dotted skills, achievement discs, a degree and certifications beside a wide column of profile, dated roles, a four-metric strip and the closing lines. Ships as cv.presets.OrangeOps on the existing CvDocument model, so the port needed no model change. It is the first preset whose display family the engine does not carry: Oswald is not in graph-compose-fonts, so the preset names it through OrangeOps.DISPLAY_FONT and the caller registers it, with the gate and the example each supplying the two faces from their own module's resources. Eight berths reach their sections by title, four to a column, and a berth nobody fills takes its heading, its accent rule and its join hairline with it. A main-column heading's parenthetical is split off at the title's first bracket and set smaller beside it. Guarded by a 19-case smoke test, an exact layout snapshot and a pixel-parity gate. --- CHANGELOG.md | 31 + assets/readme/examples/cv-orange-ops-v2.pdf | Bin 0 -> 41968 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../examples/support/OrangeOpsSampleData.java | 252 ++ .../examples/support/ShowcaseMetadata.java | 1 + .../templates/cv/v2/OrangeOpsExample.java | 62 + .../src/main/resources/fonts/oswald/OFL.txt | 93 + .../resources/fonts/oswald/Oswald-Regular.ttf | Bin 0 -> 26692 bytes .../fonts/oswald/Oswald-SemiBold.ttf | Bin 0 -> 26776 bytes .../cv/presets/OrangeOpsFixtures.java | 246 ++ .../presets/OrangeOpsLayoutSnapshotTest.java | 34 + .../cv/presets/OrangeOpsSmokeTest.java | 368 ++ .../cv/presets/OrangeOpsTestFont.java | 29 + .../cv/presets/OrangeOpsVisualParityTest.java | 42 + qa/src/test/resources/fonts/oswald/OFL.txt | 93 + .../resources/fonts/oswald/Oswald-Regular.ttf | Bin 0 -> 26692 bytes .../fonts/oswald/Oswald-SemiBold.ttf | Bin 0 -> 26776 bytes .../cv-v2/orange_ops_layout.json | 3497 +++++++++++++++++ .../cv-v2-layered/orange_ops-page-0.png | Bin 0 -> 171055 bytes .../templates/cv/presets/OrangeOps.java | 274 ++ .../templates/cv/presets/OrangeOpsAside.java | 304 ++ .../templates/cv/presets/OrangeOpsIcons.java | 213 + .../templates/cv/presets/OrangeOpsMain.java | 377 ++ .../cv/presets/OrangeOpsMasthead.java | 273 ++ .../templates/cv/presets/OrangeOpsStyles.java | 404 ++ .../cv/presets/OrangeOpsWidgets.java | 215 + .../orange-ops/icons/achievement-accuracy.svg | 1 + .../icons/achievement-productivity.svg | 1 + .../orange-ops/icons/achievement-safety.svg | 1 + .../orange-ops/icons/achievement-savings.svg | 1 + .../templates/cv/orange-ops/icons/driving.svg | 1 + .../templates/cv/orange-ops/icons/email.svg | 1 + .../cv/orange-ops/icons/graduation.svg | 1 + .../cv/orange-ops/icons/interests.svg | 1 + .../cv/orange-ops/icons/kpi-accuracy.svg | 1 + .../cv/orange-ops/icons/kpi-delivery.svg | 1 + .../cv/orange-ops/icons/kpi-productivity.svg | 1 + .../cv/orange-ops/icons/kpi-safety.svg | 1 + .../cv/orange-ops/icons/languages.svg | 1 + .../cv/orange-ops/icons/linkedin.svg | 1 + .../cv/orange-ops/icons/location.svg | 1 + .../templates/cv/orange-ops/icons/phone.svg | 1 + .../templates/cv/orange-ops/icons/systems.svg | 1 + .../templates/cv/orange-ops/icons/website.svg | 1 + 44 files changed, 6828 insertions(+) create mode 100644 assets/readme/examples/cv-orange-ops-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/OrangeOpsSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/OrangeOpsExample.java create mode 100644 examples/src/main/resources/fonts/oswald/OFL.txt create mode 100644 examples/src/main/resources/fonts/oswald/Oswald-Regular.ttf create mode 100644 examples/src/main/resources/fonts/oswald/Oswald-SemiBold.ttf create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsTestFont.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsVisualParityTest.java create mode 100644 qa/src/test/resources/fonts/oswald/OFL.txt create mode 100644 qa/src/test/resources/fonts/oswald/Oswald-Regular.ttf create mode 100644 qa/src/test/resources/fonts/oswald/Oswald-SemiBold.ttf create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/orange_ops_layout.json create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/orange_ops-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOps.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsAside.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMain.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsWidgets.java create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/achievement-accuracy.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/achievement-productivity.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/achievement-safety.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/achievement-savings.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/driving.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/email.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/graduation.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/interests.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/kpi-accuracy.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/kpi-delivery.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/kpi-productivity.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/kpi-safety.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/languages.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/linkedin.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/location.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/phone.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/systems.svg create mode 100644 templates/src/main/resources/templates/cv/orange-ops/icons/website.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 26aee1bef..1052050ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -97,6 +97,37 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A two-column operations CV preset: `OrangeOps`.** A one-page sheet in three bands + over a split body: a two-tone name above a dark role bar whose right edge and three + accent slashes all lean by one ratio, a contact strip whose items sit on one axis + between hairlines, then a narrow column of dotted skills, achievement discs, a degree + and certifications beside a wide column carrying the profile, the roles held with + their dates on the right margin, a four-metric strip on full-height rules, and the + closing lines. Ships as `cv.presets.OrangeOps` on the existing `CvDocument` model, + porting the rendered layout of a published standalone template. It is the first + preset whose display family the engine does not carry: Oswald is not one of the + families `graph-compose-fonts` ships, so the preset names it through + `OrangeOps.DISPLAY_FONT` and the caller registers it — the gate and the example each + register the two faces from their own module's resources, and the class documentation + shows the call. Eight berths reach their sections by title, four to a column, and a + berth nobody fills takes its heading, its accent rule and its join hairline with it + rather than leaving a rule over a gap. Two shapes are what the design shows rather + than what a row could hold: the role bar is a layer stack because the plate and the + slashes overlap horizontally, and an achievement is a layer stack because a table cell + anchors its disc to the foot of the pair instead of the top. A badge is one leaf, not + two — the disc is re-emitted around the glyph inside a widened viewBox, because a + shape container inside a table cell reserves its box and composes none of its + children. A heading's parenthetical is set smaller on the same line, split off at the + title's first bracket, which is how `KEY KPI SNAPSHOT (Recent 12 Months)` reaches the + page as the design sets it. As on the presets before it a link is drawn as its own + label with the address behind it, the one deliberate departure from the ported sheet, + measured at 7 241 of 2 173 720 pixels. Guarded by a smoke test (including the unknown + mark data error, an entry with no mark, the uppercased name and role bar, the + parenthetical heading, a trunk prefix left undialled, the link targets on every kind + of title, a dropped berth taking its join rule with it, a document with nothing but an + identity, and the run onto a second page), an exact layout snapshot and a pixel-parity + gate; the examples showcase gains `cv-orange-ops-v2`. + - **A banded single-column CV preset: `VioletGrid`.** A one-page sheet with no page-level grid at all: a two-tone name beside the contact list, three opening lines, a six-up grid of marked skills divided by dotted rules, a strip of tools on inline discs, the diff --git a/assets/readme/examples/cv-orange-ops-v2.pdf b/assets/readme/examples/cv-orange-ops-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8ef08dad6df273e87ffeb87a69ef84d6d75c5c71 GIT binary patch literal 41968 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 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 d2d1ae590..e0cd6b1a5 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -81,6 +81,7 @@ import com.demcha.examples.templates.coverletter.CvTimelineMinimalLetterV2Example; import com.demcha.examples.templates.cv.v2.CharcoalGoldExample; import com.demcha.examples.templates.cv.v2.SlateOrangeExample; +import com.demcha.examples.templates.cv.v2.OrangeOpsExample; import com.demcha.examples.templates.cv.v2.VioletGridExample; import com.demcha.examples.templates.cv.v2.TealPulseExample; import com.demcha.examples.templates.cv.v2.TerracottaRailExample; @@ -162,6 +163,7 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + TealPulseExample.generate()); System.out.println("Generated: " + SlateOrangeExample.generate()); System.out.println("Generated: " + VioletGridExample.generate()); + System.out.println("Generated: " + OrangeOpsExample.generate()); // Cover letters (v2 layered — 15 paired letters, one per CV preset) System.out.println("Generated: " + CvBlueBannerLetterV2Example.generate()); diff --git a/examples/src/main/java/com/demcha/examples/support/OrangeOpsSampleData.java b/examples/src/main/java/com/demcha/examples/support/OrangeOpsSampleData.java new file mode 100644 index 000000000..a3c3d4ce8 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/OrangeOpsSampleData.java @@ -0,0 +1,252 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * Shared sample data for the Orange Ops CV example. + * + *

    The sample is the preset's reference content: a one-page CV with four + * contact items including one link, eleven skills, four achievement cards, a + * degree, four certifications, the opening prose, three roles, a four-metric + * strip and four closing lines.

    + * + *

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

    + */ +public final class OrangeOpsSampleData { + + /** The break a body stacks its lines on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private OrangeOpsSampleData() { + } + + /** + * The sample CV. + * + * @return the document the example renders + */ + public static CvDocument sample() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, skills())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, achievements())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, education())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, certifications())); + placements.add(new CvDocument.Placement(Slot.MAIN, profile())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.MAIN, metrics())); + placements.add(new CvDocument.Placement(Slot.MAIN, additional())); + return new CvDocument(identity(), placements); + } + + private static CvIdentity identity() { + return new CvIdentity( + CvName.of("Marcus", "Bennett"), + "Warehouse Operations Supervisor", + new Contact("+44 7700 900123", + "marcus.bennett@email.com", + "Birmingham, West Midlands, UK"), + List.of(new Link("LinkedIn", "https://www.linkedin.com/in/marcusbennett")), + Optional.empty()); + } + + /** The skills, as one flat group — the design draws no group names. */ + private static SkillsSection skills() { + return new SkillsSection("KEY SKILLS", List.of(SkillGroup.ofNames("KEY SKILLS", List.of( + "Warehouse Operations Management", + "Team Leadership & Development", + "Inventory Control & Accuracy", + "Logistics & Freight Coordination", + "Order Fulfilment & Dispatch", + "KPI Monitoring & Reporting", + "Lean Process Improvement", + "Health & Safety Compliance", + "WMS & ERP Systems", + "Problem Solving & Decision Making", + "Stakeholder Communication")))); + } + + /** The achievement cards: a mark, a title and a body each. */ + private static EntriesSection achievements() { + return new EntriesSection("ACHIEVEMENTS", List.of( + CvEntry.builder("15% PRODUCTIVITY INCREASE") + .icon("achievement-productivity") + .body("Improved warehouse productivity by 15% through workflow " + + "redesign and performance management.") + .build(), + CvEntry.builder("99.2% INVENTORY ACCURACY") + .icon("achievement-accuracy") + .body("Maintained inventory accuracy above 99% for 12 " + + "consecutive months through cycle count discipline and " + + "process control.") + .build(), + CvEntry.builder("ZERO LOST TIME INCIDENTS") + .icon("achievement-safety") + .body("Led a safety-first culture resulting in zero lost time " + + "incidents over 24 months across operations.") + .build(), + CvEntry.builder("\u00a3280K COST SAVINGS") + .icon("achievement-savings") + .body("Delivered \u00a3280K in annual savings by reducing waste, " + + "lowering overtime and renegotiating carrier contracts.") + .build())); + } + + /** The degree, its institution, place and years one line each. */ + private static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("BSc (Hons) Logistics & Supply Chain Management") + .icon("graduation") + .body(String.join(NEWLINE, + "De Montfort University", + "Leicester, UK", + "2011 \u2013 2014")) + .build())); + } + + /** The certifications: a title over its issuer. */ + private static EntriesSection certifications() { + return new EntriesSection("CERTIFICATIONS", List.of( + CvEntry.builder("IOSH Managing Safely") + .subtitle("Institution of Occupational Safety and Health \u2013 2021") + .build(), + CvEntry.builder("Lean Six Sigma Yellow Belt") + .subtitle("The Knowledge Academy \u2013 2020") + .build(), + CvEntry.builder("Counterbalance Forklift Truck Instructor") + .subtitle("RTITB \u2013 2019") + .build(), + CvEntry.builder("First Aid at Work") + .subtitle("St John Ambulance \u2013 2019") + .build())); + } + + /** The opening prose. */ + private static ParagraphSection profile() { + return new ParagraphSection("PROFESSIONAL PROFILE", + "Results-driven Warehouse Operations Supervisor with 8+ " + + "years of experience leading high-performing teams and " + + "optimising warehouse performance in fast-paced " + + "distribution environments. Proven track record of " + + "improving operational efficiency, ensuring inventory " + + "accuracy, and delivering excellent service levels while " + + "maintaining a strong focus on health and safety. Adept " + + "at using data to drive decisions, streamline processes, " + + "and achieve measurable results."); + } + + /** The roles held, each a headline over its bullets. */ + private static EntriesSection experience() { + return new EntriesSection("WORK EXPERIENCE", List.of( + CvEntry.builder("Warehouse Operations Supervisor") + .subtitle("ExpressLink Distribution Ltd | Birmingham, UK") + .date("Mar 2021 \u2013 Present") + .body(String.join(NEWLINE, + "Oversee daily warehouse operations across a 150,000 sq " + + "ft facility, managing a team of 45 staff across inbound, " + + "storage, picking, packing and dispatch.", + "Ensure timely and accurate order fulfilment, achieving " + + "98%+ on-time delivery.", + "Monitor and maintain inventory accuracy through cycle " + + "counts, audits and investigation of variances.", + "Analyse KPIs and operational data to identify trends and " + + "implement improvements.", + "Coordinate with transport and customer service teams to " + + "resolve delivery issues and improve service levels.", + "Drive a culture of safety and accountability; deliver " + + "regular training and ensure full compliance with H&S " + + "regulations.", + "Lead continuous improvement initiatives using Lean " + + "principles to reduce waste and enhance productivity.")) + .build(), + CvEntry.builder("Warehouse Team Leader") + .subtitle("Midland Gate Logistics | Coventry, UK") + .date("May 2017 \u2013 Feb 2021") + .body(String.join(NEWLINE, + "Led a team of 25 warehouse operatives across day-to-day " + + "operations.", + "Managed inbound receipts, putaway, picking and shipping " + + "activities.", + "Maintained accurate stock records and completed regular " + + "cycle counts.", + "Supported the implementation of a new WMS, improving " + + "stock visibility and reporting.", + "Reduced picking errors by 23% through training and " + + "process optimisation.")) + .build(), + CvEntry.builder("Warehouse Coordinator") + .subtitle("TotalSupply Solutions | Northampton, UK") + .date("Jun 2015 \u2013 Apr 2017") + .body(String.join(NEWLINE, + "Coordinated daily operations and allocated tasks to " + + "warehouse staff.", + "Monitored stock levels and initiated replenishment to " + + "avoid stockouts.", + "Assisted with KPI reporting and performance reviews.", + "Ensured compliance with company policies and health & " + + "safety standards.")) + .build())); + } + + /** + * The metric strip. The parenthetical is part of the berth title: the + * preset splits it off and sets it smaller. + */ + private static EntriesSection metrics() { + return new EntriesSection("KEY KPI SNAPSHOT (Recent 12 Months)", List.of( + CvEntry.builder("15%") + .icon("kpi-productivity") + .body("Productivity" + NEWLINE + "Increase") + .build(), + CvEntry.builder("99.2%") + .icon("kpi-accuracy") + .body("Inventory" + NEWLINE + "Accuracy") + .build(), + CvEntry.builder("98.4%") + .icon("kpi-delivery") + .body("On-Time" + NEWLINE + "Delivery") + .build(), + CvEntry.builder("0") + .icon("kpi-safety") + .body("Lost Time" + NEWLINE + "Incidents") + .build())); + } + + /** The closing lines: a mark, a label and its value. */ + private static EntriesSection additional() { + return new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Systems:") + .icon("systems") + .body("SAP EWM, Manhattan WMS, Microsoft Dynamics, Excel " + + "(Advanced)") + .build(), + CvEntry.builder("Languages:") + .icon("languages") + .body("English (Native)") + .build(), + CvEntry.builder("Driving Licence:") + .icon("driving") + .body("Full UK Driving Licence") + .build(), + CvEntry.builder("Interests:") + .icon("interests") + .body("Strength training, Motorsport, Volunteering with local " + + "food banks") + .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 73059d99d..34d7b7575 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -68,6 +68,7 @@ record Entry(String title, String description, List tags, String codeUrl cv("cv-teal-pulse-v2", "TealPulseExample", "Teal Pulse", "Clinical sheet in five bands: a heart crossed by a pulse beside the name, a contact strip on rules, competencies beside the summary and roles, and a three-column closing band over a tracked tagline.", "clinical", "badges", "teal"); cv("cv-slate-orange-v2", "SlateOrangeExample", "Slate Orange", "Full-bleed slate masthead with an orange monogram tile, over a sidebar of marked competencies, trophied achievements and rated languages beside a profile, a dated experience rail and a credentials footer.", "sidebar", "masthead", "orange"); cv("cv-violet-grid-v2", "VioletGridExample", "Violet Grid", "Single-column sheet in bands: a two-tone name beside the contact list, a six-up grid of marked skills on dotted rules, a tools strip, a dated timeline, tinted project tiles and a closing quotation.", "single-column", "grid", "violet"); + cv("cv-orange-ops-v2", "OrangeOpsExample", "Orange Ops", "Operations sheet with a two-tone name over a slanted role bar and accent slashes, a contact strip on hairlines, and a sidebar of skills, achievement discs and credentials beside a profile, dated roles and a four-metric strip.", "sidebar", "metrics", "orange"); // ===== Templates / Cover Letter (v2 layered, paired 1:1 with CV) ===== // Registered directly: letter() points at the layered preset examples under diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/OrangeOpsExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/OrangeOpsExample.java new file mode 100644 index 000000000..3d5e9754b --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/OrangeOpsExample.java @@ -0,0 +1,62 @@ +package com.demcha.examples.templates.cv.v2; + +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.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.OrangeOps; +import com.demcha.compose.font.FontFamilyDefinition; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.OrangeOpsSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code cv.v2} Orange Ops preset against the design + * sample. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-orange-ops-v2.pdf}.

    + * + *

    The preset owns its page geometry — every length is a share of the + * design's own grid — so the session starts unconfigured. What it does need is + * the display family: Orange Ops sets its name and headings in Oswald, which + * neither the templates artifact nor {@code graph-compose-fonts} carries, so + * registering it is the caller's job and this example is the caller. The two + * faces are the example module's own resources.

    + */ +public final class OrangeOpsExample { + + private OrangeOpsExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare("templates/cv", "cv-orange-ops-v2.pdf"); + CvDocument doc = OrangeOpsSampleData.sample(); + DocumentTemplate template = OrangeOps.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + document.registerFontFamily( + FontFamilyDefinition.classpath(OrangeOps.DISPLAY_FONT, + "/fonts/oswald/Oswald-Regular.ttf") + .wordFamily("Oswald") + .boldResource("/fonts/oswald/Oswald-SemiBold.ttf") + .build()); + template.compose(document, doc); + 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/examples/src/main/resources/fonts/oswald/OFL.txt b/examples/src/main/resources/fonts/oswald/OFL.txt new file mode 100644 index 000000000..9d0219e98 --- /dev/null +++ b/examples/src/main/resources/fonts/oswald/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2016 The Oswald Project Authors (https://github.com/googlefonts/OswaldFont) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/examples/src/main/resources/fonts/oswald/Oswald-Regular.ttf b/examples/src/main/resources/fonts/oswald/Oswald-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4a4373d1aa056b06c49819d1b6b3f31e28843afa GIT binary patch literal 26692 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 literal 0 HcmV?d00001 diff --git a/examples/src/main/resources/fonts/oswald/Oswald-SemiBold.ttf b/examples/src/main/resources/fonts/oswald/Oswald-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..26aa8f272d2968a75e99ec8e08ff5fb58292ce92 GIT binary patch literal 26776 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 z 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 placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, skills())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, achievements())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, education())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, certifications())); + placements.add(new CvDocument.Placement(Slot.MAIN, profile())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.MAIN, metrics())); + placements.add(new CvDocument.Placement(Slot.MAIN, additional())); + return new CvDocument(identity(), placements); + } + + static CvIdentity identity() { + return new CvIdentity( + CvName.of("Marcus", "Bennett"), + "Warehouse Operations Supervisor", + new Contact("+44 7700 900123", + "marcus.bennett@email.com", + "Birmingham, West Midlands, UK"), + List.of(new Link("LinkedIn", "https://www.linkedin.com/in/marcusbennett")), + Optional.empty()); + } + + /** The skills, as one flat group — the design draws no group names. */ + static SkillsSection skills() { + return new SkillsSection("KEY SKILLS", List.of(SkillGroup.ofNames("KEY SKILLS", List.of( + "Warehouse Operations Management", + "Team Leadership & Development", + "Inventory Control & Accuracy", + "Logistics & Freight Coordination", + "Order Fulfilment & Dispatch", + "KPI Monitoring & Reporting", + "Lean Process Improvement", + "Health & Safety Compliance", + "WMS & ERP Systems", + "Problem Solving & Decision Making", + "Stakeholder Communication")))); + } + + /** The achievement cards: a mark, a title and a body each. */ + static EntriesSection achievements() { + return new EntriesSection("ACHIEVEMENTS", List.of( + CvEntry.builder("15% PRODUCTIVITY INCREASE") + .icon("achievement-productivity") + .body("Improved warehouse productivity by 15% through workflow " + + "redesign and performance management.") + .build(), + CvEntry.builder("99.2% INVENTORY ACCURACY") + .icon("achievement-accuracy") + .body("Maintained inventory accuracy above 99% for 12 " + + "consecutive months through cycle count discipline and " + + "process control.") + .build(), + CvEntry.builder("ZERO LOST TIME INCIDENTS") + .icon("achievement-safety") + .body("Led a safety-first culture resulting in zero lost time " + + "incidents over 24 months across operations.") + .build(), + CvEntry.builder("\u00a3280K COST SAVINGS") + .icon("achievement-savings") + .body("Delivered \u00a3280K in annual savings by reducing waste, " + + "lowering overtime and renegotiating carrier contracts.") + .build())); + } + + /** The degree, its institution, place and years one line each. */ + static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("BSc (Hons) Logistics & Supply Chain Management") + .icon("graduation") + .body(String.join(NEWLINE, + "De Montfort University", + "Leicester, UK", + "2011 \u2013 2014")) + .build())); + } + + /** The certifications: a title over its issuer. */ + static EntriesSection certifications() { + return new EntriesSection("CERTIFICATIONS", List.of( + CvEntry.builder("IOSH Managing Safely") + .subtitle("Institution of Occupational Safety and Health \u2013 2021") + .build(), + CvEntry.builder("Lean Six Sigma Yellow Belt") + .subtitle("The Knowledge Academy \u2013 2020") + .build(), + CvEntry.builder("Counterbalance Forklift Truck Instructor") + .subtitle("RTITB \u2013 2019") + .build(), + CvEntry.builder("First Aid at Work") + .subtitle("St John Ambulance \u2013 2019") + .build())); + } + + /** The opening prose. */ + static ParagraphSection profile() { + return new ParagraphSection("PROFESSIONAL PROFILE", + "Results-driven Warehouse Operations Supervisor with 8+ " + + "years of experience leading high-performing teams and " + + "optimising warehouse performance in fast-paced " + + "distribution environments. Proven track record of " + + "improving operational efficiency, ensuring inventory " + + "accuracy, and delivering excellent service levels while " + + "maintaining a strong focus on health and safety. Adept " + + "at using data to drive decisions, streamline processes, " + + "and achieve measurable results."); + } + + /** The roles held, each a headline over its bullets. */ + static EntriesSection experience() { + return new EntriesSection("WORK EXPERIENCE", List.of( + CvEntry.builder("Warehouse Operations Supervisor") + .subtitle("ExpressLink Distribution Ltd | Birmingham, UK") + .date("Mar 2021 \u2013 Present") + .body(String.join(NEWLINE, + "Oversee daily warehouse operations across a 150,000 sq " + + "ft facility, managing a team of 45 staff across inbound, " + + "storage, picking, packing and dispatch.", + "Ensure timely and accurate order fulfilment, achieving " + + "98%+ on-time delivery.", + "Monitor and maintain inventory accuracy through cycle " + + "counts, audits and investigation of variances.", + "Analyse KPIs and operational data to identify trends and " + + "implement improvements.", + "Coordinate with transport and customer service teams to " + + "resolve delivery issues and improve service levels.", + "Drive a culture of safety and accountability; deliver " + + "regular training and ensure full compliance with H&S " + + "regulations.", + "Lead continuous improvement initiatives using Lean " + + "principles to reduce waste and enhance productivity.")) + .build(), + CvEntry.builder("Warehouse Team Leader") + .subtitle("Midland Gate Logistics | Coventry, UK") + .date("May 2017 \u2013 Feb 2021") + .body(String.join(NEWLINE, + "Led a team of 25 warehouse operatives across day-to-day " + + "operations.", + "Managed inbound receipts, putaway, picking and shipping " + + "activities.", + "Maintained accurate stock records and completed regular " + + "cycle counts.", + "Supported the implementation of a new WMS, improving " + + "stock visibility and reporting.", + "Reduced picking errors by 23% through training and " + + "process optimisation.")) + .build(), + CvEntry.builder("Warehouse Coordinator") + .subtitle("TotalSupply Solutions | Northampton, UK") + .date("Jun 2015 \u2013 Apr 2017") + .body(String.join(NEWLINE, + "Coordinated daily operations and allocated tasks to " + + "warehouse staff.", + "Monitored stock levels and initiated replenishment to " + + "avoid stockouts.", + "Assisted with KPI reporting and performance reviews.", + "Ensured compliance with company policies and health & " + + "safety standards.")) + .build())); + } + + /** + * The metric strip. The parenthetical is part of the berth title: the + * preset splits it off and sets it smaller. + */ + static EntriesSection metrics() { + return new EntriesSection("KEY KPI SNAPSHOT (Recent 12 Months)", List.of( + CvEntry.builder("15%") + .icon("kpi-productivity") + .body("Productivity" + NEWLINE + "Increase") + .build(), + CvEntry.builder("99.2%") + .icon("kpi-accuracy") + .body("Inventory" + NEWLINE + "Accuracy") + .build(), + CvEntry.builder("98.4%") + .icon("kpi-delivery") + .body("On-Time" + NEWLINE + "Delivery") + .build(), + CvEntry.builder("0") + .icon("kpi-safety") + .body("Lost Time" + NEWLINE + "Incidents") + .build())); + } + + /** The closing lines: a mark, a label and its value. */ + static EntriesSection additional() { + return new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Systems:") + .icon("systems") + .body("SAP EWM, Manhattan WMS, Microsoft Dynamics, Excel " + + "(Advanced)") + .build(), + CvEntry.builder("Languages:") + .icon("languages") + .body("English (Native)") + .build(), + CvEntry.builder("Driving Licence:") + .icon("driving") + .body("Full UK Driving Licence") + .build(), + CvEntry.builder("Interests:") + .icon("interests") + .body("Strength training, Motorsport, Volunteering with local " + + "food banks") + .build())); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsLayoutSnapshotTest.java new file mode 100644 index 000000000..2356ab174 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsLayoutSnapshotTest.java @@ -0,0 +1,34 @@ +package com.demcha.compose.document.templates.cv.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 OrangeOps} — freezes the resolved + * geometry of the canonical one-page CV, which the pixel budget cannot see: a + * small column or spacing shift stays under the visual-diff budget but changes + * the snapshot. + * + *

    The preset owns its page geometry, so the session starts unconfigured + * apart from the display family it does not carry.

    + * + *

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

    + */ +class OrangeOpsLayoutSnapshotTest { + + @Test + void canonicalCvMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + OrangeOpsTestFont.register(session); + OrangeOps.create().compose(session, OrangeOpsFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "orange_ops_layout", "cv-v2"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsSmokeTest.java new file mode 100644 index 000000000..7a21e2c0e --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsSmokeTest.java @@ -0,0 +1,368 @@ +package com.demcha.compose.document.templates.cv.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.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSection; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.Slot; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link OrangeOps} — proves the preset renders a + * {@link CvDocument} end-to-end with its packaged marks, uppercases the name it + * is given, sets a heading's parenthetical apart from the heading, reports an + * unknown mark as a data error, drops a berth nobody filled together with its + * join rule, and carries the channels and the entry titles as link annotations, + * which move no pixel and no layout node so neither gate would notice them + * going missing. + */ +class OrangeOpsSmokeTest { + + /** The break a body stacks its lines on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private static byte[] render(CvDocument doc) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured + // apart from the display family the preset names but does not carry. + try (DocumentSession session = GraphCompose.document().create()) { + OrangeOpsTestFont.register(session); + OrangeOps.create().compose(session, doc); + 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); + } + } + + /** The text as one line, so an assertion is about wording, not wrapping. */ + private static String unwrapped(String text) { + return text.replaceAll("(?U)\\s+", " "); + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + /** The canonical document with one section replaced. */ + private static CvDocument withSection(Slot slot, EntriesSection replacement, + String replacedTitle) { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : OrangeOpsFixtures.canonicalCv().placements()) { + if (placement.section().title().equals(replacedTitle)) { + placements.add(new CvDocument.Placement(slot, replacement)); + } else { + placements.add(placement); + } + } + return new CvDocument(OrangeOpsFixtures.identity(), placements); + } + + /** The canonical document with one section left out entirely. */ + private static CvDocument withoutSection(String droppedTitle) { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : OrangeOpsFixtures.canonicalCv().placements()) { + if (!placement.section().title().equals(droppedTitle)) { + placements.add(placement); + } + } + return new CvDocument(OrangeOpsFixtures.identity(), placements); + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = OrangeOps.create(); + assertThat(template.id()).isEqualTo(OrangeOps.ID); + assertThat(template.displayName()).isEqualTo(OrangeOps.DISPLAY_NAME); + } + + @Test + void namesTheDisplayFamilyItDoesNotCarry() { + // A caller has to register something, and this is the name to register + // it under; the constant is the contract, so it is pinned. + assertThat(OrangeOps.DISPLAY_FONT.name()).isEqualTo("Oswald"); + } + + @Test + void rendersCanonicalCvWithPackagedMarks() throws Exception { + render(OrangeOpsFixtures.canonicalCv()); + } + + @Test + void canonicalRenderCarriesEveryBlocksText() throws Exception { + String text = textOf(render(OrangeOpsFixtures.canonicalCv())); + assertThat(text) + .contains("marcus.bennett@email.com") + .contains("Birmingham, West Midlands, UK") + .contains("Warehouse Operations Management") + .contains("ZERO LOST TIME INCIDENTS") + .contains("De Montfort University") + .contains("IOSH Managing Safely") + .contains("Results-driven Warehouse Operations Supervisor") + .contains("ExpressLink Distribution Ltd") + .contains("Productivity") + .contains("SAP EWM, Manhattan WMS"); + } + + @Test + void theNameIsSetInTwoTonesAndUppercased() throws Exception { + // The fixture writes the name as a person would; the design sets it in + // capitals, so the preset is what uppercases it. Both names are runs of + // one paragraph, so the gap between them is a real word space. + String text = textOf(render(OrangeOpsFixtures.canonicalCv())); + assertThat(text.lines().map(String::strip).toList()) + .anyMatch(line -> line.contains("MARCUS") && line.contains("BENNETT")); + assertThat(text).doesNotContain("Marcus Bennett"); + } + + @Test + void theRoleBarIsSetInCapitals() throws Exception { + String text = textOf(render(OrangeOpsFixtures.canonicalCv())); + assertThat(text).contains("WAREHOUSE OPERATIONS SUPERVISOR"); + } + + @Test + void aHeadingsParentheticalIsDrawnBesideIt() throws Exception { + // The berth's title carries both; the preset splits at the bracket and + // sets what follows smaller, so both halves reach the page. + String text = unwrapped(textOf(render(OrangeOpsFixtures.canonicalCv()))); + assertThat(text).contains("KEY KPI SNAPSHOT (Recent 12 Months)"); + } + + @Test + void contactChannelsAndLinksAreClickable() throws Exception { + List targets = linkTargets(render(OrangeOpsFixtures.canonicalCv())); + assertThat(targets) + .contains("mailto:marcus.bennett@email.com") + .contains("tel:+447700900123") + .contains("https://www.linkedin.com/in/marcusbennett"); + } + + @Test + void aLinkShowsItsLabelAndHidesItsAddress() throws Exception { + // The strip draws the label, so its width is the same whatever the + // profile behind it is called; the address is reachable, not written. + byte[] pdfBytes = render(OrangeOpsFixtures.canonicalCv()); + assertThat(textOf(pdfBytes)) + .contains("LinkedIn") + .doesNotContain("linkedin.com/in/marcusbennett"); + assertThat(linkTargets(pdfBytes)) + .contains("https://www.linkedin.com/in/marcusbennett"); + } + + @Test + void aLinkToSomethingOtherThanANetworkTakesTheGlobe() throws Exception { + // The globe is a packaged mark like any other, so a missing file would + // fail the render rather than quietly dropping the item. + CvIdentity site = new CvIdentity(CvName.of("Ada", "Lovelace"), "Analyst", + new Contact("+44 20 7946 0000", "ada@example.test", "London, UK"), + List.of(new Link("Portfolio", "https://ada.example.test")), Optional.empty()); + + byte[] pdfBytes = render(new CvDocument(site, List.of())); + assertThat(textOf(pdfBytes)).contains("Portfolio").doesNotContain("ada.example.test"); + assertThat(linkTargets(pdfBytes)).contains("https://ada.example.test"); + } + + @Test + void metricsWithUnevenCaptionsStillShareOneGrid() throws Exception { + // Every metric gets a row per caption line the longest one has, so the + // numbers stay on one baseline and a shorter caption leaves its lower + // rows empty rather than lifting its neighbours. + EntriesSection uneven = new EntriesSection("KEY KPI SNAPSHOT", List.of( + CvEntry.builder("15%").icon("kpi-productivity") + .body("Productivity" + NEWLINE + "Increase").build(), + CvEntry.builder("0").icon("kpi-safety").body("Incidents").build())); + + String text = textOf(render(withSection(Slot.MAIN, uneven, "KEY KPI SNAPSHOT " + + "(Recent 12 Months)"))); + assertThat(text).contains("Productivity").contains("Incidents"); + } + + @Test + void aTrunkPrefixIsNotDialled() throws Exception { + // "(0)" is for a domestic dialler; left in the digits it would make a + // number that reaches nobody. + CvIdentity printed = new CvIdentity(CvName.of("Ada", "Lovelace"), "Analyst", + new Contact("+44 (0)20 7946 0832", "ada@example.test", "London, UK"), + List.of(), Optional.empty()); + + byte[] pdfBytes = render(new CvDocument(printed, List.of())); + assertThat(textOf(pdfBytes)).contains("+44 (0)20 7946 0832"); + assertThat(Set.copyOf(linkTargets(pdfBytes))) + .containsExactlyInAnyOrder("mailto:ada@example.test", "tel:+442079460832"); + } + + @Test + void anAchievementAJobAndTheDegreeBecomeLinksWhenTheirEntryCarriesOne() throws Exception { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : OrangeOpsFixtures.canonicalCv().placements()) { + CvSection section = placement.section(); + placements.add(switch (section.title()) { + case "ACHIEVEMENTS" -> new CvDocument.Placement(Slot.SIDEBAR, + new EntriesSection("ACHIEVEMENTS", List.of( + CvEntry.builder("15% PRODUCTIVITY INCREASE") + .icon("achievement-productivity") + .body("Workflow redesign.") + .link("https://example.test/award") + .build()))); + case "EDUCATION" -> new CvDocument.Placement(Slot.SIDEBAR, + new EntriesSection("EDUCATION", List.of( + CvEntry.builder("BSc Logistics") + .icon("graduation") + .body("De Montfort University") + .link("https://example.test/dmu") + .build()))); + case "CERTIFICATIONS" -> new CvDocument.Placement(Slot.SIDEBAR, + new EntriesSection("CERTIFICATIONS", List.of( + CvEntry.builder("IOSH Managing Safely") + .subtitle("IOSH") + .link("https://example.test/iosh") + .build()))); + case "WORK EXPERIENCE" -> new CvDocument.Placement(Slot.MAIN, + new EntriesSection("WORK EXPERIENCE", List.of( + CvEntry.builder("Warehouse Operations Supervisor") + .subtitle("ExpressLink") + .date("2021") + .body("Ran the floor.") + .link("https://example.test/expresslink") + .build()))); + default -> placement; + }); + } + + List targets = linkTargets( + render(new CvDocument(OrangeOpsFixtures.identity(), placements))); + assertThat(targets) + .contains("https://example.test/award") + .contains("https://example.test/dmu") + .contains("https://example.test/iosh") + .contains("https://example.test/expresslink"); + } + + @Test + void aRolesPlaceIsSetBesideItsEmployer() throws Exception { + EntriesSection located = new EntriesSection("WORK EXPERIENCE", List.of( + CvEntry.builder("Shift Lead") + .subtitle("Midland Gate") + .place("Coventry, UK") + .date("2018") + .body("Ran the floor.") + .build())); + + String text = textOf(render(withSection(Slot.MAIN, located, "WORK EXPERIENCE"))); + assertThat(text).contains("Midland Gate | Coventry, UK"); + } + + @Test + void anUnknownMarkIsReportedAsADataError() { + EntriesSection wrong = new EntriesSection("ACHIEVEMENTS", List.of( + CvEntry.builder("Telepathy").icon("telescope").body("Reading minds.").build())); + + assertThatThrownBy(() -> render(withSection(Slot.SIDEBAR, wrong, "ACHIEVEMENTS"))) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("telescope") + .hasMessageContaining("graduation"); + } + + @Test + void anEntryWithoutAMarkIsDrawnWithoutOne() throws Exception { + EntriesSection unmarked = new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Availability:").body("Immediate").build())); + + String text = textOf(render(withSection(Slot.MAIN, unmarked, "ADDITIONAL INFORMATION"))); + assertThat(unwrapped(text)).contains("Availability: Immediate"); + } + + @Test + void anEmptyBerthTakesItsHeadingAndItsJoinRuleWithIt() throws Exception { + // The rule between two blocks belongs to the pair; drop one block and + // the sheet must not keep a hairline over the gap where it was. + byte[] full = render(OrangeOpsFixtures.canonicalCv()); + byte[] shorter = render(withoutSection("CERTIFICATIONS")); + + assertThat(textOf(full)).contains("CERTIFICATIONS"); + assertThat(textOf(shorter)).doesNotContain("CERTIFICATIONS"); + + try (DocumentSession session = GraphCompose.document().create()) { + OrangeOpsTestFont.register(session); + OrangeOps.create().compose(session, withoutSection("CERTIFICATIONS")); + assertThat(session.layoutSnapshot().nodes()) + .noneMatch(node -> "AfterEducationRule".equals(node.entityName())); + } + try (DocumentSession session = GraphCompose.document().create()) { + OrangeOpsTestFont.register(session); + OrangeOps.create().compose(session, OrangeOpsFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().nodes()) + .anyMatch(node -> "AfterEducationRule".equals(node.entityName())); + } + } + + @Test + void aDocumentWithNothingButAnIdentityStillRenders() throws Exception { + // Every berth empty: the name, the role bar and the contact strip, and + // nothing else on the sheet. + render(new CvDocument(OrangeOpsFixtures.identity(), List.of())); + } + + @Test + void aLongerCvRunsOntoASecondPageRatherThanLosingARole() throws Exception { + // Each column is a stack of blocks, so more content than the design + // holds runs over; each entry is held together, so a role is never cut + // in two. + List many = new ArrayList<>(); + for (int index = 0; index < 8; index++) { + many.add(CvEntry.builder("Warehouse Operations Supervisor " + index) + .subtitle("ExpressLink Distribution Ltd") + .date("Mar 2021") + .body("Oversee daily warehouse operations across a large facility.") + .build()); + } + CvDocument longer = withSection(Slot.MAIN, + new EntriesSection("WORK EXPERIENCE", many), "WORK EXPERIENCE"); + + try (DocumentSession session = GraphCompose.document().create()) { + OrangeOpsTestFont.register(session); + OrangeOps.create().compose(session, longer); + assertThat(session.layoutSnapshot().totalPages()).isGreaterThan(1); + } + assertThat(textOf(render(longer))).contains("Warehouse Operations Supervisor 7"); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsTestFont.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsTestFont.java new file mode 100644 index 000000000..7c5d221a8 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsTestFont.java @@ -0,0 +1,29 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.font.FontFamilyDefinition; + +/** + * Registers the display family the {@link OrangeOps} gates compose against. + * + *

    The preset names Oswald and carries none of it — neither the templates + * artifact nor {@code graph-compose-fonts} ships the family — so every caller + * registers it, and in this module the caller is a test. The two faces are qa's + * own test resources under {@code /fonts/oswald/}, beside the licence they are + * distributed under. Without this call the engine substitutes and both gates + * would be measuring a face the design was never set in.

    + */ +final class OrangeOpsTestFont { + + private OrangeOpsTestFont() { + } + + static void register(DocumentSession document) { + document.registerFontFamily( + FontFamilyDefinition.classpath(OrangeOps.DISPLAY_FONT, + "/fonts/oswald/Oswald-Regular.ttf") + .wordFamily("Oswald") + .boldResource("/fonts/oswald/Oswald-SemiBold.ttf") + .build()); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsVisualParityTest.java new file mode 100644 index 000000000..5294f0ea4 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsVisualParityTest.java @@ -0,0 +1,42 @@ +package com.demcha.compose.document.templates.cv.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 OrangeOps} — the canonical one-page + * CV against a checked-in baseline. + * + *

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

    + */ +class OrangeOpsVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "cv-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()) { + OrangeOpsTestFont.register(document); + OrangeOps.create().compose(document, OrangeOpsFixtures.canonicalCv()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("orange_ops", pdfBytes); + } +} diff --git a/qa/src/test/resources/fonts/oswald/OFL.txt b/qa/src/test/resources/fonts/oswald/OFL.txt new file mode 100644 index 000000000..9d0219e98 --- /dev/null +++ b/qa/src/test/resources/fonts/oswald/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2016 The Oswald Project Authors (https://github.com/googlefonts/OswaldFont) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/qa/src/test/resources/fonts/oswald/Oswald-Regular.ttf b/qa/src/test/resources/fonts/oswald/Oswald-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4a4373d1aa056b06c49819d1b6b3f31e28843afa GIT binary patch literal 26692 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 literal 0 HcmV?d00001 diff --git a/qa/src/test/resources/fonts/oswald/Oswald-SemiBold.ttf b/qa/src/test/resources/fonts/oswald/Oswald-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..26aa8f272d2968a75e99ec8e08ff5fb58292ce92 GIT binary patch literal 26776 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 z zi^JI1^F;H}x`*+j&+qq%;t2c0F{3$uI23zs7!RspEGQfs#(n=8`#ScwQEUvOJSMy% zv8M@3^o@N+)E94Y`H8lJArnG+*SLwv`dP2B&-o5ER268l1M?0=|R zDQK*;DB;mE&a6s|fD>n8hu>q*j)b0%eSjAHuXPWnr{~xaFxrB#ts6}Z`r{gX9}W%E zaQJ=vQ;`SM^bh2QY>cMHh@`PiGIEmg#7--1A8p5IN#OjqvELH!p%wmwJESi55=mL? zcOvgs2$2*$6MH50pV%*BAH}|d&NxYFfsKupq=aIB8OESIlG?bg_@T7JDaSn1M#6Rx zBF+6@{$g)J&OeVmIzF0YoVa!7U+mY^n$bUMIr9H?42F8H$nGn{Sd5C>mGH2R9*#Nl zDWvmT;z8`2AFBV%^#7N4Wqc3UJglu^e@7jEiwU_UEuu&c_;N~VJ(VnY|CZ3N3ZITE zGNRN9?uq##{zhC<#<$Q>BJV%NXr+?I(J~f`OVk(fyr0K@0SSts^jPdSu|2Wlv6o}- zD{-Uu*fkVJn$wB|j>;jVDz3X?&mhI|*juAkF)|;K6VA#;CbkP z|GyfZ-xcu4uEM@eKfK4=u@7(-t^s(9&w+Kh59|HK@K_&)@A^0J4X=i^Nb7F$lSfyEm8zVCppzmNTryVePK0R%?+~70juvGA=S5pMT9$`23rD75`6GW;T0LeCBd`49QYNuQqc2N@E5GcZh;0g*a&)U#%_TgR`oW_^K@b(5nl3L zX#GCy$ymjHj7#|Nt?;KGhR>VmVnnGSv>cYSph%XWNGi%Vp$0?8Xg?Kigb|naA?;3Gk9L!Gk+xP_F?^{{s^3m{C*eL^KOcA9m~a_Rvg}OQ zhO;cnwI-n>A(#-rITsi1bQ#87l*6DaPhhHV;$EK~czx(9Q)R6r97u9tBA4ySIa;h*>&Vfgj9uEKucg^(4ZfHGbUc+x&gG9)7d za+8G>SQ@0E3S+D$zV_?Gj?pYoxK2=bJ}A5sdm_8pc^I$fV@GF+7_Td^YjXp3jSk{k zi#?cIuwQf=t_`67z2MmWxVDHLm#x^xc?9KgR*cz_?nlt3O6Zs>fDWg~{=_7J3{U|Q z0BV2+patk+zsA_4Tw!Rm3TW5}@>Sx!3SeVNc+&$cfGmIykPXNI|5SPla<&560PTPdKqsIJ&<*GT%m*w0ECdVy z76BFmmH-9;LjZ}n&?f4wENC~}XL$aBlW_kF+W>mNhl4puMytO?tG~q?`D4z9t*Rcu zoeTVVBJLY@3FartLuH(c`$e&@M0)Z|T?89Vg*v}QPK84kVg9s1-_XuC`3aPhV@5p5 z8Z`mT04sp(3$jbo0c3kP0WQ?##?u4v0x|*Q6C;bH2oS+Msbc%k&;5A24-$D8>8OYQ z5Iy`1DLzK2#IZ0!6=+Q**7Q|?39waKU^BD=+5qi<4nQZM3(yVd0n7(104xLy02ZOY zi}73n7z7LfWRy;IeZuymW_A4SW3=oYVBTSeVA0$Ipq70m?q5Q46$_d96s`IOdH;=; z9YxEIvTB4|(9%{w8=xJ~0q6vD0lEP_fcbz0fQ5hoz#_n6z!Jb9UfH!#Z$kWLgtq{;0=5B2KK_bUokHJ;hKoSyAy~)M(|3XS4!QnAJrVP1 zSja#aBb54nO7w>4y9lKZ;yDD+35vIZPd$L?fJJ~ac}MkrjIv3l!jK87?{mT3n+30j zYoCC;)PmvkN{e4ZpJI@305kv^0Zo7w(61HH251L#06GC(fNnq!U?N)Ai?nmlkGX((fcd~L04xLy z02Toj1C{^=0YiZ0NVftlUxoY|K&g$8xy_*a7Qj}(cHnma&H|hbI0vv3oZJQ2jou#w zC2j#lZUd+>e=?ME3UoRJx_l6i`4$!mha5@(8K43r0Mq~tKnu{tUIOj@4c+-~=+1v* zr2d;_p!_U6eSmC04j>oc2Lu3lfI>hJoUFlGvKCMWs0T~{Gyoa_O@J1RnpQv?pdHWw z=mc~Dx&b|a-qz#w2LblMOs|K&)#0?$?G^=i;# z4PY%`9bi3R1L(UE<8%|!ZN_-s0@w=J25H(E`vSE50&@EtM)q^;0McIzxEVJ1ZFn96 z?j8UK=D3jgsG#ynLFHH34WRPP&_*PI4*(tk%~X(anwLm6{|O#^Af);mgpSi56-K8- zItHKuBmmR^4L}Rf!5dW!ibgO_Dj^|NfNH$!f%!tzy$NsU1A7r_*cbab+I>IT@i1z8 zSk!SF{Dx1WX3|dIA|K6jVZ@z_mQbD>;RiSvJBYLoigw=@`;Z+5eSU+n_Ao$&9G_t< zaWVRc3RDtWtBiQ8u1IH+j1BjcW{qz}Pr2wfjbfUsK7-9pKJG9iYy&8IA7=2w05w|0 zelUhkATp^7-e{TpUm;_rF(=cQ+0Va;uIGX1n{xiC*Jn#xKv4_Qk)K~fvr)(tGWq;I zjVUBsZus@}KXLEQ2o97|;`{EyiHvsiN~Bj6OS$L``PSa$2KLDaUK+t48;8#y!M`^S zpEiO&G7djl{?T#x!jbgvkHgzX@E;H!k^x_Z^fUA;g=SPA&$Rd~Apx0T>YvfV=kw|J zo^#H<(Z?_9Sh+;bU;oCY)9Vi(#!-`0I_Xx2{4V4-W0uV$3Wmx&lEti6Yv^H+eEv{b zMYudS*XIi(6c5(D5T4zd<0{WBZt!N*&a9potS`2f<`v`>6dKb*er!vm1t&L_wgxns zvMJSdv#Z^k>g!9YoNLoVIXOkN`YMfmEpfRV^B_ye%FPWM%PT5EWmc=j;uE!Hsnr&v z*=iMahC|dM?wP$jKY#h`8H@7{s-2mc9&J*F+w0UE3@l1&**=N;`nNY#uV`!Oag}Cx zLmAOMSs`aexx25qeKpNSrO}gABPf_8IQp^J2ayB?l0ktavO%c-XoL~fiJn)WVbu4! zr^Vc2O7`=vCTN*nlX~AJwZ2t!i6RCWDFj+rkVIDDgu<$0W+Y2V^Gcz)>lKcL; zDlxS|-@2=xr_9*dQoW+HxXN4V$_jg;Kgp`_cq6{)OQH)qb4pM%tOLnDOeb&vmk-y3 z+pfIrHte=V@8=Uwz0Q|Kf1;#iA0n+RcyF9=D`^4H3T5z0K|``kiH3WKhUD4d#VVqq zf`2cL{}lL$ifE|dkBs8khhxe)N_f<(kDcIF)C;@V7A~uo!e}H3o!%X=Cf??q+-cdQ zF=e}@b*C?Bo&}{SxG&Kz9;BCg1l?uw$r@wbZC4$<_LkevaiC*&@#)cPqD_2dF#3BX zhme;9B}d3ocN?VSblW<_Rf9(7pfqS!(uSlEWf}jf4TqMjywk8PdD*g6Nhp%@*s0g0 zoYP07ywh*Q%lr)a1n)y8BCTw!+j#imHHVRUHoqN|eInWrm$uJTq_Mn$f*)YKL1T%L zp8~ls!sBp;WDo`Xq-4aP8&&~4W7ben(a@~f%ZrMZ&-Qu}6Fpv!CsF4~YS=oJ2d8eS zpRjpq^yR5r8@9SjU3{0T#O*F|MbCAWy2&F+nkGeXAWPvS_lnV=;E9t8{=IQ{;-rE< zG7e9pLBSs-JmjV{cBhmgZ$!vK+RTR2JMuV<_QSn8*Uu*f?*A`6n~^F%Y&f;&|409b z&PuyJ5bXk;!Qs2*09IMhMVZv1FzMJ)y^#anjnFuE?#f`%irM^UB*NDt)UY~Fk5BUZqqSN#!>q|nIk2an4!i=uy;pakAp%vPICVGK{{UJ_DW zAsKxRudOuDUsSbuX;vwU7sWbJf&S#xH<5o+~y<}PeovNF)z z=eOikdJ7x{5l=_q`l(fO%c&jE9Q-cyP1s$&FyzX3$vOPSv!p|3oppLLrKrHj(<23J zDP;zLii^+ainimKbC>4bqRa4RW@vB8TbeXs>oh6<^y8lD?Cfff)Oh;!XL0?|D{IbgSwOy5$4qevQ4Gn1I|A?CSKcF-D=@|0C zA`oSh);7r@TZGiMU!y&E-SrD6|M;4luUj#X-^;fjKOP;3Zbn}@X;%ILYC_JCQE86x zjvIeEWAgs%c_Tj_{gAt(w&>$XD^d!&R4R1AnHTC0#ycOLpTj0%jU2LMy!aGf{_1N> zrT%rZPaj-|?qKEi4ZlI^fj_qldW*(MdA$@FF~2l^VUh_m%;tlnsnrn-?MT=lL$D6y zS9|hX`t#Ms)KsHZbw$F!qM7}2f^@O0l@cqpNv6~UOSZ#cPt0$~s^}`qPN^`tQj*hC z0_vrU2Ku63Wrg!ntmV4ws+EbUnx7@7d$MgFAL(n+D!Cn8g1C#B_hal&4C9+d@b9s) zc#;Ao{gH9_(Q=NC!?%p2e}5dlWCZ^K;i1)YAjR82rD}MqVTOTDq(>t}C!s$5G~}!{ zUp+ql!VK(J1V@@0d-PA6;HM3v#hS(s+4!z!y=&|FZQuOcXu8i`A%nvH3mkru-ZC_flEXlg)el6|E1W@0tplohj z`o#Q1Dss#kU_2?0H%u=mnBGv|pSMS6N=Zr6S}dt)+CBOGiKVmaf8RK(#NS&Jsd2dV zDZY#ki!%)#Tib-{$pJ`DAbOJO0(V=4RDCSYoJlMnZTL0%oJQV7;%&SUHnMEOLgFJv ztN@@)iEsBewYzJJGb(Kd4x~rCiRsBncD=)*H7Cv=c(rn7$YJLCQ?D1;-Ai;@zD}(x z%s6Swp`|2r*jM~@xgC_nSQXlExFQIL#vefy5v$b}vC+C~gx0lkSkz6L+{$_N+;Dzx zd3v5fG9=D7Ox8D4Xl8E6n48j@;<1#^t~8l7I*TFQp;MV2V*!wEf^JQ zIW(dsK5dv@SU9u3X^Q`oBy)O+QX$QW#d8{d*EFlRWNy>ox^!=Hvdb1J znK_rQtV+*FHu${67phZ?_Kx^y|3r*-1y7@0!M_L1Mp{6@(`Z-lN5vRQEokt(o>F|AC(x$#*zV#5MRKMXNjj)Z%!_)E~_wPx-TmX75K^%Q|#_@J6cPYPi&f16r9yqKdmsozY!!> zsS+^|%t?5f4|xs6IoXMMc~7O6`#r&|q{KwCHN|E%ISgq@vQZt%@m0Gsl5EL(gPf}C zolw!0%g@2UX`EeLHhV(-tkQXUN1ofA=fv>Mcf0Z&$uAW+vW-2m(F96{LCGhCb`a~2 zcwext5_(W$4Da{0<@t)N2MiW{228`~hZ)}Nnw)4QKV-KjCq=6uVJL&WAg4jA3abJ0 z8G)2cJgs^bV!N!4kIMzN;=x!RF zCtfd`SdiZraYYJsNre$dLs!OoYEzooc;(c|6K}PPqEHzm(Gnuqnv(ey4 z(%T=CS;43wcUQxszShg;ZY}>NBM! zr|Xl_ACo^BYdLvr$44sECy5Hla%tkfLH~s1k^oZ$m5f*~@TSRS6=N+Ip5=&mn%iK# zcq{D(o=tQlC#CBhR-O5=&m5k(^Q0S)#~bh~3V1byjv{|BMhlr7Vu28`sMR0VH9M-RuAMf`W!GDE zDIs-ETN&?IeCW{P=+jP{%(qDNHHRSR_@LAjpMl^lr}#R16nqo3fP#MyzndlPpx|l#RPaZ} z;YpJz_@jhJ8DqC(5#Q*QTq&WqUVEP0_RX1*acF8XA~&NOR^Ydi9K*!SXf5 z2BUtlGbZpLH33XX&tQE7_gFv0+gAooF^e+!8}OP9KC2#431A4PA;M29V9Jt_sVq<4pgpGYcQvPf?H%Wi$pZI(N zx8>RcFtYg(f^nvIAhWSD3zWhB1OHgI;ADvBzfeXYgb76Gtgd!8R;OmAsSRqgg{$|i zKkLU-Y(-C=EDv#R%P2)pQCGZ|Cdtzi|IkJ4CY5etyZvU*l-nseRVN;q`n`Sba zG4=84+|Kd`CrzE!`(UWkKR+$gddTWcOUtwzvSi}uj)WcCFZtil!~eS{KecmVNpN9z z*MeZl!gi-!tFgOW=^CxWP`kX9uWVmgTf4G7y03M4?ZsKeWw@%c)u(Vv=&X=sri zhyWRyrgZ?r3v_ElWK$7YJJnR^sQXwDRo`{&(*v*tG+SEpO;zT%?)&{ zo3L)Mbn3*s6FX3HE_(kKdXII9vYrn?PJ}O(9M=Aq{zXi!q)G+ZUIYEo^U}pPU$+Sk<|{0laac-~R-y5^0ACd%SFL*^h4LC!@M8kMa}&f1F6C3hWd5gg|+x$a(-{Ppb4sjKYzjf zDOO2cyScw%bsv2XDGXosad5{+mcF3k$Ud;yYVi&8YPin0g{hcqYI3t#dFsT0qMZ3N zx@QIWRpwl~GbuTe-7qmLuwYVpx-P-tF{G!#I!S8XHj#V#c6JocZI(4MJX-DbQ>}I` z)vauvvb%j_R()aqgzO}v?p#mUOR|Pl3%?k&pxI1up|;<3lyCZlba>0s)3s!|=fzG6 z$;yDf#%_pcJq>aAb8?ksm4m;nWdZu=eD%Y zDdZ45Ad;nm1(V$_e8j@#cDZ$0x7(bqcX~YTB&UADhR)3Dk{rE#MsxE(dHFzd%M6=7 zr=&WwbHjvHaE8>(^=!^=Xfe}3&P?2+$s-f9stdc2%2M-QCeLd2CE^e@K2)2 zYN!ikY$zMyWJr#v3nIDHJv(rf#cy{c8Y+B^y_xv~eG?ZJX3w8)b88bF>B0e(R6MU) zRuiE+>WI+1aZU5o9W9NUdZTZF4gCIe{ka+CUeGkr=RWMQUCNbt^Gg1QXdhWBh^JpOBK}h)evX(|_wvg`Jh5vDdYsGl ze5SH@MOd!Pw^3yv=a+{-VK&!ba`rm!+3 zFs4TaG>vDdkV%_8*(nyY)4C?Jy{c_ealwQe_`N;bJcYirbbDc5O0cuAyE)WVI04PW z7r6Kxm>oi-^EvqJX zwoVN=ocUAv9lp9is>`E+c=Z@$nol6g0jMid54Zm5wn)pLDZ1J9}uLiatwgu;Nuc9+G zHh8d5PzW|{6Wm9AdwK1pA+0}f)wylGsIdv>z+aMzkY7VI3|Yu=(sacYSMVG5?1|ob z<&{X&7`u+WEY+bjX!w!x%xX$HE7|Su-BUAt&(e^}7ub7lYmbzA)m1bOFOUNfLh7_viJ03d)oJ2E&fmg_2OAMptK?)hcJhPEb|HvR4m@}j5KiiXU~Xs1Y!%= zlhVaXDjT-OsR4nC^1>_j-XtwLeWP?8lA$yo*!Vc)icZS2NO*X10UK=^F@}aW1T0j| zMPR=-!{JpYT%y&kShRRG7Q>fc{mSl~=>rvhzt@>+H)L1~tTPs`SX94iLH?pw_U=U; zIk9g3q(rCtQ3tn-@ih9enu6fbs*jwI;RwW$&kJ@HWV&4$<0`p^-@Q9~#<*IhFBww{ zhpke|9^g-)$AULGdw40jNM{aSr$% zNDtggn05Kn{0fXn@X_Rt_#-xdNCVflP2<09X6NdxCHnQrgIR03W{3IH;i3FFl{$3uaow%pnD^s2ti0AK;zSdG}t|b56py!37O?mgJGgH$F%|uG1v%VBj$Q1^iZWyIgcqmS%EOrtHs%BDY5wJSz)X61Fs21R*WIk8HXIirO ziIYP^3SRzt3|@Xk!L!&xz7oIJLOB*}+wqkLmo1}m8e&~MAcyE|NrE~k!<5919&N*6 ztCt5F`$Op(O?s%m(UT2LWX^U!z$+H)ysBsNzFqUf%X!uEt7gyHJ6J*AoXA2+I;Eue zdKgaVa2cj4vq8>s`%D^jTDGTQS{apCHtm7s6-)QdnRC@p)$;QByY@})xoXz}atL5` zIDvP{)kMdHte^zP!|=MA>|Brll1gfkc5~3m5bx}nS)kWCJRXNuUof-Bk&%+%D=zjW zq+~drw3JM#o7XbIw93@bGOun*iDjAAR-8LDbzV}^oT)+JN%j!>w(F>5G&ruTPi0f;!8D>hzkYj7Ul*`3ZS}70ZU*fJv@1KFOn2qn& zJbZ?3v!Rgq5DdG?({ORt`jqmeV~=hivPbF_(NzKY%)F1f0vRaxD} zgv2dHlC0L-iu~!aCcSyh;Ka2Zj+S;$TIJ?yU7pq}n>B$d4^Ph6UBB(_ zHEZtK(bTZ<+L@tc(?h8~hci!Bl`p6cu9#P2bLlFg_ax_L$SP-5Z?JRg%#!M*m-e-9 zo?Y+Nrsx(VoA_jIvVW#l*UTz*1|6VaLF`Kjb2MzLD*U!bSr0(QFw%!jLwM>m@CHXh z6aXzS@%!k+4S9hhc+hAZS#aUyZ;|Q6O=V`kJ+H5_d}1)z=w6bTtmSKrZc|dOS)*4w zigOK)o+3xUFl4i)dfcfllgDCrrY99oub#Lul-=2t6Pi?<-(6NYv%~v|K#v0Vjs&1BNTE$69BU z&kP@(F=?UHCr#?9ZuOknB3GRHBgsNO{C5ZCCb9D`C=fqu6M-d99!!k5G1fjgGBK2> z+jQtgqbNUEFN*U?p@{9H^3EdtQnk%%ab`%|;C0N;Dv{-~Oiz`}OQ(m+yGxP=)h2Jc z-D7qo&d4p}g;_a;izcKv4W=?vx;{}|&{^a%<~kjAquZTYYpp9Ts!KAp&YjJ+1#nVvOIg>BbrkfI7`V6(plw_kXrUqhP$?b9tPKVKMrlP}1 zaYNK;ZRb~Xy0VTrV?RE=QV?fyHFR{56mWbWlRvcb+J!~I1=p@zabRJvXyJiX;l6T5 z@w~Q{*}?0vJ)CAu)MLxuth+uqr*ZBD)ARGEUody>h12u$reB!cwPRmT_r4vSojb1S z>DjlV>ta`VSMZ*OnZ>z1HDw_ucJ*^I{*>WM#aLlycGGir&#l#y@-y>ipWETH7iW61a}8*Bch5E3J3F^u)6;#;j?QrX z^7C3+&s$zsr#$P|Nz7SaUQ%N|`OZ7sQQ*%CK+39kmn;jNOlwXfoj-zH;%pHPvn$7{ z_}Ocw&0IC3zj#LU_j9>(Chy|MqOb6xsFz!!C%7$ooL@Y1W^^0LY%@R1pM_1DLTeR% zhRueN8DCVGtz1<-qoia;b>`}tc$n-%TUb~e7=AFe zXiEp4mH6Ts!%tbrD&lE*A<~tT(-jHSO!V(fOf#gIbv8>%nr^SZw|e{fgwXV=-`7qr zQ>|Mg<@HoWDxK~mLw3f|k_>~});yuIFHc^J76#bEk|bRNdmk%iShGTbkX0*&2c6jv zmN-p~(0=M%zfEyCE1o9kgGkDxbdM)}Qc9nzGe5u6)tAzj?s7Rs-mfg~Dk$g<2FaX$ z7>T;_^13JySxb0~zGrZr;Ycd#4HowVgFVH;UMwCtbHskaUz9H+ABqjR$W>#huOpYv@ zr#kzr(Sw1`%8t_c%QdrR$pwuQvn@GQUU+#N!AeJmr)^p!Jfk9EKH8xS^B&v0kZ+5Z7L`yZ)n zt*TIt{})G;k1@J$UCvL`Z3hv9`80 zDYvJwz1w}B%4D&a61HxAz2EuP<~cRXdJ8KS)M-*wo-$8XwSViTKkg(xK(_fikYwy~ zDE&l#l|6^y&fPR^+O+1&emY~)flHeZ+}hhTiN6wkh<8MbCN=eLMHypOA7`vf9PA~2 zP+CE2T&3+|C&_Z>l~*p^yZ5D==H76_+?%Ks4SYSnh`&IsF<}kSfRFC4pNs8tI>GT7 z|EV-plpt1R%98A?wl!uQwXW%u#D5`C9ktgWd$TFTOT z*vr>{G%zqgWk0@c8z0zCUqP?qCcae~w!n}&0Z_-Qqff&j{o>rYzePjvn;-TxACiQ> zMc9T3mdI02@zSR+?4NSs^*gAgB}lPINs*Hi&Ven+7e!y>WqU3Hl^Cc^W@>VP!SYEtz`C?Z&oLCj%3Y;HtMI$Sgyxv4^BRtOMVkgG7_$ zb?lLZ_X&A-u@bpm;Qb+6!P!5pm3BS*EONYrm^rbjN+kgpFG`@?aP=pN%~P=M|MuG zucHt1SL`wg-+Gr@FsdL`L~VtfX0n4vXWQbImg17umeO>mGu`fVN<&rQipr{RxT-3{ zYRky5S>f#9u_e+i?0UI`N+O@2@G-`fB?Ocjp`PT(&ox_8x>EdE>Hb`cF{M?PDcxeX z+0y)VK3L&t-ugV0vO8&~(9b=buky zKN~%XZ9?rD$&UBb9PG)?~^}!+9S^wlmLGUEASrjGlzYP);zKOx8qcbwgQM zP7p&u!WU0(xSY<0?QjviCx#vOxg3{3Mes>Q2zYYb`ES`q7kKm}-xf26qJV$R79BpYX zC5Jb0bQW>6vLakn>9yKC9-Gw*is1XXH}MT}nb^C+!cpNUR1Wq~Y*vM%yvP}=sTn1^*PeZ5f49&T0q2#UWz4bKAm{{T+v?b=}yj_T=Ul)9|!CL2Uc_7T#25rp%2N zgX_Z&pC6mMn@#pF|8vO`UB6ZN`Jbz%Oh09y1zg!q%{=fxa7l0Y8AEWv6+VR73nRY0 z@^HVR|K~=Mmnf}|;7Z{5h^)N*02ZB}2vdDLf3+D-I;P8W`5zzaD*W`(O?R959y+&a(_SmBmkF$BenAd z`l{8qH8gvZ&&-6%Q=9eTh;7#6M9g!yK2ryOCL+>$;#XCQ%4_$9atDmyh%Q9WkfZ&< z*0n#9maYSLAi#H8dvCf zaPHk_Jb0zUs2;q_8gD(fICnGu9tOvo7izR#y@~_whqMRNhxv^gJ&sFdsTQofQJUG2S`6D@AK`7j=bT2onGe#ns(3#S!U8^>4Tpe$dX zX~+>4jV7#X+7?oQJPkxIZC;h7A3ar4yA6?SJ77zOh)?s8zi#k%>II3)50r>E3HQU@ z>S?%m@Q!*`%qx!!AA#GXgk3M*4vhFu)YOnb*=?zwMg6jxmK!KNOR*hjyyE&(Nb%`Y z)lP}2IzIU4n1CpiRff*Zls_yGiww2iRxwYEZdXm8JvrXF=}YG$kKq_=RxI6AjeI#o#aKj;B=8_*hq)q1BT8Y}WEFcgV`tV3)UA=#VK#qzm zZ;d<-J@mnwQ|MtrdPIF^jvqI5+@GJ(YgX0ooRA97&ujCyrTox@!lL@R=5vgl(AAGD za8dry;#2XynalUfaHUm*zh$NJ4$ts1`AvbhTPePnWe-^$@rI_czUoJi|0Lb?WBX@4 zw>oP`Ar2*l+t2!D(>_*v=eQ@Z20x)5j7CJ`Ba$*Qey}<=oVltIp^Jj3(tWGvip?zO z${LS--*%I5d=6MqR5DszGS=M~Laj!`jXKkZ zkLdrxGT@^ct#2ed3lK9gHGgj2Xg-c=vz_O5#J8`o^?}Z}Wd8&4vNLy4ym4JG$&y38 zOm}}iB*43%58Gcv+C+x)-|d4ia;M-OZO_h+9MuwKrZO$6{v?~FZGCIev)~^FO-_|9 zgJ9HKw0FWH2o)&_TA*dfyk1R3N~6oRLfxu;)jLRxNiFQ1p5#>T)#S=l8+%@O+5m-; z_&tOSpOAu&Sr@2`(u?@|$mw#&YGB5pY>H`R#l8K`O3nuJ7oLHnvf@nQoBS5~RL1hv znO?{AsGM(zYRgkyHMRRiC<~jp!|+0S!u>?lpT`(b)tz&thFe><1gv?Q<+TrH`Tv~^_p;*))KR)Y-^N8d0z`9vko9Tph+D||jo8zhD2vt7~^)nV0 zl=1c_BMZ8e3r)*Z*C6zg#kHmK(hp|mj4lwy?pEPL)c_W$z5-$R;fI#3huqHN-vdn} z^Cwq4MN#evOwGFYpGJ@g4vOY_tx@%9yYdZV%&Dv0eyoWxrY9Ea@Y&6qMVyR3Cp^wl z@=PdDcrfeuB-f_<#Yr$RjT?VGYgJNeI$X_3MP`5$Z>_3p{5A$1Cj%=yVg~^2=@SBz z#xHE97SV^6s7NbI%bO;AGyAdzUnIt})ZbRNR6HKr0s8aN0>c+i&XmRH{QY>SX`>1^ z98E8Okv!8gP*ch^;-SVWmp@M1`|#-Ox3|>0cOWI{wvQZnE>bjf?~sXfoJ%!|GGNd+A~iDkF|~t2L;V4tYZdLnfQDJ*J#3J)%(QhQm%Keo`#?+4Ex(h zFE!QFAQd@_QQUCxR!Wq#cpO6WSg_F1R*c*7zx9Uwu zhBgZmrlxJIdg7nU5FIkR_qza<+?|*8Jgn6`eksa=k78tGe(0J13!t`C2jFaqPuXq{ zK2TR_XBJPq&SmG1i~1k|1ZAuvn((i&q>z~W7*A^rV`MYKsIhI%Hq6^7g|l?g=T*w} z-W_d#j#((^5HQDVlGOgeTsY+FLGhbECzoS&TX=Zl1p5twj(H}5Uu;L318dF_5=Opk z8R`CkNe?iREb`6|8Ztx9e-#xnRamvZD64R^<)QvqVU<_7k$8&(Ae&lJ0eX$OiyAgR z%=oh{xNgX|ph)h05?)Cz=+M6bwH(iNLbKW~t`yFb;-)@fpTD7eDB6v*ONINOq%YkT zi-uAos-`}YApg;NV@SB?J>V`Wl{rcS$q5NZZM4q832C>hv+{6}sYioL*a-fyxnSg%1<)Wi# zTqdf!yJ|h{x*7cJE^YGO3E^>cVYpwZCcYo~p2CRurdGfJZ2#Zc17&V5sO0!shAbD9 zOHMn})>)Vc^c=h9Ab|4wldb=>9~~W)S&X3a6THr!4Gtg>BaK&Mzl<+hWuj72N_0*g zuhmv*7s%%~(;jGKTcmmR1s^^G$B`^qL&hc9;F`k8&b~9;GpgiOCc6JoXpg~#K=l<; z!3K!~#%|lHgqlw`U*nxBLl7kMN3JFYW1-O7p65Ry6&hcV2H_SF znZA76?C#3XGi(`6CDIH-VrrFJ{P3>$Tz@mTmhU~DIo~t)WzYYOEgIGJh9G4RFIrT{ zRd+#pbx#M0fsGwXn~8dgo_%B7sg#^et;O;*>ObjYNznGJX?b(*0d9zaapTB3m5ISr zoP@Ly#OF8k>c`h)QJ$XvmZ8=I^SPKiAxP`4`BwbkLfr^w>7NzDuIjQMTb zavqB*vzV+R2P>BG^P*}1C$hC&X8-s)`YY-DQZw-Jl%7RiXvdfq=vqn(G;a!4R7a1c zZUbMRrUh~8fAA6M@8gkrG;DfgTZKm|I)m+m!HVqY`_k)X0Y|E0{qFBNhuhAQJUTnh zzJ=bu(|<{3r9_LC>Ea$sgnDM6?<{(P`q_uUui6?VnFC(ImNKtLl87pcF0#(;l^zAL zCaNhp6w{#bOZ$^cj^JC2H%;4u5Hv`*F8n6bdv4plwz6WT0PFtLVcT?5E_g7RbgAO| z#`_afnC>XIvDT+rJy9BE*1tcI5?0 zj&2C`niFtMdC!GJiFZ$q%^1u3CJ!_Yn5qgB=p)Hr83iEk!ac6}Cyh(T>-7%avm5`_ zYvPnuQW_qL-QZnAil}kCxJAI1Z_&~9!gn>@%!lfKXv)x%7NbQGB>Qu;??L6i+XP{$ zfhXf_&r~r_yq~3mj$39^6A9q_g>l3+ULZ!KmY!eMA>ZuX0Y{r=xXY9G4Uy!9HhVRg z`=2)odQ($x=f&Ej`8XXE$#w3|`DJhFr=B=tHcCNxU`O}xWd;-@H9En4OnnSy^P0!= zDx=B6`RTnE;VeiIr?c<1n)e}Ha46L-FB0RzTkN%!DKf`s>-Ww%_hJ_KDtD{mLe}ht z1h0q51Km9#mS@yRT_u2%XcppmQg3;U8g`Jm=Z`3J(Tz#Eo|-P8f03Lv_EuH-v1UH^ z_S`5-l4*=q=M^+QuIJDbQj zmN5nDK?D#D|J$S*<-XH~6Bo?MXD=aYhh~#&qk@Q#=&-f!20rlA8k0TLc|e3XWcq8etlO_UnIs}I7hH+T^a z;KnbJgywu$EGUc(sebr~0t`2d5KO?Pb{lGIqN)2rS;Df0sYsKdW*bn?dKBs`D6r$V~G-$rG$O(pUuwdaT}m<;2xtKpKHuE zL+(GaAR@x3=cCJJZz9|mX@$6EP?n`GL!vH%gW+8Ku{L7<98{F|0`(dLlvUDtWDjd# zaKm~-#F~+Do8aY*A|+#>A%vMhzwHxnc`OX@B8jbqEuscQg5CGu{c{(Bdhgu~S?*bQ zt_D8j?9UXjHF-~S%l6!V{pq(p54G7yNo1kF=mCNanRNLDogvAn?K7DLSg_vT8H!3P z@jdPun>D?1X#+T+kEqFL=Ki>CR1~sGVmGALoo@3w$ADt$IePzYQ>gDRi)k&*#~7Hm zk6kl$Gphdfy{Yrzi#Z{r;cKqq%EFx7e+ZKEAK15rrdm26CE8BL5eC=n+X_xeNomf+ zU@-XW&(=3Scl}Q7?Dq|RmF7<;^b1~UIC*!sJew}|*%b9XGRw)J0T?nnNB-n~*dkV< zqEhS^s8C3e#{7ts-e)CL_nI#MXiWd?Jy;G0DI6VvXVBKke1B!6qwo0M7d_~@^>le! z>GKC5NoWG6O8h7=)NPa~weyJliL z6T#0f{on~1IL-cITQ5C}2kKAG7@43k8#8(XNE#B(&0K>A^Id>~ddTWAIy5}&A8BsJ zRA!P4vJK|vI;|Cs`hhix_f4lt{IM;((5`Bx{}rpCYFI|8jIF6-of!EHf8A-YpjN+> zRO7NGk@lMXi+HG2>yeSaaX-5H&(V60IXJV06q0$a(U@q+k0Ns%Kd*rkPFwG9eRWjg z_B?v^tGGv6I*xbmGS<259b1@~7$=tPhZY9mzw+S6L`G`Ij_n-&z!4Df@GYdTaO-xs zwGbbb_v1O)c2;za@J%FEcQGs&Fa(`2&~mUKNS6NhOD_8`+mX6ltkYDeNxM*B>9uQ$ zuD3w0OgPygE8QR0fT{tzm`qLnRu)m$m2RCbJI! z<@0vuZSi>N{2%L!w(enn_Qk7Unaqgr@NwS97=Y2SZQtA(EDS$qa`KuRQOy>cTbi*) zI#%%9QZa>O+I&ciP_KD@e#6^tEWj6w7w&FZ2B<*_8RFuPv!)mNl&9zLD zi^=ooVC~mw$+LSNrbqk`HhffH@-yqA(3cE( z5^kXO^UH9YJV+a?6GSZX-gCdC2gbeNd+4Tm!xzD<%~XyJ>;Q}0W!R*y9nZS3YrO`v_-5D z()~X1*9*p*!JM>TGqJBYhpvQUU016k_vr&9KSwfwm79o@%urh_z@Y@++v? za!pN-}aPl8@4wqyLg3PWEroFeYd$`H#Ii1Z{EKV9NUiXn<9! zz6_dv{tR0`dl`@%jb_15_c}7yK*iYI4-Ue>Tjc zOxH~G>!B|=`3|Zn(Pj=VB>&rh;v?w<Iv(c2NZbd=)5nOUwyKLj&Ih$*#M=s6%KOiL|2pLWd5M+@1EUd2TSG=pZq;Y0 z1_)jXZkxZAmLbt9->11|th{!EANdbf2Ia1-=nc4A98M5%-v7-1<24HdO8V-}(6=xx zW=XH-8>L*--lCun;s>_CiPryjJVvi8UF7yJWSys3*PUJ$ZItL1cTzN*Klp$wwLPsJPE)Pg2Gr@c-N1=qHxQ;?unbNA8&D=>to7n zmh>O=-H=8xIJxnZ&wH}QrxnHXE~OK~M0n z_ACC?TgfB?NG7~042GvFsrmQn_*N4((7PqLgmn#OCZ5`I&tq(@ojBtjsB;}J&m#Y6 z_|v-^@$)_;U@p-6YOb$J10cmqoM2wlfghhLy_JtzCI@lP!hyLDpY^S1eL7Lo2jp}j# zR%_Eo?&qbS4Bt^>R{12F>}=EYzF)NFgC>^t(0G&v8VF@9myxx*KcBIEkgqWFBK6~L za$ZP`phP7)jHNV`kKS~TsK)WI+ol|+C!C#`_;5M55UdMK1ZTf|xho86O1VRHXf=i@ zRE+HO_{NejIu101s9(H8gi~TRn=Eo>+Dy#!8imZ!rN)~9^!EJMjO!26UcQvS^PgKe z;xi^t8u4xkZGu-i$`0x8RZ<4$M!MqxsU%#bz-qevDVHsP-MqI^?bg`WAVV3f zW)l23&A;ONXOtm|-n8XCE&I@uA|uca(uqzdeId%@#cKMQrTycZ))8zOLeHj+`{!|a zfzsW+#t^m-yJQD0vn8m9hL)F=a-#C@nFKU?gbG6s*r|D(6U?etL3=U+Zd9RMKt*Vc&6@09mXE$%*5@<8d6+)@p;TD_JSfObl$)rmWWye5LS zvj?YmNg6^vx>dv*&%`g}z2B?O8OC~J1UrmcC6w(KuGe4pLpvkVYD{K>K%@B9YxXr^ zt&tPt`&nR5Ehr9Ro~NeEu6T)gzTeYpQN*lXu{^7~=hwmZ;Sf=nR_Bl_psGCS&i1_u@maOU78(hf-Y`TByg4&R`qq2x|?8a+X75wDeYW zq2r&_l6dCPYY6I0ATPb#)_q&kr+CYa!5aN8FP+knqqN^g(77cxSAx0_2Hcj1t^>Bh z`1H^&#WYUsy}|O*f+&1za`IRs(j&VTh|>rJ;z!f=yUrz-0cg!Dw{_Wis#GAEGTP7i zwF}yG#IYRCLB)%;3d)582aYo@w`X?9e`iIuwY9|;D7Q8m#l^;!1K>I%R##D3*=`@6 zF63!5mhNtK`OB$25SOHh9AYth9{K76>qkUn+GfP26jqz#!BU>(cq!n2aD&OI;XiNw zX36wI21<{`Z5tPeAs*M+h?1AdiESVW?aWp~jWI2wuIwG;JA$!)j8!Q zUx`Ub;Bz=~!*Sm{(&F5+nLO|9Rx@QGWvAnJJnJf#7H3z(QSaYvXsWn-YNyLb#>T+F z@ZO40e_kP}>^qxR&ZW#gar=UYd3aiRx#!7_jCE)K?6m9l2ltlFkx?M4bdwEaG`*Gw zT1hQ_5X8v)$^)S`(DY!3{d0Xps_&E9p`1=-J8ZZ{p|1nr8DC+}3K##^!( z=y?z_U5WAW{=vp|Hm$@l#1MsvCp>>uuR&`JDqg{t%wwp=0dhgFV(s3PSLAkNxtqb1*|CAkC(cgM)v@ThoTg>A47uMv^Pp8?n!ZT1|$iMb+2>hpZ`jBnko!^vK#-7M_LD>~4LNz*>C@N^V1v_~d`uiW~DfJQZ zO#-5vEBo@YwN*urF(Rf$Q6ExqTpKGq&6RgLaiKzi=P;zUq%Cd&vOSQTg;F-;#ogPI z@}mfEtZTPS6C9>`2=bMatOgH8*SK(e z;J*4tAii*p9fj@WaY~tch}QudwG=eU86t7#E$6yxk2e^{HUFi#RZVReYY!Mh-xffC zU2sdo3%`q6eerGau77aDzJI z9mtOnuQ3b+J%^v9`j2x69!j5-fkU^V{!^casm+Py82m7g#qM&*yrb~ zr*F$o;Wbx$cmU9(ftj9lMabAN(ESVI zOhVH{;G1TJkqd3Nj-RBK4V7c zBjYlYqMV}QQ7xh~5D}&O`qw6>%IO?%-S79ib z@-*c0=uWpDg1Me9m~HWOjeIg5Wr%Nh(eTe&1Bii0X^2DiPoqhBXJR;cljH=L>PgYk zdVhwGkh!wU%l*l1_~F+;#*U(jN)j8Ts8cR5ob;}pu!VLNF3Gy>K`=a7*igWV`6xd* zx@djab|1*|LSH4YF`16$%Xw}6M%MbxD+M>V9<;z5a3%;a_KRkHmiF>%yF`C70cC_Y zR7P%U=~`Y$ z?)e*skEUSc=w5zjrdxB;R;?bE(|(uLxb;NK8qa)Is|<}mjg)M^X3V7WtBA*b5As4a z8(^!Omx1EtKk^x+u_OXKq;HFEC9=PBgD4C$ZHGZ{U4BWEk!!2@O|Vzy1?=j<6UNlo zhP$RBwZdk1RQhOJ#2lnAb0zJLtbDGGl?H+H0;VnU@kgcAOF#pX2}Y3ef8eGL{fS$U z6Vn2tV}T93;tS6e=-C(_o;iZ?7N(bmY~NO@iPM4F;NC2~En2o4>|XlL>Xv=5W@hR%3p7(8OOO4|0IL3XK6Gc%fa7zo`v3y)?PXZ1Y5OqQaUv_Uhr2&|r?OcSbG8p$#rOU_c8!LoNwO zL}s`Oo95cupT}t-PvBk~O25;pHviH_rd9i5*yY^vz)2TJ4_TX&2iAnWCZw6xW5#ys zmfA#|b~k#(rwbWqP~BE*rWzLS1VT%(GQYtzXaj6MSFJxZgs>2Gh}j<|C@MqF3JMCX zu|og#^}_H(KRmg&T)+j5M_R+Zn|(ANbvRtE*jxIMG!{^;T(d~fKJ9;i5jZl!*T3#) z$~2oYH`sVtnIZ4TP2Ebcna&*(5JdOL<5i&IBiS$m2wkmUkI#xDHPhk4lEFLi9-n5v^;fav+h<2MJusJRY~M@!a$v8N9tDsLvi4i%alLFMMArDQU`yLeFe`4#PpIo&mK^mHG2apN8l^Tpzyu z2{DVN6qnHM;+1&1@K@rdSf{P;a<<`A6MNF18=kr&rT1aa3*vtMwn3&jxz)Zvdvq}j z9rB9xi|F6(FLD!6hwoJF$c039Uw+@OJ_*28EX<^6gtv7^gH~E`>_GlJbx>aDVye)O z9XSc)TB4}7Y7Yixc2-U{+;GqPu|~JtK8dX~4V^d~wyWX&)obcTmVw|7ZBpvRVXZxO zc^7o<@=kSL3+t;AfM2D!q^w?$O3F5;RM5KK_2M8u7`|ZXVNT4EZEo|#H93EN$*URm3t=Fny=5@7v@f@dBL z$AxHiu2ozosXD`KC>}AFk6*mczzP;L8w%55DV91a9=DODQ=%7KiNSl}ot6AC^ywSy z|)*}17?s`F1HZKBcw(r&_JdKOn@^?LBdUBmdcH~lnp1SA7Nxl7a zDu!BZgGK_vpXq=_Zu7KJMkG7jJt)S)2kvfVIp@y)a+gvn4m3#Rgam^g=0gke!T>*) z&fOpyH}JwS^&Sn%ca3OesDqa3l=!y)dtV{7mAygEoK~`&c*M?|;4p^v z2Q6azi0b=q?V@jFC4-q8Y#)F6IHL_FOxxwV32kqj#tAQMZw-0=K}h94hQvL;Nq0UO zuSbFZv;5EhVaLH5c$t~Y2c~Z=X&k)ilRIk4XO+zu?gM@0Jq{$9DzMxF8>)DqjbF(>bGSm zV>GHMgO%mXAX7sr!;S&SH^xw*(!=tfH8NnHHY|~l_R|1DE~>B5ML6IUnYnupSs@Sw z9NsU9X{{yW=*uhD->|CyH>C8*VZNQG1=fuJ9}m(d(sVH&ynI>0`0?rUF}D_9<3_>& zG0&YBe~G<6D*R;OD>(@858;NoAZl~7;HKNxa`UR`T|GVWN`2bhbV7`bA|joY^U-Gk z_xA?c+UiwgfriS!xXP|m=8Mr#+upJ2g{VxnYf62o;d(sfELL^@wbk-jsM>i{U8IN} zwpPI@gOfYQ?@ik!ZAe17Xa#pp7~J4)witq zn_o_WmzNc9XPwCfuIkM#!v!*gUH8PSkrW9s(Pq$f0f8@cO2m za(h)TBDH^!pUq-LwN&6yL56;6rP-c8k!-e?`(+Bh+t5hK(s@G8XZ1IR;Bo42h|48I zpw(z2uEjbt^F!mF?3@}U0b>g`FZXK@BjuK{r6lGhH}1nFwYWzk_Y7J)`Xa0*K9+lA zJdf3TAg-MGcDPKdnilRtN>iQxL)ggF)KKTVu`Y7ycR>2D+_MfymY5YyX-AV0R48lX z(qmzv06O-qj^ASLE3wh`Q2DfAYE%$ouV$Y%sm1oR&%WJxP3H3l9ha}%yDJi{{wmt~ zypua~b~*CHFSs!7EF~ATDT06QYGZY$=GmV0*#~X@`s|TYVhHWd#qn$S^_zZZ*Ts-6 zm!88QF7Z}j?e`OB3~TZ=BI-TnJD(?u__s#qLUL*%nYTvz+jcqg5ZepK3|b_3mKLg2 zC6Y?7&0}=2E!6Mm4qCoT$IrG3hKnS*#&T^b2E1n?52z`mah9WZL|o(Vr8x)- zVLp_PU;IYGsY6?kf9ZL;0|4|*V(~ajLEGsghHkagOdc~tr!R$a?1YJ8k17w3nARR8u?FI0yMxbXMD_UdPjfKI*==I)Y{2k?BjY(om0z(K|;Nxa`>G>198mn`~YF#f{!aw+m{@mPlM9W)( zW-OV%6rv$hsvl_wlh5Ta0iVFf%UdZ?ITpubw%!F63ZnZcB}U9gBn1G$gEjSv6=&E~ zn%AJ+QiOv*vRXb;C!xpw;ztH=;2n zHKR;3X0o`cH3AB)ryJvo(gYlLPjfnXjCnD1T zRCc+r(~dJ3<)0yb64mzH`FT!soe`fu1|<*d>5e3?*G+597B~0PP_=kwUF6oel6~I< zIaMUY|GDvUZd$cXXQCPx?0XXW6~(F42bN_YZP)cbmIILMrEg@O_B02^C;>{J$;R+> z+fmJfZ#C?+TiXy1wtiglm_32qAD6nr%_@WKcDujsIZFoT+0%YeDH@>}@(Z&VvsTpj z7ftHN)fT{v)wz*I`X+krDvP_2F)DlX)2|Jw;=v>O&Pyy6eLSu)Fz?@DUj;lFvD)$(Kw05f2lR$y?13g7YO_ zzwS*^<^&-k*w%M#!TiCn9o3JrWV~@HPP5^15r6iXdqR#_;={Z=T+R((@feYEvH=y@Sz3=&)6Es zeH8YHkvUo1RAl2zM&GIJTP6s-=X!5xgly@MDSL?*)7hZYN%BG&e4f1_(A=7Tzve?U zzA#VpM>MJ2H6`D_(^tHPsubQ#85AxU5I`ed8rF+scD~=>8NE4ZdZ$$8H!aoEv+&lI zNO^-MiB_;w;tOh9*bs#)OR)1;$#?((1=YKby@-YN??cviW>q3THXvk*e=1xtB!6T0 zG)Wf@d{7_K+0YqJxfNZ0kB2(5-@XB(zU7tW+4u4h0S&1D(zahY>APOD2Ok`n%hwJ`_-9xi2lvLm zmZ0-i^m~wvT9{&?&Dso6UGBooUc$e`B?vtdRF;r2c*A4*RHahhbtpNymE@0a&eLbE z$Qq&|-Zg|jdOs)v(dOLZvp9qEf-h{EFg@KWXve)$WAujgV#-_z6PeTdkJStkA;C@k zbg5>s=9T>)UIr;Er7AXLd=^99t1trQqqnH6d=rs8b~E}8BDlBKn>;=B`*(lJR*qF$ zY24*7qM+~S)_tz9{m)X_P9y&74#WALh~4)?@~B?e1fFux(iNA>J(F+AcwThs%r{od z%O<6PGrz5-qb3zDto}uxL=jT>(fvWQ&X$V za);%b@^ApG)f>*k-0@mt7f0{lRTYO=Q+up_h8s5-sYgn*o6}{kc}1kX!jnfY@)Ssj z!lsSXOkBD|f6cLNSiUvgMz}uYpg|3e(u!_=NLC5baq_h2whyLn3tSR0gSZFyo?*ZB z)!cVgr@;{Gbk;QrA;7h^`v!Qa3n}xtMv3#1T9kAjlnM_uxNa0qoArgnpWoh(@3G>` zF~(q7pH>qrEQ)FrehB`1E~_LRU8I7n;>wV>U8f4qyq{J@AM3;k*E|hkSLU*Q}HOu;mQAnM+)ZYK2f!th_TzU*wk z01dE%bP7iq_dFnl@*dQ@uN?^HUs7a=IJFmYG77^>OL)RqnURc7OP^TCM<2B$kO@Nw zuG7<{w}2*o%y&NWn*xs%(-)T+5v?fl=S$s&1~xOih=&!n=_)C69Ob8Ja#wQ$jWG53 z9o;mS;`r}hA>X_WV3`?DV$*q`9{2p;Z7X_bih2btGCYZ;#Sq`Hy3AE>IMw_9K{(gS zap4OsJr<4Ks!^bpVc9y7jqom|W<_@J@afO~fyNT-EIJ}4l>)fa#^6I#o>gqB@skh` z*-H+Q=$Le;8$)^=x9`oZmqbc6Zl5**5Rbv(Ch`vW7u+*bWeR^pV<$Mlmhf7%Q}xlS zeM`Q(2$?5RdR$NFA3VwO-Di3w|FP4)V7t)WPjX2XmUn;VRdZV#Ln>&l3pWVWk7E{d z-sOy5uKaOh-40RklM->>Q$j7)CanIeaU)87=D&!q+^Lcx1npjc4HFA=QB=1>rxFa} z{qA`^f`|0!ky3Ejv&TL(y#Y}A`$5vqo)2m8@Y=RyWct!v6#8=)W!MUVM#lCX$FmXk zyErB)O<(Z7v3!cLpgwQ7nL`82V`d;Ao7;{@DI{O_FJVN066be}PRw13FOT)8e$gxw zy1NB@(6b7t`bSLapZn_CzT+Ng(paug2$s2w2Gys#%q$pBX0lT&yG@mg$D$}u^bg)_ z{fz|^Ui3t&Ig|~V!A{#L0>{w-L&M#7aXUA`!r)t+jR}F$6mIH>UMTiRZj4c2tR8m6 z373On6fGswr%GL-L~#McD8JcMDnaf~2tO;{*Z3?^4NXNBo8|7%rmz1tHqMYf|4~|D z)L)z=YF=_A=$9W!+3uOFa2vYtJyvSvrb*_rW+MOj+`0XAeEG{(%aj9?gu2(xSRL{te`i5CmvRc?a14ibdcA z;H^jMf6e^lM_WnaO6iJl+cp1)WRv*GWJy~Cf9X3B_3h>;rKKLBr;0VB(xC?XiO}@3 z6PIQumiDc>A1>MYT;v($4`n>bLUG)+Y6VvhDb>{7qUuAwkK@DH131UZAM)FLjYdWz| ziEFq&&AkYb4KwplyASj~hatdqcB|N0|C3O^CL<%W`o4Kwq|-zdpOg_OZ7yk)jF*2P z_U?91blqfC*X=4$v)9zvSR6f5%n*i1<%KtajflU-m)DCGz@^nX!9px*uoF&Hg&m(C zdpPF#Y%*v~*mk>7SvI{j-g+hNd!{3u{0D=~4+(J=xG?Cb~MjcZ7L6u&ZjS$(>L&uo_*2d5Nr+&)0IH;2g>S1VyN_x@zOgCiWvG|3G z1oRBd&d4pTX;{Xtr8<)*d|KOW00MJY#|T*^9)&34Em%5W@Oh$XF={c^>uQ4={@x#p zcm9@TKe)nMmJL8tv7$;MIO5~ts5wvwP5w>xkM&P6Jqm??yIkc%#zSwX^*I|(O5=NB zZGl`%b=2N(<&zQPU}(jgL%TeT$i5_^ie3IySQku5`*&xp_*Dz}z|AV9KBQ!Q28}C8 z3&t4JxY<%8cN@;bhJ!~blF;AYax3dM3eNvh>$Xz?;+4Wd&(H75z(xFg=ScGw3rgp6r!YH3Qag(`5y zh7bf|GR^~g?{^2dBkLqhp5M0{p?G%aZJh>}1}-QVxMV=$_QCo-IsfE_OPjw1Ba#Pu z7}1GDoDWbE;_|_bou$H$Q@Kk%3`>3U*a@OgxcOXVBDQS6oP-XFKJt8AA5A2H;-*?- z76$5EMzvn~qtgF*a6rl%q>b#-;otX5UC#qgM1GL)wP)xW}5EH^I?J;T-CZ4Bv_ zNml9j7$t(;Jn*(}YNm!v#QqR00rWp16-BJUtCOoe_sTAnl;u?lkxma{gnfL(mo1~;(~(p z3VBFYN|~CbPoCDtginBeGj@ZsSG}3r=7O5mt*h1q(L#=CRm=1&$)fG=A5{3DHY-#KS!4 z0q7AJ+&wD_@(GJW+#Kch!Z@12eu+f#Uhj9|&+Q%mk}fwFWoE-f+ruZA=4KKCv8|(S9hxG-&f3k>$Frd5+M#uMjj?jP-mvMEDm{fkZ z5zaCKsEK1Hocw`w+|dTKO?!Geg+7Fgv-i^U4Ds-5*~iFexAQ>35r21LMl!G`ld|&^ z3kAmG1Ho=5`cjd%1G^svG%n19HLyo0FPzTI`jqgnHJ5u~ng`lG(75@pwqRhDD>+&b z#xWp0T7)O0zmkONn~Q5ish&*A!ej#Z-&JX zb)e){SqL9KqEa>hLTh2+^#!b~;VO$L4t=saJ%F_h7UQt!3$G-b{1g! znK1CfGt_P0LQcf2vi90QsY6?t1GOV=*Ok-@^AA3U$ErGJf~mHBj!2MYFWgaVTHA`hv#bK6Y| ztDi%z>z@x!gK@j(sL|5-1W_Q>(;>z|Iq+^tIDGfWOP7jIQ}7A9JWrTEnj*=Yi)vk7 zm)UHr$X~RWl|qka{#G?%^FwgxG#=Ik_ZYNFYR;cf)0vFfF1+i|x3U7eum+9JTY?p; z1^Ot=@ULex(^d`^$|Qm79c;T+~%7j_^6B z8D$L$B{xEzt8JiD=(GO=6Ht4^AV3`mZhF?`gf1e;F2vCRHt0TK}4os8Jxn z%T0*2H*r9uOatO%UqwY^cjazL_kb(pyAxnrI;=H{$Dd)6@`;FOb3>Jtqv|!kh+Yh( z9TwFYK-{zLAw6$3o0K8{;7idF*T1enl(l%$iroz;FEa3J5cxB>WsXC$o+sstyTKQcY#!m@~;E8bpw#E(n>u@nP zMEt&}j-W3s^FIe-_}AZ&Syb)s`IEC3-Ljs}x1i$)Fw{R5R)ndlg}rI=?N5A2f*<(! zU+C%)@C#S6+cDFZyIeqynK1^RUD3a-bmKnMz>@H}iS!nOg#g*WYIHu~^`L^e>ft*x zB%tT@f1iob{`ViS{_`<`CJ=Hk=zO~*XL!4IpY`uQzX_uH>UN^I_djscJ{Ul}C650L zKekf>h!tG!Xs&*9|%U5Uz(uDS%scy~&3*NxWGmB0QRv_?IU` z-Fda?;UFK@$SEEa{oM0-lmEE#&A9Hk;k~ktl#j$bP6xWWj0|s@-vB@z*A{E&9T8d^ ztHO!@z*~@x&ay`B3t*A?EarYI1>0DT-IVM-!3&O}SltU7-9jR?zwhCOPSm`5;j1Py z04>>LqZuoi=Ca&{iB-|85Bqc#4x8G})VQ}>kKHcVKaZ+(YTxws4|+_>Lq~hVY#fFS z784RI4u+ncNBJ4fU;BS7$^3-x)P40&#_XT}Iu@lEHEAu0eQ+`!FCodD_i89eB2~Z4 zv-j`Ssx(mHek&{g7fat9SJ(gepIctGZLeB&)3R+FYjNpjE!(zT%dKTC+qfCaT=hHe z&-Zu#@A2qy?mg%A^nn02$!P_AIGCtYbUJlGSwTT=YUHvsSqb=({DhtA-?w)hs*O6K zKPL-u z)1K*ZodUvb@opVtV~u}S+CRGgfb@=t8tN?>`95UWL86(R*4e7Fkr?gP+H*t-+{^DZFW*aR{y9unx3ofH zeP)MPR~s5E*X|kTtmSu=TZ?G_@*kYEoZ4k|B+jJRnpEE3zj~Vhz5Pu?lKmD2_RGRC zbDJ>fBxhEg4~SMGoM$qtd4 z^`zJ@j_Gsp zs>0#;L{aZ2xv-p9co zwqY+qgpPRMuw%%SL0_tXSZeW5wgF!F6cCng1n(2Alk@g|`oavqJ+EoMnDo^NDENn+ zJo>UlI-K%2D22AEPO40{INxZoC7~2+07E%+3E9WRH+XLv1!}mFXqF#4I8jSx3G7sq z%7g4o@poYE6k6iB_bntQ+Z+Z@4!(YlT)`H7IN}b72^C4`ie22n0Vu*=AxRpwK>Roa z1`+MG2Qb{Q%O(P{37AcqlOt=Th1C%%9giN0cDiKetP&*vbzfEpaNu$>`v;pO?g97b z@OrE65q@3jPrn7=)Op^oKOrdUQ#bSbUx|=#0Y#KbstR(m9z&mdS!B+P)zdaD8VNih zSt`1v7JRy4cU4>o>1eAjw0M1*N!*sHcm;|3PPHY9(*FBJQa;YC#tYTt-P>BC3Id(} zb8(*wxCo1!GIXfR@|O)rrA^J}-+{d2_i>@-JV>;d5$JHN+y`{~9uOH?H zqfdDqWe?<2Yl@+8ssW*zX$mU}V8%l|`w`t+W6R$5pkX-JK)aTI5*ytw_k3R$p!J>C zF*yx`aXph{cCa23W>)q6q6L!`{~20u?J8 z#=}8=eiXY{!F55eXH-kjk>5#X9*JayW6q{?JqC+12$K&`L8OpwR1uz8#Xr;UULVt3 z^LimTLMX@?2lF{uz)AlG4hyAf)R2IOZ^S&J)6&DJtouB3G-x=Fj0DEYV*LOxCekKcxB#-2j*FmNL8kW<-jyis2&y1 z?_;M&07uc##i!TFj(_Lkq0_&;8lmCB5p;iMVdQ`g|Hz=S!_PABbi_}`NQsJg70>-A zhEi1sz4)9YEy*Ty6)m%YRI`)P-_}lAZasU>)yg=H>N$cIdK(uII*Rh z02UV{peoV4;RNts+OKsmLCn+!C$gmIkGa|WuDtdldGKaNRjN~8} zqQ{Hf8h{jojvXNi)_n!zM)1hWie~O~H?naDa>_ZMCH#vC0E0MeE%YgbrGjq+R=!jp z>4tJ1N>LPk_lmTYt^qoI>V?y;gNfv)`4U-qf_#x4KU^q~ujNoua6%=OmqB`#zUn`Vyh zFibnny9-TF@wjIHP%{|3Es20v9s!TcLCl6-MMtWivP1Fvb2AgHAkv$S^B{O*eKg=H zDs|ga0B-+}zJGz9MlLO0f@u$sDIL^$RRr(7&wF@^Vw-(;qtR3KMsbYtW5$!}G*i&g z0h}afl3Or>nH#0vk4>W{M{}8=jv>KmQy>LDwVaWsbWxx7n-?8LyabxV<1ru*>ysGh zmXHx@!`9ldU-059aklCoZ$%rEXN1Mz^W7H$qZwf>xh=FD0 zfHl|S`Fpp7fFw6<{U|=3K{&9f-f!?h^GY^_ z$bg?0Nx$jA&kUp&Gq$t(6!qKlueq4ECv+{5c2K7?3};@sbG}FNn5S+SZ{$;PKgx|M z5^7;6l8h=J3hs?*h!J-Yk`o~pQW$Yzc{%`5j5LJy{153IB@Do1FV(;U?bX1}e(#BfjPf!9k ziDt~Ow3t#1M#1oJFpk3hc3VOH^rwB(tmJ?RX(Y?AIp=TIT#+v8qY^>dvh!x3;hOIw z0j9Jq#kI*=`AFqd_l@#g4`pS=y>JFa{~&$)sq{I?M%A3;BxgC_=^jfR2oON(rHJKl zdLRE%?)e3XVTB6-q0|L0dX8cOel;njM>s-vf!eQGt??!xy^!zPjE@p$&?0*e95H$_ zg`;2%Sk_2kb--LI_=gn>JW5Xrdm4;i4aes7V@N+X^QFu-=J+!~nVXT&Tp%n3L+?-= zb#vsoA=o5hB8$wZHszpxKU%IVGRxFSPkXxLe`K6YJn8U3AEuipNUb;AC4-(A_#jEh zkP{xr!P!&K-Z>w!jiiKziFK{+(m*gN&z{K1(i5G>K`wRN_L`cH2D@9Rk$ut@iv{XW zJ}z`3!<#Y=%UH(ir;S9sp^Wvx$Oym)hcDP=K87p{_q!@d{~p0RlovSmOD-tWN07>K zb3w(q4#sfOVaSj88~>U9;`iYAkuq)tO+L`9Yn$=voD>FpY#a3nsKb=_c+t5z5)H0D z(rEx~z3TuX-z1eb?|~A9Ln9KF<39pT%m7I)I#S`lJlGA!cbN2TPi+T7fsNpX69?Pd z)u1xIEkvsqcb23@Xadn@jMH%-xao$A93cz@%fcTpzT;#Q#^tZof|tBa^aP&tJNJ&B zhceB0eirIy2jk(Rgo?Hv?LD-MDiDdttH}J?>oQNmI%&F${%i zUc@mk(AhO1O*?{G%;nR?>ZZg_m$=7tr0$Z>LH=Fovk`&fGk;ouDLKeR0eH}P`&a0g zf=-gI7+Nr~U4x|t3S1v&ajO&$l4b(-K+H4`vmsAy$a*oN>lPq8She38Dk}d9E>sve zQq_9onX=X6xl6@gr`Lh2f#)oC@)JE;Qb&PxhS?N7=IQbq4>lgJ^`>|>uKS?ntb+Aq zZXK3pc#%^yDg^_$cIU}juzMo>k4!>2n!nDODJVMfQ{U=UD+Bk(TWOTs&gcsV>rVpa zdZ>*+$@DjKVKiNesOhC&o8{QY_@{d7fApUYa)j9$exTlj!V*=BmoV|-JLO`Fof5g)NYX+LCUf*NUm5oy{Bl%fe z;$gPAj!L*>q{SQ$7w@W`@_6(4un4Eu7AVbl9zh78*;yUdR~1J!IW4ZqJB%HmcFM6O zgH%a?;EgzsRlMs_EP;IUyV1=BoG}DWV>2wpP7JpTnV5(vmPiwM-AxBuhK_>`56o#5=|FxnoJpym=SD z?~^@dCrel&>F|8^h$14cgqFi1KXiwsZG*xpS*F)eiV5uS%hXH7nPu=*F7-0gp#g{| z9kHVdb?o-$2LY*5voc!+)8mKlp>4^tT#(!Zl3fU64WH+=xmPHDhEn}dG!BT)tVSK; z{J~76B|9S7yqu{*@_+af#ApZl84`E06m&VTe&1o6G^AZom`m9tW;>V0BiqGCGC@T+ z;W`Y&D?Zcjd4!o?2t!bGP^qbhc&AanQ@hEp^-I*_gvfRFkw-_=`-CmT3Ko{dS# z=ftPA*7-v#dcRzPO2Byda<;{tMO|g)_pm4xMVJ&%BG}GDZr?v|$2r9;(>M8L3n?zja?BLiv)}Po?SV+W*Lb^;V{&~FY^H!nfYoHi17L1M z#tn88aN1=H;W-8wCYAotn0mDXioQB{?bdb*RrxdFF(eY?^NU&=jbA&pwqrMX0=p!H zh#Ne%{211qjVX}I*w-chC$%sj-zetc3frD2=ql@yMFH!c|3XIRfF^_6^(|p~92(Ai z)q2o|k3V2E^shff(G$!zf9b*l$R}bIU28T0l(>fSHsc{Q99*-t7VE9w{n88wx|Bf2g5LT%?V}i5Ori<`l`ZmAd=T1L za4gHJxB|EHSTygczn1d9@je9zBl`{z0u*9n^8*B%J$l6?OeFVEW%@7*Zy@8>4}MFL zE1gW1hO-qs(X~4UM9FIv5Q2ocGsS)amfELDrPJ{WTGvP*TWVnY0Xf2SM2`7vcNJ)e zl~{GtH5K7IeHVzr(W#AsWrPF&^BQaDBNhA9 zu$6E6NQ!WLZRK%}@P|P(C+v@a*5=384nK7;T38_Z(ja54QTJlLt$l{aplD@4`4eg9o-rWT(1D*e zevmt*@$>)NIOevN)kupz4e{H4B>Qi4oQhP2`7QYD=faYpdNB?I*U_o^8XcMAw8APkpv*g;W;(h`QvV z=f@}p0vV&;GNyb^F!MyXe{tfgJcNe6Xq54XH2zz&0_(3J5Ux^Cu`{dq#;jnqZ9Xa zu?PZUgC9PW`a~$^`Moq$*Nv$jxdHcmwft!;_i(C)ZJrfId#TYrHq>^(fqG_URK9_3 zQlAI}q$Hcvs({>FqJm1PA%jrbaop3-zkLoCkCHjt3O1mLh?7dKD(IA{{U4$IbC4-b z6#<^SE~gKp;sxu7e8Ohuoj{>Gv>h36p|Jrd|7p z4+@|#MCehlwq#=D;!BHugw-zxqH%=peQdg93Pd>)PRgGCx}VXP;?t99IyX(rzd1N3qgk zJGC$!Xzl`zxiV>z6L1M|Zk#{2(8%rKz0o?f@sRAd!uISHUgkzVS+HiI8+voC2AIg? zPuLkmaSxvFidvFsF1}FA{CbWaA5&vu2$xH$>|Ll_QNl7k1$1zJN4LHT-h-k-3Z#kL zBg8F5^!db-;7WV!mp)|!Qe>VGe~QFTdAzZ}aK8~@6u{)1Kzzac>6zaR-_sR4TcrBivL$E9Up!|Ld{ ztA|P67x^dZv|`)@beHD9pI zAUJkh*fZYsklhLSy7+y>Y17%b)jD}#3MeJGmbh`4g5;F8iZ0EBJvnDN@#UDAX?D)| z;rD-&IPYhpSQ;Q{h$-|&EQczosbQ6dO);$_GF-4xjf3au-PvmAPSd*()u#THT!+UI z2?9ohZr%8=dpW5vy)GS>{$D>LX4{%o#WFC=k7kQ76#u?*rLl;Gzt|rcKl2h(-`0Jc zFU5w}*`CxvumFvPW$IZ+p@h@_+bpv^6*|y==bi|^Qa?lWXmD^>lcOCEHId=S0~g0n zBijw1S#pL<14MEo6+m+)q6hsbdox|wK^f4_iLbf{RTDyXF91beSg`VMtkkajSgNKr3}%BRV?-uh7AWvhQBPxx5!N# zY6d^iC}(DTZ4hb4hw&BXhwI>k!lRpz4#!t_T@ss0;5CiQ;}4Zph0Vt4Om4Zq3IpW!Qtr7Y zd{*69(tfZ(Xws=HuqUauY6fC5KuCAfI15K834Dc}d8YF}ZVtmTS(#^#Y7>}}id-m5*iScfkD-lwIZQ#+6C{79Ni5kAsx zfe(q4HNj}Edp;nXgxRAZKZ}{2T~wI?(!}k^85dc+a{Ij|U?@xOIBW5eb<*m270 zj((63NBl(>h*<_~`*Qn{VD$-ji$I5kx>7-!U(PYpVNt$7W5|zELPaBUQDg19#j_DN zK2zbvTDsWYD!x&Dk-3cmmJABtEXBUVNTXGP{g zJTE6o`;>^t31N8~S5VUW4&ORDj8;q&?WdIcS&>`y(14nyoRDCiwk%%@zcWwJ1gCIO zqbQ<6XH}9c|8BL|VGpT7!Xe<_jvrRL0s2`^_y}}wcdDn!nJzUBduPBDPj?WrbY!H3!;57 zsii5m6qCd{uXg+AiD-#(;Ta1k`ag2eZB$S79KjKZ9HMck|Ml_|jrl-=QvTHjfHLq* zkn_c=Awt`R>>o}yC&;5j`%EhJ1M(0!y@f={xNrLi7B%Wf$w8(C`NnHu8%bfsIlPd0 zsXAEFMqre@$wa6y9Ru6LC9N=RZqxu;LO@D*6E_dgHZl@L_KY2VaLc7_Cvxh7IbmzH z&R;#E**dCVkZ&q%L+DsvaTr2>%jGMBPXUOOvrZI`tH{^{2_O!AvQXu-i<6L}yvgX5 zRvEpu?r{9EklXyR{t+r?8}nb@_R-8R@%@Hj`O4%67$Xau@s!5=&ZVnN(38Ix=W%G2kdIl@e*^ONJ@@_$D5fmI5~dbkoQ5bQd!Qmt!=DK5e;!ZA z03)%B;ZG{mz8C)_%NY--Q_Y%@CB?#_GvY`XvXDne(sl@##Z1~bcD?WZaUS#Q>SPzt z?gsV)96S#2vBZSN#ev6!7sG*umQI9s5-OYU8b{MBFfH|>!~~;;uVzxU8bmPJ*w50{k-_}Pz=sOAu8Efl~y!c zRMu_MGw$^3uXm#DkCQ+XqyG!5{ad z?~oclx6Hgqb{12=Wt;wylJaBtv5{CPy zOXdtu z$ku$~35b%e=jzCu#D_S7G_t8J_5ys#Zp37{1i=t-EU_D$FL1tunDL>zJ=94IO4|FD3ZPS zJ(OK4_w?iuXSvU_+VUmt#-7Y~W=4)H%i zI^4W`efw9@OlMWmkdf+|4=O~AT{v0H#wWa@^z_#_r2L>yE#2hi7th`N428Rz8eL_l zm;71%`Rz`F_}C0~y-F&HP{=;wjOki%l*buU&>Nmz7<#-+#y$=x)BTZA624qH<_28; z9fOSx<9f_^lsl>< zg+nPu46Hsc{WBJIl?QfCIuPKWVmIz-v{Q^1&{>P5X?I^!V&7WG`ZW9jkY-&<=%7EW z5HM1|&T%&h2nsq$5jsvOKO^F%F?IWDC-sd6%^4aRYRvx|B+JG*92y@cx39fiTwMHV zWypcc28+zd$XJCBff!2>x=4-1ZuK)-)W@Sv7O5_#no{%2IyA+T7$ zNSziZV&LyGxN^wmRwk?h#`v28iIk^q@qW3_$v1J$r@SD_*ohw+Dy`0@Hh@>tGUpRu z-{Yv#X5Wvd&By;2N|`%m%B}e3jsNSTbGLi1R%k5CfaoIfJj>iuJX+~Hj44oAPa+-DC ziW6?=TgDW{sEa8U(Pl}B(?rQWg-AIin<{pGCHFkx5r_j%zHjI1S8Z#U{-NG2!Z0`? zj6Kr&x^diB*t0>aQ28paQ3Gu^4cQx#pW>g;9Qw@1!y^aAp7`?y8*aAu-CVQbjeyI6 z#G@!WC6yE^&NLwm9rT@0Jv1fn)7t*;U~dPitorm6?MhlR-G3J}6L8jn-4 zfV&;@7xEtM(4d$_L}#WC8A_C)r^f*OIVq`*Xhg{H4uKf=rJDnZ6e83%l}xi#q!e)$ zmn-O~Z%l>+JK@W4d1WnTQxqemc6yxdjUi(lY8)p^-jr)7`C&`zJBE~^jic>OT(mQu zgZ;mY?n?y$O)H*=11q&GAz!vG@cW+gJg~sjx?ZEgi-=*#c&!SKFqMaH7%8Sc!c`TW z&G>8&y}!?ZBqr`$4j141-gGEW@e!BVN-rpkAT=%EtKoJ>GBPw&^?)3VACiK(4z;}{ zf0yYU{XC&9tQ(h1Ms|{awnOR_eg&BS3mHQljiA|?#c{q&GOz6?wW{hv`ZS{hiD78&Cu_gGwM|c?pdF}RMRidmK;P@DPQ}81Z2BP^29I1%W7Eay-n39h0f{C z-K)Hck(R#Lw_=Hm9-%;!xIw1_E#3}ig5@JqP>y)eci5#6JUkxM!5`MG<3Nst2@ zom$`LHLk}?+p@^bYp2Vj6ehyw(MeZ>^?DnEFOQK(@c}w6Y`n|K8#FAbG6~8Z6K?mT zG&Q8ec1q6EYl)QPPZ{04e?Sj0G(U2JoLuk}a=)N^w*|9`Q$K`$;e>bK7aqdT`wk=I z6{fInGWkrO=l*$7{u13!oO)Em3ko4#IhwZ@+cg>y_59MIKFrlHwf+}X-at?SPrF@P z!2Mwr)8RbsLw+{=Fg#y^e#&HgGXAw}F`wRtqmoUUp{yLRfx%7#A;U1cN(}6QnJRr- zmW9iF8zWOtlg({Ng$wfa6T|gNm3JoYN}^u?$sp%_ej1jq{`rJuNqwb0b)gGKr3?RI z2zXZd(CL%ut<6wz#;V{ay^%608To{L`k0taTt&-+uEBK{m*8cOr1#lv*=)RVcag+2 z<)k8SS`4PEPs~JlpCgfR3e{sM;xiK%HVsI}jvNO+YL~fYhJ}H@5*FOey(^!R&Djab ziG$K9#d_MC38=3!ZCBO<(`t4gyGwJoar=1#ze)+6G5qU zi?{;RQ_JAngSMzMiET9I&qOuZ#OW8Tq^%OVE6qrYCgW|a$1@|{VnNl#l4cS72@|$v z^yC>D&bFijU*oeAOE0AKhzAS4$)~pUb1LuSrpX#dvPkCheetm*UybLX=+8V2IcT8< zHFOoKm3kCJEU)dNl!_$*;awP1Y?J=*{=$_}Yn>qthj7@ZOW3xRqi(sQSNg=bH~z(> zFErrf954?zR>82MQd@>>q}pi;n0QdrktFwB$NIXAH7yb{gJCS=VXFX_w^Jo+X!V5Lmbu`s_Kub;TZRI z9EDGy^OQ%VH(Y|VLF#AcoqD|A?uRp7KgiA$BPxNs!<+34I4_(fL8~GTMcebJ_i0Rh z1_MJGOI60#irJsDd{(lNE0=7-BpqazlN1Wz9Nzu>ajbW)oy*h>A89pENOKN03Cfnu zo<*}&sU)09Z7I>v6cYmpwJ40aWQWcmdy#uo#y?9*ohZmtf?sz)`+7o=;64*Q6viK# z1%I4yIZz;rN}&G8(*fm)4|h{3uXDuT#?wGd9i^u5!@bUB^BM^`U{=-|ocii6@#j~o z?9;wNOmjNnTyV1Ezhqq&f;Z@romic4C9x?IK4uIfR3oFC!Unb z{z9f}!o?W6xU`(Q0!riHQ|1S0KeR^y$9mZj>AFL4Tf)WRVUf#X-tZ_>_cEmHE$9u)XnQiSsUHgbi>hn z26YtP7rQ!bWOGbJ!;Qo6Rhn)rlvo~=q~(R}b2ul5P^?;{q7v=4b zZ0>!#_AMny`)tp}-G4IV0xz3Q3L#o4Dm8UI$NpM1e6Wl{l+4*p>7d?i; zy+V#Uk|c_Gjz}IQQT&wPh011S*eEwNf<(KIQ_aJ2S!F}V1iP+I5m-I8rlKMpRr0tj zcmX03SqU3B!DQ1M)799BEQeMo4pHwtRM{c@NSDP-Rc7A(<=Zy>@myECu(CckVM1n` zch~~;@3E>U&B^qeGakZ4S}WR;_&l1vZUmes*#`|WgD8qfUF1`{S=ip&syC{XR5QhW ziP{jh+1Gs+`R<)f()vx9F?_b{gb5kA=rMK$w$)2{Q&W z1q&&%jO;jH{?v`OQZ)fc_-a0)!hTbk5Lvt;O;Acwq*;}a2oK9pRb9ADI9$8YS+8W8 zJ!SZu6+@6vmL(b*ZvS{-CE7^PzqHi2j6%*iz3mcj8OJR}UMAkd!kINQ+PuarUHQBW z*6^HmWFDH@#`#~SXz5y0l=T^nvrj}s*Y1#EzP8t5);Tc#GXv5S9P0A(Qw^II_ zp$5+fH(HB~yVBa!{NN3twji+(meFCaLnUqXMGAVx0zz#(JP_g^&xvvHUA4|h)&ahY zA2i5>@&(tnMM2(9`5(x2t+WGUfkg^!2scZeE*6fv{!RLHMj-$sQH1FX*qrxPedvoY zuV*UYG|nnUtcTuNSQ5+BPI3a}QbD9|`={?%|i5x0P5{U)?$_O^yhOi4mtUysMvQr`q@ob zm>56kgD*53jApLUs0%FZI(B)^W6$xe#2kq5;dw0lil(~MdA)%O$U#0#-#}!GQa*zE zD|rUc+6Gc5fdjN1?;593Tq%!H^ok%>R#y6PFUX5pORsyyYv>pXwZYV|zsEBSKpy4g z$49-zM#}CM7NW#@4pQ;LDbd1s@$`ME>Fw<79PPOcpLR4|U0v<%^^17Xy7xZOk7d`t zG~CFpNZ#Go?D!2j`fj~<_a@x^I(mCK}Y9X+k9a!zsImUj~b z|5*DMYpd3e|h71?qDCF~8~{WXBg5sozp0_`Z@2jjr(iN7tvsdrmT|P7K*M`vC!9HY!;s z2l!MPGa9}jVw}|JbFc1QWix`x4rG6+=xOQeTR$V?mA46y9yp$#ob0ltB=|d+O}WzI zLtdFd23PHgUtD{(r@r~ARkdkUjD#O2|Mdw4?>baqUR*Q!`*vseE76nzfWP321#w-1 zBCmE`1vJ$32(--k`8fpoWn?Fj$R48D&RhSyqY}~>Dc?JBBmqiHr36-5W}p%WkY$yG z>*)nF2T4o2Xz}G}b+5nW&M=X-)8;Mk9-yW*(u<@>$o|wEv2`&c$1fNeo}8y=%XdL( z`_6@v7%lr7_lY4C`Ex&IqOe;011T3pV0Kczg)&<=6}e>ni@zItJSrxoh|2~eqy4=5 zapS=??YG043eG11{|3Z%vkYGid6V`vqFt#JdEu;-=}o1U>Dl6dFx<~Y08$7(Rd%gu zK||rJP9Wft`#sDaFVrOBl}|YRp|jJ+Ms?OtCPw6Yyf+1`g&Hqwza12tW3HMxi9F$g z2kh)w%qG*W_vj$)du2m}4dpDPnAfG|TyXlfAX9gzJLFS%{2g96GXv~n2zU{{SS%a! zI%DsnJR7R!kEOCiy1YdWdw|yEMnuN$v&l{IM@y!6PWuAV89;{&Sy+uB7w{1-u@GmE z2vzLglny?3u!byEdU?BC{?bc|oK^iSqD|D6&GVrAM z6R&r7hhmVn+2%D4jLN$=`dY(S$HmA8WRZw72K7_b6zu0E#r5sx(VofD=^|yMw((i+ z&aXUN2={L2c7M`|nbPfXLE}{rHleC8bzwFYEBE>pa3_5oJC)tKTz|&6K-?gJ@RIAr zkKeDjdrLeKD4L)@ie;^hE7@WqQK5FNjAqbbKx^JxAsoAb)kIDADYuwEEk2I7xHr!Y zb2~L!fj$%nbgSb=ZFH}A#YPc7W%GPR*R&vyQrs<8$Wq-L0xEhVJEea(c@P-+k7)bd zEOlTf+QtYRwK2Zk6n^6?s_ZKUsBC`d{K7`5cRSA+?1B}$6D$Y0KbHWTDTZd??=s(9 zCYD70hUCmIBcGNy1^MFaD-qn(*to6!hb5>+K=S{A+Gh@a_6L2$9FeH=V z;%B~US0nQSlz{rM3kPp0^;BH9oNrNv1ghU|Vy|ps?2n*d<2FxC6qn066oGD`V}-H} z{a#qR5f9Si!2X^S?@6pfh(ol+)LlWA%~W3N(5C362E0f~pKQiPxv2BAb8Lm_q)*{? za(rB#0jZx{vZ`L_YZJIk_CK|a*9L%%{;B#n>CVHIJDUXdgdhhUWsNgPf9GFV#c7_6-DZhVy+~=B0q1ik!-A4fi!IiI!~?Ifv83DoK6iWF}xCEJt<+{&EvZ zral;wgmWEXJ2Eyo=pgxZ!;j?`1vPWHmQ7B4l|K3&pvS z)c}uq1+gSwO% zz|k}|ZE^f*W=N6aLYZ~C75a{HObhOHAameJ$c798~)@oSNiVNpGv4 z)q$N@wj=dqt&te?H86N;YW;To6d@=y!bnIVic2x?1|Q&6UE1c6uf&`OQo_AT_Hl2Q zEf9-Z`Nezs1*DG^Mm+sz%D4|kVY&-TOT%}zwwW`M?-;vd@|xzf;}NE`ki5g=l;Wh* z#~hoPBOYpUzu)`HoxuSr5*EtiRpINMZv$oU{SmaVvkoy`|M+m;Tj*;e;o^v!*7f1X zWyuHxF=7{;V<+MHWiiaOBs@|5G|$U>Mdjr6$lExwcj3zHgtf%)du`|Nv-zX=rtr1> zI$26<_xzScOYq+`py_DtQ%up2c;EGxa0JZ|)>!MduNRh<)~`+OsCy zJbt4mr%ya|hkQv;mZ~Sv$|{RGXJ~Op?)~YD} zv!cw??eC5gEy$Pf7ax(ff@;@`xI+{%<7sH$T_XBfmXlBFLD)9tt%BIpzAu10zmv>- zEsOJ65>!rowS0C$YaFNJ@6Ect+6>JV7g)+gE&)0%rqo>ErMVCVRSUJB%LDApJ7Jc1 z`pXy4Rp3$oN|{D=O=pa%8J{F*!JC$4YoqhQW+)P@1*)6HN>rcKP{8Py0-@#$6DaM`da_az4Zwz-PuIzlZS-877h9JRJo(Q?IF)o*5YEVV>{6(-?agTG|(C zYyXir>^7cRYkY@1SLg>3D@zI_0N+?jl*QeFIO?g{h=j#wM>_;GyNJ{=Boz2!Z`E19N%h_RCl*8}Z>Ga34d^Fs zQ^!$~Pr{W>k9)MNSV#=wM@B#geD z&_{T<8Cees@>J6M@`lQJf<@%GK;kcSxKzX%r5i2{EL(0Lo;bd`urdhZBw(+Qqey@p z$(gjQ;0sxJ&VK#6D_CcTkVE4A&pPAdc9Zx{)VoP`jXZBQ;@Ur27_C153dFnMF7_z* zW(piDH<=hHUP9REv1mjZq5RyO9@&QGR*zv1YINAKS@`5*o17a@KMcZB6p;!fNjg?T zz6w`4@26s&_yYIWFoOiz#uL$=ltlx>YgEziT96{$S%PJzZO*E`;VnRr$~{seIWY!< zGXBW@L2;&G&&#goZuh2ol2KguP%C{^$>X_>!PLijY8wY-@B|C}`T()Ned{J{b$x3k zfa zy}?C|dfCRV(`4r?UjBWMmWA`^ZxloKBfwY7h2H@?VJFI7Fsw4O<|?ie5FDYDSn@;T zK*+!OTik9&>R2Qenp#>O&K8swn5YAVZROyD=yic*x=iZDY;(qHA(X-y_3(A#ey)~< zX+ZXV;TrH|j!XRLYrW4QEV66W?$(YaA_4C*|BQ^JAD5D^AMG1|`Aed_ww5iLI1Igr z^D<6&6rl_XDga9MiKKJSdY}!5^#lzN5aQxA`ZuH$9U^r4n5X61cU6uqzhLF%fzf=G+2VEB(y z>Rljh%Ev$c)LXF>-JtW+n*6%`ax@?tCo4*u=(%!IX6jSWC$4(cu42EaE+b`)d@ZXT zdy(#YjrhcFZQ4Cy5WHV9&Z5i>RKw~=5cz3^*fNx-CQ6I1_t)y((!#W+aGz?8I%|b& z!wWp8BAob+ab`uDreF&0a1-~R>3__LKnk_L?7IEgN1>>ZwzV0tc5`=2B|Sa%TsM)D z1bNb7;C-$Ewq6)=jCyVZAV`VnK49?0S8fwG^6M3mg2wZEf-htxTiuDrD{J$#yku`by zX(Fm?G|_Lq9C{$`-yRJhbo3yGM?U_yJcZ1i^G>1@9zH(vi~S9SjCN}3ABy%|savgx#0$jdG73%^Z6gF==xi0$>EMcLjYg!!`2(&Q%u>k$?-I@v zfN>C?vYiLgWu^QfYwgSlg{ll0j<&PS0{ksy)!OWjK{t3_A(9Tdkc$OJMcu;DGT@a4 zy!^oVi*9FcpA^S?X%(Bt(7V+~tG1POsqWhWgTC-!7`C4`iccGM_xpz)d&m3sZ*}3~ zMnq*b}YW+>r5U_0Xn5th22#jEHMxKe{W$FQJmwnmpO`C$sxs^r3{QxT<;MxvNwOl+fc&gA-f`b{pe(}a9Y_+;=1v52pkmneda){m08dx`RvSxScH~5eEs&;yxcL02W zl%V&!$wm9k)0ARvb|S(jj{Pv)r+x6KBx(|op}CH^=MLe4d2Ccxu<78sc{B$iS3Tb+ zHt4m;93sx|Tq4$gJO)cmrak^{grg0+Usw=^%6hMm4{dxOIhMBBByy zzi?puz*7jhj@s;w&KY`WO_v%gxm|)XJkw%R)_*q;5ph<1*)pi&qijZBssRfv_xG}R z(j&NfmjfYgh@6yGEbz-_HF`y^b2V$%8R13%^c)7@5Rlt3w`j;TA=A{2K$efWyzkS^zC9jBHq2x<; z=$w~l9Yjy?R$iwGFh2tZCJh`v+Uvmf?$Gk$*$v7az%;})BMQJDj|Xfsavw@yj!n|y zT_=$DDo6veb69(FGh#%S+!ie(t>WbP+Zjc7;d5A6!X9X!NcH25wJ&U%D8kImR{b*} z4@bub8cE5GHm^DNW0#Yi&DWRwSb5i}%ze34th)?ANoeTgqjhJf9?&a#9kKNFhj@M# zwmr_^A^0JaTM-_iZq0nH%2Ue%SK``lNZl|gfDb9sJHnqW9%a?e=nNjR(&7F#9e5>+ZMnbx!yC>Z!-Hjk1-QC?FAl=dp6NyQ_ zm+M*o_{O*Mj`8lev8HP{$33t6jN|y7=LN)LbNG0rA!q_1Wd5VgT=rcK&iM?`#L(}J zsLg7}iBMk_WN09J%rKV?@3uH%Ox<2Wby@*o0V|rR2u}U3K}NpCK*L79v_lz$?E6w_ z2L}!b3puX*af3*JlCeR2Cd*W!mYCn(BV0nQX(U>~@Rqsq(w>wg7^mU4xnFdDGzPX2 z64Lo;zHQk6O_qm26y?|#@gc>K;nyne3({xya;!txCA+?{>`3?_z6n@sl9Zd>)I*A& zNAj|lD@K}7+Y$>h)?|b*v7rXWbnMyeN=-kBKAoyeFYc{iT0(0a*Rd3C5DwoV*;U&K znsAemNaP!i`jWbyJcqrDIqcYqcH<7_EJ^(Sa5=Tg6JUG-G4OXsa3i^4oq;3p%Ii;R3`QYnS6qQF1eX^IO&|8Dk_tC02>pA^lv zv7v@A{e7bzVWzy#$4yme20i0~agdJBud4_JNYw}$%k*egI3rb)w!6eOe6GD6g?&LK z_0?{rUki_W&I@^*$-;V{XBHacg_Jb(GQ<*|zq|kRhi+Tehp~hq$qDh@cAR`TYi!$u zH}XYTp@r6d!mczdKRY6Y8xsdje+J~Wwtf5NIvK8-u50hf%I!n{#%>)v1`bY?ODJ88 z2?WoIPYvlYK&1sV5$jY;e!`4NA0{R1m%~NpnU*h^Eiu7z4(^WRz%lafO|<%Vt){uv z3jVJ!p_K{El9|kxR3v#D!ll0+dPjE>)~XQB#of(yuv+8fe!UCFG5C@rm&zqYM0J0U zd~uPU@j;nZLdD|-lm#U{tp~C~RdU3}`G_vvG+ZU)Vw)O#$a78>ed$yb7f(z-Wky!P zyCd0J{Z_+)uKU>GRv|A2LN>#1iO6FakU>Q!85+bMiELB~V4j5w*?%9VUb2koqG z*`VQ}C;AYTHQSvLk z9qMY78K$4}tGc2hY5e_rQmB)7FRm37bJEe6>Ae66`8>WP5__mFD<;{N>A^9!V$`D} zmxkp1mSRDq-F71D+WCp=m-5F?SnCQ%HFOh4IkKWvliQzhwYhLe&k6$zmEmbn4=NjA zmw7E+#CUxblGpaiBUC!9U&{?H%#M(SB>ybkj^XUtI6DxjwVnQ@!+x(N8Jp}VA3YJ< zws;RR3wkBqn%|75QCtRF>YwsyPj+1PDhF1dyZBl2rMntjpk+eI;M<vC;Plgh>3Ef8tz7v!f$(_ar zjfCct-`UJcD2X)by1t5{T=sKhuQ{RrDh)@h$@w1KHN3FECqtj*R76Yw``(0#BEW7s zE5yQZFB%Tt(utv#X~XOu?W*&{*JN+3i^IaV%Ym1Nvy6;0pm*n!qr?wxZ<*KBj4aZF z)8C(UD2IO5D5G}{vPbq#Y$lOGbHv?4j$=e5^GtpKd+?N=tG>hxGWgx8sD#D$8mve3 zl_||+X!I4PIT0Teu!hf77}}JHuMmR?!JrruwKieRA&kq=&0(SjJqxR_$?51SKRmK>WsqneE3DErc(-XsSNa;|KkAkt4aBYwd@tHEW-y3ua_jZy` z$>CN_#t*Xg$;vgHvw!}%=@{AY2a3~|otNq2?cSvLN%A}&=6+kIwtlb61-ETb-?eYP zlf=YY-o*1M;OEci^3MAm)1H0J$GwJc>NW5A1$KAW!yI#mt|aWnQfC{G6O+fSO__Z8 zoWAV(Ob}F!>p!K>rXX%&Re*?l4Bfqg7Dh8%W?%p5I=$Z$874r9%pu@0zge=Jwf(tg zMB+fMu(GB3vx^ENi=r^j;n~}~Br_5cQyLN?wwp}T&k4c7gHt<`UPfl@)Gv7kQIRK2 z;%J}^bk`-n&qWN~$q~>8c|$thbKcGlXYZs#^vDE<<6M|ZlVrri+R9{U(z^RyGrcxn zuYe=l%-N6KHR{jJ&QJ*o|^20D=(wmgG?4w#v)Wxw0xA-rHv;@oBpPaPS%d@iJyTLa zgS&Oq!>vw@P$z>4ev$}hQWBa3cM&QRG7{-Q^`P$~nl>v%0L5_sR)c!EF)ku*kv(w3 z93Tfw*!YaY^;nC40AF5_F^VjMHby32w!uPV%1HE)=&QTCudA)x3_GC^4zH^fFa0_i z-h>N4yDql>Xwi1>C042~YNGCX;TgP#V6`S5e2+h~cmkL={gb{?Ez(oqKz*m!3s86# zsE(IZLF4U;g|aDb+7%x~#50_jOhg|@O}CMir;%Iho9K}rpB^h|Kd@i8!ZHM!GnvfX zI-8xtXpHSnqvs*PEbsZKt%n(&(Cg}V7K-A&pSrWFY4b~$HI}Cl@9^*jChOma$(sOS zNduB#aXDNqao$ceQWdZ25w*f8(Q{29|RpnNw95hMl;rt z-VVm6;l%QyX0IL4XriY7oSejGHiw#{RU^r@{TZa)6_Od zZht#Qi-H$lNOKNd_8h1N28YHjP&8N^4?bj7D-Lj5*U4I26YVOS&&+Zs$6%(8Vq~K- zU`i^!Z-~aQGu_#aVc(6-_?8dRfdJ}x=Y=pAB4UW+rS#PH0I~{nI>7*OgO;HjGmFK; zGyNI@@WzB_^1t6E@$a`e&>RR^H2dTI;;;So)GzLU+Xjl9_#Ri75%}F-ivq=}x0|1) z0X|#$s}xyQ;Ey(sBfdxq<^>?5fj4EcD!k+3o2ZaR=*H(hxns1sPC82R^OzP$1H(@5 zNsHGGx;!yD`J1^W>w>dqPn-&LZe+^BrL?<4KMNSTmfH0Mo@t^wgAGoZ0pw8kh_fo)`5b$kp=!V~a2u?of& zjQ3KG>K#tZ%>}Y4XN^zXdT*3se2o8lPh%^%+3+LZ{R@g%U}C~k8a%oEsGxwc?A~8{ zU)Z#r`X#L(>BJ(%LvC*sEFF{|b=EYDa=ccJRToblOR`w%+5leN`lrDu*)T~3{+Mg{ zX-;)>eZXitvB+zk>Dc$$LB|rbqj#I$0*rZwClN)CL|jyrV5WLBt=^(EquH`dm!VOE z{#eI)+4}kOKDv?4)K+^&X+4S1eC}@QHw4{EtQvgW-(5h6S>vp)u_ITDW!pv3p0=@4 z{s#R^i(~_A%xrHW|ANFh-F?XkN3`vur9ZHx->507J_oy6Xn5J^di@|2eex^62*@(q z&ZUf~hu9N;i+9qMy!J_EVhlw+!Cs7ay$h^Av3Pzhi%0Ncs6&JiT@6EvTE*7rVRxYT z7-h8es!H+~%1H=IqTO4LDumu*DFd_Hc zAAq4Ts3BUd!cGe#qoc+yz?lGwogJwj5E%?zZTT+#Bxxq5aDd3}N<~fde!PdEyVVmI z;NL5(U_~lH5mxq~-7V3o4jF3jv1pGpl>1n*` z-T5Jzn(g?!$13`)&X-Tmx;M=WzG{9<4Ac&+9znpTCX! z!&F1XXoK?wOdbz+aNumu5jPxO>IO(kFFt);;mN|-Dd+PP0>F>%r$3iGDekhD<`x#z zCh1-CC`<3EyjFUzgo*J8l32ZmN^C42KF7*c=En=T(V_$o!ZVQeR|0KKlX~Z8%u^Zi zO@yRh6%ZLRl854nG?HXA7;d8{-II38ejn_OrJ5*399DDmi@(iA9gRcccpvrY8H0>5dkERN z;j3Mw@ea#nG|Ms?!%+O+L=>U`Zohu~{tVpr_1zIHHT)j`HZnmv3wE+$n@{0Lzy9n7 z45a{L{M86=EX`NsMPm#*;-MiSKo6h|*fB%9so6)!jK!#{z1{ySr$#}>3w+UZDSkR% zoF-0;2E=(R@bbWU-u*hK!mGDgG|!4UH35m|Z&JOeiYu?K#x7^O+GXPmHMA=#YotG6 zL1s!H`17@Up8=L61r$|~8D@s%g-Q+n6{G)u<3s=XJO5-4+5bRU0999gTU9U(YA8YV z>(Woy-+xD-B`8l#W^DzGko|IujWCG$SJ@WdJotRj5`BK%dB~0m!34RQk)gc7^J)c1 z%S2Djg>u0tj=DqTFZ(0A_mU0m>Hl+Tf)S4%hjDRAyzTer|xl{wEf{gLEhIgk~!MGjyr22YiAOz5&MpS!NVe=wo zpj-gJ&;Y!!P7?E~4{Pr6B~cxi{RuOZ>;qjx3*?S~AWegg&E$H1Wn~?&LWoj;zRSTH zq$Yc1Xd|29m*#?~o_6ZTZ)sez6Q_m&{@v2m*V@vOYGaEekzrvG>Jr|C|NgXp1Dg8X zODJapWZXVLE*$dn^GJ_5s1q(pco1Iu;xZV(BP_IWknzu^4;lcb!a|$ZEx;nX%XPX|iB3){v>eY}`1ti~HyV$-LiqZ$=r%Z#=?sLQa6 zaiW&XVkiI#=nXJ(HQ>vr<8`7-k8Tn9}G<;|D6Hwtxfyr0$L0VRiq$wh2WtV`+vzYr zxlq*g&F{_Uq)dAa@88b7eN^vn-XXHD$HlOh5erdKHaqT=0kSe=E8(XhxL%C;8p!Db zG$O&UvbJ*4Ii&GkB6N;lO}

    @V%2r1d^gE`4NO3gLx%G< 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 caller registers the display family + * + *

    The sheet is set in Lato, with Oswald for the name, the headings and the + * achievement titles. Oswald is not one of the families + * {@code graph-compose-fonts} carries and the templates artifact carries no + * fonts at all, so the family is named here and registered by whoever + * composes the document:

    + * + *
    {@code
    + * document.registerFontFamily(
    + *         FontFamilyDefinition.classpath(OrangeOps.DISPLAY_FONT, "/fonts/oswald/Oswald-Regular.ttf")
    + *                 .wordFamily("Oswald")
    + *                 .boldResource("/fonts/oswald/Oswald-SemiBold.ttf")
    + *                 .build());
    + * DocumentTemplate template = OrangeOps.create();
    + * template.compose(document, cv);
    + * }
    + * + *

    Without that registration the engine substitutes, and every length on the + * sheet was measured against a condensed face — the name alone is set at the + * size whose cap band matches the design's, so a wider face runs it off the + * page.

    + * + *

    Why the page margins are zero

    + * + *

    The role bar bleeds past the left margin to the paper's edge, and a + * section's bleed extends its own fill rather than a shape inside it — so it + * cannot carry the trapezoid out to the edge. The session therefore takes + * {@link DocumentInsets} of zero on both sides and each band applies the + * horizontal margin as its own padding: one constant in four places rather than + * a special case for one band.

    + * + *

    Every horizontal pair inside a column is a table or a layer stack

    + * + *

    The aside and the main column are row cells, and a row cannot nest inside + * one. So every horizontal arrangement inside them is a table, a layer stack, + * or an inline run — never a nested row. A table cell here is only ever given a + * paragraph or a spacer: a section with composite children in a cell reserves + * its box and draws nothing.

    + * + *

    One page, and what happens past it

    + * + *

    Each column is a stack of blocks, so a CV with more content than the + * design holds runs onto a second page rather than losing anything — but the + * sheet is drawn for one page, and a longer one will look like a one-page + * design that ran over. {@link TimelineMinimal} is the preset in this package + * built to paginate.

    + * + *

    How a document reaches its berth

    + * + *

    The columns are fixed, so the preset assigns each section a berth by title + * rather than reading {@link + * com.demcha.compose.document.templates.cv.data.Slot}. It has eight — four in + * the aside and four in the main column, in the order the design stacks + * them:

    + * + *
      + *
    • skills, a {@link SkillsSection} whose groups are flattened into one + * dotted list — the design draws no group names;
    • + *
    • achievements, an {@link EntriesSection} whose entries carry a mark, a + * title and a body — the discs;
    • + *
    • education, an {@link EntriesSection} whose first entry is drawn, its + * body one line per line;
    • + *
    • certifications, an {@link EntriesSection} of a title over its issuer;
    • + *
    • the profile, a {@link ParagraphSection};
    • + *
    • experience, an {@link EntriesSection} whose bodies are bullets;
    • + *
    • the metric strip, an {@link EntriesSection} whose entries carry the + * number as the title and the caption below it as the body;
    • + *
    • the closing lines, an {@link EntriesSection} of a label and its value.
    • + *
    + * + *

    A section whose title matches no berth is not drawn, and a berth with no + * section takes its heading, its rule and its join hairline with it.

    + * + *

    A main-column berth's title is split at its first opening bracket: what + * comes before is the heading, and the bracket and everything after it is set + * smaller beside it, which is how the design writes {@code KEY KPI SNAPSHOT + * (Recent 12 Months)}. An aside heading is drawn whole.

    + * + *

    The marks and the links

    + * + *

    An achievement, the degree, a metric and a closing line each take the mark + * its entry names in {@code CvEntry.icon()}, from this preset's own vocabulary, + * and an unknown token is reported as a data error naming the set. An entry + * with no token is drawn without a mark.

    + * + *

    The email, the phone and each link are reachable from the PDF, with the + * {@code mailto:} and {@code tel:} targets built from the values. A link is + * drawn as its own label with the address behind it, so the contact strip's + * width does not depend on how long an address happens to be, and it takes the + * mark of the network it points at or the globe. An achievement title, a job + * title, the degree and a certification become links when their entry carries + * {@code CvEntry.link()}.

    + * + * @since 2.2.3 + */ +public final class OrangeOps { + + /** Stable identifier of this preset. */ + public static final String ID = "orange-ops"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Orange Ops"; + + /** + * The display family this preset sets its name and headings in. + * + *

    Named, not carried — register a family under this name on the session + * before composing. See the class documentation.

    + */ + public static final FontName DISPLAY_FONT = OrangeOpsStyles.DISPLAY_FONT; + + private static final List PROFILE_KEYS = + List.of("profile", "summary", "about"); + private static final List SKILL_KEYS = + List.of("skills", "expertise", "competencies"); + private static final List ACHIEVEMENT_KEYS = + List.of("achievements", "awards", "highlights"); + private static final List EDUCATION_KEYS = + List.of("education", "qualifications"); + private static final List CERTIFICATION_KEYS = + List.of("certifications", "certificates", "licences", "licenses"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "employment", "work history", "career"); + private static final List METRIC_KEYS = + List.of("kpi", "metrics", "snapshot", "results"); + private static final List ADDITIONAL_KEYS = + List.of("additional", "other", "extras", "interests"); + + private OrangeOps() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link CvDocument} + */ + 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, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + List sections = doc.sections(); + + SkillsSection skills = berth(sections, SkillsSection.class, SKILL_KEYS); + ParagraphSection profile = berth(sections, ParagraphSection.class, PROFILE_KEYS); + + // Six berths take the same shape, so each is claimed against what + // the ones before it took: the metric keys are broad enough to + // catch an achievements block titled "Results", and the closing + // keys broad enough to catch anything left over. + EntriesSection achievements = + berth(sections, EntriesSection.class, ACHIEVEMENT_KEYS); + EntriesSection education = + berth(sections, EntriesSection.class, EDUCATION_KEYS, achievements); + EntriesSection certifications = berth(sections, EntriesSection.class, + CERTIFICATION_KEYS, achievements, education); + EntriesSection experience = berth(sections, EntriesSection.class, + EXPERIENCE_KEYS, achievements, education, certifications); + EntriesSection metrics = berth(sections, EntriesSection.class, + METRIC_KEYS, achievements, education, certifications, experience); + EntriesSection additional = berth(sections, EntriesSection.class, ADDITIONAL_KEYS, + achievements, education, certifications, experience, metrics); + + // Every length on the sheet is a share of the design's own grid, so + // the preset sets the page and its margins rather than following + // what the caller configured. + document.pageSize(PAGE).margin(new DocumentInsets(MARGIN_TOP, 0, MARGIN_BOTTOM, 0)); + document.pageFlow(page -> { + page.name("OrangeOpsCv"); + page.spacing(0); + OrangeOpsMasthead.render(page, doc.identity()); + page.addRow("Body", row -> { + row.spacing(0); + row.weights(ASIDE_CELL_WEIGHT, MAIN_CELL_WEIGHT); + row.addSection("Aside", side -> { + side.spacing(0); + side.padding(0f, (float) (GUTTER / 2), 0f, (float) MARGIN_X); + OrangeOpsAside.compose(side, skills, achievements, education, + certifications); + }); + row.addSection("Main", main -> { + main.spacing(0); + main.padding(0f, (float) MARGIN_X, 0f, (float) (GUTTER / 2)); + // The divider is the main cell's own left accent: its x + // is that cell's left edge, so it cannot drift from the + // split, and its height is the column's. A page + // background would fix both by ratio and drift the + // moment the content changed. + main.accentLeft(RULE, COLUMN_RULE_THICKNESS); + OrangeOpsMain.compose(main, profile, experience, metrics, additional); + }); + }); + }); + } + + /** + * The first section of the wanted shape whose title names this berth, + * skipping any another berth has already claimed, or {@code null} when + * the document fills no such berth. + */ + @SafeVarargs + private static T berth(List sections, Class type, + List keys, T... taken) { + for (CvSection section : sections) { + if (!type.isInstance(section) || isTaken(section, taken)) { + continue; + } + for (String key : keys) { + if (SectionLookup.titleContains(section.title(), key)) { + return type.cast(section); + } + } + } + return null; + } + + private static boolean isTaken(CvSection section, CvSection[] taken) { + for (CvSection claimed : taken) { + if (section == claimed) { + return true; + } + } + return false; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsAside.java new file mode 100644 index 000000000..a66c2c58b --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsAside.java @@ -0,0 +1,304 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACHIEVEMENT_BODY_PITCH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACHIEVEMENT_BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACHIEVEMENT_CIRCLE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACHIEVEMENT_GAP; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACHIEVEMENT_ICON_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACHIEVEMENT_TEXT_INSET; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACHIEVEMENT_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACHIEVEMENT_TITLE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ASIDE_JOIN_INK; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ASIDE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BULLET_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.CERT_GAP; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.CERT_ISSUER_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.CERT_TEXT_INSET; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.CERT_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.CERT_TITLE_TO_ISSUER; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.EDUCATION_CIRCLE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.EDUCATION_ICON_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.EDUCATION_LINE_PITCH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.EDUCATION_LINE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.EDUCATION_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.LATO; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.MUTED; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.RULE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.SKILL_PITCH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.gap; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.leading; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.style; + +/** + * The narrow column: skills, achievements, education and certifications, each + * under a text-width accent rule and separated from the next by a hairline. + * + *

    Why a card is a layer stack and not a table row

    + * + *

    An achievement and the degree are both a disc beside a block of text, and + * a table row can put the two side by side but cannot put the disc at the + * top of the pair: a cell anchors its content to the foot of the row + * whatever anchor it is given, which leaves every disc level with the middle of + * its card. Two layers anchored {@link LayerAlign#TOP_LEFT} — the disc with a + * right margin that ends its box at the split, the text with a matching left + * margin — anchor where they are asked to.

    + */ +final class OrangeOpsAside { + + private OrangeOpsAside() { + } + + /** + * Draws the column. + * + * @param side the aside cell + * @param skills the skill list, or {@code null} + * @param achievements the achievement cards, or {@code null} + * @param education the degree, or {@code null} + * @param certifications the certification list, or {@code null} + */ + static void compose(SectionBuilder side, SkillsSection skills, EntriesSection achievements, + EntriesSection education, EntriesSection certifications) { + List blocks = new ArrayList<>(); + if (SectionLookup.hasContent(skills)) { + blocks.add(new OrangeOpsWidgets.Block("Skills", + column -> renderSkills(column, skills), LATO, BODY_SIZE, false)); + } + if (SectionLookup.hasContent(achievements)) { + blocks.add(new OrangeOpsWidgets.Block("Achievements", + column -> renderAchievements(column, achievements), + LATO, ACHIEVEMENT_BODY_SIZE, false)); + } + if (SectionLookup.hasContent(education)) { + blocks.add(new OrangeOpsWidgets.Block("Education", + column -> renderEducation(column, education), + LATO, EDUCATION_LINE_SIZE, false)); + } + if (SectionLookup.hasContent(certifications)) { + blocks.add(new OrangeOpsWidgets.Block("Certifications", + column -> renderCertifications(column, certifications), + LATO, CERT_ISSUER_SIZE, false)); + } + OrangeOpsWidgets.stack(side, blocks, ASIDE_JOIN_INK); + } + + /** + * The skills — one paragraph per name, opened by an inline accent dot. + * + *

    Not a list: a list marker takes the list's own text colour, and here + * the dots are accent against charcoal text. The design draws one flat run + * of names, so a section that groups its skills has its groups flattened in + * the order they were given; the group names are not drawn.

    + */ + private static void renderSkills(SectionBuilder side, SkillsSection skills) { + side.addSection("Skills", block -> { + double itemGap = gap(SKILL_PITCH, LATO.lineBox(BODY_SIZE)); + block.spacing(itemGap); + OrangeOpsWidgets.asideHeading(block, "Skills", skills.title()); + List names = new ArrayList<>(); + for (SkillGroup group : skills.groups()) { + for (CvSkill skill : group.entries()) { + names.add(skill.name()); + } + } + for (int i = 0; i < names.size(); i++) { + String name = names.get(i); + int index = i; + // The section's own spacing is the item pitch, which is tighter + // than the gap under the accent rule; the first item makes up + // the difference rather than the rule being nudged. + float lead = i == 0 ? (float) Math.max(0.0, RULE_TO_BODY - itemGap) : 0f; + block.addParagraph(p -> p + .name("Skill" + index) + .lineSpacing(0) + .textStyle(style(BODY_FONT, BODY_SIZE, BODY, false)) + .dot(BULLET_SIZE, ACCENT) + .inlineText(" ", style(BODY_FONT, BODY_SIZE, BODY, false)) + .inlineText(name, style(BODY_FONT, BODY_SIZE, BODY, false)) + .margin(lead, 0f, 0f, 0f)); + } + }); + } + + /** The achievements — an accent disc beside a display-face title over its body. */ + private static void renderAchievements(SectionBuilder side, EntriesSection achievements) { + side.addSection("Achievements", block -> { + block.spacing(0); + OrangeOpsWidgets.asideHeading(block, "Achievements", achievements.title()); + List entries = achievements.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + int index = i; + boolean first = i == 0; + boolean last = i == entries.size() - 1; + + SectionBuilder text = new SectionBuilder(); + text.name("AchievementText" + index); + text.spacing(0); + text.margin(new DocumentInsets(0, ACHIEVEMENT_TEXT_INSET, 0, + ACHIEVEMENT_ICON_COLUMN)); + text.addParagraph(p -> { + p.name("AchievementTitle" + index); + p.lineSpacing(0); + p.textStyle(style(DISPLAY_FONT, ACHIEVEMENT_TITLE_SIZE, ACCENT, true)); + if (entry.link().isBlank()) { + p.inlineText(entry.title(), + style(DISPLAY_FONT, ACHIEVEMENT_TITLE_SIZE, ACCENT, true)); + } else { + p.inlineText(entry.title(), + style(DISPLAY_FONT, ACHIEVEMENT_TITLE_SIZE, ACCENT, true), + new DocumentLinkOptions(entry.link())); + } + p.margin(0f, 0f, (float) ACHIEVEMENT_TITLE_TO_BODY, 0f); + }); + text.addParagraph(p -> p + .name("AchievementBody" + index) + .text(entry.body()) + .lineSpacing(leading(ACHIEVEMENT_BODY_PITCH, ACHIEVEMENT_BODY_SIZE)) + .textStyle(style(BODY_FONT, ACHIEVEMENT_BODY_SIZE, BODY, false))); + + block.addLayerStack(stack -> { + stack.name("AchievementCard" + index); + stack.margin(new DocumentInsets( + first ? RULE_TO_BODY : 0, 0, last ? 0 : ACHIEVEMENT_GAP, 0)); + if (!entry.icon().isBlank()) { + stack.layer(badgeCell("AchievementBadge" + index, entry.icon(), + ACHIEVEMENT_CIRCLE, ACHIEVEMENT_ICON_COLUMN, ACCENT), + LayerAlign.TOP_LEFT, 0); + } + stack.layer(text.build(), LayerAlign.TOP_LEFT, 1); + }); + } + }); + } + + /** + * The degree — the same disc-beside-text card, in ink rather than accent. + * + *

    The design shows one degree, so the first entry is the one drawn. Its + * body carries the institution, the place and the years, one to a line.

    + */ + private static void renderEducation(SectionBuilder side, EntriesSection education) { + side.addSection("Education", block -> { + block.spacing(0); + OrangeOpsWidgets.asideHeading(block, "Education", education.title()); + CvEntry entry = education.entries().get(0); + + SectionBuilder text = new SectionBuilder(); + text.name("EducationText"); + text.spacing(0); + text.margin(new DocumentInsets(0, 0, 0, EDUCATION_ICON_COLUMN)); + text.addParagraph(p -> { + p.name("EducationDegree"); + p.lineSpacing(leading(EDUCATION_LINE_PITCH, EDUCATION_TITLE_SIZE)); + p.textStyle(style(BODY_FONT, EDUCATION_TITLE_SIZE, INK, true)); + if (entry.link().isBlank()) { + p.inlineText(entry.title(), style(BODY_FONT, EDUCATION_TITLE_SIZE, INK, true)); + } else { + p.inlineText(entry.title(), style(BODY_FONT, EDUCATION_TITLE_SIZE, INK, true), + new DocumentLinkOptions(entry.link())); + } + }); + List detail = OrangeOpsWidgets.lines(entry.body()); + for (int i = 0; i < detail.size(); i++) { + String line = detail.get(i); + int index = i; + text.addParagraph(p -> p + .name("EducationLine" + index) + .text(line) + .lineSpacing(0) + .textStyle(style(BODY_FONT, EDUCATION_LINE_SIZE, MUTED, false)) + .margin((float) gap(EDUCATION_LINE_PITCH, + LATO.lineBox(EDUCATION_LINE_SIZE)), 0f, 0f, 0f)); + } + + block.addLayerStack(stack -> { + stack.name("EducationEntry"); + stack.margin(new DocumentInsets(RULE_TO_BODY, 0, 0, 0)); + if (!entry.icon().isBlank()) { + stack.layer(badgeCell("EducationBadge", entry.icon(), EDUCATION_CIRCLE, + EDUCATION_ICON_COLUMN, INK), LayerAlign.TOP_LEFT, 0); + } + stack.layer(text.build(), LayerAlign.TOP_LEFT, 1); + }); + }); + } + + /** + * The certifications — an accent-dotted title over a muted issuer line. + * + *

    The issuer is padded to the title's text left edge rather than to the + * dot's, so it hangs under the title the way the design shows.

    + */ + private static void renderCertifications(SectionBuilder side, EntriesSection certifications) { + side.addSection("Certifications", block -> { + block.spacing(0); + OrangeOpsWidgets.asideHeading(block, "Certifications", certifications.title()); + List entries = certifications.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + int index = i; + boolean first = i == 0; + boolean last = i == entries.size() - 1; + block.addParagraph(p -> { + p.name("CertTitle" + index); + p.lineSpacing(0); + p.textStyle(style(BODY_FONT, CERT_TITLE_SIZE, INK, true)); + p.dot(BULLET_SIZE, ACCENT); + p.inlineText(" ", style(BODY_FONT, CERT_TITLE_SIZE, INK, true)); + if (entry.link().isBlank()) { + p.inlineText(entry.title(), style(BODY_FONT, CERT_TITLE_SIZE, INK, true)); + } else { + p.inlineText(entry.title(), style(BODY_FONT, CERT_TITLE_SIZE, INK, true), + new DocumentLinkOptions(entry.link())); + } + p.margin((float) (first ? RULE_TO_BODY : 0), 0f, + (float) CERT_TITLE_TO_ISSUER, 0f); + }); + block.addParagraph(p -> p + .name("CertIssuer" + index) + .text(entry.subtitle()) + .lineSpacing(0) + .textStyle(style(BODY_FONT, CERT_ISSUER_SIZE, MUTED, false)) + .padding(0f, 0f, 0f, (float) CERT_TEXT_INSET) + .margin(0f, 0f, (float) (last ? 0 : CERT_GAP), 0f)); + } + }); + } + + /** + * A badge in a box that ends where the text column starts, so the two + * layers of a card meet on the split rather than overlapping. + */ + private static DocumentNode badgeCell(String name, String token, double diameter, + double column, DocumentColor fill) { + SectionBuilder cell = new SectionBuilder(); + cell.name(name + "Cell"); + cell.spacing(0); + cell.margin(new DocumentInsets(0, ASIDE_WIDTH - column, 0, 0)); + cell.add(OrangeOpsWidgets.badge(name, token, diameter, fill)); + return cell.build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsIcons.java new file mode 100644 index 000000000..13ecf4d32 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsIcons.java @@ -0,0 +1,213 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.svg.SvgIcon; + +import java.awt.Color; +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.nio.charset.StandardCharsets; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BADGE_GLYPH_SHARE; + +/** + * Classpath loader for the Orange Ops CV marks: the contact glyphs, the four + * achievement marks, the four metric marks, the graduation cap and the four + * marks the closing block draws. + * + *

    {@link #WEBSITE} is the design's own globe under a second name. A link + * that is not a network the preset recognises still needs a mark, and giving + * the fallback its own token keeps the closing block's {@code systems} line + * reading as what it is rather than doubling as the web glyph.

    + * + *

    They ship inside the templates artifact under + * {@code templates/cv/orange-ops/icons/} as SVG, so they scale with the box + * they are drawn into rather than being resampled. Sources and parsed icons are + * cached per token, so a sheet that repeats a mark reads each file once per + * JVM.

    + * + *

    {@link #ENTRY_TOKENS} is the vocabulary a document names through + * {@code CvEntry.icon()}. It is scoped to this preset — another preset packages + * its own set — and each mark carries the width it is drawn at, because an + * icon's box is not its glyph and the sizes are per-kind.

    + */ +final class OrangeOpsIcons { + + static final String PHONE = "phone"; + static final String EMAIL = "email"; + static final String LOCATION = "location"; + static final String LINKEDIN = "linkedin"; + static final String WEBSITE = "website"; + static final String GRADUATION = "graduation"; + + private static final String ICON_ROOT = "/templates/cv/orange-ops/icons/"; + + /** The width each mark is drawn at, as the design sizes it. */ + private static final Map SIZES = Map.ofEntries( + Map.entry(PHONE, 8.5), + Map.entry(EMAIL, 8.5), + Map.entry(LOCATION, 8.5), + Map.entry(LINKEDIN, 8.5), + Map.entry(WEBSITE, 8.5), + Map.entry("achievement-productivity", 16.0), + Map.entry("achievement-accuracy", 16.0), + Map.entry("achievement-safety", 16.5), + Map.entry("achievement-savings", 16.0), + Map.entry(GRADUATION, 15.0), + Map.entry("kpi-productivity", 20.0), + Map.entry("kpi-accuracy", 20.0), + Map.entry("kpi-delivery", 20.0), + Map.entry("kpi-safety", 20.0), + Map.entry("systems", 9.5), + Map.entry("languages", 9.5), + Map.entry("driving", 9.5), + Map.entry("interests", 9.5)); + + /** The marks a document may name on an entry. */ + static final Set ENTRY_TOKENS = Set.of( + "achievement-productivity", "achievement-accuracy", "achievement-safety", + "achievement-savings", GRADUATION, + "kpi-productivity", "kpi-accuracy", "kpi-delivery", "kpi-safety", + "systems", "languages", "driving", "interests"); + + private static final Pattern VIEW_BOX = Pattern.compile("viewBox\\s*=\\s*\"([^\"]+)\""); + + private static final Map SOURCES = new ConcurrentHashMap<>(); + private static final Map CACHE = new ConcurrentHashMap<>(); + private static final Map BADGES = new ConcurrentHashMap<>(); + + private OrangeOpsIcons() { + } + + /** + * The width one mark is drawn at. + * + * @param token one of the packaged tokens + * @return the drawn width in points + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error + */ + static double size(String token) { + Double size = SIZES.get(token); + if (size == null) { + throw new IllegalArgumentException( + "Unknown orange ops CV icon token '" + token + + "'. This preset packages " + ENTRY_TOKENS.stream().sorted().toList() + + " for an entry mark."); + } + return size; + } + + /** + * Reads one mark. + * + * @param token one of the packaged tokens + * @return the parsed icon + */ + static SvgIcon icon(String token) { + size(token); + return CACHE.computeIfAbsent(token, t -> SvgIcon.parse(source(t))); + } + + /** + * One mark re-emitted inside a filled disc. + * + *

    The design draws the achievement and education badges as a filled + * circle owning an icon, and a shape container is what that is for. It is + * not what the engine renders here: a shape container placed inside a table + * cell — one level below the row cell the aside already is — reserves its + * box and composes none of its children, which leaves bare discs. So the + * disc is drawn into the mark: the glyph keeps its own user space + * and the viewBox is widened around it with a filled circle behind, which + * leaves one leaf node where there were two and keeps every table cell + * holding nothing but a paragraph. Widening a viewBox also stays inside the + * reader's documented subset in the way a transform would not.

    + * + * @param token one of the packaged tokens + * @param fill the disc colour + * @return the composed icon + */ + static SvgIcon badge(String token, DocumentColor fill) { + // Validated the same way an inline mark is: a badge reads the source + // rather than the size, so without this an unknown token would surface + // as a missing resource instead of the data error naming the set. + size(token); + Color rgb = fill.color(); + String key = token + '@' + rgb.getRGB(); + return BADGES.computeIfAbsent(key, ignored -> SvgIcon.parse(discAround(token, rgb))); + } + + private static String discAround(String token, Color fill) { + String source = source(token); + double[] box = viewBox(source); + double glyph = Math.max(box[2], box[3]); + double disc = glyph / BADGE_GLYPH_SHARE; + double pad = (disc - glyph) / 2.0; + double cx = box[0] + box[2] / 2.0; + double cy = box[1] + box[3] / 2.0; + double r = disc / 2.0; + String hex = String.format("#%02X%02X%02X", fill.getRed(), fill.getGreen(), fill.getBlue()); + return "" + innerMarkup(source) + ""; + } + + /** The four viewBox numbers, or the square the mark set defaults to. */ + private static double[] viewBox(String svg) { + Matcher matcher = VIEW_BOX.matcher(svg); + if (!matcher.find()) { + return new double[] {0, 0, 256, 256}; + } + String[] parts = matcher.group(1).trim().split("[\\s,]+"); + if (parts.length != 4) { + return new double[] {0, 0, 256, 256}; + } + double[] box = new double[4]; + for (int i = 0; i < 4; i++) { + box[i] = Double.parseDouble(parts[i]); + } + return box; + } + + /** Everything the source draws, between its own svg tags. */ + private static String innerMarkup(String svg) { + int open = svg.indexOf('>', svg.indexOf(""); + if (open < 0 || close < 0 || close <= open) { + throw new IllegalStateException("Orange ops CV icon markup is not an element"); + } + return svg.substring(open + 1, close); + } + + private static String fmt(double value) { + return String.valueOf(Math.round(value * 100.0) / 100.0); + } + + private static String source(String token) { + return SOURCES.computeIfAbsent(token, OrangeOpsIcons::read); + } + + private static String read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = OrangeOpsIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing orange ops CV icon: " + resourcePath); + } + return new String(input.readAllBytes(), StandardCharsets.UTF_8); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read orange ops CV icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMain.java new file mode 100644 index 000000000..9f6ccffc2 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMain.java @@ -0,0 +1,377 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.SpacerBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.ListMarker; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +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.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.IntFunction; + +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ADDITIONAL_PITCH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ADDITIONAL_RULE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BULLET_ITEM_PITCH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BULLET_PITCH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.COMPANY_TO_BULLETS; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.DATE_COLUMN_RATIO; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.EXPERIENCE_RULE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.JOB_GAP; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.JOB_META_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.JOB_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.JOB_TITLE_TO_COMPANY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.LATO; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.MAIN_JOIN_INK; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.MAIN_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.METRIC_CAPTION_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.METRIC_ICON_TO_VALUE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.METRIC_RULE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.METRIC_SEPARATOR; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.METRIC_VALUE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.METRIC_VALUE_TO_CAPTION; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.MUTED; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.NO_STROKE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.PROFILE_PITCH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.PROFILE_RULE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.cellStyle; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.gap; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.leading; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.style; + +/** + * The wide column: the profile, the roles held, the metric strip, and the + * closing lines — each under a fixed-length accent rule and separated from the + * next by a hairline. + * + *

    A parenthetical in a heading is set smaller

    + * + *

    The design sets {@code (Recent 12 Months)} after the metric heading in a + * smaller body face, so a berth's title is split at its first opening bracket: + * what comes before is the heading, and the bracket and everything after it is + * the parenthetical. A title with no bracket is a heading and nothing else.

    + * + *

    Why every horizontal pair here is a table

    + * + *

    The main column is a row cell and a row cannot nest inside one, so the + * title/date line and the metric strip are tables rather than rows. A cell here + * is only ever given a paragraph or a spacer: a section with composite children + * in a cell reserves its box and draws nothing.

    + */ +final class OrangeOpsMain { + + private OrangeOpsMain() { + } + + /** + * Draws the column. + * + * @param main the main cell + * @param profile the opening prose, or {@code null} + * @param experience the roles held, or {@code null} + * @param metrics the metric strip, or {@code null} + * @param additional the closing lines, or {@code null} + */ + static void compose(SectionBuilder main, ParagraphSection profile, EntriesSection experience, + EntriesSection metrics, EntriesSection additional) { + List blocks = new ArrayList<>(); + if (SectionLookup.hasContent(profile)) { + blocks.add(new OrangeOpsWidgets.Block("Profile", + column -> renderProfile(column, profile), LATO, BODY_SIZE, false)); + } + if (SectionLookup.hasContent(experience)) { + // A bullet list ends on a full sentence, which descends. + blocks.add(new OrangeOpsWidgets.Block("Experience", + column -> renderExperience(column, experience), LATO, BODY_SIZE, true)); + } + if (SectionLookup.hasContent(metrics)) { + blocks.add(new OrangeOpsWidgets.Block("Metrics", + column -> renderMetrics(column, metrics), LATO, METRIC_CAPTION_SIZE, false)); + } + if (SectionLookup.hasContent(additional)) { + blocks.add(new OrangeOpsWidgets.Block("Additional", + column -> renderAdditional(column, additional), LATO, BODY_SIZE, false)); + } + OrangeOpsWidgets.stack(main, blocks, MAIN_JOIN_INK); + } + + /** + * The profile — one paragraph. + * + *

    The design sets it flush on both edges; the alignments available here + * are left, centre and right, so it is set flush left and the line breaks + * are the engine's.

    + */ + private static void renderProfile(SectionBuilder main, ParagraphSection profile) { + main.addSection("Profile", block -> { + block.spacing(0); + heading(block, "Profile", profile.title()); + block.addParagraph(p -> p + .name("ProfileBody") + .text(profile.body()) + .align(TextAlign.LEFT) + .lineSpacing(leading(PROFILE_PITCH, BODY_SIZE)) + .textStyle(style(BODY_FONT, BODY_SIZE, BODY, false)) + .margin((float) PROFILE_RULE_TO_BODY, 0f, 0f, 0f)); + }); + } + + /** + * The roles held — a title/date line, an accent company line, and bullets. + * + *

    The title line is a two-column table with the date anchored top right, + * so the date lands on the column's right edge whatever its length. The + * bullets are a list: unlike the aside's, these markers are the same + * charcoal as their text, so the marker colour is not fighting the + * style.

    + */ + private static void renderExperience(SectionBuilder main, EntriesSection experience) { + main.addSection("Experience", block -> { + block.spacing(0); + heading(block, "Experience", experience.title()); + List entries = experience.entries(); + double dateWidth = MAIN_WIDTH * DATE_COLUMN_RATIO; + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + int index = i; + boolean first = i == 0; + block.addTable(table -> { + table.name("JobHead" + index); + table.width(MAIN_WIDTH); + table.margin(new DocumentInsets(first ? EXPERIENCE_RULE_TO_BODY : JOB_GAP, 0, + JOB_TITLE_TO_COMPANY, 0)); + table.columns( + DocumentTableColumn.fixed(MAIN_WIDTH - dateWidth), + DocumentTableColumn.fixed(dateWidth)); + table.defaultCellStyle(cellStyle(DocumentInsets.zero(), + DocumentTableTextAnchor.TOP_LEFT)); + ParagraphBuilder title = new ParagraphBuilder() + .name("JobTitle" + index) + .lineSpacing(0) + .textStyle(style(BODY_FONT, JOB_TITLE_SIZE, INK, true)); + if (entry.link().isBlank()) { + title.inlineText(entry.title(), + style(BODY_FONT, JOB_TITLE_SIZE, INK, true)); + } else { + title.inlineText(entry.title(), + style(BODY_FONT, JOB_TITLE_SIZE, INK, true), + new DocumentLinkOptions(entry.link())); + } + table.rowCells( + DocumentTableCell.node(title.build()), + DocumentTableCell.node(new ParagraphBuilder() + .name("JobDates" + index) + .text(entry.date()) + .align(TextAlign.RIGHT) + .lineSpacing(0) + .textStyle(style(BODY_FONT, JOB_META_SIZE, MUTED, + false)) + .build()) + .withStyle(cellStyle(DocumentInsets.zero(), + DocumentTableTextAnchor.TOP_RIGHT))); + }); + block.addParagraph(p -> p + .name("JobCompany" + index) + .text(companyLine(entry)) + .lineSpacing(0) + .textStyle(style(BODY_FONT, JOB_META_SIZE, ACCENT, false)) + .margin(0f, 0f, (float) COMPANY_TO_BULLETS, 0f)); + block.addList(list -> { + list.name("JobBullets" + index); + list.items(OrangeOpsWidgets.lines(entry.body())); + list.marker(ListMarker.bullet()); + list.textStyle(style(BODY_FONT, BODY_SIZE, BODY, false)); + list.lineSpacing(leading(BULLET_PITCH, BODY_SIZE)); + list.itemSpacing(gap(BULLET_ITEM_PITCH, BULLET_PITCH)); + }); + } + }); + } + + /** The employer, and where the role was held when the entry says so. */ + private static String companyLine(CvEntry entry) { + if (entry.place().isBlank()) { + return entry.subtitle(); + } + return entry.subtitle().isBlank() + ? entry.place() + : entry.subtitle() + " | " + entry.place(); + } + + /** + * The metric strip — a mark, a number and its caption lines, per metric, + * with hairlines between them. + * + *

    One table of {@code 2n-1} columns: the metric columns interleaved with + * hairline-wide columns whose cell style is filled with the rule colour. + * That is how the separators run the block's full height — a table's rules + * are drawn per cell with no per-edge control, so a stroke would box all + * four edges of a metric cell instead.

    + * + *

    A row per line — mark, number, then one row per caption line — rather + * than one composite node per metric, so the metrics sit on a shared + * baseline grid however long their captions are. A metric with fewer + * caption lines than its neighbours leaves its lower rows empty.

    + */ + private static void renderMetrics(SectionBuilder main, EntriesSection metrics) { + main.addSection("Metrics", block -> { + block.spacing(0); + heading(block, "Metrics", metrics.title()); + List entries = metrics.entries(); + List> captions = new ArrayList<>(); + int captionRows = 0; + for (CvEntry entry : entries) { + List lines = OrangeOpsWidgets.lines(entry.body()); + captions.add(lines); + captionRows = Math.max(captionRows, lines.size()); + } + int rows = captionRows; + int separators = entries.size() - 1; + double metricWidth = (MAIN_WIDTH - separators * METRIC_SEPARATOR) / entries.size(); + block.addTable(table -> { + table.name("MetricTable"); + table.width(MAIN_WIDTH); + table.margin(new DocumentInsets(METRIC_RULE_TO_BODY, 0, 0, 0)); + DocumentTableColumn[] columns = new DocumentTableColumn[2 * entries.size() - 1]; + for (int i = 0; i < columns.length; i++) { + columns[i] = (i % 2 == 0) + ? DocumentTableColumn.fixed(metricWidth) + : DocumentTableColumn.fixed(METRIC_SEPARATOR); + } + table.columns(columns); + table.defaultCellStyle(cellStyle(DocumentInsets.zero(), + DocumentTableTextAnchor.CENTER)); + + table.rowCells(metricRow(entries.size(), + i -> markCell(entries.get(i).icon(), i))); + table.rowStyle(0, cellStyle(new DocumentInsets(0, 0, METRIC_ICON_TO_VALUE, 0), + DocumentTableTextAnchor.CENTER)); + table.rowCells(metricRow(entries.size(), i -> centredCell("MetricValue" + i, + entries.get(i).title(), METRIC_VALUE_SIZE, ACCENT, true))); + table.rowStyle(1, cellStyle(new DocumentInsets(0, 0, METRIC_VALUE_TO_CAPTION, 0), + DocumentTableTextAnchor.CENTER)); + for (int row = 0; row < rows; row++) { + int line = row; + table.rowCells(metricRow(entries.size(), i -> { + List lines = captions.get(i); + String text = line < lines.size() ? lines.get(line) : ""; + return centredCell("MetricCaption" + line + "_" + i, text, + METRIC_CAPTION_SIZE, BODY, false); + })); + } + }); + }); + } + + /** One metric row: metric cells interleaved with the hairline cells. */ + private static DocumentTableCell[] metricRow(int metrics, + IntFunction cell) { + DocumentTableCell[] cells = new DocumentTableCell[2 * metrics - 1]; + for (int i = 0; i < cells.length; i++) { + cells[i] = (i % 2 == 0) + ? cell.apply(i / 2) + : DocumentTableCell.node(new SpacerBuilder() + .name("MetricSeparator" + i) + .width(METRIC_SEPARATOR) + .build()) + .withStyle(DocumentTableStyle.builder() + .padding(DocumentInsets.zero()) + .fillColor(RULE) + .textAnchor(DocumentTableTextAnchor.CENTER) + .stroke(NO_STROKE) + .build()); + } + return cells; + } + + private static DocumentTableCell markCell(String token, int index) { + ParagraphBuilder paragraph = new ParagraphBuilder(); + paragraph.name("MetricMark" + index); + paragraph.align(TextAlign.CENTER); + paragraph.lineSpacing(0); + if (token.isBlank()) { + paragraph.textStyle(style(BODY_FONT, METRIC_CAPTION_SIZE, BODY, false)); + } else { + paragraph.textStyle(style(BODY_FONT, + OrangeOpsWidgets.markLineSize(token, METRIC_CAPTION_SIZE), BODY, false)); + OrangeOpsWidgets.mark(paragraph, token); + } + return DocumentTableCell.node(paragraph.build()); + } + + private static DocumentTableCell centredCell(String name, String text, double size, + DocumentColor color, boolean bold) { + return DocumentTableCell.node(new ParagraphBuilder() + .name(name) + .text(text) + .align(TextAlign.CENTER) + .lineSpacing(0) + .textStyle(style(BODY_FONT, size, color, bold)) + .build()); + } + + /** The closing lines — an inline mark, a bold label and its value, per line. */ + private static void renderAdditional(SectionBuilder main, EntriesSection additional) { + main.addSection("Additional", block -> { + // spacing(0), not the item pitch: a main heading is two nodes — the + // label and its accent rule — and a section spacing would open the + // gap between them as well. + double itemGap = gap(ADDITIONAL_PITCH, LATO.lineBox(BODY_SIZE)); + block.spacing(0); + heading(block, "Additional", additional.title()); + List entries = additional.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + int index = i; + boolean first = i == 0; + block.addParagraph(p -> { + p.name("Additional" + index); + p.lineSpacing(0); + if (entry.icon().isBlank()) { + p.textStyle(style(BODY_FONT, BODY_SIZE, BODY, false)); + } else { + p.textStyle(style(BODY_FONT, + OrangeOpsWidgets.markLineSize(entry.icon(), BODY_SIZE), + BODY, false)); + OrangeOpsWidgets.mark(p, entry.icon()); + p.inlineText(" ", style(BODY_FONT, BODY_SIZE, BODY, false)); + } + p.inlineText(entry.title(), style(BODY_FONT, BODY_SIZE, INK, true)); + if (!entry.body().isBlank()) { + p.inlineText(" ", style(BODY_FONT, BODY_SIZE, BODY, false)); + p.inlineText(entry.body(), style(BODY_FONT, BODY_SIZE, BODY, false)); + } + p.margin((float) (first ? ADDITIONAL_RULE_TO_BODY : itemGap), 0f, 0f, 0f); + }); + } + }); + } + + /** A berth's title, with any parenthetical set as the smaller suffix. */ + private static void heading(SectionBuilder block, String name, String title) { + int bracket = title.indexOf('('); + if (bracket < 0) { + OrangeOpsWidgets.mainHeading(block, name, title, null); + return; + } + OrangeOpsWidgets.mainHeading(block, name, title.substring(0, bracket).stripTrailing(), + title.substring(bracket)); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMasthead.java new file mode 100644 index 000000000..1bc677f89 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMasthead.java @@ -0,0 +1,273 @@ +package com.demcha.compose.document.templates.cv.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.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +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.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.svg.SvgPath; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.regex.Pattern; + +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BAR_TO_CONTACT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.CONTACT_SEPARATOR_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.CONTACT_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.CONTACT_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.MARGIN_X; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.NAME_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.NAME_TO_BAR; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ON_DARK; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ROLE_BAR_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ROLE_BAR_SLANT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ROLE_BAR_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ROLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ROLE_TEXT_INSET; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.SLASHES; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.SLASH_BLOCK_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.SLASH_BLOCK_X; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.px; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.style; + +/** + * The three bands above the body row: the two-tone name, the dark role bar with + * its accent slashes, and the contact strip. + * + *

    Why the role bar is a layer stack and not a row

    + * + *

    The plate's bounding box and the slash group's bounding box overlap + * horizontally, and a row cannot place two cells that overlap. The plate is a + * shape container so the white role text is its child — the text is inside the + * bar, not laid beside it — and the three slashes are one path node carrying + * three closed sub-paths, for the same overlap reason.

    + * + *

    Both shapes are described in SVG user space through + * {@link SvgPath#parse(String, double, double, double, double)} rather than raw + * path coordinates: a path builder's own coordinates are bottom-left-origin and + * normalised, and a lean read the wrong way up is a silent mirror rather than + * an error.

    + */ +final class OrangeOpsMasthead { + + /** + * A trunk prefix in a printed number is for a domestic dialler and is not + * part of the international one — {@code +44 (0)20 7946 0832} dials + * {@code +442079460832}. Left in, the digits would run together into a + * number that reaches nobody. + */ + private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); + + private OrangeOpsMasthead() { + } + + /** + * Draws the three bands. + * + * @param page the page flow + * @param identity whose CV this is + */ + static void render(PageFlowBuilder page, CvIdentity identity) { + renderName(page, identity.name()); + renderRoleBar(page, identity.jobTitle()); + renderContactStrip(page, identity); + } + + /** + * The name: one paragraph, two inline runs. + * + *

    The colour change between the given and the family name is a run + * boundary rather than a second node, so the halves cannot drift apart or + * wrap independently of each other.

    + */ + private static void renderName(PageFlowBuilder page, CvName name) { + page.addSection("Masthead", block -> { + block.spacing(0); + block.padding(0f, (float) MARGIN_X, 0f, (float) MARGIN_X); + block.addParagraph(p -> p + .name("Name") + .lineSpacing(0) + .textStyle(style(DISPLAY_FONT, NAME_SIZE, INK, true)) + .inlineText(name.first().toUpperCase(Locale.ROOT), + style(DISPLAY_FONT, NAME_SIZE, INK, true)) + .inlineText(" ", style(DISPLAY_FONT, NAME_SIZE, INK, true)) + .inlineText(name.last().toUpperCase(Locale.ROOT), + style(DISPLAY_FONT, NAME_SIZE, ACCENT, true)) + .margin(0f, 0f, (float) NAME_TO_BAR, 0f)); + }); + } + + /** The role bar: a dark trapezoid carrying the role, and three accent slashes. */ + private static void renderRoleBar(PageFlowBuilder page, String discipline) { + page.addLayerStack(stack -> { + stack.name("RoleBar"); + stack.margin(new DocumentInsets(0, 0, BAR_TO_CONTACT, 0)); + stack.position(slashes(), SLASH_BLOCK_X, 0, LayerAlign.TOP_LEFT, 0); + stack.position(plate(discipline), 0, 0, LayerAlign.TOP_LEFT, 1); + }); + } + + /** + * The dark plate. Its right edge leans left going down by the band's shared + * slant, which is the same lean every slash takes. + */ + private static DocumentNode plate(String discipline) { + String d = "M0,0 L" + px(ROLE_BAR_WIDTH) + ",0 L" + + px(ROLE_BAR_WIDTH - ROLE_BAR_SLANT) + "," + px(ROLE_BAR_HEIGHT) + + " L0," + px(ROLE_BAR_HEIGHT) + " Z"; + SvgPath shape = SvgPath.parse(d, 0, 0, px(ROLE_BAR_WIDTH), px(ROLE_BAR_HEIGHT)); + return new ShapeContainerBuilder() + .name("RoleBarPlate") + .path(ROLE_BAR_WIDTH, ROLE_BAR_HEIGHT, shape) + .fillColor(INK) + .position(new ParagraphBuilder() + .name("RoleText") + .text(discipline.toUpperCase(Locale.ROOT)) + .lineSpacing(0) + .textStyle(style(BODY_FONT, ROLE_SIZE, ON_DARK, true)) + .build(), ROLE_TEXT_INSET, 0, LayerAlign.CENTER_LEFT) + .build(); + } + + /** + * The three slashes as one node. + * + *

    Their bounding boxes overlap — the second starts left of where the + * first ends — so they cannot be three siblings with positive gaps between + * them. Three closed sub-paths in one path is what the design shows.

    + */ + private static DocumentNode slashes() { + StringBuilder d = new StringBuilder(); + for (double[] shape : SLASHES) { + if (d.length() > 0) { + d.append(' '); + } + d.append(slash(shape[0], shape[1])); + } + SvgPath shape = SvgPath.parse(d.toString(), 0, 0, + px(SLASH_BLOCK_WIDTH), px(ROLE_BAR_HEIGHT)); + return new PathBuilder() + .name("RoleSlashes") + .size(SLASH_BLOCK_WIDTH, ROLE_BAR_HEIGHT) + .svg(shape) + .fillColor(ACCENT) + .build(); + } + + /** + * One slash, from where its top edge starts and how wide it is. + * + *

    Two numbers, not four: a slash leans by the band's shared slant like + * everything else on it, so its foot is derived rather than measured.

    + */ + private static String slash(double topLeftPx, double widthPx) { + double h = px(ROLE_BAR_HEIGHT); + double top = topLeftPx * OrangeOpsStyles.PX; + double bottom = top - ROLE_BAR_SLANT; + double width = widthPx * OrangeOpsStyles.PX; + return "M" + px(top) + ",0 L" + px(top + width) + ",0 L" + + px(bottom + width) + "," + h + " L" + px(bottom) + "," + h + " Z"; + } + + /** + * The contact strip: content-sized items with hairlines between them. + * + *

    A top-level row. The item cells are {@link DocumentRowColumn#auto()} so + * each is exactly as wide as its content, and the separator cells are + * {@code weight(1)} so whatever width is left over is split evenly between + * them — which is what lands the last item on the right margin without + * measuring any of the strings.

    + * + *

    The three channels are always drawn: a {@code Contact} rejects a blank + * field, so the triple is non-blank by construction. Each link is drawn as + * its own label with the address behind it, so the strip's width does not + * depend on how long an address happens to be.

    + */ + private static void renderContactStrip(PageFlowBuilder page, CvIdentity identity) { + Contact contact = identity.contact(); + List channels = new ArrayList<>(); + channels.add(new Channel(OrangeOpsIcons.PHONE, contact.phone(), telUri(contact.phone()))); + channels.add(new Channel(OrangeOpsIcons.EMAIL, contact.email(), + "mailto:" + contact.email())); + channels.add(new Channel(OrangeOpsIcons.LOCATION, contact.address(), null)); + for (Link link : identity.links()) { + channels.add(new Channel(markFor(link), link.label(), link.url())); + } + + page.addRow("ContactStrip", row -> { + row.spacing(0); + row.padding(new DocumentInsets(0, MARGIN_X, CONTACT_TO_BODY, MARGIN_X)); + row.verticalAlign(RowVerticalAlign.CENTER); + DocumentRowColumn[] columns = new DocumentRowColumn[2 * channels.size() - 1]; + for (int i = 0; i < columns.length; i++) { + columns[i] = (i % 2 == 0) ? DocumentRowColumn.auto() : DocumentRowColumn.weight(1.0); + } + row.columns(columns); + for (int i = 0; i < channels.size(); i++) { + int index = i; + if (i > 0) { + row.addSection("ContactSeparator" + index, gap -> gap + .spacing(0) + .addAligned(HorizontalAlign.CENTER, new LineBuilder() + .name("ContactSeparator" + index + "Line") + .vertical(CONTACT_SEPARATOR_HEIGHT) + .thickness(RULE_THICKNESS) + .color(RULE) + .build())); + } + Channel channel = channels.get(i); + row.addParagraph(p -> { + p.name("Contact" + index); + p.lineSpacing(0); + p.textStyle(style(BODY_FONT, CONTACT_SIZE, BODY, false)); + OrangeOpsWidgets.mark(p, channel.token()); + p.inlineText(" ", style(BODY_FONT, CONTACT_SIZE, BODY, false)); + if (channel.href() == null) { + p.inlineText(channel.label(), style(BODY_FONT, CONTACT_SIZE, BODY, false)); + } else { + p.inlineText(channel.label(), style(BODY_FONT, CONTACT_SIZE, BODY, false), + new DocumentLinkOptions(channel.href())); + } + }); + } + }); + } + + /** The mark for the network a link points at, or the globe. */ + private static String markFor(Link link) { + return link.url().toLowerCase(Locale.ROOT).contains("linkedin.") + ? OrangeOpsIcons.LINKEDIN + : OrangeOpsIcons.WEBSITE; + } + + /** A printed number as something a reader can dial, or {@code null}. */ + private static String telUri(String phone) { + String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + /** One item of the strip: its mark, what it reads, and where it points. */ + private record Channel(String token, String label, String href) { + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsStyles.java new file mode 100644 index 000000000..8b3ef65e2 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsStyles.java @@ -0,0 +1,404 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.document.table.DocumentTableTextAnchor; +import com.demcha.compose.font.FontName; + +/** + * Design tokens for {@link OrangeOps} — the palette, the type scale, and the + * geometry every part of the sheet measures against. + * + *

    One scale, not forty measurements

    + * + *

    The design was drawn at 1055 px across an A4 page, so {@link #PX} converts + * every length below from that raster to points. Re-measuring the design at a + * different resolution changes this one number rather than each constant that + * came off it.

    + * + *

    Ink gaps and box gaps are different things

    + * + *

    A vertical distance read off a design is between two pieces of + * ink — the foot of one cap band to the top of the next. Every + * vertical distance the engine accepts is between two boxes, and a + * line box reaches above its cap and below its baseline. {@link Face} holds the + * four fractions that separate the two, and {@link #boxGap} is the only place + * the conversion happens.

    + */ +final class OrangeOpsStyles { + + private OrangeOpsStyles() { + } + + /** + * What one line of a face occupies, as fractions of the type size. + * + *

    The numbers are measured from rendered output rather than read out of + * the font tables: the engine derives its line box from the face's ascent + * and descent, which for a condensed display face is close to 1.5 times the + * type size and not the 1.2 a body face gives.

    + * + * @param lineFactor box height, as a multiple of the type size + * @param capTop box top to cap top + * @param capHeight the cap band itself + * @param capBottom baseline to box bottom + */ + record Face(double lineFactor, double capTop, double capHeight, double capBottom) { + + double lineBox(double size) { + return lineFactor * size; + } + + double capTop(double size) { + return capTop * size; + } + + double capBottom(double size) { + return capBottom * size; + } + + /** The type size whose cap band is {@code capHeightPoints} tall. */ + double sizeForCap(double capHeightPoints) { + return capHeightPoints / capHeight; + } + } + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + static final double PAGE_WIDTH = PAGE.width(); + + /** The design's raster is 1055 px wide; every length below came off it. */ + static final double PX = PAGE_WIDTH / 1055.0; + + static final FontName BODY_FONT = FontName.LATO; + + /** + * The display family, named but not carried. + * + *

    Oswald is not one of the families {@code graph-compose-fonts} ships, + * so a caller registers it on the session before composing — see the class + * documentation on {@link OrangeOps}, which republishes this name as its + * own public constant so a caller has something to register against.

    + */ + static final FontName DISPLAY_FONT = FontName.of("Oswald"); + + static final Face LATO = new Face(1.200, 0.2705, 0.7165, 0.2130); + static final Face DISPLAY = new Face(1.482, 0.3670, 0.8460, 0.2690); + + /* Sized so the display face's cap band matches the design's. */ + static final double NAME_SIZE = DISPLAY.sizeForCap(79 * PX); + static final double HEADING_SIZE = DISPLAY.sizeForCap(17 * PX); + static final double ROLE_SIZE = LATO.sizeForCap(14 * PX); + + /* + * The body sizes are fitted to measured string widths, not to cap heights. + * + * A cap height pins the display face, whose job is to be as tall as the + * design's. Running text has a different job: it has to break where the + * design breaks. Sizing the body faces from cap heights instead put every + * one of them about 7% too wide, wrapped an extra line in four places, and + * pushed the body onto a second page. + */ + static final double BODY_SIZE = 8.2; + static final double HEADING_SUFFIX_SIZE = 8.8; + static final double CONTACT_SIZE = 8.2; + + /* + * An achievement's title is display face, not body face: measured against + * the design it wants 13 px of cap and 224 px of width, and in a body face + * those two ask for sizes 1.4 apart — which is what a condensed face looks + * like when it is measured as though it were not one. + */ + static final double ACHIEVEMENT_TITLE_SIZE = DISPLAY.sizeForCap(13 * PX); + static final double ACHIEVEMENT_BODY_SIZE = 8.4; + static final double EDUCATION_TITLE_SIZE = 8.4; + static final double EDUCATION_LINE_SIZE = 8.0; + static final double CERT_TITLE_SIZE = 8.2; + static final double CERT_ISSUER_SIZE = 6.8; + static final double JOB_TITLE_SIZE = 9.3; + static final double JOB_META_SIZE = 8.5; + static final double METRIC_VALUE_SIZE = LATO.sizeForCap(23 * PX); + static final double METRIC_CAPTION_SIZE = 8.6; + + static final double MARGIN_X = 41 * PX; + + /** + * Zero, and measured rather than chosen. + * + *

    The design's name cap starts 30 px down the page. A paragraph's box + * begins {@link Face#capTop} above its cap band, and for the display face at + * {@link #NAME_SIZE} that alone is more than 30 px — so no positive top + * margin puts the cap where the design has it, and zero is as close as the + * page can get.

    + */ + static final double MARGIN_TOP = 0.0; + + /** + * The design's last line of ink sits 34 px above the paper's edge; the box + * that line lives in reaches lower than the ink does, so the margin is that + * measurement less the descender it has to clear. + */ + static final double MARGIN_BOTTOM = 34 * PX - LATO.capBottom(BODY_SIZE); + + static final double CONTENT_WIDTH = PAGE_WIDTH - 2 * MARGIN_X; + static final double ASIDE_WIDTH = 309 * PX; + static final double GUTTER = 63 * PX; + static final double MAIN_WIDTH = CONTENT_WIDTH - ASIDE_WIDTH - GUTTER; + + /** + * The body row spans the whole page, because the page margins are zero and + * each column carries its own padding. The split falls in the middle of the + * gutter, which is what puts the main cell's rule on the divider the design + * shows. + */ + static final double ASIDE_CELL_WEIGHT = (MARGIN_X + ASIDE_WIDTH + GUTTER / 2) / PAGE_WIDTH; + static final double MAIN_CELL_WEIGHT = 1.0 - ASIDE_CELL_WEIGHT; + + static final double ROLE_BAR_HEIGHT = 39 * PX; + static final double ROLE_BAR_WIDTH = 561 * PX; + + /** + * The lean every edge on the role band shares. + * + *

    Tracked row by row down the design, the plate's right edge and all + * three slashes move left by the same 24 px across the 35 rows between the + * band's second row and its second from last. One ratio, four edges — so + * the plate's slant and each slash's foot are derived from it rather than + * measured one at a time. Measuring them separately put four different + * leans on the band and made the slashes visibly diverge from the plate.

    + */ + static final double SLANT_RATIO = 24.0 / 35.0; + static final double ROLE_BAR_SLANT = SLANT_RATIO * ROLE_BAR_HEIGHT; + + /** + * Each slash as {left edge of its top, width}, in design pixels relative to + * {@link #SLASH_BLOCK_X}. The foot is not listed because it is not a + * measurement: it is the top less {@link #ROLE_BAR_SLANT}. + */ + static final double[][] SLASHES = {{26.7, 19}, {53.7, 19}, {80.7, 35}}; + static final double SLASH_BLOCK_X = 545 * PX; + static final double SLASH_BLOCK_WIDTH = 116 * PX; + + /** + * The one gap allowed to be negative. + * + *

    The design leaves 18 px between the name's cap band and the top of the + * role bar, and the display face's box reaches further below its cap band + * than that — so the bar starts inside the name's box, and a clamped + * conversion cannot say so. Clamped, it put the bar 11 px low and, with it, + * everything down the page.

    + */ + static final double NAME_TO_BAR = 18 * PX - DISPLAY.capBottom(NAME_SIZE); + + static final double CONTACT_SEPARATOR_HEIGHT = 20 * PX; + static final double ROLE_TEXT_INSET = MARGIN_X; + + static final double RULE_THICKNESS = 0.9; + static final double ACCENT_RULE_THICKNESS = 3 * PX; + static final double COLUMN_RULE_THICKNESS = 3 * PX; + static final double MAIN_HEADING_RULE_WIDTH = 110 * PX; + + /* + * Neither column spaces its joins the same way twice. The aside goes 26/20 + * px, then 22/15, then 18/13; the main column 28/21, then 24/16, then + * 15/14. Both tighten as their column fills, which is what a designer does + * to balance two columns of different weight, so each join is spaced as the + * design spaces it rather than all of them from the first. Spacing them + * uniformly put the last aside block 24 px low. + * + * Each row is {above, below} in design pixels, top join first. A column + * with more blocks than the design's four reuses the last row, which is the + * tightest. + */ + static final double[][] ASIDE_JOIN_INK = {{26, 20}, {22, 15}, {18, 13}}; + static final double[][] MAIN_JOIN_INK = {{28, 21}, {24, 16}, {15, 14}}; + + static final double SKILL_PITCH = 22 * PX; + static final double ACHIEVEMENT_BODY_PITCH = 18 * PX; + static final double EDUCATION_LINE_PITCH = 21 * PX; + static final double CERT_PITCH = 46 * PX; + static final double PROFILE_PITCH = 20.6 * PX; + static final double BULLET_PITCH = 18 * PX; + static final double BULLET_ITEM_PITCH = 24 * PX; + static final double ADDITIONAL_PITCH = 24 * PX; + + static final double ACHIEVEMENT_CIRCLE = 58 * PX; + static final double EDUCATION_CIRCLE = 52 * PX; + static final double ACHIEVEMENT_ICON_COLUMN = 74 * PX; + + /** + * The achievement cards stop short of the aside's right edge. + * + *

    No body line in any of the design's four cards passes 341 px, and the + * second line of the first card wraps at a word that would have taken it to + * 345 — so the column ends there rather than at the aside's own 350. Given + * the full width the cards fit one more word per line and every one of them + * comes out a line short, which is where the whole of the lower aside's + * drift came from.

    + */ + static final double ACHIEVEMENT_TEXT_INSET = 9 * PX; + static final double EDUCATION_ICON_COLUMN = 69 * PX; + static final double CERT_TEXT_INSET = 16 * PX; + static final double BULLET_SIZE = 5 * PX; + static final double DATE_COLUMN_RATIO = 0.30; + static final double METRIC_SEPARATOR = 0.6; + + /** The design's glyph is a little under half the disc it sits in. */ + static final double BADGE_GLYPH_SHARE = 0.48; + + static final DocumentColor ACCENT = DocumentColor.rgb(0xEF, 0x5B, 0x03); + static final DocumentColor INK = DocumentColor.rgb(0x1E, 0x24, 0x2D); + static final DocumentColor BODY = DocumentColor.rgb(0x33, 0x3A, 0x42); + static final DocumentColor MUTED = DocumentColor.rgb(0x55, 0x59, 0x5F); + static final DocumentColor RULE = DocumentColor.rgb(0xC9, 0xCB, 0xCD); + static final DocumentColor ON_DARK = DocumentColor.rgb(0xFF, 0xFF, 0xFF); + + /** + * A table's rules are drawn per cell from that cell's own stroke, and the + * default style has one. Every table on this page is a layout device rather + * than a ruled grid, so every cell style starts by turning it off. + */ + static final DocumentStroke NO_STROKE = DocumentStroke.of(DocumentColor.rgba(0, 0, 0, 0), 0.0); + + /* Gaps shared by more than one part of the sheet. */ + + static final double BAR_TO_CONTACT = boxGap(18, null, 0, LATO, CONTACT_SIZE); + + /** The design's last contact line descends, so its 29 px is measured from that. */ + static final double CONTACT_TO_BODY = + boxGap(29, LATO, CONTACT_SIZE, true, DISPLAY, HEADING_SIZE); + + static final double HEADING_TO_RULE = boxGap(8, DISPLAY, HEADING_SIZE, null, 0); + + /** + * How far a block's first line sits below its accent rule. + * + *

    The aside's four blocks agree closely enough to share one value — 15, + * 17, 11 and 13 px — but the main column's four do not, and the reason is + * what sits on the first line. Where it is running text the design leaves + * 12 px to the cap; where it is a job title, 16; where it is a row of icons, + * 3, because an icon has no cap band to clear. One shared constant put the + * metric strip and the closing block 8 px low each.

    + */ + static final double RULE_TO_BODY = boxGap(15, null, 0, LATO, BODY_SIZE); + static final double PROFILE_RULE_TO_BODY = boxGap(12, null, 0, LATO, BODY_SIZE); + static final double EXPERIENCE_RULE_TO_BODY = boxGap(16, null, 0, LATO, JOB_TITLE_SIZE); + static final double METRIC_RULE_TO_BODY = boxGap(3, null, 0, null, 0); + static final double ADDITIONAL_RULE_TO_BODY = boxGap(8, null, 0, null, 0); + + static final double ACHIEVEMENT_TITLE_TO_BODY = + boxGap(9, DISPLAY, ACHIEVEMENT_TITLE_SIZE, LATO, ACHIEVEMENT_BODY_SIZE); + + /** A card's body ends on a full sentence, which descends either way. */ + static final double ACHIEVEMENT_GAP = + boxGap(19, LATO, ACHIEVEMENT_BODY_SIZE, true, DISPLAY, ACHIEVEMENT_TITLE_SIZE); + + static final double CERT_TITLE_TO_ISSUER = + boxGap(6, LATO, CERT_TITLE_SIZE, true, LATO, CERT_ISSUER_SIZE); + + /** What is left of a certification's measured pitch once its two lines are in it. */ + static final double CERT_GAP = Math.max(0.0, CERT_PITCH + - LATO.lineBox(CERT_TITLE_SIZE) + - CERT_TITLE_TO_ISSUER + - LATO.lineBox(CERT_ISSUER_SIZE)); + + /* + * 7 px, not the 9 px average: the design's three instances are 7, 9 and 10, + * but only the first job's title ends in a descender and the other two are + * measured from a baseline. Converting the descender instance is the one + * that gives the box gap all three share. + */ + static final double JOB_TITLE_TO_COMPANY = + boxGap(7, LATO, JOB_TITLE_SIZE, true, LATO, JOB_META_SIZE); + static final double COMPANY_TO_BULLETS = + boxGap(13, LATO, JOB_META_SIZE, true, LATO, BODY_SIZE); + static final double JOB_GAP = boxGap(27, LATO, BODY_SIZE, true, LATO, JOB_TITLE_SIZE); + + static final double METRIC_ICON_TO_VALUE = boxGap(11, null, 0, LATO, METRIC_VALUE_SIZE); + static final double METRIC_VALUE_TO_CAPTION = + boxGap(9, LATO, METRIC_VALUE_SIZE, LATO, METRIC_CAPTION_SIZE); + + static DocumentTextStyle style(FontName font, double size, DocumentColor color, boolean bold) { + return DocumentTextStyle.builder() + .fontName(font) + .size(size) + .color(color) + .decoration(bold ? DocumentTextDecoration.BOLD : DocumentTextDecoration.DEFAULT) + .build(); + } + + static DocumentTableStyle cellStyle(DocumentInsets padding, DocumentTableTextAnchor anchor) { + return DocumentTableStyle.builder() + .padding(padding) + .textAnchor(anchor) + .stroke(NO_STROKE) + .build(); + } + + /** + * A gap the design shows between two pieces of ink, as the gap between the + * two boxes that produce it. + * + * @param inkPixels the measured distance, in design pixels + * @param above the face of the line above, or {@code null} for a rule or a shape + * @param sizeAbove its type size + * @param below the face of the line below, or {@code null} for a rule or a shape + * @param sizeBelow its type size + * @return the margin to declare, never negative + */ + static double boxGap(double inkPixels, Face above, double sizeAbove, + Face below, double sizeBelow) { + return boxGap(inkPixels, above, sizeAbove, false, below, sizeBelow); + } + + /** + * The same conversion, told whether the line above ends in a descender. + * + *

    Subtracting the baseline-to-box depth of the line above assumes its ink + * stops at the baseline. A line ending in a p or a g does not: its ink + * already reaches the box, and subtracting that depth a second time takes + * the gap 3 to 5 px too tight. Three such gaps inside one experience entry + * cost 13 px, and three entries put the whole lower main column 42 px + * high.

    + * + * @param inkPixels the measured distance, in design pixels + * @param above the face of the line above, or {@code null} + * @param sizeAbove that line's type size + * @param descenderAbove whether the design's own text on the line above + * descends past its baseline + * @param below the face of the line below, or {@code null} + * @param sizeBelow that line's type size + * @return the margin to declare, never negative + */ + static double boxGap(double inkPixels, Face above, double sizeAbove, boolean descenderAbove, + Face below, double sizeBelow) { + double ink = inkPixels * PX; + double descent = (above == null || descenderAbove) ? 0.0 : above.capBottom(sizeAbove); + double ascent = below == null ? 0.0 : below.capTop(sizeBelow); + return Math.max(0.0, ink - descent - ascent); + } + + /** A measured pitch, less the content it has to clear, is the gap that produces it. */ + static double gap(double pitch, double contentHeight) { + return Math.max(0.0, pitch - contentHeight); + } + + /** + * A measured leading, as the additive value {@code lineSpacing} actually is: + * the engine's line box is the face's line factor times the type size and + * {@code lineSpacing} adds points on top of it, so a CSS-style multiple + * would be silently wrong. + */ + static double leading(double measuredLeading, double size) { + return Math.max(0.0, measuredLeading - LATO.lineBox(size)); + } + + /** Rounds a point value for an SVG user-space coordinate string. */ + static double px(double points) { + return Math.round(points * 100.0) / 100.0; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsWidgets.java new file mode 100644 index 000000000..561a92f46 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsWidgets.java @@ -0,0 +1,215 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.SpacerBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.InlineImageAlignment; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +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.cv.presets.OrangeOpsStyles.Face; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACCENT_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BODY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.DISPLAY; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.HEADING_SUFFIX_SIZE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.HEADING_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.LATO; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.MAIN_HEADING_RULE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.NO_STROKE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.cellStyle; +import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.style; + +/** + * The pieces more than one part of the Orange Ops sheet draws: the two kinds of + * heading, an inline mark, and the badge disc. + * + *

    The two kinds of heading rule

    + * + *

    In the aside the accent rule under a heading is exactly as wide as the + * heading's own text, and no API measures a string — so the pair is a two-row + * table on a single {@link DocumentTableColumn#auto()} column: the column sizes + * itself to the heading, and the second row is a hairline-high spacer in an + * accent-filled cell, which paints across whatever width the column resolved + * to. In the main column the rule is a fixed short length and is a plain line. + * Both come from the design; neither is a guess about the other.

    + */ +final class OrangeOpsWidgets { + + private OrangeOpsWidgets() { + } + + /** Places a packaged mark inline, on the line of the paragraph it opens. */ + static void mark(ParagraphBuilder paragraph, String token) { + paragraph.inlineSvgIcon(OrangeOpsIcons.icon(token), OrangeOpsIcons.size(token), + InlineImageAlignment.CENTER); + } + + /** + * The type size a paragraph needs so an inline mark is not clipped. + * + *

    An inline run is measured into the line box the paragraph's style + * gives it, so a mark taller than its label is drawn clipped to the label + * unless the box is opened up first.

    + */ + static double markLineSize(String token, double labelSize) { + return Math.max(labelSize, OrangeOpsIcons.size(token) / LATO.lineFactor()); + } + + /** + * An aside heading and its text-width accent rule. + * + * @param block the block the heading opens + * @param name the node name, for review and rollback + * @param text the heading + */ + static void asideHeading(SectionBuilder block, String name, String text) { + block.addTable(table -> { + table.name(name + "Heading"); + table.columns(DocumentTableColumn.auto()); + table.defaultCellStyle(cellStyle(DocumentInsets.zero(), + DocumentTableTextAnchor.TOP_LEFT)); + table.rowCells(DocumentTableCell.node(new ParagraphBuilder() + .name(name + "HeadingText") + .text(text) + .lineSpacing(0) + .textStyle(style(DISPLAY_FONT, HEADING_SIZE, INK, true)) + .build())); + table.rowStyle(0, cellStyle(new DocumentInsets(0, 0, HEADING_TO_RULE, 0), + DocumentTableTextAnchor.TOP_LEFT)); + table.rowCells(DocumentTableCell.node(new SpacerBuilder() + .name(name + "HeadingRule") + .height(ACCENT_RULE_THICKNESS) + .build()) + .withStyle(DocumentTableStyle.builder() + .padding(DocumentInsets.zero()) + .fillColor(ACCENT) + .textAnchor(DocumentTableTextAnchor.TOP_LEFT) + .stroke(NO_STROKE) + .build())); + }); + } + + /** + * A main-column heading and its fixed-length accent rule. + * + * @param block the block the heading opens + * @param name the node name, for review and rollback + * @param text the heading + * @param suffix the smaller parenthetical set on the same line, or + * {@code null} when the heading stands alone + */ + static void mainHeading(SectionBuilder block, String name, String text, String suffix) { + block.addParagraph(p -> { + p.name(name + "Heading"); + p.lineSpacing(0); + p.textStyle(style(DISPLAY_FONT, HEADING_SIZE, INK, true)); + p.inlineText(text, style(DISPLAY_FONT, HEADING_SIZE, INK, true)); + if (suffix != null && !suffix.isBlank()) { + p.inlineText(" ", style(BODY_FONT, HEADING_SUFFIX_SIZE, INK, false)); + p.inlineText(suffix, style(BODY_FONT, HEADING_SUFFIX_SIZE, INK, false)); + } + p.margin(0f, 0f, (float) HEADING_TO_RULE, 0f); + }); + block.addLine(line -> line + .name(name + "HeadingRule") + .horizontal(MAIN_HEADING_RULE_WIDTH) + .thickness(ACCENT_RULE_THICKNESS) + .color(ACCENT)); + } + + /** + * One block of a column, and what its last line is set in. + * + *

    The join rule below a block is spaced from the ink above it, and what + * that ink is differs per block — so a block carries the face of its own + * last line rather than the column guessing.

    + * + * @param name the node name of the rule that follows, for review + * @param render draws the block into the column + * @param trailingFace the face of the block's last line + * @param trailingSize that line's type size + * @param trailingDescends whether the design's own last line there descends + */ + record Block(String name, Consumer render, Face trailingFace, + double trailingSize, boolean trailingDescends) { + } + + /** + * Draws a column's blocks with a hairline between each neighbouring pair. + * + *

    A join takes the spacing the design gives the join in that position, + * and a column carrying more blocks than the design's four reuses the last + * row of {@code joinInk}, which is the tightest. A berth nobody filled + * simply is not in {@code blocks}, so it takes its rule with it rather than + * leaving a hairline over a gap.

    + * + * @param column the column to draw into + * @param blocks the blocks that have content, in the order the design has them + * @param joinInk each join's {above, below} spacing in design pixels + */ + static void stack(SectionBuilder column, List blocks, double[][] joinInk) { + for (int i = 0; i < blocks.size(); i++) { + Block block = blocks.get(i); + block.render().accept(column); + if (i == blocks.size() - 1) { + continue; + } + double[] ink = joinInk[Math.min(i, joinInk.length - 1)]; + double above = OrangeOpsStyles.boxGap(ink[0], block.trailingFace(), + block.trailingSize(), block.trailingDescends(), null, 0); + double below = OrangeOpsStyles.boxGap(ink[1], null, 0, DISPLAY, HEADING_SIZE); + column.addLine(line -> line + .name("After" + block.name() + "Rule") + .fill() + .thickness(RULE_THICKNESS) + .color(RULE) + .margin(new DocumentInsets(above, 0, below, 0))); + } + } + + /** A body split into the lines it was written as, blanks dropped. */ + static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split(String.valueOf((char) 10))) { + if (!line.isBlank()) { + out.add(line.strip()); + } + } + return out; + } + + /** + * A coloured disc with the mark centred inside it, as one inline run. + * + * @param name the node name, for review and rollback + * @param token the mark to draw inside the disc + * @param diameter the disc's diameter in points + * @param fill the disc colour + * @return a paragraph carrying the badge as its only run + */ + static DocumentNode badge(String name, String token, double diameter, DocumentColor fill) { + return new ParagraphBuilder() + .name(name) + .lineSpacing(0) + .textStyle(style(BODY_FONT, diameter / LATO.lineFactor(), BODY, false)) + .inlineSvgIcon(OrangeOpsIcons.badge(token, fill), diameter, + InlineImageAlignment.CENTER) + .build(); + } +} diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-accuracy.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-accuracy.svg new file mode 100644 index 000000000..4acd24b1b --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-accuracy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-productivity.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-productivity.svg new file mode 100644 index 000000000..7e01ed82c --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-productivity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-safety.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-safety.svg new file mode 100644 index 000000000..ed04bed25 --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-safety.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-savings.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-savings.svg new file mode 100644 index 000000000..c80d1294d --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/achievement-savings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/driving.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/driving.svg new file mode 100644 index 000000000..1277390b1 --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/driving.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/email.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/email.svg new file mode 100644 index 000000000..a8b288cd0 --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/graduation.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/graduation.svg new file mode 100644 index 000000000..7bd6b994a --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/graduation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/interests.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/interests.svg new file mode 100644 index 000000000..e1f819a08 --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/interests.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-accuracy.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-accuracy.svg new file mode 100644 index 000000000..d92589d89 --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-accuracy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-delivery.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-delivery.svg new file mode 100644 index 000000000..544ceb08b --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-delivery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-productivity.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-productivity.svg new file mode 100644 index 000000000..c3e0c7cea --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-productivity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-safety.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-safety.svg new file mode 100644 index 000000000..a1f9c5865 --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/kpi-safety.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/languages.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/languages.svg new file mode 100644 index 000000000..153473140 --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/languages.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/linkedin.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/linkedin.svg new file mode 100644 index 000000000..1af11efbc --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/location.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/location.svg new file mode 100644 index 000000000..8bfcc6b34 --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/phone.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/phone.svg new file mode 100644 index 000000000..ef5dd3a38 --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/systems.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/systems.svg new file mode 100644 index 000000000..5e702de5d --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/systems.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/orange-ops/icons/website.svg b/templates/src/main/resources/templates/cv/orange-ops/icons/website.svg new file mode 100644 index 000000000..5e702de5d --- /dev/null +++ b/templates/src/main/resources/templates/cv/orange-ops/icons/website.svg @@ -0,0 +1 @@ + \ No newline at end of file From ccb83b12783dd3be9288611fbc6c41c4509a0ae9 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 22:02:31 +0100 Subject: [PATCH 25/85] feat(templates): add the Midnight Navy plate CV preset (#634) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(templates): add the Midnight Navy plate CV preset A one-page CV on a full-height navy plate: an outlined monogram over a two-weight name and a tracked role line, then contact, education, metered skills and dotted languages down the plate, beside a paper column with the summary, roles on a rail, achievement discs and divided certification columns. Ships as cv.presets.MidnightNavy on the existing CvDocument model, so the port needed no model change. The plate is a page background rather than a section fill — it reaches three paper edges — sized by the same ratio the body row splits on. The monogram and the role line are built from the identity, so a document fills neither in twice. One page strictly: the body is a single row and a row is atomic, so a longer CV is refused with the node that could not fit rather than being cut. Splitting the row would leave the plate on one page and half the aside on the next. Guarded by a 15-case smoke test, an exact layout snapshot and a pixel-parity gate. * fix(templates): centre the Midnight Navy rail markers on their rail An accent is drawn centred on the edge it belongs to, so an entry section's left edge already is the rail's axis: a marker reaches it by walking back across the gutter and half its own width, and nothing else. Correcting by half the rail's thickness on top of that pushed every marker a rail width to the right of the line it sits on — 0.72 pt, measured on the render as a marker centre at x=449.5 against a rail centre at x=448.0 at 150 dpi. Centred, the residual is half a raster pixel at any resolution (0.24 pt at 150 dpi, 0.06 pt at 600), which is antialiasing rather than geometry. The change costs 200 of 2 173 720 pixels against the ported sheet, and both baselines are re-recorded with it. --- CHANGELOG.md | 37 + .../readme/examples/cv-midnight-navy-v2.pdf | Bin 0 -> 37051 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../support/MidnightNavySampleData.java | 198 + .../examples/support/ShowcaseMetadata.java | 1 + .../templates/cv/v2/MidnightNavyExample.java | 52 + .../cv/presets/MidnightNavyFixtures.java | 197 + .../MidnightNavyLayoutSnapshotTest.java | 32 + .../cv/presets/MidnightNavySmokeTest.java | 292 + .../presets/MidnightNavyVisualParityTest.java | 41 + .../cv-v2/midnight_navy_layout.json | 7217 +++++++++++++++++ .../cv-v2-layered/midnight_navy-page-0.png | Bin 0 -> 117381 bytes .../templates/cv/presets/MidnightNavy.java | 224 + .../cv/presets/MidnightNavyAside.java | 414 + .../cv/presets/MidnightNavyIcons.java | 99 + .../cv/presets/MidnightNavyMain.java | 296 + .../cv/presets/MidnightNavyStyles.java | 180 + .../cv/presets/MidnightNavyWidgets.java | 159 + .../cv/midnight-navy/icons/award.svg | 1 + .../cv/midnight-navy/icons/email.svg | 1 + .../cv/midnight-navy/icons/growth.svg | 1 + .../cv/midnight-navy/icons/linkedin.svg | 1 + .../cv/midnight-navy/icons/location.svg | 1 + .../cv/midnight-navy/icons/phone.svg | 1 + .../cv/midnight-navy/icons/trophy.svg | 1 + .../cv/midnight-navy/icons/website.svg | 1 + 26 files changed, 9449 insertions(+) create mode 100644 assets/readme/examples/cv-midnight-navy-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/MidnightNavySampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/MidnightNavyExample.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavySmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/midnight_navy_layout.json create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/midnight_navy-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavy.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyAside.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyWidgets.java create mode 100644 templates/src/main/resources/templates/cv/midnight-navy/icons/award.svg create mode 100644 templates/src/main/resources/templates/cv/midnight-navy/icons/email.svg create mode 100644 templates/src/main/resources/templates/cv/midnight-navy/icons/growth.svg create mode 100644 templates/src/main/resources/templates/cv/midnight-navy/icons/linkedin.svg create mode 100644 templates/src/main/resources/templates/cv/midnight-navy/icons/location.svg create mode 100644 templates/src/main/resources/templates/cv/midnight-navy/icons/phone.svg create mode 100644 templates/src/main/resources/templates/cv/midnight-navy/icons/trophy.svg create mode 100644 templates/src/main/resources/templates/cv/midnight-navy/icons/website.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 1052050ba..f8562a383 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -97,6 +97,43 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A navy-plate CV preset: `MidnightNavy`.** A one-page sheet on a full-height navy + plate: an outlined monogram over a two-weight name and a tracked role line, then + contact, education, metered skills and dotted languages down the plate, beside a + paper column carrying the summary, the roles held on a rail, three achievement discs + and the certifications in divided columns. Ships as `cv.presets.MidnightNavy` on the + existing `CvDocument` model, porting the rendered layout of a published standalone + template; it needed no model change. The plate is a page background rather than a + section fill — it reaches three paper edges and a fill stops at its own box — sized + by the same ratio the body row splits on, so the two cannot drift apart. Every + horizontal pair goes through one wrapper: a row nested directly in a row cell is + refused and both columns are cells, so a skill and its meter, a language and its + dots, a title and its dates, a disc and its line and the certification columns are + each a row wrapped in a single layer of a stack. Three marks are relationships rather + than lengths: the experience rail is the entry section's left accent, so its height + derives from the entry and the inter-entry gap is padding inside the border, which is + what makes consecutive rails meet; a certification divider is the column's own + accent; and a skill meter is three layers sharing the track's axis rather than three + pieces placed apart. The monogram and the role line are built from the identity — two + initials and the name's own words — so a document fills neither in twice. Seven + berths reach their sections by title, and the contact heading is the preset's own + because a document has no section to carry it. Unlike its ported siblings this sheet + is one page **strictly**: the body is a single row and a row is atomic, so a longer CV + is refused with an `AtomicNodeTooLargeException` naming the node rather than being cut + — splitting the row would leave the plate on one page and half the aside on the next. + Two things depart from the ported sheet deliberately, and both are measured. A link is + drawn as its own label with the address behind it, as on the presets before it. And + every rail marker is centred on its rail: an accent is drawn centred on the edge it + belongs to, so the section's left edge already is the rail's axis, and the ported + sheet's extra half-thickness correction put each marker a rail width to the right of + the line it sits on — 0.72 pt, visible at reading size. Together the two come to + 2 498 of 2 173 720 pixels, of which the centring is 200. Guarded by a smoke test (including the unknown-mark data error, the + monogram taken from the name, the uppercased name and tracked role, a language rating + rounded to the nearest of five dots, a skill with no level, a trunk prefix left + undialled, the link targets on every kind of title, a dropped berth, a document with + nothing but an identity, and the refusal past one page), an exact layout snapshot and + a pixel-parity gate; the examples showcase gains `cv-midnight-navy-v2`. + - **A two-column operations CV preset: `OrangeOps`.** A one-page sheet in three bands over a split body: a two-tone name above a dark role bar whose right edge and three accent slashes all lean by one ratio, a contact strip whose items sit on one axis diff --git a/assets/readme/examples/cv-midnight-navy-v2.pdf b/assets/readme/examples/cv-midnight-navy-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..738becf1fd332c6ca8640ed9ec03505807f9db8b GIT binary patch literal 37051 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 A$p8QV 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 e0cd6b1a5..9a7049ba2 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -81,6 +81,7 @@ import com.demcha.examples.templates.coverletter.CvTimelineMinimalLetterV2Example; import com.demcha.examples.templates.cv.v2.CharcoalGoldExample; import com.demcha.examples.templates.cv.v2.SlateOrangeExample; +import com.demcha.examples.templates.cv.v2.MidnightNavyExample; import com.demcha.examples.templates.cv.v2.OrangeOpsExample; import com.demcha.examples.templates.cv.v2.VioletGridExample; import com.demcha.examples.templates.cv.v2.TealPulseExample; @@ -164,6 +165,7 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + SlateOrangeExample.generate()); System.out.println("Generated: " + VioletGridExample.generate()); System.out.println("Generated: " + OrangeOpsExample.generate()); + System.out.println("Generated: " + MidnightNavyExample.generate()); // Cover letters (v2 layered — 15 paired letters, one per CV preset) System.out.println("Generated: " + CvBlueBannerLetterV2Example.generate()); diff --git a/examples/src/main/java/com/demcha/examples/support/MidnightNavySampleData.java b/examples/src/main/java/com/demcha/examples/support/MidnightNavySampleData.java new file mode 100644 index 000000000..9b6f85d16 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/MidnightNavySampleData.java @@ -0,0 +1,198 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * Shared sample data for the Midnight Navy CV example. + * + *

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

    + */ +public final class MidnightNavySampleData { + + /** The break a body stacks its lines on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private MidnightNavySampleData() { + } + + /** + * The canonical one-page CV — five contact rows including two links, two + * degrees, ten metered skills, three rated languages, the summary, three + * roles, three achievement discs and two certifications. + * + * @return the document + */ + public static CvDocument sample() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, education())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, skills())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, languages())); + placements.add(new CvDocument.Placement(Slot.MAIN, summary())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.MAIN, achievements())); + placements.add(new CvDocument.Placement(Slot.MAIN, certifications())); + return new CvDocument(identity(), placements); + } + + private static CvIdentity identity() { + return new CvIdentity( + CvName.of("Alex", "Morgan"), + "Marketing Manager", + new Contact("+1 (555) 123-4567", + "alex.morgan@email.com", + "New York, NY, USA"), + List.of(new Link("LinkedIn", "https://www.linkedin.com/in/alexmorgan"), + new Link("Portfolio", "https://alexmorgan.com")), + Optional.empty()); + } + + /** The degrees, newest first. */ + private static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("MASTER OF BUSINESS ADMINISTRATION") + .subtitle("University of Chicago Booth School of Business") + .date("2016 \u2013 2018") + .build(), + CvEntry.builder("BACHELOR OF SCIENCE IN MARKETING") + .subtitle("Boston University") + .date("2012 \u2013 2016") + .build())); + } + + /** The metered skills, as one flat group. */ + private static SkillsSection skills() { + List entries = new ArrayList<>(); + entries.add(CvSkill.of("Strategic Planning", 0.82)); + entries.add(CvSkill.of("Digital Marketing", 0.84)); + entries.add(CvSkill.of("Market Research", 0.76)); + entries.add(CvSkill.of("Brand Management", 0.84)); + entries.add(CvSkill.of("Data Analysis", 0.81)); + entries.add(CvSkill.of("Project Management", 0.68)); + entries.add(CvSkill.of("Google Analytics", 0.83)); + entries.add(CvSkill.of("SEO / SEM", 0.76)); + entries.add(CvSkill.of("Microsoft Office Suite", 0.75)); + entries.add(CvSkill.of("Communication", 0.96)); + return new SkillsSection("SKILLS", + List.of(new SkillGroup("SKILLS", entries))); + } + + /** The languages. The design shows a rating in fifths. */ + private static SkillsSection languages() { + List entries = new ArrayList<>(); + entries.add(CvSkill.of("English", 1.0)); + entries.add(CvSkill.of("Spanish", 0.8)); + entries.add(CvSkill.of("French", 0.6)); + return new SkillsSection("LANGUAGES", + List.of(new SkillGroup("LANGUAGES", entries))); + } + + /** The opening prose. */ + private static ParagraphSection summary() { + return new ParagraphSection("PROFESSIONAL SUMMARY", + "Results-driven Marketing Manager with 6+ years of " + + "experience in developing and executing data-driven " + + "marketing strategies that drive brand growth and " + + "customer engagement. Proven track record in leading " + + "cross-functional teams, managing successful campaigns, " + + "and delivering measurable results. Passionate about " + + "building strong brands and creating impactful marketing " + + "initiatives."); + } + + /** The roles held, each a headline over its bullets. */ + private static EntriesSection experience() { + return new EntriesSection("EXPERIENCE", List.of( + CvEntry.builder("MARKETING MANAGER") + .subtitle("Starwave Solutions") + .place("New York, NY") + .date("2021 \u2013 Present") + .body(String.join(NEWLINE, + "Develop and implement comprehensive marketing strategies " + + "that increased brand awareness by 40% and lead " + + "generation by 35%.", + "Manage a team of 6 marketing professionals and " + + "collaborate with sales, product, and design teams to " + + "drive campaign success.", + "Oversee digital campaigns across SEO, SEM, social media, " + + "and email marketing resulting in a 25% increase in ROI.", + "Analyze market trends and competitor activities to " + + "identify new opportunities and optimize marketing " + + "efforts.")) + .build(), + CvEntry.builder("SENIOR MARKETING SPECIALIST") + .subtitle("BrightLine Technologies") + .place("New York, NY") + .date("2018 \u2013 2021") + .body(String.join(NEWLINE, + "Executed multi-channel marketing campaigns that improved " + + "customer engagement by 30%.", + "Conducted market research and data analysis to support " + + "strategic decision-making.", + "Managed social media channels and content strategy, " + + "growing followers by 50%.", + "Coordinated with creative teams to develop compelling " + + "content and visuals.")) + .build(), + CvEntry.builder("MARKETING COORDINATOR") + .subtitle("Peak Performance Group") + .place("Boston, MA") + .date("2016 \u2013 2018") + .body(String.join(NEWLINE, + "Supported the development and execution of marketing " + + "plans and campaigns.", + "Assisted in organizing events, webinars, and promotional " + + "activities.", + "Monitored campaign performance and prepared reports for " + + "management.", + "Maintained and updated marketing databases and CRM " + + "systems.")) + .build())); + } + + /** + * The discs. A card has one line and no heading over it, so the line is + * the entry's title. + */ + private static EntriesSection achievements() { + return new EntriesSection("ACHIEVEMENTS", List.of( + CvEntry.builder("Increased brand awareness by 40% within 2 years.") + .icon("trophy") + .build(), + CvEntry.builder("Boosted lead generation by 35% annually.") + .icon("growth") + .build(), + CvEntry.builder("Recognized as Top Performer in 2022.") + .icon("award") + .build())); + } + + /** The certifications, one to a column. */ + private static EntriesSection certifications() { + return new EntriesSection("CERTIFICATIONS", List.of( + CvEntry.builder("Google Analytics Certified") + .subtitle("Google") + .date("2020") + .build(), + CvEntry.builder("HubSpot Content Marketing Certified") + .subtitle("HubSpot Academy") + .date("2021") + .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 34d7b7575..554b07dc5 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -69,6 +69,7 @@ record Entry(String title, String description, List tags, String codeUrl cv("cv-slate-orange-v2", "SlateOrangeExample", "Slate Orange", "Full-bleed slate masthead with an orange monogram tile, over a sidebar of marked competencies, trophied achievements and rated languages beside a profile, a dated experience rail and a credentials footer.", "sidebar", "masthead", "orange"); cv("cv-violet-grid-v2", "VioletGridExample", "Violet Grid", "Single-column sheet in bands: a two-tone name beside the contact list, a six-up grid of marked skills on dotted rules, a tools strip, a dated timeline, tinted project tiles and a closing quotation.", "single-column", "grid", "violet"); cv("cv-orange-ops-v2", "OrangeOpsExample", "Orange Ops", "Operations sheet with a two-tone name over a slanted role bar and accent slashes, a contact strip on hairlines, and a sidebar of skills, achievement discs and credentials beside a profile, dated roles and a four-metric strip.", "sidebar", "metrics", "orange"); + cv("cv-midnight-navy-v2", "MidnightNavyExample", "Midnight Navy", "Full-height navy plate carrying an outlined monogram, a tracked role line, metered skills and dotted languages, beside a paper column with the summary, roles on a rail, achievement discs and divided certification columns.", "sidebar", "monogram", "navy"); // ===== Templates / Cover Letter (v2 layered, paired 1:1 with CV) ===== // Registered directly: letter() points at the layered preset examples under diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/MidnightNavyExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/MidnightNavyExample.java new file mode 100644 index 000000000..0c73823e1 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/MidnightNavyExample.java @@ -0,0 +1,52 @@ +package com.demcha.examples.templates.cv.v2; + +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.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.MidnightNavy; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.MidnightNavySampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code cv.v2} Midnight Navy preset against the design + * sample. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-midnight-navy-v2.pdf}.

    + * + *

    The preset owns its page geometry — every length is a share of the + * design's own grid, and the navy plate is a page background sized by the same + * ratio the body row splits on — so the session starts unconfigured.

    + */ +public final class MidnightNavyExample { + + private MidnightNavyExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare("templates/cv", "cv-midnight-navy-v2.pdf"); + CvDocument doc = MidnightNavySampleData.sample(); + DocumentTemplate template = MidnightNavy.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + template.compose(document, doc); + 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/cv/presets/MidnightNavyFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyFixtures.java new file mode 100644 index 000000000..c575720a9 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyFixtures.java @@ -0,0 +1,197 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * Shared fixture data for the {@link MidnightNavy} gates — the SAME document + * feeds the pixel parity test and the layout snapshot test, so a geometry + * shift the pixel budget absorbs still trips the exact snapshot, and vice + * versa. + */ +final class MidnightNavyFixtures { + + /** The break a body stacks its lines on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private MidnightNavyFixtures() { + } + + /** + * The canonical one-page CV — five contact rows including two links, two + * degrees, ten metered skills, three rated languages, the summary, three + * roles, three achievement discs and two certifications. + * + * @return the document + */ + public static CvDocument canonicalCv() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, education())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, skills())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, languages())); + placements.add(new CvDocument.Placement(Slot.MAIN, summary())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.MAIN, achievements())); + placements.add(new CvDocument.Placement(Slot.MAIN, certifications())); + return new CvDocument(identity(), placements); + } + + static CvIdentity identity() { + return new CvIdentity( + CvName.of("Alex", "Morgan"), + "Marketing Manager", + new Contact("+1 (555) 123-4567", + "alex.morgan@email.com", + "New York, NY, USA"), + List.of(new Link("LinkedIn", "https://www.linkedin.com/in/alexmorgan"), + new Link("Portfolio", "https://alexmorgan.com")), + Optional.empty()); + } + + /** The degrees, newest first. */ + static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("MASTER OF BUSINESS ADMINISTRATION") + .subtitle("University of Chicago Booth School of Business") + .date("2016 \u2013 2018") + .build(), + CvEntry.builder("BACHELOR OF SCIENCE IN MARKETING") + .subtitle("Boston University") + .date("2012 \u2013 2016") + .build())); + } + + /** The metered skills, as one flat group. */ + static SkillsSection skills() { + List entries = new ArrayList<>(); + entries.add(CvSkill.of("Strategic Planning", 0.82)); + entries.add(CvSkill.of("Digital Marketing", 0.84)); + entries.add(CvSkill.of("Market Research", 0.76)); + entries.add(CvSkill.of("Brand Management", 0.84)); + entries.add(CvSkill.of("Data Analysis", 0.81)); + entries.add(CvSkill.of("Project Management", 0.68)); + entries.add(CvSkill.of("Google Analytics", 0.83)); + entries.add(CvSkill.of("SEO / SEM", 0.76)); + entries.add(CvSkill.of("Microsoft Office Suite", 0.75)); + entries.add(CvSkill.of("Communication", 0.96)); + return new SkillsSection("SKILLS", + List.of(new SkillGroup("SKILLS", entries))); + } + + /** The languages. The design shows a rating in fifths. */ + static SkillsSection languages() { + List entries = new ArrayList<>(); + entries.add(CvSkill.of("English", 1.0)); + entries.add(CvSkill.of("Spanish", 0.8)); + entries.add(CvSkill.of("French", 0.6)); + return new SkillsSection("LANGUAGES", + List.of(new SkillGroup("LANGUAGES", entries))); + } + + /** The opening prose. */ + static ParagraphSection summary() { + return new ParagraphSection("PROFESSIONAL SUMMARY", + "Results-driven Marketing Manager with 6+ years of " + + "experience in developing and executing data-driven " + + "marketing strategies that drive brand growth and " + + "customer engagement. Proven track record in leading " + + "cross-functional teams, managing successful campaigns, " + + "and delivering measurable results. Passionate about " + + "building strong brands and creating impactful marketing " + + "initiatives."); + } + + /** The roles held, each a headline over its bullets. */ + static EntriesSection experience() { + return new EntriesSection("EXPERIENCE", List.of( + CvEntry.builder("MARKETING MANAGER") + .subtitle("Starwave Solutions") + .place("New York, NY") + .date("2021 \u2013 Present") + .body(String.join(NEWLINE, + "Develop and implement comprehensive marketing strategies " + + "that increased brand awareness by 40% and lead " + + "generation by 35%.", + "Manage a team of 6 marketing professionals and " + + "collaborate with sales, product, and design teams to " + + "drive campaign success.", + "Oversee digital campaigns across SEO, SEM, social media, " + + "and email marketing resulting in a 25% increase in ROI.", + "Analyze market trends and competitor activities to " + + "identify new opportunities and optimize marketing " + + "efforts.")) + .build(), + CvEntry.builder("SENIOR MARKETING SPECIALIST") + .subtitle("BrightLine Technologies") + .place("New York, NY") + .date("2018 \u2013 2021") + .body(String.join(NEWLINE, + "Executed multi-channel marketing campaigns that improved " + + "customer engagement by 30%.", + "Conducted market research and data analysis to support " + + "strategic decision-making.", + "Managed social media channels and content strategy, " + + "growing followers by 50%.", + "Coordinated with creative teams to develop compelling " + + "content and visuals.")) + .build(), + CvEntry.builder("MARKETING COORDINATOR") + .subtitle("Peak Performance Group") + .place("Boston, MA") + .date("2016 \u2013 2018") + .body(String.join(NEWLINE, + "Supported the development and execution of marketing " + + "plans and campaigns.", + "Assisted in organizing events, webinars, and promotional " + + "activities.", + "Monitored campaign performance and prepared reports for " + + "management.", + "Maintained and updated marketing databases and CRM " + + "systems.")) + .build())); + } + + /** + * The discs. A card has one line and no heading over it, so the line is + * the entry's title. + */ + static EntriesSection achievements() { + return new EntriesSection("ACHIEVEMENTS", List.of( + CvEntry.builder("Increased brand awareness by 40% within 2 years.") + .icon("trophy") + .build(), + CvEntry.builder("Boosted lead generation by 35% annually.") + .icon("growth") + .build(), + CvEntry.builder("Recognized as Top Performer in 2022.") + .icon("award") + .build())); + } + + /** The certifications, one to a column. */ + static EntriesSection certifications() { + return new EntriesSection("CERTIFICATIONS", List.of( + CvEntry.builder("Google Analytics Certified") + .subtitle("Google") + .date("2020") + .build(), + CvEntry.builder("HubSpot Content Marketing Certified") + .subtitle("HubSpot Academy") + .date("2021") + .build())); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyLayoutSnapshotTest.java new file mode 100644 index 000000000..3168694ee --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyLayoutSnapshotTest.java @@ -0,0 +1,32 @@ +package com.demcha.compose.document.templates.cv.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 MidnightNavy} — freezes the resolved + * geometry of the canonical one-page CV, which the pixel budget cannot see: a + * small column or spacing shift stays under the visual-diff budget but changes + * the snapshot. + * + *

    The preset owns its page geometry, so the session starts unconfigured.

    + * + *

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

    + */ +class MidnightNavyLayoutSnapshotTest { + + @Test + void canonicalCvMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + MidnightNavy.create().compose(session, MidnightNavyFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "midnight_navy_layout", "cv-v2"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavySmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavySmokeTest.java new file mode 100644 index 000000000..565c0418f --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavySmokeTest.java @@ -0,0 +1,292 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.exceptions.AtomicNodeTooLargeException; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSection; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link MidnightNavy} — proves the preset renders a + * {@link CvDocument} end-to-end with its packaged marks, builds the monogram + * and the tracked role line from the identity it is given, rounds a language's + * rating to the nearest of five dots, reports an unknown mark as a data error, + * drops a berth nobody filled, and carries the channels and the entry titles as + * link annotations, which move no pixel and no layout node so neither gate + * would notice them going missing. + */ +class MidnightNavySmokeTest { + + private static final String NEWLINE = String.valueOf((char) 10); + + private static byte[] render(CvDocument doc) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + MidnightNavy.create().compose(session, doc); + 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); + } + } + + /** The text with its spaces removed — the role line is tracked with real spaces. */ + private static String compact(String text) { + return text.replaceAll("(?U)\\s", ""); + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + /** The canonical document with one section replaced. */ + private static CvDocument withSection(Slot slot, CvSection replacement, + String replacedTitle) { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : MidnightNavyFixtures.canonicalCv().placements()) { + if (placement.section().title().equals(replacedTitle)) { + placements.add(new CvDocument.Placement(slot, replacement)); + } else { + placements.add(placement); + } + } + return new CvDocument(MidnightNavyFixtures.identity(), placements); + } + + /** The canonical document with one section left out entirely. */ + private static CvDocument withoutSection(String droppedTitle) { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : MidnightNavyFixtures.canonicalCv().placements()) { + if (!placement.section().title().equals(droppedTitle)) { + placements.add(placement); + } + } + return new CvDocument(MidnightNavyFixtures.identity(), placements); + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = MidnightNavy.create(); + assertThat(template.id()).isEqualTo(MidnightNavy.ID); + assertThat(template.displayName()).isEqualTo(MidnightNavy.DISPLAY_NAME); + } + + @Test + void rendersCanonicalCvWithPackagedMarks() throws Exception { + render(MidnightNavyFixtures.canonicalCv()); + } + + @Test + void canonicalRenderCarriesEveryBlocksText() throws Exception { + String text = textOf(render(MidnightNavyFixtures.canonicalCv())); + assertThat(text) + .contains("alex.morgan@email.com") + .contains("New York, NY, USA") + .contains("University of Chicago Booth School of") + .contains("Strategic Planning") + .contains("English") + .contains("Results-driven Marketing Manager") + .contains("Starwave Solutions") + .contains("Increased brand") + .contains("Google Analytics Certified"); + assertThat(compact(text)).contains("CONTACT"); + } + + @Test + void theMonogramIsTheTwoInitialsOfTheName() throws Exception { + // The circle carries one initial per line, taken from the name rather + // than from a field a document would have to fill in twice. + String text = textOf(render(MidnightNavyFixtures.canonicalCv())); + List lines = text.lines().map(String::strip) + .filter(line -> !line.isEmpty()).toList(); + assertThat(lines).contains("A", "M"); + } + + @Test + void theNameAndRoleAreSetInCapitals() throws Exception { + // The design sets both in capitals, and the role is tracked with real + // spaces — so it is the spaceless text that carries the wording. + String compact = compact(textOf(render(MidnightNavyFixtures.canonicalCv()))); + assertThat(compact).contains("ALEXMORGAN").contains("MARKETINGMANAGER"); + } + + @Test + void contactChannelsAndLinksAreClickable() throws Exception { + List targets = linkTargets(render(MidnightNavyFixtures.canonicalCv())); + assertThat(targets) + .contains("mailto:alex.morgan@email.com") + .contains("tel:+15551234567") + .contains("https://www.linkedin.com/in/alexmorgan") + .contains("https://alexmorgan.com"); + } + + @Test + void aLinkShowsItsLabelAndHidesItsAddress() throws Exception { + // The plate draws the label, so its width is the same whatever the + // profile behind it is called; the address is reachable, not written. + byte[] pdfBytes = render(MidnightNavyFixtures.canonicalCv()); + assertThat(textOf(pdfBytes)) + .contains("LinkedIn") + .contains("Portfolio") + .doesNotContain("linkedin.com/in/alexmorgan"); + assertThat(linkTargets(pdfBytes)) + .contains("https://www.linkedin.com/in/alexmorgan"); + } + + @Test + void aTrunkPrefixIsNotDialled() throws Exception { + CvIdentity printed = new CvIdentity(CvName.of("Ada", "Lovelace"), "Analyst", + new Contact("+44 (0)20 7946 0832", "ada@example.test", "London, UK"), + List.of(), Optional.empty()); + + byte[] pdfBytes = render(new CvDocument(printed, List.of())); + assertThat(textOf(pdfBytes)).contains("+44 (0)20 7946 0832"); + assertThat(Set.copyOf(linkTargets(pdfBytes))) + .containsExactlyInAnyOrder("mailto:ada@example.test", "tel:+442079460832"); + } + + @Test + void aDegreeAJobAndACertificationBecomeLinksWhenTheirEntryCarriesOne() throws Exception { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : MidnightNavyFixtures.canonicalCv().placements()) { + placements.add(switch (placement.section().title()) { + case "EDUCATION" -> new CvDocument.Placement(Slot.SIDEBAR, + new EntriesSection("EDUCATION", List.of( + CvEntry.builder("MBA").subtitle("Booth").date("2018") + .link("https://example.test/booth").build()))); + case "EXPERIENCE" -> new CvDocument.Placement(Slot.MAIN, + new EntriesSection("EXPERIENCE", List.of( + CvEntry.builder("MARKETING MANAGER").subtitle("Starwave") + .place("New York, NY").date("2021") + .body("Ran the funnel.") + .link("https://example.test/starwave").build()))); + case "CERTIFICATIONS" -> new CvDocument.Placement(Slot.MAIN, + new EntriesSection("CERTIFICATIONS", List.of( + CvEntry.builder("Analytics Certified").subtitle("Issuer") + .date("2020") + .link("https://example.test/cert").build()))); + default -> placement; + }); + } + + assertThat(linkTargets(render(new CvDocument(MidnightNavyFixtures.identity(), placements)))) + .contains("https://example.test/booth") + .contains("https://example.test/starwave") + .contains("https://example.test/cert"); + } + + @Test + void anUnknownMarkIsReportedAsADataError() { + EntriesSection wrong = new EntriesSection("ACHIEVEMENTS", List.of( + CvEntry.builder("Read minds").icon("telescope").build())); + + assertThatThrownBy(() -> render(withSection(Slot.MAIN, wrong, "ACHIEVEMENTS"))) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("telescope") + .hasMessageContaining("trophy"); + } + + @Test + void aLanguageRatingRoundsToTheNearestDot() throws Exception { + // The model carries a fraction and the design shows fifths, so a rating + // between two dots has to land on one of them rather than throw. + SkillsSection odd = new SkillsSection("LANGUAGES", List.of( + new SkillGroup("LANGUAGES", List.of( + CvSkill.of("Dutch", 0.7), CvSkill.of("Greek", 0.0), + CvSkill.of("Latin", 1.0))))); + + String text = textOf(render(withSection(Slot.SIDEBAR, odd, "LANGUAGES"))); + assertThat(text).contains("Dutch").contains("Greek").contains("Latin"); + } + + @Test + void aSkillWithoutALevelDrawsAnEmptyMeter() throws Exception { + SkillsSection unrated = new SkillsSection("SKILLS", List.of( + new SkillGroup("SKILLS", List.of(CvSkill.of("Copywriting"))))); + + assertThat(textOf(render(withSection(Slot.SIDEBAR, unrated, "SKILLS")))) + .contains("Copywriting"); + } + + @Test + void anEmptyBerthTakesItsHeadingWithIt() throws Exception { + byte[] shorter = render(withoutSection("CERTIFICATIONS")); + assertThat(textOf(shorter)).doesNotContain("Google Analytics Certified"); + assertThat(compact(textOf(shorter))).doesNotContain("CERTIFICATIONS"); + } + + @Test + void aDocumentWithNothingButAnIdentityStillRenders() throws Exception { + // Every berth empty: the plate, the monogram, the name and the contact + // block, and nothing else on the sheet. + render(new CvDocument(MidnightNavyFixtures.identity(), List.of())); + } + + @Test + void aCvLongerThanTheSheetIsRefusedRatherThanCut() throws Exception { + // The body is one row and a row is atomic, so this design does not + // paginate: content past the sheet is reported with the node that could + // not fit rather than silently clipped. TimelineMinimal is the preset in + // this package built to flow. + List many = new ArrayList<>(); + for (int index = 0; index < 8; index++) { + many.add(CvEntry.builder("MARKETING MANAGER " + index) + .subtitle("Starwave Solutions") + .place("New York, NY") + .date("2021 - Present") + .body(String.join(NEWLINE, + "Develop and implement marketing strategies.", + "Lead a team across campaigns and channels.")) + .build()); + } + CvDocument longer = withSection(Slot.MAIN, + new EntriesSection("EXPERIENCE", many), "EXPERIENCE"); + + assertThatThrownBy(() -> render(longer)) + .isInstanceOf(AtomicNodeTooLargeException.class) + .hasMessageContaining("PageGrid"); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyVisualParityTest.java new file mode 100644 index 000000000..69309a7cb --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyVisualParityTest.java @@ -0,0 +1,41 @@ +package com.demcha.compose.document.templates.cv.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 MidnightNavy} — the canonical + * one-page CV against a checked-in baseline. + * + *

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

    + */ +class MidnightNavyVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "cv-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()) { + MidnightNavy.create().compose(document, MidnightNavyFixtures.canonicalCv()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("midnight_navy", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/midnight_navy_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/midnight_navy_layout.json new file mode 100644 index 000000000..42166acb3 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/midnight_navy_layout.json @@ -0,0 +1,7217 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 595.276, + "innerHeight" : 841.89, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "MidnightNavyCv[0]", + "entityName" : "MidnightNavyCv", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 0.0, + "computedY" : 28.659, + "placementX" : 0.0, + "placementY" : 28.659, + "placementWidth" : 595.276, + "placementHeight" : 813.231, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 813.231, + "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" : "MidnightNavyCv[0]/PageGrid[0]", + "entityName" : "PageGrid", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 28.659, + "placementX" : 0.0, + "placementY" : 28.659, + "placementWidth" : 595.276, + "placementHeight" : 813.231, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 813.231, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]", + "entityName" : "Aside", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 56.397, + "placementX" : 0.0, + "placementY" : 56.397, + "placementWidth" : 185.247, + "placementHeight" : 785.492, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.247, + "contentHeight" : 785.492, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 30.498, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 735.147, + "placementX" : 0.0, + "placementY" : 735.147, + "placementWidth" : 185.247, + "placementHeight" : 76.245, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.247, + "contentHeight" : 76.245, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Align[0]/Monogram[0]", + "entityName" : "Monogram", + "entityKind" : "ShapeContainerNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Align[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 54.501, + "computedY" : 735.147, + "placementX" : 54.501, + "placementY" : 735.147, + "placementWidth" : 76.245, + "placementHeight" : 76.245, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.245, + "contentHeight" : 76.245, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Align[0]/Monogram[0]/MonogramLine1[0]", + "entityName" : "MonogramLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Align[0]/Monogram[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 54.501, + "computedY" : 771.535, + "placementX" : 54.501, + "placementY" : 771.535, + "placementWidth" : 76.245, + "placementHeight" : 30.014, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.245, + "contentHeight" : 30.014, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Align[0]/Monogram[0]/MonogramLine2[1]", + "entityName" : "MonogramLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Align[0]/Monogram[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 54.501, + "computedY" : 744.99, + "placementX" : 54.501, + "placementY" : 744.99, + "placementWidth" : 76.245, + "placementHeight" : 30.014, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.245, + "contentHeight" : 30.014, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Name[1]", + "entityName" : "Name", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 701.357, + "placementX" : 0.0, + "placementY" : 701.357, + "placementWidth" : 185.247, + "placementHeight" : 22.268, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.247, + "contentHeight" : 22.268, + "margin" : { + "top" : 11.521, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Role[2]", + "entityName" : "Role", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 684.276, + "placementX" : 0.0, + "placementY" : 684.276, + "placementWidth" : 185.247, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.247, + "contentHeight" : 9.682, + "margin" : { + "top" : 7.399, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/NameDivider[3]", + "entityName" : "NameDivider", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 35.863, + "computedY" : 671.021, + "placementX" : 35.863, + "placementY" : 671.021, + "placementWidth" : 113.52, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 113.52, + "contentHeight" : 1.0, + "margin" : { + "top" : 12.256, + "right" : 0.0, + "bottom" : 0.0, + "left" : 35.863 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]", + "entityName" : "Contact", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 544.059, + "placementX" : 0.0, + "placementY" : 544.059, + "placementWidth" : 156.577, + "placementHeight" : 105.952, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.577, + "contentHeight" : 105.952, + "margin" : { + "top" : 21.01, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 24.285, + "bottom" : 0.0, + "left" : 29.368 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/AsideHeadingCONTACT[0]", + "entityName" : "AsideHeadingCONTACT", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 637.425, + "placementX" : 29.368, + "placementY" : 637.425, + "placementWidth" : 45.553, + "placementHeight" : 12.586, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.553, + "contentHeight" : 12.586, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/AsideRuleCONTACT[1]", + "entityName" : "AsideRuleCONTACT", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 635.165, + "placementX" : 29.368, + "placementY" : 635.165, + "placementWidth" : 56.478, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.478, + "contentHeight" : 1.13, + "margin" : { + "top" : 1.13, + "right" : 0.0, + "bottom" : 12.199, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]", + "entityName" : "ContactRows", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 544.059, + "placementX" : 29.368, + "placementY" : 544.059, + "placementWidth" : 102.923, + "placementHeight" : 78.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.923, + "contentHeight" : 78.908, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]/Contact0[0]", + "entityName" : "Contact0", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 613.284, + "placementX" : 29.368, + "placementY" : 613.284, + "placementWidth" : 74.353, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 74.353, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]/Contact1[1]", + "entityName" : "Contact1", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 595.978, + "placementX" : 29.368, + "placementY" : 595.978, + "placementWidth" : 102.923, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.923, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]/Contact2[2]", + "entityName" : "Contact2", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 578.672, + "placementX" : 29.368, + "placementY" : 578.672, + "placementWidth" : 82.058, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 82.058, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]/Contact3[3]", + "entityName" : "Contact3", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 561.365, + "placementX" : 29.368, + "placementY" : 561.365, + "placementWidth" : 46.744, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 46.744, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]/Contact4[4]", + "entityName" : "Contact4", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Contact[4]/ContactRows[2]", + "childIndex" : 4, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 544.059, + "placementX" : 29.368, + "placementY" : 544.059, + "placementWidth" : 47.195, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.195, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]", + "entityName" : "Education", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 357.698, + "placementX" : 0.0, + "placementY" : 357.698, + "placementWidth" : 185.247, + "placementHeight" : 155.072, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.247, + "contentHeight" : 155.072, + "margin" : { + "top" : 31.289, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 24.285, + "bottom" : 0.0, + "left" : 29.368 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/AsideHeadingEDUCATION[0]", + "entityName" : "AsideHeadingEDUCATION", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 500.184, + "placementX" : 29.368, + "placementY" : 500.184, + "placementWidth" : 55.003, + "placementHeight" : 12.586, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 55.003, + "contentHeight" : 12.586, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/AsideRuleEDUCATION[1]", + "entityName" : "AsideRuleEDUCATION", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 497.925, + "placementX" : 29.368, + "placementY" : 497.925, + "placementWidth" : 131.593, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 1.13, + "margin" : { + "top" : 1.13, + "right" : 0.0, + "bottom" : 10.392, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]", + "entityName" : "EducationEntries", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 357.698, + "placementX" : 29.368, + "placementY" : 357.698, + "placementWidth" : 118.158, + "placementHeight" : 129.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.158, + "contentHeight" : 129.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[0]", + "entityName" : "EducationEntry", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 425.948, + "placementX" : 29.368, + "placementY" : 425.948, + "placementWidth" : 118.158, + "placementHeight" : 61.585, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.158, + "contentHeight" : 61.585, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[0]/Degree[0]", + "entityName" : "Degree", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 465.587, + "placementX" : 29.368, + "placementY" : 465.587, + "placementWidth" : 87.783, + "placementHeight" : 21.946, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.783, + "contentHeight" : 21.946, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[0]/Institution[1]", + "entityName" : "Institution", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 443.093, + "placementX" : 29.368, + "placementY" : 443.093, + "placementWidth" : 118.158, + "placementHeight" : 18.88, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.158, + "contentHeight" : 18.88, + "margin" : { + "top" : 3.615, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[0]/Years[2]", + "entityName" : "Years", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[0]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 425.948, + "placementX" : 29.368, + "placementY" : 425.948, + "placementWidth" : 42.494, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.494, + "contentHeight" : 10.65, + "margin" : { + "top" : 6.495, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[1]", + "entityName" : "EducationEntry", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 357.698, + "placementX" : 29.368, + "placementY" : 357.698, + "placementWidth" : 102.365, + "placementHeight" : 51.419, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.365, + "contentHeight" : 51.419, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[1]/Degree[0]", + "entityName" : "Degree", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 387.172, + "placementX" : 29.368, + "placementY" : 387.172, + "placementWidth" : 102.365, + "placementHeight" : 21.946, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.365, + "contentHeight" : 21.946, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[1]/Institution[1]", + "entityName" : "Institution", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 374.843, + "placementX" : 29.368, + "placementY" : 374.843, + "placementWidth" : 55.739, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 55.739, + "contentHeight" : 8.714, + "margin" : { + "top" : 3.615, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[1]/Years[2]", + "entityName" : "Years", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Education[5]/EducationEntries[2]/EducationEntry[1]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 357.698, + "placementX" : 29.368, + "placementY" : 357.698, + "placementWidth" : 42.627, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.627, + "contentHeight" : 10.65, + "margin" : { + "top" : 6.495, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]", + "entityName" : "Skills", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 166.424, + "placementX" : 0.0, + "placementY" : 166.424, + "placementWidth" : 185.247, + "placementHeight" : 170.151, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.247, + "contentHeight" : 170.151, + "margin" : { + "top" : 21.123, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 24.285, + "bottom" : 0.0, + "left" : 29.368 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/AsideHeadingSKILLS[0]", + "entityName" : "AsideHeadingSKILLS", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 323.989, + "placementX" : 29.368, + "placementY" : 323.989, + "placementWidth" : 33.805, + "placementHeight" : 12.586, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.805, + "contentHeight" : 12.586, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/AsideRuleSKILLS[1]", + "entityName" : "AsideRuleSKILLS", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 321.73, + "placementX" : 29.368, + "placementY" : 321.73, + "placementWidth" : 131.593, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 1.13, + "margin" : { + "top" : 1.13, + "right" : 0.0, + "bottom" : 10.731, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "entityName" : "SkillRows", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 166.424, + "placementX" : 29.368, + "placementY" : 166.424, + "placementWidth" : 131.593, + "placementHeight" : 144.575, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 144.575, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]", + "entityName" : "SkillRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 302.286, + "placementX" : 29.368, + "placementY" : 302.286, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]", + "entityName" : "SkillRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 302.286, + "placementX" : 29.368, + "placementY" : 302.286, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]", + "entityName" : "SkillRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 302.286, + "placementX" : 29.368, + "placementY" : 302.286, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]/SkillLabel[0]", + "entityName" : "SkillLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 302.286, + "placementX" : 29.368, + "placementY" : 302.286, + "placementWidth" : 57.874, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.874, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "entityName" : "SkillMeterCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 100.53, + "computedY" : 304.948, + "placementX" : 100.53, + "placementY" : 304.948, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "entityName" : "SkillMeter", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 100.53, + "computedY" : 304.948, + "placementX" : 100.53, + "placementY" : 304.948, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrack[0]", + "entityName" : "SkillTrack", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 306.078, + "placementX" : 100.53, + "placementY" : 306.078, + "placementWidth" : 60.431, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrackFilled[1]", + "entityName" : "SkillTrackFilled", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 306.078, + "placementX" : 100.53, + "placementY" : 306.078, + "placementWidth" : 49.554, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.554, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillKnob[2]", + "entityName" : "SkillKnob", + "entityKind" : "ShapeNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[0]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 147.543, + "computedY" : 304.948, + "placementX" : 147.543, + "placementY" : 304.948, + "placementWidth" : 5.083, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]", + "entityName" : "SkillRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 287.19, + "placementX" : 29.368, + "placementY" : 287.19, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]", + "entityName" : "SkillRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 287.19, + "placementX" : 29.368, + "placementY" : 287.19, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]", + "entityName" : "SkillRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 287.19, + "placementX" : 29.368, + "placementY" : 287.19, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]/SkillLabel[0]", + "entityName" : "SkillLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 287.19, + "placementX" : 29.368, + "placementY" : 287.19, + "placementWidth" : 52.899, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.899, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "entityName" : "SkillMeterCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 100.53, + "computedY" : 289.852, + "placementX" : 100.53, + "placementY" : 289.852, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "entityName" : "SkillMeter", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 100.53, + "computedY" : 289.852, + "placementX" : 100.53, + "placementY" : 289.852, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrack[0]", + "entityName" : "SkillTrack", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 290.982, + "placementX" : 100.53, + "placementY" : 290.982, + "placementWidth" : 60.431, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrackFilled[1]", + "entityName" : "SkillTrackFilled", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 290.982, + "placementX" : 100.53, + "placementY" : 290.982, + "placementWidth" : 50.762, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.762, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillKnob[2]", + "entityName" : "SkillKnob", + "entityKind" : "ShapeNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[1]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 148.751, + "computedY" : 289.852, + "placementX" : 148.751, + "placementY" : 289.852, + "placementWidth" : 5.083, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]", + "entityName" : "SkillRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 272.094, + "placementX" : 29.368, + "placementY" : 272.094, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]", + "entityName" : "SkillRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 272.094, + "placementX" : 29.368, + "placementY" : 272.094, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]", + "entityName" : "SkillRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 272.094, + "placementX" : 29.368, + "placementY" : 272.094, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]/SkillLabel[0]", + "entityName" : "SkillLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 272.094, + "placementX" : 29.368, + "placementY" : 272.094, + "placementWidth" : 52.87, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.87, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "entityName" : "SkillMeterCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 100.53, + "computedY" : 274.757, + "placementX" : 100.53, + "placementY" : 274.757, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "entityName" : "SkillMeter", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 100.53, + "computedY" : 274.757, + "placementX" : 100.53, + "placementY" : 274.757, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrack[0]", + "entityName" : "SkillTrack", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 275.886, + "placementX" : 100.53, + "placementY" : 275.886, + "placementWidth" : 60.431, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrackFilled[1]", + "entityName" : "SkillTrackFilled", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 275.886, + "placementX" : 100.53, + "placementY" : 275.886, + "placementWidth" : 45.928, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.928, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillKnob[2]", + "entityName" : "SkillKnob", + "entityKind" : "ShapeNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[2]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 143.917, + "computedY" : 274.757, + "placementX" : 143.917, + "placementY" : 274.757, + "placementWidth" : 5.083, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]", + "entityName" : "SkillRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 256.998, + "placementX" : 29.368, + "placementY" : 256.998, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]", + "entityName" : "SkillRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 256.998, + "placementX" : 29.368, + "placementY" : 256.998, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]", + "entityName" : "SkillRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 256.998, + "placementX" : 29.368, + "placementY" : 256.998, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]/SkillLabel[0]", + "entityName" : "SkillLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 256.998, + "placementX" : 29.368, + "placementY" : 256.998, + "placementWidth" : 60.952, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.952, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "entityName" : "SkillMeterCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 100.53, + "computedY" : 259.661, + "placementX" : 100.53, + "placementY" : 259.661, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "entityName" : "SkillMeter", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 100.53, + "computedY" : 259.661, + "placementX" : 100.53, + "placementY" : 259.661, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrack[0]", + "entityName" : "SkillTrack", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 260.791, + "placementX" : 100.53, + "placementY" : 260.791, + "placementWidth" : 60.431, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrackFilled[1]", + "entityName" : "SkillTrackFilled", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 260.791, + "placementX" : 100.53, + "placementY" : 260.791, + "placementWidth" : 50.762, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.762, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillKnob[2]", + "entityName" : "SkillKnob", + "entityKind" : "ShapeNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[3]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 148.751, + "computedY" : 259.661, + "placementX" : 148.751, + "placementY" : 259.661, + "placementWidth" : 5.083, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]", + "entityName" : "SkillRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "childIndex" : 4, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 241.903, + "placementX" : 29.368, + "placementY" : 241.903, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]", + "entityName" : "SkillRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 241.903, + "placementX" : 29.368, + "placementY" : 241.903, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]", + "entityName" : "SkillRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 241.903, + "placementX" : 29.368, + "placementY" : 241.903, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]/SkillLabel[0]", + "entityName" : "SkillLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 241.903, + "placementX" : 29.368, + "placementY" : 241.903, + "placementWidth" : 41.891, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.891, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "entityName" : "SkillMeterCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 100.53, + "computedY" : 244.565, + "placementX" : 100.53, + "placementY" : 244.565, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "entityName" : "SkillMeter", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 100.53, + "computedY" : 244.565, + "placementX" : 100.53, + "placementY" : 244.565, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrack[0]", + "entityName" : "SkillTrack", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 245.695, + "placementX" : 100.53, + "placementY" : 245.695, + "placementWidth" : 60.431, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrackFilled[1]", + "entityName" : "SkillTrackFilled", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 245.695, + "placementX" : 100.53, + "placementY" : 245.695, + "placementWidth" : 48.949, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.949, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillKnob[2]", + "entityName" : "SkillKnob", + "entityKind" : "ShapeNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[4]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 146.938, + "computedY" : 244.565, + "placementX" : 146.938, + "placementY" : 244.565, + "placementWidth" : 5.083, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]", + "entityName" : "SkillRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "childIndex" : 5, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 226.807, + "placementX" : 29.368, + "placementY" : 226.807, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]", + "entityName" : "SkillRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 226.807, + "placementX" : 29.368, + "placementY" : 226.807, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]", + "entityName" : "SkillRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 226.807, + "placementX" : 29.368, + "placementY" : 226.807, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]/SkillLabel[0]", + "entityName" : "SkillLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 226.807, + "placementX" : 29.368, + "placementY" : 226.807, + "placementWidth" : 65.135, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 65.135, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "entityName" : "SkillMeterCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 100.53, + "computedY" : 229.47, + "placementX" : 100.53, + "placementY" : 229.47, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "entityName" : "SkillMeter", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 100.53, + "computedY" : 229.47, + "placementX" : 100.53, + "placementY" : 229.47, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrack[0]", + "entityName" : "SkillTrack", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 230.599, + "placementX" : 100.53, + "placementY" : 230.599, + "placementWidth" : 60.431, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrackFilled[1]", + "entityName" : "SkillTrackFilled", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 230.599, + "placementX" : 100.53, + "placementY" : 230.599, + "placementWidth" : 41.093, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.093, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillKnob[2]", + "entityName" : "SkillKnob", + "entityKind" : "ShapeNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[5]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 139.082, + "computedY" : 229.47, + "placementX" : 139.082, + "placementY" : 229.47, + "placementWidth" : 5.083, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]", + "entityName" : "SkillRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "childIndex" : 6, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 211.711, + "placementX" : 29.368, + "placementY" : 211.711, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]", + "entityName" : "SkillRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 211.711, + "placementX" : 29.368, + "placementY" : 211.711, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]", + "entityName" : "SkillRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 211.711, + "placementX" : 29.368, + "placementY" : 211.711, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]/SkillLabel[0]", + "entityName" : "SkillLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 211.711, + "placementX" : 29.368, + "placementY" : 211.711, + "placementWidth" : 52.057, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.057, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "entityName" : "SkillMeterCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 100.53, + "computedY" : 214.374, + "placementX" : 100.53, + "placementY" : 214.374, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "entityName" : "SkillMeter", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 100.53, + "computedY" : 214.374, + "placementX" : 100.53, + "placementY" : 214.374, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrack[0]", + "entityName" : "SkillTrack", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 215.503, + "placementX" : 100.53, + "placementY" : 215.503, + "placementWidth" : 60.431, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrackFilled[1]", + "entityName" : "SkillTrackFilled", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 215.503, + "placementX" : 100.53, + "placementY" : 215.503, + "placementWidth" : 50.158, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.158, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillKnob[2]", + "entityName" : "SkillKnob", + "entityKind" : "ShapeNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[6]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 148.147, + "computedY" : 214.374, + "placementX" : 148.147, + "placementY" : 214.374, + "placementWidth" : 5.083, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]", + "entityName" : "SkillRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "childIndex" : 7, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 196.616, + "placementX" : 29.368, + "placementY" : 196.616, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]", + "entityName" : "SkillRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 196.616, + "placementX" : 29.368, + "placementY" : 196.616, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]", + "entityName" : "SkillRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 196.616, + "placementX" : 29.368, + "placementY" : 196.616, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]/SkillLabel[0]", + "entityName" : "SkillLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 196.616, + "placementX" : 29.368, + "placementY" : 196.616, + "placementWidth" : 32.785, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.785, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "entityName" : "SkillMeterCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 100.53, + "computedY" : 199.278, + "placementX" : 100.53, + "placementY" : 199.278, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "entityName" : "SkillMeter", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 100.53, + "computedY" : 199.278, + "placementX" : 100.53, + "placementY" : 199.278, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrack[0]", + "entityName" : "SkillTrack", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 200.408, + "placementX" : 100.53, + "placementY" : 200.408, + "placementWidth" : 60.431, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrackFilled[1]", + "entityName" : "SkillTrackFilled", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 200.408, + "placementX" : 100.53, + "placementY" : 200.408, + "placementWidth" : 45.928, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.928, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillKnob[2]", + "entityName" : "SkillKnob", + "entityKind" : "ShapeNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[7]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 143.917, + "computedY" : 199.278, + "placementX" : 143.917, + "placementY" : 199.278, + "placementWidth" : 5.083, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]", + "entityName" : "SkillRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "childIndex" : 8, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 181.52, + "placementX" : 29.368, + "placementY" : 181.52, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]", + "entityName" : "SkillRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 181.52, + "placementX" : 29.368, + "placementY" : 181.52, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]", + "entityName" : "SkillRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 181.52, + "placementX" : 29.368, + "placementY" : 181.52, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]/SkillLabel[0]", + "entityName" : "SkillLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 181.52, + "placementX" : 29.368, + "placementY" : 181.52, + "placementWidth" : 68.686, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 68.686, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "entityName" : "SkillMeterCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 100.53, + "computedY" : 184.182, + "placementX" : 100.53, + "placementY" : 184.182, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "entityName" : "SkillMeter", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 100.53, + "computedY" : 184.182, + "placementX" : 100.53, + "placementY" : 184.182, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrack[0]", + "entityName" : "SkillTrack", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 185.312, + "placementX" : 100.53, + "placementY" : 185.312, + "placementWidth" : 60.431, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrackFilled[1]", + "entityName" : "SkillTrackFilled", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 185.312, + "placementX" : 100.53, + "placementY" : 185.312, + "placementWidth" : 45.323, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.323, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillKnob[2]", + "entityName" : "SkillKnob", + "entityKind" : "ShapeNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[8]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 143.312, + "computedY" : 184.182, + "placementX" : 143.312, + "placementY" : 184.182, + "placementWidth" : 5.083, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]", + "entityName" : "SkillRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]", + "childIndex" : 9, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 166.424, + "placementX" : 29.368, + "placementY" : 166.424, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]", + "entityName" : "SkillRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 166.424, + "placementX" : 29.368, + "placementY" : 166.424, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]", + "entityName" : "SkillRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 166.424, + "placementX" : 29.368, + "placementY" : 166.424, + "placementWidth" : 131.593, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]/SkillLabel[0]", + "entityName" : "SkillLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 166.424, + "placementX" : 29.368, + "placementY" : 166.424, + "placementWidth" : 49.886, + "placementHeight" : 8.714, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.886, + "contentHeight" : 8.714, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "entityName" : "SkillMeterCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 100.53, + "computedY" : 169.087, + "placementX" : 100.53, + "placementY" : 169.087, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "entityName" : "SkillMeter", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 100.53, + "computedY" : 169.087, + "placementX" : 100.53, + "placementY" : 169.087, + "placementWidth" : 60.431, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrack[0]", + "entityName" : "SkillTrack", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 170.216, + "placementX" : 100.53, + "placementY" : 170.216, + "placementWidth" : 60.431, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.431, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillTrackFilled[1]", + "entityName" : "SkillTrackFilled", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 100.53, + "computedY" : 170.216, + "placementX" : 100.53, + "placementY" : 170.216, + "placementWidth" : 58.014, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.014, + "contentHeight" : 1.13, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]/SkillKnob[2]", + "entityName" : "SkillKnob", + "entityKind" : "ShapeNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Skills[6]/SkillRows[2]/SkillRowLayer[9]/SkillRowHolder[0]/SkillRow[0]/SkillMeterCell[1]/SkillMeter[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 156.003, + "computedY" : 169.087, + "placementX" : 156.003, + "placementY" : 169.087, + "placementWidth" : 5.083, + "placementHeight" : 3.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 3.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]", + "entityName" : "Languages", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 56.397, + "placementX" : 0.0, + "placementY" : 56.397, + "placementWidth" : 185.247, + "placementHeight" : 80.263, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.247, + "contentHeight" : 80.263, + "margin" : { + "top" : 29.764, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 24.285, + "bottom" : 0.0, + "left" : 29.368 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/AsideHeadingLANGUAGES[0]", + "entityName" : "AsideHeadingLANGUAGES", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 124.074, + "placementX" : 29.368, + "placementY" : 124.074, + "placementWidth" : 58.852, + "placementHeight" : 12.586, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.852, + "contentHeight" : 12.586, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/AsideRuleLANGUAGES[1]", + "entityName" : "AsideRuleLANGUAGES", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 121.815, + "placementX" : 29.368, + "placementY" : 121.815, + "placementWidth" : 131.593, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 1.13, + "margin" : { + "top" : 1.13, + "right" : 0.0, + "bottom" : 13.894, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]", + "entityName" : "LanguageRows", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 29.368, + "computedY" : 56.397, + "placementX" : 29.368, + "placementY" : 56.397, + "placementWidth" : 131.593, + "placementHeight" : 51.524, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 51.524, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[0]", + "entityName" : "LanguageRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 98.239, + "placementX" : 29.368, + "placementY" : 98.239, + "placementWidth" : 131.593, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[0]/LanguageRowHolder[0]", + "entityName" : "LanguageRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 98.239, + "placementX" : 29.368, + "placementY" : 98.239, + "placementWidth" : 131.593, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[0]/LanguageRowHolder[0]/LanguageRow[0]", + "entityName" : "LanguageRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[0]/LanguageRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 98.239, + "placementX" : 29.368, + "placementY" : 98.239, + "placementWidth" : 131.593, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[0]/LanguageRowHolder[0]/LanguageRow[0]/LanguageLabel[0]", + "entityName" : "LanguageLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[0]/LanguageRowHolder[0]/LanguageRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 98.239, + "placementX" : 29.368, + "placementY" : 98.239, + "placementWidth" : 25.689, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.689, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[0]/LanguageRowHolder[0]/LanguageRow[0]/LanguageDots[1]", + "entityName" : "LanguageDots", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[0]/LanguageRowHolder[0]/LanguageRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 106.743, + "computedY" : 98.239, + "placementX" : 106.743, + "placementY" : 98.239, + "placementWidth" : 54.057, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 54.057, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[1]", + "entityName" : "LanguageRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 77.318, + "placementX" : 29.368, + "placementY" : 77.318, + "placementWidth" : 131.593, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[1]/LanguageRowHolder[0]", + "entityName" : "LanguageRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 77.318, + "placementX" : 29.368, + "placementY" : 77.318, + "placementWidth" : 131.593, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[1]/LanguageRowHolder[0]/LanguageRow[0]", + "entityName" : "LanguageRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[1]/LanguageRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 77.318, + "placementX" : 29.368, + "placementY" : 77.318, + "placementWidth" : 131.593, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[1]/LanguageRowHolder[0]/LanguageRow[0]/LanguageLabel[0]", + "entityName" : "LanguageLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[1]/LanguageRowHolder[0]/LanguageRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 77.318, + "placementX" : 29.368, + "placementY" : 77.318, + "placementWidth" : 27.924, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.924, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[1]/LanguageRowHolder[0]/LanguageRow[0]/LanguageDots[1]", + "entityName" : "LanguageDots", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[1]/LanguageRowHolder[0]/LanguageRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 106.743, + "computedY" : 77.318, + "placementX" : 106.743, + "placementY" : 77.318, + "placementWidth" : 54.057, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 54.057, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[2]", + "entityName" : "LanguageRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 29.368, + "computedY" : 56.397, + "placementX" : 29.368, + "placementY" : 56.397, + "placementWidth" : 131.593, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[2]/LanguageRowHolder[0]", + "entityName" : "LanguageRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.368, + "computedY" : 56.397, + "placementX" : 29.368, + "placementY" : 56.397, + "placementWidth" : 131.593, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[2]/LanguageRowHolder[0]/LanguageRow[0]", + "entityName" : "LanguageRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[2]/LanguageRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.368, + "computedY" : 56.397, + "placementX" : 29.368, + "placementY" : 56.397, + "placementWidth" : 131.593, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.593, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[2]/LanguageRowHolder[0]/LanguageRow[0]/LanguageLabel[0]", + "entityName" : "LanguageLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[2]/LanguageRowHolder[0]/LanguageRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.368, + "computedY" : 56.397, + "placementX" : 29.368, + "placementY" : 56.397, + "placementWidth" : 24.713, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.713, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[2]/LanguageRowHolder[0]/LanguageRow[0]/LanguageDots[1]", + "entityName" : "LanguageDots", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Aside[0]/Languages[7]/LanguageRows[2]/LanguageRowLayer[2]/LanguageRowHolder[0]/LanguageRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 106.743, + "computedY" : 56.397, + "placementX" : 106.743, + "placementY" : 56.397, + "placementWidth" : 54.057, + "placementHeight" : 9.682, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 54.057, + "contentHeight" : 9.682, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]", + "entityName" : "Main", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 185.247, + "computedY" : 28.659, + "placementX" : 185.247, + "placementY" : 28.659, + "placementWidth" : 410.029, + "placementHeight" : 813.231, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 410.029, + "contentHeight" : 813.231, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 40.269, + "right" : 41.794, + "bottom" : 0.0, + "left" : 29.933 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Summary[0]", + "entityName" : "Summary", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 215.18, + "computedY" : 708.231, + "placementX" : 215.18, + "placementY" : 708.231, + "placementWidth" : 338.302, + "placementHeight" : 93.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 93.39, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Summary[0]/MainHeadingPROFESSIONALSUMMARY[0]", + "entityName" : "MainHeadingPROFESSIONALSUMMARY", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Summary[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 788.066, + "placementX" : 215.18, + "placementY" : 788.066, + "placementWidth" : 132.316, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.316, + "contentHeight" : 13.555, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Summary[0]/MainRulePROFESSIONALSUMMARY[1]", + "entityName" : "MainRulePROFESSIONALSUMMARY", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Summary[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 782.814, + "placementX" : 215.18, + "placementY" : 782.814, + "placementWidth" : 338.302, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 1.13, + "margin" : { + "top" : 4.123, + "right" : 0.0, + "bottom" : 12.651, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Summary[0]/SummaryText[2]", + "entityName" : "SummaryText", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Summary[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 708.231, + "placementX" : 215.18, + "placementY" : 708.231, + "placementWidth" : 321.5, + "placementHeight" : 61.932, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 321.5, + "contentHeight" : 61.932, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]", + "entityName" : "Experience", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 215.18, + "computedY" : 238.191, + "placementX" : 215.18, + "placementY" : 238.191, + "placementWidth" : 338.302, + "placementHeight" : 434.459, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 434.459, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/MainHeadingEXPERIENCE[0]", + "entityName" : "MainHeadingEXPERIENCE", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 659.095, + "placementX" : 215.18, + "placementY" : 659.095, + "placementWidth" : 64.543, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.543, + "contentHeight" : 13.555, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/MainRuleEXPERIENCE[1]", + "entityName" : "MainRuleEXPERIENCE", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 653.843, + "placementX" : 215.18, + "placementY" : 653.843, + "placementWidth" : 338.302, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 1.13, + "margin" : { + "top" : 4.123, + "right" : 0.0, + "bottom" : 12.99, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]", + "entityName" : "ExperienceEntry", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 471.202, + "placementX" : 215.18, + "placementY" : 471.202, + "placementWidth" : 338.302, + "placementHeight" : 169.651, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 169.651, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 25.98, + "left" : 15.249 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]", + "entityName" : "EntryHeaderLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 230.429, + "computedY" : 629.235, + "placementX" : 230.429, + "placementY" : 629.235, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "entityName" : "EntryHeaderHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 230.429, + "computedY" : 629.235, + "placementX" : 230.429, + "placementY" : 629.235, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "entityName" : "EntryHeader", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 230.429, + "computedY" : 629.235, + "placementX" : 230.429, + "placementY" : 629.235, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryTitle[0]", + "entityName" : "EntryTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 230.429, + "computedY" : 629.235, + "placementX" : 230.429, + "placementY" : 629.235, + "placementWidth" : 97.468, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.468, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryPeriod[1]", + "entityName" : "EntryPeriod", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 430.722, + "computedY" : 630.203, + "placementX" : 430.722, + "placementY" : 630.203, + "placementWidth" : 122.76, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.76, + "contentHeight" : 10.65, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryMarker[1]", + "entityName" : "EntryMarker", + "entityKind" : "EllipseNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 212.639, + "computedY" : 634.019, + "placementX" : 212.639, + "placementY" : 634.019, + "placementWidth" : 5.083, + "placementHeight" : 5.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 5.083, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]", + "entityName" : "EntrySubheaderLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 230.429, + "computedY" : 615.535, + "placementX" : 230.429, + "placementY" : 615.535, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "entityName" : "EntrySubheaderHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 230.429, + "computedY" : 615.535, + "placementX" : 230.429, + "placementY" : 615.535, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "entityName" : "EntrySubheader", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 230.429, + "computedY" : 615.535, + "placementX" : 230.429, + "placementY" : 615.535, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryCompany[0]", + "entityName" : "EntryCompany", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 230.429, + "computedY" : 615.535, + "placementX" : 230.429, + "placementY" : 615.535, + "placementWidth" : 72.43, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.43, + "contentHeight" : 10.65, + "margin" : { + "top" : 3.05, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryLocation[1]", + "entityName" : "EntryLocation", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 430.722, + "computedY" : 615.535, + "placementX" : 430.722, + "placementY" : 615.535, + "placementWidth" : 122.76, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.76, + "contentHeight" : 10.65, + "margin" : { + "top" : 3.05, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryBullets[2]", + "entityName" : "EntryBullets", + "entityKind" : "ListNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 230.429, + "computedY" : 497.182, + "placementX" : 230.429, + "placementY" : 497.182, + "placementWidth" : 318.296, + "placementHeight" : 104.347, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 318.296, + "contentHeight" : 104.347, + "margin" : { + "top" : 14.006, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]", + "entityName" : "ExperienceEntry", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 328.321, + "placementX" : 215.18, + "placementY" : 328.321, + "placementWidth" : 338.302, + "placementHeight" : 142.881, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 142.881, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 25.98, + "left" : 15.249 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]", + "entityName" : "EntryHeaderLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 230.429, + "computedY" : 459.584, + "placementX" : 230.429, + "placementY" : 459.584, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "entityName" : "EntryHeaderHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 230.429, + "computedY" : 459.584, + "placementX" : 230.429, + "placementY" : 459.584, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "entityName" : "EntryHeader", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 230.429, + "computedY" : 459.584, + "placementX" : 230.429, + "placementY" : 459.584, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryTitle[0]", + "entityName" : "EntryTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 230.429, + "computedY" : 459.584, + "placementX" : 230.429, + "placementY" : 459.584, + "placementWidth" : 139.516, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 139.516, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryPeriod[1]", + "entityName" : "EntryPeriod", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 430.722, + "computedY" : 460.552, + "placementX" : 430.722, + "placementY" : 460.552, + "placementWidth" : 122.76, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.76, + "contentHeight" : 10.65, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryMarker[1]", + "entityName" : "EntryMarker", + "entityKind" : "EllipseNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 212.639, + "computedY" : 464.368, + "placementX" : 212.639, + "placementY" : 464.368, + "placementWidth" : 5.083, + "placementHeight" : 5.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 5.083, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]", + "entityName" : "EntrySubheaderLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 230.429, + "computedY" : 445.884, + "placementX" : 230.429, + "placementY" : 445.884, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "entityName" : "EntrySubheaderHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 230.429, + "computedY" : 445.884, + "placementX" : 230.429, + "placementY" : 445.884, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "entityName" : "EntrySubheader", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 230.429, + "computedY" : 445.884, + "placementX" : 230.429, + "placementY" : 445.884, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryCompany[0]", + "entityName" : "EntryCompany", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 230.429, + "computedY" : 445.884, + "placementX" : 230.429, + "placementY" : 445.884, + "placementWidth" : 91.307, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.307, + "contentHeight" : 10.65, + "margin" : { + "top" : 3.05, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryLocation[1]", + "entityName" : "EntryLocation", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 430.722, + "computedY" : 445.884, + "placementX" : 430.722, + "placementY" : 445.884, + "placementWidth" : 122.76, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.76, + "contentHeight" : 10.65, + "margin" : { + "top" : 3.05, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryBullets[2]", + "entityName" : "EntryBullets", + "entityKind" : "ListNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 230.429, + "computedY" : 354.301, + "placementX" : 230.429, + "placementY" : 354.301, + "placementWidth" : 310.574, + "placementHeight" : 77.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 310.574, + "contentHeight" : 77.576, + "margin" : { + "top" : 14.006, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]", + "entityName" : "ExperienceEntry", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 238.191, + "placementX" : 215.18, + "placementY" : 238.191, + "placementWidth" : 338.302, + "placementHeight" : 90.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 90.13, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 15.249 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]", + "entityName" : "EntryHeaderLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 230.429, + "computedY" : 316.703, + "placementX" : 230.429, + "placementY" : 316.703, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "entityName" : "EntryHeaderHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 230.429, + "computedY" : 316.703, + "placementX" : 230.429, + "placementY" : 316.703, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "entityName" : "EntryHeader", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 230.429, + "computedY" : 316.703, + "placementX" : 230.429, + "placementY" : 316.703, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryTitle[0]", + "entityName" : "EntryTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 230.429, + "computedY" : 316.703, + "placementX" : 230.429, + "placementY" : 316.703, + "placementWidth" : 116.531, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.531, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryPeriod[1]", + "entityName" : "EntryPeriod", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 430.722, + "computedY" : 317.671, + "placementX" : 430.722, + "placementY" : 317.671, + "placementWidth" : 122.76, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.76, + "contentHeight" : 10.65, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryMarker[1]", + "entityName" : "EntryMarker", + "entityKind" : "EllipseNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 212.639, + "computedY" : 321.488, + "placementX" : 212.639, + "placementY" : 321.488, + "placementWidth" : 5.083, + "placementHeight" : 5.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 5.083, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]", + "entityName" : "EntrySubheaderLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 230.429, + "computedY" : 303.003, + "placementX" : 230.429, + "placementY" : 303.003, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "entityName" : "EntrySubheaderHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 230.429, + "computedY" : 303.003, + "placementX" : 230.429, + "placementY" : 303.003, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "entityName" : "EntrySubheader", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 230.429, + "computedY" : 303.003, + "placementX" : 230.429, + "placementY" : 303.003, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryCompany[0]", + "entityName" : "EntryCompany", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 230.429, + "computedY" : 303.003, + "placementX" : 230.429, + "placementY" : 303.003, + "placementWidth" : 93.845, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 93.845, + "contentHeight" : 10.65, + "margin" : { + "top" : 3.05, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryLocation[1]", + "entityName" : "EntryLocation", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 430.722, + "computedY" : 303.003, + "placementX" : 430.722, + "placementY" : 303.003, + "placementWidth" : 122.76, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.76, + "contentHeight" : 10.65, + "margin" : { + "top" : 3.05, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryBullets[2]", + "entityName" : "EntryBullets", + "entityKind" : "ListNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 230.429, + "computedY" : 238.191, + "placementX" : 230.429, + "placementY" : 238.191, + "placementWidth" : 302.152, + "placementHeight" : 50.806, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 302.152, + "contentHeight" : 50.806, + "margin" : { + "top" : 14.006, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]", + "entityName" : "Achievements", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 215.18, + "computedY" : 130.133, + "placementX" : 215.18, + "placementY" : 130.133, + "placementWidth" : 338.302, + "placementHeight" : 72.477, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 72.477, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/MainHeadingACHIEVEMENTS[0]", + "entityName" : "MainHeadingACHIEVEMENTS", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 189.055, + "placementX" : 215.18, + "placementY" : 189.055, + "placementWidth" : 80.244, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.244, + "contentHeight" : 13.555, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/MainRuleACHIEVEMENTS[1]", + "entityName" : "MainRuleACHIEVEMENTS", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 183.932, + "placementX" : 215.18, + "placementY" : 183.932, + "placementWidth" : 338.302, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 1.0, + "margin" : { + "top" : 4.123, + "right" : 0.0, + "bottom" : 18.299, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]", + "entityName" : "AchievementCardsLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 130.133, + "placementX" : 215.18, + "placementY" : 130.133, + "placementWidth" : 338.302, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]", + "entityName" : "AchievementCardsHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 215.18, + "computedY" : 130.133, + "placementX" : 215.18, + "placementY" : 130.133, + "placementWidth" : 338.302, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]", + "entityName" : "AchievementCards", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 215.18, + "computedY" : 130.133, + "placementX" : 215.18, + "placementY" : 130.133, + "placementWidth" : 338.302, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]", + "entityName" : "AchievementCard", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 215.18, + "computedY" : 130.133, + "placementX" : 215.18, + "placementY" : 130.133, + "placementWidth" : 112.767, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]", + "entityName" : "AchievementCardRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 215.18, + "computedY" : 130.133, + "placementX" : 215.18, + "placementY" : 130.133, + "placementWidth" : 112.767, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]", + "entityName" : "AchievementCardRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 215.18, + "computedY" : 130.133, + "placementX" : 215.18, + "placementY" : 130.133, + "placementWidth" : 112.767, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]", + "entityName" : "AchievementCardRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 215.18, + "computedY" : 130.133, + "placementX" : 215.18, + "placementY" : 130.133, + "placementWidth" : 112.767, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]", + "entityName" : "AchievementDiscCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 215.18, + "computedY" : 132.634, + "placementX" : 215.18, + "placementY" : 132.634, + "placementWidth" : 30.498, + "placementHeight" : 30.498, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.498, + "contentHeight" : 30.498, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]", + "entityName" : "AchievementDisc", + "entityKind" : "ShapeContainerNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 215.18, + "computedY" : 132.634, + "placementX" : 215.18, + "placementY" : 132.634, + "placementWidth" : 30.498, + "placementHeight" : 30.498, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.498, + "contentHeight" : 30.498, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 222.522, + "computedY" : 139.977, + "placementX" : 222.522, + "placementY" : 139.977, + "placementWidth" : 15.814, + "placementHeight" : 15.814, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.814, + "contentHeight" : 15.814, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 222.522, + "computedY" : 139.977, + "placementX" : 222.522, + "placementY" : 139.977, + "placementWidth" : 15.814, + "placementHeight" : 15.814, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.814, + "contentHeight" : 15.814, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementText[1]", + "entityName" : "AchievementText", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[0]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 253.02, + "computedY" : 130.133, + "placementX" : 253.02, + "placementY" : 130.133, + "placementWidth" : 71.4, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.4, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]", + "entityName" : "AchievementCard", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 327.948, + "computedY" : 130.133, + "placementX" : 327.948, + "placementY" : 130.133, + "placementWidth" : 112.767, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]", + "entityName" : "AchievementCardRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 327.948, + "computedY" : 130.133, + "placementX" : 327.948, + "placementY" : 130.133, + "placementWidth" : 112.767, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]", + "entityName" : "AchievementCardRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 327.948, + "computedY" : 130.133, + "placementX" : 327.948, + "placementY" : 130.133, + "placementWidth" : 112.767, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]", + "entityName" : "AchievementCardRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 327.948, + "computedY" : 130.133, + "placementX" : 327.948, + "placementY" : 130.133, + "placementWidth" : 112.767, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]", + "entityName" : "AchievementDiscCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 327.948, + "computedY" : 132.634, + "placementX" : 327.948, + "placementY" : 132.634, + "placementWidth" : 30.498, + "placementHeight" : 30.498, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.498, + "contentHeight" : 30.498, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]", + "entityName" : "AchievementDisc", + "entityKind" : "ShapeContainerNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 327.948, + "computedY" : 132.634, + "placementX" : 327.948, + "placementY" : 132.634, + "placementWidth" : 30.498, + "placementHeight" : 30.498, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.498, + "contentHeight" : 30.498, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 335.29, + "computedY" : 139.977, + "placementX" : 335.29, + "placementY" : 139.977, + "placementWidth" : 15.814, + "placementHeight" : 15.814, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.814, + "contentHeight" : 15.814, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 335.29, + "computedY" : 139.977, + "placementX" : 335.29, + "placementY" : 139.977, + "placementWidth" : 15.814, + "placementHeight" : 15.814, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.814, + "contentHeight" : 15.814, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 15, + "layer" : 15, + "computedX" : 335.29, + "computedY" : 139.977, + "placementX" : 335.29, + "placementY" : 139.977, + "placementWidth" : 15.814, + "placementHeight" : 15.814, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.814, + "contentHeight" : 15.814, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementText[1]", + "entityName" : "AchievementText", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[1]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 365.788, + "computedY" : 130.133, + "placementX" : 365.788, + "placementY" : 130.133, + "placementWidth" : 71.018, + "placementHeight" : 35.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.018, + "contentHeight" : 35.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]", + "entityName" : "AchievementCard", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 440.715, + "computedY" : 135.136, + "placementX" : 440.715, + "placementY" : 135.136, + "placementWidth" : 112.767, + "placementHeight" : 30.498, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 30.498, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]", + "entityName" : "AchievementCardRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 440.715, + "computedY" : 135.136, + "placementX" : 440.715, + "placementY" : 135.136, + "placementWidth" : 112.767, + "placementHeight" : 30.498, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 30.498, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]", + "entityName" : "AchievementCardRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 440.715, + "computedY" : 135.136, + "placementX" : 440.715, + "placementY" : 135.136, + "placementWidth" : 112.767, + "placementHeight" : 30.498, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 30.498, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]", + "entityName" : "AchievementCardRow", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 440.715, + "computedY" : 135.136, + "placementX" : 440.715, + "placementY" : 135.136, + "placementWidth" : 112.767, + "placementHeight" : 30.498, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.767, + "contentHeight" : 30.498, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]", + "entityName" : "AchievementDiscCell", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 440.715, + "computedY" : 135.136, + "placementX" : 440.715, + "placementY" : 135.136, + "placementWidth" : 30.498, + "placementHeight" : 30.498, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.498, + "contentHeight" : 30.498, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]", + "entityName" : "AchievementDisc", + "entityKind" : "ShapeContainerNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 440.715, + "computedY" : 135.136, + "placementX" : 440.715, + "placementY" : 135.136, + "placementWidth" : 30.498, + "placementHeight" : 30.498, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.498, + "contentHeight" : 30.498, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 448.057, + "computedY" : 142.478, + "placementX" : 448.057, + "placementY" : 142.478, + "placementWidth" : 15.814, + "placementHeight" : 15.814, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.814, + "contentHeight" : 15.814, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 448.057, + "computedY" : 142.478, + "placementX" : 448.057, + "placementY" : 142.478, + "placementWidth" : 15.814, + "placementHeight" : 15.814, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.814, + "contentHeight" : 15.814, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementDiscCell[0]/AchievementDisc[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 15, + "layer" : 15, + "computedX" : 448.057, + "computedY" : 142.478, + "placementX" : 448.057, + "placementY" : 142.478, + "placementWidth" : 15.814, + "placementHeight" : 15.814, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.814, + "contentHeight" : 15.814, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]/AchievementText[1]", + "entityName" : "AchievementText", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Achievements[2]/AchievementCardsLayer[2]/AchievementCardsHolder[0]/AchievementCards[0]/AchievementCard[2]/AchievementCardRowLayer[0]/AchievementCardRowHolder[0]/AchievementCardRow[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 478.555, + "computedY" : 138.847, + "placementX" : 478.555, + "placementY" : 138.847, + "placementWidth" : 72.092, + "placementHeight" : 23.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.092, + "contentHeight" : 23.075, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]", + "entityName" : "Certifications", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 215.18, + "computedY" : 28.659, + "placementX" : 215.18, + "placementY" : 28.659, + "placementWidth" : 338.302, + "placementHeight" : 73.236, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 73.236, + "margin" : { + "top" : -7.342, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/MainHeadingCERTIFICATIONS[0]", + "entityName" : "MainHeadingCERTIFICATIONS", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 88.34, + "placementX" : 215.18, + "placementY" : 88.34, + "placementWidth" : 84.547, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 84.547, + "contentHeight" : 13.555, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/MainRuleCERTIFICATIONS[1]", + "entityName" : "MainRuleCERTIFICATIONS", + "entityKind" : "LineNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 83.087, + "placementX" : 215.18, + "placementY" : 83.087, + "placementWidth" : 338.302, + "placementHeight" : 1.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 1.13, + "margin" : { + "top" : 4.123, + "right" : 0.0, + "bottom" : 16.04, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]", + "entityName" : "CertificationColumnsLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 215.18, + "computedY" : 28.659, + "placementX" : 215.18, + "placementY" : 28.659, + "placementWidth" : 338.302, + "placementHeight" : 38.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 38.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]", + "entityName" : "CertificationColumnsHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 215.18, + "computedY" : 28.659, + "placementX" : 215.18, + "placementY" : 28.659, + "placementWidth" : 338.302, + "placementHeight" : 38.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 38.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]", + "entityName" : "CertificationColumns", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 215.18, + "computedY" : 28.659, + "placementX" : 215.18, + "placementY" : 28.659, + "placementWidth" : 338.302, + "placementHeight" : 38.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.302, + "contentHeight" : 38.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[0]", + "entityName" : "CertificationColumn", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 215.18, + "computedY" : 28.659, + "placementX" : 215.18, + "placementY" : 28.659, + "placementWidth" : 111.363, + "placementHeight" : 38.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.363, + "contentHeight" : 38.389, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[0]/CertificationTitle[0]", + "entityName" : "CertificationTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 215.18, + "computedY" : 56.397, + "placementX" : 215.18, + "placementY" : 56.397, + "placementWidth" : 111.363, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.363, + "contentHeight" : 10.65, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[0]/CertificationIssuer[1]", + "entityName" : "CertificationIssuer", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 227.605, + "computedY" : 42.528, + "placementX" : 227.605, + "placementY" : 42.528, + "placementWidth" : 25.844, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.844, + "contentHeight" : 10.65, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 12.425 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[0]/CertificationYear[2]", + "entityName" : "CertificationYear", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[0]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 227.605, + "computedY" : 28.659, + "placementX" : 227.605, + "placementY" : 28.659, + "placementWidth" : 19.543, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.543, + "contentHeight" : 10.65, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 12.425 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[1]", + "entityName" : "CertificationColumn", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 384.331, + "computedY" : 28.659, + "placementX" : 384.331, + "placementY" : 28.659, + "placementWidth" : 167.58, + "placementHeight" : 38.389, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.58, + "contentHeight" : 38.389, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.555 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[1]/CertificationTitle[0]", + "entityName" : "CertificationTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 397.886, + "computedY" : 56.397, + "placementX" : 397.886, + "placementY" : 56.397, + "placementWidth" : 154.025, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 154.025, + "contentHeight" : 10.65, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[1]/CertificationIssuer[1]", + "entityName" : "CertificationIssuer", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 410.311, + "computedY" : 42.528, + "placementX" : 410.311, + "placementY" : 42.528, + "placementWidth" : 69.039, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.039, + "contentHeight" : 10.65, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 12.425 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[1]/CertificationYear[2]", + "entityName" : "CertificationYear", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Certifications[3]/CertificationColumnsLayer[2]/CertificationColumnsHolder[0]/CertificationColumns[0]/CertificationColumn[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 410.311, + "computedY" : 28.659, + "placementX" : 410.311, + "placementY" : 28.659, + "placementWidth" : 17.635, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.635, + "contentHeight" : 10.65, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 12.425 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + } ] +} diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/midnight_navy-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/midnight_navy-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..d3a751751f43cf3c0bdc8e19ffae1b08e6d090c3 GIT binary patch literal 117381 zcmeFYWl&sQ7d4pR8VK$L65QRJ0KwgYyA#}l26uONw~*lO1ZdoXLx9F5X{^z?dEWQ= z>aD4%njiCbs#2*g`u08dp0m%{YpuO@q>7R>CK?Iaix)32Wo167y?6nq{^A9^ED9X( zmvUm(>lZJ+ypa7Mrr~9Hk{h0lui1RvBiiSa={zjN6{b4v3=T5wuPH7veUBiCh{`As z^=>qYWI4ZgE6VCB9s%LDUG5ZJX76Rxx)VhvS^C%`?SOj*9+VnhMIme_` zPs-up@}1YfcHYsj$W(E6AZYXG3wD1b4JJcsXlKfMffNEgNl4lzZQS465VW8{_n7o; zZ!=^W7_5Xh!%2Dk<@P8^LHENW4Gi^EC3J+J_ui_JSg5(!je!~e8xtRBt-4pgTe9hv z9c5i*TOS?HF-SwuP*=F^b8V?}YvS#%0it9B}$hs<67%Wbx-!j}u0% zrVa8NQSxlsKylc-xWT+k*E~fwt*eaJ9T5hS1VZ9+#<}thNT)-!nrrK1xy)Yh`Lxf< zbgm>>g^)*$EwvavYp^V`J)}JTpBc=If_<|Ha36~iXtce4kmMWxU1Vr0jm$mjdkz=& z?=|7DjfaErb)TDD(SSnL=vRC_pTN zKe&t{qj=a1J6nAhR*>_&S$MC@(EnakWMyZ!`|sRD@ctbUEgsFb?LLvv)Ql^l;O`Z* zt*6BQ-Nhd={&{xwawSLE75{*^n1fS9M9djn`{Jiwd9S;7DAMsXH>BL+oR$x4BT4Z- zPm?cLomRk~ttRs{Owi#VKaySD?8YChdHKJR`++iY;V3CbkKc5;XPUG6o2+YFd>Zgbb$pM#XB$ZQ6_C1BOP4$yIZ znA)V2`nCp>NvC)mUHxXjr?s+<1?uqK%aRC>chYZBWio}iHz*6=Tz5YrzmB5>KUEPG zNv)UV2sV42C)W%3UFAO1+01L!$&q^=y=RFRfl_LD%_ME&YFC*~h;CkG;9yXI(k|Md zge_;&!NJrtj6R@qh_3)v`S<-tG
      )xcjNMy*cU6T*lB7{yz8Kw{;!?~G%=H~)z1?EPs z$>f}+x7N{<))edMYXft1V%SjkW1fT^9aqAB0?|cBR>;8HK7y9h`DC-TK3;M*a%}BN zZ@)OLS{*jX>R0DzChVo~gfbSPr;p+Le(GgMxmdd)E^ipUg3QnYEvT@DEp{L!J)6&N zg^rB;kku|L%En9g$g#mmy{|;Iwmi2w;PCmHr5H|F7fUSc$8C8BMc1*>RKhIGP|K`4 z?=dXF8IpsT@Nw@5b3Wk{J0<5~dZsAPr)skiUzz8=w?ZDre?Qjmv3{Wqxjf?2pkm*A zE3mos!XE0YyUX_Mi_@IVX}@Uy^zDUoLU04FKlJr~Ccwx(KxCsrGW=%+2J1l#G*AR@rD%WuYf-r&$r`mN0j={b-wv7j4d3KK@-0O7rq^q z9j%Fn+&vs~nu0nd=xtB$V#OfGT*mw(xg9q5CzDj7*Vgs< zdgUB^zF&`bb<+C+Fa|25|`d+&q_N+k>!22+= z%$*@mXPQGa*ISGhl%f$|0mD&O2sm>YN?1B~eB>$mNBqt&iad9Q?9p+NfGa?y|DUxN zfjtPdiL!=}_w00^jBC}shFbWX&@eyQKd}s^q@>K^2MpG$)yadoU3@Pb_K(l~Af+7n z$s$i_zvz_n7(Z5_EjxSiC+Ic%4_GSn7|lehNRDN4#lZ$^-VQ5hxL2qaI5BWgPHsvl zcf~b}LB?+^P&1H_fA^i#5)L)kJ84v<&1nhm}p{AiD}*9U(WUq9!&Zm(8&G+>p!ASxUNImg6_55*z(z0{X}>vztE6 zHI(N`z5crsu%Va+r>g;9dOxvmexWKxnMr0a1>xWZZB4yKu_=98Xt$zldU$*)cikO} zjSiOfdbmaH>~b8_ph54pjDTG*Xc{EI3NZP@f=BZGj(PK8^a$dQ&2~I$;_go1z~IV& zuLiNOI2y{o#~iWGCHcbvmt&IWeVoCParcB?%S-~#G4HS74FcnCBSN-to|ypP$Zjd+ z*!0QweeA`ppBD7uXo~i2!G{FDVL-U^<#XIF;9NHHLQdx(GX4ABF)%dPGnCJMPJow@ z%4J_->i9M2Vv;V@4ENoK>HI&%x3a}s^RjP(JcY>D)+Y@*Zu*g%0&K;MA8Bh**BWUe zcUVR4T!pQkimD%{mTENV2;nyFF3?Xp@?O_!vs{Vx``y3lRj^A1&;3ZKlWF)-}hNL%HIc{+JdEBWxlUJcZdH`%Hf39N`img zqbpZT24yf~hBB;i-D=~TA7Ff(b@u*#QO~Uzu9le5)>Dm_V6@` z>_Q=uhQZ{Na5bZUzJE``*l(CG8nA5(4lkT~bfy|jvH9M9LtOKoKB1Fes)Sj)ggKDy ziLRc4*nXz@)5Y>67CPR5&)fT+JYU2X43QyUuh_wUDQvJk2#WvI{Oi^ z_qJQ;?s!;l5q(JFR990YgXRi?2lzKi?$*jZCcFv?Qg>S>bd!JKBk%7V(iTBv|VI@@aw`E zquRMfbYSaCRTD{oUbF688hJdWsMrs%0D6Rb{CV*1?oJ4TB*x3<)aOFh@`Sxg^>UGC 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%0A5jbA|3QiRf6yi5+CbR^1^qy+ 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

      T99edD2wjSGdlU`{xW8>=>)~vrVa9%t$^PTf2 zBJMeQC`LUiC1t#H+{xt}u68}WQV&P%(Dj2Sgzf;p@a^d!>%c=}(}=M)4n39>XL)Pk zxlKK9L)-ftIOQLZ!cz#lWOpu}jqzM(lzQJK+uB=8JxZn_c$XiUu5z}>(WlGXOGZ&EmUau z&*5qHgiL{1a~{d!SL+4Ug6A5E&5Jhe8mo^%2AWHM*c12xN-lz&pijo0KN8ouO!ZC0 zf|Y=-cQJEQA@)!4JzyYZ#A8mYbh5@HhtVEVrC(KD-g)$1xIi;xpKWBwH5=VD8(bcdvo;A zHxzVz;ErrO0y+H`k{GT2cem{0Z)kp><{}t9cE;(w!t9gnXJ(wDs5 zxmq%YEA4xyoA2yh3sP9=ZU%3(pnNk2{WvPldUem{I1A+?@2e-1$&UK$CX^3g;UYh` zH*rE5+}H>nW00s4%Ahs^vS9{0{?uq`WF9{+Nf zQx5g-?}Fj(e=%r~Q7!mK)_W@;C4W%gZrC&yaw|%29TpvpM?0$D9^X45`XjZPRj+2v zfYeq1k4f8laOZJqd`*w=%jJY#w{JwT{?%G-!+r{tdU(R<(O-nGMp}V+*$?G#yjQjKP120uA z!CehN1+Pkwv*QBT_n~-rcsxF*R?{jk$~T80s$l7cH7XYJ5ac2(oh5<3>D^OAMBq7~ z&@BGj`}P`6r9$prYcpX3fDmF;gj_AL%}2!dePFn{-+V;qwOfOvnZc=yluJZfn<`Gj zML^QA%m>4EV&AO>2JaT)Rn#qa>i3|(6s6)Qw8~#?Ni}>GTv_L^z#u?`nY5u+SXfvU zRqGw`m@agbZp;|MHwrH|p;Opgq_(uM$ZsUPufxOuDGz|vydL-hB25LIuoR%-4P3Et?0COt>5(&m>j&cd2h_~N^;rDXByuYdY} zC9HOD+P;qPyOMM~JCr~Gse%UXXIEEmT{pn977uHlp90kTWR+W6K-hXT7t}AdvpG^4 zll!bh*CvN~?+4nJN}6pCvjzwv2tnhCks0lCk$+a5de z2MoD%7XMV=^n{VAyf=lK{d2Z=y2hvm?MemrhG}tfGBPubt_7Xb1tLIKwurhrSAWW2q8ahk$?7DDBP;*G4ELJ?~@ zGo9Q$$~@MRlFQba(3zfbJIp`x?o`i_igLl9>XsB;cQODbd(FB+cGDF={FqXnA%hVU zx)}E9Q+|C$s?r&UJ8x+kEATR|^wDpqU#eO1#jv0M`Zj)v-*a0avJ)+>e$_+Qm64R| zFMLc5@P$t&#{swdMQ0XT>$NUf7sEO+cf~3%(nSJ@O>Knj|iucpIjS=!0po1o-$7fD-0NL!@_KNrNQVVt70s^d0pAa391tNDo zpp!5-660YFWwcG#&AoenF_zf&tqs(%yKwkRVPVp?q}@0nJu^-ym@_OdeUK=RnLscB97%wcFRj|iI@!OI zT5#GHLAC#aYD4eY4c-L6u_wWg5KXf2Dq-X zn~8~u8GnM)X()RH#>hRyn^s31k7Qo4%1-%fB0`cL@l)X z-Yqn-wD~Xz7q9*J`TWFKxQE!Qg}C37?IKSXz%j;_!k6j(EPQe+xY1}4F>tR)f@s)(+k)BVM>V}$(7i%iX*EKJKBQXOeQ^qAg(6BMw45A=jw7GLI zjb~uVUCRt!jSM+o@T@9rg$d)Ovy`n1t%>vDyY)UuL$8k_;IsgyE#oE{J8ay`m?8KS*-q zK)7Z&v#gg=?gm#P!8kj-Yc}A_?3-Px@BIj$w43k9k)vpRYXLgo?9@LRg){G5+Z-3M zHalJTcshN>9@t+D3y@*;z;vrjqFjq)4NTO@Bp2VUK+BKmkrC6kzkDILEfG5&q0`vB zI&7M7K78t{FkNGQ^($o!8_9ZQB^F-4bcG!g?K4uPk#U7}kuSsexQ$tJ(>EI$nwqK| zWA*!T(3y5Pfy1JmxaX`19MCw|rEeE}(4Sr!#KI=M8nqUk03rcRdC%2w5{7gUjzq~$ zPVXatL=64uM2UF61`;CxIyQMe;2`sS)k-Z_n7UO%+U@N*660fA0&4-u>jpHj&q)MV zp^%%1Xt^K$)UbL)mk#IIlF2%aa7S9y7VD-kDRcQ|o% zRPWQ4SQe^GIQA5Zt;q4Ki$_hDTuvRu&7K3hUHJ=&)~OXg=P1+RWJY{7Z{2S?_f>j^ zNw0rfty|Agw?9i8%IgGRq(qLCVapSFgw<#L$jL2;7>07+(J2r3FcTBfPgG}YqCR_) zyGu^@Si9mawfGJXOx=OvC@(+naMo8DS^c)R|CQ3?F#1W)^J zt_J&go!ZVxb^0$#P}N?U_gt&?@JL#+YRTTlRG>BZxyTMEwscZ@wp#`@_lSV1BihDK z>BDT4uB^?~L6EdhrF?DjQt?B9xEh=N{NY_L%0e*m9%A0+v14jA1%m-BT~B9T=UKg! ziA8_hCasA#*~)Z+n3BB^hUl!nfBFZgzkg+qRMep7d%KASOu7miu_!zp{+`Ip8h=#i zaF8)1RM-upW)=8P@xPw*h7cLI352{Tz676yAbtgV#r#^aU+%!@!5^PUc7q?E_rLq` z+0cU3_y7O?06d#T|FLG;$K>F(*eG%3{TSW{=e5S~T=Y=mYL>56eart0O0CQgpb~I( za09Ln43cnok*KTh(_Fg=9U{s)a|;U+0q3IQ@{B!#7%*HS#{MpRvsro(j8fXP?!Q0W zrtg06)tpCljK!dJ)blsK@6&a|az8fXo%CILp13kvR}@gdKk>~J`>5{s@0St`kK zq}~)cgqVF`KgIqn0?}(Ebf*xJ=MH5}EIk`%+(42~Yq|iT0CHPIUJN#M&C%(MtA!&? zL9PqMnVm1XM5_04FLD;dcDUMQ5TIJ1?P#?-`Y5E-o-S!YI#Qy*f;;~tOO=MV!ou; z`kcc+b^x6*viy5A2}|&d!+~mKrI&k0?b7=f*P&Moj9I@1Hv!c#%u-<`x0P=|DU4EYYGD{(?W&vKtExvqeI z!a@nx`p8wFjAZKq6nN8bCBchEDI;xpGYtM+_`2%X`ZnwuVN>n$TEKUw6Yy339)!GDk6ac_#_{5paC_p|z+#R+C$Q6vpX8OxQ;w1m_rw@N4_N>kyzqQEVbx(TTh|$K4GShhVI#FrY z@6W>UxPa3IuPTz}&7J^4_0|(P-`>vb1akHx_N^rU!?io#6%zWby+#<>)aC71c>p;s zDK+N`p&{2xHhLqL*ojuF*IvKk5`!sUdSavN*2ASw*=Ln}Tkjf$rsP^?W<2wdL&Q|< z{`RpnppV5jN#S=DUU_S|inNx51S{34{>4WNJ$Fg9!9L(ILnQ#$$-oMVqng7+WqmL+ zbW6lEvkOIj)Au;4->J0oi^25o>e+zSoKeq;^R`>vgPWpS;qtL@xWsi`K#Sg@;H%Wb z!ILc6z;|Mcr6+l74`D554(`NF%(|XPuwU2+pkR!rFq%Z@K*V^H_Jjc^V)Z|eo$=c) zZeF8>9%dJ>4V#y3AcAxo6y!8ZVyRLvKFrm*9!`?@3YX6%R5ZqLk!{+}WaEX9pZJ8c zkqy0&5kibicw0tIopzu(BMZD{?1jw6FYeAEGxv&~TuR5y&V{{s*D#5?-BGfv31c=g z9O(w%HY^$#2|qDxT<%cg`Xa4easUjp%wOc)AA!H4=*K89q+qy&5mz{X1$s66{c9}z zf>TAvHaV%8nHORaVX5!Z!+uiCHHk#DpU&LP@%&WZy!w923eI1QtXwcWY^l|jtfqej zR<8M(LuiCaAzS&s*Z|T>fL$n3a1Y>agt~f=?^xYdXNbHy471#9mV7M?P2RQJ0++7S zwo@+^_F3XnRM3plqXcP=zOyteRjyY-fps;f9B$t=FI8T>4!2t<9CpoPiypJAVv_%LqNs8u_Lz@Y3{C1{;bR9ZvV7ze7KSR}YZfe{(;e3BnI9 z4u)Gid72^DK=(e`f`cqG{wQ8MtQh*{fnw2VU%kv!yi(?;fbBsBv;Z49v+n3NcxZgu z1$cm;1E@Eb9}_HmkK9xNU5dZ6#CC<9Aab@McK<^;)2(z>p*1N=6e#%Kv!r z=f)$?$l~pc5^8GPwq_J#g|5)~%AMf38fzFuQ|vsofLZk8^>DMQ0rK7992uz~vES-C zL5H~1rR>m%`wH=pA@R#lZ}ug!Ighn18NT5*1M9h=7W5#vjsI2r`gNoFQ~*BI6W*`> zd$RfKQ-!(Zwa@?KudiR#n(vd8({PyiF1N|%n42$3F@!)u8ZGeTPUiN)6)z0h+ndk{ z*0Q$iVh?@yOUp&UV+G(5mXkpqf>8tIub)(q4V%>y^<9n98EJQ78iOW9e^(53`mOQQ z^t_Y@r0yQSzJBU@iQO~TsjH8T?ZL$^V}efdDHiXd{m(j1Kh{z#2alxPnyht2E(iyc z5C33w_qpWtKX}8xim88?Z)E?w4}5dUvr@e7Tl8MB_3W|&1A513Jnu7LEuv8p{wYcq zt4^g&H5Zh*9w0l_9t!vRinW6p{scaoE@{K#FjJ$Bx0OQE=03C~?nW&tTsZfN`v6Bj z)oDdFXOje!BpAY__2qSa?fQl-j&e5UMQ&2wmr)oj12f15#&#X?1oyu=%!tySe<*eecaDrED;O zu(?qD5<>h6#aI{fXPmOD+M=)FojQ<8=k;T;ThqYBO{D#olHdzIC~Ofs2MsD}yst6= zOd6!xliXE*FhAEgT(KR{$&Oa!Ob3X)^9SU_3rG0{_wP_1LS`X7aiG@8z zjmnV*XWfF}`9lWMUdwcbzRb~jR@Hgp0sA8Zaa)73hFT}5BsT8b_{b>&tSBJCP8Yjc zXun3Bg%O8EcnAx6U9g5?&=1u%VeP;QzX@8OcwItXF1@m@1r?PZaY{Luws%3(@lfeC z?!F(Bmmde%E$IUmB4CT|7fUT%Mguddg$C-!+SRwid8k=Rg1H2NqGu;$jms;21#c9_ zZLDtk1xd9uChfNbJv<~>3~o`1XJ#rBe%K6oyO_UGI)#HY|CJX!2hHQ^L#K;p%M+qH zY=-4Oa`@8gdDk23i;m>3!<^#>G)k!rj3z##QSceJdKUZLWO)j|f98uyEJ-C}7Gp=P zoR4pq_&nG?titlOlh&Xh=%~WU>|(j~uhNLLK~6mD=9t*?CcK^>azkS^l<7*V**fmJ z`_Eq<>Kuw)(Q!Qq*bC5lK9{ZFLRV00-{YyvF>F?>f-XPj)LT!pYTsQ0$Y`l{Da=Qt z4xYVn*Z_bXC@rUiG?h$VB$BExGqpsk<6`Wt%}n9Bh+(Ob5^f=^(=i8fEpSGBEx#Rc zrWQNgdSiVtEu(x3Fu$6D2sU(lj#-T8qX`$Xxwmoz0YXFiHG9h|R{C>=AeI_I4>SCd z&9H2MT}@C9w9nwbk%pO=v;yLepW3dkZ*zntK(YT_D#=3&PQ3mWPXC|wG+w;({k;`Z z^f;0j|6KUU-JL5sqwcl|Vk)QqR0cW9g2V}Moao2>kb~HB;i8*UTW|lb()aDjaI4A; z=^>M&#^ox!zIb*`lGm>hL)+lv{D=2>`##msUof)ucf3mF$M)P^LJu1X$ft`pGPYwVRwyT1-arjNh1kil@Cg(06RJK10nzKAV_%zfNDHRr6E7!JW}`2MQn1 zD5-=jlQQX4oivW(QoK7af=qxcFK2Vx4oSE=vbEiNL>w-B7QNLk2$O|_r6}5Cw-KP& ziGhJ8ZYUPCieUhGxIN1dXhHP(!9P^k_;u@DtU2QZ@vDxlJf7l<;S@^+j}FV)G$>dG z{$QcXZ%SDD{La9u;BJJS$07HOkPUgwR_Mn&JuI|pngk=9bolQbXa6yD36feGUgCN4 z>%bNcxqgM+re|@LGj3w0rMiXKcAIXa%KnpcUKeGJ=Jb=NoDDbPpfw!>zT2fNArTk}`N4uA8uj6T8QCS=xduP!; zb24$s^^nKyw>bvTncB#Uw~+Z?eeoe7HR_G5^ti9YzDO;=KZ*y#D>x3-%KDytK)kxj znycTRkM6B!fB=4}%<7tAdJkQ|mR?NqvY=yBFu4SG0y-HavVLG$!+e(=) z_I;KipwtWtECUsv@N>)S-L{R2A<+R1PPMFR@&f)slwqmaio<1N)aRx8-%X-A@yV1A zlmC1cDuaeLU0+^hIl15YG&V16+^;QO@>I}qo-X`Jz9hrh@XMURU-ajs{rJn{*+1-S z|5tlo9uD;zu21&8u@1_Toft-B8B5t2YqE?bJC!s@_NR~Lzxw{pb)9qmIe(w|cjmf2GxI+0^WM*W-_P^Xh$tJ%S{r%%WEB`rdu%31 z8PAJM8|rtQ^k!bN1BPZ-VvqMIa^5;!=HhGQyJjS?UpLw$lgpJaG>tPU_1kh~qu*@Z zg?Fk&Gi6g$xf?n+FMIpljZkhrYPxLyYD~Pk!fAHC{^XZm6(No51LtuQ(}CQU3JiB+ zDBn$4zxzp1qqh(?P>qhYC3kRQb&v*I<>mU7!S~%6*P}CRl;X>EUzL%^yVh9IrC(Zq zKKA20GPGH|qG1I^05`fC9dY7=FN_$!hnf4GjSFVtyL#Ksj+fa`(^}OwT_}eW0KCS9 zW0v)~WN#1)l?ym^(GXOlG zz3?K7)YheJvESao3O%P=U%dzR?3N4iV1PRCdMW(qH8U=P7%pkfQEwkABKzqubIfjj zmm5*!v})+4351Mkp16>Fad1*5EE#7vDU*a>KmTj&l^#UMp8t`d{$}?~ma^CPqnP%6 z>U~Cbzws9j6@{_eLHeHD_b)~1& zQdcmdb(5Mn`>u9DdJyVWdxt`p>a?0Eex;=*QsH`P-w zLt(-*Ye8d1mDqVJA%{d$`5xw%HijziMq*w8Gby3zDopMR2h$cyalvHFCRy!(%iQK4N@I+ys6J&!Sa4%{_IA( z?YxG1sltX2^}1!?gXsDZ`))pj-99m(R3Z2pEsqD;*Y&jRV2F~l=RK+f8z^?PLaA?I z&e$(ib&WKhY z8pvJ&c*so3#NoNsSy$VruH$LYXtb`yh(oyu#reYD2pa-(c%*!dk#`e|U<30+lEsrK zX+b3cj2TPrl0wYkKNChoY2Yb%bRS47A0(tUx7Yy5|7p2_9eYFPMYsqw7}FoOg0G0CGcb>xyy9Vm{5;VLm_AUf+dpHw7D)o{B#RocAO~5$hf<%!9Tuuss0UpA4&o zt9Ud6HfU0jIs`onz1$YDf=7hi0a(qqoW!Vp0Qe8jBoa6HGl|hj7}_Q!k13ri!`|}n zcXloTIu3=gvw7b5>090m(gU-u?@M zld~6m3OeN8wyz~2l_zk(-8FRoa9de%{nk(^NE?LNdL^B-Al;lI9vBHHMx}k z&e$n;Z9_8vU3p|ChSG&XPjybLjozU8;Ec|2XJ(dcV`&t+arMWgsUvfzOOi9-=DxJW2$7Kf&<{Roco1mm^KH5Yz*$_ z54|Aut|(5xs29%KHK#)#1I&?+PiG)7m?^O`J2hhLtl1G4=3z4BZ)K~`*^}@wzuNg` z%FeePZTjXMB5(6gD!u4luIS{)I66bvh4JiQpereCwO_Yz&!cT_xvU=5i_~~F^y7Pi zK*$-$Z(`m+9*ofh=s`eGAK0o0($Siz}HcD-EAZWL(CI5rfEk zD+-9DzRZ#4;eP<`d+chbXVT4Xy`IO?AAG-mGEWtD(pEH7WXOHj5Zn&<``Piz9gjLs z0r>3`cP*QSIA?k%%AIT2z#DD6w}Xc(t_rQ3XB)f)PCrqJQhczB6Nq7#0Obuxr#@{e z2AFmJn(HbJR!WK|u%RWV(IasKW zOAG{wOMPHo=pI!>^*OtmnMw-QC#Q)~<>y=>MPi9XTZ$hhtRWbaVSoj?2s;q~TtW;z zDCl_6AyO|PCwKn>Rij{4hc1NGmFY6_p2z6Mw~<(P&*cw_xggRauWkr51Jy8!2}_1P zPocw>4ELOcIi|YdG#7HQl@&u;JYP06Ck0Uz)ZIm}(;2!?)WTV#_zgfzo@GyPcJF*4 zXLPQa#M#pFb&cB46~wBVqJIvh8k8Te*0?Wu&bI^`4+$xmfpVB zDW>m>bEv-0z%aO!)s*wl{B25(?{-8JZSs6W!`7z~7Ct`5j^GQJdZWCdu3X!+6?tffaL{8XkFIC?IRRR-koDJresKp0d=kd_FN-F`J{W~EI`O9r?n$RfeuO0= z&M6~J5J%?M5p52QGH(Scq^Xgbdp!?f!IIj(pF3Y7P7ul^;R#uES;!dS~ zs;^L77fi^jY4V%WKL_#h@%dG|F%tToC*vRQ+V6&5KHtR=2JqIgq%&?wN4b53!|`|j zj?x|F7quu(sz&82{a@Iy#3ldJ$b(Ink^%LfD0R=Dn>6>r)s#d|?usb}ED*}qn_{T( zi52H|L$|grZ-aO~y}7kqqKT6gQvd7Df#kh#h}`e&<4y1F?eqm?w_la?NALoJAD_N2 z?OY;tAfJCAeLV?kiq1GlyqZ%vT&NNwV?v&J6C=FPJ!!sOvgrI`0o1iY=*u*|o!{G9 z$XCCBu-Ogr1TH`;Z0yuZG)nz$WRh1kn4+(@q$z99nG-PEme2q%Yz@0N(f#Cc-@U{q zqtcL)r;Si(BcSCp40WV|riM{S-bF42Bnt25Xv=cBNHL^(F>ccwQ|op#En-A8yfP$> zJ(#QI&d$4|Y~(35f~Y^2TVBiMORK=VrsVdmtKxZ}mijGl{#^gZvywiRpq9L6C;vLH zTy+r`$Hqqgsf}g9mj@kLtqknRf{=Ly=U1}xWC{OFcw9C!$YYLC_`at3HNdXoF4*7} z>eZ5A(tOols4{E`SlTqOCLNt_X%6sB)Afb()km%d#|M;G2CnyrozjRn({3f8cLry! zT{C$TZTVqiY89+7*E3|lA|RN3<8#x^zD*j|Vv;;%)+n{igkQ%R)LtkS`Y1CS^Da4j zJSy>rHG)x)t#7154G%StlOBllpPZ=)<=MYN-rT$6u9<=^F*Wa zESgFEib)9AVrG7IG3@GYUvalykWT}^UF@2#E#=y}ms%TMyN1x9Gsw z{sx?0FT@`+i337$Zo4xJsNb2`9l1hx2|ybWlJdepP6&ibKisaa7MHAIoWl9Wj1Lz! zMzDXAe05{uf*)~*3(HSm23~ltWO4EFtGca*)lmik7DSuRRvf;FuC>fRHD~m>PQyl^ zogkXip0hI)jzeDECwl{1Z?@$@Tn@ut%I1ZTOa;AjlYA??jTXP|bze$67IDcQwVBr` z2<$;>+&z54lKef-Xalwx`0sBr29(yh2q0E5F9(~WBYoyL{gWNi05P7T4D^;a3vl&{ z^7?*xVL)S)+BZ12_xT@Q+v{9fLf8O0z$TX#mwz}X|4upK=3Ldc!p2dQgxrVfkJ}7c zqGf`jSh~*V`X*f;j7r7#cxz$>Ag*mFIg(Cr+)@jmOVU(c4W`(tIxyePH5t2ZGGO(1 z{6tDNHB?OMS;+7YH^yoqMDsOsHD7B`i?Ow>Ij5^6yM(O~p0mb92Pyr@?~7`IEcG4B z5_4VaiYNonpLS;emfn*QV)~Q0q`5g5ytRA8{-}Q?3q5gqV_f8wALeW=VQb9EZ}x?DA3~>K&ioAn zF{F4IWnM3z&m=`PFShw2JmIXFIx3q6NTQ>=FQ3-&(h*#5Nof}1!|&T8?|J#owgQ7N zjtO_AQ@$?o3x+;BM$Q8J;W`K=4Sa-3SR3ysi_1YGXqY?BlzG) z)0l~wgmqPe;`T7d+Yn6wK`9>#Yv{Zy>CG((>lx}Q}TG@ zKdo_R@DyVP^(CSzV=uiAN{a2@C%sZRa@ zc>MDe6J?rwwFhO=j!4Mf{N#Y^()2gwot4l{b#Rl`N=_I6LV%c0x{$3FpI~%o;sylx zV3eig-y=XXz}t)cl)C8p{tcErlR1BK_zpSu5JtD@txa8Bd`zIDJxh>!3dG)dqs`ox z&{?j(Yu$4na0y2q()SEOkM%ul?6xIEdi-Itv0+NSozNd&q5eKm+L5cPDFZT30cOi% z2uZy|_c&b$xEoj==t}q^UGfz7d%{Y_bnOHp^HFz4Dnz>?T>Uy#T zwf#G{d>3c>=>Edvo@RK`HehG0s*pD2oF0l|jex5FgIc7Oj64_M57fdnX5i*(F)83A z(<7x)slTG{ZyXVcu`H7o`TxP1?8L8bro{8V)aQPWtoUz*yZ?J*TbCTe;6&dc9ZR=Q P1-wiQEcB}{y2bwo{amzJ literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavy.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavy.java new file mode 100644 index 000000000..14b2dd59e --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavy.java @@ -0,0 +1,224 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageBackgroundFill; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvSection; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_RATIO; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MAIN_RATIO; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.NAVY; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.PAGE; + +/** + * Midnight Navy — a one-page CV on a full-height navy plate: an outlined + * monogram over the name and a tracked role, then contact, education, metered + * skills and dotted languages down the plate, beside a paper column carrying + * the summary, the roles held on a rail, three achievement discs and the + * certifications in divided columns. + * + *

      The plate is page chrome, not a fill

      + * + *

      The navy reaches the top, left and bottom paper edges, and a section's + * fill stops at its own box — so the plate is a page background sized by the + * same ratio the body row splits on, and the two cannot drift apart.

      + * + *

      Every horizontal pair goes through one wrapper

      + * + *

      A row nested directly in a row cell is refused, and both columns are row + * cells. Each of the sheet's horizontal pairs — a skill and its meter, a + * language and its dots, a title and its dates, a disc and its line, the + * certification columns — is therefore a row wrapped in a single layer of a + * stack.

      + * + *

      One page, strictly

      + * + *

      The body is a single row and a row is atomic, so this sheet does not + * paginate: a CV with more content than the design holds is refused with an + * {@code AtomicNodeTooLargeException} naming the node that could not fit, + * rather than being cut or silently clipped. That is the honest failure for a + * design whose two columns have to reach the same foot — splitting the row + * would leave the navy plate on one page and half the aside on the next. + * {@link TimelineMinimal} is the preset in this package built to flow.

      + * + *

      How a document reaches its berth

      + * + *

      The columns are fixed, so the preset assigns each section a berth by title + * rather than reading {@link + * com.demcha.compose.document.templates.cv.data.Slot}. It has seven:

      + * + *
        + *
      • education, an {@link EntriesSection} of a qualification, its + * institution and its years;
      • + *
      • skills and languages, {@link SkillsSection}s whose groups are + * flattened — the design draws no group names. A skill's level fills its + * meter; a language's fills the nearest of five dots;
      • + *
      • the summary, a {@link ParagraphSection};
      • + *
      • experience, an {@link EntriesSection} whose bodies are bullets;
      • + *
      • achievements, an {@link EntriesSection} whose entries carry a mark and + * one line of text — the design gives a card no heading over its line, so + * the entry's title is that line;
      • + *
      • certifications, an {@link EntriesSection} of a title, its issuer and + * its year, one to a column.
      • + *
      + * + *

      A section whose title matches no berth is not drawn, and a berth with no + * section takes its heading and its rule with it. The contact block's heading + * is the preset's own, because a document has no section to carry it — the + * channels come from {@code CvIdentity}.

      + * + *

      The marks and the links

      + * + *

      An achievement takes the mark its entry names in {@code CvEntry.icon()}, + * from this preset's own vocabulary, and an unknown token is reported as a data + * error naming the set.

      + * + *

      The email, the phone and each link are reachable from the PDF, with the + * {@code mailto:} and {@code tel:} targets built from the values. A link is + * drawn as its own label with the address behind it, so the plate's width does + * not depend on how long an address happens to be, and it takes the mark of the + * network it points at or the globe. A degree, a job title and a certification + * become links when their entry carries {@code CvEntry.link()}.

      + * + *

      Fonts

      + * + *

      The sheet is set in Barlow throughout. The templates artifact carries no + * fonts — register the family on the session, or the engine substitutes and the + * measured geometry no longer matches the type sitting in it. The role line's + * tracking is real spaces, so its width depends on the face's space advance + * specifically.

      + * + *

      Usage:

      + *
      {@code
      + * DocumentTemplate template = MidnightNavy.create();
      + * template.compose(session, cv);
      + * }
      + * + * @since 2.2.3 + */ +public final class MidnightNavy { + + /** Stable identifier of this preset. */ + public static final String ID = "midnight-navy"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Midnight Navy"; + + private static final List SUMMARY_KEYS = + List.of("summary", "profile", "about"); + private static final List EDUCATION_KEYS = + List.of("education", "qualifications"); + private static final List SKILL_KEYS = + List.of("skills", "expertise", "competencies"); + private static final List LANGUAGE_KEYS = + List.of("languages", "language"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "employment", "work history", "career"); + private static final List ACHIEVEMENT_KEYS = + List.of("achievements", "awards", "highlights"); + private static final List CERTIFICATION_KEYS = + List.of("certifications", "certificates", "licences", "licenses"); + + private MidnightNavy() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link CvDocument} + */ + 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, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + List sections = doc.sections(); + + ParagraphSection summary = berth(sections, ParagraphSection.class, SUMMARY_KEYS); + SkillsSection skills = berth(sections, SkillsSection.class, SKILL_KEYS); + SkillsSection languages = + berth(sections, SkillsSection.class, LANGUAGE_KEYS, skills); + EntriesSection education = berth(sections, EntriesSection.class, EDUCATION_KEYS); + EntriesSection experience = + berth(sections, EntriesSection.class, EXPERIENCE_KEYS, education); + EntriesSection achievements = berth(sections, EntriesSection.class, + ACHIEVEMENT_KEYS, education, experience); + EntriesSection certifications = berth(sections, EntriesSection.class, + CERTIFICATION_KEYS, education, experience, achievements); + + // Every length on the sheet is a share of the design's own grid, so + // the preset sets the page and its margins rather than following + // what the caller configured. + document.pageSize(PAGE); + document.margin(DocumentInsets.zero()); + document.pageBackgrounds(List.of(PageBackgroundFill.leftColumn(ASIDE_RATIO, NAVY))); + + document.pageFlow(page -> page + .name("MidnightNavyCv") + .padding(DocumentInsets.zero()) + .spacing(0) + .addRow("PageGrid", row -> { + row.spacing(0); + row.weights(ASIDE_RATIO, MAIN_RATIO); + row.addSection("Aside", column -> MidnightNavyAside.compose( + column, doc.identity(), education, skills, languages)); + row.addSection("Main", column -> MidnightNavyMain.compose( + column, summary, experience, achievements, certifications)); + })); + } + + /** + * The first section of the wanted shape whose title names this berth, + * skipping any another berth has already claimed, or {@code null} when + * the document fills no such berth. + */ + @SafeVarargs + private static T berth(List sections, Class type, + List keys, T... taken) { + for (CvSection section : sections) { + if (!type.isInstance(section) || isTaken(section, taken)) { + continue; + } + for (String key : keys) { + if (SectionLookup.titleContains(section.title(), key)) { + return type.cast(section); + } + } + } + return null; + } + + private static boolean isTaken(CvSection section, CvSection[] taken) { + for (CvSection claimed : taken) { + if (section == claimed) { + return true; + } + } + return false; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyAside.java new file mode 100644 index 000000000..9c9ec4c9d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyAside.java @@ -0,0 +1,414 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.LineBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.HorizontalAlign; +import com.demcha.compose.document.node.InlineImageAlignment; +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.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.OptionalDouble; +import java.util.regex.Pattern; + +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_CONTENT_PAD; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_DIM; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_INNER_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_SMALL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_TEXT_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.CONTACT_ICON_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.CONTACT_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.CONTACT_RULE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.EDUCATION_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.EDUCATION_YEARS_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.FACE_SPACE_ADVANCE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.LANGUAGE_DOTS; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.LANGUAGE_DOT_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.LANGUAGE_DOT_PITCH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.LANGUAGE_DOT_STROKE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.LANGUAGE_GROUP_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.LANGUAGE_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MONOGRAM_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MONOGRAM_PITCH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MONOGRAM_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MONOGRAM_STROKE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.NAME_DIVIDER_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.NAME_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.NAVY; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ROLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.SKILL_KNOB_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.SKILL_KNOB_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.SKILL_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.SKILL_TRACK_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.SKILL_TRACK_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.TRACK_DIM; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.WHITE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.asideText; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.leading; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.px; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.style; + +/** + * The navy column: the monogram and name plate, then contact, education, skills + * and languages, each under a heading and its rule. + * + *

      The monogram is an outlined circle with no fill, so the plate shows + * through it, and the initials are anchored on its centre — they are content + * of the circle rather than a paragraph laid over it.

      + * + *

      A skill meter is three layers on one stack: the dim full-width track, the + * bright filled run, and the knob positioned along the track in proportion to + * the level. All three hang off {@link LayerAlign#CENTER_LEFT} so they share + * the track's axis; seating a layer at the stack's top instead draws one meter + * as three unaligned pieces.

      + */ +final class MidnightNavyAside { + + /** The heading the design gives the contact block, which no section carries. */ + static final String CONTACT_HEADING = "CONTACT"; + + /** + * A trunk prefix in a printed number is for a domestic dialler and is not + * part of the international one, so it is dropped from the dialled form. + */ + private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); + + private MidnightNavyAside() { + } + + /** + * Draws the column. + * + * @param column the aside cell + * @param identity whose CV this is + * @param education the degrees, or {@code null} + * @param skills the rated skills, or {@code null} + * @param languages the rated languages, or {@code null} + */ + static void compose(SectionBuilder column, CvIdentity identity, EntriesSection education, + SkillsSection skills, SkillsSection languages) { + // Only the top inset belongs to the plate: the monogram is centred on + // the plate's full width, not on the text column, so the horizontal + // inset is owned by the blocks under it instead. + column.spacing(0).padding(new DocumentInsets(ASIDE_PAD_TOP, 0, 0, 0)); + renderMonogram(column, identity); + renderNamePlate(column, identity); + renderContact(column, identity); + if (SectionLookup.hasContent(education)) { + renderEducation(column, education); + } + if (SectionLookup.hasContent(skills)) { + renderSkills(column, skills); + } + if (SectionLookup.hasContent(languages)) { + renderLanguages(column, languages); + } + } + + /** The outlined circle, carrying one initial per line of the name. */ + private static void renderMonogram(SectionBuilder column, CvIdentity identity) { + List initials = List.of( + initial(identity.name().first()), initial(identity.name().last())); + ShapeContainerBuilder circle = new ShapeContainerBuilder() + .name("Monogram") + .circle(MONOGRAM_DIAMETER) + .stroke(DocumentStroke.of(WHITE, MONOGRAM_STROKE)); + double top = -MONOGRAM_PITCH * (initials.size() - 1) / 2.0; + for (int i = 0; i < initials.size(); i++) { + circle.position(new ParagraphBuilder() + .name("MonogramLine" + (i + 1)) + .text(initials.get(i)) + .textStyle(style(MONOGRAM_SIZE, WHITE, DocumentTextDecoration.DEFAULT)) + .align(TextAlign.CENTER) + .build(), + 0, top + i * MONOGRAM_PITCH, LayerAlign.CENTER); + } + column.addAligned(HorizontalAlign.CENTER, circle.build()); + } + + private static String initial(String name) { + return name.isBlank() ? "" : name.strip().substring(0, 1).toUpperCase(Locale.ROOT); + } + + /** The name in two weights, the tracked role under it, and their divider. */ + private static void renderNamePlate(SectionBuilder column, CvIdentity identity) { + column.addParagraph(p -> p + .name("Name") + .inlineText(identity.name().first().toUpperCase(Locale.ROOT) + " ", + style(NAME_SIZE, WHITE, DocumentTextDecoration.DEFAULT)) + .inlineText(identity.name().last().toUpperCase(Locale.ROOT), + style(NAME_SIZE, WHITE, DocumentTextDecoration.BOLD)) + .align(TextAlign.CENTER) + .margin(new DocumentInsets(px(20.4), 0, 0, 0))); + + column.addParagraph(p -> p + .name("Role") + .text(MidnightNavyWidgets.tracked(identity.jobTitle().toUpperCase(Locale.ROOT))) + .textStyle(style(ROLE_SIZE, WHITE, DocumentTextDecoration.DEFAULT)) + .align(TextAlign.CENTER) + .margin(new DocumentInsets(px(13.1), 0, 0, 0))); + + MidnightNavyWidgets.nameDivider(column, NAME_DIVIDER_WIDTH, + (ASIDE_WIDTH - NAME_DIVIDER_WIDTH) / 2.0, px(21.7)); + } + + /** + * The contact block — a mark, then the value or the link's own label. + * + *

      The three channels are always drawn: a {@code Contact} rejects a blank + * field, so the triple is non-blank by construction. A link is drawn as its + * own label with the address behind it, so the column's width does not + * depend on how long an address happens to be.

      + */ + private static void renderContact(SectionBuilder column, CvIdentity identity) { + Contact contact = identity.contact(); + List channels = new ArrayList<>(); + channels.add(new Channel(MidnightNavyIcons.PHONE, contact.phone(), + telUri(contact.phone()))); + channels.add(new Channel(MidnightNavyIcons.EMAIL, contact.email(), + "mailto:" + contact.email())); + channels.add(new Channel(MidnightNavyIcons.LOCATION, contact.address(), null)); + for (Link link : identity.links()) { + channels.add(new Channel(markFor(link), link.label(), link.url())); + } + + column.addSection("Contact", block -> { + block.spacing(0).padding(ASIDE_CONTENT_PAD) + .margin(new DocumentInsets(px(37.2), 0, 0, 0)); + MidnightNavyWidgets.asideHeading(block, CONTACT_HEADING, CONTACT_RULE_WIDTH, px(23.6)); + block.addSection("ContactRows", rows -> { + rows.spacing(CONTACT_ROW_GAP); + for (int i = 0; i < channels.size(); i++) { + Channel channel = channels.get(i); + int index = i; + rows.addParagraph(p -> { + p.name("Contact" + index); + p.inlineSvgIcon(MidnightNavyIcons.icon(channel.token()), + CONTACT_ICON_SIZE, InlineImageAlignment.CENTER); + p.inlineText(" ", asideText()); + if (channel.href() == null) { + p.inlineText(channel.label(), asideText()); + } else { + p.inlineText(channel.label(), asideText(), + new DocumentLinkOptions(channel.href())); + } + }); + } + }); + }); + } + + /** The degrees — the qualification, its institution and its years. */ + private static void renderEducation(SectionBuilder column, EntriesSection education) { + column.addSection("Education", block -> { + block.spacing(0).padding(ASIDE_CONTENT_PAD) + .margin(new DocumentInsets(px(55.4), 0, 0, 0)); + MidnightNavyWidgets.asideHeading(block, education.title(), ASIDE_INNER_WIDTH, px(20.4)); + block.addSection("EducationEntries", rows -> { + rows.spacing(px(29.8)); + for (CvEntry entry : education.entries()) { + rows.addSection("EducationEntry", item -> { + item.spacing(0).keepTogether(); + item.addParagraph(p -> { + p.name("Degree"); + p.lineSpacing(leading(20, EDUCATION_TITLE_SIZE)); + p.textStyle(style(EDUCATION_TITLE_SIZE, WHITE, + DocumentTextDecoration.BOLD)); + if (entry.link().isBlank()) { + p.inlineText(entry.title(), style(EDUCATION_TITLE_SIZE, WHITE, + DocumentTextDecoration.BOLD)); + } else { + p.inlineText(entry.title(), style(EDUCATION_TITLE_SIZE, WHITE, + DocumentTextDecoration.BOLD), + new DocumentLinkOptions(entry.link())); + } + }); + if (!entry.subtitle().isBlank()) { + item.addParagraph(p -> p + .name("Institution") + .text(entry.subtitle()) + .textStyle(style(ASIDE_SMALL_SIZE, ASIDE_DIM, + DocumentTextDecoration.DEFAULT)) + .lineSpacing(leading(18, ASIDE_SMALL_SIZE)) + .margin(new DocumentInsets(px(6.4), 0, 0, 0))); + } + if (!entry.date().isBlank()) { + item.addParagraph(p -> p + .name("Years") + .text(entry.date()) + .textStyle(style(EDUCATION_YEARS_SIZE, ASIDE_DIM, + DocumentTextDecoration.DEFAULT)) + .margin(new DocumentInsets(px(11.5), 0, 0, 0))); + } + }); + } + }); + }); + } + + /** The skills — a label beside a meter, one row each. */ + private static void renderSkills(SectionBuilder column, SkillsSection skills) { + List entries = flatten(skills); + column.addSection("Skills", block -> { + block.spacing(0).padding(ASIDE_CONTENT_PAD) + .margin(new DocumentInsets(px(37.4), 0, 0, 0)); + MidnightNavyWidgets.asideHeading(block, skills.title(), ASIDE_INNER_WIDTH, px(21)); + block.addSection("SkillRows", rows -> { + rows.spacing(SKILL_ROW_GAP); + for (CvSkill skill : entries) { + MidnightNavyWidgets.layeredRow(rows, "SkillRow", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.weight(1), + DocumentRowColumn.fixed(SKILL_TRACK_WIDTH)); + row.addParagraph(p -> p + .name("SkillLabel") + .text(skill.name()) + .textStyle(style(ASIDE_SMALL_SIZE, ASIDE_DIM, + DocumentTextDecoration.DEFAULT))); + row.addSection("SkillMeterCell", cell -> + renderSkillMeter(cell, skill.level())); + }); + } + }); + }); + } + + /** The three layers of one meter, all on the track's axis. */ + private static void renderSkillMeter(SectionBuilder cell, OptionalDouble level) { + double clamped = Math.max(0.0, Math.min(1.0, level.orElse(0.0))); + double filled = SKILL_TRACK_WIDTH * clamped; + cell.addLayerStack(stack -> { + stack.name("SkillMeter"); + stack.layer(new LineBuilder() + .name("SkillTrack") + .horizontal(SKILL_TRACK_WIDTH) + .thickness(SKILL_TRACK_THICKNESS) + .color(TRACK_DIM) + .build(), LayerAlign.CENTER_LEFT, 0); + stack.layer(new LineBuilder() + .name("SkillTrackFilled") + .horizontal(filled) + .thickness(SKILL_TRACK_THICKNESS) + .color(WHITE) + .build(), LayerAlign.CENTER_LEFT, 1); + stack.position(new ShapeBuilder() + .name("SkillKnob") + .size(SKILL_KNOB_WIDTH, SKILL_KNOB_HEIGHT) + .cornerRadius(SKILL_KNOB_HEIGHT / 2.0) + .fillColor(WHITE) + .build(), + filled - SKILL_KNOB_WIDTH / 2.0, 0, LayerAlign.CENTER_LEFT, 2); + }); + } + + /** + * The languages — a label beside five dots, filled to the rating. + * + *

      The rating is a fraction like every other level in the model, and the + * design shows it in fifths, so it is rounded to the nearest dot.

      + */ + private static void renderLanguages(SectionBuilder column, SkillsSection languages) { + List entries = flatten(languages); + column.addSection("Languages", block -> { + block.spacing(0).padding(ASIDE_CONTENT_PAD) + .margin(new DocumentInsets(px(52.7), 0, 0, 0)); + MidnightNavyWidgets.asideHeading(block, languages.title(), ASIDE_INNER_WIDTH, px(26.6)); + block.addSection("LanguageRows", rows -> { + rows.spacing(LANGUAGE_ROW_GAP); + for (CvSkill language : entries) { + int filled = (int) Math.round( + Math.max(0.0, Math.min(1.0, language.level().orElse(0.0))) + * LANGUAGE_DOTS); + MidnightNavyWidgets.layeredRow(rows, "LanguageRow", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.weight(1), + DocumentRowColumn.fixed(LANGUAGE_GROUP_WIDTH)); + row.addParagraph(p -> p + .name("LanguageLabel") + .text(language.name()) + .textStyle(style(ASIDE_TEXT_SIZE, WHITE, + DocumentTextDecoration.DEFAULT))); + row.addParagraph(p -> { + p.name("LanguageDots"); + for (int i = 0; i < LANGUAGE_DOTS; i++) { + if (i > 0) { + p.inlineText(dotGap(), asideText()); + } + if (i < filled) { + p.dot(LANGUAGE_DOT_DIAMETER, WHITE); + } else { + p.dot(LANGUAGE_DOT_DIAMETER, NAVY, + DocumentStroke.of(WHITE, LANGUAGE_DOT_STROKE)); + } + } + }); + }); + } + }); + }); + } + + /** + * The gap between two dots, as spaces at the row's own type size. There is + * no inline advance control, so the count comes from the measured pitch and + * the face's space advance rather than from the eye. + */ + private static String dotGap() { + int spaces = (int) Math.max(1, Math.round( + (LANGUAGE_DOT_PITCH - LANGUAGE_DOT_DIAMETER) + / (FACE_SPACE_ADVANCE * ASIDE_TEXT_SIZE))); + return " ".repeat(spaces); + } + + /** Every rated entry of every group, in the order they were given. */ + private static List flatten(SkillsSection section) { + List entries = new ArrayList<>(); + for (SkillGroup group : section.groups()) { + entries.addAll(group.entries()); + } + return entries; + } + + /** The mark for the network a link points at, or the globe. */ + private static String markFor(Link link) { + return link.url().toLowerCase(Locale.ROOT).contains("linkedin.") + ? MidnightNavyIcons.LINKEDIN + : MidnightNavyIcons.WEBSITE; + } + + /** A printed number as something a reader can dial, or {@code null}. */ + private static String telUri(String phone) { + String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + /** One contact row: its mark, what it reads, and where it points. */ + private record Channel(String token, String label, String href) { + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyIcons.java new file mode 100644 index 000000000..379df0a6c --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyIcons.java @@ -0,0 +1,99 @@ +package com.demcha.compose.document.templates.cv.presets; + +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.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Midnight Navy CV marks: the five contact glyphs and + * the three the achievement discs draw. + * + *

      They ship inside the templates artifact under + * {@code templates/cv/midnight-navy/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 sheet that repeats a mark reads each file once per JVM.

      + * + *

      {@link #ENTRY_TOKENS} is the vocabulary a document names through + * {@code CvEntry.icon()}. It is scoped to this preset — another preset packages + * its own set — and each mark carries the width it is drawn at, because an + * icon's box is not its glyph and the sizes are per-kind.

      + */ +final class MidnightNavyIcons { + + static final String PHONE = "phone"; + static final String EMAIL = "email"; + static final String LOCATION = "location"; + static final String LINKEDIN = "linkedin"; + static final String WEBSITE = "website"; + + private static final String ICON_ROOT = "/templates/cv/midnight-navy/icons/"; + + /** The width each mark is drawn at, as the design sizes it. */ + private static final Map SIZES = Map.of( + PHONE, 8.5, + EMAIL, 8.5, + LOCATION, 8.5, + LINKEDIN, 8.5, + WEBSITE, 8.5, + "trophy", 15.0, + "growth", 15.0, + "award", 15.0); + + /** The marks a document may name on an achievement. */ + static final Set ENTRY_TOKENS = Set.of("trophy", "growth", "award"); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private MidnightNavyIcons() { + } + + /** + * The width one mark is drawn at. + * + * @param token one of the packaged tokens + * @return the drawn width in points + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error + */ + static double size(String token) { + Double size = SIZES.get(token); + if (size == null) { + throw new IllegalArgumentException( + "Unknown midnight navy CV icon token '" + token + + "'. This preset packages " + ENTRY_TOKENS.stream().sorted().toList() + + " for an achievement mark."); + } + return size; + } + + /** + * Reads one mark. + * + * @param token one of the packaged tokens + * @return the parsed icon + */ + static SvgIcon icon(String token) { + size(token); + return CACHE.computeIfAbsent(token, MidnightNavyIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = MidnightNavyIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing midnight navy CV icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read midnight navy CV icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java new file mode 100644 index 000000000..48cbf0284 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java @@ -0,0 +1,296 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.EllipseBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +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.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ACHIEVEMENT_DISC_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ACHIEVEMENT_DISC_GAP; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ACHIEVEMENT_ICON_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ACHIEVEMENT_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.BODY; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.CERT_DIVIDER_GAP; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.CERT_DIVIDER_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.CERT_MARKER_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.HAIRLINE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.JOB_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MAIN_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MAIN_PAD_RIGHT; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MAIN_PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MAIN_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MAIN_SECTION_GAP; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MARKER_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MUTED; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.NAVY; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.RAIL_GUTTER; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.RAIL_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.leading; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.px; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.style; + +/** + * The paper column: the summary, the roles held on a rail, the achievement + * discs and the certifications. + * + *

      Why the rail is an accent and not a timeline

      + * + *

      A timeline builder has no slot for a date on the far side of its rail and + * discards a negative gutter, so its marker cannot centre on the rail. Here the + * rail is instead the left accent of the entry section, so its height derives + * from the entry it belongs to, and the gap between entries is bottom padding + * inside the border — which is what makes consecutive rails meet + * rather than leaving a break between roles.

      + * + *

      An accent is drawn centred on the edge it belongs to, so the section's + * left edge already is the rail's axis: a marker reaches it by walking + * back across the gutter and half its own width, and nothing else. Correcting + * by half the rail's thickness on top of that lands every marker a rail width + * to the right of the line it is meant to sit on.

      + */ +final class MidnightNavyMain { + + private MidnightNavyMain() { + } + + /** + * Draws the column. + * + * @param column the main cell + * @param summary the opening prose, or {@code null} + * @param experience the roles held, or {@code null} + * @param achievements the discs, or {@code null} + * @param certifications the closing columns, or {@code null} + */ + static void compose(SectionBuilder column, ParagraphSection summary, EntriesSection experience, + EntriesSection achievements, EntriesSection certifications) { + column.spacing(MAIN_SECTION_GAP) + .padding(new DocumentInsets(MAIN_PAD_TOP, MAIN_PAD_RIGHT, 0, MAIN_PAD_LEFT)); + if (SectionLookup.hasContent(summary)) { + renderSummary(column, summary); + } + if (SectionLookup.hasContent(experience)) { + renderExperience(column, experience); + } + if (SectionLookup.hasContent(achievements)) { + renderAchievements(column, achievements); + } + if (SectionLookup.hasContent(certifications)) { + renderCertifications(column, certifications); + } + } + + private static void renderSummary(SectionBuilder column, ParagraphSection summary) { + column.addSection("Summary", block -> { + block.spacing(0); + MidnightNavyWidgets.mainHeading(block, summary.title(), MAIN_RULE_THICKNESS, px(22.4)); + block.addParagraph(p -> p + .name("SummaryText") + .text(summary.body()) + .textStyle(style(BODY_SIZE, BODY, DocumentTextDecoration.DEFAULT)) + .lineSpacing(leading(22.7, BODY_SIZE))); + }); + } + + private static void renderExperience(SectionBuilder column, EntriesSection experience) { + column.addSection("Experience", block -> { + block.spacing(0); + MidnightNavyWidgets.mainHeading(block, experience.title(), MAIN_RULE_THICKNESS, px(23)); + List entries = experience.entries(); + for (int i = 0; i < entries.size(); i++) { + renderExperienceEntry(block, entries.get(i), i == entries.size() - 1); + } + }); + } + + private static void renderExperienceEntry(SectionBuilder block, CvEntry entry, boolean last) { + block.addSection("ExperienceEntry", section -> { + section.spacing(0) + .keepTogether() + .accentLeft(HAIRLINE, RAIL_WIDTH) + .padding(new DocumentInsets(0, 0, last ? 0 : ENTRY_GAP, RAIL_GUTTER)); + + // The header row and the marker share one layer stack: the row needs + // the wrapper anyway, and the marker then rides the row it is level + // with rather than being placed against the section. + SectionBuilder header = new SectionBuilder(); + header.name("EntryHeaderHolder"); + header.addRow("EntryHeader", row -> { + row.spacing(0).weights(0.62, 0.38); + row.addParagraph(p -> { + p.name("EntryTitle"); + p.textStyle(style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)); + if (entry.link().isBlank()) { + p.inlineText(entry.title(), + style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)); + } else { + p.inlineText(entry.title(), + style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD), + new DocumentLinkOptions(entry.link())); + } + }); + row.addParagraph(p -> p + .name("EntryPeriod") + .text(entry.date()) + .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.DEFAULT)) + .align(TextAlign.RIGHT)); + }); + section.addLayerStack(stack -> { + stack.name("EntryHeaderLayer"); + stack.layer(header.build(), LayerAlign.TOP_LEFT, 0); + // The accent is drawn centred on the section's left edge, so + // that edge already IS the rail's axis and the marker only has + // to walk back across the gutter and half its own width. + // Adding half the rail's thickness on top corrects in the + // direction the marker is already offset and lands it a rail + // width to the right of the line it is meant to sit on. + stack.position(new EllipseBuilder() + .name("EntryMarker") + .circle(MARKER_DIAMETER) + .fillColor(NAVY) + .build(), + -RAIL_GUTTER - MARKER_DIAMETER / 2.0, + px(3.1), LayerAlign.TOP_LEFT, 1); + }); + + MidnightNavyWidgets.layeredRow(section, "EntrySubheader", row -> { + row.spacing(0).weights(0.62, 0.38); + row.addParagraph(p -> p + .name("EntryCompany") + .text(entry.subtitle()) + .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.ITALIC)) + .margin(new DocumentInsets(px(5.4), 0, 0, 0))); + row.addParagraph(p -> p + .name("EntryLocation") + .text(entry.place()) + .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.DEFAULT)) + .align(TextAlign.RIGHT) + .margin(new DocumentInsets(px(5.4), 0, 0, 0))); + }); + + section.addList(list -> list + .name("EntryBullets") + .marker("·") + .items(MidnightNavyWidgets.lines(entry.body())) + .textStyle(style(BODY_SIZE, BODY, DocumentTextDecoration.DEFAULT)) + .lineSpacing(leading(23.7, BODY_SIZE)) + .itemSpacing(leading(23.7, BODY_SIZE)) + .margin(new DocumentInsets(px(24.8), 0, 0, 0))); + }); + } + + /** + * The achievements — one disc and its line per card, side by side. + * + *

      A card shows the entry's title beside its mark: the design gives a card + * one line of text and no heading over it, so the title is that line.

      + */ + private static void renderAchievements(SectionBuilder column, EntriesSection achievements) { + column.addSection("Achievements", block -> { + block.spacing(0).keepTogether(); + MidnightNavyWidgets.mainHeading(block, achievements.title(), + ACHIEVEMENT_RULE_THICKNESS, px(32.4)); + MidnightNavyWidgets.layeredRow(block, "AchievementCards", row -> { + row.spacing(0).evenWeights().verticalAlign(RowVerticalAlign.TOP); + for (CvEntry card : achievements.entries()) { + row.addSection("AchievementCard", cell -> renderAchievementCard(cell, card)); + } + }); + }); + } + + private static void renderAchievementCard(SectionBuilder cell, CvEntry card) { + MidnightNavyWidgets.layeredRow(cell, "AchievementCardRow", row -> { + row.spacing(ACHIEVEMENT_DISC_GAP) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(ACHIEVEMENT_DISC_DIAMETER), + DocumentRowColumn.weight(1)); + row.addSection("AchievementDiscCell", disc -> disc + .addContainer(container -> container + .name("AchievementDisc") + .circle(ACHIEVEMENT_DISC_DIAMETER) + .fillColor(NAVY) + .center(MidnightNavyIcons.icon(card.icon()) + .node(ACHIEVEMENT_ICON_SIZE)))); + row.addParagraph(p -> p + .name("AchievementText") + .text(card.title()) + .textStyle(style(BODY_SIZE, BODY, DocumentTextDecoration.DEFAULT)) + .lineSpacing(leading(22, BODY_SIZE))); + }); + } + + /** + * The certifications — even columns divided by a hairline. + * + *

      The divider is an accent on the column, so its height derives from the + * entry beside it rather than from a line whose length would have to be + * computed.

      + */ + private static void renderCertifications(SectionBuilder column, EntriesSection certifications) { + column.addSection("Certifications", block -> { + block.spacing(0).margin(new DocumentInsets(px(-13), 0, 0, 0)); + MidnightNavyWidgets.mainHeading(block, certifications.title(), + MAIN_RULE_THICKNESS, px(28.4)); + List entries = certifications.entries(); + MidnightNavyWidgets.layeredRow(block, "CertificationColumns", row -> { + row.spacing(0).evenWeights().verticalAlign(RowVerticalAlign.TOP); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + boolean first = i == 0; + row.addSection("CertificationColumn", cell -> { + if (!first) { + cell.accentLeft(HAIRLINE, CERT_DIVIDER_WIDTH) + .padding(new DocumentInsets(0, 0, 0, CERT_DIVIDER_GAP)); + } + renderCertificationEntry(cell, entry); + }); + } + }); + }); + } + + private static void renderCertificationEntry(SectionBuilder cell, CvEntry entry) { + cell.spacing(px(5.7)); + cell.addParagraph(p -> { + p.name("CertificationTitle"); + p.dot(CERT_MARKER_DIAMETER, INK); + if (entry.link().isBlank()) { + p.inlineText(" " + entry.title(), + style(BODY_SIZE, INK, DocumentTextDecoration.BOLD)); + } else { + p.inlineText(" " + entry.title(), + style(BODY_SIZE, INK, DocumentTextDecoration.BOLD), + new DocumentLinkOptions(entry.link())); + } + }); + if (!entry.subtitle().isBlank()) { + cell.addParagraph(p -> p + .name("CertificationIssuer") + .text(entry.subtitle()) + .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.ITALIC)) + .margin(new DocumentInsets(0, 0, 0, px(22)))); + } + if (!entry.date().isBlank()) { + cell.addParagraph(p -> p + .name("CertificationYear") + .text(entry.date()) + .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.DEFAULT)) + .margin(new DocumentInsets(0, 0, 0, px(22)))); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyStyles.java new file mode 100644 index 000000000..4d6e25d0f --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyStyles.java @@ -0,0 +1,180 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.font.FontName; + +/** + * Design tokens for {@link MidnightNavy} — the palette, the type scale and the + * geometry every part of the sheet measures against. + * + *

      The design was drawn at 1054 px across an A4 page, so {@link #PX} converts + * every length below from that raster to points: re-measuring the design at a + * different resolution changes this one number rather than each constant that + * came off it.

      + * + *

      Sizes are pinned by cap height rather than chosen, so a heading is as tall + * as the design's heading whatever the face's own metrics say, and + * {@link #leading} turns a measured line pitch into the additive value the + * engine's {@code lineSpacing} actually is.

      + */ +final class MidnightNavyStyles { + + private MidnightNavyStyles() { + } + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + static final double PAGE_WIDTH = PAGE.width(); + + /** The design's raster is 1054 px wide; every length below came off it. */ + static final double PX = PAGE_WIDTH / 1054.0; + + /** Measured: the navy plate runs from the left paper edge to x=327 inclusive. */ + static final double ASIDE_RATIO = 328.0 / 1054.0; + static final double MAIN_RATIO = 1.0 - ASIDE_RATIO; + + static final double ASIDE_WIDTH = PAGE_WIDTH * ASIDE_RATIO; + static final double MAIN_CELL_WIDTH = PAGE_WIDTH - ASIDE_WIDTH; + + static final double ASIDE_PAD_LEFT = px(52); + static final double ASIDE_PAD_RIGHT = px(43); + static final double ASIDE_PAD_TOP = px(54); + static final double ASIDE_INNER_WIDTH = ASIDE_WIDTH - ASIDE_PAD_LEFT - ASIDE_PAD_RIGHT; + + /** + * The inset every aside content block carries; the identity block does not. + * + *

      The monogram is centred on the plate's full width rather than on the + * text column, so the horizontal inset belongs to the four blocks under it + * instead of to the column.

      + */ + static final DocumentInsets ASIDE_CONTENT_PAD = + new DocumentInsets(0, ASIDE_PAD_RIGHT, 0, ASIDE_PAD_LEFT); + + static final double MAIN_PAD_LEFT = px(53); + static final double MAIN_PAD_RIGHT = px(74); + static final double MAIN_PAD_TOP = px(71.3); + static final double MAIN_INNER_WIDTH = MAIN_CELL_WIDTH - MAIN_PAD_LEFT - MAIN_PAD_RIGHT; + + static final DocumentColor NAVY = DocumentColor.rgb(19, 34, 50); + static final DocumentColor INK = DocumentColor.rgb(16, 27, 44); + static final DocumentColor BODY = DocumentColor.rgb(51, 51, 51); + static final DocumentColor MUTED = DocumentColor.rgb(63, 74, 90); + static final DocumentColor RULE = DocumentColor.rgb(180, 186, 194); + static final DocumentColor HAIRLINE = DocumentColor.rgb(226, 227, 228); + static final DocumentColor ASIDE_RULE = DocumentColor.rgb(107, 116, 128); + static final DocumentColor ASIDE_DIVIDER = DocumentColor.rgb(195, 200, 206); + static final DocumentColor ASIDE_DIM = DocumentColor.rgb(213, 219, 225); + static final DocumentColor TRACK_DIM = DocumentColor.rgb(159, 166, 174); + static final DocumentColor WHITE = DocumentColor.WHITE; + + static final FontName FACE = FontName.BARLOW; + + /** The face's cap band as a fraction of its type size, measured off a render. */ + private static final double FACE_CAP_RATIO = 0.700; + + /** + * The gap between two language dots is spaces at the row's own type size, + * so the count is derived from the measured pitch and the face's space + * advance (0.200 em, read off the TTF) rather than tuned by eye. Setting the + * space at a larger size instead would buy the same gap and a line box three + * times too tall. + */ + static final double FACE_SPACE_ADVANCE = 0.200; + + static final double NAME_SIZE = sizeForCap(23); + static final double ROLE_SIZE = sizeForCap(10); + static final double MONOGRAM_SIZE = sizeForCap(31); + static final double ASIDE_HEAD_SIZE = sizeForCap(13); + static final double ASIDE_TEXT_SIZE = sizeForCap(10); + static final double ASIDE_SMALL_SIZE = sizeForCap(9); + static final double EDUCATION_TITLE_SIZE = sizeForCap(11); + static final double EDUCATION_YEARS_SIZE = sizeForCap(11); + static final double MAIN_HEAD_SIZE = sizeForCap(14); + static final double BODY_SIZE = sizeForCap(11); + static final double JOB_TITLE_SIZE = sizeForCap(12); + + static final double MONOGRAM_DIAMETER = px(135); + static final double MONOGRAM_STROKE = px(2.8); + + /** Measured: the first initial's cap top at 82 px, the second's at 129. */ + static final double MONOGRAM_PITCH = px(47); + static final double NAME_DIVIDER_WIDTH = px(201); + + static final double ASIDE_RULE_THICKNESS = px(2); + + /** The contact rule is measurably shorter than the other three. */ + static final double CONTACT_RULE_WIDTH = px(100); + + static final double CONTACT_ICON_SIZE = 8.5; + static final double CONTACT_ROW_GAP = px(13.5); + + static final double SKILL_TRACK_WIDTH = px(107); + static final double SKILL_TRACK_THICKNESS = px(2); + static final double SKILL_KNOB_WIDTH = px(9); + static final double SKILL_KNOB_HEIGHT = px(6); + static final double SKILL_ROW_GAP = px(11.3); + + static final int LANGUAGE_DOTS = 5; + static final double LANGUAGE_DOT_DIAMETER = px(10); + static final double LANGUAGE_DOT_PITCH = px(21.5); + static final double LANGUAGE_GROUP_WIDTH = + LANGUAGE_DOT_DIAMETER + (LANGUAGE_DOTS - 1) * LANGUAGE_DOT_PITCH; + static final double LANGUAGE_ROW_GAP = px(19.9); + static final double LANGUAGE_DOT_STROKE = px(1.4); + + static final double MAIN_RULE_THICKNESS = px(2); + static final double ACHIEVEMENT_RULE_THICKNESS = px(1); + static final double MAIN_SECTION_GAP = px(63); + + static final double RAIL_WIDTH = px(2.5); + static final double RAIL_GUTTER = px(27); + static final double MARKER_DIAMETER = px(9); + static final double ENTRY_GAP = px(46); + + static final double ACHIEVEMENT_DISC_DIAMETER = px(54); + static final double ACHIEVEMENT_ICON_SIZE = px(28); + static final double ACHIEVEMENT_DISC_GAP = px(13); + + static final double CERT_DIVIDER_WIDTH = px(1.2); + static final double CERT_DIVIDER_GAP = px(24); + static final double CERT_MARKER_DIAMETER = px(6); + + /** The type size whose cap band is {@code capPixels} of the design tall. */ + static double sizeForCap(double capPixels) { + return px(capPixels) / FACE_CAP_RATIO; + } + + /** + * A measured line pitch, as the additive value {@code lineSpacing} actually + * is: {@code lineSpacing} adds points between lines and the line + * box is 1.2 times the type size, so a measured leading converts as + * {@code leading - 1.2 * size} — never as a ratio. It is deliberately not + * clamped: this design sets three blocks tighter than their own line box, + * and clamping would silently open them back up. + */ + static double leading(double measuredPixels, double size) { + return px(measuredPixels) - 1.2 * size; + } + + static double px(double designPixels) { + return designPixels * PX; + } + + static DocumentTextStyle style(double size, DocumentColor color, + DocumentTextDecoration decoration) { + return DocumentTextStyle.builder() + .fontName(FACE) + .size(size) + .color(color) + .decoration(decoration) + .build(); + } + + static DocumentTextStyle asideText() { + return style(ASIDE_TEXT_SIZE, WHITE, DocumentTextDecoration.DEFAULT); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyWidgets.java new file mode 100644 index 000000000..438f8034c --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyWidgets.java @@ -0,0 +1,159 @@ +package com.demcha.compose.document.templates.cv.presets; + +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.LayerAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_DIVIDER; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_HEAD_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_RULE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MAIN_HEAD_SIZE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.MAIN_INNER_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.WHITE; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.px; +import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.style; + +/** + * The pieces more than one part of the Midnight Navy sheet draws: the two kinds + * of heading, the wrapper every horizontal pair goes through, and the two text + * helpers the design's tracking needs. + */ +final class MidnightNavyWidgets { + + private MidnightNavyWidgets() { + } + + /** + * A row that survives inside a row cell. + * + *

      A row nested directly in a row cell is refused by the layout compiler, + * and both columns of this sheet are row cells — so every horizontal pair in + * the preset goes through here, wrapped in a single layer of a stack.

      + * + * @param parent the section to add the row to + * @param name the node name, for review and rollback + * @param spec describes the row + */ + static void layeredRow(SectionBuilder parent, String name, Consumer spec) { + SectionBuilder holder = new SectionBuilder(); + holder.name(name + "Holder"); + holder.addRow(name, spec); + DocumentNode node = holder.build(); + parent.addLayerStack(stack -> stack + .name(name + "Layer") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** + * An aside heading over its rule. + * + * @param block the block the heading opens + * @param label the heading + * @param ruleWidth the rule's length — the contact block's is shorter + * @param gapBelow the gap from the rule to the first line under it + */ + static void asideHeading(SectionBuilder block, String label, double ruleWidth, + double gapBelow) { + block.addParagraph(p -> p + .name("AsideHeading" + compact(label)) + .text(label) + .textStyle(style(ASIDE_HEAD_SIZE, WHITE, DocumentTextDecoration.BOLD))); + block.addLine(line -> line + .name("AsideRule" + compact(label)) + .horizontal(ruleWidth) + .thickness(ASIDE_RULE_THICKNESS) + .color(ASIDE_RULE) + .margin(new DocumentInsets(px(2), 0, gapBelow - px(2), 0))); + } + + /** + * A main-column heading over its full-width rule. + * + * @param block the block the heading opens + * @param label the heading + * @param ruleThickness the rule's weight — the achievements rule is finer + * @param gapBelow the gap from the rule to the first line under it + */ + static void mainHeading(SectionBuilder block, String label, double ruleThickness, + double gapBelow) { + block.addParagraph(p -> p + .name("MainHeading" + compact(label)) + .text(label) + .textStyle(style(MAIN_HEAD_SIZE, INK, DocumentTextDecoration.BOLD))); + block.addLine(line -> line + .name("MainRule" + compact(label)) + .horizontal(MAIN_INNER_WIDTH) + .thickness(ruleThickness) + .color(RULE) + .margin(new DocumentInsets(px(7.3), 0, gapBelow, 0))); + } + + /** The divider under the name plate, in the aside's own dim rule colour. */ + static void nameDivider(SectionBuilder column, double width, double leftInset, double gapAbove) { + column.addLine(line -> line + .name("NameDivider") + .horizontal(width) + .thickness(px(1)) + .color(ASIDE_DIVIDER) + .margin(new DocumentInsets(gapAbove, 0, 0, leftInset))); + } + + /** + * The role line's wide tracking, as spaces between characters. + * + *

      There is no letter-spacing API, so the tracking is real spaces and its + * width depends on the face's space advance: change the family and the + * tracking has to be re-checked.

      + * + * @param text the line to track + * @return the same line with a space between every pair of characters and + * three between words + */ + static String tracked(String text) { + if (text == null || text.isEmpty()) { + return ""; + } + StringBuilder out = new StringBuilder(text.length() * 2); + boolean startOfWord = true; + for (int i = 0; i < text.length(); i++) { + char ch = text.charAt(i); + if (ch == ' ') { + out.append(" "); + startOfWord = true; + continue; + } + if (!startOfWord) { + out.append(' '); + } + out.append(ch); + startOfWord = false; + } + return out.toString(); + } + + /** A label reduced to what can go in a node name. */ + static String compact(String text) { + return text == null ? "" : text.replaceAll("[^A-Za-z0-9]", ""); + } + + /** A body split into the lines it was written as, blanks dropped. */ + static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split(String.valueOf((char) 10))) { + if (!line.isBlank()) { + out.add(line.strip()); + } + } + return out; + } +} diff --git a/templates/src/main/resources/templates/cv/midnight-navy/icons/award.svg b/templates/src/main/resources/templates/cv/midnight-navy/icons/award.svg new file mode 100644 index 000000000..972d65546 --- /dev/null +++ b/templates/src/main/resources/templates/cv/midnight-navy/icons/award.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/midnight-navy/icons/email.svg b/templates/src/main/resources/templates/cv/midnight-navy/icons/email.svg new file mode 100644 index 000000000..3ceb64bd2 --- /dev/null +++ b/templates/src/main/resources/templates/cv/midnight-navy/icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/midnight-navy/icons/growth.svg b/templates/src/main/resources/templates/cv/midnight-navy/icons/growth.svg new file mode 100644 index 000000000..0bcd4785c --- /dev/null +++ b/templates/src/main/resources/templates/cv/midnight-navy/icons/growth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/midnight-navy/icons/linkedin.svg b/templates/src/main/resources/templates/cv/midnight-navy/icons/linkedin.svg new file mode 100644 index 000000000..c8b287ae2 --- /dev/null +++ b/templates/src/main/resources/templates/cv/midnight-navy/icons/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/midnight-navy/icons/location.svg b/templates/src/main/resources/templates/cv/midnight-navy/icons/location.svg new file mode 100644 index 000000000..165457ab2 --- /dev/null +++ b/templates/src/main/resources/templates/cv/midnight-navy/icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/midnight-navy/icons/phone.svg b/templates/src/main/resources/templates/cv/midnight-navy/icons/phone.svg new file mode 100644 index 000000000..ab75561c9 --- /dev/null +++ b/templates/src/main/resources/templates/cv/midnight-navy/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/midnight-navy/icons/trophy.svg b/templates/src/main/resources/templates/cv/midnight-navy/icons/trophy.svg new file mode 100644 index 000000000..580a8c963 --- /dev/null +++ b/templates/src/main/resources/templates/cv/midnight-navy/icons/trophy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/midnight-navy/icons/website.svg b/templates/src/main/resources/templates/cv/midnight-navy/icons/website.svg new file mode 100644 index 000000000..797b7444a --- /dev/null +++ b/templates/src/main/resources/templates/cv/midnight-navy/icons/website.svg @@ -0,0 +1 @@ + \ No newline at end of file From c6577f7b263ababcadfc360309f16af05cfc793d Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 07:11:16 +0100 Subject: [PATCH 26/85] feat(templates): give an invoice line the mark its design draws (#636) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A design that opens each service line with a glyph — a card for a billing line, a shield for fraud screening, a globe for a hosted service — had nowhere to say which one, and deriving it from the description would have been guesswork dressed as a feature. InvoiceServiceLines.Line now carries icon, a plain string blank when absent, exactly as CvEntry.icon already works on the CV side: the token means something only to the preset that packages it, and a preset that draws no marks ignores it. It costs the layout nothing where nothing is set. Both constructors that predate it — the one before the per-line tax rate and the one before the mark — are kept explicitly, so existing calls compile and link unchanged and every line built through them still carries no mark. --- CHANGELOG.md | 11 +++++++ .../StructuredInvoiceCompatibilityTest.java | 30 ++++++++++++++++++- .../data/invoice/InvoiceServiceLines.java | 30 +++++++++++++++++-- 3 files changed, 68 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f8562a383..693f4b206 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **An invoice line carries a mark.** A design that opens each service line with a + glyph — a card for a billing line, a shield for fraud screening, a globe for a hosted + service — had nowhere to say which one, and deriving it from the description would + have been guesswork dressed as a feature. `InvoiceServiceLines.Line` now carries + `icon`, a plain string blank when absent, exactly as `CvEntry.icon` already works on + the CV side: the token means something only to the preset that packages it, and a + preset that draws no marks ignores it. It costs the layout nothing where nothing is + set. Both constructors that predate it — the one before the per-line tax rate and the + one before the mark — are kept explicitly, so existing calls compile and link + unchanged and every line built through them still carries no mark. + - **`CvSkill` carries the level as the document words it.** A rated skill could say how much — a number in `[0, 1]` a preset draws as dots or a meter — or it could say it in words by not being a skill at all and living in a `RowsSection` instead. It could not diff --git a/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java index ce58edb86..5283b491f 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java @@ -59,14 +59,42 @@ void theColumnsConstructorThatPredatesTheVatColumnLeavesItBlank() { } @Test - void theLineConstructorThatPredatesTheVatRateLeavesItBlank() { + void theLineConstructorThatPredatesTheVatRateLeavesItAndTheMarkBlank() { InvoiceServiceLines.Line line = new InvoiceServiceLines.Line( 1, "Workshop", "A day of it", "May", BigDecimal.ONE, "day", new BigDecimal("1200"), new BigDecimal("1200")); assertThat(line.vatRate()).isEmpty(); + assertThat(line.icon()).isEmpty(); assertThat(line.amount()).isEqualByComparingTo("1200"); } + @Test + void theLineConstructorThatPredatesTheMarkLeavesItBlank() { + // The tax rate arrived before the mark did, so a caller written against + // that version keeps compiling and keeps drawing no mark. + InvoiceServiceLines.Line line = new InvoiceServiceLines.Line( + 1, "Workshop", "A day of it", "May", BigDecimal.ONE, "day", + new BigDecimal("1200"), new BigDecimal("1200"), "20%"); + assertThat(line.vatRate()).isEqualTo("20%"); + assertThat(line.icon()).isEmpty(); + } + + @Test + void aLineCarriesTheMarkItIsGiven() { + InvoiceServiceLines.Line line = new InvoiceServiceLines.Line( + 1, "Workshop", "A day of it", "May", BigDecimal.ONE, "day", + new BigDecimal("1200"), new BigDecimal("1200"), "20%", "card"); + assertThat(line.icon()).isEqualTo("card"); + } + + @Test + void aNullMarkNormalizesToBlankLikeTheFieldsBesideIt() { + InvoiceServiceLines.Line line = new InvoiceServiceLines.Line( + 1, "Workshop", "A day of it", "May", BigDecimal.ONE, "day", + new BigDecimal("1200"), new BigDecimal("1200"), "20%", null); + assertThat(line.icon()).isEmpty(); + } + @Test void theDataConstructorThatPredatesShipToLeavesItEmptyRatherThanNull() { // The record normalizes an absent block to its empty form, so preset diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java index 65f3c7983..0a2326bbe 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java @@ -100,6 +100,10 @@ public Columns(String index, String description, String servicePeriod, * the design shows it (e.g. {@code "20%"}) rather * than as a number, because the wording differs by * jurisdiction; blank when absent + * @param icon the mark a preset draws for this line; the token + * means something only to the preset that packages + * it, and a preset that draws no marks ignores it. + * Blank when absent */ public record Line( int lineNumber, @@ -110,7 +114,8 @@ public record Line( String unit, BigDecimal unitPrice, BigDecimal amount, - String vatRate) { + String vatRate, + String icon) { /** * Normalizes optional fields. @@ -124,6 +129,27 @@ public record Line( unitPrice = Objects.requireNonNullElse(unitPrice, BigDecimal.ZERO); amount = Objects.requireNonNullElse(amount, BigDecimal.ZERO); vatRate = Objects.requireNonNullElse(vatRate, ""); + icon = Objects.requireNonNullElse(icon, ""); + } + + /** + * Backward-compatible constructor for callers that predate the mark. + * + * @param lineNumber the printed line number + * @param title the service title + * @param description the description under the title + * @param servicePeriod the period this line covers + * @param quantity how much was delivered + * @param unit what the quantity counts + * @param unitPrice the price per unit + * @param amount the line total + * @param vatRate the tax rate printed for this line + */ + public Line(int lineNumber, String title, String description, String servicePeriod, + BigDecimal quantity, String unit, BigDecimal unitPrice, + BigDecimal amount, String vatRate) { + this(lineNumber, title, description, servicePeriod, quantity, unit, + unitPrice, amount, vatRate, ""); } /** @@ -143,7 +169,7 @@ public Line(int lineNumber, String title, String description, String servicePeri BigDecimal quantity, String unit, BigDecimal unitPrice, BigDecimal amount) { this(lineNumber, title, description, servicePeriod, quantity, unit, - unitPrice, amount, ""); + unitPrice, amount, "", ""); } } } From 13e9473e2014b8c1d726c6af1b67a1719a551238 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 08:09:48 +0100 Subject: [PATCH 27/85] feat(templates): add the Payments paginating invoice preset (#638) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(templates): add the Payments paginating invoice preset A lavender-and-navy invoice: a diagonal band crossing the masthead, a half-split issuer and metadata header, two addressed parties on discs, a marked service-line table, a settlement row pairing bank details against the totals, a note block and a two-cell document footer. Ships as invoice.presets.PaymentsInvoice on the existing StructuredInvoiceData model. It is the first preset in the family built to flow: the table's header repeats on every page it reaches, a continuation page reserves a deeper bottom margin than page one, and every page carries its number. The table is one column, not five. The design shows an outer box and a rule between rows with no interior verticals, which is exactly what a single-column table draws; the five columns are a row inside each cell. The other construction would leave every continuation page ending in an empty bordered strip, because a section's box fills its page fragment rather than hugging its rows. The lockup beside the title is the caller's — a logo drawn to the design's measured height, or the brand's name as a wordmark. Figures are written with the locale stated rather than inherited, because both the grouping of a number and the symbol for a currency code change with it. Guarded by a 15-case smoke test, an exact layout snapshot and a pixel-parity gate. * fix(examples): re-render the Payments preview from this branch's own build The committed preview was rendered against jars in the local repository that did not match this branch, so the catalogue's drift test failed on CI while passing locally — and the eleven files that appeared to drift locally were the same staleness seen from the other side. Built from source, the local drift list narrows to exactly the file CI named. Re-rendered, both lists are empty. --- CHANGELOG.md | 29 + .../readme/examples/invoice-payments-v2.pdf | Bin 0 -> 32646 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../support/PaymentsInvoiceSampleData.java | 156 + .../examples/support/ShowcaseMetadata.java | 1 + .../invoice/v2/PaymentsInvoiceV2Example.java | 54 + .../presets/PaymentsInvoiceFixtures.java | 154 + .../PaymentsInvoiceLayoutSnapshotTest.java | 33 + .../presets/PaymentsInvoiceSmokeTest.java | 268 + .../PaymentsInvoiceVisualParityTest.java | 41 + .../invoice/payments_invoice_layout.json | 5357 +++++++++++++++++ .../payments_invoice-page-0.png | Bin 0 -> 100748 bytes .../invoice/presets/PaymentsClosing.java | 289 + .../invoice/presets/PaymentsIcons.java | 94 + .../invoice/presets/PaymentsInvoice.java | 167 + .../invoice/presets/PaymentsLines.java | 237 + .../invoice/presets/PaymentsMasthead.java | 319 + .../invoice/presets/PaymentsParties.java | 127 + .../invoice/presets/PaymentsSettlement.java | 273 + .../invoice/presets/PaymentsStyles.java | 456 ++ .../invoice/presets/PaymentsText.java | 62 + .../invoice/presets/PaymentsWidgets.java | 129 + .../templates/invoice/payments/icons/bank.svg | 1 + .../invoice/payments/icons/bill-to.svg | 1 + .../invoice/payments/icons/calendar.svg | 1 + .../invoice/payments/icons/card-settings.svg | 1 + .../templates/invoice/payments/icons/card.svg | 1 + .../invoice/payments/icons/document.svg | 1 + .../invoice/payments/icons/globe.svg | 1 + .../invoice/payments/icons/headset.svg | 1 + .../invoice/payments/icons/mobile.svg | 1 + .../invoice/payments/icons/shield.svg | 1 + .../invoice/payments/icons/ship-to.svg | 1 + .../invoice/payments/icons/support.svg | 1 + 34 files changed, 8260 insertions(+) create mode 100644 assets/readme/examples/invoice-payments-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/PaymentsInvoiceSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/invoice/v2/PaymentsInvoiceV2Example.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/payments_invoice_layout.json create mode 100644 qa/src/test/resources/visual-baselines/invoice-v2-layered/payments_invoice-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsLines.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsParties.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsSettlement.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsText.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsWidgets.java create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/bank.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/bill-to.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/calendar.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/card-settings.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/card.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/document.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/globe.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/headset.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/mobile.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/shield.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/ship-to.svg create mode 100644 templates/src/main/resources/templates/invoice/payments/icons/support.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 693f4b206..984bb6b37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -108,6 +108,35 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A paginating invoice preset: `PaymentsInvoice`.** A lavender-and-navy sheet with a + diagonal band crossing the masthead, a half-split issuer and metadata header, two + addressed parties on discs, a marked service-line table, a settlement row pairing bank + details against the totals, a note block and a two-cell document footer. Ships as + `invoice.presets.PaymentsInvoice` on the existing `StructuredInvoiceData` model, + porting the rendered layout of a published standalone template. It is the first preset + in the family built to **flow**: the design shows six service lines and a real billing + month brings dozens, so the table's header repeats on every page it reaches, a + continuation page reserves a deeper bottom margin than page one, and every page + carries its number — a financial record that runs over has to make a missing page + detectable. The table is one column, not five: the design shows an outer box and a + rule between rows with no interior verticals, which is exactly what a single-column + table draws, and the five columns are a row inside each cell. Building it the other + way round would leave every continuation page ending in an empty bordered strip, + because a section's box fills its page fragment rather than hugging its rows. The + lockup beside the title is the caller's: the design's mark occupies a measured + 136 × 55.3 px box, a document that brings a logo has it drawn to that height, and one + that brings only a name has the name set as a wordmark — the templates artifact + carries no mark of its own. Figures are written with the locale stated rather than + inherited, because both the grouping of a number and the symbol for a currency code + change with it and a preset that let the JVM decide would render a different sheet on + a different machine. Guarded by a smoke test (including the unknown-mark data error, a + line with no mark, the wordmark fallback, the currency named once and carried, the + uppercased due line, a trunk prefix printed but not dialled, the support contacts as + annotations, a missing ship-to and a missing note block, an empty document, and a + thirty-line invoice that runs on, repeats its column names and numbers its pages), an + exact layout snapshot and a pixel-parity gate; the examples showcase gains + `invoice-payments-v2`. + - **A navy-plate CV preset: `MidnightNavy`.** A one-page sheet on a full-height navy plate: an outlined monogram over a two-weight name and a tracked role line, then contact, education, metered skills and dotted languages down the plate, beside a diff --git a/assets/readme/examples/invoice-payments-v2.pdf b/assets/readme/examples/invoice-payments-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ef189d1d948f938ab5e0476f90c314d47062cad8 GIT binary patch literal 32646 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 in lockstep with the qa module's {@code PaymentsInvoiceFixtures} — the + * two modules cannot share a source file, so a content change here belongs + * there too.

      + */ +public final class PaymentsInvoiceSampleData { + + private PaymentsInvoiceSampleData() { + } + + /** + * The sample invoice — seven metadata rows, two addressed parties, six + * marked service lines, seven payment fields, two summed rows and a + * two-line note. + * + * @return the document the example renders + */ + public static StructuredInvoiceData sample() { + return new StructuredInvoiceData( + brand(), supplier(), masthead(), billTo(), shipTo(), + new InvoiceSummaryBlock("", "", ""), + serviceLines(), totals(), payment(), notes(), "GBP"); + } + + /** No logo: the wordmark is what a document without one falls back to. */ + private static InvoiceBrand brand() { + return new InvoiceBrand(null, "Meridian", "", "", "", ""); + } + + private static InvoiceContactBlock supplier() { + return new InvoiceContactBlock( + "Meridian Payments Ltd.", + List.of("1 Harbour Exchange", "Canary Wharf", "London E14 9GE", + "United Kingdom"), + "", "", "", + "", "Company No. 09048900", + "", "VAT No. GB 123 4567 89"); + } + + private static InvoiceMasthead masthead() { + List entries = new ArrayList<>(); + entries.add(new InvoiceMasthead.Entry("Invoice Number", "INV-2025-05-10472", false)); + entries.add(new InvoiceMasthead.Entry("Invoice Date", "10 May 2025", false)); + entries.add(new InvoiceMasthead.Entry("Billing Period", "1 - 30 April 2025", false)); + entries.add(new InvoiceMasthead.Entry("Account ID", "acct_4Q8xTb2mKp", false)); + entries.add(new InvoiceMasthead.Entry("Payment Terms", "Net 30", false)); + entries.add(new InvoiceMasthead.Entry("Due Date", "14 June 2025", false)); + entries.add(new InvoiceMasthead.Entry("Status", "UNPAID", true)); + return new InvoiceMasthead("INVOICE", entries); + } + + /** The subline is where a billed party's registration goes on this sheet. */ + private static InvoiceRecipient billTo() { + return new InvoiceRecipient("BILL TO", "Northwind Ltd.", + "VAT No. GB 987 6543 21", + List.of("Attention: Finance Team", "42 Bridgewater Street", + "Manchester M15 4QT", "United Kingdom"), + "", ""); + } + + private static InvoiceRecipient shipTo() { + return new InvoiceRecipient("SHIP TO", "Northwind Ltd.", "", + List.of("Operations Centre", "7 Kingsway Park", + "Leeds LS12 6BD", "United Kingdom"), + "", ""); + } + + private static InvoiceServiceLines serviceLines() { + InvoiceServiceLines.Columns columns = new InvoiceServiceLines.Columns( + "", "DESCRIPTION", "", "QUANTITY", "UNIT PRICE", "AMOUNT", "VAT"); + List lines = new ArrayList<>(); + lines.add(line(1, "Subscription Billing", + "Subscription management and recurring billing", + "1", "250.00", "250.00", "20%", "card")); + lines.add(line(2, "Payment Processing", + "Online card payments processing (volume tier)", + "1", "1,180.00", "1,180.00", "20%", "card-settings")); + lines.add(line(3, "Fraud Screening", + "Advanced fraud screening and rules", + "1", "320.00", "320.00", "20%", "shield")); + lines.add(line(4, "Company Formation", + "Incorporation and compliance filings", + "1", "180.00", "180.00", "20%", "globe")); + lines.add(line(5, "In-Person Terminals", + "Terminal rental and firmware updates", + "4", "39.00", "156.00", "20%", "mobile")); + lines.add(line(6, "Priority Support", + "Named engineer, one-hour response", + "1", "100.00", "100.00", "20%", "headset")); + return new InvoiceServiceLines(columns, lines); + } + + private static InvoiceServiceLines.Line line(int number, String title, String description, + String quantity, String unitPrice, + String amount, String vat, String icon) { + return new InvoiceServiceLines.Line(number, title, description, "", + decimal(quantity), "", decimal(unitPrice), decimal(amount), vat, icon); + } + + private static InvoiceTotalsBlock totals() { + List rows = new ArrayList<>(); + rows.add(new InvoiceTotalsBlock.Row("Subtotal (excl. VAT)", decimal("2,186.00"))); + rows.add(new InvoiceTotalsBlock.Row("VAT at 20%", decimal("437.20"))); + return new InvoiceTotalsBlock(rows, "TOTAL DUE", decimal("2,623.20")); + } + + private static InvoicePaymentBlock payment() { + List fields = new ArrayList<>(); + fields.add(new InvoicePaymentBlock.Field("Bank Name", "Harbour Bank plc")); + fields.add(new InvoicePaymentBlock.Field("Account Name", "Meridian Payments Ltd.")); + fields.add(new InvoicePaymentBlock.Field("Sort Code", "40-02-50")); + fields.add(new InvoicePaymentBlock.Field("Account Number", "71295408")); + fields.add(new InvoicePaymentBlock.Field("IBAN", "GB29 HRBK 4002 5071 2954 08")); + fields.add(new InvoicePaymentBlock.Field("SWIFT / BIC", "HRBKGB2L")); + fields.add(new InvoicePaymentBlock.Field("Reference", "INV-2025-05-10472")); + return new InvoicePaymentBlock("PAYMENT DETAILS", fields, + "Please include the invoice number as payment reference.", + "Due by 14 June 2025", + "Payment due by 14 June 2025", + "", + "Questions? We're here to help."); + } + + private static InvoiceNotesBlock notes() { + return new InvoiceNotesBlock("NOTES", + List.of("Thank you for your business. This invoice covers services and " + + "fees for the period stated above.", + "Late payment may incur interest at the statutory rate."), + "support@meridianpayments.example", + "+44 (0) 20 3966 1900"); + } + + /** A printed figure back to a number: the grouping comes off. */ + private static BigDecimal decimal(String printed) { + return new BigDecimal(printed.replace(",", "")); + } +} 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 554b07dc5..98e18d416 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -99,6 +99,7 @@ record Entry(String title, String description, List tags, String codeUrl invoice("invoice-cinematic", "InvoiceCinematicFileExample", "Cinematic Invoice", "Layered ModernInvoice preset with theme-driven layout, advanced tables, and totals.", "invoice", "cinematic"); invoice("invoice-consulting-v2", "v2/ConsultingInvoiceV2Example", "Consulting Invoice", "The ConsultingInvoice preset on the structured invoice model — brand lockup with the caller's logo, labelled masthead metadata, priced service lines with service periods, a totals stack and bank payment fields.", "invoice"); invoice("invoice-luma-studio-v2", "v2/LumaStudioInvoiceV2Example", "Luma Studio Invoice", "The LumaStudioInvoice preset on the structured invoice model — a cream sidebar carrying the brand lockup and its ornament, a billed-to / shipped-to pair, priced service lines with a VAT column, and the notes and bank details above a sign-off band.", "invoice"); + invoice("invoice-payments-v2", "v2/PaymentsInvoiceV2Example", "Payments Invoice", "The PaymentsInvoice preset on the structured invoice model — a diagonal band crossing the masthead, a half-split issuer and metadata header, two addressed parties, marked service lines that repeat their header across pages, and a settlement row pairing bank details against the totals.", "invoice"); invoice("invoice-modern-v2", "v2/ModernInvoiceV2Example", "Modern Invoice", "The ModernInvoice preset composed straight from an InvoiceDocumentSpec — line items, totals and payment block driven by the BrandTheme rather than per-document styling.", "invoice"); invoice("invoice-classic-v2", "v2/ClassicInvoiceV2Example", "Classic Invoice", "The ClassicInvoice preset — letterhead header band, TOTAL DUE hero strip, BILL TO / FROM columns, and a dedicated Summary table after the line items.", "invoice"); diff --git a/examples/src/main/java/com/demcha/examples/templates/invoice/v2/PaymentsInvoiceV2Example.java b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/PaymentsInvoiceV2Example.java new file mode 100644 index 000000000..278ac8ad1 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/PaymentsInvoiceV2Example.java @@ -0,0 +1,54 @@ +package com.demcha.examples.templates.invoice; + +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.invoice.StructuredInvoiceData; +import com.demcha.compose.document.templates.invoice.presets.PaymentsInvoice; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.PaymentsInvoiceSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code invoice.v2} Payments preset against the design + * sample. + * + *

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

      + * + *

      The preset owns its page geometry and its pagination — the table's header + * repeats and a continuation page reserves a deeper bottom margin — so the + * session starts unconfigured. The sample brings no logo, so the lockup box + * beside the title is filled with the brand's name as a wordmark.

      + */ +public final class PaymentsInvoiceV2Example { + + private PaymentsInvoiceV2Example() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare("templates/invoice", + "invoice-payments-v2.pdf"); + StructuredInvoiceData data = PaymentsInvoiceSampleData.sample(); + DocumentTemplate template = PaymentsInvoice.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + template.compose(document, data); + 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/invoice/presets/PaymentsInvoiceFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceFixtures.java new file mode 100644 index 000000000..8ee074ca7 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceFixtures.java @@ -0,0 +1,154 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceSummaryBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * Shared fixture data for the {@link PaymentsInvoice} gates — the SAME document + * feeds the pixel parity test and the layout snapshot test, so a geometry shift + * the pixel budget absorbs still trips the exact snapshot, and vice versa. + */ +final class PaymentsInvoiceFixtures { + + private PaymentsInvoiceFixtures() { + } + + /** + * The canonical one-page invoice — seven metadata rows, two addressed + * parties, six marked service lines, seven payment fields, two summed rows + * and a two-line note. + * + * @return the document + */ + static StructuredInvoiceData canonicalInvoice() { + return new StructuredInvoiceData( + brand(), supplier(), masthead(), billTo(), shipTo(), + new InvoiceSummaryBlock("", "", ""), + serviceLines(), totals(), payment(), notes(), "GBP"); + } + + /** No logo: the wordmark is what a document without one falls back to. */ + static InvoiceBrand brand() { + return new InvoiceBrand(null, "Meridian", "", "", "", ""); + } + + static InvoiceContactBlock supplier() { + return new InvoiceContactBlock( + "Meridian Payments Ltd.", + List.of("1 Harbour Exchange", "Canary Wharf", "London E14 9GE", + "United Kingdom"), + "", "", "", + "", "Company No. 09048900", + "", "VAT No. GB 123 4567 89"); + } + + static InvoiceMasthead masthead() { + List entries = new ArrayList<>(); + entries.add(new InvoiceMasthead.Entry("Invoice Number", "INV-2025-05-10472", false)); + entries.add(new InvoiceMasthead.Entry("Invoice Date", "10 May 2025", false)); + entries.add(new InvoiceMasthead.Entry("Billing Period", "1 - 30 April 2025", false)); + entries.add(new InvoiceMasthead.Entry("Account ID", "acct_4Q8xTb2mKp", false)); + entries.add(new InvoiceMasthead.Entry("Payment Terms", "Net 30", false)); + entries.add(new InvoiceMasthead.Entry("Due Date", "14 June 2025", false)); + entries.add(new InvoiceMasthead.Entry("Status", "UNPAID", true)); + return new InvoiceMasthead("INVOICE", entries); + } + + /** The subline is where a billed party's registration goes on this sheet. */ + static InvoiceRecipient billTo() { + return new InvoiceRecipient("BILL TO", "Northwind Ltd.", + "VAT No. GB 987 6543 21", + List.of("Attention: Finance Team", "42 Bridgewater Street", + "Manchester M15 4QT", "United Kingdom"), + "", ""); + } + + static InvoiceRecipient shipTo() { + return new InvoiceRecipient("SHIP TO", "Northwind Ltd.", "", + List.of("Operations Centre", "7 Kingsway Park", + "Leeds LS12 6BD", "United Kingdom"), + "", ""); + } + + static InvoiceServiceLines serviceLines() { + InvoiceServiceLines.Columns columns = new InvoiceServiceLines.Columns( + "", "DESCRIPTION", "", "QUANTITY", "UNIT PRICE", "AMOUNT", "VAT"); + List lines = new ArrayList<>(); + lines.add(line(1, "Subscription Billing", + "Subscription management and recurring billing", + "1", "250.00", "250.00", "20%", "card")); + lines.add(line(2, "Payment Processing", + "Online card payments processing (volume tier)", + "1", "1,180.00", "1,180.00", "20%", "card-settings")); + lines.add(line(3, "Fraud Screening", + "Advanced fraud screening and rules", + "1", "320.00", "320.00", "20%", "shield")); + lines.add(line(4, "Company Formation", + "Incorporation and compliance filings", + "1", "180.00", "180.00", "20%", "globe")); + lines.add(line(5, "In-Person Terminals", + "Terminal rental and firmware updates", + "4", "39.00", "156.00", "20%", "mobile")); + lines.add(line(6, "Priority Support", + "Named engineer, one-hour response", + "1", "100.00", "100.00", "20%", "headset")); + return new InvoiceServiceLines(columns, lines); + } + + private static InvoiceServiceLines.Line line(int number, String title, String description, + String quantity, String unitPrice, + String amount, String vat, String icon) { + return new InvoiceServiceLines.Line(number, title, description, "", + decimal(quantity), "", decimal(unitPrice), decimal(amount), vat, icon); + } + + static InvoiceTotalsBlock totals() { + List rows = new ArrayList<>(); + rows.add(new InvoiceTotalsBlock.Row("Subtotal (excl. VAT)", decimal("2,186.00"))); + rows.add(new InvoiceTotalsBlock.Row("VAT at 20%", decimal("437.20"))); + return new InvoiceTotalsBlock(rows, "TOTAL DUE", decimal("2,623.20")); + } + + static InvoicePaymentBlock payment() { + List fields = new ArrayList<>(); + fields.add(new InvoicePaymentBlock.Field("Bank Name", "Harbour Bank plc")); + fields.add(new InvoicePaymentBlock.Field("Account Name", "Meridian Payments Ltd.")); + fields.add(new InvoicePaymentBlock.Field("Sort Code", "40-02-50")); + fields.add(new InvoicePaymentBlock.Field("Account Number", "71295408")); + fields.add(new InvoicePaymentBlock.Field("IBAN", "GB29 HRBK 4002 5071 2954 08")); + fields.add(new InvoicePaymentBlock.Field("SWIFT / BIC", "HRBKGB2L")); + fields.add(new InvoicePaymentBlock.Field("Reference", "INV-2025-05-10472")); + return new InvoicePaymentBlock("PAYMENT DETAILS", fields, + "Please include the invoice number as payment reference.", + "Due by 14 June 2025", + "Payment due by 14 June 2025", + "", + "Questions? We're here to help."); + } + + static InvoiceNotesBlock notes() { + return new InvoiceNotesBlock("NOTES", + List.of("Thank you for your business. This invoice covers services and " + + "fees for the period stated above.", + "Late payment may incur interest at the statutory rate."), + "support@meridianpayments.example", + "+44 (0) 20 3966 1900"); + } + + /** A printed figure back to a number: the grouping comes off. */ + private static BigDecimal decimal(String printed) { + return new BigDecimal(printed.replace(",", "")); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceLayoutSnapshotTest.java new file mode 100644 index 000000000..b97d53c9b --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceLayoutSnapshotTest.java @@ -0,0 +1,33 @@ +package com.demcha.compose.document.templates.invoice.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 PaymentsInvoice} — freezes the resolved + * geometry of the canonical one-page invoice, which the pixel budget cannot + * see: a small column or spacing shift stays under the visual-diff budget but + * changes the snapshot. + * + *

      The preset owns its page geometry, so the session starts unconfigured.

      + * + *

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

      + */ +class PaymentsInvoiceLayoutSnapshotTest { + + @Test + void canonicalInvoiceMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + PaymentsInvoice.create().compose(session, + PaymentsInvoiceFixtures.canonicalInvoice()); + assertThat(session.layoutSnapshot().totalPages()).as("total pages").isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "payments_invoice_layout", "invoice"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceSmokeTest.java new file mode 100644 index 000000000..aed6a269d --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceSmokeTest.java @@ -0,0 +1,268 @@ +package com.demcha.compose.document.templates.invoice.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.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceSummaryBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link PaymentsInvoice} — proves the preset renders a + * {@link StructuredInvoiceData} end-to-end with its packaged marks, falls back + * from a logo to a wordmark, writes its figures with the locale stated rather + * than inherited, reports an unknown mark as a data error, repeats the table + * header when the lines run past a page, and carries the support contacts as + * link annotations, which move no pixel and no layout node so neither gate + * would notice them going missing. + */ +class PaymentsInvoiceSmokeTest { + + private static byte[] render(StructuredInvoiceData data) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + PaymentsInvoice.create().compose(session, data); + 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); + } + } + + private static int pagesOf(StructuredInvoiceData data) throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + PaymentsInvoice.create().compose(session, data); + return session.layoutSnapshot().totalPages(); + } + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + /** The canonical invoice with its service lines replaced. */ + private static StructuredInvoiceData withLines(InvoiceServiceLines lines) { + StructuredInvoiceData base = PaymentsInvoiceFixtures.canonicalInvoice(); + return new StructuredInvoiceData(base.brand(), base.supplier(), base.masthead(), + base.billTo(), base.shipTo(), base.summary(), lines, base.totals(), + base.payment(), base.notes(), base.currencyCode()); + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = PaymentsInvoice.create(); + assertThat(template.id()).isEqualTo(PaymentsInvoice.ID); + assertThat(template.displayName()).isEqualTo(PaymentsInvoice.DISPLAY_NAME); + } + + @Test + void rendersCanonicalInvoiceWithPackagedMarks() throws Exception { + render(PaymentsInvoiceFixtures.canonicalInvoice()); + } + + @Test + void canonicalRenderCarriesEveryBlocksText() throws Exception { + String text = textOf(render(PaymentsInvoiceFixtures.canonicalInvoice())); + assertThat(text) + .contains("INVOICE") + .contains("Meridian Payments Ltd.") + .contains("Company No. 09048900") + .contains("VAT No. GB 123 4567 89") + .contains("Invoice Number") + .contains("BILL TO") + .contains("SHIP TO") + .contains("Northwind Ltd.") + .contains("Subscription Billing") + .contains("PAYMENT DETAILS") + .contains("GB29 HRBK 4002 5071 2954 08") + .contains("TOTAL DUE") + .contains("NOTES") + .contains("Questions? We're here to help."); + } + + @Test + void aDocumentWithNoLogoFallsBackToItsName() throws Exception { + // The preset carries no mark of its own, so a document that brings only + // a name still gets a lockup rather than an empty box. + assertThat(textOf(render(PaymentsInvoiceFixtures.canonicalInvoice()))) + .contains("Meridian"); + } + + @Test + void figuresAreWrittenWithTheCurrencyStatedOnceAndCarried() throws Exception { + // The column names the currency; each figure carries its symbol. Both + // come from the ISO code rather than from a formatted string. + String text = textOf(render(PaymentsInvoiceFixtures.canonicalInvoice())); + assertThat(text).contains("(GBP)").contains("£2,623.20").contains("£1,180.00"); + } + + @Test + void theDueLineIsSetInCapitalsWhateverCaseTheDocumentUses() throws Exception { + // The design sets the footer's due line in capitals, so the preset is + // what uppercases it rather than the document having to. + assertThat(textOf(render(PaymentsInvoiceFixtures.canonicalInvoice()))) + .contains("PAYMENT DUE BY 14 JUNE 2025"); + } + + @Test + void theSupportContactsAreClickable() throws Exception { + List targets = linkTargets(render(PaymentsInvoiceFixtures.canonicalInvoice())); + assertThat(targets) + .contains("mailto:support@meridianpayments.example") + .contains("tel:+442039661900"); + } + + @Test + void aTrunkPrefixIsPrintedButNotDialled() throws Exception { + // "(0)" is for a domestic dialler; left in the digits it would make a + // number that reaches nobody. The fixture's own number carries one, so + // the sheet prints it and the annotation drops it. + byte[] pdfBytes = render(PaymentsInvoiceFixtures.canonicalInvoice()); + // The stripper's own spacing is not the design's, so the printed form + // is compared without it. + assertThat(textOf(pdfBytes).replaceAll("(?U)\\s", "")) + .contains("+44(0)2039661900"); + assertThat(linkTargets(pdfBytes)) + .contains("tel:+442039661900") + .doesNotContain("tel:+4402039661900"); + } + + @Test + void anUnknownMarkIsReportedAsADataError() { + InvoiceServiceLines wrong = new InvoiceServiceLines( + PaymentsInvoiceFixtures.serviceLines().columns(), + List.of(new InvoiceServiceLines.Line(1, "Telepathy", "Reading minds", "", + BigDecimal.ONE, "", BigDecimal.TEN, BigDecimal.TEN, "20%", "telescope"))); + + assertThatThrownBy(() -> render(withLines(wrong))) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("telescope") + .hasMessageContaining("shield"); + } + + @Test + void aLineWithoutAMarkIsDrawnWithoutOne() throws Exception { + InvoiceServiceLines unmarked = new InvoiceServiceLines( + PaymentsInvoiceFixtures.serviceLines().columns(), + List.of(new InvoiceServiceLines.Line(1, "Consulting", "A day of it", "", + BigDecimal.ONE, "", new BigDecimal("1200"), new BigDecimal("1200"), + "20%"))); + + assertThat(textOf(render(withLines(unmarked)))).contains("Consulting"); + } + + @Test + void aLongerInvoiceRunsOnAndRepeatsItsTableHeader() throws Exception { + // The table is the region that grows, so the sheet flows rather than + // refusing — and a continuation page has to say what its columns are. + List many = new ArrayList<>(); + for (int index = 1; index <= 30; index++) { + many.add(new InvoiceServiceLines.Line(index, "Service " + index, + "A line of description for it", "", + BigDecimal.ONE, "", new BigDecimal("120"), new BigDecimal("120"), + "20%", "card")); + } + StructuredInvoiceData longer = withLines(new InvoiceServiceLines( + PaymentsInvoiceFixtures.serviceLines().columns(), many)); + + assertThat(pagesOf(longer)).isGreaterThan(1); + byte[] pdfBytes = render(longer); + assertThat(textOf(pdfBytes)).contains("Service 30"); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + PDFTextStripper stripper = new PDFTextStripper(); + stripper.setStartPage(2); + stripper.setEndPage(2); + assertThat(stripper.getText(document)) + .as("the second page names its columns") + .contains("DESCRIPTION") + .contains("UNIT PRICE"); + } + } + + @Test + void everyPageCarriesItsNumber() throws Exception { + List many = new ArrayList<>(); + for (int index = 1; index <= 30; index++) { + many.add(new InvoiceServiceLines.Line(index, "Service " + index, "", "", + BigDecimal.ONE, "", new BigDecimal("120"), new BigDecimal("120"), + "20%", "card")); + } + String text = textOf(render(withLines(new InvoiceServiceLines( + PaymentsInvoiceFixtures.serviceLines().columns(), many)))); + assertThat(text).contains("Page 1 of").contains("Page 2 of"); + } + + @Test + void anInvoiceWithNoShipToDrawsOneParty() throws Exception { + StructuredInvoiceData base = PaymentsInvoiceFixtures.canonicalInvoice(); + StructuredInvoiceData single = new StructuredInvoiceData(base.brand(), base.supplier(), + base.masthead(), base.billTo(), + new InvoiceRecipient("", "", "", List.of(), "", ""), + base.summary(), base.serviceLines(), base.totals(), base.payment(), + base.notes(), base.currencyCode()); + + String text = textOf(render(single)); + assertThat(text).contains("BILL TO").doesNotContain("SHIP TO"); + } + + @Test + void anInvoiceWithNoNotesDropsTheBlockRatherThanLeavingItsDisc() throws Exception { + StructuredInvoiceData base = PaymentsInvoiceFixtures.canonicalInvoice(); + StructuredInvoiceData bare = new StructuredInvoiceData(base.brand(), base.supplier(), + base.masthead(), base.billTo(), base.shipTo(), base.summary(), + base.serviceLines(), base.totals(), base.payment(), + new InvoiceNotesBlock("NOTES", List.of(), "ops@example.test", ""), + base.currencyCode()); + + String text = textOf(render(bare)); + assertThat(text).doesNotContain("Late payment may incur interest"); + assertThat(linkTargets(render(bare))).contains("mailto:ops@example.test"); + } + + @Test + void anEmptyDocumentStillRenders() throws Exception { + // Every block absent: the preset draws its furniture and nothing else, + // rather than failing on the first missing field. + render(new StructuredInvoiceData(new InvoiceBrand(null, "", "", ""), null, null, + null, null, new InvoiceSummaryBlock("", "", ""), + new InvoiceServiceLines(null, List.of()), null, + new InvoicePaymentBlock("", List.of(), "", "", "", "", ""), + new InvoiceNotesBlock("", List.of(), "", ""), "")); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceVisualParityTest.java new file mode 100644 index 000000000..9b6046383 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoiceVisualParityTest.java @@ -0,0 +1,41 @@ +package com.demcha.compose.document.templates.invoice.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 PaymentsInvoice} — the canonical + * one-page invoice against a checked-in baseline. + * + *

      Re-blessing baselines — after a deliberate visual change, + * re-run with {@code -Dgraphcompose.visual.approve=true} and commit the updated + * PNG with the change.

      + */ +class PaymentsInvoiceVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "invoice-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()) { + PaymentsInvoice.create().compose(document, + PaymentsInvoiceFixtures.canonicalInvoice()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("payments_invoice", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/payments_invoice_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/payments_invoice_layout.json new file mode 100644 index 000000000..ffcebc4f9 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/payments_invoice_layout.json @@ -0,0 +1,5357 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 537.159, + "innerHeight" : 808.035, + "margin" : { + "top" : 15.799, + "right" : 29.341, + "bottom" : 18.056, + "left" : 28.776 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "PaymentsInvoice[0]", + "entityName" : "PaymentsInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 28.776, + "computedY" : 34.229, + "placementX" : 28.776, + "placementY" : 34.229, + "placementWidth" : 537.159, + "placementHeight" : 791.862, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.159, + "contentHeight" : 791.862, + "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" : "PaymentsInvoice[0]/MastheadStack[0]", + "entityName" : "MastheadStack", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 28.776, + "computedY" : 622.964, + "placementX" : 28.776, + "placementY" : 622.964, + "placementWidth" : 537.159, + "placementHeight" : 203.127, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.159, + "contentHeight" : 203.127, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderBand[0]", + "entityName" : "HeaderBand", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 217.459, + "computedY" : 638.763, + "placementX" : 217.459, + "placementY" : 638.763, + "placementWidth" : 96.26, + "placementHeight" : 203.127, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.26, + "contentHeight" : 203.127, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderBand[0]/HeaderBandLayers[0]", + "entityName" : "HeaderBandLayers", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderBand[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 217.459, + "computedY" : 638.763, + "placementX" : 217.459, + "placementY" : 638.763, + "placementWidth" : 96.26, + "placementHeight" : 203.127, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.26, + "contentHeight" : 203.127, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderBand[0]/HeaderBandLayers[0]/BandLavender[0]", + "entityName" : "BandLavender", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderBand[0]/HeaderBandLayers[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 217.459, + "computedY" : 638.763, + "placementX" : 217.459, + "placementY" : 638.763, + "placementWidth" : 96.26, + "placementHeight" : 203.127, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.26, + "contentHeight" : 203.127, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderBand[0]/HeaderBandLayers[0]/BandNavy[1]", + "entityName" : "BandNavy", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderBand[0]/HeaderBandLayers[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 217.459, + "computedY" : 638.763, + "placementX" : 217.459, + "placementY" : 638.763, + "placementWidth" : 96.26, + "placementHeight" : 203.127, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.26, + "contentHeight" : 203.127, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/AccentBarHolder[1]", + "entityName" : "AccentBarHolder", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 16.363, + "computedY" : 651.176, + "placementX" : 16.363, + "placementY" : 651.176, + "placementWidth" : 1.128, + "placementHeight" : 174.915, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 174.915, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/AccentBarHolder[1]/HeaderAccentBar[0]", + "entityName" : "HeaderAccentBar", + "entityKind" : "LineNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/AccentBarHolder[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 16.363, + "computedY" : 651.176, + "placementX" : 16.363, + "placementY" : 651.176, + "placementWidth" : 1.128, + "placementHeight" : 174.915, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.128, + "contentHeight" : 174.915, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]", + "entityName" : "HeaderContent", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 28.776, + "computedY" : 646.402, + "placementX" : 28.776, + "placementY" : 646.402, + "placementWidth" : 537.159, + "placementHeight" : 179.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.159, + "contentHeight" : 179.689, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 28.776, + "computedY" : 770.962, + "placementX" : 28.776, + "placementY" : 770.962, + "placementWidth" : 537.159, + "placementHeight" : 44.973, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.159, + "contentHeight" : 44.973, + "margin" : { + "top" : 10.156, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/Masthead[0]/BrandLockup[0]", + "entityName" : "BrandLockup", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/Masthead[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 28.776, + "computedY" : 789.713, + "placementX" : 28.776, + "placementY" : 789.713, + "placementWidth" : 94.178, + "placementHeight" : 26.222, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 94.178, + "contentHeight" : 26.222, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 6.771 + } + }, { + "path" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/Masthead[0]/BrandLockup[0]/BrandWordmark[0]", + "entityName" : "BrandWordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/Masthead[0]/BrandLockup[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 35.547, + "computedY" : 789.713, + "placementX" : 35.547, + "placementY" : 789.713, + "placementWidth" : 87.407, + "placementHeight" : 26.222, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.407, + "contentHeight" : 26.222, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/Masthead[0]/InvoiceTitle[1]", + "entityName" : "InvoiceTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/Masthead[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 360.551, + "computedY" : 770.962, + "placementX" : 360.551, + "placementY" : 770.962, + "placementWidth" : 149.064, + "placementHeight" : 43.575, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 149.064, + "contentHeight" : 43.575, + "margin" : { + "top" : 1.397, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]", + "entityName" : "HeaderSplit", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 28.776, + "computedY" : 646.402, + "placementX" : 28.776, + "placementY" : 646.402, + "placementWidth" : 537.159, + "placementHeight" : 119.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.159, + "contentHeight" : 119.2, + "margin" : { + "top" : 5.36, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]", + "entityName" : "IssuerBlock", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 28.776, + "computedY" : 664.414, + "placementX" : 28.776, + "placementY" : 664.414, + "placementWidth" : 127.249, + "placementHeight" : 101.188, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 127.249, + "contentHeight" : 101.188, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 6.207 + } + }, { + "path" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerName[0]", + "entityName" : "IssuerName", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 34.983, + "computedY" : 751.882, + "placementX" : 34.983, + "placementY" : 751.882, + "placementWidth" : 121.042, + "placementHeight" : 13.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 121.042, + "contentHeight" : 13.72, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerAddress[1]", + "entityName" : "IssuerAddress", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 34.983, + "computedY" : 700.333, + "placementX" : 34.983, + "placementY" : 700.333, + "placementWidth" : 78.364, + "placementHeight" : 46.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.364, + "contentHeight" : 46.576, + "margin" : { + "top" : 4.972, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerAddress[1]/IssuerAddressLine1[0]", + "entityName" : "IssuerAddressLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerAddress[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 34.983, + "computedY" : 736.439, + "placementX" : 34.983, + "placementY" : 736.439, + "placementWidth" : 78.364, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.364, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerAddress[1]/IssuerAddressLine2[1]", + "entityName" : "IssuerAddressLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerAddress[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 34.983, + "computedY" : 724.404, + "placementX" : 34.983, + "placementY" : 724.404, + "placementWidth" : 53.766, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 53.766, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerAddress[1]/IssuerAddressLine3[2]", + "entityName" : "IssuerAddressLine3", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerAddress[1]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 34.983, + "computedY" : 712.369, + "placementX" : 34.983, + "placementY" : 712.369, + "placementWidth" : 65.118, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 65.118, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerAddress[1]/IssuerAddressLine4[3]", + "entityName" : "IssuerAddressLine4", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerAddress[1]", + "childIndex" : 3, + "depth" : 7, + "layer" : 7, + "computedX" : 34.983, + "computedY" : 700.333, + "placementX" : 34.983, + "placementY" : 700.333, + "placementWidth" : 62.544, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.544, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerRegistration[2]", + "entityName" : "IssuerRegistration", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 34.983, + "computedY" : 664.414, + "placementX" : 34.983, + "placementY" : 664.414, + "placementWidth" : 99.383, + "placementHeight" : 22.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.383, + "contentHeight" : 22.32, + "margin" : { + "top" : 13.6, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerRegistration[2]/IssuerRegistrationLine1[0]", + "entityName" : "IssuerRegistrationLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerRegistration[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 34.983, + "computedY" : 676.263, + "placementX" : 34.983, + "placementY" : 676.263, + "placementWidth" : 95.186, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.186, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerRegistration[2]/IssuerRegistrationLine2[1]", + "entityName" : "IssuerRegistrationLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/IssuerBlock[0]/IssuerRegistration[2]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 34.983, + "computedY" : 664.414, + "placementX" : 34.983, + "placementY" : 664.414, + "placementWidth" : 99.383, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.383, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]", + "entityName" : "InvoiceMeta", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 360.551, + "computedY" : 646.402, + "placementX" : 360.551, + "placementY" : 646.402, + "placementWidth" : 205.384, + "placementHeight" : 119.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.384, + "contentHeight" : 119.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 6.207, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]", + "entityName" : "MetaGridLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 360.551, + "computedY" : 646.402, + "placementX" : 360.551, + "placementY" : 646.402, + "placementWidth" : 205.384, + "placementHeight" : 112.993, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.384, + "contentHeight" : 112.993, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]", + "entityName" : "MetaGridHolder", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 360.551, + "computedY" : 646.402, + "placementX" : 360.551, + "placementY" : 646.402, + "placementWidth" : 205.384, + "placementHeight" : 112.993, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.384, + "contentHeight" : 112.993, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]", + "entityName" : "MetaGrid", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 360.551, + "computedY" : 646.402, + "placementX" : 360.551, + "placementY" : 646.402, + "placementWidth" : 205.384, + "placementHeight" : 112.993, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.384, + "contentHeight" : 112.993, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]", + "entityName" : "MetaLabels", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 360.551, + "computedY" : 646.402, + "placementX" : 360.551, + "placementY" : 646.402, + "placementWidth" : 64.446, + "placementHeight" : 112.993, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.446, + "contentHeight" : 112.993, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]/MetaLabel1[0]", + "entityName" : "MetaLabel1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 360.551, + "computedY" : 748.541, + "placementX" : 360.551, + "placementY" : 748.541, + "placementWidth" : 64.446, + "placementHeight" : 10.854, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.446, + "contentHeight" : 10.854, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]/MetaLabel2[1]", + "entityName" : "MetaLabel2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 360.551, + "computedY" : 731.518, + "placementX" : 360.551, + "placementY" : 731.518, + "placementWidth" : 51.123, + "placementHeight" : 10.854, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.123, + "contentHeight" : 10.854, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]/MetaLabel3[2]", + "entityName" : "MetaLabel3", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]", + "childIndex" : 2, + "depth" : 10, + "layer" : 10, + "computedX" : 360.551, + "computedY" : 714.495, + "placementX" : 360.551, + "placementY" : 714.495, + "placementWidth" : 53.574, + "placementHeight" : 10.854, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 53.574, + "contentHeight" : 10.854, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]/MetaLabel4[3]", + "entityName" : "MetaLabel4", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]", + "childIndex" : 3, + "depth" : 10, + "layer" : 10, + "computedX" : 360.551, + "computedY" : 697.471, + "placementX" : 360.551, + "placementY" : 697.471, + "placementWidth" : 45.542, + "placementHeight" : 10.854, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.542, + "contentHeight" : 10.854, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]/MetaLabel5[4]", + "entityName" : "MetaLabel5", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]", + "childIndex" : 4, + "depth" : 10, + "layer" : 10, + "computedX" : 360.551, + "computedY" : 680.448, + "placementX" : 360.551, + "placementY" : 680.448, + "placementWidth" : 63.234, + "placementHeight" : 10.854, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.234, + "contentHeight" : 10.854, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]/MetaLabel6[5]", + "entityName" : "MetaLabel6", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]", + "childIndex" : 5, + "depth" : 10, + "layer" : 10, + "computedX" : 360.551, + "computedY" : 663.425, + "placementX" : 360.551, + "placementY" : 663.425, + "placementWidth" : 38.686, + "placementHeight" : 10.854, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.686, + "contentHeight" : 10.854, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]/MetaLabel7[6]", + "entityName" : "MetaLabel7", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaLabels[0]", + "childIndex" : 6, + "depth" : 10, + "layer" : 10, + "computedX" : 360.551, + "computedY" : 646.402, + "placementX" : 360.551, + "placementY" : 646.402, + "placementWidth" : 25.371, + "placementHeight" : 10.854, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.371, + "contentHeight" : 10.854, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]", + "entityName" : "MetaValues", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 440.955, + "computedY" : 646.402, + "placementX" : 440.955, + "placementY" : 646.402, + "placementWidth" : 88.384, + "placementHeight" : 112.993, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.384, + "contentHeight" : 112.993, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.26 + } + }, { + "path" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]/MetaValue1[0]", + "entityName" : "MetaValue1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 454.215, + "computedY" : 749.614, + "placementX" : 454.215, + "placementY" : 749.614, + "placementWidth" : 75.124, + "placementHeight" : 9.781, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.124, + "contentHeight" : 9.781, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]/MetaValue2[1]", + "entityName" : "MetaValue2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 454.215, + "computedY" : 732.591, + "placementX" : 454.215, + "placementY" : 732.591, + "placementWidth" : 48.366, + "placementHeight" : 9.781, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.366, + "contentHeight" : 9.781, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]/MetaValue3[2]", + "entityName" : "MetaValue3", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]", + "childIndex" : 2, + "depth" : 10, + "layer" : 10, + "computedX" : 454.215, + "computedY" : 715.568, + "placementX" : 454.215, + "placementY" : 715.568, + "placementWidth" : 61.407, + "placementHeight" : 9.781, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.407, + "contentHeight" : 9.781, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]/MetaValue4[3]", + "entityName" : "MetaValue4", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]", + "childIndex" : 3, + "depth" : 10, + "layer" : 10, + "computedX" : 454.215, + "computedY" : 698.545, + "placementX" : 454.215, + "placementY" : 698.545, + "placementWidth" : 69.345, + "placementHeight" : 9.781, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.345, + "contentHeight" : 9.781, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]/MetaValue5[4]", + "entityName" : "MetaValue5", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]", + "childIndex" : 4, + "depth" : 10, + "layer" : 10, + "computedX" : 454.215, + "computedY" : 681.522, + "placementX" : 454.215, + "placementY" : 681.522, + "placementWidth" : 24.998, + "placementHeight" : 9.781, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.998, + "contentHeight" : 9.781, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]/MetaValue6[5]", + "entityName" : "MetaValue6", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]", + "childIndex" : 5, + "depth" : 10, + "layer" : 10, + "computedX" : 454.215, + "computedY" : 664.498, + "placementX" : 454.215, + "placementY" : 664.498, + "placementWidth" : 49.385, + "placementHeight" : 9.781, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.385, + "contentHeight" : 9.781, + "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" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]/MetaValue7[6]", + "entityName" : "MetaValue7", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/MastheadStack[0]/HeaderContent[2]/HeaderSplit[1]/InvoiceMeta[1]/MetaGridLayer[0]/MetaGridHolder[0]/MetaGrid[0]/MetaValues[1]", + "childIndex" : 6, + "depth" : 10, + "layer" : 10, + "computedX" : 454.215, + "computedY" : 646.402, + "placementX" : 454.215, + "placementY" : 646.402, + "placementWidth" : 35.149, + "placementHeight" : 10.854, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.149, + "contentHeight" : 10.854, + "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" : "PaymentsInvoice[0]/HeaderRule[1]", + "entityName" : "HeaderRule", + "entityKind" : "LineNode", + "parentPath" : "PaymentsInvoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 16.927, + "computedY" : 638.198, + "placementX" : 16.927, + "placementY" : 638.198, + "placementWidth" : 557.471, + "placementHeight" : 1.128, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 557.471, + "contentHeight" : 1.128, + "margin" : { + "top" : -16.363, + "right" : -8.464, + "bottom" : 9.592, + "left" : -11.849 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/PartiesRow[2]", + "entityName" : "PartiesRow", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 28.776, + "computedY" : 522.368, + "placementX" : 28.776, + "placementY" : 522.368, + "placementWidth" : 537.159, + "placementHeight" : 106.238, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.159, + "contentHeight" : 106.238, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]", + "entityName" : "Party1", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.776, + "computedY" : 522.368, + "placementX" : 28.776, + "placementY" : 522.368, + "placementWidth" : 268.579, + "placementHeight" : 106.238, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 268.579, + "contentHeight" : 106.238, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 5.078 + } + }, { + "path" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]", + "entityName" : "PartyHeadLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 33.855, + "computedY" : 606.036, + "placementX" : 33.855, + "placementY" : 606.036, + "placementWidth" : 263.501, + "placementHeight" : 22.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 263.501, + "contentHeight" : 22.57, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]", + "entityName" : "PartyHeadHolder", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 33.855, + "computedY" : 606.036, + "placementX" : 33.855, + "placementY" : 606.036, + "placementWidth" : 263.501, + "placementHeight" : 22.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 263.501, + "contentHeight" : 22.57, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "entityName" : "PartyHead", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 33.855, + "computedY" : 606.036, + "placementX" : 33.855, + "placementY" : 606.036, + "placementWidth" : 263.501, + "placementHeight" : 22.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 263.501, + "contentHeight" : 22.57, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]", + "entityName" : "PartyDisc", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 33.855, + "computedY" : 606.036, + "placementX" : 33.855, + "placementY" : 606.036, + "placementWidth" : 22.57, + "placementHeight" : 22.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.57, + "contentHeight" : 22.57, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]", + "entityName" : "Discbill-to", + "entityKind" : "ShapeContainerNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 33.855, + "computedY" : 606.036, + "placementX" : 33.855, + "placementY" : 606.036, + "placementWidth" : 22.57, + "placementHeight" : 22.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.57, + "contentHeight" : 22.57, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]", + "entityName" : "Glyphbill-to", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 33.855, + "computedY" : 609.422, + "placementX" : 33.855, + "placementY" : 609.422, + "placementWidth" : 22.57, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.57, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 33.855, + "computedY" : 609.422, + "placementX" : 33.855, + "placementY" : 609.422, + "placementWidth" : 22.57, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.57, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]/Align[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 37.24, + "computedY" : 609.422, + "placementX" : 37.24, + "placementY" : 609.422, + "placementWidth" : 15.799, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.799, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 37.24, + "computedY" : 609.422, + "placementX" : 37.24, + "placementY" : 609.422, + "placementWidth" : 15.799, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.799, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyLabel[1]", + "entityName" : "PartyLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 66.581, + "computedY" : 613.055, + "placementX" : 66.581, + "placementY" : 613.055, + "placementWidth" : 31.052, + "placementHeight" : 10.217, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.052, + "contentHeight" : 10.217, + "margin" : { + "top" : 5.334, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]", + "entityName" : "PartyBody", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 33.855, + "computedY" : 522.368, + "placementX" : 33.855, + "placementY" : 522.368, + "placementWidth" : 132.109, + "placementHeight" : 83.668, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.109, + "contentHeight" : 83.668, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 32.726 + } + }, { + "path" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartyName[0]", + "entityName" : "PartyName", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 66.581, + "computedY" : 593.759, + "placementX" : 66.581, + "placementY" : 593.759, + "placementWidth" : 69.419, + "placementHeight" : 12.278, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.419, + "contentHeight" : 12.278, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartyAddress[1]", + "entityName" : "PartyAddress", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 66.581, + "computedY" : 544.374, + "placementX" : 66.581, + "placementY" : 544.374, + "placementWidth" : 94.506, + "placementHeight" : 45.51, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 94.506, + "contentHeight" : 45.51, + "margin" : { + "top" : 3.875, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartyAddress[1]/PartyAddressLine1[0]", + "entityName" : "PartyAddressLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartyAddress[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 66.581, + "computedY" : 579.413, + "placementX" : 66.581, + "placementY" : 579.413, + "placementWidth" : 94.506, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 94.506, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartyAddress[1]/PartyAddressLine2[1]", + "entityName" : "PartyAddressLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartyAddress[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 66.581, + "computedY" : 567.733, + "placementX" : 66.581, + "placementY" : 567.733, + "placementWidth" : 85.039, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.039, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartyAddress[1]/PartyAddressLine3[2]", + "entityName" : "PartyAddressLine3", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartyAddress[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 66.581, + "computedY" : 556.054, + "placementX" : 66.581, + "placementY" : 556.054, + "placementWidth" : 85.553, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.553, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartyAddress[1]/PartyAddressLine4[3]", + "entityName" : "PartyAddressLine4", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartyAddress[1]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 66.581, + "computedY" : 544.374, + "placementX" : 66.581, + "placementY" : 544.374, + "placementWidth" : 62.544, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.544, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]/PartySubline[2]", + "entityName" : "PartySubline", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party1[0]/PartyBody[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 66.581, + "computedY" : 522.368, + "placementX" : 66.581, + "placementY" : 522.368, + "placementWidth" : 99.383, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.383, + "contentHeight" : 10.471, + "margin" : { + "top" : 11.535, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]", + "entityName" : "Party2", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 297.356, + "computedY" : 544.374, + "placementX" : 297.356, + "placementY" : 544.374, + "placementWidth" : 268.579, + "placementHeight" : 84.232, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 268.579, + "contentHeight" : 84.232, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 22.57 + } + }, { + "path" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]", + "entityName" : "PartyHeadLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 319.925, + "computedY" : 606.036, + "placementX" : 319.925, + "placementY" : 606.036, + "placementWidth" : 246.01, + "placementHeight" : 22.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 246.01, + "contentHeight" : 22.57, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]", + "entityName" : "PartyHeadHolder", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 319.925, + "computedY" : 606.036, + "placementX" : 319.925, + "placementY" : 606.036, + "placementWidth" : 246.01, + "placementHeight" : 22.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 246.01, + "contentHeight" : 22.57, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "entityName" : "PartyHead", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 319.925, + "computedY" : 606.036, + "placementX" : 319.925, + "placementY" : 606.036, + "placementWidth" : 246.01, + "placementHeight" : 22.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 246.01, + "contentHeight" : 22.57, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]", + "entityName" : "PartyDisc", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 319.925, + "computedY" : 606.036, + "placementX" : 319.925, + "placementY" : 606.036, + "placementWidth" : 22.57, + "placementHeight" : 22.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.57, + "contentHeight" : 22.57, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]", + "entityName" : "Discship-to", + "entityKind" : "ShapeContainerNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 319.925, + "computedY" : 606.036, + "placementX" : 319.925, + "placementY" : 606.036, + "placementWidth" : 22.57, + "placementHeight" : 22.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.57, + "contentHeight" : 22.57, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]", + "entityName" : "Glyphship-to", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 319.925, + "computedY" : 609.422, + "placementX" : 319.925, + "placementY" : 609.422, + "placementWidth" : 22.57, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.57, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 319.925, + "computedY" : 609.422, + "placementX" : 319.925, + "placementY" : 609.422, + "placementWidth" : 22.57, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.57, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]/Align[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 323.311, + "computedY" : 609.422, + "placementX" : 323.311, + "placementY" : 609.422, + "placementWidth" : 15.799, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.799, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 323.311, + "computedY" : 609.422, + "placementX" : 323.311, + "placementY" : 609.422, + "placementWidth" : 15.799, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.799, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyLabel[1]", + "entityName" : "PartyLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 352.651, + "computedY" : 613.055, + "placementX" : 352.651, + "placementY" : 613.055, + "placementWidth" : 33.095, + "placementHeight" : 10.217, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.095, + "contentHeight" : 10.217, + "margin" : { + "top" : 5.334, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]", + "entityName" : "PartyBody", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 319.925, + "computedY" : 544.374, + "placementX" : 319.925, + "placementY" : 544.374, + "placementWidth" : 104.004, + "placementHeight" : 61.663, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.004, + "contentHeight" : 61.663, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 32.726 + } + }, { + "path" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]/PartyName[0]", + "entityName" : "PartyName", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 352.651, + "computedY" : 593.759, + "placementX" : 352.651, + "placementY" : 593.759, + "placementWidth" : 69.419, + "placementHeight" : 12.278, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.419, + "contentHeight" : 12.278, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]/PartyAddress[1]", + "entityName" : "PartyAddress", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 352.651, + "computedY" : 544.374, + "placementX" : 352.651, + "placementY" : 544.374, + "placementWidth" : 71.278, + "placementHeight" : 45.51, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.278, + "contentHeight" : 45.51, + "margin" : { + "top" : 3.875, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]/PartyAddress[1]/PartyAddressLine1[0]", + "entityName" : "PartyAddressLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]/PartyAddress[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 352.651, + "computedY" : 579.413, + "placementX" : 352.651, + "placementY" : 579.413, + "placementWidth" : 71.278, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.278, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]/PartyAddress[1]/PartyAddressLine2[1]", + "entityName" : "PartyAddressLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]/PartyAddress[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 352.651, + "computedY" : 567.733, + "placementX" : 352.651, + "placementY" : 567.733, + "placementWidth" : 63.478, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.478, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]/PartyAddress[1]/PartyAddressLine3[2]", + "entityName" : "PartyAddressLine3", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]/PartyAddress[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 352.651, + "computedY" : 556.054, + "placementX" : 352.651, + "placementY" : 556.054, + "placementWidth" : 63.521, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.521, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]/PartyAddress[1]/PartyAddressLine4[3]", + "entityName" : "PartyAddressLine4", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/PartiesRow[2]/Party2[1]/PartyBody[1]/PartyAddress[1]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 352.651, + "computedY" : 544.374, + "placementX" : 352.651, + "placementY" : 544.374, + "placementWidth" : 62.544, + "placementHeight" : 10.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.544, + "contentHeight" : 10.471, + "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" : "PaymentsInvoice[0]/LineItemsBox[3]", + "entityName" : "LineItemsBox", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 28.776, + "computedY" : 272.254, + "placementX" : 28.776, + "placementY" : 272.254, + "placementWidth" : 537.159, + "placementHeight" : 233.751, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.159, + "contentHeight" : 233.751, + "margin" : { + "top" : 16.363, + "right" : 0.0, + "bottom" : 10.156, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/LineItemsBox[3]/LineItems[0]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "PaymentsInvoice[0]/LineItemsBox[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.776, + "computedY" : 272.254, + "placementX" : 28.776, + "placementY" : 272.254, + "placementWidth" : 537.159, + "placementHeight" : 233.751, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.159, + "contentHeight" : 233.751, + "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" : "PaymentsInvoice[0]/SettlementRow[4]", + "entityName" : "SettlementRow", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 28.776, + "computedY" : 153.463, + "placementX" : 28.776, + "placementY" : 153.463, + "placementWidth" : 537.159, + "placementHeight" : 108.635, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.159, + "contentHeight" : 108.635, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]", + "entityName" : "PaymentDetails", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.776, + "computedY" : 153.82, + "placementX" : 28.776, + "placementY" : 153.82, + "placementWidth" : 248.267, + "placementHeight" : 108.278, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 248.267, + "contentHeight" : 108.278, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 2.821, + "right" : 11.285, + "bottom" : 7.617, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]", + "entityName" : "CardHeadLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 28.776, + "computedY" : 237.835, + "placementX" : 28.776, + "placementY" : 237.835, + "placementWidth" : 236.982, + "placementHeight" : 21.441, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.982, + "contentHeight" : 21.441, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]", + "entityName" : "CardHeadHolder", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 28.776, + "computedY" : 237.835, + "placementX" : 28.776, + "placementY" : 237.835, + "placementWidth" : 236.982, + "placementHeight" : 21.441, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.982, + "contentHeight" : 21.441, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]", + "entityName" : "CardHead", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 28.776, + "computedY" : 237.835, + "placementX" : 28.776, + "placementY" : 237.835, + "placementWidth" : 236.982, + "placementHeight" : 21.441, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.982, + "contentHeight" : 21.441, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]", + "entityName" : "CardDisc", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 28.776, + "computedY" : 237.835, + "placementX" : 28.776, + "placementY" : 237.835, + "placementWidth" : 28.494, + "placementHeight" : 21.441, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.494, + "contentHeight" : 21.441, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 7.053 + } + }, { + "path" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]/Discbank[0]", + "entityName" : "Discbank", + "entityKind" : "ShapeContainerNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 35.829, + "computedY" : 237.835, + "placementX" : 35.829, + "placementY" : 237.835, + "placementWidth" : 21.441, + "placementHeight" : 21.441, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.441, + "contentHeight" : 21.441, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]/Discbank[0]/Glyphbank[0]", + "entityName" : "Glyphbank", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]/Discbank[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 35.829, + "computedY" : 240.656, + "placementX" : 35.829, + "placementY" : 240.656, + "placementWidth" : 21.441, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.441, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]/Discbank[0]/Glyphbank[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]/Discbank[0]/Glyphbank[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 35.829, + "computedY" : 240.656, + "placementX" : 35.829, + "placementY" : 240.656, + "placementWidth" : 21.441, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.441, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]/Discbank[0]/Glyphbank[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]/Discbank[0]/Glyphbank[0]/Align[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 38.651, + "computedY" : 240.656, + "placementX" : 38.651, + "placementY" : 240.656, + "placementWidth" : 15.799, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.799, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]/Discbank[0]/Glyphbank[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardDisc[0]/Discbank[0]/Glyphbank[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 38.651, + "computedY" : 240.656, + "placementX" : 38.651, + "placementY" : 240.656, + "placementWidth" : 15.799, + "placementHeight" : 15.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.799, + "contentHeight" : 15.799, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardLabel[1]", + "entityName" : "CardLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 66.863, + "computedY" : 243.431, + "placementX" : 66.863, + "placementY" : 243.431, + "placementWidth" : 80.189, + "placementHeight" : 10.582, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.189, + "contentHeight" : 10.582, + "margin" : { + "top" : 5.263, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]", + "entityName" : "CardFieldsLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 28.776, + "computedY" : 161.437, + "placementX" : 28.776, + "placementY" : 161.437, + "placementWidth" : 236.982, + "placementHeight" : 76.398, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.982, + "contentHeight" : 76.398, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]", + "entityName" : "CardFieldsHolder", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 28.776, + "computedY" : 161.437, + "placementX" : 28.776, + "placementY" : 161.437, + "placementWidth" : 236.982, + "placementHeight" : 76.398, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.982, + "contentHeight" : 76.398, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]", + "entityName" : "CardFields", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 65.452, + "computedY" : 161.437, + "placementX" : 65.452, + "placementY" : 161.437, + "placementWidth" : 200.306, + "placementHeight" : 74.18, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 200.306, + "contentHeight" : 74.18, + "margin" : { + "top" : 2.218, + "right" : 0.0, + "bottom" : 0.0, + "left" : 36.676 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]", + "entityName" : "CardFieldLabels", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 65.452, + "computedY" : 161.437, + "placementX" : 65.452, + "placementY" : 161.437, + "placementWidth" : 56.174, + "placementHeight" : 74.18, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.174, + "contentHeight" : 74.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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]/CardFieldLabel1[0]", + "entityName" : "CardFieldLabel1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 65.452, + "computedY" : 226.776, + "placementX" : 65.452, + "placementY" : 226.776, + "placementWidth" : 38.014, + "placementHeight" : 8.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.014, + "contentHeight" : 8.841, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]/CardFieldLabel2[1]", + "entityName" : "CardFieldLabel2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 65.452, + "computedY" : 215.886, + "placementX" : 65.452, + "placementY" : 215.886, + "placementWidth" : 48.829, + "placementHeight" : 8.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.829, + "contentHeight" : 8.841, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]/CardFieldLabel3[2]", + "entityName" : "CardFieldLabel3", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 65.452, + "computedY" : 204.996, + "placementX" : 65.452, + "placementY" : 204.996, + "placementWidth" : 32.791, + "placementHeight" : 8.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.791, + "contentHeight" : 8.841, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]/CardFieldLabel4[3]", + "entityName" : "CardFieldLabel4", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]", + "childIndex" : 3, + "depth" : 8, + "layer" : 8, + "computedX" : 65.452, + "computedY" : 194.107, + "placementX" : 65.452, + "placementY" : 194.107, + "placementWidth" : 56.174, + "placementHeight" : 8.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.174, + "contentHeight" : 8.841, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]/CardFieldLabel5[4]", + "entityName" : "CardFieldLabel5", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]", + "childIndex" : 4, + "depth" : 8, + "layer" : 8, + "computedX" : 65.452, + "computedY" : 183.217, + "placementX" : 65.452, + "placementY" : 183.217, + "placementWidth" : 17.843, + "placementHeight" : 8.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.843, + "contentHeight" : 8.841, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]/CardFieldLabel6[5]", + "entityName" : "CardFieldLabel6", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]", + "childIndex" : 5, + "depth" : 8, + "layer" : 8, + "computedX" : 65.452, + "computedY" : 172.327, + "placementX" : 65.452, + "placementY" : 172.327, + "placementWidth" : 41.499, + "placementHeight" : 8.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.499, + "contentHeight" : 8.841, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]/CardFieldLabel7[6]", + "entityName" : "CardFieldLabel7", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldLabels[0]", + "childIndex" : 6, + "depth" : 8, + "layer" : 8, + "computedX" : 65.452, + "computedY" : 161.437, + "placementX" : 65.452, + "placementY" : 161.437, + "placementWidth" : 33.572, + "placementHeight" : 8.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.572, + "contentHeight" : 8.841, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]", + "entityName" : "CardFieldValues", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 144.446, + "computedY" : 161.461, + "placementX" : 144.446, + "placementY" : 161.461, + "placementWidth" : 107.558, + "placementHeight" : 74.156, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.558, + "contentHeight" : 74.156, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]/CardFieldValue1[0]", + "entityName" : "CardFieldValue1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 144.446, + "computedY" : 226.8, + "placementX" : 144.446, + "placementY" : 226.8, + "placementWidth" : 56.362, + "placementHeight" : 8.817, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.362, + "contentHeight" : 8.817, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]/CardFieldValue2[1]", + "entityName" : "CardFieldValue2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 144.446, + "computedY" : 215.91, + "placementX" : 144.446, + "placementY" : 215.91, + "placementWidth" : 76.501, + "placementHeight" : 8.817, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.501, + "contentHeight" : 8.817, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]/CardFieldValue3[2]", + "entityName" : "CardFieldValue3", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 144.446, + "computedY" : 205.02, + "placementX" : 144.446, + "placementY" : 205.02, + "placementWidth" : 31.035, + "placementHeight" : 8.817, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.035, + "contentHeight" : 8.817, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]/CardFieldValue4[3]", + "entityName" : "CardFieldValue4", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]", + "childIndex" : 3, + "depth" : 8, + "layer" : 8, + "computedX" : 144.446, + "computedY" : 194.13, + "placementX" : 144.446, + "placementY" : 194.13, + "placementWidth" : 34.092, + "placementHeight" : 8.817, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.092, + "contentHeight" : 8.817, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]/CardFieldValue5[4]", + "entityName" : "CardFieldValue5", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]", + "childIndex" : 4, + "depth" : 8, + "layer" : 8, + "computedX" : 144.446, + "computedY" : 183.24, + "placementX" : 144.446, + "placementY" : 183.24, + "placementWidth" : 107.558, + "placementHeight" : 8.817, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.558, + "contentHeight" : 8.817, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]/CardFieldValue6[5]", + "entityName" : "CardFieldValue6", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]", + "childIndex" : 5, + "depth" : 8, + "layer" : 8, + "computedX" : 144.446, + "computedY" : 172.351, + "placementX" : 144.446, + "placementY" : 172.351, + "placementWidth" : 38.008, + "placementHeight" : 8.817, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.008, + "contentHeight" : 8.817, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]/CardFieldValue7[6]", + "entityName" : "CardFieldValue7", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/PaymentDetails[0]/CardFieldsLayer[1]/CardFieldsHolder[0]/CardFields[0]/CardFieldValues[1]", + "childIndex" : 6, + "depth" : 8, + "layer" : 8, + "computedX" : 144.446, + "computedY" : 161.461, + "placementX" : 144.446, + "placementY" : 161.461, + "placementWidth" : 67.721, + "placementHeight" : 8.817, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.721, + "contentHeight" : 8.817, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]", + "entityName" : "Settlement", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 297.638, + "computedY" : 153.463, + "placementX" : 297.638, + "placementY" : 153.463, + "placementWidth" : 268.297, + "placementHeight" : 108.635, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 268.297, + "contentHeight" : 108.635, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 11.003 + } + }, { + "path" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]", + "entityName" : "Totals", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 308.641, + "computedY" : 219.153, + "placementX" : 308.641, + "placementY" : 219.153, + "placementWidth" : 257.294, + "placementHeight" : 32.745, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 257.294, + "contentHeight" : 32.745, + "margin" : { + "top" : 10.2, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 9.028, + "bottom" : 0.0, + "left" : 10.721 + } + }, { + "path" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]", + "entityName" : "TotalsGridLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 319.361, + "computedY" : 219.153, + "placementX" : 319.361, + "placementY" : 219.153, + "placementWidth" : 237.546, + "placementHeight" : 32.745, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.546, + "contentHeight" : 32.745, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]", + "entityName" : "TotalsGridHolder", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 319.361, + "computedY" : 219.153, + "placementX" : 319.361, + "placementY" : 219.153, + "placementWidth" : 237.546, + "placementHeight" : 32.745, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.546, + "contentHeight" : 32.745, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]", + "entityName" : "TotalsGrid", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 319.361, + "computedY" : 219.153, + "placementX" : 319.361, + "placementY" : 219.153, + "placementWidth" : 237.546, + "placementHeight" : 32.745, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.546, + "contentHeight" : 32.745, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]/TotalsLabels[0]", + "entityName" : "TotalsLabels", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 319.361, + "computedY" : 219.153, + "placementX" : 319.361, + "placementY" : 219.153, + "placementWidth" : 82.968, + "placementHeight" : 32.745, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 82.968, + "contentHeight" : 32.745, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]/TotalsLabels[0]/TotalsLabel1[0]", + "entityName" : "TotalsLabel1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]/TotalsLabels[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 319.361, + "computedY" : 240.594, + "placementX" : 319.361, + "placementY" : 240.594, + "placementWidth" : 82.968, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 82.968, + "contentHeight" : 11.304, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]/TotalsLabels[0]/TotalsLabel2[1]", + "entityName" : "TotalsLabel2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]/TotalsLabels[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 319.361, + "computedY" : 219.153, + "placementX" : 319.361, + "placementY" : 219.153, + "placementWidth" : 50.263, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.263, + "contentHeight" : 11.304, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]/TotalsValues[1]", + "entityName" : "TotalsValues", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 438.134, + "computedY" : 219.381, + "placementX" : 438.134, + "placementY" : 219.381, + "placementWidth" : 118.773, + "placementHeight" : 32.517, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.773, + "contentHeight" : 32.517, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]/TotalsValues[1]/TotalsValue1[0]", + "entityName" : "TotalsValue1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]/TotalsValues[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 438.134, + "computedY" : 240.822, + "placementX" : 438.134, + "placementY" : 240.822, + "placementWidth" : 118.773, + "placementHeight" : 11.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.773, + "contentHeight" : 11.075, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]/TotalsValues[1]/TotalsValue2[1]", + "entityName" : "TotalsValue2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/Totals[0]/TotalsGridLayer[0]/TotalsGridHolder[0]/TotalsGrid[0]/TotalsValues[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 438.134, + "computedY" : 219.381, + "placementX" : 438.134, + "placementY" : 219.381, + "placementWidth" : 118.773, + "placementHeight" : 11.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.773, + "contentHeight" : 11.075, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalsRule[1]", + "entityName" : "TotalsRule", + "entityKind" : "LineNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 308.641, + "computedY" : 207.93, + "placementX" : 308.641, + "placementY" : 207.93, + "placementWidth" : 256.73, + "placementHeight" : 1.128, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.73, + "contentHeight" : 1.128, + "margin" : { + "top" : 10.094, + "right" : 0.0, + "bottom" : 9.592, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]", + "entityName" : "TotalDuePanel", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 308.641, + "computedY" : 153.463, + "placementX" : 308.641, + "placementY" : 153.463, + "placementWidth" : 257.294, + "placementHeight" : 44.875, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 257.294, + "contentHeight" : 44.875, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 9.458, + "right" : 10.156, + "bottom" : 9.028, + "left" : 10.721 + } + }, { + "path" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]", + "entityName" : "TotalDueRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 319.361, + "computedY" : 162.491, + "placementX" : 319.361, + "placementY" : 162.491, + "placementWidth" : 236.418, + "placementHeight" : 26.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.418, + "contentHeight" : 26.39, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]", + "entityName" : "TotalDueRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 319.361, + "computedY" : 162.491, + "placementX" : 319.361, + "placementY" : 162.491, + "placementWidth" : 236.418, + "placementHeight" : 26.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.418, + "contentHeight" : 26.39, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]", + "entityName" : "TotalDueRow", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 319.361, + "computedY" : 162.491, + "placementX" : 319.361, + "placementY" : 162.491, + "placementWidth" : 236.418, + "placementHeight" : 26.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.418, + "contentHeight" : 26.39, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]/TotalDueText[0]", + "entityName" : "TotalDueText", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 319.361, + "computedY" : 162.491, + "placementX" : 319.361, + "placementY" : 162.491, + "placementWidth" : 80.671, + "placementHeight" : 26.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.671, + "contentHeight" : 26.39, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]/TotalDueText[0]/TotalDueLabel[0]", + "entityName" : "TotalDueLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]/TotalDueText[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 319.361, + "computedY" : 176.669, + "placementX" : 319.361, + "placementY" : 176.669, + "placementWidth" : 56.43, + "placementHeight" : 12.212, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.43, + "contentHeight" : 12.212, + "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" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]/TotalDueText[0]/TotalDueSubLabel[1]", + "entityName" : "TotalDueSubLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]/TotalDueText[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 319.361, + "computedY" : 162.491, + "placementX" : 319.361, + "placementY" : 162.491, + "placementWidth" : 80.671, + "placementHeight" : 10.197, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.671, + "contentHeight" : 10.197, + "margin" : { + "top" : 3.981, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]/TotalDueValue[1]", + "entityName" : "TotalDueValue", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/SettlementRow[4]/Settlement[1]/TotalDuePanel[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 437.57, + "computedY" : 165.3, + "placementX" : 437.57, + "placementY" : 165.3, + "placementWidth" : 118.209, + "placementHeight" : 20.772, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.209, + "contentHeight" : 20.772, + "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" : "PaymentsInvoice[0]/Notes[5]", + "entityName" : "Notes", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 29.905, + "computedY" : 102.364, + "placementX" : 29.905, + "placementY" : 102.364, + "placementWidth" : 536.03, + "placementHeight" : 35.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 536.03, + "contentHeight" : 35.3, + "margin" : { + "top" : 15.799, + "right" : 0.0, + "bottom" : 0.0, + "left" : 1.128 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]", + "entityName" : "NotesRow", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/Notes[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 29.905, + "computedY" : 102.364, + "placementX" : 29.905, + "placementY" : 102.364, + "placementWidth" : 536.03, + "placementHeight" : 35.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 536.03, + "contentHeight" : 35.3, + "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" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]", + "entityName" : "NotesDisc", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 115.658, + "placementX" : 29.905, + "placementY" : 115.658, + "placementWidth" : 22.005, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.005, + "contentHeight" : 22.005, + "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" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]/Discdocument[0]", + "entityName" : "Discdocument", + "entityKind" : "ShapeContainerNode", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 29.905, + "computedY" : 115.658, + "placementX" : 29.905, + "placementY" : 115.658, + "placementWidth" : 22.005, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.005, + "contentHeight" : 22.005, + "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" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]/Discdocument[0]/Glyphdocument[0]", + "entityName" : "Glyphdocument", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]/Discdocument[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 29.905, + "computedY" : 118.386, + "placementX" : 29.905, + "placementY" : 118.386, + "placementWidth" : 22.005, + "placementHeight" : 16.551, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.005, + "contentHeight" : 16.551, + "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" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]/Discdocument[0]/Glyphdocument[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]/Discdocument[0]/Glyphdocument[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.905, + "computedY" : 118.386, + "placementX" : 29.905, + "placementY" : 118.386, + "placementWidth" : 22.005, + "placementHeight" : 16.551, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.005, + "contentHeight" : 16.551, + "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" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]/Discdocument[0]/Glyphdocument[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]/Discdocument[0]/Glyphdocument[0]/Align[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 32.632, + "computedY" : 118.386, + "placementX" : 32.632, + "placementY" : 118.386, + "placementWidth" : 16.551, + "placementHeight" : 16.551, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.551, + "contentHeight" : 16.551, + "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" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]/Discdocument[0]/Glyphdocument[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesDisc[0]/Discdocument[0]/Glyphdocument[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 32.632, + "computedY" : 118.386, + "placementX" : 32.632, + "placementY" : 118.386, + "placementWidth" : 16.551, + "placementHeight" : 16.551, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.551, + "contentHeight" : 16.551, + "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" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesText[1]", + "entityName" : "NotesText", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 59.81, + "computedY" : 102.364, + "placementX" : 59.81, + "placementY" : 102.364, + "placementWidth" : 328.75, + "placementHeight" : 35.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 328.75, + "contentHeight" : 35.3, + "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" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesText[1]/NotesLabel[0]", + "entityName" : "NotesLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesText[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 59.81, + "computedY" : 127.093, + "placementX" : 59.81, + "placementY" : 127.093, + "placementWidth" : 26.525, + "placementHeight" : 9.637, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.525, + "contentHeight" : 9.637, + "margin" : { + "top" : 0.934, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesText[1]/NotesBody[1]", + "entityName" : "NotesBody", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesText[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 59.81, + "computedY" : 102.364, + "placementX" : 59.81, + "placementY" : 102.364, + "placementWidth" : 328.75, + "placementHeight" : 21.929, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 328.75, + "contentHeight" : 21.929, + "margin" : { + "top" : 2.8, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesText[1]/NotesBody[1]/NotesLine1[0]", + "entityName" : "NotesLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesText[1]/NotesBody[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 59.81, + "computedY" : 114.777, + "placementX" : 59.81, + "placementY" : 114.777, + "placementWidth" : 328.75, + "placementHeight" : 9.516, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 328.75, + "contentHeight" : 9.516, + "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" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesText[1]/NotesBody[1]/NotesLine2[1]", + "entityName" : "NotesLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/Notes[5]/NotesRow[0]/NotesText[1]/NotesBody[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 59.81, + "computedY" : 102.364, + "placementX" : 59.81, + "placementY" : 102.364, + "placementWidth" : 186.262, + "placementHeight" : 9.516, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 186.262, + "contentHeight" : 9.516, + "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" : "PaymentsInvoice[0]/FooterRule[6]", + "entityName" : "FooterRule", + "entityKind" : "LineNode", + "parentPath" : "PaymentsInvoice[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 28.212, + "computedY" : 83.759, + "placementX" : 28.212, + "placementY" : 83.759, + "placementWidth" : 538.851, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 538.851, + "contentHeight" : 1.0, + "margin" : { + "top" : 17.604, + "right" : -1.128, + "bottom" : 12.3, + "left" : -0.564 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/DocumentFooter[7]", + "entityName" : "DocumentFooter", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 28.776, + "computedY" : 34.229, + "placementX" : 28.776, + "placementY" : 34.229, + "placementWidth" : 537.159, + "placementHeight" : 37.23, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.159, + "contentHeight" : 37.23, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]", + "entityName" : "FooterDue", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.776, + "computedY" : 43.153, + "placementX" : 28.776, + "placementY" : 43.153, + "placementWidth" : 276.479, + "placementHeight" : 28.306, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 276.479, + "contentHeight" : 28.306, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 2.257 + } + }, { + "path" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]", + "entityName" : "FooterDueRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 31.033, + "computedY" : 43.153, + "placementX" : 31.033, + "placementY" : 43.153, + "placementWidth" : 274.222, + "placementHeight" : 28.306, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 274.222, + "contentHeight" : 28.306, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]", + "entityName" : "FooterDueRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 31.033, + "computedY" : 43.153, + "placementX" : 31.033, + "placementY" : 43.153, + "placementWidth" : 274.222, + "placementHeight" : 28.306, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 274.222, + "contentHeight" : 28.306, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]", + "entityName" : "FooterDueRow", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 31.033, + "computedY" : 43.153, + "placementX" : 31.033, + "placementY" : 43.153, + "placementWidth" : 274.222, + "placementHeight" : 24.356, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 274.222, + "contentHeight" : 24.356, + "margin" : { + "top" : 3.95, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]", + "entityName" : "FooterDueIcon", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.554, + "computedY" : 43.153, + "placementX" : 27.554, + "placementY" : 43.153, + "placementWidth" : 39.121, + "placementHeight" : 27.836, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 39.121, + "contentHeight" : 27.836, + "margin" : { + "top" : -3.479, + "right" : 0.0, + "bottom" : 0.0, + "left" : -3.479 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]", + "entityName" : "Glyphcalendar", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.554, + "computedY" : 43.153, + "placementX" : 27.554, + "placementY" : 43.153, + "placementWidth" : 35.641, + "placementHeight" : 27.836, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.641, + "contentHeight" : 27.836, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 27.554, + "computedY" : 43.153, + "placementX" : 27.554, + "placementY" : 43.153, + "placementWidth" : 35.641, + "placementHeight" : 27.836, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.641, + "contentHeight" : 27.836, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 27.554, + "computedY" : 43.153, + "placementX" : 27.554, + "placementY" : 43.153, + "placementWidth" : 27.836, + "placementHeight" : 27.836, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.836, + "contentHeight" : 27.836, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 27.554, + "computedY" : 43.153, + "placementX" : 27.554, + "placementY" : 43.153, + "placementWidth" : 27.836, + "placementHeight" : 27.836, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.836, + "contentHeight" : 27.836, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]/Align[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]/Align[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 27.554, + "computedY" : 43.153, + "placementX" : 27.554, + "placementY" : 43.153, + "placementWidth" : 27.836, + "placementHeight" : 27.836, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.836, + "contentHeight" : 27.836, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]/Align[0]/SvgIcon[0]/SvgLayer2[2]", + "entityName" : "SvgLayer2", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueIcon[0]/Glyphcalendar[0]/Align[0]/SvgIcon[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 27.554, + "computedY" : 43.153, + "placementX" : 27.554, + "placementY" : 43.153, + "placementWidth" : 27.836, + "placementHeight" : 27.836, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.836, + "contentHeight" : 27.836, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueText[1]", + "entityName" : "FooterDueText", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 63.195, + "computedY" : 46.33, + "placementX" : 63.195, + "placementY" : 46.33, + "placementWidth" : 197.629, + "placementHeight" : 21.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 197.629, + "contentHeight" : 21.179, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueText[1]/FooterDueTitle[0]", + "entityName" : "FooterDueTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueText[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 63.195, + "computedY" : 57.6, + "placementX" : 63.195, + "placementY" : 57.6, + "placementWidth" : 122.528, + "placementHeight" : 9.515, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.528, + "contentHeight" : 9.515, + "margin" : { + "top" : 0.394, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueText[1]/FooterDueSubtitle[1]", + "entityName" : "FooterDueSubtitle", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterDue[0]/FooterDueRowLayer[0]/FooterDueRowHolder[0]/FooterDueRow[0]/FooterDueText[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 63.195, + "computedY" : 46.33, + "placementX" : 63.195, + "placementY" : 46.33, + "placementWidth" : 197.629, + "placementHeight" : 9.497, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 197.629, + "contentHeight" : 9.497, + "margin" : { + "top" : 1.773, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]", + "entityName" : "FooterSupport", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 305.255, + "computedY" : 34.229, + "placementX" : 305.255, + "placementY" : 34.229, + "placementWidth" : 260.68, + "placementHeight" : 37.23, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.68, + "contentHeight" : 37.23, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 29.905 + } + }, { + "path" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]", + "entityName" : "FooterSupportRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 335.16, + "computedY" : 34.229, + "placementX" : 335.16, + "placementY" : 34.229, + "placementWidth" : 230.775, + "placementHeight" : 37.23, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.775, + "contentHeight" : 37.23, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]", + "entityName" : "FooterSupportRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 335.16, + "computedY" : 34.229, + "placementX" : 335.16, + "placementY" : 34.229, + "placementWidth" : 230.775, + "placementHeight" : 37.23, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.775, + "contentHeight" : 37.23, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]", + "entityName" : "FooterSupportRow", + "entityKind" : "RowNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 335.16, + "computedY" : 34.229, + "placementX" : 335.16, + "placementY" : 34.229, + "placementWidth" : 230.775, + "placementHeight" : 32.716, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.775, + "contentHeight" : 32.716, + "margin" : { + "top" : 4.514, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]", + "entityName" : "FooterSupportIcon", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 331.492, + "computedY" : 41.272, + "placementX" : 331.492, + "placementY" : 41.272, + "placementWidth" : 44.011, + "placementHeight" : 29.341, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.011, + "contentHeight" : 29.341, + "margin" : { + "top" : -3.668, + "right" : 0.0, + "bottom" : 0.0, + "left" : -3.668 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]/Glyphsupport[0]", + "entityName" : "Glyphsupport", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 331.492, + "computedY" : 41.272, + "placementX" : 331.492, + "placementY" : 41.272, + "placementWidth" : 40.343, + "placementHeight" : 29.341, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.343, + "contentHeight" : 29.341, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]/Glyphsupport[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]/Glyphsupport[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 331.492, + "computedY" : 41.272, + "placementX" : 331.492, + "placementY" : 41.272, + "placementWidth" : 40.343, + "placementHeight" : 29.341, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.343, + "contentHeight" : 29.341, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]/Glyphsupport[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]/Glyphsupport[0]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 331.492, + "computedY" : 41.272, + "placementX" : 331.492, + "placementY" : 41.272, + "placementWidth" : 29.341, + "placementHeight" : 29.341, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.341, + "contentHeight" : 29.341, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]/Glyphsupport[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]/Glyphsupport[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 331.492, + "computedY" : 41.272, + "placementX" : 331.492, + "placementY" : 41.272, + "placementWidth" : 29.341, + "placementHeight" : 29.341, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.341, + "contentHeight" : 29.341, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]/Glyphsupport[0]/Align[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportIcon[0]/Glyphsupport[0]/Align[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 331.492, + "computedY" : 41.272, + "placementX" : 331.492, + "placementY" : 41.272, + "placementWidth" : 29.341, + "placementHeight" : 29.341, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.341, + "contentHeight" : 29.341, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportText[1]", + "entityName" : "FooterSupportText", + "entityKind" : "SectionNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 371.836, + "computedY" : 34.229, + "placementX" : 371.836, + "placementY" : 34.229, + "placementWidth" : 182.481, + "placementHeight" : 32.716, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 182.481, + "contentHeight" : 32.716, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportText[1]/FooterSupportTitle[0]", + "entityName" : "FooterSupportTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportText[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 371.836, + "computedY" : 56.531, + "placementX" : 371.836, + "placementY" : 56.531, + "placementWidth" : 119.69, + "placementHeight" : 10.414, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.69, + "contentHeight" : 10.414, + "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" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportText[1]/FooterSupportContacts[1]", + "entityName" : "FooterSupportContacts", + "entityKind" : "ParagraphNode", + "parentPath" : "PaymentsInvoice[0]/DocumentFooter[7]/FooterSupport[1]/FooterSupportRowLayer[0]/FooterSupportRowHolder[0]/FooterSupportRow[0]/FooterSupportText[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 371.836, + "computedY" : 34.229, + "placementX" : 371.836, + "placementY" : 34.229, + "placementWidth" : 182.481, + "placementHeight" : 18.994, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 182.481, + "contentHeight" : 18.994, + "margin" : { + "top" : 3.307, + "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/invoice-v2-layered/payments_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/payments_invoice-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..ee7f1c12b59d88ea60420a7f7fee0e2edaaf5937 GIT binary patch literal 100748 zcmZ6ybzD@<`#)?U3J53)0#ef5A+bnE3kXO`cXux!Af+JPC83}+2uLm6jdbVIxzv)s zS-tQ3^L?Iw_qFHDoO5Qb>s=F~C@=W{g9zisjT;Z7rNotP+_g-_QIKtn%hztKU5a45d4fg@-icQbia&yPPNUd?{HSbp#Jt`p=JQ-Fj1B zIKpq7q@4&ln)V@m9*N+3L_hltQEXIujob1Paeeyaj)+-^8LO9HQ7U<`Z(xrk?%DH6 z+12?xntO{BFX5E;ydI)`bKHB2cV{1$9P#i2Ecn*%7pFh&`?=kVK;9E&757|!1|7L0 zBKWKWdMAS*v%v`)X5mLpifsh(8^C;{$B(YdErN@K&Os)!_SuXz)xRi-JUHlXVmP^z z)&D7D8R6v{~I;|HLRq#??1!Jp@yXd!(zg8 zz_1*XiMylB^jlvpqRA!r{+kW>x#;VwBq5C}X9;8TQ+My?OkDB{&n|SPa z7~eB(F1x{7;6uD*f0FYzA3`$`$KX0a;u-HWJ*o;s0+ zA-%O33UpXl)syzuRjdns>V2#2bXltFReMX1b|y2r`E`Vm%G7iH-Ou5#GD}U^GBrY9 z8RNfJ@O0XSL#u||^J*a!@;c#Wx%FDVU^*Cku}pH*%7*4apPZP3c;^Bfg*+)97=I~` zf0Rv9I5erdQuoX%dw5x3M0#j@N@yj|w&P@Y>nMsRL3VRYO2k{q@%M~DOYuKz0!yDE z&w}-xoG|nds@JiOC{g3!z~mRGITgk69V%sbW^>(Wc0Dh}v<#2mr@mL`&IRYxc<$ra z#??IIa7#;XrFLCOb3>>nsIEAqK&{Cp+G$f&;U;5mDpQ(G)FnKv08Vpo_Qgwxm4Zsb zJ<+K4i<*#3??>dZ$4S2aN&M)DOfs{_c9W>NzNBP75p4~r597^x14eeahkuqRw$G^6 zF0%L9tKbg5WnqJ>aAN7}>yuTotiB(8c<0NlyfpOAJ4d_7_k_%)%Bqm#3mi#>mZRD4 zthFbB*9+^rF*Ac!uojXbj)T{uzv|EWxQ=#P7sLCZ!XAEvlfOr=-s3nPj~E<%o(tFQ zjmMROL7h8gXpdM6TYj^KCD)8YSSbAGB%`ncQt`S^NJ8REk(v^u;T_OVE6evgapTmO zqiyE)@qZd|z1CS@rF{EtwN6Qeu6M-h6~B4{>+0M6lA+9rgCze(A>#xjyf?zXJc%--Pc?u| z5RvK1#0(WpJKK@*j^T zi^L`KDZwRO>uPRc3VhHgC>kw2kcdl}(>R)S43yFF#n)_bLV%DA<)B}01l3H8$lVw%{Uz9WLn{I9d&Y3JvVo=`q~gqGV!J% z0Ze6j9=OdN?M{d?6!yyYZ>Qm+{0bFhrR8Q=~K${J?6--1~8Js zx{oEBxu3N>3aA1xGn-N6-2bH(f&$K5vI=I~4;83w8h+cWeKG%|p>oNiT%=a6+OmIe z4g&dTxoXRm0wcU;K{Xw;3+0@t5T z^?EXfa4q*7Z?rzBRQJCPirz$;#rkofU)_u}0 zBxY)b1us)OiB6Wg)ka!3Hj?+Iy!Ixb&eAP7cwq4Wt1Bz27%!u#+y zwDC%awY++=b4Ng%O&Qi2Gn1Q`KBoM>$22z>8`be1pw09Ixvgx|^ZwZU)r8@dfa9S! zhA1kE%dK=ECqCbt%V7wJREdqv>vN$tPmNV8Qmx~zsue}FN~c>D@4wkSTGnkFJ&_k8 zGlTHfU7Xe?ELLcV&JP9WTzne0L?xR6Ti(@QS0j=rs<;;KQFi7Zw4 z!NFw@fh%mxepN0q&v;C)6M8pf4F$%=-Vby^_ud^&7#(d>)q6o>&PcriV7)=_USCo* zIQpax%-XM7K6=8qWdT@=i$kw;fFB}I=OXYWWvIr`lrP=zcnx2H;d=d)+h4*C-~>%N_dJ$LIr z<19QJ9?kZ^FaDwAO+#|@Qm-f;RyB}2HhL@%Oju9U5v^vkC9Sc58 z<=G;9ztZ$=$Y6g+TalHDI`30-Cakf(`OdfAhf7QQ<&^DYn?i}=ZlOHgInUgO?{#VM zIGAH~mgI=_HofFotd=zeka)F#96ueV;E#rQZ%C+!t*24|GMN zAmD3#ZP-n}D$Fb$GpsTT^bjnY6Jr0dG-~bai(cC1kW>9&>h0Xfku?lQIK5~#De`UZ z?2jjxK54e2w>-X_vH+y|i}!DFMvdm%)`rhAm&8#smTio~MRvNi`BjF{Eie10OdU7% zQBw6)XBp3rN*M>+(Qhm_OzqG}gX@&PRNqZ5@b3Bs>urC4F_~T?y(@X$ZijS9p|3~W zL(z{D2`3b6wp3p;fkebAw}efu{1g(Om?T5!*Lk>Fo_lQ+bidXf(Q0ihO-|MtK}+*C zf2KC?YZq_LYcr8&wJ`xBAa10=oU`v={R%@0gKqf9zvj$qe_WnOjyrHOA> z2{_Wp9?vYOl)4@;fwsLdr7(M;_l>WD8{>LcdG1GeU)c7+OC}zVys07{*EzW7t}^A3 z>SI;g5sd1|@5HEgf&NdU5+g(0%zv|c)wC%buUiy%W(p}Dva0cLr7ppQJT1_v?|sXO zU)(^vdqVUoAo=csuUuOBn>qoiY}9Op<=$n@60w9*PWr526U+dP)gttlDiA&MNWw86 z%_Vz1%zbg5Y)n#VlP4Lx(+nll2-xt-=`T0g96`Tq{yjHiTl`dB`}`K=>7x^L>1Exk zQOj}8a=vq(bmW=#Mu8>M+uIgq_W{ZPT&WQd8i2dG#SgjCvlGuQRw`-o7}<4Je!xh_ zgOCmJb47|WSL+(?H#QGG5*^`=aKew)6kED;#_;w}YDEscQ$B8R^Y>Wp$}8J$PeG*) zhP8A(5Ck4kUJ-zr+zJ1?eQ^ippyUvC<;(Ytwp`fCapyd`4Oco##q-p>(UAu;8TTAS zj4U>y{N8onHSe`jtWqw!^;!lSlF z%9*wZ={nnJU$l|uPBZoqtTV~rjj&vvEen4-^X_TzwB_SXpW|m_E$q47i>?ego}Q^a z=1nqxe&(G`vc3hXR6}p6_}>RO6a{NKV<-GB)oCF1gS!K$=iGRs7UT8>=};Iu?I>|1 zEF^GdVtrdz^M*Ct1-kLo{#f33+KXLVd&acyYiOEY+moyLGUQ^V6WC|(W2=5d2x!{O z_I?c~XQtE@I;{BAe$yE5?*|^l9MrEy8~eUa2xSbyx@`tgRCG%vzI(=d$wqc+(o;08 zb1&)pr6&EU7pKdUMd3N-RXC@CuXw?)?5LtbANc0ZPFlI%Cw1DzELQx_ zsXtvBInXbThAXQ|PwR!RbJY_$$uP?9o;*AggqX3RXea^L3-?M`e{-IyViVpSh0eEp zce5d?ze-?T9w6Ld4Gfm;nD3q;lZ@BfA%fq&Juxd(PJ7f3je=)9@(X@amtLy4SnismVKaN# z!2YeAgUrm#Y!+U9of^IxEO`-TBDiDQR>+U*5tpp1_#CnR@5F;}&xydqR}?dIe=P!_ zO$}&Y)va|xWY_40pM#Ah+2hALrk?g?m^0y%)e_FKnwpcRk0#$kSs?6q&*wHCo0X09 zchd@9h`-YxObsa@yW^t9d)MaoMnreMAv*` zQAOc?a!KB_YoNnse7;jsxgKVvQa1P+bqZn6v!aI?w=2+~0)3A$G2>qJ=vKe2`z~xX zNBEJ3!i4o_x$~hUCh`$Z^vAB`nVAd0XbVy7RFSD)->Y`2#uTE*3Myxt3#iWg*Vsrz zRpQhBO!cPmUQZAUG1)rU(bYfmWi;HE-I!Fb01Q?^+kGuFS?yCh42@4`6__grjcmvI=Km=Hdz>4Y`jg+z(fV>AZ=Ki`3P4OZ?QKx}@p|EYN$mHy3i6CHu*Q9##UR&Z#S* zN^uMGZy7p8m(=NH)@LmtP_buVxL;#u;EyEr(Z|wiQ{~#7MyfEiQyYB=>{ct(ulkkE z!2?PCs$sT={PlAq>8wR|B0{lcy~Qjng!Sw4mw>LG!AhGM2w`IJwH{Y;dUaLR6YiG| ze0N+#qKj+CuBottW*iaSiZtBJ1d_`%HgKSHfL&Y+KTMRhD*8cOE`pxPLSqtzbQ1gj zEJN_PQ@@N^OYu$U50?gJi{Lvw(6IxV>w`+^EN?F4!TA$gZ?>{RSf{7$DQ402McX-N z1nCMqR^N3T`}pjzyOj=kc{&m<#G908+oaNMU!ULFw07U52*$ZxRuq4AwZ2PUJX(Rh z6)*`q9X3?apo2hdupuh`mCiWq`o=SeU!BhDVrqYor2^j+ud2&^1k6yXsSyX&Yd2v z8EDZ7eeuv&X4nR~cQ@0Y3 zCViE@#OnIXerdD%inm-|kUnHJKd7HG>j`2)$7EXft>#0-#;8)PG&M=;GKouc^q|-1 zJ+Sca876odo0mG!2E-fx5}Ualrh1*;t}l_%rkeUUH);DP>C9pBK-D3|G<(6&?$=6V ztBzj5$WYke`}tY8GeYnVMM=t&fK}!aQ@G)rq9|g33je}SUY}Y37kY7oLt{n2y*MJj z9H8D@=)$5?vJGl*i7tL7HDdjJE<0-1K^l1@pWd2=&3Nt0J@7st4%Y9cWSfgU6nuJ5 z^%P-=mz<>e1kw0b%1g(`mLD_tV`8|rxeCxEJ#ZZ8RdWu6(hXoKmelY~R|=93oq8lD zkbAe2BO3Gx%@c>H5^!cUi+gS^z&K-OWR)~k%NyHP+e0iPR7P3I_ z9F;DN!MrDkL*35lzV`vEVTt10Kxmg3cB)3{(0!h_-k3{o3wxmPN)C!x-y}upk9f$k zPkXwBg@AVUDNf+Wr2Hz2 zUng{@i;iMAQM2IZw=opblDOU1LbdviQMJOw+1YrtBdouh)lgF83*l*dE3HWj^&xcE z@P^>b&_5zLQd{N6#H6I6IZNKNUQ-n91K7^ix^CcBsv>yO1 zGqQTTuFqb{IQ6XFk`-6}{cuhMVb8e(E~=H;%?=5JmagA+VfDG6sJ=p>)ZwGu=%;>; zdXf2_s>jgM@ya8V^5wc<;IaGsWCd(&(ibkix_RiDiA4nkhNBm~>IpAwqjd+QD;yF- zC~J?pT(9bWotoLFlTaeQrN| zUXYnW%TlKUr23dab`mM2Gu*wNOZM*Blldd0*YU zwCz$wC8|}zcDUa0BoeeW&C7ig_&F#|$7`+YobieY+fVHIAAY{rUdke0*TAf3IAKd? zx|-dgI(rG4QAS+cRU@yxS#!_W@bJgq;)hN9A&FA1c0(FU3@07xpTiW|6;fWOh07Z1 zD$G+ok~c_S3(XgWwoR;@5sx^p8Ww#yS7iu7&Uc(ZxGikridxtZPoAh1d+gzLOYz(1 zABJ8mMs=C=lGx?nP1sc&f1&dERzA;T6W2uPB+fUF+f-N7am0BM%-ZW_25>*8*Fy<7 z!rDTj1}yL5mb(Q*1YF5fU3_QN{hoSXh^|GJZRQJVY~Vj4@)CUhdBy_WgtfS>|H0^N z2T80`#7*W@LFYG7tR7FM__r7t>-AUHf_yMs8K4lJCsj0@x~lRSmpsT8G@`Uhb?-tf zdXk^j5=&|l#v`w}B!(^qslqY{h`M!8p5E{`g#`whs6QZkWOG>(O)#e6USeEJ5}#ZR zD%^w5jn`O7Ei6{bbtbOIJRc#+wFBc14WwlHN~UYIh6EGaVLf8?;RZks?Mqc?<$$QU z5ynUOzV3`KGD!4_cbj{%YrJ(fw_KbEQrCc)Lyfj5{^HlUC)qk(3 zh)mq|cvZg7K+D9W2`jJuMyeGZRW?5IO4_lT|D%X`$L#nF7r|m7d7YtFIB7jD?lX!` z5|vON#XAi32@yAcXWdo*?e59O@yg2D%&LuoT;4XFQfgi`p)1~xqZC6C%R83q*Z}?s z5}%))ZMGM-p@}#W7})&LYihlETbY5?b^HEORL4U1e4_2CpKCK9WaggwK~K8?=cN#L z{=?#UJ|gXug5zoBTg8}*iL7E`mARbzXi`{hDiEmw?4ZcAx+Li_6R3a|_~laR2uu zR{$l~LYq*E9v$J4;mxoQ$YZoFjCEoDWE^48T$nZ1-|K0G`OL&cd5jo^L94NlB8DB! zRJ~b>xHvV{H4f#nsc->oDkw!zCKb{{{bRJ2V*gDp@^pa6TwfVKun1P@882fMlu*Wz z=Vs#BQTmuzIP>`j=qg!HW$~UMv}HPHcj!$qquQW+{LoOW-Ki4Baghac7q3{~J1Xp7 zZ@z?kvYr0IzPiWSBKGPp%I%-mdhv6ihk!8kjp; zevx@zp_@QXw}2m`1pAi6;rUw$ZxtABxGS!(TSo9^QB8>}Jl4Wz%h07k7#A&J0I3WE7W?U07mkeXg=Y z<_&f~it^C53^{pew{Uwu+cXyC~OpCi31Q z&Zih`4rL2EhQgPy;19N+{8?2#G8O;IzU8yv{;ATAK=26yJeJu=*krS$p`Z(i5(eFi z^w@G&(BQQoxJ1@vBLvnjEplU?jRMN_FbGANP>86~p~F!au>y~8d@1(^m-O*k$>ts~ z4wy97v)^rBxSx5nU>C7bxwp&fK!JKb>)9OHPfgve8zjqskao4%@GnJf zbWA~>>MgA~(g&_DOR)QHniIOKALD#ftXN#>R3_k^LeiaN(@{~I8pd~+A=UgTQ!CJG zJU+Zk+2H87ry+FnTtWJPjpWJHyW9Sv&tpBUZ`@%rw>eNr9{GLFHZ{oG@Y047a7jw+ z{}|^=1nrp>$D>lflY*N17O02H_XKoRf&$V_PpYJn1T>zd`1|2Vh}{P=-@sE3pN@WB z@}^$IK-dOd@2)x#KHl5xD=QBKTa+N1d9bg-6ild+nnyb z(LTE~CvFfd0_POGI|5BjO|=maEmS+KF6lD&EH15O-TUC-#E#8#;cN5kUYL&QN~dVm zrW_SFvui)h&YM}E?tf(^gyL>u|K3wU1UGj%6Q_L&pR+aSU>=ui`}GXnpW@DO7LQ>GxMn{hU;_P*S;BW!r z*tp@m(^hX&lj2bhHxY8tsBNO4pm)4j=I)#F&*(2>r;jp;Q2kv#<-_d?9MKw`H_Z~d zy&XL#$1nWE`1sI!v}&mpIAI0DQ=qh2Gs>lMmpL2l9tn(&j~kdQz+C)kIph;;uau^a zlI!da&jP<$x>JvTc!w|$y*pXoHEq2VH)AH(SH5_B{26p`o@37v$_;utCSAjIUy}Zo z4#)9FVt9X_0jLGf*$@9d10>K4b`7l&ufj&IxXS9o;Bgg&g@qd%{CJ%4fOs0x7JxL4 zen#CAehi{puDkSr*vgJPchD>naQi33PP9meKAy1#K!SU<4Dv|nL!M|N0S5b+4Q!^<|?jzf@A9`6pS1hhETq zVY4+oh|AsnxIqE!;F_UP7gy5B%_k###%ek|Ts#EvhfX41{_`fA znzZzf_+4Y#yZie3>b%>5r25lT^h>l!)}YmoJ?Zn;NPE{V=~E^TvHkddlnuHC~n|uiF+Yj$KF_Fs)rv}Wt+f5n@;zojp-$_|iH@s|VA>M8$Qc0YwJerI;npV>R2o5TDs}8kO ztgseOg1g4QUsbqHAM6XznD-Tc(tX?h?2Ig2R%*_uhW2pnMeT@So#>eDv4LX%t{Cnc z!^yxu!X9`H=KDHSO^nFgtL*Icil+2=?&!TMXJPbSi zlwl~69_LtoFI7Q8^=5@mH>1c#+p%ano%w-D)+?U1FY5ghv$Hot7I*uvw$>=3Sy$%= z2C^G_^7h!Csvrm-nHnmQzv1ie8Or)noH8ee#r{vJ24Z6~hH+t_sm|4UPUj}%)CvYX zmEz%gSk$UIA7SEqG^h5WIst1qlz7>CM?fsLiYVU-I(t5B)+T7FC3(%b?rvKvY}jg1 z=?Y0xemCT3Svd)vPrue)T(oZh9SE2^u&c&90!==-NW`0N!MbKUreWLKt|tIXK0Do! zW<;=0yBsEjzs_bchpUhKD8f2l4khe5Y`o1j=GzWDCKpb?!S>&toaDzZvU}ebpWKCG zpAo%KcoO*RV^av9g<&O=RMN!JxTu#H-f@73BSI!aC#Afs2LIkej`W>*&bGo-pqXR@ z{U@f_|H??%ZRK6o`1o0}#pj~6>G-o&e?30{SBF)jp2sAW6?41*d|JJdIhod_WkXPK zo&#;GY~o47bn7t?eURvqqUqRuB39I4&vgKzX@yw*TmMf+v< zJ%rN&Gl^JT^5&!xw*biCifB|rJu}5l6Wq;(yE~12R>Q8{DrSWUQ zG8&sKR#zCu^7HH7mdoU1KAIN9(YuMvtb}9V&VJtmUHdFI`pe<>qh8&~O$lL9U(j^# ziHDgJ|B;PDn#0a}`-6IHM>KIxi@r;zCAthcAW5yLT)%6tr9_ z)zu#FDe00aM*_({qq>YeemnIR#S2c%epECgn`4glTH`}pG0}KyzwawD1X_Uj*(r&o zjZJE$8)nTG{R}%<%Fj+093>$Wh}*-?cgo7$p;g4xy>AD6e9F|l)WnUPo-4gfu~wVO zwYIiS=k~$7iW)~N{cw!WJeL%c5?0VbR6@Yfx;P}mbDx<4gaEO~{_D3Zc1zyynj|g1 z7@JNRq=ELqN*+MHnehszK+?kuBLQ-p)NTak&ZJ|^>+X{cf#1*z`GkCXNq5y3JwY;x z*TA!~GDb{idgp9Y5La%s(nx#9bl3yEGqPypNeuvN7Fi?Vu_+!5rxnI&u>Yjs?( z@KpJwEk(wl)-xz4hbIkY4A(k9j7t}fajYLNuh`19Rr9!|JA9z&l;Itp1VQQ+T<=JjCXV|xcKJJx9 z!19eUT>#euKY3gSWNPR_-g7@8$z;fvmg)1Q*?)u#E6DP(g7U{v%F`PB?(Ddu>Yz6` z3cW3=?iPBG!p=UA^#f_6GPaoA*3&fOwJJh&bYYSj42cJ&DVmuKLm*FZ#?LW*V?)z) zBrNO1UufA*Fw>OZylL+bP&*!?J*9ahmLO>WSGOs{aOL#jZNO*?$>Fn$rc3IWqbuirO<$FL+r62Ks5gOKCgtmPo z04H!#s)HMd2Ch$TGpg0Z#J$x9HEyxoyKD?Yc@^k+*)}F|r0Nn7*UeFD^wk@WF(J5B zmI?{kokJD;=*2PsnZpRn7LT{(>2Td=f4(55Lh_XHWyiA3Wv_4YOzdb>50&Kp%B-k( zcvQsUiisI6LYVEZ%2RW4N}6nA#O*lyZGiH&kL*+S$Nyl{KaWfduqnG6ysQGDuVBMa zyz2%EE1xw^TYovRAa!qDJ-TQXh45NIdAZl@qbX2HbiFHoR%v*5J&Cgb+{lH4hl)${ zyJ>2ysi+bS7P{^t9bqCeZ>-96^>HIq*|bQK)q||Od7W)}eoFyRqA#R(SkK-a;G@q~eX^!PE}F)rW`UFiTwS%$1=t-WrN=f_ zRw8Mu6_m^8>2g#fbYF}hw}JbGa#;ZXl*Y2|fCjeDC+?b9H;+r_Ej=2dV7>^gvU6{n z4wLFACQm{&m7n<=63)z~5GubV+9G}GCyEQEy3B`%5GHfj_PI$9h88+9L#+=As@&(0 z*Vg9NVw_YQa~&x8>>n=&%l+>t3PYjM=DW+b)h;yvOZN5_EYKP(6f3{EuMS9LaByfm z7v5H@j+_{OFxSrf0w>t9mA0-PyW3S-M4$w$m^h=;eGzQObD;YubalV8L`#h!&xRC2 zr2J0P+_0WN^TD`}%n;UfR~M~LSFK#L95Ee=bPVeJAsroJe@VxgKNIfa^4OymFR&D> z{}_c}^^>BOLQl`w=x9cd$17Z~|Ltn3z}tWT872Tn@GShlZ)VS@?3`8cEBheO;&CC6 z-~obAbCi{l$piKFH|O$xH4sl?Z+R(ejRj+zbMBdd$S9A%rVu?{ZJI7y#P6InJ=jp` z4_N;oF;OyJ6vsZV5$isIEG#8UZoXYFI`GF>@H?18L0z3#Vqu)GPvh4Zs|xtBwfm5w zFh6FIj&DrPC#H! zL4t-!9S%g(U9xA$8HH~HI>I@bXpE{gLRU>sRZxQd_JnK795e{5bRfl?L*UukH6o-O z$v|A5Oxl%`E9Kza7V`B5%??x8TYtwO89>w3zMTA$Lq1%hI;XE$9u{bP>$|%r+Edkoa|ESF(8#;VyaXuUk6!oH7p;rb-$#&*)aI#A;lI?nsT) zskp^L@&O5Fonh!KlWP~rT#M(XR9R-Tuc)Y?q!;H1vf`jV(hQ;z6773ToIdM7ThsIn zBoxQgcc35On_F9l5BL@qVf8q`Z|N}=sKw407d7-eP8bD*$Z13el&3eQtR-&*$U89Y z)wWVECa8SWaq30mBJi&`ED-crFZy)!Qj^uXOgtrdUfAyAUsR3TyPgMT@mM)ev5QKU zlL{gzQiUIXo8hBJq8W?0(ir)W$0fUz(2tSqVD0+3N`O+k!Ex%7ryy((58z!h5lEjF z$l8RzW1L-_|0Dyw3}31XKKZ~AEf8kMQ~STljqRuh3uyZcq~;zVYYa6d0SAJbf?n1d zV(buja{b~205cl7a&eil(OKUE^(&W@^-s2Peykb+ACVFLm+KRQz0B6vS0)o&S-l`* z5H;^V7!;o71KeB1ttMrrrNReU&>21e#WIe2eiy3i zU6&M=opEEk1c`{5u+%S)c7^ZdiiU!49CBNJ9tBU~CC@SD8Lw%YeRH+wRf<8OCzE5?QikCl0D~vk&&w{MfOy zg(gd%{b~8hLQM(d{;X(m72&?_wfiJLPb&J-c;`47ZGKlDz0zp@yX~mRw~AU*e3n<= z00;h%-D57H3JP@Yaz_cm%+6lAH6>s)U(?3K$RHT(_NhO1iK7^ZF-t!&%<7#t>fgS)u ze|hP)6Lw-+Y}=H8gj_%&$w4k(CtQG!*6r=A-|M!lCIF(jR`?mePIdg%rIRdUbF!ib zI*UK0tQAFkq)(>lEqu40S<>FBLCIML{ zNmNTSwdG5Zo5?L~eGz#e#CDtYoDzoHa9i_UX zSaqG}2+tZ#5s`&J*rR{a1XVV%6}5i-`rygn`^%gK9-cWSc|U!~X?Uy=-2WbB)(UIx z7YUH`0X}o-6pijKp&xuHnBVih*F$_OlH-LB#7bDg-WlJ&qhT0%5uJTqmr(84qv}<^ z#*CZDxE9X|idP+-UAukGMt1SBuPpyUVkAs6Kjnq3G9VJ4*Ou|`Y!|RO2NKvbgr~6b z7CnyrvYA}jqG~>MZ(%S2=Q>>1M6(oGP1FA~hHJLT2ko1N@s6s>yPIeR#_vS=dxCtZ zh@;W2*#sno>3R*8Sfryz0@8!uZd~sknhA1Id<YGWh|#@wrLQiU?D|!aSI56mrd86C$ra|-4!S27IZmS z1RmJ+)!^0)tbO*fWo<5@nu}IA-{YH)4yMfEK#7mY*I|zcID(DGj%dgSyo>w%xUDqd0n6iFjEaw=LiX_Nf!qPka76y3R~{6V z-IBg-dUE^p^m<7bG2g+ts-)v?c@TS;Hchwav^a=Y_pP&qWop_8(daj!_G#k7&jxeP zdnuD6BfXQjjudZ)mZgiyOFL!hUoa6oqx;D{*Zi_-QX1=CcpJ3Rrt<}v{96l~(Xw6b z5qLK%ld0>;qSM{8s+cHi{c`0Yto4xVI&8S|yaU8;aro78q!kis#n98`Py=9(5p3a; z8HcslAKBZs1<@V)Knm{~F>~+&(|UrtE~7`0jf}k*D-CIvnL{;6sDTFRmnD->M0i<^ zl}6OqyQ^{?EkZx&4Ro9B<$gBPNY1|UBWx9G;(0{cv>FwfG6vpDa2;dj#|A}*eaTy&;YK3B*q!gi{e!Qh zu*6Vc7Mw{)%}TF}uJ0roo30%KG8k>;m(ZSz-L}ME+xO_1s=cX&#=0gw%Tg6U?J@GT zNka#=QPbxXBsdW9rS4#JBuX&rEl;VmN~xv7Q>>2%sP9D+ISZuLR}aP*e*g-t`tfI)_5D{79s$1f?^nQ&kK2V$Ee8o9{M_>CjzQ@UuW zO##DtQ=zIds`nuN>6fu48EQp|s_Hf~E33vcNZT|j0MYE72~V+Xy)Y45ewe%q_yM`# z#Y``g5D`%_0pXNvlKIy?oVBg3mRsJ7UV2sLV~Ghyzc92;wlLL_cb8bXZ)c=e?l>X^9{5oK+q_iu1%i%!po!ODWPfr<#dV7 zlC|>^*8?|9KKN`?`zHKr)Jez_>$&JQm3l!h9$qb$~^0bX7q65VQ%D8Cawy}^pMFPd7Cju z7Jxrh>AdmZv5Bpkx|f*lwb$dyPGK0mO`Bo36lcw>U=oj+d{ zljX5lM@}ya1)U6}1RT86@D`z+5ZA~LXc>_FZ_%0AsaqXfd0%V*aQBMP7t2AWHfCm& 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 h=}4hA?puvja_>$3M3&|6 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 footer is body content rather than page chrome: it carries glyphs and + * a reachable address, and a header/footer zone takes only strings. Page + * identity on a continuation page is carried by the page number instead.

      + */ +final class PaymentsClosing { + + /** + * A trunk prefix in a printed number is for a domestic dialler and is not + * part of the international one, so it is dropped from the dialled form. + */ + private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); + + private PaymentsClosing() { + } + + /** + * Draws the closing blocks. + * + * @param page the page flow + * @param notes the note block and the contacts the footer offers + * @param payment the due notice and the closing line + */ + static void render(PageFlowBuilder page, InvoiceNotesBlock notes, + InvoicePaymentBlock payment) { + if (!notes.paragraphs().isEmpty()) { + renderNotes(page, notes); + } + renderFooterRule(page); + renderFooter(page, notes, payment); + } + + /** + * Glyph column and text column as two cells, so the second body line + * returns to the text axis rather than to the glyph's. The notes introduce + * the footer, and a page that ends on one and opens on the other reads as + * two fragments — so they are kept together. + */ + private static void renderNotes(PageFlowBuilder page, InvoiceNotesBlock notes) { + page.addSection("Notes", block -> { + block.spacing(0) + .padding(DocumentInsets.zero()) + .margin(new DocumentInsets(px(1280 - 1252), 0, 0, NOTES_DISC_INSET)) + .keepWithNext(); + block.addRow("NotesRow", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .columns(DocumentRowColumn.fixed(NOTES_TEXT_INDENT), + DocumentRowColumn.weight(1)); + row.addSection("NotesDisc", disc -> disc + .spacing(0) + .add(PaymentsWidgets.disc(PaymentsIcons.DOCUMENT, NOTES_SURFACE, + NOTES_DISC_D, NOTES_GLYPH))); + row.addSection("NotesText", text -> { + text.spacing(0); + text.addParagraph(p -> p + .name("NotesLabel") + .text(notes.heading()) + .textStyle(style(NOTES_LABEL_SIZE, ACCENT, + DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets( + capOffset(1285 - 1280, NOTES_LABEL_SIZE), 0, 0, 0))); + text.addSection("NotesBody", lines -> { + lines.spacing(gap(NOTES_PITCH, PaymentsStyles.NOTES_BODY_SIZE)) + .margin(new DocumentInsets( + px(1307 - 1285) - LINE_BOX * NOTES_LABEL_SIZE + + TEXT_TOP_BEARING * (NOTES_LABEL_SIZE + - PaymentsStyles.NOTES_BODY_SIZE), 0, 0, 0)); + PaymentsWidgets.textLines(lines, "NotesLine", notes.paragraphs(), + PaymentsStyles.NOTES_BODY_SIZE, MUTED); + }); + }); + }); + }); + } + + private static void renderFooterRule(PageFlowBuilder page) { + page.addLine(line -> line + .name("FooterRule") + .horizontal(FOOTER_RULE_W) + .thickness(RULE_THIN) + .color(RULE_STRONG) + // One design px past the content box on the left, two on the + // right — measured, and small enough to look like a rounding + // error until the renderer refuses a line wider than its box. + .margin(new DocumentInsets( + FOOTER_RULE_GAP_ABOVE, + -FOOTER_RULE_OVERHANG_R, + FOOTER_RULE_GAP_BELOW, + -FOOTER_RULE_OVERHANG_L))); + } + + private static void renderFooter(PageFlowBuilder page, InvoiceNotesBlock notes, + InvoicePaymentBlock payment) { + page.addRow("DocumentFooter", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .columns(DocumentRowColumn.fixed(FOOTER_SPLIT_X), + DocumentRowColumn.weight(1)); + row.addSection("FooterDue", cell -> renderDue(cell, payment)); + row.addSection("FooterSupport", cell -> { + cell.spacing(0) + .borders(DocumentBorders.left(DocumentStroke.of(DIVIDER, RULE_THIN))) + .padding(new DocumentInsets(0, 0, 0, FOOTER_SUPPORT_CELL_INSET)); + renderSupport(cell, notes, payment); + }); + }); + } + + /** When the money is wanted, and what to quote when sending it. */ + private static void renderDue(SectionBuilder cell, InvoicePaymentBlock payment) { + cell.spacing(0).padding(new DocumentInsets(0, 0, 0, FOOTER_DUE_ICON_INSET)); + PaymentsWidgets.layeredRow(cell, "FooterDueRow", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .margin(new DocumentInsets(px(1404 - 1397), 0, 0, 0)) + .columns(DocumentRowColumn.fixed(FOOTER_DUE_ICON_COL), + DocumentRowColumn.weight(1)); + row.addSection("FooterDueIcon", glyph -> glyph + .spacing(0) + // A disc centres its glyph, so the icon box's own padding + // cancels there. A bare glyph leading a text row does not: + // the padding sits between the column's edge and the ink and + // has to be taken back off. + .margin(new DocumentInsets(-glyphPad(37), 0, 0, -glyphPad(37))) + .add(PaymentsWidgets.glyphNode(PaymentsIcons.CALENDAR, FOOTER_DUE_ICON, + HorizontalAlign.LEFT))); + row.addSection("FooterDueText", text -> { + text.spacing(0); + text.addParagraph(p -> p + .name("FooterDueTitle") + .text(dueTitle(payment)) + .textStyle(style(FOOTER_DUE_TITLE_SIZE, INK, + DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets( + capOffset(1408 - 1404, FOOTER_DUE_TITLE_SIZE), 0, 0, 0))); + if (!payment.instruction().isBlank()) { + text.addParagraph(p -> p + .name("FooterDueSubtitle") + .text(payment.instruction()) + .textStyle(style(FOOTER_SUB_SIZE, BODY, + DocumentTextDecoration.DEFAULT)) + .margin(new DocumentInsets( + px(1428 - 1408) - LINE_BOX * FOOTER_DUE_TITLE_SIZE + + TEXT_TOP_BEARING + * (FOOTER_DUE_TITLE_SIZE - FOOTER_SUB_SIZE), + 0, 0, 0))); + } + }); + }); + } + + /** + * The design sets this line in capitals, so the preset uppercases whichever + * of the two due strings the document filled — the emphasis when it has one, + * the notice itself otherwise. + */ + private static String dueTitle(InvoicePaymentBlock payment) { + String text = payment.dueNoticeEmphasis().isBlank() + ? payment.dueNotice() + : payment.dueNoticeEmphasis(); + return text.toUpperCase(Locale.ROOT); + } + + /** Who to ask, and how to reach them. */ + private static void renderSupport(SectionBuilder cell, InvoiceNotesBlock notes, + InvoicePaymentBlock payment) { + PaymentsWidgets.layeredRow(cell, "FooterSupportRow", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .margin(new DocumentInsets(px(1405 - 1397), 0, 0, 0)) + .columns(DocumentRowColumn.fixed(FOOTER_SUPPORT_ICON_COL), + DocumentRowColumn.weight(1)); + row.addSection("FooterSupportIcon", glyph -> glyph + .spacing(0) + .margin(new DocumentInsets(-glyphPad(39), 0, 0, -glyphPad(39))) + .add(PaymentsWidgets.glyphNode(PaymentsIcons.SUPPORT, FOOTER_SUPPORT_ICON, + HorizontalAlign.LEFT))); + row.addSection("FooterSupportText", text -> { + text.spacing(0); + if (!payment.signOff().isBlank()) { + text.addParagraph(p -> p + .name("FooterSupportTitle") + .text(payment.signOff()) + .textStyle(style(FOOTER_SUPPORT_TITLE_SIZE, INK, + DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets( + capOffset(1408 - 1405, FOOTER_SUPPORT_TITLE_SIZE), 0, 0, 0))); + } + // Separate runs, so each address reaches the PDF as a real + // annotation rather than as coloured text. + text.addParagraph(p -> { + p.name("FooterSupportContacts"); + boolean hasEmail = !notes.contactEmail().isBlank(); + if (hasEmail) { + p.inlineText(notes.contactEmail(), + style(FOOTER_SUB_SIZE, ACCENT, DocumentTextDecoration.DEFAULT), + new DocumentLinkOptions("mailto:" + notes.contactEmail())); + } + if (!notes.contactPhone().isBlank()) { + if (hasEmail) { + p.inlineText(" | ", style(FOOTER_SUB_SIZE, MUTED, + DocumentTextDecoration.DEFAULT)); + } + String dialled = telUri(notes.contactPhone()); + if (dialled == null) { + p.inlineText(notes.contactPhone(), style(FOOTER_SUB_SIZE, BODY, + DocumentTextDecoration.DEFAULT)); + } else { + p.inlineText(notes.contactPhone(), style(FOOTER_SUB_SIZE, BODY, + DocumentTextDecoration.DEFAULT), + new DocumentLinkOptions(dialled)); + } + } + p.margin(new DocumentInsets( + px(1432 - 1408) - LINE_BOX * FOOTER_SUPPORT_TITLE_SIZE + + TEXT_TOP_BEARING + * (FOOTER_SUPPORT_TITLE_SIZE - FOOTER_SUB_SIZE), 0, 0, 0)); + }); + }); + }); + } + + /** A printed number as something a reader can dial, or {@code null}. */ + private static String telUri(String phone) { + String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsIcons.java new file mode 100644 index 000000000..3d59df9ee --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsIcons.java @@ -0,0 +1,94 @@ +package com.demcha.compose.document.templates.invoice.presets; + +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.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Payments invoice marks: the two party glyphs, the + * six a service line may take, and the four the preset places itself — the + * bank on the payment card, the document on the notes, the calendar on the due + * block and the headset on the support block. + * + *

      They ship inside the templates artifact under + * {@code templates/invoice/payments/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 sheet that repeats a mark reads each file once per JVM.

      + * + *

      The set is coloured, not tinted

      + * + *

      Each glyph carries its colour in its own markup, in one of the design's + * two tints: ink for the marks that sit inside a lavender disc, accent for the + * ones that stand on the page. A token therefore names a glyph and the + * tint it is drawn in, which is why {@link #HEADSET} and {@link #SUPPORT} are + * the same drawing under two names — one opens a service line inside a disc, + * the other closes the sheet on the page.

      + * + *

      {@link #LINE_TOKENS} is the vocabulary a document names through + * {@code InvoiceServiceLines.Line.icon()}. It is scoped to this preset — + * another preset packages its own set.

      + */ +final class PaymentsIcons { + + static final String BILL_TO = "bill-to"; + static final String SHIP_TO = "ship-to"; + static final String BANK = "bank"; + static final String DOCUMENT = "document"; + static final String CALENDAR = "calendar"; + static final String SUPPORT = "support"; + static final String HEADSET = "headset"; + + private static final String ICON_ROOT = "/templates/invoice/payments/icons/"; + + /** Every mark this preset packages. */ + private static final Set TOKENS = Set.of( + BILL_TO, SHIP_TO, BANK, DOCUMENT, CALENDAR, SUPPORT, + "card", "card-settings", "shield", "globe", "mobile", HEADSET); + + /** The marks a document may name on a service line. */ + static final Set LINE_TOKENS = Set.of( + "card", "card-settings", "shield", "globe", "mobile", HEADSET); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private PaymentsIcons() { + } + + /** + * Reads one mark. + * + * @param token one of the packaged tokens + * @return the parsed icon + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error + */ + static SvgIcon icon(String token) { + if (!TOKENS.contains(token)) { + throw new IllegalArgumentException( + "Unknown payments invoice icon token '" + token + + "'. This preset packages " + LINE_TOKENS.stream().sorted().toList() + + " for a service line's mark."); + } + return CACHE.computeIfAbsent(token, PaymentsIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = PaymentsIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing payments invoice icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read payments invoice icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java new file mode 100644 index 000000000..a51312a8b --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java @@ -0,0 +1,167 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageMarginRule; +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.invoice.StructuredInvoiceData; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CONTINUATION_MARGIN; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PAGE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PAGE_MARGIN; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PAGE_NUMBER_BAND; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PAGE_NUMBER_SIZE; + +/** + * Payments — a lavender-and-navy invoice: a masthead crossed by a diagonal + * band, a half-split issuer and metadata header, two addressed parties, a + * marked line-item table, a settlement row pairing bank details against the + * totals, a note block and a two-cell document footer. + * + *

      It flows

      + * + *

      Unlike most presets in this package the sheet is not drawn for one page. + * The design shows six service lines and a real month of usage brings dozens, + * so the table is the region that grows: its header repeats on every page it + * reaches, a continuation page reserves a deeper bottom margin than page one, + * and every page carries its number. Pagination here is load-bearing rather + * than incidental — a financial record that runs over has to make a missing + * page detectable.

      + * + *

      The lockup is the caller's

      + * + *

      The design's mark occupies a measured 136 × 55.3 design px box beside the + * title. What fills it comes from {@code InvoiceBrand}: a document that brings + * a logo has it drawn to that height, so a wider or narrower mark keeps the + * design's optical weight; a document that brings only a name has the name set + * as a wordmark. The templates artifact carries no mark of its own.

      + * + *

      One column, not five

      + * + *

      The table has an outer box and a rule between every row and no interior + * verticals, which is exactly what a single-column table draws — a cell strokes + * all four of its own edges, and a one-column table has no interior vertical + * edge. The five columns are a row inside each cell, on shares of the table's + * width. Building it the other way round, with the box from a stroked section + * wrapped round the table, is wrong on a document that paginates: a section's + * box fills its page fragment rather than hugging its rows, so every + * continuation page would end with an empty bordered strip.

      + * + *

      Every horizontal pair inside a cell is a wrapped row

      + * + *

      A row nested directly in a row cell is refused by the layout compiler, so + * each such pair — a party's mark and its label, a line's mark and its text, + * the card's fields, the totals grid — is a row wrapped in a single layer of a + * stack.

      + * + *

      What the document says, and what the preset chooses

      + * + *

      A service line names its own mark through + * {@code InvoiceServiceLines.Line.icon()}, from this preset's own vocabulary, + * and an unknown token is reported as a data error naming the set. A line with + * no token is drawn without a mark. The other four marks are the preset's: + * which glyph opens the bill-to block, the payment card, the notes and the two + * footer cells is a property of the design rather than of the document.

      + * + *

      Figures are written with the locale stated rather than inherited, so the + * same data renders the same sheet on any machine. The currency is named once + * in the amount column's header and its symbol carried on each figure.

      + * + *

      Fonts

      + * + *

      The sheet is set in Lato throughout. The templates artifact carries no + * fonts — register the family on the session, or the engine substitutes and the + * measured geometry no longer matches the type sitting in it.

      + * + *

      Usage:

      + *
      {@code
      + * DocumentTemplate template = PaymentsInvoice.create();
      + * template.compose(session, invoice);
      + * }
      + * + * @since 2.2.3 + */ +public final class PaymentsInvoice { + + /** Stable identifier of this preset. */ + public static final String ID = "payments-invoice"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Payments Invoice"; + + private PaymentsInvoice() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link StructuredInvoiceData} + */ + 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, StructuredInvoiceData data) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(data, "data"); + + // Every length on the sheet is a share of the design's own grid, so + // the preset sets the page and its margins rather than following + // what the caller configured. + document.pageSize(PAGE); + document.margin(PAGE_MARGIN); + document.pageMargins(List.of(PageMarginRule.from(2, CONTINUATION_MARGIN))); + renderPageNumber(document); + + String currency = data.currencyCode(); + document.pageFlow(page -> { + page.name("PaymentsInvoice").padding(DocumentInsets.zero()).spacing(0); + PaymentsMasthead.render(page, data.brand(), data.supplier(), data.masthead()); + PaymentsParties.render(page, data.billTo(), data.shipTo()); + PaymentsLines.render(page, data.serviceLines(), currency); + PaymentsSettlement.render(page, data.payment(), data.totals(), currency); + PaymentsClosing.render(page, data.notes(), data.payment()); + }); + } + + /** + * The only chrome the sheet has, and an addition rather than a + * reproduction: the design is one page and carries no number. + * + *

      The height is stated because a default band would take more than + * the bottom margin leaves and push the footer onto a second page. + * Sized to the margin, the band sits inside it rather than taking + * content space, and the type is sized to the band rather than the + * other way round.

      + */ + private static void renderPageNumber(DocumentSession document) { + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .centerText("Page {page} of {pages}") + .height((float) PAGE_NUMBER_BAND) + .fontSize((float) PAGE_NUMBER_SIZE) + .textColor(MUTED) + .showSeparator(false) + .build()); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsLines.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsLines.java new file mode 100644 index 000000000..62186a101 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsLines.java @@ -0,0 +1,237 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.RowBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +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.DocumentTextDecoration; +import com.demcha.compose.document.table.DocumentTableCell; +import com.demcha.compose.document.table.DocumentTableColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ACCENT_SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.AMOUNT_PAD_R; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CELL_AMOUNT_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CELL_PAD_R; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CELL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.COLUMN_SHARES; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DESC_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.HEADER_CELL_STYLE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ITEM_CELL_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ITEM_CELL_STYLE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ITEM_DISC_GAP; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ITEM_SUB_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ITEM_SUB_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ITEM_TEXT_W; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ITEM_TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TABLE_HEAD_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TABLE_HEAD_SMALL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TEXT_TOP_BEARING; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.gap; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.style; + +/** + * The service lines. + * + *

      One column, not five

      + * + *

      The design's table has an outer box and a rule between every row and + * no interior verticals — which is exactly the rule topology a + * single-column table draws, because a cell strokes all four of its own edges + * and a one-column table has no interior vertical edge to draw. The five + * columns are a row inside each cell, laid out on shares of the table's width, + * so they stay aligned down the page without the engine drawing a line between + * them.

      + * + *

      The alternative — unstroked cells, separators as line rows, and the outer + * box from a stroked section wrapped round the table — is wrong on a document + * that paginates: a section's box fills its page fragment rather than hugging + * its rows, so every continuation page would end with an empty bordered strip + * below its last line. Cell borders have no such problem, because the engine + * redraws each page's cell edges from the same styles and every fragment closes + * on its own last row.

      + */ +final class PaymentsLines { + + private PaymentsLines() { + } + + /** + * Draws the table. + * + * @param page the page flow + * @param serviceLines the columns and the lines + * @param currencyCode the ISO code the figures are stated in + */ + static void render(PageFlowBuilder page, InvoiceServiceLines serviceLines, + String currencyCode) { + page.addSection("LineItemsBox", box -> { + box.spacing(0) + .padding(DocumentInsets.zero()) + .margin(new DocumentInsets(px(596 - 567), 0, px(1060 - 1042), 0)); + box.addTable(table -> { + table.name("LineItems") + .width(CONTENT_W) + .columns(DocumentTableColumn.fixed(CONTENT_W)); + renderHeader(table, serviceLines.columns(), currencyCode); + List lines = serviceLines.lines(); + for (int i = 0; i < lines.size(); i++) { + table.rowCells(DocumentTableCell + .node(renderLine(lines.get(i), i, currencyCode)) + .withStyle(ITEM_CELL_STYLE)); + } + }); + }); + } + + /** + * The header repeats on every page its table reaches. It is one cell like + * every other row, so its own stroke draws the table's top edge and the rule + * under the band, and its fill is the tint. + */ + private static void renderHeader(TableBuilder table, InvoiceServiceLines.Columns columns, + String currencyCode) { + RowBuilder row = new RowBuilder(); + row.name("LineItemsHeader").spacing(0).columns(columnWidths()); + row.addParagraph(p -> p + .name("HeadDescription") + .text(columns.description()) + .textStyle(style(TABLE_HEAD_SIZE, INK, DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets(0, 0, 0, DESC_PAD_L))); + headCell(row, "HeadQuantity", columns.quantity(), TextAlign.CENTER, 0); + headCell(row, "HeadUnitPrice", columns.unitPrice(), TextAlign.RIGHT, CELL_PAD_R); + headCell(row, "HeadVat", columns.vat(), TextAlign.CENTER, 0); + // Two runs: the currency qualifier is set smaller than the label it + // follows, which one paragraph of one style cannot express. The design + // names the currency once, here, rather than on every amount. + row.addParagraph(p -> { + p.name("HeadAmount"); + p.inlineText(columns.amount(), style(TABLE_HEAD_SIZE, INK, DocumentTextDecoration.BOLD)); + if (!currencyCode.isBlank()) { + p.inlineText(" (" + currencyCode + ")", + style(TABLE_HEAD_SMALL_SIZE, INK, DocumentTextDecoration.BOLD)); + } + p.align(TextAlign.RIGHT); + p.padding(new DocumentInsets(0, AMOUNT_PAD_R, 0, 0)); + }); + table.headerCells(DocumentTableCell.node(row.build()).withStyle(HEADER_CELL_STYLE)) + .repeatHeader(); + } + + private static void headCell(RowBuilder row, String name, String label, TextAlign align, + double padRight) { + row.addParagraph(p -> p + .name(name) + .text(label) + .textStyle(style(TABLE_HEAD_SIZE, INK, DocumentTextDecoration.BOLD)) + .align(align) + .padding(new DocumentInsets(0, padRight, 0, 0))); + } + + /** + * The five columns as a row inside the row's single cell. Alignment differs + * per column and is part of the design rather than an accident: description + * left, quantity centred, unit price right, tax centred, amount right. + */ + private static DocumentNode renderLine(InvoiceServiceLines.Line line, int index, + String currencyCode) { + int n = index + 1; + RowBuilder row = new RowBuilder(); + row.name("Item" + n) + .spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(columnWidths()); + row.addSection("ItemDescription" + n, cell -> { + cell.spacing(0).padding(new DocumentInsets(0, 0, 0, ITEM_CELL_INSET)); + // Mark and text are a horizontal pair inside a row cell, which the + // layout compiler refuses as a bare row. + PaymentsWidgets.layeredRow(cell, "ItemBody" + n, body -> { + body.spacing(ITEM_DISC_GAP) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(DISC_D), + DocumentRowColumn.fixed(ITEM_TEXT_W)); + body.addSection("ItemDisc" + n, disc -> { + disc.spacing(0); + if (!line.icon().isBlank()) { + disc.add(PaymentsWidgets.disc(line.icon(), ACCENT_SURFACE)); + } + }); + body.addSection("ItemText" + n, text -> { + text.spacing(0); + text.addParagraph(p -> p + .name("ItemTitle" + n) + .text(line.title()) + .textStyle(style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD))); + if (!line.description().isBlank()) { + text.addParagraph(p -> p + .name("ItemSubtitle" + n) + .text(line.description()) + .textStyle(style(ITEM_SUB_SIZE, MUTED, + DocumentTextDecoration.DEFAULT)) + .lineSpacing(gap(ITEM_SUB_PITCH, ITEM_SUB_SIZE)) + .margin(new DocumentInsets( + px(668 - 648) - LINE_BOX * ITEM_TITLE_SIZE + + TEXT_TOP_BEARING + * (ITEM_TITLE_SIZE - ITEM_SUB_SIZE), + 0, 0, 0))); + } + }); + }); + }); + valueCell(row, "ItemQuantity" + n, PaymentsText.quantity(line.quantity()), + CELL_SIZE, BODY, DocumentTextDecoration.DEFAULT, TextAlign.CENTER, 0); + valueCell(row, "ItemUnitPrice" + n, PaymentsText.amount(currencyCode, line.unitPrice()), + CELL_SIZE, BODY, DocumentTextDecoration.DEFAULT, TextAlign.RIGHT, CELL_PAD_R); + valueCell(row, "ItemVat" + n, line.vatRate(), + CELL_SIZE, BODY, DocumentTextDecoration.DEFAULT, TextAlign.CENTER, 0); + valueCell(row, "ItemAmount" + n, PaymentsText.amount(currencyCode, line.amount()), + CELL_AMOUNT_SIZE, INK, DocumentTextDecoration.BOLD, TextAlign.RIGHT, AMOUNT_PAD_R); + return row.build(); + } + + private static void valueCell(RowBuilder row, String name, String value, double size, + DocumentColor color, DocumentTextDecoration decoration, + TextAlign align, double padRight) { + row.addParagraph(p -> p + .name(name) + .text(value) + .textStyle(style(size, color, decoration)) + .align(align) + // padding, not margin: a paragraph's right margin inside a row + // column is taken twice — once off the box's width and again as + // an offset — so a 22 px inset would land the text 44 px in. + .padding(new DocumentInsets(0, padRight, 0, 0))); + } + + /** + * The five column widths as shares of the table's own width. The last takes + * whatever the others leave: five independently rounded shares sum to the + * width plus a half-thousandth of a point, and the engine refuses a row + * narrower than its columns. + */ + private static DocumentRowColumn[] columnWidths() { + DocumentRowColumn[] columns = new DocumentRowColumn[COLUMN_SHARES.length]; + double assigned = 0; + for (int i = 0; i < COLUMN_SHARES.length - 1; i++) { + double width = CONTENT_W * COLUMN_SHARES[i]; + assigned += width; + columns[i] = DocumentRowColumn.fixed(width); + } + columns[COLUMN_SHARES.length - 1] = DocumentRowColumn.fixed(CONTENT_W - assigned); + return columns; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsMasthead.java new file mode 100644 index 000000000..c603a47f8 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsMasthead.java @@ -0,0 +1,319 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.PathBuilder; +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.LayerAlign; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.style.DocumentBorders; +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.DocumentTextDecoration; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ACCENT_BAR_H; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ACCENT_BAR_OFFSET; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ACCENT_BAR_W; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BAND_BOTTOM_PX; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BAND_H; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BAND_LAVENDER; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BAND_LAVENDER_QUAD; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BAND_LEFT_PX; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BAND_NAVY_QUAD; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BAND_RIGHT_PX; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BAND_W; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BRAND_LOCKUP_H; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BRAND_LOCKUP_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DIVIDER; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.HEADER_RULE_OVERHANG_L; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.HEADER_RULE_OVERHANG_R; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.HEADER_RULE_W; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.HEADER_STACK_BOTTOM_PX; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ISSUER_NAME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.MARGIN_T; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.META_COL_X; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.META_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.META_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.META_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.META_VALUE_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.META_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.RULE_MED; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.RULE_SOFT; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TEXT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TEXT_TOP_BEARING; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TITLE_DROP; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.WORDMARK_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.gap; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.style; + +/** + * The header: the diagonal band, the lockup beside the title, the issuer block + * against the metadata grid, and the rule that closes them. + * + *

      One stack, because two of its three parts are page furniture

      + * + *

      The band bleeds past the top margin to the paper's edge and the accent bar + * stands left of the content box, so neither belongs to the flow. Both are + * positioned by offset from the stack's top-left; only the header content is a + * layer.

      + * + *

      The lockup box is the design's, whatever fills it

      + * + *

      The design's mark measures 136 × 55.3 design px. A document that brings a + * logo has it drawn to that height, so a wider or narrower mark keeps the + * design's optical weight; a document that brings only a name has the name set + * as a wordmark instead. Either way the title beside it does not move, because + * the title is a left-anchored member of the metadata column rather than a + * right-anchored member of the page.

      + */ +final class PaymentsMasthead { + + private PaymentsMasthead() { + } + + /** + * Draws the header and its closing rule. + * + * @param page the page flow + * @param brand the lockup + * @param supplier who is invoicing + * @param masthead the title and the metadata rows + */ + static void render(PageFlowBuilder page, InvoiceBrand brand, InvoiceContactBlock supplier, + InvoiceMasthead masthead) { + page.addLayerStack(stack -> stack + .name("MastheadStack") + .padding(DocumentInsets.zero()) + .position(band(), px(BAND_LEFT_PX - 51), -MARGIN_T, LayerAlign.TOP_LEFT, 0) + .position(accentBar(), ACCENT_BAR_OFFSET, 0, LayerAlign.TOP_LEFT, 0) + .layer(headerContent(brand, supplier, masthead), LayerAlign.TOP_LEFT, 1)); + renderHeaderRule(page); + } + + /** The lavender quadrilateral, then the navy one over it. */ + private static DocumentNode band() { + SectionBuilder band = new SectionBuilder(); + band.name("HeaderBand").spacing(0).padding(DocumentInsets.zero()); + band.addLayerStack(stack -> stack + .name("HeaderBandLayers") + .layer(quad("BandLavender", BAND_LAVENDER, BAND_LAVENDER_QUAD), + LayerAlign.TOP_LEFT, 0) + .layer(quad("BandNavy", INK, BAND_NAVY_QUAD), LayerAlign.TOP_LEFT, 1)); + return band.build(); + } + + /** + * One quadrilateral of the band. The corners arrive in page design pixels + * and are normalised here — {@link #nx} and {@link #ny} are the only place + * the bottom-left origin of a path's coordinate space is dealt with. + */ + private static DocumentNode quad(String name, DocumentColor fill, double[][] corners) { + PathBuilder path = new PathBuilder(); + path.name(name).size(BAND_W, BAND_H).fillColor(fill); + path.moveTo(nx(corners[0][0]), ny(corners[0][1])); + for (int i = 1; i < corners.length; i++) { + path.lineTo(nx(corners[i][0]), ny(corners[i][1])); + } + return path.closePath().build(); + } + + private static double nx(double pagePx) { + return (pagePx - BAND_LEFT_PX) / (BAND_RIGHT_PX - BAND_LEFT_PX); + } + + /** Page y runs down; a path's y runs up from its own bottom edge. */ + private static double ny(double pagePx) { + return 1.0 - pagePx / BAND_BOTTOM_PX; + } + + private static DocumentNode accentBar() { + SectionBuilder holder = new SectionBuilder(); + holder.name("AccentBarHolder").spacing(0).padding(DocumentInsets.zero()); + holder.addLine(line -> line + .name("HeaderAccentBar") + .vertical(ACCENT_BAR_H) + .thickness(ACCENT_BAR_W) + .color(ACCENT)); + return holder.build(); + } + + private static DocumentNode headerContent(InvoiceBrand brand, InvoiceContactBlock supplier, + InvoiceMasthead masthead) { + SectionBuilder content = new SectionBuilder(); + content.name("HeaderContent").spacing(0).padding(DocumentInsets.zero()); + content.addRow("Masthead", row -> renderLockupRow(row, brand, masthead)); + content.addRow("HeaderSplit", row -> { + // The two cells of the split do not share a top edge: the metadata + // block starts 11 px below the issuer name's box. + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + // 12 px by the design's own ink gap, less the 2.5 the title's + // line box gives back. + .margin(new DocumentInsets(px(12 - 2.5), 0, 0, 0)) + .columns(DocumentRowColumn.fixed(META_COL_X), DocumentRowColumn.weight(1)); + row.addSection("IssuerBlock", cell -> renderIssuer(cell, supplier)); + row.addSection("InvoiceMeta", cell -> { + cell.spacing(0).padding(new DocumentInsets(px(11), 0, 0, 0)); + renderMeta(cell, masthead.entries()); + }); + }); + return content.build(); + } + + /** + * TOP, not CENTER: the title's line box is much taller than the lockup, so + * centring would push the lockup down the row it is supposed to set the top + * edge of. + */ + private static void renderLockupRow(RowBuilder row, InvoiceBrand brand, + InvoiceMasthead masthead) { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .margin(new DocumentInsets(px(46 - 28), 0, 0, 0)) + .columns(DocumentRowColumn.fixed(META_COL_X), DocumentRowColumn.weight(1)); + row.addSection("BrandLockup", cell -> { + cell.spacing(0).padding(new DocumentInsets(0, 0, 0, BRAND_LOCKUP_INSET)); + if (brand.logo() != null) { + cell.add(new ImageBuilder() + .name("BrandLogo") + .source(brand.logo()) + .height(BRAND_LOCKUP_H) + .build()); + } else if (!brand.name().isBlank()) { + cell.addParagraph(p -> p + .name("BrandWordmark") + .text(brand.name()) + .textStyle(style(WORDMARK_SIZE, ACCENT, DocumentTextDecoration.BOLD))); + } + }); + row.addParagraph(p -> p + .name("InvoiceTitle") + .text(masthead.title()) + .textStyle(style(TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets(TITLE_DROP, 0, 0, 0))); + } + + /** + * The issuer's name, its address, and its registrations — the last set off + * by exactly two line pitches. That gap is authored, not drift. + */ + private static void renderIssuer(SectionBuilder cell, InvoiceContactBlock supplier) { + cell.spacing(0).padding(new DocumentInsets(0, 0, 0, TEXT_INSET)); + cell.addParagraph(p -> p + .name("IssuerName") + .text(supplier.legalName()) + .textStyle(style(ISSUER_NAME_SIZE, INK, DocumentTextDecoration.BOLD))); + cell.addSection("IssuerAddress", lines -> { + lines.spacing(gap(21.33, BODY_SIZE)) + .margin(new DocumentInsets(px(172 - 140) - LINE_BOX * ISSUER_NAME_SIZE + + TEXT_TOP_BEARING * (ISSUER_NAME_SIZE - BODY_SIZE), 0, 0, 0)); + PaymentsWidgets.textLines(lines, "IssuerAddressLine", supplier.addressLines(), + BODY_SIZE, BODY); + }); + List registrations = registrationLines(supplier); + if (!registrations.isEmpty()) { + cell.addSection("IssuerRegistration", lines -> { + lines.spacing(gap(21.0, BODY_SIZE)) + .margin(new DocumentInsets(gap(2 * 21.33, BODY_SIZE), 0, 0, 0)); + PaymentsWidgets.textLines(lines, "IssuerRegistrationLine", registrations, + BODY_SIZE, BODY); + }); + } + } + + /** The two labelled registrations a supplier may carry, as printed lines. */ + private static List registrationLines(InvoiceContactBlock supplier) { + List lines = new ArrayList<>(); + addRegistration(lines, supplier.registrationLabel(), supplier.registrationNumber()); + addRegistration(lines, supplier.taxRegistrationLabel(), supplier.taxRegistrationNumber()); + return lines; + } + + private static void addRegistration(List lines, String label, String number) { + if (number == null || number.isBlank()) { + return; + } + lines.add(label == null || label.isBlank() ? number : label + " " + number); + } + + /** + * Two stacks side by side rather than a row per entry, so the divider + * between them is one continuous border. It is the value column's left + * border, not a node: that is why it begins with the first row and ends with + * the last rather than running the block's full box. + * + *

      The two stacks carry different spacings because their type sizes differ + * — a bold label and a regular value have different line boxes — and the + * shared pitch is what makes their rows line up.

      + */ + private static void renderMeta(SectionBuilder cell, List entries) { + PaymentsWidgets.layeredRow(cell, "MetaGrid", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .columns(DocumentRowColumn.fixed(META_LABEL_W), DocumentRowColumn.weight(1)); + row.addSection("MetaLabels", labels -> { + labels.spacing(gap(META_PITCH, META_LABEL_SIZE)); + int index = 0; + for (InvoiceMasthead.Entry entry : entries) { + String name = "MetaLabel" + (++index); + labels.addParagraph(p -> p + .name(name) + .text(entry.label()) + .textStyle(style(META_LABEL_SIZE, INK, DocumentTextDecoration.BOLD))); + } + }); + row.addSection("MetaValues", values -> { + values.spacing(gap(META_PITCH, META_VALUE_SIZE)) + .borders(DocumentBorders.left(DocumentStroke.of(DIVIDER, RULE_MED))) + .padding(new DocumentInsets(0, 0, 0, META_VALUE_INSET)); + int index = 0; + for (InvoiceMasthead.Entry entry : entries) { + String name = "MetaValue" + (++index); + values.addParagraph(p -> p + .name(name) + .text(entry.value()) + .textStyle(entry.emphasized() + ? style(META_LABEL_SIZE, ACCENT, DocumentTextDecoration.BOLD) + : style(META_VALUE_SIZE, BODY, + DocumentTextDecoration.DEFAULT))); + } + }); + }); + } + + /** + * Wider than the content box on both sides — it is furniture for the header + * block rather than a divider between two pieces of content, which is why it + * overhangs. Its top margin is negative because the band, not the content, + * is the tallest layer of the stack above it. + */ + private static void renderHeaderRule(PageFlowBuilder page) { + page.addLine(line -> line + .name("HeaderRule") + .horizontal(HEADER_RULE_W) + .thickness(RULE_MED) + .color(RULE_SOFT) + .margin(new DocumentInsets( + px(359 - HEADER_STACK_BOTTOM_PX), + -HEADER_RULE_OVERHANG_R, + px(378 - 361), + -HEADER_RULE_OVERHANG_L))); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsParties.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsParties.java new file mode 100644 index 000000000..8ed94a8ed --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsParties.java @@ -0,0 +1,127 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.style.DocumentBorders; +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.DocumentTextDecoration; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ACCENT_SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DIVIDER; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PARTY_ADDRESS_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PARTY_CELL_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PARTY_DISC_GAP; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PARTY_DISC_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PARTY_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PARTY_NAME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PARTY_TEXT_INDENT; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.RULE_THIN; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TEXT_TOP_BEARING; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.capOffset; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.gap; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.style; + +/** + * The addressed parties: who is billed, and where the work went. + * + *

      One method draws both — they are the same component with different data, + * down to the registration line only one of them usually has. The divider + * belongs to the split, so it is the second cell's own left edge rather than a + * rule drawn between the two.

      + */ +final class PaymentsParties { + + private PaymentsParties() { + } + + /** + * Draws the row. + * + * @param page the page flow + * @param billTo who is billed + * @param shipTo where the work went, or a party with no name when absent + */ + static void render(PageFlowBuilder page, InvoiceRecipient billTo, InvoiceRecipient shipTo) { + List parties = new ArrayList<>(); + parties.add(new Party(PaymentsIcons.BILL_TO, billTo)); + if (!shipTo.name().isBlank()) { + parties.add(new Party(PaymentsIcons.SHIP_TO, shipTo)); + } + + page.addRow("PartiesRow", row -> { + row.spacing(0).verticalAlign(RowVerticalAlign.TOP).evenWeights(); + for (int i = 0; i < parties.size(); i++) { + Party party = parties.get(i); + boolean first = i == 0; + row.addSection("Party" + (i + 1), cell -> { + cell.spacing(0); + if (first) { + cell.padding(new DocumentInsets(0, 0, 0, PARTY_DISC_INSET)); + } else { + cell.borders(DocumentBorders.left(DocumentStroke.of(DIVIDER, RULE_THIN))) + .padding(new DocumentInsets(0, 0, 0, PARTY_CELL_INSET)); + } + renderParty(cell, party); + }); + } + }); + } + + private static void renderParty(SectionBuilder cell, Party party) { + InvoiceRecipient who = party.recipient(); + PaymentsWidgets.layeredRow(cell, "PartyHead", row -> { + row.spacing(PARTY_DISC_GAP) + .verticalAlign(RowVerticalAlign.TOP) + .columns(DocumentRowColumn.fixed(DISC_D), DocumentRowColumn.weight(1)); + row.addSection("PartyDisc", disc -> disc + .spacing(0) + .add(PaymentsWidgets.disc(party.token(), ACCENT_SURFACE))); + row.addParagraph(p -> p + .name("PartyLabel") + .text(who.heading()) + .textStyle(style(PARTY_LABEL_SIZE, INK, DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets(capOffset(391 - 378, PARTY_LABEL_SIZE), 0, 0, 0))); + }); + cell.addSection("PartyBody", block -> { + block.spacing(0).padding(new DocumentInsets(0, 0, 0, PARTY_TEXT_INDENT)); + block.addParagraph(p -> p + .name("PartyName") + .text(who.name()) + .textStyle(style(PARTY_NAME_SIZE, INK, DocumentTextDecoration.BOLD))); + block.addSection("PartyAddress", lines -> { + lines.spacing(gap(PARTY_ADDRESS_PITCH, BODY_SIZE)) + .margin(new DocumentInsets(px(451 - 423) - LINE_BOX * PARTY_NAME_SIZE + + TEXT_TOP_BEARING * (PARTY_NAME_SIZE - BODY_SIZE), 0, 0, 0)); + PaymentsWidgets.textLines(lines, "PartyAddressLine", who.addressLines(), + BODY_SIZE, BODY); + }); + // The subline is drawn UNDER the address, set off by the design's own + // gap: this sheet uses it for the registration a billed party prints + // below where it is, not for a second line of its name. + if (!who.subline().isBlank()) { + block.addParagraph(p -> p + .name("PartySubline") + .text(who.subline()) + .textStyle(style(BODY_SIZE, BODY, DocumentTextDecoration.DEFAULT)) + .margin(new DocumentInsets(gap(552 - 513, BODY_SIZE), 0, 0, 0))); + } + }); + } + + /** A party and the mark the preset gives it. */ + private record Party(String token, InvoiceRecipient recipient) { + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsSettlement.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsSettlement.java new file mode 100644 index 000000000..b3ea7847c --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsSettlement.java @@ -0,0 +1,273 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentBorders; +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.DocumentTextDecoration; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; + +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_DISC_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_DISC_SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_FIELD_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_GLYPH; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_HEAD_BOTTOM_PX; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_HEAD_GAP; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_HEAD_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_PAD; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_TEXT_INDENT; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CARD_W; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DIVIDER; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DUE_PAD; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DUE_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DUE_SUB_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.RULE_MED; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.RULE_THIN; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.SETTLEMENT_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.SETTLEMENT_RIGHT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TEXT_TOP_BEARING; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TOTALS_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TOTALS_PAD_R; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TOTALS_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TOTALS_RULE_W; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TOTALS_TEXT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TOTALS_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TOTAL_DUE_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TOTAL_DUE_SUB_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.TOTAL_DUE_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.capOffset; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.gap; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.style; + +/** + * The settlement row: the payment card against the totals and the panel that + * closes them. + * + *

      The split is not the even one the two rows above it use — the card is + * narrower than the totals cell, and the divider sits inside the + * gutter rather than on either cell's edge. That asymmetry is in the design.

      + */ +final class PaymentsSettlement { + + private PaymentsSettlement() { + } + + /** + * Draws the row. + * + * @param page the page flow + * @param payment the bank details and the due notice + * @param totals the summed rows and the amount due + * @param currencyCode the ISO code the figures are stated in + */ + static void render(PageFlowBuilder page, InvoicePaymentBlock payment, + InvoiceTotalsBlock totals, String currencyCode) { + page.addRow("SettlementRow", row -> { + row.spacing(SETTLEMENT_GUTTER) + .verticalAlign(RowVerticalAlign.TOP) + .columns(DocumentRowColumn.fixed(CARD_W), DocumentRowColumn.weight(1)); + row.addSection("PaymentDetails", cell -> renderCard(cell, payment)); + row.addSection("Settlement", cell -> { + // The divider sits inside the gutter rather than on either cell's + // edge, so it is this cell's left border and the cell then pads + // itself back out to where the panel's edge actually is. + cell.spacing(0) + .borders(DocumentBorders.left(DocumentStroke.of(DIVIDER, RULE_THIN))) + .padding(new DocumentInsets(0, 0, 0, SETTLEMENT_RIGHT_INSET)); + renderTotals(cell, totals, currencyCode); + renderDuePanel(cell, payment, totals, currencyCode); + }); + }); + } + + /** + * A tinted rounded card with no border — the fill alone separates it from + * the page. Built from a fill, a radius and a padding rather than a panel + * helper, which takes one padding value where this card's insets are + * asymmetric. + */ + private static void renderCard(SectionBuilder cell, InvoicePaymentBlock payment) { + cell.spacing(0) + .fillColor(CARD_SURFACE) + .cornerRadius(CARD_RADIUS) + .padding(CARD_PAD) + .keepTogether(); + + PaymentsWidgets.layeredRow(cell, "CardHead", row -> { + row.spacing(CARD_HEAD_GAP) + .verticalAlign(RowVerticalAlign.TOP) + // The disc's own inset lives inside this column, so the column + // has to be wide enough for both — otherwise the heading + // starts on the disc's left edge plus the gap rather than on + // its right edge plus the gap. + .columns(DocumentRowColumn.fixed(CARD_DISC_INSET + CARD_DISC_D), + DocumentRowColumn.weight(1)); + row.addSection("CardDisc", disc -> disc + .spacing(0) + .padding(new DocumentInsets(0, 0, 0, CARD_DISC_INSET)) + .add(PaymentsWidgets.disc(PaymentsIcons.BANK, CARD_DISC_SURFACE, + CARD_DISC_D, CARD_GLYPH))); + row.addParagraph(p -> p + .name("CardLabel") + .text(payment.heading()) + .textStyle(style(CARD_HEAD_SIZE, ACCENT, DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets( + capOffset(1078 - 1065, CARD_HEAD_SIZE), 0, 0, 0))); + }); + + // Two stacks, as in the metadata grid: the rows line up on a shared + // pitch rather than on a two-column row each. + PaymentsWidgets.layeredRow(cell, "CardFields", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + // Measured from the head ROW's bottom edge, which the disc + // sets — not from the heading's own line box, which is + // shorter than the disc and therefore not what the fields + // follow. + .margin(new DocumentInsets(px(1110 - CARD_HEAD_BOTTOM_PX) + - TEXT_TOP_BEARING * CARD_LABEL_SIZE, 0, 0, CARD_TEXT_INDENT)) + .columns(DocumentRowColumn.fixed(CARD_LABEL_W), DocumentRowColumn.weight(1)); + row.addSection("CardFieldLabels", labels -> { + labels.spacing(gap(CARD_FIELD_PITCH, CARD_LABEL_SIZE)); + int index = 0; + for (InvoicePaymentBlock.Field field : payment.fields()) { + String name = "CardFieldLabel" + (++index); + labels.addParagraph(p -> p + .name(name) + .text(field.label()) + .textStyle(style(CARD_LABEL_SIZE, INK, DocumentTextDecoration.BOLD))); + } + }); + row.addSection("CardFieldValues", values -> { + values.spacing(gap(CARD_FIELD_PITCH, CARD_VALUE_SIZE)); + int index = 0; + for (InvoicePaymentBlock.Field field : payment.fields()) { + String name = "CardFieldValue" + (++index); + values.addParagraph(p -> p + .name(name) + .text(field.value()) + .textStyle(style(CARD_VALUE_SIZE, BODY, + DocumentTextDecoration.DEFAULT))); + } + }); + }); + } + + private static void renderTotals(SectionBuilder cell, InvoiceTotalsBlock totals, + String currencyCode) { + cell.addSection("Totals", block -> { + block.spacing(0) + .padding(new DocumentInsets(0, TOTALS_PAD_R, 0, TOTALS_TEXT_INSET)) + .margin(new DocumentInsets( + capOffset(1082 - 1060, TOTALS_LABEL_SIZE), 0, 0, 0)) + .keepTogether(); + PaymentsWidgets.layeredRow(block, "TotalsGrid", row -> { + row.spacing(0).verticalAlign(RowVerticalAlign.TOP).evenWeights(); + row.addSection("TotalsLabels", labels -> { + labels.spacing(gap(TOTALS_PITCH, TOTALS_LABEL_SIZE)); + int index = 0; + for (InvoiceTotalsBlock.Row entry : totals.rows()) { + String name = "TotalsLabel" + (++index); + labels.addParagraph(p -> p + .name(name) + .text(entry.label()) + .textStyle(style(TOTALS_LABEL_SIZE, INK, + DocumentTextDecoration.BOLD))); + } + }); + row.addSection("TotalsValues", values -> { + values.spacing(gap(TOTALS_PITCH, TOTALS_VALUE_SIZE)); + int index = 0; + for (InvoiceTotalsBlock.Row entry : totals.rows()) { + String name = "TotalsValue" + (++index); + values.addParagraph(p -> p + .name(name) + .text(PaymentsText.amount(currencyCode, entry.amount())) + .textStyle(style(TOTALS_VALUE_SIZE, BODY, + DocumentTextDecoration.DEFAULT)) + .align(TextAlign.RIGHT)); + } + }); + }); + }); + + cell.addLine(line -> line + .name("TotalsRule") + .horizontal(TOTALS_RULE_W) + .thickness(RULE_MED) + .color(DIVIDER) + // Measured cap-to-rule, less what the last label's box hangs + // below its own cap: the line box minus the top bearing, not the + // whole line box. + .margin(new DocumentInsets( + px(1154 - 1120) - (LINE_BOX - TEXT_TOP_BEARING) * TOTALS_LABEL_SIZE, + 0, + px(1173 - 1156), + 0))); + } + + /** + * Navy fill owning white type. CENTER, not TOP: the amount is centred + * against the label block rather than aligned to its first line. + * + *

      The line under the label is the payment block's due notice — the sheet + * says when the money is wanted twice, once here beside the amount and once + * in the footer, and both come from the same field.

      + */ + private static void renderDuePanel(SectionBuilder cell, InvoicePaymentBlock payment, + InvoiceTotalsBlock totals, String currencyCode) { + cell.addSection("TotalDuePanel", panel -> { + panel.spacing(0) + .fillColor(INK) + .cornerRadius(DUE_RADIUS) + .padding(DUE_PAD) + .keepTogether(); + PaymentsWidgets.layeredRow(panel, "TotalDueRow", row -> { + row.spacing(0).verticalAlign(RowVerticalAlign.CENTER).evenWeights(); + row.addSection("TotalDueText", text -> { + text.spacing(0); + text.addParagraph(p -> p + .name("TotalDueLabel") + .text(totals.totalLabel()) + .textStyle(style(TOTAL_DUE_LABEL_SIZE, SURFACE, + DocumentTextDecoration.BOLD))); + if (!payment.dueNotice().isBlank()) { + text.addParagraph(p -> p + .name("TotalDueSubLabel") + .text(payment.dueNotice()) + .textStyle(style(TOTAL_DUE_SUB_SIZE, SURFACE, + DocumentTextDecoration.DEFAULT)) + .margin(new DocumentInsets( + px(DUE_SUB_PITCH) - LINE_BOX * TOTAL_DUE_LABEL_SIZE + + TEXT_TOP_BEARING + * (TOTAL_DUE_LABEL_SIZE - TOTAL_DUE_SUB_SIZE), + 0, 0, 0))); + } + }); + row.addParagraph(p -> p + .name("TotalDueValue") + .text(PaymentsText.amount(currencyCode, totals.totalAmount())) + .textStyle(style(TOTAL_DUE_VALUE_SIZE, SURFACE, + DocumentTextDecoration.BOLD)) + .align(TextAlign.RIGHT)); + }); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsStyles.java new file mode 100644 index 000000000..8c76cc924 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsStyles.java @@ -0,0 +1,456 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.document.table.DocumentTableTextAnchor; +import com.demcha.compose.font.FontName; + +/** + * Design tokens for {@link PaymentsInvoice} — the palette, the type scale and + * the geometry every part of the sheet measures against. + * + *

      One scale, and one content box

      + * + *

      The design was drawn at 1055 px across an A4 page, so {@link #PX} converts + * every length below from that raster to points. The content box is the + * table's box, not the text's: body copy sits a further + * {@link #TEXT_INSET} inside it, while the table, the payment card and the + * total-due panel sit on it exactly, which is what makes it the page's real + * edge.

      + * + *

      Ink measurements against box measurements

      + * + *

      Every vertical distance read off the design is between two pieces of ink; + * every one the engine accepts is between two boxes. Text sits about + * {@link #TEXT_TOP_BEARING} of its size below its own box top — the half-leading + * of a 1.2× line box plus the run from the ascender down to the cap — so a gap + * read ink-to-ink loses that before it can be a margin. {@link #gap} and + * {@link #capOffset} are the two places that conversion happens.

      + * + *

      Sizes come from widths, not heights

      + * + *

      Each size below is a measured ink width divided by the face's own + * advance for the same string at unit cap. The two disagree for all-caps runs, + * where the body face sets about 6% wider than the design's at the same cap + * height, and width is the one to match: it keeps every glyph after the first in + * place, where matching the height would leave the run's right edge short by 6% + * of its length.

      + */ +final class PaymentsStyles { + + private PaymentsStyles() { + } + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + static final double PAGE_WIDTH = PAGE.width(); + + /** The design's raster is 1055 px wide; every length below came off it. */ + static final double PX = PAGE_WIDTH / 1055.0; + + static final double MARGIN_L = px(51); + static final double MARGIN_R = px(52); + static final double MARGIN_T = px(28); + + /** + * The band the page number sits in, measured up from the paper's edge, and + * page one's bottom margin, which is the same thing. + * + *

      The design is a one-page sheet and has no page number, but this preset + * flows, and a financial record that paginates has to make a missing page + * detectable. The band is reserved rather than merely drawn into: on a + * paginated invoice page one is all table, and without the margin the last + * row runs down to where the number is.

      + */ + static final double PAGE_NUMBER_BAND = px(32); + static final double MARGIN_B_FIRST = PAGE_NUMBER_BAND; + + /** + * A continuation page reserves more. Its last table row would otherwise end + * against the paper rather than against a margin, which page one never shows + * because its content stops well above the fold. + */ + static final double MARGIN_B_LATER = px(58); + + static final DocumentInsets PAGE_MARGIN = + new DocumentInsets(MARGIN_T, MARGIN_R, MARGIN_B_FIRST, MARGIN_L); + static final DocumentInsets CONTINUATION_MARGIN = + new DocumentInsets(MARGIN_T, MARGIN_R, MARGIN_B_LATER, MARGIN_L); + + /** Every width in this preset is a fraction of this: 952 design px. */ + static final double CONTENT_W = PAGE_WIDTH - MARGIN_L - MARGIN_R; + + /** How far body copy sits inside the content box the table defines. */ + static final double TEXT_INSET = px(11); + + static final DocumentColor ACCENT = DocumentColor.rgb(99, 91, 255); + static final DocumentColor INK = DocumentColor.rgb(14, 24, 72); + static final DocumentColor BODY = DocumentColor.rgb(46, 54, 92); + static final DocumentColor MUTED = DocumentColor.rgb(70, 76, 110); + static final DocumentColor SURFACE = DocumentColor.WHITE; + + /** + * Three lavender surfaces, not one. Sampled as rings inside each disc, clear + * of the glyph: the party and line item discs agree, the notes disc is two + * steps paler and the payment card's is two steps deeper. They look like one + * colour and measure as three. + */ + static final DocumentColor ACCENT_SURFACE = DocumentColor.rgb(224, 218, 253); + static final DocumentColor NOTES_SURFACE = DocumentColor.rgb(226, 222, 253); + static final DocumentColor CARD_DISC_SURFACE = DocumentColor.rgb(216, 208, 252); + static final DocumentColor CARD_SURFACE = DocumentColor.rgb(248, 247, 254); + static final DocumentColor TABLE_HEAD_FILL = DocumentColor.rgb(240, 238, 254); + static final DocumentColor BAND_LAVENDER = DocumentColor.rgb(205, 194, 248); + static final DocumentColor HAIRLINE = DocumentColor.rgb(227, 227, 238); + static final DocumentColor RULE_SOFT = DocumentColor.rgb(213, 208, 239); + static final DocumentColor RULE_STRONG = DocumentColor.rgb(159, 145, 222); + static final DocumentColor DIVIDER = DocumentColor.rgb(199, 191, 236); + + static final FontName FACE = FontName.LATO; + + /** + * The face's cap heights in ems. Regular and bold differ, and the difference + * matters: every size below is a measured cap divided by the ratio for the + * weight it is set in. + */ + private static final double CAP_RATIO_REGULAR = 0.7165; + private static final double CAP_RATIO_BOLD = 0.723; + + /** How far below its own box top a line of text sits. */ + static final double TEXT_TOP_BEARING = 0.235; + + /** + * {@code lineSpacing} is points added between lines over a line box + * of 1.2× the type size, so a measured pitch converts as + * {@code pitch - 1.2 * size}, never as a ratio. Section spacing works the + * same way: it is the gap between sibling boxes, so a measured top-to-top + * pitch has the first box's height taken off it. + */ + static final double LINE_BOX = 1.2; + + static final double TITLE_SIZE = sizeB(46.53); + static final double ISSUER_NAME_SIZE = sizeB(14.65); + static final double PARTY_NAME_SIZE = sizeB(13.11); + static final double PARTY_LABEL_SIZE = sizeB(10.91); + static final double META_LABEL_SIZE = sizeB(11.59); + static final double META_VALUE_SIZE = sizeR(10.35); + static final double BODY_SIZE = sizeR(11.08); + static final double TABLE_HEAD_SIZE = sizeB(10.22); + + /** The currency qualifier after the amount label is a smaller run of it. */ + static final double TABLE_HEAD_SMALL_SIZE = sizeB(8.0); + static final double ITEM_TITLE_SIZE = sizeB(12.18); + static final double ITEM_SUB_SIZE = sizeR(10.17); + static final double CELL_SIZE = sizeR(11.19); + static final double CELL_AMOUNT_SIZE = sizeB(12.25); + static final double CARD_HEAD_SIZE = sizeB(11.30); + static final double CARD_LABEL_SIZE = sizeB(9.44); + static final double CARD_VALUE_SIZE = sizeR(9.33); + static final double TOTALS_LABEL_SIZE = sizeB(12.07); + static final double TOTALS_VALUE_SIZE = sizeR(11.72); + static final double TOTAL_DUE_LABEL_SIZE = sizeB(13.04); + static final double TOTAL_DUE_SUB_SIZE = sizeR(10.79); + static final double TOTAL_DUE_VALUE_SIZE = sizeB(22.18); + static final double NOTES_LABEL_SIZE = sizeB(10.29); + static final double NOTES_BODY_SIZE = sizeR(10.07); + static final double FOOTER_DUE_TITLE_SIZE = sizeB(10.16); + static final double FOOTER_SUPPORT_TITLE_SIZE = sizeB(11.12); + static final double FOOTER_SUB_SIZE = sizeR(10.05); + static final double PAGE_NUMBER_SIZE = sizeR(7.5); + + /* + * The diagonal band: two slanted quadrilaterals in the gutter between the + * lockup and the title, the lavender running from the paper's top edge and + * the navy drawn over it from a third of the way down. Corners are given in + * PAGE design pixels — the coordinates that were actually measured — and + * normalised in one place by nx/ny, because a path's own coordinates run + * 0..1 inside its box with the origin at the BOTTOM-LEFT, which is the + * opposite of the direction every measurement here was taken in. + */ + static final double BAND_LEFT_PX = 385.4; + static final double BAND_RIGHT_PX = 556.0; + static final double BAND_BOTTOM_PX = 360.0; + static final double BAND_W = px(BAND_RIGHT_PX - BAND_LEFT_PX); + static final double BAND_H = px(BAND_BOTTOM_PX); + + /** Top-left, top-right, bottom-right, bottom-left, in page design pixels. */ + static final double[][] BAND_LAVENDER_QUAD = { + {495.0, 0.0}, {539.6, 0.0}, {422.4, 360.0}, {385.4, 360.0} + }; + static final double[][] BAND_NAVY_QUAD = { + {507.7, 98.0}, {554.7, 98.0}, {469.3, 360.0}, {422.3, 360.0} + }; + + /** + * How tall the masthead's layer stack comes out. The band is the tallest + * layer in it, so the stack's own height is the band's — and the header rule + * that follows the stack has to be pulled back up by the difference between + * the band's bottom and where the stack ends. The band is offset up by + * {@link #MARGIN_T} to reach the paper, and the stack is sized to its layers + * without accounting for that offset, so the stack ends that much below the + * band's visible bottom. + */ + static final double HEADER_STACK_BOTTOM_PX = BAND_BOTTOM_PX + 28.0; + + /** + * Where the metadata column starts, as an offset into the content box. The + * title shares it: the title is a left-anchored member of the metadata + * column, not a right-anchored member of the page, and its measured left + * edge is the metadata labels' to the pixel. + */ + static final double META_COL_X = px(639 - 51); + + /** + * The lockup's box, measured off the design's own ink: 136 design px wide + * and 55.3 tall, starting at {@link #BRAND_LOCKUP_INSET} into the content + * box. A caller's logo is sized by the height, so a wider or narrower mark + * keeps the design's optical weight and stays on the same top edge. + */ + static final double BRAND_LOCKUP_W = px(136); + static final double BRAND_LOCKUP_H = px(55.3); + static final double BRAND_LOCKUP_INSET = px(63 - 51); + + /** + * The size a wordmark is set at when a document brings a name rather than a + * logo. Not the lockup's own height: a name is usually longer than a + * drawn mark and set at that height would run out of the column, so it is + * sized to read as a lockup beside the title rather than to fill the box. + */ + static final double WORDMARK_SIZE = sizeB(28); + + /** + * The lockup sets the row's top edge, so the title's own line box needs + * pushing down to its measured cap. The 1.4 px correction is measured, not + * derived: at 46 design px of cap the top bearing runs slightly deeper than + * the fraction that holds at body sizes. + */ + static final double TITLE_DROP = px(65 - 46 - 1.4) - TEXT_TOP_BEARING * TITLE_SIZE; + + static final double ACCENT_BAR_W = px(2); + static final double ACCENT_BAR_H = px(310); + + /** The bar is anchored to the PAGE, 22 design px left of the content box. */ + static final double ACCENT_BAR_OFFSET = px(-22); + + static final double META_LABEL_W = px(781.5 - 639); + static final double META_VALUE_INSET = px(805 - 781.5); + static final double META_PITCH = 30.17; + + static final double HEADER_RULE_W = px(1018 - 30); + + /** How far the rule reaches past the content box: 21 design px left, 15 right. */ + static final double HEADER_RULE_OVERHANG_L = px(51 - 30); + static final double HEADER_RULE_OVERHANG_R = px(1018 - 1003); + static final double RULE_THIN = px(1.4); + static final double RULE_MED = px(2.0); + + static final double DISC_D = px(40); + + /** + * Box, not ink. An icon's size is the box the artwork is fitted into, + * and every glyph here carries about two units of padding on each side of + * its 24-unit viewBox — so the ink comes back at roughly this fraction of + * what is asked for. Each glyph size below is therefore the design's + * measured ink divided by that ratio, which is why they read larger than the + * marks they produce. + */ + static final double GLYPH_INK_RATIO = 0.75; + static final double DISC_GLYPH = glyph(21); + static final double PARTY_DISC_INSET = px(60 - 51); + static final double PARTY_DISC_GAP = px(118 - 100); + static final double PARTY_TEXT_INDENT = DISC_D + PARTY_DISC_GAP; + + /** The second cell's own left padding, past the divider that is its left border. */ + static final double PARTY_CELL_INSET = px(567 - 527); + static final double PARTY_ADDRESS_PITCH = 20.7; + + /** + * Column shares of the content width. Derived from each column's measured + * anchor rather than from boundaries the design never draws: the + * description text's left edge, the quantity digits' centre, the unit + * price's right edge, the tax centre and the amount's right edge. + */ + static final double[] COLUMN_SHARES = { + 379.0 / 952.0, 127.0 / 952.0, 143.0 / 952.0, 139.0 / 952.0, 164.0 / 952.0 + }; + + static final double HEAD_PAD_T = px(11.7); + static final double HEAD_PAD_B = px(12.3); + static final double CELL_PAD_V = px(8.5); + + /** The description cell's own inset; the disc sits on it and the text past it. */ + static final double ITEM_CELL_INSET = px(62 - 51); + static final double ITEM_DISC_GAP = px(118 - 102); + + /** + * What a line's description wraps at. Not a free choice: the design breaks + * one description before its parenthetical and keeps the next whole, which + * puts the width between 248 and 256 design px. Everything about the table's + * row heights follows from it. + */ + static final double ITEM_TEXT_W = px(250); + static final double ITEM_SUB_PITCH = 18.0; + static final double CELL_PAD_R = px(22); + static final double AMOUNT_PAD_R = px(23); + static final double DESC_PAD_L = px(118 - 51); + + static final DocumentTableStyle HEADER_CELL_STYLE = DocumentTableStyle.builder() + .fillColor(TABLE_HEAD_FILL) + .stroke(DocumentStroke.of(HAIRLINE, RULE_THIN)) + .padding(new DocumentInsets(HEAD_PAD_T, 0, HEAD_PAD_B, 0)) + .textAnchor(DocumentTableTextAnchor.CENTER_LEFT) + .build(); + + /** + * Every rule in the table comes from this one stroke. A cell strokes all + * four of its own edges and a one-column table has no interior vertical edge + * — so the same stroke that draws the separator between two rows draws the + * table's left and right sides, and nothing else. That is exactly the + * topology the design shows. + */ + static final DocumentTableStyle ITEM_CELL_STYLE = DocumentTableStyle.builder() + .stroke(DocumentStroke.of(HAIRLINE, RULE_THIN)) + .padding(new DocumentInsets(CELL_PAD_V, 0, CELL_PAD_V, 0)) + .textAnchor(DocumentTableTextAnchor.CENTER_LEFT) + .build(); + + /** + * The settlement split is NOT the even split the two rows above it use: the + * card is 440 design px, the totals cell 455, and the divider sits inside + * the gutter rather than on either cell's edge. That asymmetry is in the + * design, not in the measurement. + */ + static final double CARD_W = px(440); + static final double SETTLEMENT_GUTTER = px(527.5 - 491); + static final double SETTLEMENT_RIGHT_INSET = px(547 - 527.5); + + static final double CARD_RADIUS = px(10); + + /** + * The card's own disc is smaller than the party and line item discs — 38 + * design px against 40 — and it sits 5 px below the card's top edge, not 12. + * Both were measured off the card rather than assumed from the other three, + * and both matter: the disc sets the head row's height, and that height is + * what the field block's margin is measured from. + */ + static final double CARD_DISC_D = px(38); + static final double CARD_GLYPH = glyph(21); + static final DocumentInsets CARD_PAD = + new DocumentInsets(px(1065 - 1060), px(20), px(1252 - 1238.5), 0); + static final double CARD_DISC_INSET = px(63.5 - 51); + static final double CARD_HEAD_GAP = px(118 - 101); + static final double CARD_LABEL_W = px(256 - 116); + static final double CARD_TEXT_INDENT = px(116 - 51); + static final double CARD_FIELD_PITCH = 19.3; + + /** The disc's bottom edge, measured down from the card's content top. */ + static final double CARD_HEAD_BOTTOM_PX = 1065 + 38; + + static final double TOTALS_TEXT_INSET = px(566 - 547); + static final double TOTALS_PAD_R = px(1003 - 987); + static final double TOTALS_PITCH = 38.0; + static final double TOTALS_RULE_W = px(1002 - 547); + + static final double DUE_RADIUS = px(10); + + /** + * The top inset is the distance to the label's box, not to its cap: + * the measured cap gap less what the text hangs below its own box top. + * Taking the cap gap as a padding makes the panel 4 px too tall and pushes + * its bottom past the card's, which the design has ending on the same line. + */ + static final DocumentInsets DUE_PAD = new DocumentInsets( + px(1194 - 1173) - TEXT_TOP_BEARING * TOTAL_DUE_LABEL_SIZE, + px(1002 - 984), + px(1251 - 1235), + px(566 - 547)); + static final double DUE_SUB_PITCH = 28.0; + + static final double NOTES_DISC_D = px(39); + static final double NOTES_DISC_INSET = px(53 - 51); + static final double NOTES_TEXT_INDENT = px(106 - 53); + static final double NOTES_GLYPH = glyph(22); + static final double NOTES_PITCH = 22.0; + + static final double FOOTER_RULE_W = px(1005 - 50); + + /** + * The rule's own gaps. The 1.2 px correction is measured and is taken off + * the gap below as well as added to the gap above: the footer's text already + * sits on the design's line, so the rule has to move without taking the + * footer with it. + */ + static final double FOOTER_RULE_NUDGE = px(1.2); + static final double FOOTER_RULE_GAP_ABOVE = px(1373 - 1343) + FOOTER_RULE_NUDGE; + static final double FOOTER_RULE_GAP_BELOW = px(1397 - 1374) - FOOTER_RULE_NUDGE; + + /** One design px past the content box on the left, two on the right. Measured. */ + static final double FOOTER_RULE_OVERHANG_L = px(51 - 50); + static final double FOOTER_RULE_OVERHANG_R = px(1005 - 1003); + static final double FOOTER_SPLIT_X = px(541 - 51); + static final double FOOTER_DUE_ICON_COL = px(112 - 55); + static final double FOOTER_DUE_ICON_INSET = px(55 - 51); + static final double FOOTER_DUE_ICON = glyph(37); + static final double FOOTER_SUPPORT_CELL_INSET = px(594 - 541); + static final double FOOTER_SUPPORT_ICON_COL = px(659 - 594); + static final double FOOTER_SUPPORT_ICON = glyph(39); + + static double px(double designPixels) { + return designPixels * PX; + } + + /** + * An icon box sized so its ink comes out at {@code inkPx} design pixels — + * see {@link #GLYPH_INK_RATIO}. Every glyph goes through here, so the one + * measured ratio lives in one place. + */ + static double glyph(double inkPx) { + return px(inkPx) / GLYPH_INK_RATIO; + } + + /** Half the padding {@link #glyph} adds — what a left-anchored glyph gives back. */ + static double glyphPad(double inkPx) { + return (glyph(inkPx) - px(inkPx)) / 2.0; + } + + /** A regular-weight size named by the cap height it reproduces, in design px. */ + static double sizeR(double capPx) { + return px(capPx) / CAP_RATIO_REGULAR; + } + + /** The same for bold, whose cap ratio differs. */ + static double sizeB(double capPx) { + return px(capPx) / CAP_RATIO_BOLD; + } + + /** + * Where to start a text box so its caps land {@code capPx} below the top of + * the block it shares a row with — a label beside a glyph, whose design + * position is its own cap top rather than the glyph's centre. + */ + static double capOffset(double capPx, double size) { + return Math.max(0, px(capPx) - TEXT_TOP_BEARING * size); + } + + /** + * A measured top-to-top pitch turned into the gap the engine wants: the + * first box's own height comes off it, because spacing is between boxes. + */ + static double gap(double pitchPx, double sizeOfFirst) { + return Math.max(0, px(pitchPx) - LINE_BOX * sizeOfFirst); + } + + static DocumentTextStyle style(double size, DocumentColor color, + DocumentTextDecoration decoration) { + return DocumentTextStyle.builder() + .fontName(FACE) + .size(size) + .color(color) + .decoration(decoration) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsText.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsText.java new file mode 100644 index 000000000..827ce83cf --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsText.java @@ -0,0 +1,62 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import java.math.BigDecimal; +import java.text.NumberFormat; +import java.util.Currency; +import java.util.Locale; + +/** + * How the Payments sheet writes its figures. + * + *

      The locale is stated, never inherited

      + * + *

      Both the grouping of a number and the symbol for a currency code are + * locale-dependent — {@code USD} is {@code $} in English and {@code US$} in the + * root locale, {@code JPY} is {@code ¥} or {@code JP¥} — so a preset that let + * the JVM's default locale decide would render a different sheet on a different + * machine, and its baselines would move with the machine rather than with the + * design. Both helpers below pin {@link Locale#ENGLISH}.

      + */ +final class PaymentsText { + + private PaymentsText() { + } + + /** An amount, grouped and always to two places. */ + static String money(BigDecimal value) { + NumberFormat format = NumberFormat.getNumberInstance(Locale.ENGLISH); + format.setGroupingUsed(true); + format.setMinimumFractionDigits(2); + format.setMaximumFractionDigits(2); + return format.format(value); + } + + /** A quantity, written without trailing zeros a whole number does not need. */ + static String quantity(BigDecimal value) { + BigDecimal stripped = value.stripTrailingZeros(); + return stripped.scale() <= 0 ? stripped.toBigInteger().toString() : stripped.toPlainString(); + } + + /** + * The symbol for an ISO currency code, or the code itself when there is no + * symbol for it and the empty string when a document states no currency. + * + * @param currencyCode the ISO code the figures are stated in + * @return what to print before an amount + */ + static String symbol(String currencyCode) { + if (currencyCode == null || currencyCode.isBlank()) { + return ""; + } + try { + return Currency.getInstance(currencyCode.trim()).getSymbol(Locale.ENGLISH); + } catch (IllegalArgumentException notACurrency) { + return currencyCode.trim(); + } + } + + /** An amount behind its currency's symbol. */ + static String amount(String currencyCode, BigDecimal value) { + return symbol(currencyCode) + money(value); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsWidgets.java new file mode 100644 index 000000000..0fffc324d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsWidgets.java @@ -0,0 +1,129 @@ +package com.demcha.compose.document.templates.invoice.presets; + +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.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +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.style.DocumentColor; +import com.demcha.compose.document.style.DocumentTextDecoration; + +import java.util.List; +import java.util.function.Consumer; + +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.DISC_GLYPH; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.style; + +/** + * The pieces more than one part of the Payments sheet draws: the wrapper every + * horizontal pair inside a cell goes through, the disc that owns its glyph, and + * the two text helpers. + */ +final class PaymentsWidgets { + + private PaymentsWidgets() { + } + + /** + * A row that survives inside a row cell. + * + *

      A row nested directly in a row cell is refused by the layout compiler. + * Every horizontal pair that lives inside a cell in this preset goes through + * here, wrapped in a single layer of a stack.

      + * + * @param parent the section to add the row to + * @param name the node name, for review and rollback + * @param spec describes the row + */ + static void layeredRow(SectionBuilder parent, String name, Consumer spec) { + SectionBuilder holder = new SectionBuilder(); + holder.name(name + "Holder"); + holder.addRow(name, spec); + DocumentNode node = holder.build(); + parent.addLayerStack(stack -> stack + .name(name + "Layer") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** + * A filled disc that owns its glyph: the glyph sits inside the fill, so it + * is a child of the shape rather than a coloured circle with an icon + * dropped near it. + * + * @param token the packaged mark + * @param fill the disc colour + * @return the disc node + */ + static DocumentNode disc(String token, DocumentColor fill) { + return disc(token, fill, DISC_D, DISC_GLYPH); + } + + /** + * The same, at a stated diameter — the payment card's and the notes' discs + * are each their own size, measured off the block they belong to. + * + * @param token the packaged mark + * @param fill the disc colour + * @param diameter the disc's diameter + * @param glyph the glyph's box inside it + * @return the disc node + */ + static DocumentNode disc(String token, DocumentColor fill, double diameter, double glyph) { + return new ShapeContainerBuilder() + .name("Disc" + token) + .circle(diameter) + .fillColor(fill) + .center(glyphNode(token, glyph, HorizontalAlign.CENTER)) + .build(); + } + + /** + * A glyph in a box of its own, so a shape can own it. A glyph that leads a + * text row is aligned left: its column's width is the distance to the text, + * not a box for the glyph to sit in the middle of. + * + * @param token the packaged mark + * @param size the glyph's box + * @param align where the glyph sits in it + * @return the glyph node + */ + static DocumentNode glyphNode(String token, double size, HorizontalAlign align) { + return new SectionBuilder() + .name("Glyph" + token) + .spacing(0) + .addSvgIcon(PaymentsIcons.icon(token), size, align) + .build(); + } + + /** + * A block of plain lines, one paragraph each. + * + * @param block the section to fill + * @param prefix the node-name prefix, numbered from one + * @param lines the lines + * @param size their type size + * @param color their colour + */ + static void textLines(SectionBuilder block, String prefix, List lines, + double size, DocumentColor color) { + int index = 0; + for (String line : lines) { + String name = prefix + (++index); + block.addParagraph(p -> p + .name(name) + .text(line) + .textStyle(style(size, color, DocumentTextDecoration.DEFAULT))); + } + } + + /** The paragraph, made reachable when there is somewhere for it to point. */ + static ParagraphBuilder linked(ParagraphBuilder paragraph, String href) { + return href == null || href.isBlank() + ? paragraph + : paragraph.link(new DocumentLinkOptions(href)); + } +} diff --git a/templates/src/main/resources/templates/invoice/payments/icons/bank.svg b/templates/src/main/resources/templates/invoice/payments/icons/bank.svg new file mode 100644 index 000000000..0058b58a9 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/bill-to.svg b/templates/src/main/resources/templates/invoice/payments/icons/bill-to.svg new file mode 100644 index 000000000..0aaae9c3f --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/bill-to.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/calendar.svg b/templates/src/main/resources/templates/invoice/payments/icons/calendar.svg new file mode 100644 index 000000000..d1952bcc7 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/card-settings.svg b/templates/src/main/resources/templates/invoice/payments/icons/card-settings.svg new file mode 100644 index 000000000..a10a3b2c0 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/card-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/card.svg b/templates/src/main/resources/templates/invoice/payments/icons/card.svg new file mode 100644 index 000000000..8a9fe32ed --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/document.svg b/templates/src/main/resources/templates/invoice/payments/icons/document.svg new file mode 100644 index 000000000..5aec8edf5 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/globe.svg b/templates/src/main/resources/templates/invoice/payments/icons/globe.svg new file mode 100644 index 000000000..323edcf15 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/headset.svg b/templates/src/main/resources/templates/invoice/payments/icons/headset.svg new file mode 100644 index 000000000..3031d0940 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/headset.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/mobile.svg b/templates/src/main/resources/templates/invoice/payments/icons/mobile.svg new file mode 100644 index 000000000..4e5915f59 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/mobile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/shield.svg b/templates/src/main/resources/templates/invoice/payments/icons/shield.svg new file mode 100644 index 000000000..b08b7e7a9 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/shield.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/ship-to.svg b/templates/src/main/resources/templates/invoice/payments/icons/ship-to.svg new file mode 100644 index 000000000..03efd2212 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/ship-to.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/payments/icons/support.svg b/templates/src/main/resources/templates/invoice/payments/icons/support.svg new file mode 100644 index 000000000..ef8b01748 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/payments/icons/support.svg @@ -0,0 +1 @@ + \ No newline at end of file From 5fb298f24eebe571d36a429e147248c97e46c8f4 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 08:27:50 +0100 Subject: [PATCH 28/85] feat(templates): let a billed party print its own registration (#640) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A supplier could already state a tax registration through InvoiceContactBlock.taxRegistrationLabel / taxRegistrationNumber, and the party being billed could not — but most B2B invoices print the customer's VAT or tax number too, under its address. subline was the only spare field and it is contractually the attention line that sits ABOVE the address, so a registration put there renders in the wrong place. InvoiceRecipient now carries registrationLabel and registrationNumber, mirroring the pair the supplier block already has, with hasRegistration() for the presets that draw the row only when there is a number to draw. Both are plain strings, blank when absent, and the six-argument constructor is kept explicitly, so existing calls compile and link unchanged. --- CHANGELOG.md | 12 +++++++ .../StructuredInvoiceCompatibilityTest.java | 27 ++++++++++++++ .../data/invoice/InvoiceRecipient.java | 36 ++++++++++++++++++- 3 files changed, 74 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 984bb6b37..67ab2e97d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **A billed party carries a printed registration.** A supplier could already state a + tax registration through `InvoiceContactBlock.taxRegistrationLabel` / + `taxRegistrationNumber`, and the party being billed could not — but most B2B invoices + print the customer's VAT or tax number too, under its address. `subline` was the only + spare field and it is contractually the attention line that sits *above* the address, + so a registration put there renders in the wrong place. `InvoiceRecipient` now carries + `registrationLabel` and `registrationNumber`, mirroring the pair the supplier block + already has, with `hasRegistration()` for the presets that draw the row only when + there is a number to draw. Both are plain strings, blank when absent, and the + six-argument constructor is kept explicitly, so existing calls compile and link + unchanged and every recipient built through them still prints no registration. + - **An invoice line carries a mark.** A design that opens each service line with a glyph — a card for a billing line, a shield for fraud screening, a globe for a hosted service — had nowhere to say which one, and deriving it from the description would diff --git a/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java index 5283b491f..76a7c3096 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java @@ -95,6 +95,33 @@ void aNullMarkNormalizesToBlankLikeTheFieldsBesideIt() { assertThat(line.icon()).isEmpty(); } + @Test + void theRecipientConstructorThatPredatesTheRegistrationLeavesItBlank() { + InvoiceRecipient recipient = new InvoiceRecipient("BILL TO", "Northwind Ltd.", "", + List.of("42 Bridgewater Street"), "Email", "ap@example.test"); + assertThat(recipient.registrationLabel()).isEmpty(); + assertThat(recipient.registrationNumber()).isEmpty(); + assertThat(recipient.hasRegistration()).isFalse(); + } + + @Test + void aRecipientCarriesTheRegistrationItIsGiven() { + InvoiceRecipient recipient = new InvoiceRecipient("BILL TO", "Northwind Ltd.", "", + List.of("42 Bridgewater Street"), "", "", "VAT Number", "GB 987 6543 21"); + assertThat(recipient.registrationLabel()).isEqualTo("VAT Number"); + assertThat(recipient.registrationNumber()).isEqualTo("GB 987 6543 21"); + assertThat(recipient.hasRegistration()).isTrue(); + } + + @Test + void aRecipientWithALabelAndNoNumberPrintsNothing() { + // The number is what makes the row worth drawing; a label on its own is + // a heading over an absence. + InvoiceRecipient recipient = new InvoiceRecipient("BILL TO", "Northwind Ltd.", "", + List.of(), "", "", "VAT Number", null); + assertThat(recipient.hasRegistration()).isFalse(); + } + @Test void theDataConstructorThatPredatesShipToLeavesItEmptyRatherThanNull() { // The record normalizes an absent block to its empty form, so preset diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceRecipient.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceRecipient.java index 777dddb9d..ae63c70a5 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceRecipient.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceRecipient.java @@ -19,6 +19,11 @@ * @param addressLines the address lines, in order * @param emailLabel the label printed before the email address * @param email the recipient's email address + * @param registrationLabel the label a printed registration is named by + * (e.g. {@code "VAT Number"}); blank when absent + * @param registrationNumber the registration itself, printed under the + * address rather than under the name; blank when + * absent */ public record InvoiceRecipient( String heading, @@ -26,7 +31,9 @@ public record InvoiceRecipient( String subline, List addressLines, String emailLabel, - String email) { + String email, + String registrationLabel, + String registrationNumber) { /** * Normalizes optional fields and freezes the address lines. @@ -38,5 +45,32 @@ public record InvoiceRecipient( addressLines = List.copyOf(Objects.requireNonNullElse(addressLines, List.of())); emailLabel = Objects.requireNonNullElse(emailLabel, ""); email = Objects.requireNonNullElse(email, ""); + registrationLabel = Objects.requireNonNullElse(registrationLabel, ""); + registrationNumber = Objects.requireNonNullElse(registrationNumber, ""); + } + + /** + * Backward-compatible constructor for callers that predate the printed + * registration. The recipient simply carries none. + * + * @param heading the block heading + * @param name the recipient's name + * @param subline the attention line under the name + * @param addressLines the address lines, in order + * @param emailLabel the label printed before the email address + * @param email the recipient's email address + */ + public InvoiceRecipient(String heading, String name, String subline, + List addressLines, String emailLabel, String email) { + this(heading, name, subline, addressLines, emailLabel, email, "", ""); + } + + /** + * Whether this recipient prints a registration under its address. + * + * @return {@code true} when the number is set + */ + public boolean hasRegistration() { + return !registrationNumber.isBlank(); } } From 0300249f9d6b25bc9afebebfb2c32630d8ee39e7 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 09:53:26 +0100 Subject: [PATCH 29/85] feat(templates): add the Workspace SaaS invoice preset (#641) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A violet-accented sheet: a brand masthead over a short accent bar, a half-split issuer and metadata header, two addressed parties on filled discs, a service-line table whose marks sit on coloured tiles, a settlement row pairing the bank details against the totals, and a closing band carrying the wordmark. Ships as invoice.presets.WorkspaceInvoice on the existing StructuredInvoiceData model. Like PaymentsInvoice it flows: the table's header repeats, a continuation page reserves a deeper bottom margin, and every page carries its number. The design's own closing band cannot be page chrome — a header footer zone takes only strings and the band holds a wordmark and a link — so it is body content and the number is the only chrome. This design states its currency once per money column and writes the figures under it bare, carrying the code only on the total, which is the opposite of what PaymentsInvoice does; a quantity is written with what it counts. Both parties print a registration under their address, and one with no number prints no label. Two of the design's type corrections are carried as measured constants: half a pixel of screenshot antialiasing in every cap, and the 6% the body face adds to an all-caps run at the same cap height. Guarded by a 16-case smoke test, an exact layout snapshot and a pixel-parity gate. --- CHANGELOG.md | 28 + .../readme/examples/invoice-workspace-v2.pdf | Bin 0 -> 30162 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../examples/support/ShowcaseMetadata.java | 1 + .../support/WorkspaceInvoiceSampleData.java | 141 + .../invoice/v2/WorkspaceInvoiceV2Example.java | 54 + .../presets/WorkspaceInvoiceFixtures.java | 140 + .../WorkspaceInvoiceLayoutSnapshotTest.java | 33 + .../presets/WorkspaceInvoiceSmokeTest.java | 269 + .../WorkspaceInvoiceVisualParityTest.java | 41 + .../invoice/workspace_invoice_layout.json | 6197 +++++++++++++++++ .../workspace_invoice-page-0.png | Bin 0 -> 87551 bytes .../invoice/presets/WorkspaceClosing.java | 172 + .../invoice/presets/WorkspaceIcons.java | 87 + .../invoice/presets/WorkspaceInvoice.java | 169 + .../invoice/presets/WorkspaceLines.java | 200 + .../invoice/presets/WorkspaceMasthead.java | 304 + .../invoice/presets/WorkspaceSettlement.java | 273 + .../invoice/presets/WorkspaceStyles.java | 344 + .../invoice/presets/WorkspaceText.java | 98 + .../invoice/presets/WorkspaceWidgets.java | 158 + .../invoice/workspace/icons/bank.svg | 1 + .../invoice/workspace/icons/bill-to.svg | 1 + .../invoice/workspace/icons/calendar.svg | 1 + .../invoice/workspace/icons/grid.svg | 1 + .../invoice/workspace/icons/info.svg | 1 + .../invoice/workspace/icons/search.svg | 1 + .../invoice/workspace/icons/shield.svg | 1 + .../invoice/workspace/icons/ship-to.svg | 1 + 29 files changed, 8719 insertions(+) create mode 100644 assets/readme/examples/invoice-workspace-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/WorkspaceInvoiceSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/invoice/v2/WorkspaceInvoiceV2Example.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/workspace_invoice_layout.json create mode 100644 qa/src/test/resources/visual-baselines/invoice-v2-layered/workspace_invoice-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceLines.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceSettlement.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceText.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceWidgets.java create mode 100644 templates/src/main/resources/templates/invoice/workspace/icons/bank.svg create mode 100644 templates/src/main/resources/templates/invoice/workspace/icons/bill-to.svg create mode 100644 templates/src/main/resources/templates/invoice/workspace/icons/calendar.svg create mode 100644 templates/src/main/resources/templates/invoice/workspace/icons/grid.svg create mode 100644 templates/src/main/resources/templates/invoice/workspace/icons/info.svg create mode 100644 templates/src/main/resources/templates/invoice/workspace/icons/search.svg create mode 100644 templates/src/main/resources/templates/invoice/workspace/icons/shield.svg create mode 100644 templates/src/main/resources/templates/invoice/workspace/icons/ship-to.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 67ab2e97d..7e4e28b36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -120,6 +120,34 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A violet SaaS invoice preset: `WorkspaceInvoice`.** A brand masthead over a short + accent bar, a half-split issuer and metadata header, two addressed parties on filled + discs, a service-line table whose marks sit on coloured tiles, a settlement row + pairing the bank details against the totals, and a closing band carrying the wordmark. + Ships as `invoice.presets.WorkspaceInvoice` on the existing `StructuredInvoiceData` + model, porting the rendered layout of a published standalone template. Like + `PaymentsInvoice` it flows — the table's header repeats on every page it reaches, a + continuation page reserves a deeper bottom margin, and every page carries its number, + which is a departure from the one-page design and the only way a lost page is + detectable. The sheet's own closing band cannot be page chrome, because a header + footer zone takes only strings and the band holds a wordmark and a link, so it is body + content and the number is the only chrome. Two of the design's own type corrections + are carried as measured constants rather than smoothed away: a cap read off a + screenshot includes half a pixel of antialiasing on each edge, and the body face sets + uppercase about 6% wider than the design's at the same cap height — measured across + three all-caps runs while mixed-case runs at the same sizes matched within 2%. This + design states its currency once per money column and writes the figures under it bare, + carrying the code only on the total, which is the opposite of what `PaymentsInvoice` + does and is why the two presets format money differently. A quantity is written with + what it counts. Both parties print a registration under their address through the pair + `InvoiceRecipient` gained for it, and a party with no number prints no label. Guarded + by a smoke test (including the unknown-mark data error, a line with no mark, the + wordmark fallback, the currency named once and not on every figure, the quantity with + its unit, both registrations and the absent one, the closing address as an annotation, + a missing ship-to, a payment card with no note, an empty document, and a thirty-line + invoice that runs on, repeats its column names and numbers its pages), an exact layout + snapshot and a pixel-parity gate; the examples showcase gains `invoice-workspace-v2`. + - **A paginating invoice preset: `PaymentsInvoice`.** A lavender-and-navy sheet with a diagonal band crossing the masthead, a half-split issuer and metadata header, two addressed parties on discs, a marked service-line table, a settlement row pairing bank diff --git a/assets/readme/examples/invoice-workspace-v2.pdf b/assets/readme/examples/invoice-workspace-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b12e2f8581bbe378f2d4711892dd275d6c843add GIT binary patch literal 30162 zcma&NV~{4%(k(n~bK16T+qP}nwr%5S+qP}n)5f&j-<*5ni?|W*`SJeP5mmKUR%BJK zomo{Yi&Q~GjFyp(4Vv`%_;U}Mk${1~-pC4?hX z-j0C&KWKUdLvvGS0;Yd(C1^fAXj40r|Cq7;Kjt!~cIGY?1Wf;#c6M(#iGvlIUd+&U&b6*>w9S|!Us6o0 zI(|?;I7}c0451nZ?#qXCEz!I$%&{^K)cwdnLCdggMr^$erT*j5gG&BQ?FF;>pPQTM zRFDp|%iND?&YhJN`X?1v*IWHsJbzEqPn)L6u8g6a#yGQ=ll(frADvs5JlR&qmlJmN zKL7V8gdfj`r@pU;qn#Q3y5(vgDYNjs0TKB=V<)$lwd|_P^N~l3cf)tbcR#Pkras^9 zkNdvbJYUbJ@TxuqRk^JV58F@pxw+Y46fIM>X{s)tz0KXs-P~^v-kxxTzKq?pl}MpH zpFkm+F9iC_eZc7LezjW{eVz_x1d77npL(*OY{e3Ut}W_xGkYB;;B9^11uT=nE7w+! z5iu&xvsxZF#$fmto4LB;=Ti2Ca(n-0cAs|>rKL6j{sDLWgQaV1q`h9|9l7^de;v!r z&_&1Aut_?hOx?WPDb5|~Qu)+bx%0>FPYTn!;5{II%Atdi4W*O=3mQV9vA@G{*XBHN+rQF|-V^89@FbD+bq zv^g$_PmRxVQSJ@gWS-)H%;P7{AbolK!lpi<7yhjBOaA^c`N=*%j@2(9Vm8n09nU8t zuO3!k4Y4iyz45BapaE*a*C`dTp5JMBR9Meb@gLom?J@Z$O@pWPtM3QRV?J`_z?WJD zl}?&q43{f7%3;kJPn<%)mrHbB&4j}V47ZqYa>knD8o+6h`r3B5Xz;OiJEEtjHjM{q z)c7$y_ERl-qxw>=Y#FAX3$TC&aap-}Igduz0j8z`xNP;KSx#zY(ma%_;z5GMRfUBP z>QXvl_w%-9m3+K4MP7>AcBhmwq7}`}jyyj;Usc#~bq(HckmOh2YK%Sf-^d7LP4mG{ z&Jr7M&QAqtY{mgJw(Pjx<$Ayw!U2+Tr{^c}_~_p6z^l*PG{sm}8+r#ClqyY7Y`GOE zrj?vCZj5}UcE(25`dIPw@$7h2)r^E&&SlfgtG*hgqM1T0qEV>szP^-uOH$rOn;{0L zCdsVkR$-%Jq_Dp2#iwH}KtT0G8_q3-7nAP+V8J2|o5Rf7a$kDoikPsibdT~~669oK zAh3ER9f%-RzRmS+e8rq-E3Wko+uU1F5ZA#-LgWNiWZ)j~ZOAdsz&}mgi@Hu4Yrx$= zufPEUd2li|X!A3vq8l4S)lBQ8x1o%S7v1OA4;wQJ0NEard?rs^HRo8^LNHk-@UG9E z`dG7Fou2mhQi{u;Hu&$ai@rjTD)aoJc#rM50j+j5hp_!HgM%yl-j7Z`UU>Rf*;j<% zi9z0FN+mb~b;iKiT|G@1cUVJO0Reb?qrmQPY&M}uGE<2}xDbniF?hXUy&%Kc4eq8( zRm9^W=Po))@dA>p;Z25S@^SJLV&j6?j48qBMX=>!0Yf-gXy2=%!VdE#*pD+2=@*5& zg47brd8r)Y8ff5c>G}SoA$Khk8Y6qdV7>MUSb$p$W&RUKJD7wui02raae1X}aSunz zsq?6X=La1G7W_ttS*iuo+ zP0!dTzN9B)c`Ige4G?k|6bx-Wv5oB);Lx61Rq5b8Qxt^fQU_0LTeHmvE#hzzNEAx5 zk~w3+YOJh`ffPfV$Zb(n5-E*ILV64nX1o5ZfxZqbMGdHRPfa44lCX*Noy7)GBGgz+ zyyhl%zO6!mNXM0!#)KXLyD7seaa~9$i3Pdr*z}zFVol3rNay+w_~_)}Vu2Vcj?@WG zPBJbqo{(amLrz}qMm%B1n29J%QzSSwHtehUlp(P?)dkN2!YxZMF;al`4q!W{dkKW> zB(Z#f5DuaBFYQ*$hDoz7i{KPh%<>(HagP9$<4jCr4A4%JGR~&c`k(B?8%^{(iScxR zH@?izFXFdvvYkuUuf0-lnm?vzdQfw}E1< zFmA1s^rPUR?maRMs>t^=x}KVKGKZ8tN!B^zDiit#>6e8Az|#n3Yu+w+(L^bE^eU$xcT#&Rr8qLN}2pb4`Ev@0XBE?z*4r3`$fsy96x&oM?so)8HLVC7mE z{Ka7MT&2Ulr^f(Qe&Mr<>V!h9CgFg?FHkQOlr0b7}ZoUuD&w`qwKUGb%WVmT_Mx5x1l)55vU3VctZ{9 z&lH>-T>^`2wUmZoX|c)H8bjX5!Tw7@h|74oNn>kZ8aV|8Fpz8&6NQc`tVOoS`+7lH ztwJ^U`sNB0BI6U4znz%Ii6YlRbE**u$*bhXCkhgh_0b8ai(R*CKs&ZHbG0+hTvrt@ zTeT~Q7t&#)3j6Dr+o5Zi&4cRDy5p{_0*^;O>?OJw1+;l{lCacx3KV$r`w9Pi^L+M< zU4{UmDRgDBt$5>!X2Ipm$wJv4ENP^jjRjD$){(azv)rp$)v(6Om}L!9k#-=_`c}WW zGMcFLg_sSG7F(H4PB9?F{fC<0Jk5Z_LqtD;&~3ajW!Dc?LGZV)=Q6-%Te zRu`er{Trgjdk?*;c7iA&V#cIZbOCeE4_TV6cBEo38L5<){a{*_)}7IHs-3QML(&pO zaNyer)n}-QVs!dR++w7bDRX$p6NxN#>D+u@28$j%6ni$z?;tR3D{4&G;9yOL^~t|k zY*xd#QVK=z{OMZr1~M)})}<2~uPtud*AQvnqpb`ixkyZJ2!3Oaa({SqDE!)?Un9;!E@`5R2R!|7HPN0u_9I}EAjIY0wsgx55#FCPa)jLF6 z7{L=`%RpS17M;OwTOz{sZT^8O8XkeadD8DUB3TE*W z=4WyoE(?=7$FXxQFCEnV$)2`S>$p#Hv!jyL4k5X29$X}=L;tu;1ao@?f@!Z8?BT0I zmPkVj#|Zm(s9ZD7Fy(_yGhbhlJiF8UL{o#t*kNeY>9YHl@^9Wtr6mFiMheV@YKzpMTODku+v;v|^`IA5p7lot(MCMrk z5X__ndEu{HmP>{N0x8=0`Zy4%Mh)%QB9>`AFdyQqd9C^ac*#O;3Jry^jEP4q&}EWD zmhveYO9gxFxhpnoP6E! z<{T{|kFY_rof{AUW;U8y5|85GH->Vl9)@s@+(fm`U*aZh3B8&i3X-d&L?p(yW0=1* zCA{Xzi^#vF*&ww0Ei9#jCnzdGt3ag#Fxrn#*n4#QR<BtyDC~}qnr!XS`vo!w{(qQ`~TkaH7byC1W6=IqU&1tml=mZC3ku2W1XOPJKqLu+Vb6Ed=D{}u~N+Gpkj>%ikFma$4gsiQx47a?vgk|zp82K%w zX(z+fo=z|xP}7zA+4*Y=uXrNw-YhBgIDVi9)HyP~2YQfpVtbUu|!f9^s zv)u2kZee*Q3UJ`Q+5HAvJuh&-NPc$swq41V!*_&Exnf(%Qq|%r+%eux?@dxx%B5V0 z$=s&BOO8SG8KT0(g`q6|&3Fva-JjI4*em2V>f0#|oyfiwna$YOtbAUdAk*XY{)?fu zz^xrfHF~9#o%8i#P5TEmEf2pQ?CSd4BfWyhbi_fK%leLx@0&TW1sU9NPhu|o9O(u` z1_T5=>v(||0qs1ZB83GTVsIM10oLWT*%ziihQ9ldNrFZwVG`cx7Ltern}t24?pm~z zvuv6&l4xbZLU(b695gOratjga=v0(ZbppSI<`3wu^BC<^sk5>FrP|P?ZDK>rV`PbOd3+Ab?LJhXbI@xGOLr zcE=QoOpiKa`tjBh#7G_o%e=UfV91C=jKlj^S;ahkH2TUB1*bhFqN^q*GU)%r*IFt- zw0oxkU8D!(q(}nu;R>ZgT1YIcljm@zVJ0jB=p^mbWNQTk4+YrXoA=04bqT_9upKDn zcIoeJyF=bC)*Bx?;~b`q|H>$>L-{$jAj4TP!pQ*Ug+xY~9D^L~Y8mpuUX~yGmzkIM z#46pyD?V^h@D_e`5rHp>u^I=0ofE|5{I=#iqqHlw5&N|Vhp3KT!73IG7muE`q=yGZ zdPQTYXQZ@C*aN4Ncpa~Lue6UIL|E1pwqtGVlCZ9zOAfNk6W!m&jpYlJJ-sBHR&_ckQ*O>nB>(CVy%T=zzGDC(Z6Q3Zy>ic8}U=mv;Swz3Iej|ysNkJDNE(9RmA>F-iL9 zl=c;tNYNCw(Ft@CDjQ8dN+urD<0%D{^uLu<>RUK+xKfzduwEf~ zU^&-@w{~Wx&vB!ZVaHHKK-6j5)|)LFPDrczw-H>NOK+MQ)LDn4xoaos3QYYX%V>j- z(%yVSt%sutKj{tg(uT0XCpFl+eGfw@dy!H(SR)<0TNuFf7N=~CghvSgnt#%5$QKwB zI%>c=`_LQMz8#r;s*FmHE9Tb6Q@r6`#2_hXN3+)Fy^VEcz<^d`?1acNr@8no6g1bt(C0)-Rcde&lW1)0X z)w_H{z3d>XMPv_0Kb7`%IiP_GcAEI}i16aRQe8%(+gYZ^-RVMKTJl4&Uw0;>E&c)m zom4F=nOL%HT0|lEgh3@00KP8>;f;bynxZ^~(!doqiENPWO7Ryla&dtSzgqyxdBQ`N z;huITz)~v4ffOWC@sc9AYn5IRaiRMde9fyGjK82SnwaEbz2G`7sTNk(Ou+W=C2(Z> zk};C59;03qkWC%vcK!mgxh46OVN-I``tG07wBkbD!ebGln1y54v9F%ee->@nJpiIk z8QyRl7uQ3jJxa>ZIq6eqtnI?ts$0o!5bQ2N%rSt8;9klH(2gn1$KTE)sbmX7-hYdS zUZ_zFG+Okp+d4@ufpvp^nx6@{L=m&_j2`K@*0`|<#BrH0}xs}a~!k=-YG}5YR{SQj|C>#7(xp6&RHPeCEjVa5t zyRcVpdCT}wRO!}DNM;L2+&b2pjS>gN8))!aiY?49DfX(?))J9z2cse~*BG;G@2p_c zmys0ljb$tKkfr_Rd$H}DU7Tsge5SrGGZg1t#>NF@fSlnr2VLke%}^6^yTC&%%r<&-(~dLSp!{yaR=nBd#b-LIEn}YoezWYc7oG6!J&3$KA3K*{Qh%a1 zihPj^>1SY4GoAkf^(C0WUn8yg*yi<~>=jo;Sl07O^qHj4Ud-#HZgJ7l%U-{M`lN7k z+AX=8^!xf~&gx`qOi*KU%L_xKmHGu(jUu|!iZx%~PzJT8=hb6}cn@!RZR|Xe%Nx>J zajw#iOZve=w^X&Pwo7wO_+SyMRVVh2`3m>1RNYhuljF4{$O%524W~v5>##2;C zZoNuXz_N$iVQwkTp<;c;N>bV8Q2i z%3j4ZwuftrJZfGw3-7@y69A12Du-bYE>Pe0${0xyV)0bP_z@(OE|JEMRbL zNTYdC6h@>KnLR439O~%I!_ji_Cp(FMbra_z5Ojm#O?uII{)@Maod45ZRz~Lkg}b^b zvhmprhyu5t(D-fPs0KE|#S}_>Y)bH3YO)_7$PPrs;E06bpC6%~WT{w`UiU*se`5yz zKG$=zJQW<~`)cET70|gVKYj1=y)RZZ^{vXLSgEd@Ac`dxbmw+b;1$KseeBzZ|5+59 zDv9!sMYt9IQL(?QT(PvkGdN%jQ85pOKe*L=YUJNO|Dzl;Xzm+Swm7iG=pECKZS$5+8R!g+6{K*p^ zMRxD~gqb()hvCwUoKEO3mI$9t#Oe?LHcr4MVL=r!@M?&fQ{~9n8+D1 zn?KI^J+<>GLt;H!Fdak*#A%A=!cI^I2$BOmZhTA010(T@)*)USM@ST70wwW^H!0Pe z6K9pAHc!!-m5{z%6pE5V?9!hLsFr#!9XeRtCQE=_&$@f}Z}S9M?gA;-FVbbp5>Hno`>Xf*QkUPkufhD=Se z;pY58!(UAO?%O)C=f1J0{HAmBKMp4MzOUpCe7t0q^!*=(2A$PZyC2ZeczoHGUjF>? z6mz>BqtiJ{KlNq+P`ezxIN$3GiV)oqc=HHV5y# z-OmYt2d9sB6P5oW)cU0*06_sHEfBF9pe+!=7U10vQb0-pnhQ8XMl=isss@7T$FM+n z1%hOh(ECFHhKfl-&q^>%ARie8z&NHvk|0VD%tJ02$0fK=DW`}MB?vu(M%8qYEHqc7 z0Z_lj7$NBnXre@)ftOLN0s#^gZ3O2hQPMy?H;Hr!H-G^sUGhQ=rpsb;>Nz$*& z?G=|SeW+MiISd#%#eUE*kQ1ycbkJ7u6o2U``;jNo$z-z#0K!h9M~K>9Jw?^_Y5|*x zO%#_7kXZd^OTb$FXHCCc0ve>ldcPl2m&i2KSFPuo<2~W2!_cs=(_E__gZ;02EpybU z-~E9SUl}m|8?{*fC$$*anEn^kx{h0e24RE+W$$^>qyIO4e%cz5!d?%AAmw&>7^n?l z2m?I!ebHX`&A}}a!YnexEKnGSP00dDm`Q!J%o0T7Smj}wBaoY9sF{>S;pi_a*(`pW zaWs?aYI|RoZ;Hlmr27$Y4ohTXciH4f$emB$u|;z`PmE;ml~ht++s4lDBfR&cabG$1 zBa!F8J?r?nC5{+1X!IUMVc#GiQ$d*gw~PI6CFFmnjK`hI0V^Vk#T$uJ5{XhmFQ$+c z5Q&Oxe()pbvrBIyZiA-hzmS;sPM9!ZB0}JNg962=#Ggd+oWwYvgu*&aq;5bVnaPTX zb&!>ICpu;lRAe2daW^HC4bf|oJKy8^^Ne?&L)V@cC5uW`nl7o!)Z8C$dha?lkX^D^ zEFO-Wx~Iu*HWGJre>eR7bKGUUdNlN4wfAF;2aCaUn9Qgz^ZNagdyePds6m4^MK_(% zWY7WZl?~PU-|oSGsY{$ptp8dN{#$zh{r~McU?gB<`A@C=e_9Vba%#MxJe1cm&p6$a zX*QBtw3A5n&!rk|Xm?L`&>BsT!0I()OpJ{Pu^BLoVZneyk<(HZL9(fN=L&g!!=w<=NZfO2<%b#eH!Lsrm=J&8uOIbBFl_E3hK?uC3yFKUWFAyBF-i zf4z{ok^PQ9fztiZ4j@PmC%U)cL52lKBhpuPeN z!GP{$Zj7z~dOrMQ7322j-O+{~(leO<+=^DXV*ZtWUR1V!>*$ihJ)~EFUr?LOcmwnd z^{#i(#y*2zjNcCR2gCPP)(fEl*lvWslg&8r;~Z zMfGu1ob91(bwp$`x1C1ZDMbc4yBa<`;*iMd_h!BjMoX*+Fwt}L=lGuhiMKaJJ)d5A z6P{ps&jtW(R!l8k6eno-lS&Nw$GZ_cBTn1B5w7LR$kC?^76l`fmm$T{(TEe1z8pdR zZS>!O;R;ZCs&^w|hQVY`Fw0O0Y8E5h$gv|eq>n>KK@s1E1`i&BML)b%!)+*m2;0l( z$ZA9+PD0?bF;O05M9jWl9)F9NuSy~1%@(th^NF~TWusgwKt{J-l|Lypyi0RjK{US_ z68Wr+TzSZb4cWTMz?Id6RLo8T#@|IXvu`OyN;HQA)gvJLjR=zvD`c}pb3(pETUiJu zKY0X|HqyF>3uJjT1!3cdp~fY;LW;M4Qe+}G0f|auz)jAd?9BR!dSD;FLfHyDLgMp~ zkwp-Z%Mwx@l#goyOwgng-C!c0AJHb`Uv*pt)WwL1)YhRI`_l~ei7@CNd-H;4VZ&G1#C{x!_uv^u8?<{t+ujr$?^g(6B0NS=b)e5 zhL2{7z9GNN5f`EQYuJ!lctRP|OiCV#FhxYyMnzf>4~hWDDN2L^y`ry3>))B5J~1j3 z$egT9MJGOoV?Ju+^^yq9=RQCS`}qUMwxE2;Z4>;$$?k#vVTATg{$Zr{(f(n?_Er93 zV!NT=n4F$lpUj-cx`(I1M0oHKB}&HX0*{ih=K&Tk#Ef$<{QV7(4$VWGJo^&6@coJ1 zxdFtUF#kr^FY$XfkhtS(Ae@OV3`hNgF{ymZkt$u{9Kk;|A1o??@_JL2AGQG3b2;vUiR?22LVf^w`gh!FdDdI~oH9l`2raA|1(#`~>+ zAXM@%Js2WEF?Rf8?#REu)LnA97bsiVF~Pti+03_W4v{aL?8qKSuhhrSxhDD(c*$SdP*BF7`*Q$W~LNz4mDXy|X% zl(GnYDr{~j+Y%QANwkrQ8D?2YYZUSd`OMesk^CZcm==N@t0G{Ph#7*cFzLp#nUU_*{!4(1skopPFm>!~eSV5cqLvUCt*0#-cw0}F1exe$|Z z=R+N-so44o#wXFf3KZ8tiI)Rq#EW5YIq0yrcyKo}-xjL*2mR8gO_${m{nEG0z!*Ri za2;+aKqJTqSzrr;m3Bg>NC%|C3n`YQSBski{(AQlNaglzZ;3CM|C&w)q%)4}$$f~4 zQxt-!`OXdb1y48>0E-Jl;to6!*6b+c0>QluHeyvja)Qse3&w|j>1qVm-1TKd+wBFp z2IyDs1rgFrlkf2Z#2F#5sK4d|^Mk~u&i5BLO#YyxiMO^Oz%ie*lSEppVAiWzHB>**u~? z03VrRUEhx;M$%uVh=UIg60sO6(5|9{CilRVqOs+uqC-d`${B#aD1)$}nUWE>D6!=v zznYxFWC1xiba5PX8^Om;nm7|CMUA_wXt83qPmm>{a-oBNmRj~JrMOM!t1wv6qIhX# zWLv}?Dk%mutE=n^nUd$>l-3I!mj@qyE^ejWWNK(AX=-4htN%K}nNw9jqohLUqS94u zX6~6gsBS`2Z-WPS0p``tnTqks_OeuIi^k07m>_~{@+<%iZmPx=Tc$XfZfmdGq^d#t z>L*n;&Lg3z$4!$$+M!bh4yp`gyZAAUYy>uVRvd2p^Yr3kDrnEl7>w=Np;}3U5t|_x zWE;Z5VXRT!NK9CdS}jtUApK5qg)fF&5z(p|V#WjKl%=@M&>swL^ZLjS(5jxHp7M+F zJv6VWzn$ad$Af46OD`JIoDP5Xja5}0#U~kGvJ3`BD)h5>ij#smpLoU(&F5!D!Bv7b zho(GYD7WFx`Syd7nPirx6L5a#aP%kO3ej*+K4-;vdSZC;jv^~d<`K&0%PUNebZ`a$ zx*9_(E8vxahG1n7kSLc;Jm`%{pg35Toq4mfYo6~k%rD;Q<#xP}kI(UUR!r<=n-3P_ zy6W)qysz_hWqku1^Rfn2VhokA#oe#4JULmsxb#@J@fllY>^&^hG3rMxz?S{Fo{6Z4 zwTeNmfo2<2*a4Ws^A^w!W`f~lffdV$fbwhJ0De5+I_5xcMk-3W#>^P3mKagfb{Vl( zZOsr)F^5hbfnc`d%1V|j6Dk9@1j0^}`K`cGw8~a6X7Si8+lJ-Ow%M{j^kl97KFfB{ z_c1e2uw$=umoYW=@;Um+b9BB?V_O~Z+QNq-)h%7^HkjX2&GP@KR`+%qUv3I_XvJ>W zt%}6!c0BYuix+jIA$!Lqk;tJW!hDpIpfgiJqXSSda7*C%k?5%`Knm$<)?iSU-N;tm-bF?v-|wot9EgEs&vcO z7u!?+g|Bp*x8;7KF-EiIcm;izawYAJSr340BorMo3#eQHCO>4@DD_ zPqHUv26i|4X1$D1s2rg75;5Dm&g^vO-@YZaYoPCF$xtn5xy_Jf!WHOMa{wG-Id5b| zH5GlO@(CEQoP^A2XOwq@sU?-0lVE8SJ1X#7Z@#VQDXe*F&MCE3leM+?$P~}X!)syw-ovMTCUl4mujkW}JL*NS(a!DEq5doJ@nzz^(?bHwY} zHW>6jm~oC@$#U`?+)h{#!mJtXIMVC|l6z!5t4~_}O%i~Lf+eE)w;^K10%N~JdlBM& z^9pv>`oP`Zls&4R)UM;IevxxH< zjO&z{|Mt4X8t35ZhTt`kwql-Jd5hBpnJ+65;k0v-9s`T0;sjoI000S- zRScqv0SOkWDK@$s%n{DwnsT=+f9hzrTitloGIhC&Mc9EMPUEotn_F*r4y>Q(!9NqEVFJX~w9pAyZ-2MS8r?ZAn2ySX{`5wn_wjZ@Pw`UxF zrudHh!*3?O_z&&JAJyedI$}h`?ao|K9!kPEWU#>eER&Cw1mK#}V52-$lUZ^6mgsqL z{QZo&WH%D;lGm4cS56&i^3UC`hrV?=R+sIkr!T!3UfJ&z+*vku>ljFXzJ+=={q`@7 zkL2-gBo;)7DVMX~dDkF57Yn715zG2sxGDuqdsXimygQXFzO>P$Mtc6@8SL4T)KUc= zJ%md-Q#&Fv>9kd(&PXgCKm!>C@bjGxJAI@TrOEWrg5;8^+t(h zc>BbN^%j3O>fyzN;2v)-oOWLN+0WqY#iNzzt);rV1`g@>ejen*e7`=tX#HrPYRhbe zua9?8_{$&<^0i`|`OWBATX#p){hs{OXV$Is|{YggV5e$U6g$T<~Q9V`2z?d^syMkyb>a?QucIq}ct zR1Wi56p!fYJ)6C%cgL7|-}l{qY2S}XdQ0Pwd%Bdml4hf^^VdCeS)1Km^29$~uB^zO zbKU~ts~7*6PXd_^)h6XdpBkPHcE6`}@9SpSt><;L zwS%6)&Vas}eYZDUkLB}}``3jIkKc{DyWq!mR@ZGg*$3Tmt=2K*R;rQ=NO}tf!a*6@ zz{RlesX?GfnJ9i#)%urn`fgs=V_gD3h)<<>l6HBY^`42`QS%C{%=Nk1URrkt4WHLG zi3y}wP~s-+D@roP=}aTbLo%)KJbTB4@t%cKCW)N9%S$3EXG6EG-kX?g97DEHONn}X zr((5DS^XhJrB>1_Nxg<_tQ99>#@)$VGiJqsOVD;j@HvP z{0|x#tC3df`@{AVdnht$S~jR^-cp3ARNsTV%G>so3TMxnrR0WB51xD-!q4hiqL10g zC+oX%3{Yb>;=6`MA?RwxfJylc-U57N7{mleT5^LjB0rLuB61X^q&ivT>VmL=DoJir znDh@cLBOL)?k?yOHUc%+fYOzl=lw~P5Cg|%0lO5GkVIt*i)FmHG_?B8;4jqIUy0*U8J!|)b!}_h=Ci}mtNGg8HT&I;P^>h$i%l$A-I)c{=2Ixlv1n@Zqqxb% zy4z9Pb7n{6W5Tpt`Eh9WGAUWBIk7#c+Z%|gT28#n+xdK6HI9;})tqrWU*!q^xajB4 zY8u9C#q`5E%`o}r`h_eI@o(a(y$+;m71$AF2|>Ekc4|rFm4m5sODZi?pVjz-tjhri zITiA~Ls=r(IZY_p)C3z^3h*uYanyy*996}t(rmRxVG?6wV|7#Ql67}9nHo*S&*JKE zZ?xQAH@MyXnWfUp?`7GPHLvC?SHxE#Y=UN3GnE)gs0xFt#2`_Y&Rb6 z*82mUtXeCZU3MB?_X|~p+7sXIKT-ot%&U)vSB93<`IqpamDnOjA?IJo#+BoM&-R(c zoI;Y2%oqWjQAHJ$n4?b93mMV?86^K`o*yy^$zm{0PK8V`r%ycfLeVtnIk_&I~ zj@fr_S;yxd=FHKmWL=~9wCu*FR&jc@hc>GXyX(B!m9F^emQEJB8&U6Wj?Y^XT-p^9 zxh2Xmcom5OVGA4en=pT!TuDa?>|`25KA;7~zH$1a4Uv*T)1?<^QdJB(e3%s(HV~60 zNXDk%0`c<>1r$sfsE3$1^WNv(+rEhKT03+wI>K~^g#WVL<(~-d+ARxPm5o}R7+FCC z5nn(vnGkrG(W;owR}~(QFK2Hr%2bweslcE@GSECE0oI=ky!%-|{bd3v?A%+bG3C-y zRWz~LTgAoGH}+~a3@q~6{d0R}wen;e`5ZlO^Xz5TYHn#M!$TH3n0C950yRwJIZYWq zw72)ky>)4U9=1ul#tIBDXP1?XXq_)$Z>UDw2I}UQo1gJ;D2_C;tH#r$sizAMYM+UV zW&-nMS*L!p35)ks0Jh60d(4e*2c870LeHjv5NEyjf5VQWKPN3gz^!wa!wkjHE^j4o z5Oc)JF>sWG@ExT{7E*XxDuo~D%H~T}^LFw%7!#o7RdzcDf9vRqf2A>lICoWev)fsg z=QJVaOBW)ozY;!=6`+!xy95D9ZW+Nfu}8DflgNA22q7@EhLF93aPNTImdHX7y2EMF z^n-)z=vlL+FFnPB=LQw#? zqwdY7m!LH)2O|MzQ5sLkq@Yx1N208DLo-p3gxVv!@5 zeVl@Ko!8TH0yMC_K*Uv=`X&@XhuYz;i*Juf-JxgIbiTi2a-tKV<^4~G?@!2knR`CE z$U8gbeB56WgCXK^cwHhE-157<$T^EI_*|d*bJgYD=KRjF(dl^p9v8*?B_BIhV3wjd zX(JECho!!4Jkn-2YLs}$CS>c-j6}}uO(y8f+#?ZiHxVe+w!W>(*g=6#tl)6fZFxJ_ zl8JI_{#`VgQO-evF1CVm4X#1lR#y>ln6v(x9Nv@{HrV@8MP84LkSJB-5(xT`T5BAw zOKAV@8R{aeT}vrptN#iF!v*-kG@}>Hl~5|yCu~|5FXLHIPsK1~A}tm&<$CaZg|hkf zW}q3qud_XvYMr9R;iH>POkjg~?yPFNF!AC-h^Xv)RX9_R(Ck&kIgRnVvk1CS+7I|3ACHskO*srvg8)~QG(>!h{YaoDZOm{XzlQO zI`7br{v&7E+d+oGeCp#8VHWYT*^L)B! z*}0n`w-l35X83u(V?O#68n4zAI!dgO{jRJTSutKbqgZ*oQ|Ns^msgNQn|5t%UNI*D`5&$Z{ioQF3V1zWUO#9Wx7zFy9gk_v-wyi_*Zs!C zPGQl@I4usZM1LKu|8%eKqb!Eg7h5dv1i7Lb=YM1>Ip})vrM{NT5dN^2Xr&dY_L8_~ zV_bagX;!}yzGn(uZ{yb#4i0KjmrUL8CcNYF#Y89IqK3e^-9hG39I*yC>cMn?GI~l# ztqZN~ru+?-U$0V~Oy#jp{kvipJn;LF_sK4|#!hyI+p0*1ehw9w)h(HQI5}F)TC=Ii zXRCEVsqyqv`xW%6LfDtr2>uMI16w;n#&WNZp;;M=svY%$EWm^3o3<``U(0(c^e$jR zd+ecw6by{Cg-8FCHJ7IH0S(3DGU`>UZsNFxl*b~2U*10Wm{hzIBnZd}lqbv^j9fD* z)y}BIWTNPt60a=nRQz-6%pl=Q)KcK^fWjtGeI>YsBPb zRYFnG#QLRJh`0=OsA%~nU1>@FB3cHk*7p60y%v|taD5)H*O^B6TvVlV))Jj-unk+oEK0fKnxGmW?r9R$?1L|X+Ssr7YFY$b@&+%)% z(AvJ6Z%6ETfj?5d%sGDY&3Zb(B~R~j;RRtg^aEnzjFFQ*U58_J(yk-G0Q`N<$9}CA zUGC*6*UxaR_BQuCAE6clZiU1fByiV6*1|4EbEZP6b#CE>6Z7u7e zv}?9_+p>BcwB}48nfg2(yY1JahwRaC@Q^P#e{UJ(Q?nH9xeTa@CNxWkhbhHLnF@VRc;%1wD+H4wx7^1ZkWd)Sz28M!m3@@;jm+pf*h5d;(FE zCsFL{)5TeFNZ{-&u{T*h{>H=ON9zM#KVIz8`l8NyXI;zWii3@_xv$CL9p2xaI6+5y z;tUe=$(USSbWA<0nN^9vsZc;^(1J8_LL+XQE{XeU;p&%8+)MeXjuLHQn~h`6Yj0OX-wgf*ludo6jro z+KcyUXGSj&`x~CUtI*C#uoiTEp5+VygcL>gy9@{vIxJ_m(ed2LTrvRF1#dtYzOoud z^qS}h{WqyWd$oqR11iqz?W8g3lKhqJ#n1H1OEdmD-|+=41)F*sTLw=i*7bJFfA$3n zgU;PowR1|x6wLDL82$bL6^rE62Vh_YqY!cr9LsS4-4l_G2E35^-6SP$ zd@qmb%ixZR>kp4rJTFuDoo&6sRLq#{2;Uha3vYt3iso<=6sK?@8bNPB$p5Ncq z42+D7Y&`R`alNm8x7=YCnB+U|1OR_ffop-3jA-uY>|fYDxods+kZwIqx4Zc;i;Ll9 zT3cp%n;(uw&-~mzo-Z84#2l2W%kxLqJwjX5c5kqH9l^OQaF5b>Wt6SVeBU;6kA0*J z@{Ym(JMqouAmWFvM9V3CpYwo#7Tdk{5Q~|fU@IPJ=UW{36!Ls&z?pO@ARs2<{y=sP zts;jfgw5jrVe4A2RLsA2e^sC zCC~-9b18zlh#!wUT-ru4&m^i4)ENkNTRRKz1z`!0ZZRJ7Z@1h;u29N7wr>Gi9t4k* z=VA|&48A)SuFs2>hgvaJ@azOnpJ5g5D)59lpJ$N9@YWkTcL&f-PUu?~Vg_uN;?;0% z1Tpd9)*HA0=hih+=st?~wrSu&C)n}pw%5(W3Q@^MRKf?O;1e=@(`Q$6^Z`8hk)h;= zSqKb+y+2b7gSk&bkWud+6x0X3>gFF5d~XMR!p{Y1!e-!i@ckU-U_i@b0b&#Uu&#P;N>%v@ z()-@|D$H={0g>EK!{Z{%J`p-OIJb}-T1uiE2Ror2q2006AsHt142;dmvXf#-cgpbT+%qOR-x@yh0J)LUjIig-xS&DC?bxA~ z1;YG^I|nW7#%KvLiVPs%oW%*yBO{^Tu|HG>Cf1^#_$|D)Clibc)i6%O! zhr+GKnql%|ttMmWe08v3B-Xvd!}`|NL6X2EBnYtxHOa>$Hj?x4Eb3>Cl0cGYfE!l{ zHXX9HS8N?NtyBEGEgK{@3$8(=&si^r(22HwA0ONvo)4zo>C?L+diEJ7w;R1knf%z_!$$3 zx2P5yOq^7wuy4?U3Ihyyn;^I$uQrfee$bg%8*bMd%I^})k_*BcP7zFg68U;Khar+sxL ztF;r`&XGFyZvr0L5QCZdo9$Pl^EVHQ=SF~+5tdEf+a1#;O=p07ynJ8j_xvvspTPGQ zlY@gt;0b-#1@hEBTAiC_6OFEk?%{(c0{AeF!$x~^*-lD>`X)WG@myEACQqMiYG$Y0 z!QSwr*Gvv^PH?>x0!S>Z20J$GY8)wh3RAmmQH&w5LSMKKj)~szyuaS52GB1lwy_S? zc~AP9RTgCys(PE2t(kEnw13>(HpfMgOrg~UwNN91O~e4OaE^IqQ+yljMU6Yd1$>LS zZ2?JQ;k7t4-Mj%jX^dsWv!$8ux;iZii3Jah(T~8fz&bRoKz%VzI7~RCdzFN{0BQ2x z1=v39R)}oo`p=D?bHHRkDxRf$;anUH*7s|QKvp64{pGa;N89)tgwyO1JRn@hH{$t~ zy=q1%F>WNBhS{_xWV%ZP3<<Hx+qAv5fMhg`Q6PL~GV9lMadw1jU%|-aGHS z$tMBQ=LD4j$<7&t8J|6p_&4XdPs{-FO}ulObC=dwm&E2w8j~+KU$Z^hHd1@a)vDj> z$q8x)MwHcIASlLH?hIHUDr6$OIbo&1AdZX!)I$qY9?JdRi7K5e$t(htg8}5iaeUSP z=+!?&8EE12Pf2YTJKq2dI~h*4VU$l?p7O`K*Zx&yh+HG;JFB-}svTIlq18S!m1^`r zkfNNbL^6sBJ6DpRFUswJ0k1@$tLumv#Do9(sRIJN=CW1ufYpOdBZHhS;1)SAWPTCo ztzE$OQQnu!RrsqNSI9@Z0gQJ2}2JR!RC8qz8-t^?4 zL`31-0Wh;>q0n`UP$TSW5$HNgh_Bp9R^MR_IA2mnAG>gpSBqUJq1#`(P*S%fJ28=K z)1Bz_O($<=B*&SjDT%SJUNcC0_n^Fo`SPzC)PRpLzw%&xzD}Um4ZUAvdH=x+VYapDlEm)4k4)EUzc{54_m66Q*z)h6H&581!%q z`1o_J{&5fJj=pt81QZTYN5mus_*Het?9c3k0x6$=<^tX8a-luVG^(s3gRqG}(CCjQ zs|QH=q&eg4D0}xxw9x^fKW2v{`R98E!4rqMyoO{TmjOjh1o#O)_g(`H;niN-9rbz@ z4o-xAuqi0^5d6agNhEH5KlNz`-2+mnWAW|kTm73y`l^GpL89Ocsuud+QFl!q^$BkI z;rk_xLbPMSFVUo@9MUTt9afPLj(0KAk@IOb0qS2QiY~ZN(_Tc&EXO7ogcV^{E;|Jy_iR5;iy@Fb?gt+ z1K#+I5j%FTFc|E2d7+_(wwb6WB`6&4C3@{zcaP9kfD+UZ@ig+oT#7yPYXO&49=5VU zqDKrZT3X|W!kaAJQxSpYaYVcB{ENX1iTgOVEC|~s8~+>zm!eAlttBXfU)XIjz7&bE zTEG}Q7G)Obf0!bfj%t`TYXyN=$?RiXApv3rtO5nD(mTD@UB}gg`zm07<*O;Y6()~) zZyWDFsAEt>>wQ+kK#=x_1~9i495`;5PM(0PzylygEU^M91?2nu$&aM{>1m3~m;aQG z!Tm4JNgLS$Ckul4_{@&%QTxgQtmsUGpdD0V8FCnM4);<4d3U@QO`E^a5A^j<)sp?u ztnGt?L0dC&4J)7??G(cJ@!R4a@%d=8aN`0yv@aMIbwPmS-wF1pw_IEETV7s}5=gAd z|Du}67>eeke<>x{01N+NEg)g6i{GPzkT4b`5Hc`W7r%o?M2z{Kr~q=?Y<1Q8-Rf_it2O-1d$YGxidu6D7)WD~TDi*v=K z9?5c*#wx4Vu1kzZCUhOLl4~}$vYHgUVDfa56dqy9`LPU>x)i6SNR4T2CTyb>C=oYUb+ka&+R*Ht(@7>f19l)%J`=$&6|%qGC(s;KcVW6th#`PN@<-B}5N{>mzR zP_CWC$C<~2Ex^QRiZl~u3c|#c0N9~DngOLtJrPD?S%G8OH5GBa}>teD|vWo_}?Q-rGr-R?ua#mxERgQj}xup)*sX~eW*8ws2?+#)(dyheKm`IJtTd>Xk zuv=W@>0VW+9_z#P%_plB^HkoCKDBdWM|LkZkNAJu>F75h9u`Fr#!%yf@+H$n#-0!x z=SrO~>#TjL4R)Qbmga3SHl-jbCd=ii>L6_`Uv`G>tUVM9 zPjR-Va9Zl5mcGn-z6)uIuMzB;5%MVMV+GU#@rx09h7Sd^fIVmxsdezmMM;=a4T?Cn z!KoWDSlSDKZO3nM_dsD7fHhVrRt1x3Vt(M9jp9c%Pt5mlj zA7vUTlI2Uxp-)(NbF~%@v>H_M?Nw6Y%?>{_` zjCKP5^nJH)|9PihYh)VOJiBCSZ0E_^wjiLOo0A6~k4eYKEG#Qb-PSm=zT6w!FrtIDaz`O;w^Su%gVQ$t^daiWdFH>7G9Xwf1C}8Ts_6 z7tA5)J#5Rzhp8w@B0)sb=HdyVA@dZ$APD&R&ajXGct^33zarGc230R%f8-4Sl+1F5 zFz6J$-u8a&(tV=q{c&Zq!?QW-eY0}o@j=CUagiCm{i5NR`mXwQ{h%G1w}veJoe7`h zKT@(7CrWqAjCG6Ep$CaYS?F<QtLM&>$YJcj-W`XA@yU6Sk{-D*9^q3|+6PSpkZ;t`>>`1BVQ>w3gx}{#f;uYC zUInA(hRczT^<{l@)GD2GL_9PwMR{tm6|Tpjr14=AI}G0MW^z2mtlRA?eL1}GkI_oq z{up`vKK}5?58=}Yd28qW8E~Iy#%FL^1a1gXvD!A2q-$>$p+dhIByNoYZOwdZYYkQ zT!5-c#QJ#)d8mH52VmlAu?#{qLSnXt2Tr^;#$05;f(&s*e)()1ny&SyUU)eC@4g@% zb!l*UUNz?LTTjo6%{6Yn+cEdgB>pz!^|)$3_fE9s?3sYZc-BPnlLHuzl%ZFU9!&@$ z?7K`Q>k)QNwiZT@H=+A`a>BJCc&g}5elG!IcBHiaTvm${los2(+6}QE#hi(S^tkxf z+Pd7dLAVYzk)-fpCYG+v1P?{Q7}l(p8e`SbWSgaLyl;+ZCjrEWr8z`{@2Cn1{8+rd_|KR(W)yi=d00j({RW z)dpP6Vh}fmFl$;Qm8 zKHIIa%(xNZe~e~axwmpJL47a)U_dbGm>#pq0UFOxWmoKS&_S2`f3 zL}7*}S?JCeK6qroSDcfN!2~Z+NHo;Sy7P0|^|68rBc6*RyUG7YxAB2lJM@M+Me5H2 z`VR_h*LTbc-%i)Qgm&lM?$H^yZck5TSNRSoNMP>M_A9UtKJXDbR@A8XZmcYZkYT3E zNMT24QMi`<$}iwM9kul7<}ZtMCe2INF*1!DVpn}CCArs1;J%$!n`}&_8hbw-`K*&; zYj+Ym9J*b{ES;xlc!j%(xBa-7JN(|oykI21v;cb#W0YI({p#HL^W8V^t=|2wAb&h( z$@_3Uhr7oSXfY)1*D?F_A;7kZf)!!RK`^pHC7CLIO6oX4XtIn(1dVqADJao|AT@`e_yPJ;uTNo(FEH4#f!=e0}q49R1hrzXUa;4kH^B~yu5Ss#A?^UzK>hk0)?*pnj zxzLh13+9+iz@LdwbRt9)Y9exp;(#9wAVi zO{_U=jE{S{wS|Rk4Oj7mxoEz%{2UktSDKw`nO1Vty#jC3<85bl_2_i4ogJ`{75EnG z%{r$e5m9Eg22Fu(6FJJPO5$xWx+0iPDv~ZOB_ApX8PANh2YqIcTI73(i9x2a2K2`h zVGsglRJ7ePXP}(ikVdrwxD720stFPsNs21X{m&D>{Mn>D$_wtPZIyA^exQIC1vjov_EOM|SBbxN>BJGXODRzWJ z4KPh_eP4Y6J)%_^3_2){hbL`O1XWcceMyAH6DT1wLexpM>feQm{Cz}Asc!C^48*sv zeg#K_8`{lR^Vg5ripcC7qXTXyYPG$ME?R8y5os!|%WCd*EjJery=S=%sxbK)%ktLM z3UC68AQh{f$-_ftF+^IhA~m1 z`tr(6H63#nR8dU5MJiR%j*aIU*s^Bdpn;4ri6_##<4~V0Dj%DmqpOYk=6Wd~hSRCX z+*7-a4zlg ziGlX&${XE-4i2tm7rmvSs7H~7irdr$t0XrC@sgWsbBS{URH&<9QS!B@d_=HCs@1Ao z5D!BSqj(@gog8kh zj6hf1ukY+^U;LGfPuJ?@>6boUj+w9@AQ&e_2a>wZX?ZV!K!Jb#655f-n}K!I4I1}R z^Qb*m1*5$Q{>xSUh$h`2 zMP5JudWUSXd~{f!qq5k=N&_E1rfp>Jbb|J-8!qRkUS5#*c6`NsW%Xb!t~M5wvQ!9~ z^4$cI5Lvsc_FDZxBOBbih>Lpz_Yp<)(-X8=nHDmr<}%FUSb!4#VQH8OVC2gR07;XXSx=qR8_H_nQuI$lZNTM@b0K0QCYA*2+N5 zDAR~wmv28#p)I2GOER5fg^_@GRT(*dNfy_Y%fm%c#~zNS+aP$p&HBczH-v!}+z!u= z+*%y%`u$b)=S|-yjg8G*yY9#P3zMuHy`On@&`$Z{T%*JIl|&9dd660t?DMz$;YA@Z z@qR8rN5ivRfB|bG2{5yFi1;xN1im2bcFrDcAVDUM%HacN+KJs@iZk8Z{$dkk%Iz)B zcSY_)fD5>g;smpi1Cs9>lDnSd(FhWU-<&9`tU7g>ip-2|t&1CrS| zCkzD2gb3oqdT648J$oqm!f=LnFHnq+bQUv2V<4}HK!_AA?yfxB9zr`3GABVtv_=#< zY1ggBzaZNo-t z3DHPQuC0{D!{1lW?%0MDj5X@_VT4{%FA8+dfO7FU>KPcGbqlG6Y*;j=$H1}n)Dpa( z+JK%P|87$-f5%a;DIQu=Grw%G!`NEhq}lSe>%NAtYDH?N?^S9lXtgy>A6sp())$ZI z&-wqkzTQ!J7VFxvVelNiT{EfIEGaksQfkjGq_PEKAxtBwMsSO(od#|-#rZY01(sE% zWqdTRLH*b_O0^9x`Yx@a#!3?O4~&K<3s~T54eKGjh(@EU5;VI}{fLR>1-^`OHxL`C z0f;U7h%w-4K%_)m(W7rsWYRh1N_8*|hLs@JNzLu!Ay?0Jp&X9i7y^}gqw|d4=ea>2 zOiwc?vs_P}moie)B z0pFd1ov`qgx5!-5@g!GQtkF#hOA!t-2|EaX^^BVkGbWZBJ0!%Ax+_S&nau4d9hvH} z*zjC_mi!*zwoznxr&FI~&ih{ah^;P3mT{XIPKaU{%SUVW{-=vKj0^FkuGn z_Hi=(Ev$OB_42sNCM{LR@on?wVH^vjd7clpTN-dpqIOO#QgcKEL8%f@B%T%^=(WPS z`;HP2Cr5KCRC{>HaHIDP`qP+1>}ZvH?hL^X4m_!@+dy6FH@k>;a;2Pe?{m-~q&%g} zqw*Ol*kq8OG^GTtY^zWip`3jucAaz1cY6OYv^AnPDa7VK?i=o6mI=eA=)vL)vk*Xw z*g}D?--(~(<(wzCmE|#Un3FVWCgUj?8Z_fmg*!jHC+pUqkngNPOdfIU2#-o1Cug-l z@7e}BsB5JOG#jOu?G|}r)Rzn4sWywV)leSyvg29C%uE#W_hyUSk4{)&L}y%cC3R*> z{M?Xzl_$eqO<6v0?TV~ak*{`qrSe`n-IIG=+Z-E!#VzzBf`v0-xMR@1ar{YnwM)Sg zn@Kylt6B>#H^)$Z%JNo}NzL>@cWgD5lntsbZ&oWy9L&+<;H=C3V<-d}B<(f@c80QU~VbCq`gOg2DYR&KkzRSCo36!2;fKA|$9|_q3*nv?UW*SVA5FpE5=c zjX&`FFy$JQiQJKu)oqk0(dS#m9^ZYk7dofIuuVV1Uazk22*F;`gr+$P3T?HrD{ItO2$CHE)Hy}>)SF< zRwwjtwnYbGwZp9(@MNOLa|?v@7tmO5F;W?bK#lD~A%%n|+*<8|>nUO`LbbTR(EGk! zbba_fEz_4oX@qcTKS90e=N&q3*p`V3wm@H65o;k@Y=|o)Yd- z^((P}9Mkm~f<=Yp1DIyGSOn>>)_gy~)vg@ep|n*Ua-;I(StO>b#feVDxjC=X@R>k| zJ-%rS7R7m-V>s?Iw^T^*w)GNdJX>ds-qrKhUCTrRm|oa~k1)`|=U@^D>xN zt;FB_Ikj6he;6#eTjZwKmH0ZH`r6w|qWAUb%=>sO2)JLbmw$AHp`?y;Q6;Z%#D?>> z@UtG24=Z{i4$IP7v5;P7Gj_FxvY-;X)^q#pAkP%jeSgR}QD&zb{9BAUUuAw#5#cx7 zO@HP7^zlq z;?AMBKVV!~TJ}jr!g`fj(t#YgyHe#p8X7gB2+UyjvJ!p?BKu=@6tb?+>R$S6PS;C} zuh5yFl57*E!5sG!@E&3-8WzjF;hCRWc(zb-r}Q|!iV8e+agalUS!OpA%Q{ zD7BcSqF7J0_T0vd5i3?a)^FFP)mLMmuabY>(nsU@TfL^XzQ#p7O;3F>TQ6I0^_h!0 zj-Ylyzm(*JF)*y63L>St;C9x)%@z?D5eTpvV7o3C0}YzxQp%8MpZ`Qcb=YaXHWDsc zH#`yeWBwbM!9{FojW=e>wO8_%8_)L6%c^lsS3%GHVfnKcAA8dUvvT$Dbf;8E{}#vk zLU-d3VUJwW?{(fp zBe=PZ4sf?=s#CaH=S3YI@`K9{X8=NO$jU%yan9*YJ2bV}CDR3%N55+jiu%=*uozOP z9PR^&cDV$q)enuynk|vNS~iZAb@Xf;nNFg0V>G+eZ#n779U;^11F%aDHdW3 z+R2sB%Dtxco>0Dq3%hA}l&|ElGviS=dJUNiUl@m#))_VNadpo}<;`|1?j7Xtnvr2; z-u$bxxoGslf(dcCUQ~`O{Cs%K!x~xt)0aZLw;CH8*dKdEDQTNAh7J*vi@WabtLJpk zebTxt8ygdF^%}B>#dHIFD|`=xg-PtGWMHRh%)d7OcR|~;%_6ny zU68lOjsxzWI*j8&zM%>hB@@kuWqd2(w{py57z_p~c#dnMgTu{GJI(TuA_=+PKWf6u zJt*?Dx#bPD4%Hdqif3+@KMhh|3;CkDP(_4tzTVW$9L%-AxaAis1 z6n97GP^Fs+`<2#F>2brCXGf*u$N{nN%+Auf^UH)XwqG0i57|Vx`#D$uoEsNfbN;)8 zEa)+RS3v+$ruUD8;#n>5C^+21iL5buc|kWvdS0c=#U_wyB7A{VBZ*Xk?^L0m_GY0R zzKTN3R8kJ;P~}Kv<%l{uy0aXcI2d*nr;G5^l&}lua%i8jIRCce%jN3oWx#P9{uZZB z>&4wvko;vuR`RB>NUvr_|Qh)0k;BRI|-*@YXkZaF*WdPt`YP!+@wmaDV6^t8KtRvWH z$OEiAJj?Tiey5FTKG?C9TW*Vs-MK|T_1s;Ud7!@p^(76g^u&LrSoau%|3H!s_4M_S ze@02HrPccF(eo!?$-mHlH#68CmWE>quuV|SlC}WZ814wCr3>4~^gT?N6MvvPM^Fi+ zoysLoy%*$(r47O|fPGEE{3Edx$V&eKztTc6;fuLnrT<$x=8XhAZsrT;`%J1L_XEVr z0DOw_1-c0R(i{z1UD6#MC_`3Z^gc)V>C}|;P0dBR9w3)sM)6C13OYx=Gj=v&4wc#c z6=LWUjt0RLaWyX95dss7c79}35#5RLyj_{a`2PLz?H5f}Kri+MWr@bC1+U(9%GVUb z8EU!91-~NJw%l*xZv|E3&?dIG4s^p8?~8{rq`))vmvgT_Oc0`amxCasm>+JXV;2Q0 zz)3;Aeq%Q634y^f~Xya2}3{v?q))s2xNc)IIyV@qJ|tni3y_I z5n(*J_lbOzL9km>PgKH*{0#($PD301z%zXW;KppAbL}TI9&uM@*6bTah|>#U9CY=M z|5T96y*>^8^;=yx=sS&{=qQwvhJgMM+OIAllIC;dWo{sb8P2KPb4Kp0aa2<3?AlAOsqm6LFH79Up%xSuqb0d(1L5(F-oFM{Er438edA;S|)9;u~1oyz*WG*wjg{WEoedgRB_h?;^0 znL7)5^zr4w9$(aIccZ2BU69MVr2CU2l>oWVk8NGj>4K#>UPU3)hZkFE0*g-NIVpdx z>erP`lqeba)s3AmE`tur_f0?inpAV4iCGBXLGB@Sf?x%R7qtvD)+^c*7TG5)JOxlv zV1QtUUIaTtkesKh2j}qJeb((zu@E4I>0Ba$5KuLpoia@gK+Xi2AnL$W3Ir9X@*>yH z#5l=4&M!1eZ}x=ritux5+Ga`*X)6l&1NB*lc}jqzv1eVzeP*x}{Fy&)Ba4l(X`QSw!FcAShqrO;y9wkFye~cjt7T|huV<;!K(kfztLvXu z(^F+y+dCIb)Y1iyU;oJ8j}3kfDxC5)4 zLvj1q^NjFNv$X=~Pi$>64T6iR*g83_g|*=j-LWH^3D@hX3^G8qGnL7GNVj5w^uvX*s4+a^zS&)Yn3!wg_**9s!nEL_W+llQSGWrH=Dl`gZw z;`hM_P?2W?x=`9Ma$k+ot(hXupy-@emGnfGv!8nKalOmXP6KCfckt`(42;^vC0;lP zzi@>to5_k?4m!a_p^@M6C@4k;7m+}RB>FUNLT6-Khe*#Kcw>Pa)Ynr9^=V{iOHtv6 zWm*NC$ZXmdnl#8asbFgn5uzr|r`9iin_;}8NbfnQpbPQ#FJ5(^1zXK3*qNI#UC__T zJ@CId9`p4u>l)Oi4??qSQ2WwEfaB~K8fW`e)trxHUK(gmz1g6~OkbFOyAaU7x}@U6 zs&2@TZ*^85IMHTa4xw+>AY&!!sA_mCAPnFm3ZdztBX?_oqwG91I4{7}rFK&6)S}%i z2dJQUYs%Zq=j{jk46iL=dcja$8!YSxSJe4}?2{}5FMRn4T^TUD!*D$C*e`SFH&y-# zfcIDaMC^7av`_5X1R~#ehRyEVnArlBo9O5*M{M&0u#%_L{ZGl0`=S(JfYj8j;Mg-wK+lbwT8 zgn^BTL5zb{NR*9{m5GHxjFFv1kc~l%kKq42gwB8GbPXjFQz&|63r`aQ=HE`ElD5Vs z?gZKlzdOHE)Csg1e_NX}{to|>WAuMWMN!AO;Q|!^K1i3;!Q=MjEaX05KSYu1BX zpHk?6hd?tpgn8;YWR3ywD tags, String codeUrl invoice("invoice-consulting-v2", "v2/ConsultingInvoiceV2Example", "Consulting Invoice", "The ConsultingInvoice preset on the structured invoice model — brand lockup with the caller's logo, labelled masthead metadata, priced service lines with service periods, a totals stack and bank payment fields.", "invoice"); invoice("invoice-luma-studio-v2", "v2/LumaStudioInvoiceV2Example", "Luma Studio Invoice", "The LumaStudioInvoice preset on the structured invoice model — a cream sidebar carrying the brand lockup and its ornament, a billed-to / shipped-to pair, priced service lines with a VAT column, and the notes and bank details above a sign-off band.", "invoice"); invoice("invoice-payments-v2", "v2/PaymentsInvoiceV2Example", "Payments Invoice", "The PaymentsInvoice preset on the structured invoice model — a diagonal band crossing the masthead, a half-split issuer and metadata header, two addressed parties, marked service lines that repeat their header across pages, and a settlement row pairing bank details against the totals.", "invoice"); + invoice("invoice-workspace-v2", "v2/WorkspaceInvoiceV2Example", "Workspace Invoice", "The WorkspaceInvoice preset on the structured invoice model — a brand masthead over an accent bar, a half-split issuer and metadata header, two addressed parties on discs, service lines whose marks sit on coloured tiles, and a settlement row above a closing band.", "invoice"); invoice("invoice-modern-v2", "v2/ModernInvoiceV2Example", "Modern Invoice", "The ModernInvoice preset composed straight from an InvoiceDocumentSpec — line items, totals and payment block driven by the BrandTheme rather than per-document styling.", "invoice"); invoice("invoice-classic-v2", "v2/ClassicInvoiceV2Example", "Classic Invoice", "The ClassicInvoice preset — letterhead header band, TOTAL DUE hero strip, BILL TO / FROM columns, and a dedicated Summary table after the line items.", "invoice"); diff --git a/examples/src/main/java/com/demcha/examples/support/WorkspaceInvoiceSampleData.java b/examples/src/main/java/com/demcha/examples/support/WorkspaceInvoiceSampleData.java new file mode 100644 index 000000000..9a569a11e --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/WorkspaceInvoiceSampleData.java @@ -0,0 +1,141 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceSummaryBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * Shared sample data for the Workspace invoice example. + * + *

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

      + */ +public final class WorkspaceInvoiceSampleData { + + private WorkspaceInvoiceSampleData() { + } + + /** + * The sample invoice — six metadata rows, two addressed parties, four + * marked service lines, eight payment fields, two summed rows and a closing + * line with an address inside it. + * + * @return the document the example renders + */ + public static StructuredInvoiceData sample() { + return new StructuredInvoiceData( + brand(), supplier(), masthead(), billTo(), shipTo(), + new InvoiceSummaryBlock("", "", ""), + serviceLines(), totals(), payment(), notes(), "USD"); + } + + /** No logo: the wordmark is what a document without one falls back to. */ + private static InvoiceBrand brand() { + return new InvoiceBrand(null, "kestrel", "", "", "", ""); + } + + private static InvoiceContactBlock supplier() { + return new InvoiceContactBlock( + "Kestrel Collaboration, Inc.", + List.of("500 Howard Street, 6th Floor", "San Francisco, CA 94105", + "United States"), + "", "", "kestrel.example", + "", "", + "VAT ID:", "US 77-0560185"); + } + + private static InvoiceMasthead masthead() { + List entries = new ArrayList<>(); + entries.add(new InvoiceMasthead.Entry("Invoice Number:", "INV-2024-0003521", true)); + entries.add(new InvoiceMasthead.Entry("Invoice Date:", "27 May 2024", false)); + entries.add(new InvoiceMasthead.Entry("Billing Period:", "1 - 31 May 2024", false)); + entries.add(new InvoiceMasthead.Entry("Workspace ID:", "T04FQ9L2M", false)); + entries.add(new InvoiceMasthead.Entry("Payment Terms:", "Net 30", false)); + entries.add(new InvoiceMasthead.Entry("Due Date:", "26 June 2024", false)); + return new InvoiceMasthead("INVOICE", entries); + } + + /** The registration is the labelled pair printed under the address. */ + private static InvoiceRecipient billTo() { + return new InvoiceRecipient("BILL TO", "Bright Future Ltd.", "", + List.of("45 King Street", "Manchester M2 7AZ", "United Kingdom"), + "", "", "VAT ID:", "GB 987 6543 21"); + } + + private static InvoiceRecipient shipTo() { + return new InvoiceRecipient("SHIP TO", "Bright Future Ltd.", "", + List.of("Unit 4, Riverside Park", "Leeds LS1 4AP", "United Kingdom"), + "", "", "", ""); + } + + private static InvoiceServiceLines serviceLines() { + // The currency is not in the labels: the preset names it once per money + // column, so a document states the code and nothing else. + InvoiceServiceLines.Columns columns = new InvoiceServiceLines.Columns( + "", "DESCRIPTION", "PLAN / SERVICE", "QTY", "UNIT PRICE", "AMOUNT", ""); + List lines = new ArrayList<>(); + lines.add(line(1, "Kestrel Business+", "Workspace subscription", + "Business+ Annual", "50", "Users", "8.75", "437.50", "grid")); + lines.add(line(2, "Enterprise Key Management", "Customer-managed encryption keys", + "Add-on", "1", "", "100.00", "100.00", "search")); + lines.add(line(3, "Priority Support", "Named engineer and response target", + "Standard", "1", "", "50.00", "50.00", "shield")); + lines.add(line(4, "Workflow Automation", "Templates and scheduled runs", + "Included", "1", "", "0.00", "0.00", "grid")); + return new InvoiceServiceLines(columns, lines); + } + + private static InvoiceServiceLines.Line line(int number, String title, String description, + String plan, String quantity, String unit, + String unitPrice, String amount, String icon) { + return new InvoiceServiceLines.Line(number, title, description, plan, + new BigDecimal(quantity), unit, decimal(unitPrice), decimal(amount), "", icon); + } + + private static InvoiceTotalsBlock totals() { + List rows = new ArrayList<>(); + rows.add(new InvoiceTotalsBlock.Row("Subtotal", decimal("587.50"))); + rows.add(new InvoiceTotalsBlock.Row("Tax (0%)", decimal("0.00"))); + return new InvoiceTotalsBlock(rows, "TOTAL DUE", decimal("587.50")); + } + + private static InvoicePaymentBlock payment() { + List fields = new ArrayList<>(); + fields.add(new InvoicePaymentBlock.Field("Bank Name:", "Bay Union Bank, N.A.")); + fields.add(new InvoicePaymentBlock.Field("Account Name:", "Kestrel Collaboration, Inc.")); + fields.add(new InvoicePaymentBlock.Field("Account Number:", "000000123456789")); + fields.add(new InvoicePaymentBlock.Field("Routing (ABA):", "021000021")); + fields.add(new InvoicePaymentBlock.Field("SWIFT / BIC:", "BAYUUS33")); + fields.add(new InvoicePaymentBlock.Field("Currency:", "USD")); + fields.add(new InvoicePaymentBlock.Field("Reference:", "INV-2024-0003521")); + fields.add(new InvoicePaymentBlock.Field("Bank Address:", "1 Market Plaza, San Francisco")); + return new InvoicePaymentBlock("PAYMENT DETAILS", fields, + "Please include the invoice number in your payment reference.", + "PAYMENT DUE BY", + "26 June 2024", + "", ""); + } + + private static InvoiceNotesBlock notes() { + return new InvoiceNotesBlock("Thank you for using Kestrel.", + List.of("Questions about this invoice? Reach us at billing@kestrel.example " + + "and we will get back to you within one business day."), + "billing@kestrel.example", ""); + } + + private static BigDecimal decimal(String printed) { + return new BigDecimal(printed.replace(",", "")); + } +} diff --git a/examples/src/main/java/com/demcha/examples/templates/invoice/v2/WorkspaceInvoiceV2Example.java b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/WorkspaceInvoiceV2Example.java new file mode 100644 index 000000000..2a18cfb5d --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/WorkspaceInvoiceV2Example.java @@ -0,0 +1,54 @@ +package com.demcha.examples.templates.invoice; + +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.invoice.StructuredInvoiceData; +import com.demcha.compose.document.templates.invoice.presets.WorkspaceInvoice; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.WorkspaceInvoiceSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code invoice.v2} Workspace preset against the design + * sample. + * + *

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

      + * + *

      The preset owns its page geometry and its pagination — the table's header + * repeats and a continuation page reserves a deeper bottom margin — so the + * session starts unconfigured. The sample brings no logo, so the lockup box + * beside the title is filled with the brand's name as a wordmark.

      + */ +public final class WorkspaceInvoiceV2Example { + + private WorkspaceInvoiceV2Example() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare("templates/invoice", + "invoice-workspace-v2.pdf"); + StructuredInvoiceData data = WorkspaceInvoiceSampleData.sample(); + DocumentTemplate template = WorkspaceInvoice.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + template.compose(document, data); + 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/invoice/presets/WorkspaceInvoiceFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceFixtures.java new file mode 100644 index 000000000..28fca8964 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceFixtures.java @@ -0,0 +1,140 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceSummaryBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * Shared fixture data for the {@link WorkspaceInvoice} gates — the SAME + * document feeds the pixel parity test and the layout snapshot test, so a + * geometry shift the pixel budget absorbs still trips the exact snapshot, and + * vice versa. + */ +final class WorkspaceInvoiceFixtures { + + private WorkspaceInvoiceFixtures() { + } + + /** + * The canonical one-page invoice — six metadata rows, two addressed parties + * each printing a registration, four marked service lines, eight payment + * fields, two summed rows and a closing line with an address inside it. + * + * @return the document + */ + static StructuredInvoiceData canonicalInvoice() { + return new StructuredInvoiceData( + brand(), supplier(), masthead(), billTo(), shipTo(), + new InvoiceSummaryBlock("", "", ""), + serviceLines(), totals(), payment(), notes(), "USD"); + } + + /** No logo: the wordmark is what a document without one falls back to. */ + static InvoiceBrand brand() { + return new InvoiceBrand(null, "kestrel", "", "", "", ""); + } + + static InvoiceContactBlock supplier() { + return new InvoiceContactBlock( + "Kestrel Collaboration, Inc.", + List.of("500 Howard Street, 6th Floor", "San Francisco, CA 94105", + "United States"), + "", "", "kestrel.example", + "", "", + "VAT ID:", "US 77-0560185"); + } + + static InvoiceMasthead masthead() { + List entries = new ArrayList<>(); + entries.add(new InvoiceMasthead.Entry("Invoice Number:", "INV-2024-0003521", true)); + entries.add(new InvoiceMasthead.Entry("Invoice Date:", "27 May 2024", false)); + entries.add(new InvoiceMasthead.Entry("Billing Period:", "1 - 31 May 2024", false)); + entries.add(new InvoiceMasthead.Entry("Workspace ID:", "T04FQ9L2M", false)); + entries.add(new InvoiceMasthead.Entry("Payment Terms:", "Net 30", false)); + entries.add(new InvoiceMasthead.Entry("Due Date:", "26 June 2024", false)); + return new InvoiceMasthead("INVOICE", entries); + } + + /** The registration is the labelled pair printed under the address. */ + static InvoiceRecipient billTo() { + return new InvoiceRecipient("BILL TO", "Bright Future Ltd.", "", + List.of("45 King Street", "Manchester M2 7AZ", "United Kingdom"), + "", "", "VAT ID:", "GB 987 6543 21"); + } + + static InvoiceRecipient shipTo() { + return new InvoiceRecipient("SHIP TO", "Bright Future Ltd.", "", + List.of("Unit 4, Riverside Park", "Leeds LS1 4AP", "United Kingdom"), + "", "", "", ""); + } + + static InvoiceServiceLines serviceLines() { + // The currency is not in the labels: the preset names it once per money + // column, so a document states the code and nothing else. + InvoiceServiceLines.Columns columns = new InvoiceServiceLines.Columns( + "", "DESCRIPTION", "PLAN / SERVICE", "QTY", "UNIT PRICE", "AMOUNT", ""); + List lines = new ArrayList<>(); + lines.add(line(1, "Kestrel Business+", "Workspace subscription", + "Business+ Annual", "50", "Users", "8.75", "437.50", "grid")); + lines.add(line(2, "Enterprise Key Management", "Customer-managed encryption keys", + "Add-on", "1", "", "100.00", "100.00", "search")); + lines.add(line(3, "Priority Support", "Named engineer and response target", + "Standard", "1", "", "50.00", "50.00", "shield")); + lines.add(line(4, "Workflow Automation", "Templates and scheduled runs", + "Included", "1", "", "0.00", "0.00", "grid")); + return new InvoiceServiceLines(columns, lines); + } + + private static InvoiceServiceLines.Line line(int number, String title, String description, + String plan, String quantity, String unit, + String unitPrice, String amount, String icon) { + return new InvoiceServiceLines.Line(number, title, description, plan, + new BigDecimal(quantity), unit, decimal(unitPrice), decimal(amount), "", icon); + } + + static InvoiceTotalsBlock totals() { + List rows = new ArrayList<>(); + rows.add(new InvoiceTotalsBlock.Row("Subtotal", decimal("587.50"))); + rows.add(new InvoiceTotalsBlock.Row("Tax (0%)", decimal("0.00"))); + return new InvoiceTotalsBlock(rows, "TOTAL DUE", decimal("587.50")); + } + + static InvoicePaymentBlock payment() { + List fields = new ArrayList<>(); + fields.add(new InvoicePaymentBlock.Field("Bank Name:", "Bay Union Bank, N.A.")); + fields.add(new InvoicePaymentBlock.Field("Account Name:", "Kestrel Collaboration, Inc.")); + fields.add(new InvoicePaymentBlock.Field("Account Number:", "000000123456789")); + fields.add(new InvoicePaymentBlock.Field("Routing (ABA):", "021000021")); + fields.add(new InvoicePaymentBlock.Field("SWIFT / BIC:", "BAYUUS33")); + fields.add(new InvoicePaymentBlock.Field("Currency:", "USD")); + fields.add(new InvoicePaymentBlock.Field("Reference:", "INV-2024-0003521")); + fields.add(new InvoicePaymentBlock.Field("Bank Address:", "1 Market Plaza, San Francisco")); + return new InvoicePaymentBlock("PAYMENT DETAILS", fields, + "Please include the invoice number in your payment reference.", + "PAYMENT DUE BY", + "26 June 2024", + "", ""); + } + + static InvoiceNotesBlock notes() { + return new InvoiceNotesBlock("Thank you for using Kestrel.", + List.of("Questions about this invoice? Reach us at billing@kestrel.example " + + "and we will get back to you within one business day."), + "billing@kestrel.example", ""); + } + + private static BigDecimal decimal(String printed) { + return new BigDecimal(printed.replace(",", "")); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceLayoutSnapshotTest.java new file mode 100644 index 000000000..74c3e25fe --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceLayoutSnapshotTest.java @@ -0,0 +1,33 @@ +package com.demcha.compose.document.templates.invoice.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 WorkspaceInvoice} — freezes the resolved + * geometry of the canonical one-page invoice, which the pixel budget cannot + * see: a small column or spacing shift stays under the visual-diff budget but + * changes the snapshot. + * + *

      The preset owns its page geometry, so the session starts unconfigured.

      + * + *

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

      + */ +class WorkspaceInvoiceLayoutSnapshotTest { + + @Test + void canonicalInvoiceMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + WorkspaceInvoice.create().compose(session, + WorkspaceInvoiceFixtures.canonicalInvoice()); + assertThat(session.layoutSnapshot().totalPages()).as("total pages").isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "workspace_invoice_layout", "invoice"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceSmokeTest.java new file mode 100644 index 000000000..8dad4bc60 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceSmokeTest.java @@ -0,0 +1,269 @@ +package com.demcha.compose.document.templates.invoice.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.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceSummaryBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link WorkspaceInvoice} — proves the preset renders a + * {@link StructuredInvoiceData} end-to-end with its packaged marks, names the + * currency once per money column rather than on every figure, writes a quantity + * with what it counts, prints a billed party's registration under its address, + * reports an unknown mark as a data error, repeats the table header when the + * lines run past a page, and carries the closing address as a link annotation, + * which moves no pixel and no layout node so neither gate would notice it going + * missing. + */ +class WorkspaceInvoiceSmokeTest { + + private static byte[] render(StructuredInvoiceData data) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + WorkspaceInvoice.create().compose(session, data); + 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); + } + } + + private static int pagesOf(StructuredInvoiceData data) throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + WorkspaceInvoice.create().compose(session, data); + return session.layoutSnapshot().totalPages(); + } + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + /** The canonical invoice with its service lines replaced. */ + private static StructuredInvoiceData withLines(InvoiceServiceLines lines) { + StructuredInvoiceData base = WorkspaceInvoiceFixtures.canonicalInvoice(); + return new StructuredInvoiceData(base.brand(), base.supplier(), base.masthead(), + base.billTo(), base.shipTo(), base.summary(), lines, base.totals(), + base.payment(), base.notes(), base.currencyCode()); + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = WorkspaceInvoice.create(); + assertThat(template.id()).isEqualTo(WorkspaceInvoice.ID); + assertThat(template.displayName()).isEqualTo(WorkspaceInvoice.DISPLAY_NAME); + } + + @Test + void rendersCanonicalInvoiceWithPackagedMarks() throws Exception { + render(WorkspaceInvoiceFixtures.canonicalInvoice()); + } + + @Test + void canonicalRenderCarriesEveryBlocksText() throws Exception { + String text = textOf(render(WorkspaceInvoiceFixtures.canonicalInvoice())); + assertThat(text) + .contains("INVOICE") + .contains("Kestrel Collaboration, Inc.") + .contains("Invoice Number:") + .contains("BILL TO") + .contains("SHIP TO") + .contains("Bright Future Ltd.") + .contains("Kestrel Business+") + .contains("PAYMENT DETAILS") + .contains("BAYUUS33") + .contains("TOTAL DUE") + .contains("PAYMENT DUE BY") + .contains("Thank you for using Kestrel."); + } + + @Test + void bothPartiesPrintTheirOwnRegistration() throws Exception { + // The supplier's sits under its address in the header, the billed + // party's under its address in the split — both labelled pairs. + String text = textOf(render(WorkspaceInvoiceFixtures.canonicalInvoice())); + assertThat(text).contains("US 77-0560185").contains("GB 987 6543 21"); + } + + @Test + void aPartyWithNoRegistrationPrintsNoLabel() throws Exception { + // The ship-to has none, and a label over an absence would be worse than + // no row at all — so there is exactly one of each in the split. + String text = textOf(render(WorkspaceInvoiceFixtures.canonicalInvoice())); + assertThat(text.split("VAT ID:", -1)).hasSize(3); + } + + @Test + void theCurrencyIsNamedOncePerColumnAndNotOnEveryFigure() throws Exception { + // This design states the currency in the column head; the figures under + // it are bare, and only the total carries the code. + String text = textOf(render(WorkspaceInvoiceFixtures.canonicalInvoice())); + assertThat(text) + .contains("UNIT PRICE (USD)") + .contains("AMOUNT (USD)") + .contains("USD 587.50") + .doesNotContain("$437.50"); + assertThat(text).contains("437.50"); + } + + @Test + void aQuantityIsWrittenWithWhatItCounts() throws Exception { + String text = textOf(render(WorkspaceInvoiceFixtures.canonicalInvoice())); + assertThat(text).contains("50 Users"); + } + + @Test + void aDocumentWithNoLogoFallsBackToItsName() throws Exception { + // The preset carries no mark of its own, so a document that brings only + // a name still gets a lockup — and the closing band always sets it. + assertThat(textOf(render(WorkspaceInvoiceFixtures.canonicalInvoice()))) + .contains("kestrel"); + } + + @Test + void theClosingAddressIsClickable() throws Exception { + assertThat(linkTargets(render(WorkspaceInvoiceFixtures.canonicalInvoice()))) + .contains("mailto:billing@kestrel.example") + .contains("https://kestrel.example"); + } + + @Test + void anUnknownMarkIsReportedAsADataError() { + InvoiceServiceLines wrong = new InvoiceServiceLines( + WorkspaceInvoiceFixtures.serviceLines().columns(), + List.of(new InvoiceServiceLines.Line(1, "Telepathy", "Reading minds", "Add-on", + BigDecimal.ONE, "", BigDecimal.TEN, BigDecimal.TEN, "", "telescope"))); + + assertThatThrownBy(() -> render(withLines(wrong))) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("telescope") + .hasMessageContaining("shield"); + } + + @Test + void aLineWithoutAMarkIsDrawnWithoutOne() throws Exception { + InvoiceServiceLines unmarked = new InvoiceServiceLines( + WorkspaceInvoiceFixtures.serviceLines().columns(), + List.of(new InvoiceServiceLines.Line(1, "Consulting", "A day of it", "Standard", + BigDecimal.ONE, "", new BigDecimal("1200"), new BigDecimal("1200"), ""))); + + assertThat(textOf(render(withLines(unmarked)))).contains("Consulting"); + } + + @Test + void aLongerInvoiceRunsOnAndRepeatsItsTableHeader() throws Exception { + List many = new ArrayList<>(); + for (int index = 1; index <= 30; index++) { + many.add(new InvoiceServiceLines.Line(index, "Service " + index, + "A line of description for it", "Standard", + BigDecimal.ONE, "", new BigDecimal("120"), new BigDecimal("120"), + "", "grid")); + } + StructuredInvoiceData longer = withLines(new InvoiceServiceLines( + WorkspaceInvoiceFixtures.serviceLines().columns(), many)); + + assertThat(pagesOf(longer)).isGreaterThan(1); + byte[] pdfBytes = render(longer); + assertThat(textOf(pdfBytes)).contains("Service 30"); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + PDFTextStripper stripper = new PDFTextStripper(); + stripper.setStartPage(2); + stripper.setEndPage(2); + assertThat(stripper.getText(document)) + .as("the second page names its columns") + .contains("DESCRIPTION") + .contains("PLAN / SERVICE"); + } + } + + @Test + void everyPageCarriesItsNumber() throws Exception { + List many = new ArrayList<>(); + for (int index = 1; index <= 30; index++) { + many.add(new InvoiceServiceLines.Line(index, "Service " + index, "", "Standard", + BigDecimal.ONE, "", new BigDecimal("120"), new BigDecimal("120"), + "", "grid")); + } + String text = textOf(render(withLines(new InvoiceServiceLines( + WorkspaceInvoiceFixtures.serviceLines().columns(), many)))); + assertThat(text).contains("Page 1 of").contains("Page 2 of"); + } + + @Test + void anInvoiceWithNoShipToDrawsOneParty() throws Exception { + StructuredInvoiceData base = WorkspaceInvoiceFixtures.canonicalInvoice(); + StructuredInvoiceData single = new StructuredInvoiceData(base.brand(), base.supplier(), + base.masthead(), base.billTo(), + new InvoiceRecipient("", "", "", List.of(), "", ""), + base.summary(), base.serviceLines(), base.totals(), base.payment(), + base.notes(), base.currencyCode()); + + String text = textOf(render(single)); + assertThat(text).contains("BILL TO").doesNotContain("SHIP TO"); + } + + @Test + void anInvoiceWithNoNoteDropsTheCardsRuleWithIt() throws Exception { + // The rule exists to separate the fields from the note; with no note it + // would close the card on nothing. + StructuredInvoiceData base = WorkspaceInvoiceFixtures.canonicalInvoice(); + InvoicePaymentBlock quiet = new InvoicePaymentBlock( + base.payment().heading(), base.payment().fields(), "", + base.payment().dueNotice(), base.payment().dueNoticeEmphasis(), "", ""); + StructuredInvoiceData bare = new StructuredInvoiceData(base.brand(), base.supplier(), + base.masthead(), base.billTo(), base.shipTo(), base.summary(), + base.serviceLines(), base.totals(), quiet, base.notes(), base.currencyCode()); + + assertThat(textOf(render(bare))) + .doesNotContain("Please include the invoice number"); + } + + @Test + void anEmptyDocumentStillRenders() throws Exception { + // Every block absent: the preset draws its furniture and nothing else, + // rather than failing on the first missing field. + render(new StructuredInvoiceData(new InvoiceBrand(null, "", "", ""), null, null, + null, null, new InvoiceSummaryBlock("", "", ""), + new InvoiceServiceLines(null, List.of()), null, + new InvoicePaymentBlock("", List.of(), "", "", "", "", ""), + new InvoiceNotesBlock("", List.of(), "", ""), "")); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceVisualParityTest.java new file mode 100644 index 000000000..0a72411b1 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoiceVisualParityTest.java @@ -0,0 +1,41 @@ +package com.demcha.compose.document.templates.invoice.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 WorkspaceInvoice} — the canonical + * one-page invoice against a checked-in baseline. + * + *

      Re-blessing baselines — after a deliberate visual change, + * re-run with {@code -Dgraphcompose.visual.approve=true} and commit the updated + * PNG with the change.

      + */ +class WorkspaceInvoiceVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "invoice-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()) { + WorkspaceInvoice.create().compose(document, + WorkspaceInvoiceFixtures.canonicalInvoice()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("workspace_invoice", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/workspace_invoice_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/workspace_invoice_layout.json new file mode 100644 index 000000000..eec8955b4 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/workspace_invoice_layout.json @@ -0,0 +1,6197 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 543.365, + "innerHeight" : 800.136, + "margin" : { + "top" : 25.955, + "right" : 26.519, + "bottom" : 15.799, + "left" : 25.391 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "WorkspaceInvoice[0]", + "entityName" : "WorkspaceInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 25.391, + "computedY" : 18.885, + "placementX" : 25.391, + "placementY" : 18.885, + "placementWidth" : 543.365, + "placementHeight" : 797.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 797.05, + "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" : "WorkspaceInvoice[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 776.74, + "placementX" : 25.391, + "placementY" : 776.74, + "placementWidth" : 543.365, + "placementHeight" : 39.195, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 39.195, + "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" : "WorkspaceInvoice[0]/Masthead[0]/BrandLockup[0]", + "entityName" : "BrandLockup", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.391, + "computedY" : 792.782, + "placementX" : 25.391, + "placementY" : 792.782, + "placementWidth" : 58.595, + "placementHeight" : 23.152, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.595, + "contentHeight" : 23.152, + "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" : "WorkspaceInvoice[0]/Masthead[0]/BrandLockup[0]/BrandWordmark[0]", + "entityName" : "BrandWordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/Masthead[0]/BrandLockup[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 25.391, + "computedY" : 792.782, + "placementX" : 25.391, + "placementY" : 792.782, + "placementWidth" : 58.595, + "placementHeight" : 23.152, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.595, + "contentHeight" : 23.152, + "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" : "WorkspaceInvoice[0]/Masthead[0]/InvoiceTitle[1]", + "entityName" : "InvoiceTitle", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 145.01, + "computedY" : 776.74, + "placementX" : 145.01, + "placementY" : 776.74, + "placementWidth" : 423.746, + "placementHeight" : 39.195, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 423.746, + "contentHeight" : 39.195, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : -4.119, + "right" : 7.335, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/Masthead[0]/InvoiceTitle[1]/InvoiceTitleText[0]", + "entityName" : "InvoiceTitleText", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/Masthead[0]/InvoiceTitle[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 145.01, + "computedY" : 776.74, + "placementX" : 145.01, + "placementY" : 776.74, + "placementWidth" : 416.411, + "placementHeight" : 43.314, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 416.411, + "contentHeight" : 43.314, + "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" : "WorkspaceInvoice[0]/BrandAccentRule[1]", + "entityName" : "BrandAccentRule", + "entityKind" : "LineNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 763.46, + "placementX" : 25.391, + "placementY" : 763.46, + "placementWidth" : 23.134, + "placementHeight" : 2.257, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.134, + "contentHeight" : 2.257, + "margin" : { + "top" : 11.023, + "right" : 0.0, + "bottom" : 8.592, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/IssuerMetaRow[2]", + "entityName" : "IssuerMetaRow", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 641.4, + "placementX" : 25.391, + "placementY" : 641.4, + "placementWidth" : 543.365, + "placementHeight" : 113.468, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 113.468, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]", + "entityName" : "IssuerAddress", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.391, + "computedY" : 662.841, + "placementX" : 25.391, + "placementY" : 662.841, + "placementWidth" : 271.683, + "placementHeight" : 92.027, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 271.683, + "contentHeight" : 92.027, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 6.771, + "right" : 0.0, + "bottom" : 0.0, + "left" : 1.128 + } + }, { + "path" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerName[0]", + "entityName" : "IssuerName", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 26.519, + "computedY" : 734.805, + "placementX" : 26.519, + "placementY" : 734.805, + "placementWidth" : 127.608, + "placementHeight" : 13.291, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 127.608, + "contentHeight" : 13.291, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerAddressLines[1]", + "entityName" : "IssuerAddressLines", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 26.519, + "computedY" : 684.282, + "placementX" : 26.519, + "placementY" : 684.282, + "placementWidth" : 122.916, + "placementHeight" : 42.373, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.916, + "contentHeight" : 42.373, + "margin" : { + "top" : 8.15, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerAddressLines[1]/IssuerAddressLine1[0]", + "entityName" : "IssuerAddressLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerAddressLines[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 26.519, + "computedY" : 715.316, + "placementX" : 26.519, + "placementY" : 715.316, + "placementWidth" : 122.916, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.916, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerAddressLines[1]/IssuerAddressLine2[1]", + "entityName" : "IssuerAddressLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerAddressLines[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 26.519, + "computedY" : 699.799, + "placementX" : 26.519, + "placementY" : 699.799, + "placementWidth" : 104.129, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.129, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerAddressLines[1]/IssuerAddressLine3[2]", + "entityName" : "IssuerAddressLine3", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerAddressLines[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 26.519, + "computedY" : 684.282, + "placementX" : 26.519, + "placementY" : 684.282, + "placementWidth" : 56.284, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.284, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerTaxLineLayer[2]", + "entityName" : "IssuerTaxLineLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 26.519, + "computedY" : 662.841, + "placementX" : 26.519, + "placementY" : 662.841, + "placementWidth" : 270.554, + "placementHeight" : 21.441, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 270.554, + "contentHeight" : 21.441, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerTaxLineLayer[2]/IssuerTaxLineHolder[0]", + "entityName" : "IssuerTaxLineHolder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerTaxLineLayer[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 26.519, + "computedY" : 662.841, + "placementX" : 26.519, + "placementY" : 662.841, + "placementWidth" : 270.554, + "placementHeight" : 21.441, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 270.554, + "contentHeight" : 21.441, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerTaxLineLayer[2]/IssuerTaxLineHolder[0]/IssuerTaxLine[0]", + "entityName" : "IssuerTaxLine", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerTaxLineLayer[2]/IssuerTaxLineHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 26.519, + "computedY" : 662.841, + "placementX" : 26.519, + "placementY" : 662.841, + "placementWidth" : 270.554, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 270.554, + "contentHeight" : 11.34, + "margin" : { + "top" : 10.101, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerTaxLineLayer[2]/IssuerTaxLineHolder[0]/IssuerTaxLine[0]/IssuerTaxLabel[0]", + "entityName" : "IssuerTaxLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerTaxLineLayer[2]/IssuerTaxLineHolder[0]/IssuerTaxLine[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 26.519, + "computedY" : 662.841, + "placementX" : 26.519, + "placementY" : 662.841, + "placementWidth" : 32.999, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.999, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerTaxLineLayer[2]/IssuerTaxLineHolder[0]/IssuerTaxLine[0]/IssuerTaxValue[1]", + "entityName" : "IssuerTaxValue", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/IssuerAddress[0]/IssuerTaxLineLayer[2]/IssuerTaxLineHolder[0]/IssuerTaxLine[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 62.067, + "computedY" : 662.841, + "placementX" : 62.067, + "placementY" : 662.841, + "placementWidth" : 67.35, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.35, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]", + "entityName" : "InvoiceMeta", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 297.074, + "computedY" : 641.4, + "placementX" : 297.074, + "placementY" : 641.4, + "placementWidth" : 271.683, + "placementHeight" : 113.468, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 271.683, + "contentHeight" : 113.468, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 45.139 + } + }, { + "path" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]", + "entityName" : "InvoiceMetaRows", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 342.213, + "computedY" : 641.4, + "placementX" : 342.213, + "placementY" : 641.4, + "placementWidth" : 226.543, + "placementHeight" : 113.468, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 113.468, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow1Layer[0]", + "entityName" : "MetaRow1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 342.213, + "computedY" : 743.528, + "placementX" : 342.213, + "placementY" : 743.528, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow1Layer[0]/MetaRow1Holder[0]", + "entityName" : "MetaRow1Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow1Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 342.213, + "computedY" : 743.528, + "placementX" : 342.213, + "placementY" : 743.528, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow1Layer[0]/MetaRow1Holder[0]/MetaRow1[0]", + "entityName" : "MetaRow1", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow1Layer[0]/MetaRow1Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 342.213, + "computedY" : 743.528, + "placementX" : 342.213, + "placementY" : 743.528, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow1Layer[0]/MetaRow1Holder[0]/MetaRow1[0]/MetaRow1Label[0]", + "entityName" : "MetaRow1Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow1Layer[0]/MetaRow1Holder[0]/MetaRow1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 342.213, + "computedY" : 744.0, + "placementX" : 342.213, + "placementY" : 744.0, + "placementWidth" : 65.839, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 65.839, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow1Layer[0]/MetaRow1Holder[0]/MetaRow1[0]/MetaRow1Value[1]", + "entityName" : "MetaRow1Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow1Layer[0]/MetaRow1Holder[0]/MetaRow1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 443.777, + "computedY" : 743.528, + "placementX" : 443.777, + "placementY" : 743.528, + "placementWidth" : 84.001, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 84.001, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow2Layer[1]", + "entityName" : "MetaRow2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 342.213, + "computedY" : 723.102, + "placementX" : 342.213, + "placementY" : 723.102, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow2Layer[1]/MetaRow2Holder[0]", + "entityName" : "MetaRow2Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow2Layer[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 342.213, + "computedY" : 723.102, + "placementX" : 342.213, + "placementY" : 723.102, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow2Layer[1]/MetaRow2Holder[0]/MetaRow2[0]", + "entityName" : "MetaRow2", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow2Layer[1]/MetaRow2Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 342.213, + "computedY" : 723.102, + "placementX" : 342.213, + "placementY" : 723.102, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow2Layer[1]/MetaRow2Holder[0]/MetaRow2[0]/MetaRow2Label[0]", + "entityName" : "MetaRow2Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow2Layer[1]/MetaRow2Holder[0]/MetaRow2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 342.213, + "computedY" : 723.575, + "placementX" : 342.213, + "placementY" : 723.575, + "placementWidth" : 52.689, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.689, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow2Layer[1]/MetaRow2Holder[0]/MetaRow2[0]/MetaRow2Value[1]", + "entityName" : "MetaRow2Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow2Layer[1]/MetaRow2Holder[0]/MetaRow2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 443.777, + "computedY" : 723.102, + "placementX" : 443.777, + "placementY" : 723.102, + "placementWidth" : 56.076, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.076, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow3Layer[2]", + "entityName" : "MetaRow3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 342.213, + "computedY" : 702.677, + "placementX" : 342.213, + "placementY" : 702.677, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow3Layer[2]/MetaRow3Holder[0]", + "entityName" : "MetaRow3Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow3Layer[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 342.213, + "computedY" : 702.677, + "placementX" : 342.213, + "placementY" : 702.677, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow3Layer[2]/MetaRow3Holder[0]/MetaRow3[0]", + "entityName" : "MetaRow3", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow3Layer[2]/MetaRow3Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 342.213, + "computedY" : 702.677, + "placementX" : 342.213, + "placementY" : 702.677, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow3Layer[2]/MetaRow3Holder[0]/MetaRow3[0]/MetaRow3Label[0]", + "entityName" : "MetaRow3Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow3Layer[2]/MetaRow3Holder[0]/MetaRow3[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 342.213, + "computedY" : 703.149, + "placementX" : 342.213, + "placementY" : 703.149, + "placementWidth" : 54.727, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 54.727, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow3Layer[2]/MetaRow3Holder[0]/MetaRow3[0]/MetaRow3Value[1]", + "entityName" : "MetaRow3Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow3Layer[2]/MetaRow3Holder[0]/MetaRow3[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 443.777, + "computedY" : 702.677, + "placementX" : 443.777, + "placementY" : 702.677, + "placementWidth" : 69.911, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.911, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow4Layer[3]", + "entityName" : "MetaRow4Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 342.213, + "computedY" : 682.251, + "placementX" : 342.213, + "placementY" : 682.251, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow4Layer[3]/MetaRow4Holder[0]", + "entityName" : "MetaRow4Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow4Layer[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 342.213, + "computedY" : 682.251, + "placementX" : 342.213, + "placementY" : 682.251, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow4Layer[3]/MetaRow4Holder[0]/MetaRow4[0]", + "entityName" : "MetaRow4", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow4Layer[3]/MetaRow4Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 342.213, + "computedY" : 682.251, + "placementX" : 342.213, + "placementY" : 682.251, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow4Layer[3]/MetaRow4Holder[0]/MetaRow4[0]/MetaRow4Label[0]", + "entityName" : "MetaRow4Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow4Layer[3]/MetaRow4Holder[0]/MetaRow4[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 342.213, + "computedY" : 682.724, + "placementX" : 342.213, + "placementY" : 682.724, + "placementWidth" : 59.038, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 59.038, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow4Layer[3]/MetaRow4Holder[0]/MetaRow4[0]/MetaRow4Value[1]", + "entityName" : "MetaRow4Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow4Layer[3]/MetaRow4Holder[0]/MetaRow4[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 443.777, + "computedY" : 682.251, + "placementX" : 443.777, + "placementY" : 682.251, + "placementWidth" : 54.063, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 54.063, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow5Layer[4]", + "entityName" : "MetaRow5Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 342.213, + "computedY" : 661.825, + "placementX" : 342.213, + "placementY" : 661.825, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow5Layer[4]/MetaRow5Holder[0]", + "entityName" : "MetaRow5Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow5Layer[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 342.213, + "computedY" : 661.825, + "placementX" : 342.213, + "placementY" : 661.825, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow5Layer[4]/MetaRow5Holder[0]/MetaRow5[0]", + "entityName" : "MetaRow5", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow5Layer[4]/MetaRow5Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 342.213, + "computedY" : 661.825, + "placementX" : 342.213, + "placementY" : 661.825, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow5Layer[4]/MetaRow5Holder[0]/MetaRow5[0]/MetaRow5Label[0]", + "entityName" : "MetaRow5Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow5Layer[4]/MetaRow5Holder[0]/MetaRow5[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 342.213, + "computedY" : 662.298, + "placementX" : 342.213, + "placementY" : 662.298, + "placementWidth" : 64.544, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.544, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow5Layer[4]/MetaRow5Holder[0]/MetaRow5[0]/MetaRow5Value[1]", + "entityName" : "MetaRow5Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow5Layer[4]/MetaRow5Holder[0]/MetaRow5[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 443.777, + "computedY" : 661.825, + "placementX" : 443.777, + "placementY" : 661.825, + "placementWidth" : 28.983, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.983, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow6Layer[5]", + "entityName" : "MetaRow6Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 342.213, + "computedY" : 641.4, + "placementX" : 342.213, + "placementY" : 641.4, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow6Layer[5]/MetaRow6Holder[0]", + "entityName" : "MetaRow6Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow6Layer[5]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 342.213, + "computedY" : 641.4, + "placementX" : 342.213, + "placementY" : 641.4, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow6Layer[5]/MetaRow6Holder[0]/MetaRow6[0]", + "entityName" : "MetaRow6", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow6Layer[5]/MetaRow6Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 342.213, + "computedY" : 641.4, + "placementX" : 342.213, + "placementY" : 641.4, + "placementWidth" : 226.543, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.543, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow6Layer[5]/MetaRow6Holder[0]/MetaRow6[0]/MetaRow6Label[0]", + "entityName" : "MetaRow6Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow6Layer[5]/MetaRow6Holder[0]/MetaRow6[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 342.213, + "computedY" : 641.872, + "placementX" : 342.213, + "placementY" : 641.872, + "placementWidth" : 40.735, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.735, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow6Layer[5]/MetaRow6Holder[0]/MetaRow6[0]/MetaRow6Value[1]", + "entityName" : "MetaRow6Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/IssuerMetaRow[2]/InvoiceMeta[1]/InvoiceMetaRows[0]/MetaRow6Layer[5]/MetaRow6Holder[0]/MetaRow6[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 443.777, + "computedY" : 641.4, + "placementX" : 443.777, + "placementY" : 641.4, + "placementWidth" : 57.257, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.257, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/PartiesRule[3]", + "entityName" : "PartiesRule", + "entityKind" : "LineNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 626.667, + "placementX" : 25.391, + "placementY" : 626.667, + "placementWidth" : 543.365, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 1.0, + "margin" : { + "top" : 13.733, + "right" : 0.0, + "bottom" : 13.542, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]", + "entityName" : "PartiesRow", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 499.093, + "placementX" : 25.391, + "placementY" : 499.093, + "placementWidth" : 543.365, + "placementHeight" : 114.032, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 114.032, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]", + "entityName" : "Party1", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.391, + "computedY" : 499.093, + "placementX" : 25.391, + "placementY" : 499.093, + "placementWidth" : 271.683, + "placementHeight" : 114.032, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 271.683, + "contentHeight" : 114.032, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]", + "entityName" : "PartyHeadLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 25.391, + "computedY" : 589.427, + "placementX" : 25.391, + "placementY" : 589.427, + "placementWidth" : 271.683, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 271.683, + "contentHeight" : 23.698, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]", + "entityName" : "PartyHeadHolder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 25.391, + "computedY" : 589.427, + "placementX" : 25.391, + "placementY" : 589.427, + "placementWidth" : 271.683, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 271.683, + "contentHeight" : 23.698, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "entityName" : "PartyHead", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 25.391, + "computedY" : 589.427, + "placementX" : 25.391, + "placementY" : 589.427, + "placementWidth" : 271.683, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 271.683, + "contentHeight" : 23.698, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]", + "entityName" : "PartyDisc", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 25.391, + "computedY" : 589.427, + "placementX" : 25.391, + "placementY" : 589.427, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]", + "entityName" : "Discbill-to", + "entityKind" : "ShapeContainerNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 25.391, + "computedY" : 589.427, + "placementX" : 25.391, + "placementY" : 589.427, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]", + "entityName" : "Glyphbill-to", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 25.391, + "computedY" : 595.634, + "placementX" : 25.391, + "placementY" : 595.634, + "placementWidth" : 23.698, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 25.391, + "computedY" : 595.634, + "placementX" : 25.391, + "placementY" : 595.634, + "placementWidth" : 23.698, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]/Align[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 31.598, + "computedY" : 595.634, + "placementX" : 31.598, + "placementY" : 595.634, + "placementWidth" : 11.285, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.285, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discbill-to[0]/Glyphbill-to[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 31.598, + "computedY" : 595.634, + "placementX" : 31.598, + "placementY" : 595.634, + "placementWidth" : 11.285, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.285, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyLabel[1]", + "entityName" : "PartyLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 59.245, + "computedY" : 599.492, + "placementX" : 59.245, + "placementY" : 599.492, + "placementWidth" : 34.464, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.464, + "contentHeight" : 11.34, + "margin" : { + "top" : 2.293, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]", + "entityName" : "PartyBody", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 25.391, + "computedY" : 499.093, + "placementX" : 25.391, + "placementY" : 499.093, + "placementWidth" : 271.683, + "placementHeight" : 90.334, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 271.683, + "contentHeight" : 90.334, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 33.855 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyName[0]", + "entityName" : "PartyName", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 59.245, + "computedY" : 575.007, + "placementX" : 59.245, + "placementY" : 575.007, + "placementWidth" : 87.579, + "placementHeight" : 13.291, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.579, + "contentHeight" : 13.291, + "margin" : { + "top" : 1.128, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyAddressLines[1]", + "entityName" : "PartyAddressLines", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 59.245, + "computedY" : 525.613, + "placementX" : 59.245, + "placementY" : 525.613, + "placementWidth" : 86.108, + "placementHeight" : 42.938, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.108, + "contentHeight" : 42.938, + "margin" : { + "top" : 6.457, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyAddressLines[1]/PartyAddressLine1[0]", + "entityName" : "PartyAddressLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyAddressLines[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 59.245, + "computedY" : 557.21, + "placementX" : 59.245, + "placementY" : 557.21, + "placementWidth" : 59.856, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 59.856, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyAddressLines[1]/PartyAddressLine2[1]", + "entityName" : "PartyAddressLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyAddressLines[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 59.245, + "computedY" : 541.412, + "placementX" : 59.245, + "placementY" : 541.412, + "placementWidth" : 86.108, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.108, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyAddressLines[1]/PartyAddressLine3[2]", + "entityName" : "PartyAddressLine3", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyAddressLines[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 59.245, + "computedY" : 525.613, + "placementX" : 59.245, + "placementY" : 525.613, + "placementWidth" : 67.737, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.737, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyTaxLineLayer[2]", + "entityName" : "PartyTaxLineLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 59.245, + "computedY" : 499.093, + "placementX" : 59.245, + "placementY" : 499.093, + "placementWidth" : 237.828, + "placementHeight" : 26.519, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.828, + "contentHeight" : 26.519, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyTaxLineLayer[2]/PartyTaxLineHolder[0]", + "entityName" : "PartyTaxLineHolder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyTaxLineLayer[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 59.245, + "computedY" : 499.093, + "placementX" : 59.245, + "placementY" : 499.093, + "placementWidth" : 237.828, + "placementHeight" : 26.519, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.828, + "contentHeight" : 26.519, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyTaxLineLayer[2]/PartyTaxLineHolder[0]/PartyTaxLine[0]", + "entityName" : "PartyTaxLine", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyTaxLineLayer[2]/PartyTaxLineHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 59.245, + "computedY" : 499.093, + "placementX" : 59.245, + "placementY" : 499.093, + "placementWidth" : 237.828, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.828, + "contentHeight" : 11.34, + "margin" : { + "top" : 15.179, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyTaxLineLayer[2]/PartyTaxLineHolder[0]/PartyTaxLine[0]/PartyTaxLabel[0]", + "entityName" : "PartyTaxLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyTaxLineLayer[2]/PartyTaxLineHolder[0]/PartyTaxLine[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 59.245, + "computedY" : 499.093, + "placementX" : 59.245, + "placementY" : 499.093, + "placementWidth" : 32.999, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.999, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyTaxLineLayer[2]/PartyTaxLineHolder[0]/PartyTaxLine[0]/PartyTaxValue[1]", + "entityName" : "PartyTaxValue", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party1[0]/PartyBody[1]/PartyTaxLineLayer[2]/PartyTaxLineHolder[0]/PartyTaxLine[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 103.821, + "computedY" : 499.093, + "placementX" : 103.821, + "placementY" : 499.093, + "placementWidth" : 69.609, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.609, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]", + "entityName" : "Party2", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 297.074, + "computedY" : 525.613, + "placementX" : 297.074, + "placementY" : 525.613, + "placementWidth" : 271.683, + "placementHeight" : 87.513, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 271.683, + "contentHeight" : 87.513, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 15.799 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]", + "entityName" : "PartyHeadLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 312.872, + "computedY" : 589.427, + "placementX" : 312.872, + "placementY" : 589.427, + "placementWidth" : 255.884, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.884, + "contentHeight" : 23.698, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]", + "entityName" : "PartyHeadHolder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 312.872, + "computedY" : 589.427, + "placementX" : 312.872, + "placementY" : 589.427, + "placementWidth" : 255.884, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.884, + "contentHeight" : 23.698, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "entityName" : "PartyHead", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 312.872, + "computedY" : 589.427, + "placementX" : 312.872, + "placementY" : 589.427, + "placementWidth" : 255.884, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.884, + "contentHeight" : 23.698, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]", + "entityName" : "PartyDisc", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 312.872, + "computedY" : 589.427, + "placementX" : 312.872, + "placementY" : 589.427, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]", + "entityName" : "Discship-to", + "entityKind" : "ShapeContainerNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 312.872, + "computedY" : 589.427, + "placementX" : 312.872, + "placementY" : 589.427, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]", + "entityName" : "Glyphship-to", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 312.872, + "computedY" : 595.634, + "placementX" : 312.872, + "placementY" : 595.634, + "placementWidth" : 23.698, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 312.872, + "computedY" : 595.634, + "placementX" : 312.872, + "placementY" : 595.634, + "placementWidth" : 23.698, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]/Align[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 319.079, + "computedY" : 595.634, + "placementX" : 319.079, + "placementY" : 595.634, + "placementWidth" : 11.285, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.285, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyDisc[0]/Discship-to[0]/Glyphship-to[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 319.079, + "computedY" : 595.634, + "placementX" : 319.079, + "placementY" : 595.634, + "placementWidth" : 11.285, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.285, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]/PartyLabel[1]", + "entityName" : "PartyLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyHeadLayer[0]/PartyHeadHolder[0]/PartyHead[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 346.727, + "computedY" : 599.492, + "placementX" : 346.727, + "placementY" : 599.492, + "placementWidth" : 36.732, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.732, + "contentHeight" : 11.34, + "margin" : { + "top" : 2.293, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]", + "entityName" : "PartyBody", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 312.872, + "computedY" : 525.613, + "placementX" : 312.872, + "placementY" : 525.613, + "placementWidth" : 123.384, + "placementHeight" : 63.815, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.384, + "contentHeight" : 63.815, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 33.855 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]/PartyName[0]", + "entityName" : "PartyName", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 346.727, + "computedY" : 575.007, + "placementX" : 346.727, + "placementY" : 575.007, + "placementWidth" : 87.579, + "placementHeight" : 13.291, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.579, + "contentHeight" : 13.291, + "margin" : { + "top" : 1.128, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]/PartyAddressLines[1]", + "entityName" : "PartyAddressLines", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 346.727, + "computedY" : 525.613, + "placementX" : 346.727, + "placementY" : 525.613, + "placementWidth" : 89.529, + "placementHeight" : 42.938, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 89.529, + "contentHeight" : 42.938, + "margin" : { + "top" : 6.457, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]/PartyAddressLines[1]/PartyAddressLine1[0]", + "entityName" : "PartyAddressLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]/PartyAddressLines[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 346.727, + "computedY" : 557.21, + "placementX" : 346.727, + "placementY" : 557.21, + "placementWidth" : 89.529, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 89.529, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]/PartyAddressLines[1]/PartyAddressLine2[1]", + "entityName" : "PartyAddressLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]/PartyAddressLines[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 346.727, + "computedY" : 541.412, + "placementX" : 346.727, + "placementY" : 541.412, + "placementWidth" : 62.086, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.086, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]/PartyAddressLines[1]/PartyAddressLine3[2]", + "entityName" : "PartyAddressLine3", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/PartiesRow[4]/Party2[1]/PartyBody[1]/PartyAddressLines[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 346.727, + "computedY" : 525.613, + "placementX" : 346.727, + "placementY" : 525.613, + "placementWidth" : 67.737, + "placementHeight" : 11.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.737, + "contentHeight" : 11.34, + "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" : "WorkspaceInvoice[0]/LineItemsBox[5]", + "entityName" : "LineItemsBox", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 279.879, + "placementX" : 25.391, + "placementY" : 279.879, + "placementWidth" : 543.365, + "placementHeight" : 196.171, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 196.171, + "margin" : { + "top" : 23.043, + "right" : 0.0, + "bottom" : 15.235, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/LineItemsBox[5]/LineItems[0]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "WorkspaceInvoice[0]/LineItemsBox[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.391, + "computedY" : 279.879, + "placementX" : 25.391, + "placementY" : 279.879, + "placementWidth" : 543.365, + "placementHeight" : 196.171, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 196.171, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]", + "entityName" : "SettlementRow", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 87.384, + "placementX" : 25.391, + "placementY" : 87.384, + "placementWidth" : 543.365, + "placementHeight" : 177.261, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 177.261, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]", + "entityName" : "PaymentDetails", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.391, + "computedY" : 87.384, + "placementX" : 25.391, + "placementY" : 87.384, + "placementWidth" : 236.982, + "placementHeight" : 177.261, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.982, + "contentHeight" : 177.261, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 9.592, + "right" : 13.542, + "bottom" : 12.413, + "left" : 13.542 + } + }, { + "path" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]", + "entityName" : "CardHeadLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 38.933, + "computedY" : 239.818, + "placementX" : 38.933, + "placementY" : 239.818, + "placementWidth" : 209.898, + "placementHeight" : 15.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 15.235, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]", + "entityName" : "CardHeadHolder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 38.933, + "computedY" : 239.818, + "placementX" : 38.933, + "placementY" : 239.818, + "placementWidth" : 209.898, + "placementHeight" : 15.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 15.235, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]", + "entityName" : "CardHead", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 38.933, + "computedY" : 239.818, + "placementX" : 38.933, + "placementY" : 239.818, + "placementWidth" : 209.898, + "placementHeight" : 15.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 15.235, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardIcon[0]", + "entityName" : "CardIcon", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 38.933, + "computedY" : 239.818, + "placementX" : 38.933, + "placementY" : 239.818, + "placementWidth" : 15.235, + "placementHeight" : 15.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.235, + "contentHeight" : 15.235, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardIcon[0]/Glyphbank[0]", + "entityName" : "Glyphbank", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 38.933, + "computedY" : 239.818, + "placementX" : 38.933, + "placementY" : 239.818, + "placementWidth" : 15.235, + "placementHeight" : 15.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.235, + "contentHeight" : 15.235, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardIcon[0]/Glyphbank[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardIcon[0]/Glyphbank[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 38.933, + "computedY" : 239.818, + "placementX" : 38.933, + "placementY" : 239.818, + "placementWidth" : 15.235, + "placementHeight" : 15.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.235, + "contentHeight" : 15.235, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardIcon[0]/Glyphbank[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardIcon[0]/Glyphbank[0]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 38.933, + "computedY" : 239.818, + "placementX" : 38.933, + "placementY" : 239.818, + "placementWidth" : 15.235, + "placementHeight" : 15.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.235, + "contentHeight" : 15.235, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardIcon[0]/Glyphbank[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardIcon[0]/Glyphbank[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 38.933, + "computedY" : 239.818, + "placementX" : 38.933, + "placementY" : 239.818, + "placementWidth" : 15.235, + "placementHeight" : 15.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.235, + "contentHeight" : 15.235, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]/CardLabel[1]", + "entityName" : "CardLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardHeadLayer[0]/CardHeadHolder[0]/CardHead[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 66.016, + "computedY" : 241.195, + "placementX" : 66.016, + "placementY" : 241.195, + "placementWidth" : 77.407, + "placementHeight" : 10.215, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.407, + "contentHeight" : 10.215, + "margin" : { + "top" : 3.642, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]", + "entityName" : "CardFields", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 38.933, + "computedY" : 135.216, + "placementX" : 38.933, + "placementY" : 135.216, + "placementWidth" : 209.898, + "placementHeight" : 98.396, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 98.396, + "margin" : { + "top" : 6.207, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField1Layer[0]", + "entityName" : "CardField1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 38.933, + "computedY" : 223.689, + "placementX" : 38.933, + "placementY" : 223.689, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField1Layer[0]/CardField1Holder[0]", + "entityName" : "CardField1Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField1Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 38.933, + "computedY" : 223.689, + "placementX" : 38.933, + "placementY" : 223.689, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField1Layer[0]/CardField1Holder[0]/CardField1[0]", + "entityName" : "CardField1", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField1Layer[0]/CardField1Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 38.933, + "computedY" : 223.689, + "placementX" : 38.933, + "placementY" : 223.689, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField1Layer[0]/CardField1Holder[0]/CardField1[0]/CardField1Label[0]", + "entityName" : "CardField1Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField1Layer[0]/CardField1Holder[0]/CardField1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 38.933, + "computedY" : 223.689, + "placementX" : 38.933, + "placementY" : 223.689, + "placementWidth" : 44.056, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.056, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField1Layer[0]/CardField1Holder[0]/CardField1[0]/CardField1Value[1]", + "entityName" : "CardField1Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField1Layer[0]/CardField1Holder[0]/CardField1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 130.34, + "computedY" : 223.689, + "placementX" : 130.34, + "placementY" : 223.689, + "placementWidth" : 78.032, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.032, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField2Layer[1]", + "entityName" : "CardField2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 38.933, + "computedY" : 211.05, + "placementX" : 38.933, + "placementY" : 211.05, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField2Layer[1]/CardField2Holder[0]", + "entityName" : "CardField2Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField2Layer[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 38.933, + "computedY" : 211.05, + "placementX" : 38.933, + "placementY" : 211.05, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField2Layer[1]/CardField2Holder[0]/CardField2[0]", + "entityName" : "CardField2", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField2Layer[1]/CardField2Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 38.933, + "computedY" : 211.05, + "placementX" : 38.933, + "placementY" : 211.05, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField2Layer[1]/CardField2Holder[0]/CardField2[0]/CardField2Label[0]", + "entityName" : "CardField2Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField2Layer[1]/CardField2Holder[0]/CardField2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 38.933, + "computedY" : 211.05, + "placementX" : 38.933, + "placementY" : 211.05, + "placementWidth" : 56.169, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.169, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField2Layer[1]/CardField2Holder[0]/CardField2[0]/CardField2Value[1]", + "entityName" : "CardField2Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField2Layer[1]/CardField2Holder[0]/CardField2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 130.34, + "computedY" : 211.05, + "placementX" : 130.34, + "placementY" : 211.05, + "placementWidth" : 93.585, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 93.585, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField3Layer[2]", + "entityName" : "CardField3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 38.933, + "computedY" : 198.411, + "placementX" : 38.933, + "placementY" : 198.411, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField3Layer[2]/CardField3Holder[0]", + "entityName" : "CardField3Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField3Layer[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 38.933, + "computedY" : 198.411, + "placementX" : 38.933, + "placementY" : 198.411, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField3Layer[2]/CardField3Holder[0]/CardField3[0]", + "entityName" : "CardField3", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField3Layer[2]/CardField3Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 38.933, + "computedY" : 198.411, + "placementX" : 38.933, + "placementY" : 198.411, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField3Layer[2]/CardField3Holder[0]/CardField3[0]/CardField3Label[0]", + "entityName" : "CardField3Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField3Layer[2]/CardField3Holder[0]/CardField3[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 38.933, + "computedY" : 198.411, + "placementX" : 38.933, + "placementY" : 198.411, + "placementWidth" : 64.314, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.314, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField3Layer[2]/CardField3Holder[0]/CardField3[0]/CardField3Value[1]", + "entityName" : "CardField3Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField3Layer[2]/CardField3Holder[0]/CardField3[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 130.34, + "computedY" : 198.411, + "placementX" : 130.34, + "placementY" : 198.411, + "placementWidth" : 71.938, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.938, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField4Layer[3]", + "entityName" : "CardField4Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 38.933, + "computedY" : 185.772, + "placementX" : 38.933, + "placementY" : 185.772, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField4Layer[3]/CardField4Holder[0]", + "entityName" : "CardField4Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField4Layer[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 38.933, + "computedY" : 185.772, + "placementX" : 38.933, + "placementY" : 185.772, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField4Layer[3]/CardField4Holder[0]/CardField4[0]", + "entityName" : "CardField4", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField4Layer[3]/CardField4Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 38.933, + "computedY" : 185.772, + "placementX" : 38.933, + "placementY" : 185.772, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField4Layer[3]/CardField4Holder[0]/CardField4[0]/CardField4Label[0]", + "entityName" : "CardField4Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField4Layer[3]/CardField4Holder[0]/CardField4[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 38.933, + "computedY" : 185.772, + "placementX" : 38.933, + "placementY" : 185.772, + "placementWidth" : 53.499, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 53.499, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField4Layer[3]/CardField4Holder[0]/CardField4[0]/CardField4Value[1]", + "entityName" : "CardField4Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField4Layer[3]/CardField4Holder[0]/CardField4[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 130.34, + "computedY" : 185.772, + "placementX" : 130.34, + "placementY" : 185.772, + "placementWidth" : 43.163, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 43.163, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField5Layer[4]", + "entityName" : "CardField5Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 38.933, + "computedY" : 173.133, + "placementX" : 38.933, + "placementY" : 173.133, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField5Layer[4]/CardField5Holder[0]", + "entityName" : "CardField5Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField5Layer[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 38.933, + "computedY" : 173.133, + "placementX" : 38.933, + "placementY" : 173.133, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField5Layer[4]/CardField5Holder[0]/CardField5[0]", + "entityName" : "CardField5", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField5Layer[4]/CardField5Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 38.933, + "computedY" : 173.133, + "placementX" : 38.933, + "placementY" : 173.133, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField5Layer[4]/CardField5Holder[0]/CardField5[0]/CardField5Label[0]", + "entityName" : "CardField5Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField5Layer[4]/CardField5Holder[0]/CardField5[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 38.933, + "computedY" : 173.133, + "placementX" : 38.933, + "placementY" : 173.133, + "placementWidth" : 48.165, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.165, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField5Layer[4]/CardField5Holder[0]/CardField5[0]/CardField5Value[1]", + "entityName" : "CardField5Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField5Layer[4]/CardField5Holder[0]/CardField5[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 130.34, + "computedY" : 173.133, + "placementX" : 130.34, + "placementY" : 173.133, + "placementWidth" : 42.361, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.361, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField6Layer[5]", + "entityName" : "CardField6Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 38.933, + "computedY" : 160.494, + "placementX" : 38.933, + "placementY" : 160.494, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField6Layer[5]/CardField6Holder[0]", + "entityName" : "CardField6Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField6Layer[5]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 38.933, + "computedY" : 160.494, + "placementX" : 38.933, + "placementY" : 160.494, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField6Layer[5]/CardField6Holder[0]/CardField6[0]", + "entityName" : "CardField6", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField6Layer[5]/CardField6Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 38.933, + "computedY" : 160.494, + "placementX" : 38.933, + "placementY" : 160.494, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField6Layer[5]/CardField6Holder[0]/CardField6[0]/CardField6Label[0]", + "entityName" : "CardField6Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField6Layer[5]/CardField6Holder[0]/CardField6[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 38.933, + "computedY" : 160.494, + "placementX" : 38.933, + "placementY" : 160.494, + "placementWidth" : 35.423, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.423, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField6Layer[5]/CardField6Holder[0]/CardField6[0]/CardField6Value[1]", + "entityName" : "CardField6Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField6Layer[5]/CardField6Holder[0]/CardField6[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 130.34, + "computedY" : 160.494, + "placementX" : 130.34, + "placementY" : 160.494, + "placementWidth" : 16.868, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.868, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField7Layer[6]", + "entityName" : "CardField7Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 38.933, + "computedY" : 147.855, + "placementX" : 38.933, + "placementY" : 147.855, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField7Layer[6]/CardField7Holder[0]", + "entityName" : "CardField7Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField7Layer[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 38.933, + "computedY" : 147.855, + "placementX" : 38.933, + "placementY" : 147.855, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField7Layer[6]/CardField7Holder[0]/CardField7[0]", + "entityName" : "CardField7", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField7Layer[6]/CardField7Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 38.933, + "computedY" : 147.855, + "placementX" : 38.933, + "placementY" : 147.855, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField7Layer[6]/CardField7Holder[0]/CardField7[0]/CardField7Label[0]", + "entityName" : "CardField7Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField7Layer[6]/CardField7Holder[0]/CardField7[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 38.933, + "computedY" : 147.855, + "placementX" : 38.933, + "placementY" : 147.855, + "placementWidth" : 39.194, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 39.194, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField7Layer[6]/CardField7Holder[0]/CardField7[0]/CardField7Value[1]", + "entityName" : "CardField7Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField7Layer[6]/CardField7Holder[0]/CardField7[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 130.34, + "computedY" : 147.855, + "placementX" : 130.34, + "placementY" : 147.855, + "placementWidth" : 73.137, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 73.137, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField8Layer[7]", + "entityName" : "CardField8Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 38.933, + "computedY" : 135.216, + "placementX" : 38.933, + "placementY" : 135.216, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField8Layer[7]/CardField8Holder[0]", + "entityName" : "CardField8Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField8Layer[7]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 38.933, + "computedY" : 135.216, + "placementX" : 38.933, + "placementY" : 135.216, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField8Layer[7]/CardField8Holder[0]/CardField8[0]", + "entityName" : "CardField8", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField8Layer[7]/CardField8Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 38.933, + "computedY" : 135.216, + "placementX" : 38.933, + "placementY" : 135.216, + "placementWidth" : 209.898, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField8Layer[7]/CardField8Holder[0]/CardField8[0]/CardField8Label[0]", + "entityName" : "CardField8Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField8Layer[7]/CardField8Holder[0]/CardField8[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 38.933, + "computedY" : 135.216, + "placementX" : 38.933, + "placementY" : 135.216, + "placementWidth" : 51.853, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.853, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField8Layer[7]/CardField8Holder[0]/CardField8[0]/CardField8Value[1]", + "entityName" : "CardField8Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardFields[1]/CardField8Layer[7]/CardField8Holder[0]/CardField8[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 130.34, + "computedY" : 135.216, + "placementX" : 130.34, + "placementY" : 135.216, + "placementWidth" : 108.138, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.138, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardRule[2]", + "entityName" : "CardRule", + "entityKind" : "LineNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 38.933, + "computedY" : 131.161, + "placementX" : 38.933, + "placementY" : 131.161, + "placementWidth" : 209.898, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 1.0, + "margin" : { + "top" : 3.055, + "right" : 0.0, + "bottom" : 9.028, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]", + "entityName" : "CardNoteLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 38.933, + "computedY" : 99.797, + "placementX" : 38.933, + "placementY" : 99.797, + "placementWidth" : 209.898, + "placementHeight" : 22.336, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 22.336, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]", + "entityName" : "CardNoteHolder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 38.933, + "computedY" : 99.797, + "placementX" : 38.933, + "placementY" : 99.797, + "placementWidth" : 209.898, + "placementHeight" : 22.336, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 22.336, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]", + "entityName" : "CardNote", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 38.933, + "computedY" : 99.797, + "placementX" : 38.933, + "placementY" : 99.797, + "placementWidth" : 209.898, + "placementHeight" : 22.336, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 209.898, + "contentHeight" : 22.336, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]/CardNoteIcon[0]", + "entityName" : "CardNoteIcon", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 38.933, + "computedY" : 110.848, + "placementX" : 38.933, + "placementY" : 110.848, + "placementWidth" : 16.927, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.927, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]/CardNoteIcon[0]/Glyphinfo[0]", + "entityName" : "Glyphinfo", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]/CardNoteIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 38.933, + "computedY" : 110.848, + "placementX" : 38.933, + "placementY" : 110.848, + "placementWidth" : 16.927, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.927, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]/CardNoteIcon[0]/Glyphinfo[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]/CardNoteIcon[0]/Glyphinfo[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 38.933, + "computedY" : 110.848, + "placementX" : 38.933, + "placementY" : 110.848, + "placementWidth" : 16.927, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.927, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]/CardNoteIcon[0]/Glyphinfo[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]/CardNoteIcon[0]/Glyphinfo[0]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 38.933, + "computedY" : 110.848, + "placementX" : 38.933, + "placementY" : 110.848, + "placementWidth" : 11.285, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.285, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]/CardNoteIcon[0]/Glyphinfo[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]/CardNoteIcon[0]/Glyphinfo[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 38.933, + "computedY" : 110.848, + "placementX" : 38.933, + "placementY" : 110.848, + "placementWidth" : 11.285, + "placementHeight" : 11.285, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.285, + "contentHeight" : 11.285, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]/CardNoteText[1]", + "entityName" : "CardNoteText", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/PaymentDetails[0]/CardNoteLayer[3]/CardNoteHolder[0]/CardNote[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 55.86, + "computedY" : 99.797, + "placementX" : 55.86, + "placementY" : 99.797, + "placementWidth" : 185.062, + "placementHeight" : 22.336, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.062, + "contentHeight" : 22.336, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]", + "entityName" : "Settlement", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 324.439, + "computedY" : 104.36, + "placementX" : 324.439, + "placementY" : 104.36, + "placementWidth" : 244.317, + "placementHeight" : 160.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 244.317, + "contentHeight" : 160.284, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 16.363, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]", + "entityName" : "Totals", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 324.439, + "computedY" : 228.217, + "placementX" : 324.439, + "placementY" : 228.217, + "placementWidth" : 227.954, + "placementHeight" : 30.616, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 227.954, + "contentHeight" : 30.616, + "margin" : { + "top" : 5.812, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 5.642, + "bottom" : 0.0, + "left" : 3.385 + } + }, { + "path" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total1Layer[0]", + "entityName" : "Total1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 327.825, + "computedY" : 247.966, + "placementX" : 327.825, + "placementY" : 247.966, + "placementWidth" : 218.926, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 218.926, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total1Layer[0]/Total1Holder[0]", + "entityName" : "Total1Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total1Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 327.825, + "computedY" : 247.966, + "placementX" : 327.825, + "placementY" : 247.966, + "placementWidth" : 218.926, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 218.926, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total1Layer[0]/Total1Holder[0]/Total1[0]", + "entityName" : "Total1", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total1Layer[0]/Total1Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 327.825, + "computedY" : 247.966, + "placementX" : 327.825, + "placementY" : 247.966, + "placementWidth" : 218.926, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 218.926, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total1Layer[0]/Total1Holder[0]/Total1[0]/Total1Label[0]", + "entityName" : "Total1Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total1Layer[0]/Total1Holder[0]/Total1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 327.825, + "computedY" : 247.966, + "placementX" : 327.825, + "placementY" : 247.966, + "placementWidth" : 33.318, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.318, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total1Layer[0]/Total1Holder[0]/Total1[0]/Total1Value[1]", + "entityName" : "Total1Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total1Layer[0]/Total1Holder[0]/Total1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 437.288, + "computedY" : 247.966, + "placementX" : 437.288, + "placementY" : 247.966, + "placementWidth" : 109.463, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.463, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total2Layer[1]", + "entityName" : "Total2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 327.825, + "computedY" : 228.217, + "placementX" : 327.825, + "placementY" : 228.217, + "placementWidth" : 218.926, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 218.926, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total2Layer[1]/Total2Holder[0]", + "entityName" : "Total2Holder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total2Layer[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 327.825, + "computedY" : 228.217, + "placementX" : 327.825, + "placementY" : 228.217, + "placementWidth" : 218.926, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 218.926, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total2Layer[1]/Total2Holder[0]/Total2[0]", + "entityName" : "Total2", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total2Layer[1]/Total2Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 327.825, + "computedY" : 228.217, + "placementX" : 327.825, + "placementY" : 228.217, + "placementWidth" : 218.926, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 218.926, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total2Layer[1]/Total2Holder[0]/Total2[0]/Total2Label[0]", + "entityName" : "Total2Label", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total2Layer[1]/Total2Holder[0]/Total2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 327.825, + "computedY" : 228.217, + "placementX" : 327.825, + "placementY" : 228.217, + "placementWidth" : 34.033, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.033, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total2Layer[1]/Total2Holder[0]/Total2[0]/Total2Value[1]", + "entityName" : "Total2Value", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/Totals[0]/Total2Layer[1]/Total2Holder[0]/Total2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 437.288, + "computedY" : 228.217, + "placementX" : 437.288, + "placementY" : 228.217, + "placementWidth" : 109.463, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.463, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalsRule[1]", + "entityName" : "TotalsRule", + "entityKind" : "LineNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 327.825, + "computedY" : 218.336, + "placementX" : 327.825, + "placementY" : 218.336, + "placementWidth" : 224.004, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.004, + "contentHeight" : 1.0, + "margin" : { + "top" : 8.881, + "right" : 0.0, + "bottom" : 13.711, + "left" : 3.385 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]", + "entityName" : "TotalDue", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 324.439, + "computedY" : 187.143, + "placementX" : 324.439, + "placementY" : 187.143, + "placementWidth" : 227.954, + "placementHeight" : 17.482, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 227.954, + "contentHeight" : 17.482, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 5.642, + "bottom" : 0.0, + "left" : 3.385 + } + }, { + "path" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]/TotalDueRowLayer[0]", + "entityName" : "TotalDueRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 327.825, + "computedY" : 187.143, + "placementX" : 327.825, + "placementY" : 187.143, + "placementWidth" : 218.926, + "placementHeight" : 17.482, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 218.926, + "contentHeight" : 17.482, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]", + "entityName" : "TotalDueRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]/TotalDueRowLayer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 327.825, + "computedY" : 187.143, + "placementX" : 327.825, + "placementY" : 187.143, + "placementWidth" : 218.926, + "placementHeight" : 17.482, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 218.926, + "contentHeight" : 17.482, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]", + "entityName" : "TotalDueRow", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 327.825, + "computedY" : 187.143, + "placementX" : 327.825, + "placementY" : 187.143, + "placementWidth" : 218.926, + "placementHeight" : 17.482, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 218.926, + "contentHeight" : 17.482, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]/TotalDueLabel[0]", + "entityName" : "TotalDueLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 327.825, + "computedY" : 189.444, + "placementX" : 327.825, + "placementY" : 189.444, + "placementWidth" : 59.518, + "placementHeight" : 12.88, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 59.518, + "contentHeight" : 12.88, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]/TotalDueValue[1]", + "entityName" : "TotalDueValue", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/TotalDue[2]/TotalDueRowLayer[0]/TotalDueRowHolder[0]/TotalDueRow[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 437.288, + "computedY" : 187.143, + "placementX" : 437.288, + "placementY" : 187.143, + "placementWidth" : 109.463, + "placementHeight" : 17.482, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.463, + "contentHeight" : 17.482, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]", + "entityName" : "PaymentDuePanel", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 324.439, + "computedY" : 104.36, + "placementX" : 324.439, + "placementY" : 104.36, + "placementWidth" : 227.954, + "placementHeight" : 58.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 227.954, + "contentHeight" : 58.689, + "margin" : { + "top" : 24.093, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 14.106, + "right" : 13.542, + "bottom" : 15.799, + "left" : 12.978 + } + }, { + "path" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]", + "entityName" : "PaymentDueRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 337.417, + "computedY" : 120.159, + "placementX" : 337.417, + "placementY" : 120.159, + "placementWidth" : 201.435, + "placementHeight" : 28.784, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 201.435, + "contentHeight" : 28.784, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]", + "entityName" : "PaymentDueRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 337.417, + "computedY" : 120.159, + "placementX" : 337.417, + "placementY" : 120.159, + "placementWidth" : 201.435, + "placementHeight" : 28.784, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 201.435, + "contentHeight" : 28.784, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]", + "entityName" : "PaymentDueRow", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 337.417, + "computedY" : 120.159, + "placementX" : 337.417, + "placementY" : 120.159, + "placementWidth" : 201.435, + "placementHeight" : 28.784, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 201.435, + "contentHeight" : 28.784, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]", + "entityName" : "DueTile", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 337.417, + "computedY" : 127.502, + "placementX" : 337.417, + "placementY" : 127.502, + "placementWidth" : 21.441, + "placementHeight" : 21.441, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.441, + "contentHeight" : 21.441, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]/DueTileShape[0]", + "entityName" : "DueTileShape", + "entityKind" : "ShapeContainerNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 337.417, + "computedY" : 127.502, + "placementX" : 337.417, + "placementY" : 127.502, + "placementWidth" : 21.441, + "placementHeight" : 21.441, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.441, + "contentHeight" : 21.441, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]/DueTileShape[0]/Glyphcalendar[0]", + "entityName" : "Glyphcalendar", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]/DueTileShape[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 337.417, + "computedY" : 132.016, + "placementX" : 337.417, + "placementY" : 132.016, + "placementWidth" : 21.441, + "placementHeight" : 12.413, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.441, + "contentHeight" : 12.413, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]/DueTileShape[0]/Glyphcalendar[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]/DueTileShape[0]/Glyphcalendar[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 337.417, + "computedY" : 132.016, + "placementX" : 337.417, + "placementY" : 132.016, + "placementWidth" : 21.441, + "placementHeight" : 12.413, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.441, + "contentHeight" : 12.413, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]/DueTileShape[0]/Glyphcalendar[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]/DueTileShape[0]/Glyphcalendar[0]/Align[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 341.931, + "computedY" : 132.016, + "placementX" : 341.931, + "placementY" : 132.016, + "placementWidth" : 12.413, + "placementHeight" : 12.413, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.413, + "contentHeight" : 12.413, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]/DueTileShape[0]/Glyphcalendar[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueTile[0]/DueTileShape[0]/Glyphcalendar[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 341.931, + "computedY" : 132.016, + "placementX" : 341.931, + "placementY" : 132.016, + "placementWidth" : 12.413, + "placementHeight" : 12.413, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.413, + "contentHeight" : 12.413, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueText[1]", + "entityName" : "DueText", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 372.4, + "computedY" : 120.159, + "placementX" : 372.4, + "placementY" : 120.159, + "placementWidth" : 73.945, + "placementHeight" : 27.964, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 73.945, + "contentHeight" : 27.964, + "margin" : { + "top" : 0.821, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueText[1]/DueLabel[0]", + "entityName" : "DueLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueText[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 372.4, + "computedY" : 137.907, + "placementX" : 372.4, + "placementY" : 137.907, + "placementWidth" : 73.398, + "placementHeight" : 10.215, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 73.398, + "contentHeight" : 10.215, + "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" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueText[1]/DueValue[1]", + "entityName" : "DueValue", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/SettlementRow[6]/Settlement[1]/PaymentDuePanel[3]/PaymentDueRowLayer[0]/PaymentDueRowHolder[0]/PaymentDueRow[0]/DueText[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 372.4, + "computedY" : 120.159, + "placementX" : 372.4, + "placementY" : 120.159, + "placementWidth" : 73.945, + "placementHeight" : 14.647, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 73.945, + "contentHeight" : 14.647, + "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" : "WorkspaceInvoice[0]/ClosingRule[7]", + "entityName" : "ClosingRule", + "entityKind" : "LineNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 84.465, + "placementX" : 25.391, + "placementY" : 84.465, + "placementWidth" : 543.365, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 1.0, + "margin" : { + "top" : 1.918, + "right" : 0.0, + "bottom" : 8.294, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/ThankYou[8]", + "entityName" : "ThankYou", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 8, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 53.652, + "placementX" : 25.391, + "placementY" : 53.652, + "placementWidth" : 543.365, + "placementHeight" : 22.519, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 22.519, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 3.385 + } + }, { + "path" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]", + "entityName" : "ThankYouRow", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]/ThankYou[8]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.776, + "computedY" : 53.652, + "placementX" : 28.776, + "placementY" : 53.652, + "placementWidth" : 539.98, + "placementHeight" : 22.519, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 539.98, + "contentHeight" : 22.519, + "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" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouIcon[0]", + "entityName" : "ThankYouIcon", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 28.776, + "computedY" : 59.244, + "placementX" : 28.776, + "placementY" : 59.244, + "placementWidth" : 25.955, + "placementHeight" : 16.927, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.955, + "contentHeight" : 16.927, + "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" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouIcon[0]/Glyphinfo[0]", + "entityName" : "Glyphinfo", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouIcon[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 28.776, + "computedY" : 59.244, + "placementX" : 28.776, + "placementY" : 59.244, + "placementWidth" : 25.955, + "placementHeight" : 16.927, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.955, + "contentHeight" : 16.927, + "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" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouIcon[0]/Glyphinfo[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouIcon[0]/Glyphinfo[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 28.776, + "computedY" : 59.244, + "placementX" : 28.776, + "placementY" : 59.244, + "placementWidth" : 25.955, + "placementHeight" : 16.927, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.955, + "contentHeight" : 16.927, + "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" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouIcon[0]/Glyphinfo[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouIcon[0]/Glyphinfo[0]/Align[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 28.776, + "computedY" : 59.244, + "placementX" : 28.776, + "placementY" : 59.244, + "placementWidth" : 16.927, + "placementHeight" : 16.927, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.927, + "contentHeight" : 16.927, + "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" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouIcon[0]/Glyphinfo[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouIcon[0]/Glyphinfo[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 28.776, + "computedY" : 59.244, + "placementX" : 28.776, + "placementY" : 59.244, + "placementWidth" : 16.927, + "placementHeight" : 16.927, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.927, + "contentHeight" : 16.927, + "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" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouText[1]", + "entityName" : "ThankYouText", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 54.732, + "computedY" : 53.652, + "placementX" : 54.732, + "placementY" : 53.652, + "placementWidth" : 389.069, + "placementHeight" : 22.519, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 389.069, + "contentHeight" : 22.519, + "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" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouText[1]/ThankYouTitle[0]", + "entityName" : "ThankYouTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouText[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 54.732, + "computedY" : 65.303, + "placementX" : 54.732, + "placementY" : 65.303, + "placementWidth" : 113.139, + "placementHeight" : 10.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 113.139, + "contentHeight" : 10.867, + "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" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouText[1]/ThankYouBody[1]", + "entityName" : "ThankYouBody", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/ThankYou[8]/ThankYouRow[0]/ThankYouText[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 54.732, + "computedY" : 53.652, + "placementX" : 54.732, + "placementY" : 53.652, + "placementWidth" : 389.069, + "placementHeight" : 8.977, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 389.069, + "contentHeight" : 8.977, + "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" : "WorkspaceInvoice[0]/FooterRule[9]", + "entityName" : "FooterRule", + "entityKind" : "LineNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 9, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 44.552, + "placementX" : 25.391, + "placementY" : 44.552, + "placementWidth" : 543.365, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 1.0, + "margin" : { + "top" : 8.1, + "right" : 0.0, + "bottom" : 2.514, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "WorkspaceInvoice[0]/DocumentFooter[10]", + "entityName" : "DocumentFooter", + "entityKind" : "RowNode", + "parentPath" : "WorkspaceInvoice[0]", + "childIndex" : 10, + "depth" : 2, + "layer" : 2, + "computedX" : 25.391, + "computedY" : 18.885, + "placementX" : 25.391, + "placementY" : 18.885, + "placementWidth" : 543.365, + "placementHeight" : 23.152, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.365, + "contentHeight" : 23.152, + "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" : "WorkspaceInvoice[0]/DocumentFooter[10]/FooterWordmark[0]", + "entityName" : "FooterWordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/DocumentFooter[10]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.391, + "computedY" : 18.885, + "placementX" : 25.391, + "placementY" : 18.885, + "placementWidth" : 58.595, + "placementHeight" : 23.152, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.595, + "contentHeight" : 23.152, + "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" : "WorkspaceInvoice[0]/DocumentFooter[10]/FooterAddress[1]", + "entityName" : "FooterAddress", + "entityKind" : "SectionNode", + "parentPath" : "WorkspaceInvoice[0]/DocumentFooter[10]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 106.642, + "computedY" : 19.011, + "placementX" : 106.642, + "placementY" : 19.011, + "placementWidth" : 255.901, + "placementHeight" : 22.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.901, + "contentHeight" : 22.9, + "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" : "WorkspaceInvoice[0]/DocumentFooter[10]/FooterAddress[1]/FooterName[0]", + "entityName" : "FooterName", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/DocumentFooter[10]/FooterAddress[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 106.642, + "computedY" : 31.989, + "placementX" : 106.642, + "placementY" : 31.989, + "placementWidth" : 95.264, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.264, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/DocumentFooter[10]/FooterAddress[1]/FooterAddressLine[1]", + "entityName" : "FooterAddressLine", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/DocumentFooter[10]/FooterAddress[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 106.642, + "computedY" : 19.011, + "placementX" : 106.642, + "placementY" : 19.011, + "placementWidth" : 255.901, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.901, + "contentHeight" : 9.922, + "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" : "WorkspaceInvoice[0]/DocumentFooter[10]/FooterSite[2]", + "entityName" : "FooterSite", + "entityKind" : "ParagraphNode", + "parentPath" : "WorkspaceInvoice[0]/DocumentFooter[10]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 484.12, + "computedY" : 25.5, + "placementX" : 484.12, + "placementY" : 25.5, + "placementWidth" : 81.251, + "placementHeight" : 9.922, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 81.251, + "contentHeight" : 9.922, + "margin" : { + "top" : 0.0, + "right" : 1.693, + "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/invoice-v2-layered/workspace_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/workspace_invoice-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..f55e72757621080833dc71ab661db7806f4371e4 GIT binary patch literal 87551 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 k+29dBHbeaXThe band is body content rather than page chrome — it carries a wordmark + * and a reachable address, and a header/footer zone takes only strings. Page + * identity on a continuation page is carried by the page number instead.

      + */ +final class WorkspaceClosing { + + private WorkspaceClosing() { + } + + /** + * Draws the closing blocks. + * + * @param page the page flow + * @param notes the closing words and the address inside them + * @param brand the wordmark the band opens with + * @param supplier who is invoicing, named again under the band + */ + static void render(PageFlowBuilder page, InvoiceNotesBlock notes, InvoiceBrand brand, + InvoiceContactBlock supplier) { + WorkspaceWidgets.fullWidthRule(page, "ClosingRule", HAIRLINE_STRONG, RULE_THIN, + px(12.4) - CLOSING_RULE_LIFT, px(19.2) - CLOSING_INNER_LIFT); + renderThankYou(page, notes); + WorkspaceWidgets.fullWidthRule(page, "FooterRule", HAIRLINE_STRONG, RULE_THIN, + blockGap(22.15, THANKS_BODY_SIZE, 0) - CLOSING_INNER_LIFT, + blockGap(7.9, 0, FOOTER_SIZE)); + renderBand(page, brand, supplier); + } + + /** + * The closing words, opened by a mark in its own column so a wrapped second + * line returns to the text axis rather than to the glyph's. + * + *

      The address inside the sentence is a separate run, so it reaches the + * PDF as a real annotation rather than as coloured text.

      + */ + private static void renderThankYou(PageFlowBuilder page, InvoiceNotesBlock notes) { + List paragraphs = notes.paragraphs(); + String title = notes.heading(); + String body = paragraphs.isEmpty() ? "" : paragraphs.get(0); + page.addSection("ThankYou", block -> { + block.spacing(0) + .padding(new DocumentInsets(0, 0, 0, THANKS_INDENT)) + .keepWithNext(); + block.addRow("ThankYouRow", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(THANKS_ICON_COL), + DocumentRowColumn.weight(1)); + row.addSection("ThankYouIcon", glyph -> glyph + .spacing(0) + .add(WorkspaceWidgets.glyph(WorkspaceIcons.INFO, THANKS_ICON, + HorizontalAlign.LEFT))); + row.addSection("ThankYouText", text -> { + text.spacing(gap(24, THANKS_TITLE_SIZE)); + text.addParagraph(p -> p + .name("ThankYouTitle") + .text(title) + .textStyle(style(THANKS_TITLE_SIZE, INK, + DocumentTextDecoration.BOLD))); + text.addParagraph(p -> { + p.name("ThankYouBody"); + DocumentTextStyle plain = style(THANKS_BODY_SIZE, MUTED, + DocumentTextDecoration.DEFAULT); + String email = notes.contactEmail(); + if (email.isBlank() || !body.contains(email)) { + p.inlineText(body, plain); + return; + } + // The address is set apart inside the sentence, so the + // words on either side of it stay one paragraph. + int at = body.indexOf(email); + p.inlineText(body.substring(0, at), plain); + p.inlineText(email, + style(THANKS_BODY_SIZE, ACCENT, DocumentTextDecoration.DEFAULT), + new DocumentLinkOptions("mailto:" + email)); + p.inlineText(body.substring(at + email.length()), plain); + }); + }); + }); + }); + } + + /** The brand band: the wordmark, who is invoicing, and where to find them. */ + private static void renderBand(PageFlowBuilder page, InvoiceBrand brand, + InvoiceContactBlock supplier) { + String website = supplier.website(); + page.addRow("DocumentFooter", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(FOOTER_MARK_COL), + DocumentRowColumn.weight(1), + DocumentRowColumn.fixed(FOOTER_LINK_COL)); + row.addParagraph(p -> p + .name("FooterWordmark") + .text(brand.name()) + .textStyle(style(WORDMARK_SIZE, INK, DocumentTextDecoration.BOLD))); + row.addSection("FooterAddress", text -> { + text.spacing(gap(23, FOOTER_SIZE)); + text.addParagraph(p -> p + .name("FooterName") + .text(supplier.legalName()) + .textStyle(style(FOOTER_SIZE, BODY, DocumentTextDecoration.BOLD))); + text.addParagraph(p -> p + .name("FooterAddressLine") + .text(supplier.addressLines().isEmpty() + ? "" : String.join(", ", supplier.addressLines())) + .textStyle(style(FOOTER_SIZE, MUTED, DocumentTextDecoration.DEFAULT))); + }); + row.addParagraph(p -> { + p.name("FooterSite"); + DocumentTextStyle linkStyle = + style(FOOTER_SIZE, ACCENT, DocumentTextDecoration.DEFAULT); + if (website.isBlank()) { + p.text(""); + } else { + p.inlineText(website, linkStyle, new DocumentLinkOptions(uri(website))); + } + p.align(TextAlign.RIGHT); + p.margin(new DocumentInsets(0, px(3), 0, 0)); + }); + }); + } + + /** A written address as something a reader can follow. */ + private static String uri(String website) { + String trimmed = website.trim(); + return trimmed.startsWith("http://") || trimmed.startsWith("https://") + ? trimmed + : "https://" + trimmed; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceIcons.java new file mode 100644 index 000000000..da19eb9b0 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceIcons.java @@ -0,0 +1,87 @@ +package com.demcha.compose.document.templates.invoice.presets; + +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.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.Map; + +/** + * Classpath loader for the Workspace invoice marks: the two party glyphs, the + * three a service line may take, and the three the preset places itself — the + * bank on the payment card, the information mark on its note, and the calendar + * on the due panel. + * + *

      They ship inside the templates artifact under + * {@code templates/invoice/workspace/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 sheet that repeats a mark reads each file once per JVM.

      + * + *

      The set is coloured, not tinted

      + * + *

      Each glyph carries its colour in its own markup: white for the marks that + * are knocked out of a filled disc or tile, accent for the ones that stand on + * the page. A token therefore names a glyph and where it is meant to + * sit.

      + * + *

      {@link #LINE_TOKENS} is the vocabulary a document names through + * {@code InvoiceServiceLines.Line.icon()}. It is scoped to this preset — + * another preset packages its own set.

      + */ +final class WorkspaceIcons { + + static final String BILL_TO = "bill-to"; + static final String SHIP_TO = "ship-to"; + static final String BANK = "bank"; + static final String INFO = "info"; + static final String CALENDAR = "calendar"; + + private static final String ICON_ROOT = "/templates/invoice/workspace/icons/"; + + /** The marks a document may name on a service line. */ + static final Set LINE_TOKENS = Set.of("search", "grid", "shield"); + + private static final Set TOKENS = Set.of( + BILL_TO, SHIP_TO, BANK, INFO, CALENDAR, "search", "grid", "shield"); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private WorkspaceIcons() { + } + + /** + * Reads one mark. + * + * @param token one of the packaged tokens + * @return the parsed icon + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error + */ + static SvgIcon icon(String token) { + if (!TOKENS.contains(token)) { + throw new IllegalArgumentException( + "Unknown workspace invoice icon token '" + token + + "'. This preset packages " + LINE_TOKENS.stream().sorted().toList() + + " for a service line's mark."); + } + return CACHE.computeIfAbsent(token, WorkspaceIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = WorkspaceIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing workspace invoice icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read workspace invoice icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java new file mode 100644 index 000000000..7ffd4d03f --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java @@ -0,0 +1,169 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageMarginRule; +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.invoice.StructuredInvoiceData; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CONTINUATION_MARGIN; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.PAGE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.PAGE_MARGIN; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.PAGE_NUMBER_BAND; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.PAGE_NUMBER_SIZE; + +/** + * Workspace — a violet-accented SaaS invoice: a brand masthead over an accent + * bar, a half-split issuer and metadata header, two addressed parties on + * discs, a line-item table whose marks sit on coloured tiles, a settlement row + * pairing the bank details against the totals, and a closing band carrying the + * wordmark. + * + *

      It flows

      + * + *

      The design shows four service lines and real data brings dozens, so the + * table is the region that grows: its header repeats on every page it reaches, + * a continuation page reserves a deeper bottom margin than page one, and every + * page carries its number.

      + * + *

      Numbering every page including the first is a departure from the design, + * which is a single sheet and has none. Suppressing page one would match it and + * still make a missing page detectable — a document that opens on "Page 2 of 3" + * is obviously incomplete — but a page without a number cannot be told from a + * page that was lost, so every page carries one.

      + * + *

      One column, not five

      + * + *

      The table has an outer box and a rule between every row and no interior + * verticals, which is exactly what a single-column table draws: a cell strokes + * all four of its own edges and a one-column table has no interior vertical + * edge. The five columns are a row inside each cell. Built the other way round + * — the box from a stroked section wrapped round the table — every continuation + * page would end in an empty bordered strip, and on page one that strip's + * bottom edge lands on the page number.

      + * + *

      The lockup and the wordmark are the caller's

      + * + *

      The design opens with a mark and closes with a wordmark. Both come from + * {@code InvoiceBrand}: the masthead draws the logo at the design's measured + * width, or the brand's name when there is no logo, and the closing band always + * sets the name. The templates artifact carries no mark of its own.

      + * + *

      What the document says, and what the preset chooses

      + * + *

      A service line names its own mark through + * {@code InvoiceServiceLines.Line.icon()}, from this preset's own vocabulary, + * and an unknown token is reported as a data error naming the set. A mark the + * design gives a colour is knocked out of a tile in it; one it does not is drawn + * bare. A line with no token is drawn without a mark. The party discs, the bank + * mark, the information mark and the calendar are the preset's: which glyph + * opens which block is a property of the design rather than of the document.

      + * + *

      Figures are written with the locale stated rather than inherited, so the + * same data renders the same sheet on any machine.

      + * + *

      Fonts

      + * + *

      The sheet is set in Lato throughout, and the face was chosen by + * measurement: its natural widths for eight of the design's strings land within + * 2–5% of the measured ink, where other grotesques are 8–20% out at the same cap + * height. The templates artifact carries no fonts — register the family on the + * session, or the engine substitutes and the measured geometry no longer + * matches the type sitting in it.

      + * + *

      Usage:

      + *
      {@code
      + * DocumentTemplate template = WorkspaceInvoice.create();
      + * template.compose(session, invoice);
      + * }
      + * + * @since 2.2.3 + */ +public final class WorkspaceInvoice { + + /** Stable identifier of this preset. */ + public static final String ID = "workspace-invoice"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Workspace Invoice"; + + private WorkspaceInvoice() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link StructuredInvoiceData} + */ + 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, StructuredInvoiceData data) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(data, "data"); + + // Every length on the sheet is a share of the design's own grid, so + // the preset sets the page and its margins rather than following + // what the caller configured. + document.pageSize(PAGE); + document.margin(PAGE_MARGIN); + document.pageMargins(List.of(PageMarginRule.from(2, CONTINUATION_MARGIN))); + renderPageNumber(document); + + String currency = data.currencyCode(); + document.pageFlow(page -> { + page.name("WorkspaceInvoice").padding(DocumentInsets.zero()).spacing(0); + WorkspaceMasthead.renderHeader(page, data.brand(), data.supplier(), + data.masthead()); + WorkspaceMasthead.renderParties(page, data.billTo(), data.shipTo()); + WorkspaceLines.render(page, data.serviceLines(), currency); + WorkspaceSettlement.render(page, data.payment(), data.totals(), currency); + WorkspaceClosing.render(page, data.notes(), data.brand(), data.supplier()); + }); + } + + /** + * The only chrome the sheet has. The design's own closing band cannot be + * chrome — a header/footer zone carries left, centre and right strings + * and nothing else, and the band holds a wordmark and a link — so page + * identity is carried by the page number alone. + * + *

      The height is stated because a default band is taller than the + * design leaves under its closing block, and a default-height band takes + * that much off the content area and pushes the band onto a second + * page. Sized to the bottom margin it sits inside the margin instead of + * taking content space, and the type is sized to the band rather than + * the other way round.

      + */ + private static void renderPageNumber(DocumentSession document) { + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .centerText("Page {page} of {pages}") + .height((float) PAGE_NUMBER_BAND) + .fontSize((float) PAGE_NUMBER_SIZE) + .textColor(MUTED) + .showSeparator(false) + .build()); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceLines.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceLines.java new file mode 100644 index 000000000..301593ccf --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceLines.java @@ -0,0 +1,200 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.RowBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.table.DocumentTableCell; +import com.demcha.compose.document.table.DocumentTableColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CELL_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CELL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.COLUMN_SHARES; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.HEADER_CELL_STYLE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.HEAD_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ITEM_CELL_STYLE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ITEM_SUB_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ITEM_TEXT_GAP; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ITEM_TILE_D; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ITEM_TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TABLE_HEAD_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.blockGap; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.gap; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.style; + +/** + * The service lines. + * + *

      One column, not five

      + * + *

      The design's table has an outer box and a rule between every row and + * no interior verticals — which is exactly the rule topology a + * single-column table draws, because a cell strokes all four of its own edges + * and a one-column table has no interior vertical edge to draw. The five + * columns are a row inside each cell, laid out on shares of the table's width, + * so they stay aligned down the page without the engine drawing a line between + * them.

      + * + *

      Reaching the same topology the other way — unstroked cells, separators as + * full-width rule rows, and the outer box from a stroked section wrapped round + * the table — is wrong on a document that paginates: a section's box fills its + * page fragment rather than hugging its rows, so every continuation page would + * end with an empty bordered strip below its last line, and on page one that + * strip's bottom edge lands on the page number.

      + */ +final class WorkspaceLines { + + private WorkspaceLines() { + } + + /** + * Draws the table. + * + * @param page the page flow + * @param serviceLines the columns and the lines + * @param currencyCode the ISO code the figures are stated in + */ + static void render(PageFlowBuilder page, InvoiceServiceLines serviceLines, + String currencyCode) { + page.addSection("LineItemsBox", box -> { + box.spacing(0) + .padding(DocumentInsets.zero()) + .margin(new DocumentInsets(blockGap(45, BODY_SIZE, 0), 0, px(27), 0)); + box.addTable(table -> { + table.name("LineItems") + .width(CONTENT_W) + .columns(DocumentTableColumn.fixed(CONTENT_W)); + renderHeader(table, serviceLines.columns(), currencyCode); + List lines = serviceLines.lines(); + for (int i = 0; i < lines.size(); i++) { + table.rowCells(DocumentTableCell + .node(renderLine(lines.get(i), i)) + .withStyle(ITEM_CELL_STYLE)); + } + }); + }); + } + + /** + * The header repeats on every page its table reaches. It is one cell like + * every other row, so its own stroke draws the table's top edge and the rule + * under the band — in the accent's border step, which is what the design + * tints the band's edges with. + */ + private static void renderHeader(TableBuilder table, InvoiceServiceLines.Columns columns, + String currencyCode) { + RowBuilder row = new RowBuilder(); + row.name("LineItemsHeader").spacing(0).columns(columnWidths()); + row.addParagraph(p -> p + .name("HeadDescription") + .text(columns.description()) + .textStyle(style(TABLE_HEAD_SIZE, ACCENT, DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets(0, 0, 0, HEAD_PAD_L))); + headCell(row, "HeadPlan", columns.servicePeriod()); + headCell(row, "HeadQuantity", columns.quantity()); + // The currency is named once per money column rather than on every + // figure under it, which is where this design states it. + headCell(row, "HeadUnitPrice", + WorkspaceText.labelWithCurrency(columns.unitPrice(), currencyCode)); + headCell(row, "HeadAmount", + WorkspaceText.labelWithCurrency(columns.amount(), currencyCode)); + table.headerCells(DocumentTableCell.node(row.build()).withStyle(HEADER_CELL_STYLE)) + .repeatHeader(); + } + + private static void headCell(RowBuilder row, String name, String label) { + row.addParagraph(p -> p + .name(name) + .text(label) + .textStyle(style(TABLE_HEAD_SIZE, ACCENT, DocumentTextDecoration.BOLD)) + .align(TextAlign.CENTER)); + } + + /** The five columns, as a row inside the row's single cell. */ + private static DocumentNode renderLine(InvoiceServiceLines.Line line, int index) { + int n = index + 1; + RowBuilder row = new RowBuilder(); + row.name("Item" + n) + .spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(columnWidths()); + row.addSection("ItemDescription" + n, cell -> { + cell.spacing(0).padding(new DocumentInsets(0, 0, 0, CELL_PAD_L)); + // Mark and text are a horizontal pair inside a row cell, which the + // layout compiler refuses as a bare row. + WorkspaceWidgets.layeredRow(cell, "ItemBody" + n, body -> { + body.spacing(ITEM_TEXT_GAP) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(ITEM_TILE_D), + DocumentRowColumn.weight(1)); + body.addSection("ItemGlyph" + n, glyph -> { + glyph.spacing(0); + if (!line.icon().isBlank()) { + glyph.add(WorkspaceWidgets.tile(line.icon())); + } + }); + body.addSection("ItemText" + n, text -> { + text.spacing(gap(25, ITEM_TITLE_SIZE)); + text.addParagraph(p -> p + .name("ItemTitle" + n) + .text(line.title()) + .textStyle(style(ITEM_TITLE_SIZE, INK, + DocumentTextDecoration.BOLD))); + if (!line.description().isBlank()) { + text.addParagraph(p -> p + .name("ItemSubtitle" + n) + .text(line.description()) + .textStyle(style(ITEM_SUB_SIZE, MUTED, + DocumentTextDecoration.DEFAULT))); + } + }); + }); + }); + valueCell(row, "ItemPlan" + n, line.servicePeriod()); + valueCell(row, "ItemQuantity" + n, + WorkspaceText.quantityWithUnit(line.quantity(), line.unit())); + valueCell(row, "ItemUnitPrice" + n, WorkspaceText.money(line.unitPrice())); + valueCell(row, "ItemAmount" + n, WorkspaceText.money(line.amount())); + return row.build(); + } + + private static void valueCell(RowBuilder row, String name, String value) { + row.addParagraph(p -> p + .name(name) + .text(value) + .textStyle(style(CELL_SIZE, MUTED, DocumentTextDecoration.DEFAULT)) + .align(TextAlign.CENTER)); + } + + /** + * The five column widths as shares of the table's own width. The last takes + * whatever the others leave: five independently rounded shares sum to the + * width plus a half-thousandth of a point, and the engine refuses a row + * narrower than its columns. + */ + private static DocumentRowColumn[] columnWidths() { + DocumentRowColumn[] columns = new DocumentRowColumn[COLUMN_SHARES.length]; + double assigned = 0; + for (int i = 0; i < COLUMN_SHARES.length - 1; i++) { + double width = CONTENT_W * COLUMN_SHARES[i]; + assigned += width; + columns[i] = DocumentRowColumn.fixed(width); + } + columns[COLUMN_SHARES.length - 1] = DocumentRowColumn.fixed(CONTENT_W - assigned); + return columns; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceMasthead.java new file mode 100644 index 000000000..e3364d569 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceMasthead.java @@ -0,0 +1,304 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentBorders; +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.DocumentTextDecoration; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ACCENT_RULE_T; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ACCENT_RULE_W; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DISC_GAP; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.HALF; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ISSUER_TAX_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.LOCKUP_W; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.META_CELL_INSET; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.META_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.META_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.NAME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.PARTY_TAX_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.PARTY_TEXT_INDENT; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.RULE_THIN; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.SECTION_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TITLE_RIGHT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TITLE_TOP_LIFT; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.WORDMARK_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.blockGap; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.capOffset; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.gap; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.style; + +/** + * The header and the two addressed parties: the lockup beside the title, the + * accent bar under it, the issuer against the metadata grid, and the bill-to / + * ship-to split. + * + *

      Both splits divide the content box in half: measured, their two vertical + * dividers land on the same x. Neither divider is a node — each is the right + * cell's left border, which is why it begins and ends with that cell's + * content rather than running the row's full height.

      + */ +final class WorkspaceMasthead { + + private WorkspaceMasthead() { + } + + /** + * Draws the header, the accent bar, the issuer/metadata row and the rule + * that closes it. + * + * @param page the page flow + * @param brand the lockup + * @param supplier who is invoicing + * @param masthead the title and the metadata rows + */ + static void renderHeader(PageFlowBuilder page, InvoiceBrand brand, + InvoiceContactBlock supplier, InvoiceMasthead masthead) { + renderLockupRow(page, brand, masthead); + renderAccentBar(page); + page.addRow("IssuerMetaRow", row -> { + row.spacing(0).weights(HALF, HALF); + row.addSection("IssuerAddress", cell -> renderIssuer(cell, supplier)); + row.addSection("InvoiceMeta", cell -> { + cell.spacing(0) + .borders(DocumentBorders.left(DocumentStroke.of(HAIRLINE, RULE_THIN))) + .padding(new DocumentInsets(0, 0, 0, META_CELL_INSET)); + renderMeta(cell, masthead.entries()); + }); + }); + WorkspaceWidgets.fullWidthRule(page, "PartiesRule", HAIRLINE, RULE_THIN, + blockGap(28.5, BODY_SIZE, 0), px(24)); + } + + /** + * TOP, not CENTER: the title's line box is taller than the lockup, so + * centring pushes the lockup down the row it is supposed to set the top edge + * of. + * + *

      What fills the lockup column comes from the brand — a logo drawn to the + * design's measured width, or the brand's name set as a wordmark. The + * templates artifact carries no mark of its own.

      + */ + private static void renderLockupRow(PageFlowBuilder page, InvoiceBrand brand, + InvoiceMasthead masthead) { + page.addRow("Masthead", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .columns(DocumentRowColumn.fixed(LOCKUP_W), DocumentRowColumn.weight(1)); + row.addSection("BrandLockup", cell -> { + cell.spacing(0); + if (brand.logo() != null) { + cell.add(new ImageBuilder() + .name("BrandLogo") + .source(brand.logo()) + .width(LOCKUP_W) + .build()); + } else if (!brand.name().isBlank()) { + cell.addParagraph(p -> p + .name("BrandWordmark") + .text(brand.name()) + .textStyle(style(WORDMARK_SIZE, INK, DocumentTextDecoration.BOLD))); + } + }); + row.addSection("InvoiceTitle", cell -> cell + .spacing(0) + .padding(new DocumentInsets(-TITLE_TOP_LIFT, TITLE_RIGHT_INSET, 0, 0)) + .addParagraph(p -> p + .name("InvoiceTitleText") + .text(masthead.title()) + .textStyle(style(TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) + .align(TextAlign.RIGHT))); + }); + } + + /** + * The bar is anchored to the content box's left edge, not to the mark above + * it, so its width derives from the page rather than from the asset. Stating + * its own position rather than a gap keeps the two facts separable when + * either changes. + */ + private static void renderAccentBar(PageFlowBuilder page) { + page.addLine(line -> line + .name("BrandAccentRule") + .horizontal(ACCENT_RULE_W) + .thickness(ACCENT_RULE_T) + .color(ACCENT) + .margin(new DocumentInsets( + px(89) - (LINE_BOX * TITLE_SIZE - TITLE_TOP_LIFT), + 0, + blockGap(19, 0, META_LABEL_SIZE), + 0))); + } + + private static void renderIssuer(SectionBuilder cell, InvoiceContactBlock supplier) { + // The two cells of the split do not share a top edge: the metadata block + // starts above the issuer name, and the divider starts with it. + cell.spacing(0).padding(new DocumentInsets(px(12), 0, 0, px(2))); + cell.addParagraph(p -> p + .name("IssuerName") + .text(supplier.legalName()) + .textStyle(style(NAME_SIZE, INK, DocumentTextDecoration.BOLD))); + cell.addSection("IssuerAddressLines", lines -> { + lines.spacing(gap(27.5, BODY_SIZE)) + .margin(new DocumentInsets(gap(38, NAME_SIZE), 0, 0, 0)); + WorkspaceWidgets.textLines(lines, "IssuerAddressLine", supplier.addressLines(), + BODY_SIZE, INK); + }); + renderLabelledRow(cell, "Issuer", supplier.taxRegistrationLabel(), + supplier.taxRegistrationNumber(), ISSUER_TAX_LABEL_W, gap(38, BODY_SIZE)); + } + + private static void renderMeta(SectionBuilder cell, List entries) { + cell.addSection("InvoiceMetaRows", rows -> { + rows.spacing(gap(36.2, BODY_SIZE)); + int index = 0; + for (InvoiceMasthead.Entry entry : entries) { + String name = "MetaRow" + (++index); + WorkspaceWidgets.layeredRow(rows, name, row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(META_LABEL_W), + DocumentRowColumn.weight(1)); + row.addParagraph(p -> p + .name(name + "Label") + .text(entry.label()) + .textStyle(style(META_LABEL_SIZE, INK, + DocumentTextDecoration.DEFAULT))); + row.addParagraph(p -> p + .name(name + "Value") + .text(entry.value()) + .textStyle(style(BODY_SIZE, + entry.emphasized() ? ACCENT : INK, + entry.emphasized() + ? DocumentTextDecoration.BOLD + : DocumentTextDecoration.DEFAULT))); + }); + } + }); + } + + /** + * Draws the two addressed parties. + * + * @param page the page flow + * @param billTo who is billed + * @param shipTo where the work went, or a party with no name when absent + */ + static void renderParties(PageFlowBuilder page, InvoiceRecipient billTo, + InvoiceRecipient shipTo) { + List parties = new ArrayList<>(); + parties.add(billTo); + if (!shipTo.name().isBlank()) { + parties.add(shipTo); + } + List tokens = List.of(WorkspaceIcons.BILL_TO, WorkspaceIcons.SHIP_TO); + + page.addRow("PartiesRow", row -> { + row.spacing(0).weights(WorkspaceWidgets.evenWeights(parties.size())); + for (int i = 0; i < parties.size(); i++) { + InvoiceRecipient party = parties.get(i); + String token = tokens.get(Math.min(i, tokens.size() - 1)); + boolean first = i == 0; + row.addSection("Party" + (i + 1), cell -> { + cell.spacing(0); + if (!first) { + // The divider belongs to the split, so it is the cell's + // own left edge rather than a rule drawn between them. + cell.borders(DocumentBorders.left(DocumentStroke.of(HAIRLINE, RULE_THIN))) + .padding(new DocumentInsets(0, 0, 0, px(28))); + } + renderParty(cell, party, token); + }); + } + }); + } + + /** + * One method for both parties: they are the same component with different + * data, down to the registration only one of them usually prints. + */ + private static void renderParty(SectionBuilder cell, InvoiceRecipient party, String token) { + WorkspaceWidgets.layeredRow(cell, "PartyHead", row -> { + row.spacing(DISC_GAP) + .verticalAlign(RowVerticalAlign.TOP) + .columns(DocumentRowColumn.fixed(DISC_D), DocumentRowColumn.weight(1)); + row.addSection("PartyDisc", disc -> disc + .spacing(0) + .add(WorkspaceWidgets.disc(token))); + row.addParagraph(p -> p + .name("PartyLabel") + .text(party.heading()) + .textStyle(style(SECTION_LABEL_SIZE, ACCENT, DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets(capOffset(8, SECTION_LABEL_SIZE), 0, 0, 0))); + }); + cell.addSection("PartyBody", block -> { + block.spacing(0).padding(new DocumentInsets(0, 0, 0, PARTY_TEXT_INDENT)); + block.addParagraph(p -> p + .name("PartyName") + .text(party.name()) + .textStyle(style(NAME_SIZE, INK, DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets(px(2), 0, 0, 0))); + if (!party.subline().isBlank()) { + block.addParagraph(p -> p + .name("PartySubline") + .text(party.subline()) + .textStyle(style(BODY_SIZE, INK, DocumentTextDecoration.DEFAULT)) + .margin(new DocumentInsets(gap(30, NAME_SIZE), 0, 0, 0))); + } + block.addSection("PartyAddressLines", lines -> { + lines.spacing(gap(28, BODY_SIZE)) + .margin(new DocumentInsets( + gap(35, party.subline().isBlank() ? NAME_SIZE : BODY_SIZE), + 0, 0, 0)); + WorkspaceWidgets.textLines(lines, "PartyAddressLine", party.addressLines(), + BODY_SIZE, INK); + }); + renderLabelledRow(block, "Party", party.registrationLabel(), + party.registrationNumber(), PARTY_TAX_LABEL_W, gap(47, BODY_SIZE)); + }); + } + + /** + * A labelled fact under an address — a registration, printed as a label + * column beside its value. Drawn only when there is a value: a label on its + * own is a heading over an absence. + */ + private static void renderLabelledRow(SectionBuilder parent, String prefix, String label, + String value, double labelWidth, double gapAbove) { + if (value == null || value.isBlank()) { + return; + } + WorkspaceWidgets.layeredRow(parent, prefix + "TaxLine", row -> { + row.spacing(0) + .margin(new DocumentInsets(gapAbove, 0, 0, 0)) + .columns(DocumentRowColumn.fixed(labelWidth), DocumentRowColumn.weight(1)); + row.addParagraph(p -> p + .name(prefix + "TaxLabel") + .text(label) + .textStyle(style(BODY_SIZE, INK, DocumentTextDecoration.DEFAULT))); + row.addParagraph(p -> p + .name(prefix + "TaxValue") + .text(value) + .textStyle(style(BODY_SIZE, INK, DocumentTextDecoration.DEFAULT))); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceSettlement.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceSettlement.java new file mode 100644 index 000000000..1e4a8ed77 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceSettlement.java @@ -0,0 +1,273 @@ +package com.demcha.compose.document.templates.invoice.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.HorizontalAlign; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +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.DocumentTextDecoration; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; + +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ACCENT_BORDER; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ACCENT_SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CARD_ICON; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CARD_ICON_GAP; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CARD_INNER_W; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CARD_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CARD_PAD; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CARD_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CARD_TEXT_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CARD_TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DUE_GLYPH; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DUE_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DUE_PAD; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DUE_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DUE_TILE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DUE_TILE_GAP; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DUE_TILE_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DUE_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.HALF; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.NOTE_ICON; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.NOTE_ICON_COL; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.RULE_MED; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.RULE_THIN; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.SETTLEMENT_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.SETTLEMENT_LEFT; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.SETTLEMENT_RIGHT; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.SETTLEMENT_RIGHT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TOTALS_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TOTALS_PAD_R; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TOTALS_RULE_W; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TOTALS_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TOTAL_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TOTAL_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.capOffset; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.gap; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.style; + +/** + * The settlement row: the payment card against the totals and the panel that + * closes them. + * + *

      The split is not the half the two rows above it use — the left cell is + * narrower than the right, with a wide gutter between. That asymmetry is in the + * design.

      + */ +final class WorkspaceSettlement { + + private WorkspaceSettlement() { + } + + /** + * Draws the row. + * + * @param page the page flow + * @param payment the bank details, the note and the due notice + * @param totals the summed rows and the amount due + * @param currencyCode the ISO code the figures are stated in + */ + static void render(PageFlowBuilder page, InvoicePaymentBlock payment, + InvoiceTotalsBlock totals, String currencyCode) { + page.addRow("SettlementRow", row -> { + row.spacing(SETTLEMENT_GUTTER).weights(SETTLEMENT_LEFT, SETTLEMENT_RIGHT); + row.addSection("PaymentDetails", cell -> renderCard(cell, payment)); + row.addSection("Settlement", cell -> { + cell.spacing(0).padding(new DocumentInsets(0, SETTLEMENT_RIGHT_INSET, 0, 0)); + renderTotals(cell, totals, currencyCode); + renderDuePanel(cell, payment); + }); + }); + } + + /** + * An outlined rounded card. Built from a fill, a stroke, a radius and a + * padding rather than a panel helper, which takes one padding value where + * this card's insets are asymmetric. + */ + private static void renderCard(SectionBuilder cell, InvoicePaymentBlock payment) { + cell.spacing(0) + .fillColor(SURFACE) + .stroke(DocumentStroke.of(ACCENT_BORDER, RULE_MED)) + .cornerRadius(CARD_RADIUS) + .padding(CARD_PAD) + .keepTogether(); + + WorkspaceWidgets.layeredRow(cell, "CardHead", row -> { + row.spacing(CARD_ICON_GAP) + .verticalAlign(RowVerticalAlign.TOP) + .columns(DocumentRowColumn.fixed(CARD_ICON), DocumentRowColumn.weight(1)); + row.addSection("CardIcon", glyph -> glyph + .spacing(0) + .add(WorkspaceWidgets.glyph(WorkspaceIcons.BANK, CARD_ICON))); + row.addParagraph(p -> p + .name("CardLabel") + .text(payment.heading()) + .textStyle(style(CARD_TITLE_SIZE, ACCENT, DocumentTextDecoration.BOLD)) + .margin(new DocumentInsets(capOffset(10, CARD_TITLE_SIZE), 0, 0, 0))); + }); + + cell.addSection("CardFields", fields -> { + // The head row is as tall as its glyph, and the first field sits a + // measured distance below the head's top — not below the heading's + // own line box, which is shorter than the glyph. + fields.spacing(gap(22.4, CARD_TEXT_SIZE)) + .margin(new DocumentInsets(px(41 - 27 - 3), 0, 0, 0)); + int index = 0; + for (InvoicePaymentBlock.Field field : payment.fields()) { + String name = "CardField" + (++index); + WorkspaceWidgets.layeredRow(fields, name, row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(CARD_LABEL_W), + DocumentRowColumn.weight(1)); + row.addParagraph(p -> p + .name(name + "Label") + .text(field.label()) + .textStyle(style(CARD_TEXT_SIZE, BODY, + DocumentTextDecoration.DEFAULT))); + row.addParagraph(p -> p + .name(name + "Value") + .text(field.value()) + .textStyle(style(CARD_TEXT_SIZE, BODY, + DocumentTextDecoration.DEFAULT))); + }); + } + }); + + if (payment.instruction().isBlank()) { + return; + } + cell.addLine(line -> line + .name("CardRule") + .horizontal(CARD_INNER_W) + .thickness(RULE_THIN) + .color(HAIRLINE) + .margin(new DocumentInsets(gap(23, CARD_TEXT_SIZE), 0, px(16), 0))); + + // Two cells rather than an inline glyph: the design's wrapped second + // line returns to the TEXT axis, not to the glyph's. + WorkspaceWidgets.layeredRow(cell, "CardNote", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(NOTE_ICON_COL), DocumentRowColumn.weight(1)); + row.addSection("CardNoteIcon", glyph -> glyph + .spacing(0) + .add(WorkspaceWidgets.glyph(WorkspaceIcons.INFO, NOTE_ICON, + HorizontalAlign.LEFT))); + row.addParagraph(p -> p + .name("CardNoteText") + .text(payment.instruction()) + .textStyle(style(CARD_TEXT_SIZE, MUTED, DocumentTextDecoration.DEFAULT)) + .lineSpacing(gap(22, CARD_TEXT_SIZE))); + }); + } + + private static void renderTotals(SectionBuilder cell, InvoiceTotalsBlock totals, + String currencyCode) { + cell.addSection("Totals", block -> { + block.spacing(gap(35, TOTALS_SIZE)) + .padding(new DocumentInsets(0, TOTALS_PAD_R, 0, TOTALS_PAD_L)) + .margin(new DocumentInsets(px(10.3), 0, 0, 0)) + .keepTogether(); + int index = 0; + for (InvoiceTotalsBlock.Row entry : totals.rows()) { + String name = "Total" + (++index); + WorkspaceWidgets.layeredRow(block, name, row -> { + row.spacing(0).weights(HALF, HALF); + row.addParagraph(p -> p + .name(name + "Label") + .text(entry.label()) + .textStyle(style(TOTALS_SIZE, INK, DocumentTextDecoration.DEFAULT))); + row.addParagraph(p -> p + .name(name + "Value") + .text(WorkspaceText.money(entry.amount())) + .textStyle(style(TOTALS_SIZE, INK, DocumentTextDecoration.DEFAULT)) + .align(TextAlign.RIGHT)); + }); + } + }); + + // Accent-coloured, not a grey hairline: a colour scan across it returns + // a clear violet hue. + cell.addLine(line -> line + .name("TotalsRule") + .horizontal(TOTALS_RULE_W) + .thickness(RULE_MED) + .color(ACCENT) + .margin(new DocumentInsets(gap(35, TOTALS_SIZE), 0, px(24.3), TOTALS_PAD_L))); + + cell.addSection("TotalDue", block -> { + block.spacing(0) + .padding(new DocumentInsets(0, TOTALS_PAD_R, 0, TOTALS_PAD_L)) + .keepTogether(); + WorkspaceWidgets.layeredRow(block, "TotalDueRow", row -> { + row.spacing(0).verticalAlign(RowVerticalAlign.CENTER).weights(HALF, HALF); + row.addParagraph(p -> p + .name("TotalDueLabel") + .text(totals.totalLabel()) + .textStyle(style(TOTAL_LABEL_SIZE, INK, DocumentTextDecoration.BOLD))); + row.addParagraph(p -> p + .name("TotalDueValue") + .text(WorkspaceText.coded(currencyCode, totals.totalAmount())) + .textStyle(style(TOTAL_VALUE_SIZE, ACCENT, DocumentTextDecoration.BOLD)) + .align(TextAlign.RIGHT)); + }); + }); + } + + /** + * The calendar tile has to be a shape: a bare glyph on the panel would lose + * the white square the design draws behind it, which is the only thing + * separating the glyph from the panel's tint. + */ + private static void renderDuePanel(SectionBuilder cell, InvoicePaymentBlock payment) { + if (payment.dueNotice().isBlank() && payment.dueNoticeEmphasis().isBlank()) { + return; + } + cell.addSection("PaymentDuePanel", panel -> { + panel.spacing(0) + .fillColor(ACCENT_SURFACE) + .stroke(DocumentStroke.of(ACCENT_BORDER, RULE_MED)) + .cornerRadius(DUE_RADIUS) + .padding(DUE_PAD) + .margin(new DocumentInsets(px(42.7), 0, 0, 0)) + .keepTogether(); + WorkspaceWidgets.layeredRow(panel, "PaymentDueRow", row -> { + row.spacing(DUE_TILE_GAP) + .verticalAlign(RowVerticalAlign.TOP) + .columns(DocumentRowColumn.fixed(DUE_TILE), DocumentRowColumn.weight(1)); + row.addSection("DueTile", tile -> tile + .spacing(0) + .add(new ShapeContainerBuilder() + .name("DueTileShape") + .roundedRect(DUE_TILE, DUE_TILE, DUE_TILE_RADIUS) + .fillColor(SURFACE) + .center(WorkspaceWidgets.glyph(WorkspaceIcons.CALENDAR, DUE_GLYPH)) + .build())); + row.addSection("DueText", text -> { + text.spacing(gap(23.6, DUE_LABEL_SIZE)) + .margin(new DocumentInsets(capOffset(5, DUE_LABEL_SIZE), 0, 0, 0)); + text.addParagraph(p -> p + .name("DueLabel") + .text(payment.dueNotice()) + .textStyle(style(DUE_LABEL_SIZE, INK, + DocumentTextDecoration.DEFAULT))); + text.addParagraph(p -> p + .name("DueValue") + .text(payment.dueNoticeEmphasis()) + .textStyle(style(DUE_VALUE_SIZE, INK, DocumentTextDecoration.BOLD))); + }); + }); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceStyles.java new file mode 100644 index 000000000..e0ccf1fa5 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceStyles.java @@ -0,0 +1,344 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.document.table.DocumentTableTextAnchor; +import com.demcha.compose.font.FontName; + +import java.util.Map; + +/** + * Design tokens for {@link WorkspaceInvoice} — the palette, the type scale and + * the geometry every part of the sheet measures against. + * + *

      The design was drawn at 1055 px across an A4 page, so {@link #PX} converts + * every length below from that raster to points.

      + * + *

      Sizes carry two corrections, both measured

      + * + *

      A cap measured on a screenshot includes about half a pixel of antialiasing + * on each edge and the whole of it lands in the size, so {@link #sizeForCap} + * takes it back off. And the body face sets uppercase about 6% wider than the + * design's face at the same cap height — measured across three all-caps runs, + * while mixed-case runs at the same sizes matched within 2% — so + * {@link #sizeForCaps} carries that as a size correction. There is no + * letter-spacing API to take it out with instead.

      + */ +final class WorkspaceStyles { + + private WorkspaceStyles() { + } + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + static final double PAGE_WIDTH = PAGE.width(); + + /** The design's raster is 1055 px wide; every length below came off it. */ + static final double PX = PAGE_WIDTH / 1055.0; + + static final double MARGIN_T = px(46); + static final double MARGIN_R = px(47); + static final double MARGIN_L = px(45); + + /** + * Page one's bottom margin is the page-number band: whatever else is on the + * page, the band has to be reserved, or a paginated invoice runs its last + * line straight through the number. + */ + static final double MARGIN_B_FIRST = px(28); + static final double PAGE_NUMBER_BAND = px(28); + + /** + * How far the closing rule, the thank-you block and the brand band sit above + * the design's own positions. It buys the page number a band to sit in; + * without it there is nowhere on the page for one, because the design's + * closing block runs to within 15 px of the paper. + * + *

      Distributed rather than taken in one place, and the distribution is not + * arbitrary: the closing rule sits 17 px under the payment card, so taking + * the whole lift off its top margin would pull it into the card's bottom + * border. Nine px come off the rule — leaving it 8 px clear of the card — + * and the rest out of the two gaps below it. The three shares are not + * independent: a gap inside the block moves everything below it as well, so + * the band's total lift is their sum.

      + */ + static final double CLOSING_LIFT = px(18); + static final double CLOSING_RULE_LIFT = px(9); + static final double CLOSING_INNER_LIFT = (CLOSING_LIFT - CLOSING_RULE_LIFT) / 2.0; + + /** + * A continuation page reserves more: its last row would otherwise end + * against the paper rather than against a margin. + */ + static final double MARGIN_B_LATER = px(58); + + static final DocumentInsets PAGE_MARGIN = + new DocumentInsets(MARGIN_T, MARGIN_R, MARGIN_B_FIRST, MARGIN_L); + static final DocumentInsets CONTINUATION_MARGIN = + new DocumentInsets(MARGIN_T, MARGIN_R, MARGIN_B_LATER, MARGIN_L); + + /** Every width in this preset is a fraction of this. */ + static final double CONTENT_W = PAGE_WIDTH - MARGIN_L - MARGIN_R; + + /** + * The issuer/metadata and bill-to/ship-to rows both split the content box in + * half: measured, both vertical dividers land on the same x. + */ + static final double HALF = 0.5; + + static final DocumentColor ACCENT = DocumentColor.rgb(85, 42, 164); + static final DocumentColor ACCENT_SURFACE = DocumentColor.rgb(245, 242, 253); + static final DocumentColor ACCENT_BORDER = DocumentColor.rgb(199, 184, 236); + static final DocumentColor INK = DocumentColor.rgb(15, 16, 20); + static final DocumentColor BODY = DocumentColor.rgb(45, 47, 53); + static final DocumentColor MUTED = DocumentColor.rgb(100, 102, 108); + static final DocumentColor HAIRLINE = DocumentColor.rgb(232, 234, 238); + static final DocumentColor HAIRLINE_STRONG = DocumentColor.rgb(214, 216, 221); + static final DocumentColor SURFACE = DocumentColor.WHITE; + static final DocumentColor TILE_BLUE = DocumentColor.rgb(45, 90, 242); + static final DocumentColor TILE_GREEN = DocumentColor.rgb(31, 122, 85); + + static final FontName FACE = FontName.LATO; + + /** The face's cap height in ems, read off the TTF. */ + private static final double FACE_CAP_RATIO = 0.7165; + + /** The antialiasing a cap measured on a screenshot carries on each edge. */ + private static final double CAP_INK_BLEED = 0.5; + + /** How far below its own box top a line of text sits. */ + static final double TEXT_TOP_BEARING = 0.235; + + /** + * {@code lineSpacing} is points added between lines over a line box + * of 1.2× the type size, so a measured pitch converts as + * {@code pitch - 1.2 * size}, never as a ratio. + */ + static final double LINE_BOX = 1.2; + + /** + * The one size not taken straight from its cap. At the size its 45 px cap + * implies the title's ink came back 2.9% narrower than the design's with the + * right edges aligned, so it is set 3% larger — which costs 1.4 px of cap + * height to buy back 7 px of width. + */ + static final double TITLE_SIZE = sizeForCap(45) * 1.03; + + /** + * 3% under the size its 15 px cap implies. The two names set at it straddle + * the design — one comes back 1.9% wide and the other 6.9% — so the + * correction halves the larger error rather than making one exact and the + * other worse. + */ + static final double NAME_SIZE = sizeForCap(15) * 0.97; + static final double BODY_SIZE = sizeForCap(12.5); + static final double META_LABEL_SIZE = sizeForCap(12); + + /** + * The party labels keep the uncorrected size: measured against the design + * they come back 5% narrow plain and 11% narrow with the caps correction, so + * they are the one all-caps run the correction does not help. + */ + static final double SECTION_LABEL_SIZE = sizeForCap(12.5); + static final double TABLE_HEAD_SIZE = sizeForCaps(11); + static final double ITEM_TITLE_SIZE = sizeForCap(13); + static final double ITEM_SUB_SIZE = sizeForCap(11); + static final double CELL_SIZE = sizeForCaps(12); + static final double TOTALS_SIZE = sizeForCap(12); + static final double TOTAL_LABEL_SIZE = sizeForCaps(15); + static final double TOTAL_VALUE_SIZE = sizeForCap(19); + static final double CARD_TITLE_SIZE = sizeForCaps(12); + static final double CARD_TEXT_SIZE = sizeForCap(11); + static final double DUE_LABEL_SIZE = sizeForCaps(12); + static final double DUE_VALUE_SIZE = sizeForCap(16); + static final double THANKS_TITLE_SIZE = sizeForCap(12); + static final double THANKS_BODY_SIZE = sizeForCap(10); + static final double FOOTER_SIZE = sizeForCap(11); + static final double WORDMARK_SIZE = sizeForCap(25); + static final double PAGE_NUMBER_SIZE = sizeForCap(8); + + static final double RULE_THIN = px(1.4); + static final double RULE_MED = px(1.6); + static final double ACCENT_RULE_W = px(41); + static final double ACCENT_RULE_T = px(4); + + /** + * The lockup's box, measured off the design's own ink. A caller's logo is + * sized by the width, which is the dimension the design fixes. + */ + static final double LOCKUP_W = px(212); + + /** The title's ink stops short of the content box, not on it. */ + static final double TITLE_RIGHT_INSET = px(13); + + /** + * The lockup sets the row's top edge, so the title's own line box hangs its + * caps below where the design draws them. Nothing else in the row can absorb + * that, so the title is lifted by it. + */ + static final double TITLE_TOP_LIFT = px(7.3); + + static final double DISC_D = px(42); + static final double DISC_GLYPH = px(20); + static final double DISC_GAP = px(18); + + /** The party block's text sits on the label's axis, indented past the disc. */ + static final double PARTY_TEXT_INDENT = DISC_D + DISC_GAP; + static final double ISSUER_TAX_LABEL_W = px(63); + static final double PARTY_TAX_LABEL_W = px(79); + + /** Metadata labels start at the cell's edge and values 180 px along it. */ + static final double META_LABEL_W = px(180); + static final double META_CELL_INSET = px(80); + + /** + * Column shares of the content width, derived from the header labels' + * measured centres rather than from boundaries the design never draws. + */ + static final double[] COLUMN_SHARES = {0.383178, 0.176532, 0.118380, 0.172378, 0.149533}; + + static final double HEAD_PAD_V = px(18.4); + static final double HEAD_PAD_L = px(67); + + /** + * Asymmetric, measured: the design's row content sits 19 px below its top + * rule and 16 px above the next. Symmetric padding centres it and leaves the + * text about 3 px low. + */ + static final double CELL_PAD_T = px(17.0); + static final double CELL_PAD_B = px(14.0); + static final double CELL_PAD_L = px(15); + static final double ITEM_TILE_D = px(33); + static final double ITEM_TILE_RADIUS = px(8); + static final double ITEM_GLYPH = px(19); + static final double ITEM_TEXT_GAP = px(19); + + /** + * Every rule in the table comes from one of these two styles. A cell strokes + * all four of its own edges, and a one-column table has no interior vertical + * edge — so the same stroke that draws the separator between two rows draws + * the table's left and right sides, and nothing else. + */ + static final DocumentTableStyle HEADER_CELL_STYLE = DocumentTableStyle.builder() + .fillColor(ACCENT_SURFACE) + .stroke(DocumentStroke.of(ACCENT_BORDER, RULE_THIN)) + .padding(new DocumentInsets(HEAD_PAD_V, 0, HEAD_PAD_V, 0)) + .textAnchor(DocumentTableTextAnchor.CENTER_LEFT) + .build(); + + static final DocumentTableStyle ITEM_CELL_STYLE = DocumentTableStyle.builder() + .stroke(DocumentStroke.of(HAIRLINE, RULE_THIN)) + .padding(new DocumentInsets(CELL_PAD_T, 0, CELL_PAD_B, 0)) + .textAnchor(DocumentTableTextAnchor.CENTER_LEFT) + .build(); + + /** + * The settlement row is NOT the half split the two rows above it use: its + * left cell is 420 design px, its right 433, with a 110 px gutter. That + * asymmetry is in the design, not in the measurement. + */ + static final double SETTLEMENT_LEFT = px(420); + static final double SETTLEMENT_GUTTER = px(110); + static final double SETTLEMENT_RIGHT = px(433); + static final double SETTLEMENT_RIGHT_INSET = px(29); + + static final double CARD_RADIUS = px(12); + static final DocumentInsets CARD_PAD = new DocumentInsets(px(17), px(24), px(22), px(24)); + static final double CARD_LABEL_W = px(162); + + /** The card's inner width — what its interior rule spans. */ + static final double CARD_INNER_W = SETTLEMENT_LEFT - px(24) - px(24); + static final double CARD_ICON = px(27); + static final double CARD_ICON_GAP = px(21); + static final double NOTE_ICON_COL = px(30); + static final double NOTE_ICON = px(20); + + static final double TOTALS_PAD_L = px(6); + static final double TOTALS_PAD_R = px(10); + static final double TOTALS_RULE_W = px(397); + + static final double DUE_RADIUS = px(12); + static final DocumentInsets DUE_PAD = new DocumentInsets(px(25), px(24), px(28), px(23)); + static final double DUE_TILE = px(38); + static final double DUE_TILE_RADIUS = px(9); + static final double DUE_GLYPH = px(22); + static final double DUE_TILE_GAP = px(24); + + static final double THANKS_INDENT = px(6); + static final double THANKS_ICON_COL = px(46); + static final double THANKS_ICON = px(30); + + static final double FOOTER_MARK_COL = px(144); + static final double FOOTER_LINK_COL = px(150); + + /** + * Which surface a line's glyph is knocked out of. A token with no colour + * here is drawn bare, which is how the design sets a mark that carries its + * own. + */ + static final Map TILE_COLOR = Map.of( + "search", ACCENT, + "grid", TILE_BLUE, + "shield", TILE_GREEN); + + static double px(double designPixels) { + return designPixels * PX; + } + + /** A size named by the cap height it reproduces, in design px. */ + static double sizeForCap(double capPx) { + return px(capPx - CAP_INK_BLEED) / FACE_CAP_RATIO; + } + + /** The same for an all-caps run, which the face sets 6% wide. */ + static double sizeForCaps(double capPx) { + return sizeForCap(capPx) * 0.94; + } + + /** + * Where to start a text box so its caps land {@code capPx} below the top of + * the block it shares a row with — a label beside a glyph, whose design + * position is its own baseline rather than the glyph's centre. + */ + static double capOffset(double capPx, double size) { + return Math.max(0, px(capPx) - TEXT_TOP_BEARING * size); + } + + /** What a text box hangs below its last cap: the rest of the line box. */ + static double bottomBearing(double size) { + return (LINE_BOX - TEXT_TOP_BEARING - FACE_CAP_RATIO) * size; + } + + /** + * A block gap read ink-to-ink on the design, turned into the margin the + * engine wants. Pass 0 for a neighbour that is not text — a rule, a disc, a + * table — which has no bearing to lose. + */ + static double blockGap(double inkGapPx, double sizeAbove, double sizeBelow) { + return Math.max(0, px(inkGapPx) + - (sizeAbove > 0 ? bottomBearing(sizeAbove) : 0) + - (sizeBelow > 0 ? TEXT_TOP_BEARING * sizeBelow : 0)); + } + + /** + * A measured top-to-top pitch turned into the gap the engine wants: the + * first box's own height comes off it, because spacing is between boxes. + */ + static double gap(double pitchPx, double sizeOfFirst) { + return Math.max(0, px(pitchPx) - LINE_BOX * sizeOfFirst); + } + + static DocumentTextStyle style(double size, DocumentColor color, + DocumentTextDecoration decoration) { + return DocumentTextStyle.builder() + .fontName(FACE) + .size(size) + .color(color) + .decoration(decoration) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceText.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceText.java new file mode 100644 index 000000000..5111f41aa --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceText.java @@ -0,0 +1,98 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import java.math.BigDecimal; +import java.text.NumberFormat; +import java.util.Currency; +import java.util.Locale; + +/** + * How the Workspace sheet writes its figures. + * + *

      The locale is stated, never inherited

      + * + *

      Both the grouping of a number and the symbol for a currency code are + * locale-dependent — {@code USD} is {@code $} in English and {@code US$} in the + * root locale, {@code JPY} is {@code ¥} or {@code JP¥} — so a preset that let + * the JVM's default locale decide would render a different sheet on a different + * machine, and its baselines would move with the machine rather than with the + * design. Both helpers below pin {@link Locale#ENGLISH}.

      + */ +final class WorkspaceText { + + private WorkspaceText() { + } + + /** An amount, grouped and always to two places. */ + static String money(BigDecimal value) { + NumberFormat format = NumberFormat.getNumberInstance(Locale.ENGLISH); + format.setGroupingUsed(true); + format.setMinimumFractionDigits(2); + format.setMaximumFractionDigits(2); + return format.format(value); + } + + /** A quantity, written without trailing zeros a whole number does not need. */ + static String quantity(BigDecimal value) { + BigDecimal stripped = value.stripTrailingZeros(); + return stripped.scale() <= 0 ? stripped.toBigInteger().toString() : stripped.toPlainString(); + } + + /** + * The symbol for an ISO currency code, or the code itself when there is no + * symbol for it and the empty string when a document states no currency. + * + * @param currencyCode the ISO code the figures are stated in + * @return what to print before an amount + */ + static String symbol(String currencyCode) { + if (currencyCode == null || currencyCode.isBlank()) { + return ""; + } + try { + return Currency.getInstance(currencyCode.trim()).getSymbol(Locale.ENGLISH); + } catch (IllegalArgumentException notACurrency) { + return currencyCode.trim(); + } + } + + /** + * An amount named by its currency code rather than its symbol — this design + * writes {@code USD 587.50} on the one figure it names at all. + * + * @param currencyCode the ISO code the figures are stated in + * @param value the amount + * @return the amount behind its code, or bare when no currency is stated + */ + static String coded(String currencyCode, BigDecimal value) { + return currencyCode == null || currencyCode.isBlank() + ? money(value) + : currencyCode.trim() + " " + money(value); + } + + /** + * A column label with the currency named after it, which is where this + * design states it for the figures under it. + * + * @param label the column's own words + * @param currencyCode the ISO code the figures are stated in + * @return the label, with the code in brackets when there is one + */ + static String labelWithCurrency(String label, String currencyCode) { + return currencyCode == null || currencyCode.isBlank() + ? label + : label + " (" + currencyCode.trim() + ")"; + } + + /** + * A quantity and what it counts, as the design writes them: one run, so the + * column stays centred on the pair rather than on the number. + * + * @param value the quantity + * @param unit what it counts; blank when the number stands alone + * @return the written quantity + */ + static String quantityWithUnit(BigDecimal value, String unit) { + String written = quantity(value); + return unit == null || unit.isBlank() ? written : written + " " + unit; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceWidgets.java new file mode 100644 index 000000000..7bb318b4b --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceWidgets.java @@ -0,0 +1,158 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.RowBuilder; +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.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; + +import java.util.List; +import java.util.function.Consumer; + +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.DISC_GLYPH; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ITEM_GLYPH; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ITEM_TILE_D; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.ITEM_TILE_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.TILE_COLOR; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.style; + +/** + * The pieces more than one part of the Workspace sheet draws: the wrapper every + * horizontal pair inside a cell goes through, the disc and the tile that own + * their glyphs, and the full-width rules that separate the closing blocks. + */ +final class WorkspaceWidgets { + + private WorkspaceWidgets() { + } + + /** + * A row that survives inside a row cell. + * + *

      A row nested directly in a row cell is refused by the layout compiler. + * Every horizontal pair that lives inside a cell in this preset goes through + * here, wrapped in a single layer of a stack.

      + * + * @param parent the section to add the row to + * @param name the node name, for review and rollback + * @param spec describes the row + */ + static void layeredRow(SectionBuilder parent, String name, Consumer spec) { + SectionBuilder holder = new SectionBuilder(); + holder.name(name + "Holder"); + holder.addRow(name, spec); + DocumentNode node = holder.build(); + parent.addLayerStack(stack -> stack + .name(name + "Layer") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** + * A filled disc that owns its glyph: the glyph is knocked out of the accent + * fill, so it is a child of the shape rather than a coloured circle with an + * icon dropped near it. + * + * @param token the packaged mark + * @return the disc node + */ + static DocumentNode disc(String token) { + return new ShapeContainerBuilder() + .name("Disc" + token) + .circle(DISC_D) + .fillColor(ACCENT) + .center(glyph(token, DISC_GLYPH)) + .build(); + } + + /** + * A line's mark on its coloured tile, or bare when the design gives that + * token no tile. + * + * @param token the packaged mark + * @return the tile node + */ + static DocumentNode tile(String token) { + DocumentColor fill = TILE_COLOR.get(token); + if (fill == null) { + return glyph(token, ITEM_TILE_D); + } + return new ShapeContainerBuilder() + .name("ItemTile" + token) + .roundedRect(ITEM_TILE_D, ITEM_TILE_D, ITEM_TILE_RADIUS) + .fillColor(fill) + .center(glyph(token, ITEM_GLYPH)) + .build(); + } + + /** A glyph centred in a box of its own, so a shape can own it. */ + static DocumentNode glyph(String token, double size) { + return glyph(token, size, HorizontalAlign.CENTER); + } + + /** + * The same, aligned. A glyph that leads a text row is left-aligned: its + * column's width is the distance to the text, not a box for the glyph to sit + * in the middle of. + * + * @param token the packaged mark + * @param size the glyph's box + * @param align where the glyph sits in it + * @return the glyph node + */ + static DocumentNode glyph(String token, double size, HorizontalAlign align) { + return new SectionBuilder() + .name("Glyph" + token) + .spacing(0) + .addSvgIcon(WorkspaceIcons.icon(token), size, align) + .build(); + } + + /** One method for all three full-width hairlines; the page uses two weights. */ + static void fullWidthRule(PageFlowBuilder page, String name, DocumentColor color, + double thickness, double gapAbove, double gapBelow) { + page.addLine(line -> line + .name(name) + .horizontal(CONTENT_W) + .thickness(thickness) + .color(color) + .margin(new DocumentInsets(gapAbove, 0, gapBelow, 0))); + } + + /** + * A block of plain lines, one paragraph each. + * + * @param block the section to fill + * @param prefix the node-name prefix, numbered from one + * @param lines the lines + * @param size their type size + * @param color their colour + */ + static void textLines(SectionBuilder block, String prefix, List lines, + double size, DocumentColor color) { + int index = 0; + for (String line : lines) { + String name = prefix + (++index); + block.addParagraph(p -> p + .name(name) + .text(line) + .textStyle(style(size, color, DocumentTextDecoration.DEFAULT))); + } + } + + /** Even weights for a row of {@code count} cells. */ + static double[] evenWeights(int count) { + double[] weights = new double[count]; + for (int i = 0; i < count; i++) { + weights[i] = 1.0 / count; + } + return weights; + } +} diff --git a/templates/src/main/resources/templates/invoice/workspace/icons/bank.svg b/templates/src/main/resources/templates/invoice/workspace/icons/bank.svg new file mode 100644 index 000000000..fbbc8fae9 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/workspace/icons/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/workspace/icons/bill-to.svg b/templates/src/main/resources/templates/invoice/workspace/icons/bill-to.svg new file mode 100644 index 000000000..a91fe98cf --- /dev/null +++ b/templates/src/main/resources/templates/invoice/workspace/icons/bill-to.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/workspace/icons/calendar.svg b/templates/src/main/resources/templates/invoice/workspace/icons/calendar.svg new file mode 100644 index 000000000..3233ebbb5 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/workspace/icons/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/workspace/icons/grid.svg b/templates/src/main/resources/templates/invoice/workspace/icons/grid.svg new file mode 100644 index 000000000..1e92b92da --- /dev/null +++ b/templates/src/main/resources/templates/invoice/workspace/icons/grid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/workspace/icons/info.svg b/templates/src/main/resources/templates/invoice/workspace/icons/info.svg new file mode 100644 index 000000000..b88a167fa --- /dev/null +++ b/templates/src/main/resources/templates/invoice/workspace/icons/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/workspace/icons/search.svg b/templates/src/main/resources/templates/invoice/workspace/icons/search.svg new file mode 100644 index 000000000..d685eadd9 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/workspace/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/workspace/icons/shield.svg b/templates/src/main/resources/templates/invoice/workspace/icons/shield.svg new file mode 100644 index 000000000..878df61a1 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/workspace/icons/shield.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/workspace/icons/ship-to.svg b/templates/src/main/resources/templates/invoice/workspace/icons/ship-to.svg new file mode 100644 index 000000000..924aa3b48 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/workspace/icons/ship-to.svg @@ -0,0 +1 @@ + \ No newline at end of file From 86823dac2877b21b66fbe89dc848533dcb82ac32 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Tue, 1 Sep 2026 10:08:42 +0100 Subject: [PATCH 30/85] chore(templates): bring the promotion branch up to develop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The branch was cut before develop gained the knowledge pack and before 2.3.0 shipped, so the integration PR was the first build to see both: the generated API surface is CI-gated like a lock file, and it did not know about the nine promoted presets or the fields the campaign added to the invoice and CV models. Four things follow from the merge, and none of them is a preset defect. The surface is regenerated. Only templates.json and templates.md move; the other five surfaces are unchanged. Every @since the campaign wrote said 2.2.3. That version never shipped — develop went 2.2.2 to 2.3.0 and is now on 2.4.0-SNAPSHOT — so the nine presets and the two model additions would have claimed a release they were never in. They now say 2.4.0. The campaign's changelog entries had been merged into the released 2.3.0 section. They are moved to a new 2.4.0 Planned heading, less the two entries that genuinely shipped in 2.3.0 and would otherwise appear twice. Four committed previews move because develop's engine renders them differently: the two invoices this campaign added and the two proposals it added earlier. Regenerated from a full install of this branch. --- CHANGELOG.md | 170 +- .../readme/examples/invoice-payments-v2.pdf | Bin 32646 -> 32645 bytes .../readme/examples/invoice-workspace-v2.pdf | Bin 30162 -> 30149 bytes .../readme/examples/proposal-editorial-v2.pdf | Bin 41501 -> 41473 bytes .../readme/examples/proposal-northline-v2.pdf | Bin 74590 -> 74570 bytes knowledge/api/templates.json | 6572 ++++++++++++++--- knowledge/api/templates.md | 406 +- .../document/templates/cv/data/CvEntry.java | 4 +- .../templates/cv/data/CvIdentity.java | 2 +- .../templates/cv/presets/MidnightNavy.java | 2 +- .../templates/cv/presets/OrangeOps.java | 2 +- .../templates/cv/presets/SlateOrange.java | 2 +- .../templates/cv/presets/TealPulse.java | 2 +- .../templates/cv/presets/TerracottaRail.java | 2 +- .../templates/cv/presets/VioletGrid.java | 2 +- .../invoice/presets/LumaStudioInvoice.java | 2 +- .../invoice/presets/PaymentsInvoice.java | 2 +- .../invoice/presets/WorkspaceInvoice.java | 2 +- 18 files changed, 6045 insertions(+), 1127 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aad8fcc3..5ae429217 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,83 +3,7 @@ All notable changes to GraphCompose are documented here. Versions follow semantic versioning; release dates are ISO 8601. -## v2.3.0 — 2026-08-31 - -### Public API - -- **A header or footer can name its font family.** `DocumentHeaderFooter.fontName(...)` - picks the family the zone is typeset in; the PDF and PPTX backends resolve it through - the document's own font library, the same way body text is resolved. Until now a zone - was drawn in standard-14 Helvetica and nothing else, so a footer outside WinAnsi — a - Cyrillic page counter, a Greek imprint — came out as a row of `?`. The default is - still `FontName.HELVETICA` and resolves to the same standard-14 face the zone drew - before, so an existing header or footer renders unchanged down to its placement. - Naming a family is the whole mechanism: there is no automatic fallback here any more - than there is in the body, so a code point the chosen family cannot encode is still - substituted with `?`. - -- **DOCX exports a page zone as a real Word footer.** The zone the PDF and PPTX backends - draw is now written into a `w:ftr` / `w:hdr` part, which is the first header/footer support - the DOCX exporter has had. The band's children become runs on one Word line: a paragraph - contributes its runs, a flex spacer becomes the right tab stop. Page numbers are the part - that could not simply be copied over — a semantic export hands the node tree to Word and - *Word* paginates, so a number written as text would be right on one page and wrong on the - rest. `PageContext.pageNumber()` and `pageTotal()` return a node instead of an `int`: - resolved text on a fixed-layout export, a live `PAGE` / `NUMPAGES` field in Word. The same - zone definition therefore serves both lanes, and the field's placeholder run carries the - node's text style, so a styled page number stays styled in Word rather than snapping to - the document default. Reading `PageContext.number()` on a semantic - export raises `UnsupportedOperationException` naming the alternative rather than returning - a plausible lie. Node kinds outside the mapped set are skipped and reported. A page - predicate (`appliesTo`) is fixed-layout capability — there is no page to test it against - when the definition is written — so a zone that carries one is exported to every page, - and the export logs what it could not honor. - -- **A page zone draws a node subtree instead of text slots.** `DocumentPageZone`, registered - through `document.chrome().zone(...)`, takes a content function called once per page with - that page's `PageContext` and returns any `DocumentNode`. The subtree is laid out against a - canvas the size of the band and spliced into the compiled layout graph, so every - fixed-layout backend draws it with no code of its own: a badge, a link annotation, an image, - a shape, a table, right-to-left text and any font the document has all work in a zone - because it is the body's machinery, not a second copy of it. Page numbers come from the - context — `page.number() + " / " + page.total()` — so the band needs no placeholder tokens, - and anything the tokens could not express (roman numerals, an offset, a different line on - the last page) is ordinary Java in the same lambda. A page reference inside a zone - resolves against the body's anchors, so a footer can say "appendix on page N" about - content it does not itself contain. `appliesTo(page -> ...)` decides which - pages carry the zone, which separates "is this page numbered" from "is the band drawn" — - the two that `DocumentPageNumbering` conflates. The predicate decides painting only: a - reserving zone's band comes out of every page's content area either way, so hiding the - zone on the cover does not reflow the cover. A zone reserves its height by default and - does not paginate: content that needs more than the band raises - `AtomicNodeTooLargeException` naming the zone and its height rather than being dropped — - whether the overflow is atomic (a row too tall for the band) or splittable (a paragraph - that would have continued onto a second band). `DocumentHeaderFooter` is unchanged and - unaffected. - -- **A header or footer can reserve its height from the content area.** - `DocumentHeaderFooter.reserveSpace(true)` insets the page's content area so the body - is never laid out into the band the zone paints. Until now `height` positioned the - zone's text and nothing else — it was never subtracted from the content area, so - whether a footer collided with the last line of body text was decided by whichever - page margin the author happened to pick. The content area is inset to the larger of - the margin and the zone's height, not their sum, so a zone that already fits inside - the margin reserves nothing and reflows nothing. `DocumentSession.availableHeight()` - (and `canvas().innerHeight()`, which it still aliases) report the reduced area, so a - composition that sizes itself against the page — `TimelineMinimal` splits its columns - this way — sees the space it actually has. Off by default: turning it on can add pages - to a document that was relying on the overlap. - -### Tests - -- **Header and footer placement is now guarded.** `ChromeGeometryGuardTest` pins the - rules a zone is drawn by — left slot flush to the left margin, right slot flush to the - right, centre slot centred between them, one baseline per zone at a fixed offset from - the zone's edge, repeated identically on every page — and records that a zone's - `height` reserves nothing from the content area. No template registers a header or - footer, so none of the committed visual baselines covered chrome: a change to how a - zone is positioned used to move text in every consumer's document while passing every - gate in the repository. +## v2.4.0 — Planned ### Public API @@ -627,12 +551,6 @@ follow semantic versioning; release dates are ISO 8601. phase-grid header-count contract), an exact two-page layout snapshot, and a pixel-parity gate; the examples showcase gains `proposal-northline-v2`. -- **Monogram Sidebar draws the employer.** Its experience entries rendered the position, - the date and the description, and never `CvEntry.subtitle()` — so every company name - was missing from the rendered CV while the education block, which does render its - subtitle, looked complete. The employer is now drawn between the position and the date, - in the shared theme entry-subtitle style. - ### Tests - **The sidebar CV samples are held to the width of the column they are drawn in.** @@ -647,6 +565,92 @@ follow semantic versioning; release dates are ISO 8601. a wrapped one close to twice that — and the two sample addresses were shortened to fit. +## v2.3.0 — 2026-08-31 + +### Public API + +- **A header or footer can name its font family.** `DocumentHeaderFooter.fontName(...)` + picks the family the zone is typeset in; the PDF and PPTX backends resolve it through + the document's own font library, the same way body text is resolved. Until now a zone + was drawn in standard-14 Helvetica and nothing else, so a footer outside WinAnsi — a + Cyrillic page counter, a Greek imprint — came out as a row of `?`. The default is + still `FontName.HELVETICA` and resolves to the same standard-14 face the zone drew + before, so an existing header or footer renders unchanged down to its placement. + Naming a family is the whole mechanism: there is no automatic fallback here any more + than there is in the body, so a code point the chosen family cannot encode is still + substituted with `?`. + +- **DOCX exports a page zone as a real Word footer.** The zone the PDF and PPTX backends + draw is now written into a `w:ftr` / `w:hdr` part, which is the first header/footer support + the DOCX exporter has had. The band's children become runs on one Word line: a paragraph + contributes its runs, a flex spacer becomes the right tab stop. Page numbers are the part + that could not simply be copied over — a semantic export hands the node tree to Word and + *Word* paginates, so a number written as text would be right on one page and wrong on the + rest. `PageContext.pageNumber()` and `pageTotal()` return a node instead of an `int`: + resolved text on a fixed-layout export, a live `PAGE` / `NUMPAGES` field in Word. The same + zone definition therefore serves both lanes, and the field's placeholder run carries the + node's text style, so a styled page number stays styled in Word rather than snapping to + the document default. Reading `PageContext.number()` on a semantic + export raises `UnsupportedOperationException` naming the alternative rather than returning + a plausible lie. Node kinds outside the mapped set are skipped and reported. A page + predicate (`appliesTo`) is fixed-layout capability — there is no page to test it against + when the definition is written — so a zone that carries one is exported to every page, + and the export logs what it could not honor. + +- **A page zone draws a node subtree instead of text slots.** `DocumentPageZone`, registered + through `document.chrome().zone(...)`, takes a content function called once per page with + that page's `PageContext` and returns any `DocumentNode`. The subtree is laid out against a + canvas the size of the band and spliced into the compiled layout graph, so every + fixed-layout backend draws it with no code of its own: a badge, a link annotation, an image, + a shape, a table, right-to-left text and any font the document has all work in a zone + because it is the body's machinery, not a second copy of it. Page numbers come from the + context — `page.number() + " / " + page.total()` — so the band needs no placeholder tokens, + and anything the tokens could not express (roman numerals, an offset, a different line on + the last page) is ordinary Java in the same lambda. A page reference inside a zone + resolves against the body's anchors, so a footer can say "appendix on page N" about + content it does not itself contain. `appliesTo(page -> ...)` decides which + pages carry the zone, which separates "is this page numbered" from "is the band drawn" — + the two that `DocumentPageNumbering` conflates. The predicate decides painting only: a + reserving zone's band comes out of every page's content area either way, so hiding the + zone on the cover does not reflow the cover. A zone reserves its height by default and + does not paginate: content that needs more than the band raises + `AtomicNodeTooLargeException` naming the zone and its height rather than being dropped — + whether the overflow is atomic (a row too tall for the band) or splittable (a paragraph + that would have continued onto a second band). `DocumentHeaderFooter` is unchanged and + unaffected. + +- **A header or footer can reserve its height from the content area.** + `DocumentHeaderFooter.reserveSpace(true)` insets the page's content area so the body + is never laid out into the band the zone paints. Until now `height` positioned the + zone's text and nothing else — it was never subtracted from the content area, so + whether a footer collided with the last line of body text was decided by whichever + page margin the author happened to pick. The content area is inset to the larger of + the margin and the zone's height, not their sum, so a zone that already fits inside + the margin reserves nothing and reflows nothing. `DocumentSession.availableHeight()` + (and `canvas().innerHeight()`, which it still aliases) report the reduced area, so a + composition that sizes itself against the page — `TimelineMinimal` splits its columns + this way — sees the space it actually has. Off by default: turning it on can add pages + to a document that was relying on the overlap. + +### Tests + +- **Header and footer placement is now guarded.** `ChromeGeometryGuardTest` pins the + rules a zone is drawn by — left slot flush to the left margin, right slot flush to the + right, centre slot centred between them, one baseline per zone at a fixed offset from + the zone's edge, repeated identically on every page — and records that a zone's + `height` reserves nothing from the content area. No template registers a header or + footer, so none of the committed visual baselines covered chrome: a change to how a + zone is positioned used to move text in every consumer's document while passing every + gate in the repository. + +### Templates + +- **Monogram Sidebar draws the employer.** Its experience entries rendered the position, + the date and the description, and never `CvEntry.subtitle()` — so every company name + was missing from the rendered CV while the education block, which does render its + subtitle, looked complete. The employer is now drawn between the position and the date, + in the shared theme entry-subtitle style. + ### Documentation - **The presets that cap content say so.** `MonogramSidebar`, `SidebarPortrait` and diff --git a/assets/readme/examples/invoice-payments-v2.pdf b/assets/readme/examples/invoice-payments-v2.pdf index ef189d1d948f938ab5e0476f90c314d47062cad8..6e98ee59e9d8199b5b6094002baf850edd837a7a 100644 GIT binary patch delta 2100 zcmbuAS5%V;0)+|1V1S_oG9pMw2xUZwsYHs@2!VvALt7;xks=9Is_^50LkLX_pp>Bt zt`s8>MG#P=NgpXOfU+i*tEiaR>(bBD2+BiI`;M(Y5Juy%2J5XEIxrGa*NTjl z)yF0J76&V-~0=sl$z?LAgYl1=lGO3d0$qAqHoogBfrG2k!uva3;in z2FIcQItc^F{-I&va4Z@FF*Sw!cZ3Wis&K)T8T5`Iw|{(hvW#tY>|oTYm=YNhH0HocyBf?ez6ekJoV;MqxsXA94`}K;7S%y z!}@x+7hqP}IR$)PvUtzlt!W90E$#gJx+Nb0csUfzH}2?D@@$_2gvqq0S3RI)hGa8c zO1;`zMiF{q2DV<`;$@%Ub4yrrCH5(}GF4Rl04BD7k7*Qtq)cQ72G052#|7nk4#VC{ zwXCn)?Q>i?P^BYuYs5K30&psn_Vls;{peVthwisIPOrgY`^NIt`O*ECAZpC#ek7f# zcB>kjxwq6o$@BlGJ*bXhMr0m3;C<_pEBCX?t87x1;fDnY|rGkuW$Nc-8VZy;lJ2y z9n2rh&uiO86XIVe#Gg5BS~v3an%l;@plPplT3L^;G%~aL&~GO0u`olA^WcebNllo9 zhLghBd0tfTT*^pk$nEIFLyy+{R#{D3y0x=E{H{^zx^zx=>}(EQilbZlF(~CvKFfV| zDLk^~)Lj=2EZgcyy*!~ZMzI>kQZQikniPcyiTcp8)X zOkB#DreEnkA8V-&cW!J7W`x4rN7C|!(o>H$=9fJiGf?hDy8cnNX|T$E(RfWYe$HXW zA@MHK$T6k2yw{w>i6Zaj0s4gyw>0;X^2dIU720xvLOiUTF%2~t4=fBnYgSqMtk`wX z{gP^t1*hB9F`SGHLFsbdT^Lhw3a3B}!E%OBtiJ07S>Tj{fI%uL zcvM-8sQ3gyM1E2v%Gw7ES`kUr_*6v1s-A0T)>_J{d1$up>Hh8k z!~r#=N-M5s|itq5mTp zJPwZL-j9?Q#bUV2af$#IgE2&7(0IHx-im}Zv@o|oTM!61yag6Z!r=|kmUse=Xk}@M zCS&pDC#~=&3D#sXhGa>w#+X}Jl1Zj;;1ih+N2t}G(S%g@!M4Om7ZB5}OeHmeO@^0g&zn`u>w9&3$01AO%*E(wkCX-_FZV6(xg)IleCl4V;PkfGx>zjCnR_14{TH@K!&U$Q delta 2065 zcmbuA`#%$m0>*9O-R7Q!yv>%&T+24I$=z&=S2j$-GS)Gf8o9hvE}PQaSq z=SAt?4X{127|YVn?;>f1$Th&NRpFYZlKp_(e|X#8^8K{2ODS(gJ(?MMAwT-bHeH11 zwFy*IX9#VNKsW*c==OTU5Fh|20+_6dz9O|nAmn?I5e3=~G1WH}B~hRvI|@PMmk4by zpgc4aT}k|}@iG;vi?u^Tto=`&U?HrjN1|v69Eddqfkpr9qRS_<K`se2g3XKw zazap{|8__(|EYd0!q>nBkfas2NMCG)TdW)swug`XKK#NP7Hp zev6#&0&~uSr6cDOl;1xnPUs2qcmUo8QUJMY0`|DMmLodcmLxp|;I!gM=I}Y#giZC_ zxDMBGLzMl2=$@O{+TQ9{n5wINY;f_)uNoBC0 zlFbjEo3iZ~>^#Q4G_D<|JYng}c$EtKw(kA%2jxbHhDV6&a^GpfbEsSL9chDAYk)_m zjZ%OljhnUdrf8xUb)B@Peun4FUhue5ew_U7A?C;vAW%w+iY2 za8#=DZi^>)aIT$ZGBG&4{&Mk{cp?_g<=d+!D^8|y1$FnnX-@V#jVz$9wxm5Dd7?vJ z>kv;xz()s}2k4`faY9j%dZn>SNzY`J$*OZ>dGC2#&vD?foPaLaVk*%lQ;Vb4p?v!{ zoxQ>BD))u#h%$Bxp~Uoa-N3!Mxw%iH)ZtfS?)-$ORMTI15=HYzaPboFDHmVIcf2S? za5C486z)gqjCdNpnj-Tm|6i=lVx^scu#`~`ZdLj{hiabq8LR5slFY`eqcHRJiM_N{B}aFhAB zYnDYL=QlSuGZ*H69Epq`7KbKVe2A+8awboF;^J20uYL(kA<5L-2W3-KNGveV#!|{oNyl{)L%l*#ny4CAY&tw=Dlcegu#E+$YPY zJ2wQ3Swh;Gbb6l_u?~gJM?SCjExuI39dmy`rP(pg|I=`z-#*Gn`%wWXCoarqgYLz! zgiI<9y=|*MMPh126oa6AB}U(VbV2i}g3`QWU&hYGasmP68NliBj5e~}m;g$;IkKGR zHfzy>Jt{;P{d&MW5xy=18MmYc4;Ws5p^F^N+`RnhP|Q+!D{sbk16K5&v0dY&zJZKA zHQOZdsmKbEy?w@Zp1?`}SUSf!47Cp zA|AC5kHHcNXd4omh{ur7STY7hCjJaCII;~IjUv0_P-rw3YeRO&;80|YEsBUI5^Ztr zZu{(<5sv>4!t6hckpEp%pdTv&VohTwu@JU6h_z>QIO`;Wj`}G?*Lc=^*pp7R9v>)C zaw;Np=zjW&kaHysW7UNQYvpVDLOBRODesKvFuS2})m8vWkgEbL8VQXRR$c21lG^Xs z5uyqwVT7cSdR8wiORMjESkBIcz_9Ec&nLoiVTKPqq*l(4r?z?x%rS3Dc_|Lk$QNFv c-7G;bDWJ_9-nK+@QS=GdmHc}{Q4C+_Z>MLeHUIzs diff --git a/assets/readme/examples/invoice-workspace-v2.pdf b/assets/readme/examples/invoice-workspace-v2.pdf index b12e2f8581bbe378f2d4711892dd275d6c843add..4e45afe8cc73aa78650d3eecbd346b647497a7cb 100644 GIT binary patch delta 1784 zcma)-X*8RO0){0R61B(HOw-R0Bf%tuEJb>V1f_OLHKsa}iqYoJ?H*>&wI{u-e1og{D}*+z~#lWVrv*HMG{!uVx4 z$XPWSTb7br!T#bjF@K5KFNZs0S|m(Q^`}!c+C!xGAU-L|#-Kc15vorXNS!ugIEC0{)(S-h(8=>2k2A4U)7X(I0lCs90KSQ@Ng;>9vs4DdHYMlBMREw z{OyqxxkH_;rit6kjt&>sP)NE?>!ainyF7;P(uC2 z=Lq(<{-q`**r*ReExR)tjYiO&7@6Iv0!?(joHdp^3XXp~4{)@#CH2J9dK?iv{5lNg_c?%vg&^-$W4cAmu1R%aPJ3Up)uVpyq?!q0bb5uWfEd3*Y1iW z?q-BP=jz{P8E!?-zjB28vP`~_ zwEF?!aLAs@I;tL+7SH0cqy>gZ{ zh+&(;`Q1#kNp);Nq;Jt|W75jrCy2tDPKz1 zwJk|gF;?@!fH!jHA^+7o2NNWS8Y)|HeZ#dc)4cGt;#^)Mbn(?0t`v;Jkj<7KMzzE* z)Sv?|M(6V84ay^H$5ukudPdsVH?j2U>5@_FI|@JNiwW2jZ;9dR^jxi6=x|np7(!?n zdjcH5VlH*wPWK#BxosreKbs*tHz_qZp;)~kaXrReqFtk6_PkYiM&`u^80Qp4ICV?x zJQKQSY@VcN9;NsCYDs>2VdeWt@=>?feq3mj%pvK^jg z-AXxk$HYhBMOoL&K!qcMxOhI|VpWMMChxC8j5Y~@&=B`O4wM}2yof?fioZ{xt=Xzj z`?%?DOr1o+weDYquT*lJA4ixBR>u=Ik#!1))Z8cK6@S&%QB)G2 z6Gq!#&1Qp_RGQI*Q11OFFfLOS@N*h)iJuT zM5Y_z4afvCflf0gkcbQhkw($i$6F97<^%(hKEa%3L8CKB=7uD^A&Fv0HX_sTGzN`C zU{Hbo7h(Fp8O;AG+TDr8hU1($Q7nL9c)T#chZO;M;*SF;AF9u4l1{iRBEAq^0;I%+ z$t55fpG!UpbK4Y=F02f8C&%4JzS-yh{^a{lDoXM+fUm1e>XtIf7$!Yx?sj_T!G5yQ z;Bc>W6ZPR{uA4{0p~}pN-I~s@M$_#X G@P7lMaUQ|| delta 1794 zcma)-Sv1>;0*9?dhzSz0i%ykbn#it{E0Gj!?OKUiVpluK9aQ}Zt)dHpj-`lEReS7O zw2Y;cR&Ax>8YwNsbQ_1Z!tJ^D`JQv%eox=|J$>KMrufvRcypn;?pyv=DF*bZT5y%9DqMFhSgVc(Q9=TPZoQzz zkPydnTXeR#l?W9sU-uJNpQ_T@j)*$Oy-bC1&8QS^V&0TeAXHjafb#hQUEEkSXt*g$3k7!+UHdtMN^ zNPvh65?D?i!n=MDDK7!rA7=*^WJ<~==lnW*6GCTfjZyb^Pf;4@Ha)fAAuHKWi&n-z zj<4ioNrhsv6h;T~^!1_AF6Z;oht2cy>LJHqX6`vNs}YFM8Z?9f0u|ok0K+4$vL0f_ zdRlxkiDGXp$(yQDus~kFF{E`|$2xzc$#{LDWPdBj*){p%#3pPFz_r2(G~~)ArPscT z*u=(FH0nKhSKlRxQ) z55k(OkE4XeSx#K4^2BTQ z1FIjk7XHNp##kZW6rUpxS+V&C+ZWx>ng88{D(M&+^Lad5$E0`CMZFIhZ98>$y1t!M z$e!J_00u^W|1PjP=_|K6bNhkRv+0sqCm(G#u(Nn)Dl;AbDssW(TJmUwQPzv1hxhP0 z(r$*;FIOd8mw3(>`)DHfJMvXx0;=gka-x%L*tjHuv_)Q zwA7S9bYY(ULqEFgU!G_q?Qv5VySF)Mc;^8-S?>n zft4~+QSTxnikazE^@JX?aEhm*QoLqXyWVTQs;JGa@U)AXxALz1tH4x?yqk+;a5$!sx$s>IH*LCIv;kb_{uv$22&J8@ZSJ^n3>r%zXUdPHr6-;v zYp&Xow`s~pjgeFNcCxn>o8(o#mKz#A9h^~?9GeHj|Wt7oR(Bxy*!;q#5i{T@Z0_C~rH#bK%MfU}Fy zm4PjeZEl*3qk1szR3U%nAXx1i^vp_(8=QP@5EcG1o=Z3P$H}Pz*YJfGSKBOEv#w9=E5Gs9B>Kb@kBV72Lt+#Ia)*Ss;&~L^ zL_c{?#wFut;St>t;dTDkicjzTdfp?n;B{0;`!>7Sd6(9ieJ*6LBKXFzG0;$>p#Pr= RHL<~R1T;urpXx{h{Tt5093lV! diff --git a/assets/readme/examples/proposal-editorial-v2.pdf b/assets/readme/examples/proposal-editorial-v2.pdf index 03baf9ce29e90be1a3e2abdfa1f2221bcc216852..6b9df97cb4f608fb70e91b882b7810cda6ac7609 100644 GIT binary patch delta 1801 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 PbCgU($jBJcj1m6^x(tuI diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index 447855dbf..e04d94f55 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,10 +22,10 @@ "graph-compose-testing:sources" ], "counts": { - "types": 161, - "methods": 953, - "constants": 117, - "generated": 402 + "types": 217, + "methods": 1221, + "constants": 164, + "generated": 644 }, "packages": [ { @@ -6735,6 +6735,92 @@ { "type": "String", "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "CvEntry", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "String", + "name": "subtitle" + }, + { + "type": "String", + "name": "date" + }, + { + "type": "String", + "name": "body" + }, + { + "type": "String", + "name": "place" + }, + { + "type": "String", + "name": "icon" + } + ] + }, + { + "kind": "constructor", + "name": "CvEntry", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "String", + "name": "subtitle" + }, + { + "type": "String", + "name": "date" + }, + { + "type": "String", + "name": "body" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CvEntry.Builder", + "params": [ + { + "type": "String", + "name": "title" } ] }, @@ -6773,6 +6859,151 @@ "typeParameters": null, "returns": "String", "params": [] + }, + { + "kind": "method", + "name": "place", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "CvEntry.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvEntry$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "subtitle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvEntry.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "date", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvEntry.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "body", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvEntry.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "body", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvEntry.Builder", + "params": [ + { + "type": "List", + "name": "lines" + } + ] + }, + { + "kind": "method", + "name": "place", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvEntry.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvEntry.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvEntry.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvEntry", + "params": [] } ] }, @@ -6808,6 +7039,36 @@ { "type": "List", "name": null + }, + { + "type": "Optional", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "CvIdentity", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "CvName", + "name": "name" + }, + { + "type": "String", + "name": "jobTitle" + }, + { + "type": "Contact", + "name": "contact" + }, + { + "type": "List", + "name": "links" } ] }, @@ -6895,6 +7156,15 @@ "typeParameters": null, "returns": "List", "params": [] + }, + { + "kind": "method", + "name": "portrait", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Optional", + "params": [] } ] }, @@ -7045,16 +7315,30 @@ }, { "kind": "method", - "name": "build", + "name": "portrait", "static": false, "origin": "source", "typeParameters": null, - "returns": "CvIdentity", - "params": [] - } - ] - }, - { + "returns": "CvIdentity.Builder", + "params": [ + { + "type": "DocumentImageData", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity", + "params": [] + } + ] + }, + { "name": "CvName", "binaryName": "com.demcha.compose.document.templates.cv.data.CvName", "kind": "record", @@ -7239,6 +7523,42 @@ { "type": "OptionalDouble", "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "CvSkill", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "OptionalDouble", + "name": "level" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CvSkill", + "params": [ + { + "type": "String", + "name": "name" } ] }, @@ -7253,6 +7573,10 @@ { "type": "String", "name": "name" + }, + { + "type": "double", + "name": "level" } ] }, @@ -7271,6 +7595,10 @@ { "type": "double", "name": "level" + }, + { + "type": "String", + "name": "note" } ] }, @@ -7291,6 +7619,15 @@ "typeParameters": null, "returns": "OptionalDouble", "params": [] + }, + { + "kind": "method", + "name": "note", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] } ] }, @@ -8094,6 +8431,47 @@ } ] }, + { + "name": "CharcoalGold", + "binaryName": "com.demcha.compose.document.templates.cv.presets.CharcoalGold", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "ClassicSerif", "binaryName": "com.demcha.compose.document.templates.cv.presets.ClassicSerif", @@ -8369,6 +8747,40 @@ } ] }, + { + "name": "MidnightNavy", + "binaryName": "com.demcha.compose.document.templates.cv.presets.MidnightNavy", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "MinimalUnderlined", "binaryName": "com.demcha.compose.document.templates.cv.presets.MinimalUnderlined", @@ -8973,6 +9385,47 @@ } ] }, + { + "name": "NavySidebar", + "binaryName": "com.demcha.compose.document.templates.cv.presets.NavySidebar", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "NordicClean", "binaryName": "com.demcha.compose.document.templates.cv.presets.NordicClean", @@ -9239,8 +9692,8 @@ ] }, { - "name": "Panel", - "binaryName": "com.demcha.compose.document.templates.cv.presets.Panel", + "name": "OrangeOps", + "binaryName": "com.demcha.compose.document.templates.cv.presets.OrangeOps", "kind": "class", "modifiers": [ "final" @@ -9263,10 +9716,10 @@ }, { "kind": "constant", - "name": "RECOMMENDED_MARGIN", + "name": "DISPLAY_FONT", "static": true, "origin": "generated", - "type": "double" + "type": "FontName" }, { "kind": "method", @@ -9276,26 +9729,12 @@ "typeParameters": null, "returns": "DocumentTemplate", "params": [] - }, - { - "kind": "method", - "name": "create", - "static": true, - "origin": "source", - "typeParameters": null, - "returns": "DocumentTemplate", - "params": [ - { - "type": "BrandTheme", - "name": "theme" - } - ] } ] }, { - "name": "SidebarPortrait", - "binaryName": "com.demcha.compose.document.templates.cv.presets.SidebarPortrait", + "name": "Panel", + "binaryName": "com.demcha.compose.document.templates.cv.presets.Panel", "kind": "class", "modifiers": [ "final" @@ -9345,6 +9784,38 @@ "name": "theme" } ] + } + ] + }, + { + "name": "ProfessionalSidebar", + "binaryName": "com.demcha.compose.document.templates.cv.presets.ProfessionalSidebar", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" }, { "kind": "method", @@ -9353,32 +9824,137 @@ "origin": "source", "typeParameters": null, "returns": "DocumentTemplate", - "params": [ - { - "type": "BrandTheme", - "name": "theme" - }, - { - "type": "SidebarPortrait.Options", - "name": "options" - } - ] + "params": [] } ] }, { - "name": "SidebarPortrait.Options", - "binaryName": "com.demcha.compose.document.templates.cv.presets.SidebarPortrait$Options", - "kind": "record", + "name": "SerifHeadline", + "binaryName": "com.demcha.compose.document.templates.cv.presets.SerifHeadline", + "kind": "class", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "constructor", - "name": "Options", - "static": false, + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "SidebarPortrait", + "binaryName": "com.demcha.compose.document.templates.cv.presets.SidebarPortrait", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "SidebarPortrait.Options", + "name": "options" + } + ] + } + ] + }, + { + "name": "SidebarPortrait.Options", + "binaryName": "com.demcha.compose.document.templates.cv.presets.SidebarPortrait$Options", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Options", + "static": false, "origin": "generated", "typeParameters": null, "returns": null, @@ -9506,6 +10082,115 @@ } ] }, + { + "name": "SlateOrange", + "binaryName": "com.demcha.compose.document.templates.cv.presets.SlateOrange", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "TealPulse", + "binaryName": "com.demcha.compose.document.templates.cv.presets.TealPulse", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "TerracottaRail", + "binaryName": "com.demcha.compose.document.templates.cv.presets.TerracottaRail", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "TimelineMinimal", "binaryName": "com.demcha.compose.document.templates.cv.presets.TimelineMinimal", @@ -9560,6 +10245,40 @@ ] } ] + }, + { + "name": "VioletGrid", + "binaryName": "com.demcha.compose.document.templates.cv.presets.VioletGrid", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] } ] }, @@ -10825,8 +11544,8 @@ "name": "com.demcha.compose.document.templates.data.invoice", "types": [ { - "name": "InvoiceData", - "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceData", + "name": "InvoiceBrand", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceBrand", "kind": "record", "modifiers": [ "final" @@ -10835,14 +11554,14 @@ "members": [ { "kind": "constructor", - "name": "InvoiceData", + "name": "InvoiceBrand", "static": false, "origin": "generated", "typeParameters": null, "returns": null, "params": [ { - "type": "String", + "type": "DocumentImageData", "name": null }, { @@ -10864,49 +11583,65 @@ { "type": "String", "name": null - }, - { - "type": "InvoiceParty", - "name": null - }, - { - "type": "InvoiceParty", - "name": null - }, - { - "type": "List", - "name": null - }, + } + ] + }, + { + "kind": "constructor", + "name": "InvoiceBrand", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ { - "type": "List", - "name": null + "type": "DocumentImageData", + "name": "logo" }, { - "type": "List", - "name": null + "type": "String", + "name": "name" }, { - "type": "List", - "name": null + "type": "String", + "name": "qualifier" }, { "type": "String", - "name": null + "name": "tagline" } ] }, { "kind": "method", - "name": "builder", - "static": true, + "name": "hasMonogram", + "static": false, "origin": "source", "typeParameters": null, - "returns": "InvoiceData.Builder", + "returns": "boolean", "params": [] }, { "kind": "method", - "name": "title", + "name": "hasLogo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "logo", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentImageData", + "params": [] + }, + { + "kind": "method", + "name": "name", "static": false, "origin": "generated", "typeParameters": null, @@ -10915,7 +11650,7 @@ }, { "kind": "method", - "name": "invoiceNumber", + "name": "qualifier", "static": false, "origin": "generated", "typeParameters": null, @@ -10924,7 +11659,7 @@ }, { "kind": "method", - "name": "issueDate", + "name": "tagline", "static": false, "origin": "generated", "typeParameters": null, @@ -10933,7 +11668,7 @@ }, { "kind": "method", - "name": "dueDate", + "name": "monogramTop", "static": false, "origin": "generated", "typeParameters": null, @@ -10942,16 +11677,111 @@ }, { "kind": "method", - "name": "reference", + "name": "monogramBottom", "static": false, "origin": "generated", "typeParameters": null, "returns": "String", "params": [] + } + ] + }, + { + "name": "InvoiceContactBlock", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceContactBlock", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "InvoiceContactBlock", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "legalName" + }, + { + "type": "List", + "name": "addressLines" + }, + { + "type": "String", + "name": "phone" + }, + { + "type": "String", + "name": "email" + }, + { + "type": "String", + "name": "website" + }, + { + "type": "String", + "name": "registrationLabel" + }, + { + "type": "String", + "name": "registrationNumber" + } + ] }, { "kind": "method", - "name": "status", + "name": "legalName", "static": false, "origin": "generated", "typeParameters": null, @@ -10960,61 +11790,70 @@ }, { "kind": "method", - "name": "fromParty", + "name": "addressLines", "static": false, "origin": "generated", "typeParameters": null, - "returns": "InvoiceParty", + "returns": "List", "params": [] }, { "kind": "method", - "name": "billToParty", + "name": "phone", "static": false, "origin": "generated", "typeParameters": null, - "returns": "InvoiceParty", + "returns": "String", "params": [] }, { "kind": "method", - "name": "lineItems", + "name": "email", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "String", "params": [] }, { "kind": "method", - "name": "summaryRows", + "name": "website", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "String", "params": [] }, { "kind": "method", - "name": "notes", + "name": "registrationLabel", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "String", "params": [] }, { "kind": "method", - "name": "paymentTerms", + "name": "registrationNumber", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "String", "params": [] }, { "kind": "method", - "name": "footerNote", + "name": "taxRegistrationLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "taxRegistrationNumber", "static": false, "origin": "generated", "typeParameters": null, @@ -11024,45 +11863,244 @@ ] }, { - "name": "InvoiceData.Builder", - "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceData$Builder", - "kind": "class", + "name": "InvoiceData", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceData", + "kind": "record", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "method", - "name": "title", + "kind": "constructor", + "name": "InvoiceData", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "InvoiceData.Builder", + "returns": null, "params": [ { "type": "String", - "name": "title" + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "InvoiceParty", + "name": null + }, + { + "type": "InvoiceParty", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null } ] }, { "kind": "method", - "name": "invoiceNumber", - "static": false, + "name": "builder", + "static": true, "origin": "source", "typeParameters": null, "returns": "InvoiceData.Builder", - "params": [ - { - "type": "String", - "name": "invoiceNumber" - } - ] + "params": [] }, { "kind": "method", - "name": "issueDate", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "invoiceNumber", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "issueDate", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "dueDate", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "reference", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "status", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "fromParty", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceParty", + "params": [] + }, + { + "kind": "method", + "name": "billToParty", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceParty", + "params": [] + }, + { + "kind": "method", + "name": "lineItems", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "summaryRows", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "notes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "paymentTerms", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "InvoiceData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceData$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "invoiceNumber", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "invoiceNumber" + } + ] + }, + { + "kind": "method", + "name": "issueDate", "static": false, "origin": "source", "typeParameters": null, @@ -12026,8 +13064,8 @@ ] }, { - "name": "InvoiceParty", - "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceParty", + "name": "InvoiceMasthead", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceMasthead", "kind": "record", "modifiers": [ "final" @@ -12036,7 +13074,7 @@ "members": [ { "kind": "constructor", - "name": "InvoiceParty", + "name": "InvoiceMasthead", "static": false, "origin": "generated", "typeParameters": null, @@ -12047,53 +13085,65 @@ "name": null }, { - "type": "List", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "String", + "type": "List", "name": null } ] }, { "kind": "method", - "name": "builder", - "static": true, - "origin": "source", + "name": "title", + "static": false, + "origin": "generated", "typeParameters": null, - "returns": "InvoiceParty.Builder", + "returns": "String", "params": [] }, { "kind": "method", - "name": "name", + "name": "entries", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "List", "params": [] - }, + } + ] + }, + { + "name": "InvoiceMasthead.Entry", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceMasthead$Entry", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { - "kind": "method", - "name": "addressLines", + "kind": "constructor", + "name": "Entry", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", - "params": [] + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] }, { "kind": "method", - "name": "email", + "name": "label", "static": false, "origin": "generated", "typeParameters": null, @@ -12102,7 +13152,7 @@ }, { "kind": "method", - "name": "phone", + "name": "value", "static": false, "origin": "generated", "typeParameters": null, @@ -12111,136 +13161,91 @@ }, { "kind": "method", - "name": "taxId", + "name": "emphasized", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "boolean", "params": [] } ] }, { - "name": "InvoiceParty.Builder", - "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceParty$Builder", - "kind": "class", + "name": "InvoiceNotesBlock", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock", + "kind": "record", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "method", - "name": "name", + "kind": "constructor", + "name": "InvoiceNotesBlock", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "InvoiceParty.Builder", + "returns": null, "params": [ { "type": "String", - "name": "name" + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null } ] }, { "kind": "method", - "name": "addressLines", + "name": "heading", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "InvoiceParty.Builder", - "params": [ - { - "type": "List", - "name": "addressLines" - } - ] - }, - { - "kind": "method", - "name": "addressLines", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "InvoiceParty.Builder", - "params": [ - { - "type": "String...", - "name": "addressLines" - } - ] - }, - { - "kind": "method", - "name": "addAddressLine", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "InvoiceParty.Builder", - "params": [ - { - "type": "String", - "name": "addressLine" - } - ] - }, - { - "kind": "method", - "name": "email", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "InvoiceParty.Builder", - "params": [ - { - "type": "String", - "name": "email" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "phone", + "name": "paragraphs", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "InvoiceParty.Builder", - "params": [ - { - "type": "String", - "name": "phone" - } - ] + "returns": "List", + "params": [] }, { "kind": "method", - "name": "taxId", + "name": "contactEmail", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "InvoiceParty.Builder", - "params": [ - { - "type": "String", - "name": "taxId" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "build", + "name": "contactPhone", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "InvoiceParty", + "returns": "String", "params": [] } ] }, { - "name": "InvoiceSummaryRow", - "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceSummaryRow", + "name": "InvoiceParty", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceParty", "kind": "record", "modifiers": [ "final" @@ -12249,7 +13254,7 @@ "members": [ { "kind": "constructor", - "name": "InvoiceSummaryRow", + "name": "InvoiceParty", "static": false, "origin": "generated", "typeParameters": null, @@ -12259,12 +13264,20 @@ "type": "String", "name": null }, + { + "type": "List", + "name": null + }, { "type": "String", "name": null }, { - "type": "boolean", + "type": "String", + "name": null + }, + { + "type": "String", "name": null } ] @@ -12275,12 +13288,12 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "InvoiceSummaryRow.Builder", + "returns": "InvoiceParty.Builder", "params": [] }, { "kind": "method", - "name": "label", + "name": "name", "static": false, "origin": "generated", "typeParameters": null, @@ -12289,7 +13302,16 @@ }, { "kind": "method", - "name": "value", + "name": "addressLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "email", "static": false, "origin": "generated", "typeParameters": null, @@ -12298,18 +13320,27 @@ }, { "kind": "method", - "name": "emphasized", + "name": "phone", "static": false, "origin": "generated", "typeParameters": null, - "returns": "boolean", + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "taxId", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", "params": [] } ] }, { - "name": "InvoiceSummaryRow.Builder", - "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceSummaryRow$Builder", + "name": "InvoiceParty.Builder", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceParty$Builder", "kind": "class", "modifiers": [ "final" @@ -12318,43 +13349,99 @@ "members": [ { "kind": "method", - "name": "label", + "name": "name", "static": false, "origin": "source", "typeParameters": null, - "returns": "InvoiceSummaryRow.Builder", + "returns": "InvoiceParty.Builder", "params": [ { "type": "String", - "name": "label" + "name": "name" } ] }, { "kind": "method", - "name": "value", + "name": "addressLines", "static": false, "origin": "source", "typeParameters": null, - "returns": "InvoiceSummaryRow.Builder", + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "List", + "name": "addressLines" + } + ] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "String...", + "name": "addressLines" + } + ] + }, + { + "kind": "method", + "name": "addAddressLine", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", "params": [ { "type": "String", - "name": "value" + "name": "addressLine" } ] }, { "kind": "method", - "name": "emphasized", + "name": "email", "static": false, "origin": "source", "typeParameters": null, - "returns": "InvoiceSummaryRow.Builder", + "returns": "InvoiceParty.Builder", "params": [ { - "type": "boolean", - "name": "emphasized" + "type": "String", + "name": "email" + } + ] + }, + { + "kind": "method", + "name": "phone", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "String", + "name": "phone" + } + ] + }, + { + "kind": "method", + "name": "taxId", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "String", + "name": "taxId" } ] }, @@ -12364,19 +13451,14 @@ "static": false, "origin": "source", "typeParameters": null, - "returns": "InvoiceSummaryRow", + "returns": "InvoiceParty", "params": [] } ] - } - ] - }, - { - "name": "com.demcha.compose.document.templates.data.proposal", - "types": [ + }, { - "name": "ProposalData", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalData", + "name": "InvoicePaymentBlock", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock", "kind": "record", "modifiers": [ "final" @@ -12385,7 +13467,7 @@ "members": [ { "kind": "constructor", - "name": "ProposalData", + "name": "InvoicePaymentBlock", "static": false, "origin": "generated", "typeParameters": null, @@ -12396,7 +13478,7 @@ "name": null }, { - "type": "String", + "type": "List", "name": null }, { @@ -12416,56 +13498,62 @@ "name": null }, { - "type": "ProposalParty", - "name": null - }, - { - "type": "ProposalParty", + "type": "String", "name": null - }, + } + ] + }, + { + "kind": "constructor", + "name": "InvoicePaymentBlock", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ { - "type": "List", - "name": null + "type": "String", + "name": "heading" }, { - "type": "List", - "name": null + "type": "List", + "name": "fields" }, { - "type": "List", - "name": null + "type": "String", + "name": "instruction" }, { - "type": "List", - "name": null + "type": "String", + "name": "dueNotice" }, { "type": "String", - "name": null + "name": "dueNoticeEmphasis" } ] }, { "kind": "method", - "name": "builder", - "static": true, - "origin": "source", + "name": "heading", + "static": false, + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "String", "params": [] }, { "kind": "method", - "name": "title", + "name": "fields", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "List", "params": [] }, { "kind": "method", - "name": "proposalNumber", + "name": "instruction", "static": false, "origin": "generated", "typeParameters": null, @@ -12474,7 +13562,7 @@ }, { "kind": "method", - "name": "preparedDate", + "name": "dueNotice", "static": false, "origin": "generated", "typeParameters": null, @@ -12483,7 +13571,7 @@ }, { "kind": "method", - "name": "validUntil", + "name": "dueNoticeEmphasis", "static": false, "origin": "generated", "typeParameters": null, @@ -12492,7 +13580,7 @@ }, { "kind": "method", - "name": "projectTitle", + "name": "accountHolder", "static": false, "origin": "generated", "typeParameters": null, @@ -12501,70 +13589,3066 @@ }, { "kind": "method", - "name": "executiveSummary", + "name": "signOff", "static": false, "origin": "generated", "typeParameters": null, "returns": "String", "params": [] - }, + } + ] + }, + { + "name": "InvoicePaymentBlock.Field", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock$Field", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Field", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "value", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "InvoiceRecipient", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceRecipient", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceRecipient", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "InvoiceRecipient", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "heading" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "subline" + }, + { + "type": "List", + "name": "addressLines" + }, + { + "type": "String", + "name": "emailLabel" + }, + { + "type": "String", + "name": "email" + } + ] + }, + { + "kind": "method", + "name": "hasRegistration", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "heading", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "subline", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "emailLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "email", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "registrationLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "registrationNumber", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "InvoiceServiceLines", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceServiceLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "InvoiceServiceLines.Columns", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "columns", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceServiceLines.Columns", + "params": [] + }, + { + "kind": "method", + "name": "lines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "InvoiceServiceLines.Columns", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines$Columns", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Columns", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "Columns", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "index" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "servicePeriod" + }, + { + "type": "String", + "name": "quantity" + }, + { + "type": "String", + "name": "unitPrice" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "index", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "description", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "servicePeriod", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "quantity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "unitPrice", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "amount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "vat", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "InvoiceServiceLines.Line", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines$Line", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Line", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "int", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "BigDecimal", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "BigDecimal", + "name": null + }, + { + "type": "BigDecimal", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "Line", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "int", + "name": "lineNumber" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "servicePeriod" + }, + { + "type": "BigDecimal", + "name": "quantity" + }, + { + "type": "String", + "name": "unit" + }, + { + "type": "BigDecimal", + "name": "unitPrice" + }, + { + "type": "BigDecimal", + "name": "amount" + }, + { + "type": "String", + "name": "vatRate" + } + ] + }, + { + "kind": "constructor", + "name": "Line", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "int", + "name": "lineNumber" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "servicePeriod" + }, + { + "type": "BigDecimal", + "name": "quantity" + }, + { + "type": "String", + "name": "unit" + }, + { + "type": "BigDecimal", + "name": "unitPrice" + }, + { + "type": "BigDecimal", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "lineNumber", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "description", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "servicePeriod", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "quantity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "BigDecimal", + "params": [] + }, + { + "kind": "method", + "name": "unit", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "unitPrice", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "BigDecimal", + "params": [] + }, + { + "kind": "method", + "name": "amount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "BigDecimal", + "params": [] + }, + { + "kind": "method", + "name": "vatRate", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "InvoiceSummaryBlock", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceSummaryBlock", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceSummaryBlock", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "heading", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "intro", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "servicePeriod", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "InvoiceSummaryRow", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceSummaryRow", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceSummaryRow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceSummaryRow.Builder", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "value", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "emphasized", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "InvoiceSummaryRow.Builder", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceSummaryRow$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "label", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceSummaryRow.Builder", + "params": [ + { + "type": "String", + "name": "label" + } + ] + }, + { + "kind": "method", + "name": "value", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceSummaryRow.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "emphasized", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceSummaryRow.Builder", + "params": [ + { + "type": "boolean", + "name": "emphasized" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceSummaryRow", + "params": [] + } + ] + }, + { + "name": "InvoiceTotalsBlock", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceTotalsBlock", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "BigDecimal", + "name": null + } + ] + }, + { + "kind": "method", + "name": "rows", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "totalLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "totalAmount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "BigDecimal", + "params": [] + } + ] + }, + { + "name": "InvoiceTotalsBlock.Row", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock$Row", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Row", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "BigDecimal", + "name": null + } + ] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "amount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "BigDecimal", + "params": [] + } + ] + }, + { + "name": "StructuredInvoiceData", + "binaryName": "com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "StructuredInvoiceData", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "InvoiceBrand", + "name": null + }, + { + "type": "InvoiceContactBlock", + "name": null + }, + { + "type": "InvoiceMasthead", + "name": null + }, + { + "type": "InvoiceRecipient", + "name": null + }, + { + "type": "InvoiceRecipient", + "name": null + }, + { + "type": "InvoiceSummaryBlock", + "name": null + }, + { + "type": "InvoiceServiceLines", + "name": null + }, + { + "type": "InvoiceTotalsBlock", + "name": null + }, + { + "type": "InvoicePaymentBlock", + "name": null + }, + { + "type": "InvoiceNotesBlock", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "StructuredInvoiceData", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "InvoiceBrand", + "name": "brand" + }, + { + "type": "InvoiceContactBlock", + "name": "supplier" + }, + { + "type": "InvoiceMasthead", + "name": "masthead" + }, + { + "type": "InvoiceRecipient", + "name": "billTo" + }, + { + "type": "InvoiceSummaryBlock", + "name": "summary" + }, + { + "type": "InvoiceServiceLines", + "name": "serviceLines" + }, + { + "type": "InvoiceTotalsBlock", + "name": "totals" + }, + { + "type": "InvoicePaymentBlock", + "name": "payment" + }, + { + "type": "InvoiceNotesBlock", + "name": "notes" + }, + { + "type": "String", + "name": "currencyCode" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [] + }, + { + "kind": "method", + "name": "brand", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceBrand", + "params": [] + }, + { + "kind": "method", + "name": "supplier", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceContactBlock", + "params": [] + }, + { + "kind": "method", + "name": "masthead", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceMasthead", + "params": [] + }, + { + "kind": "method", + "name": "billTo", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceRecipient", + "params": [] + }, + { + "kind": "method", + "name": "shipTo", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceRecipient", + "params": [] + }, + { + "kind": "method", + "name": "summary", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceSummaryBlock", + "params": [] + }, + { + "kind": "method", + "name": "serviceLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceServiceLines", + "params": [] + }, + { + "kind": "method", + "name": "totals", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceTotalsBlock", + "params": [] + }, + { + "kind": "method", + "name": "payment", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoicePaymentBlock", + "params": [] + }, + { + "kind": "method", + "name": "notes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceNotesBlock", + "params": [] + }, + { + "kind": "method", + "name": "currencyCode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "StructuredInvoiceData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "brand", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "InvoiceBrand", + "name": "brand" + } + ] + }, + { + "kind": "method", + "name": "supplier", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "InvoiceContactBlock", + "name": "supplier" + } + ] + }, + { + "kind": "method", + "name": "masthead", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "InvoiceMasthead", + "name": "masthead" + } + ] + }, + { + "kind": "method", + "name": "billTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "InvoiceRecipient", + "name": "billTo" + } + ] + }, + { + "kind": "method", + "name": "shipTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "InvoiceRecipient", + "name": "shipTo" + } + ] + }, + { + "kind": "method", + "name": "summary", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "InvoiceSummaryBlock", + "name": "summary" + } + ] + }, + { + "kind": "method", + "name": "serviceLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "InvoiceServiceLines", + "name": "serviceLines" + } + ] + }, + { + "kind": "method", + "name": "totals", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "InvoiceTotalsBlock", + "name": "totals" + } + ] + }, + { + "kind": "method", + "name": "payment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "InvoicePaymentBlock", + "name": "payment" + } + ] + }, + { + "kind": "method", + "name": "notes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "InvoiceNotesBlock", + "name": "notes" + } + ] + }, + { + "kind": "method", + "name": "currencyCode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "currencyCode" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceData", + "params": [] + } + ] + }, + { + "name": "StructuredInvoiceDocumentSpec", + "binaryName": "com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "StructuredInvoiceDocumentSpec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "StructuredInvoiceData", + "name": null + } + ] + }, + { + "kind": "method", + "name": "from", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "StructuredInvoiceDocumentSpec", + "params": [ + { + "type": "StructuredInvoiceData", + "name": "invoice" + } + ] + }, + { + "kind": "method", + "name": "invoice", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "StructuredInvoiceData", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.data.proposal", + "types": [ + { + "name": "ProposalAcceptance", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalAcceptance", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalAcceptance", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "heading", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "statement", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "fields", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ProposalBrand", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalBrand", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalBrand", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "monogram", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "nameLine1", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "nameLine2", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "documentLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "website", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "footerName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalData", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalData", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalData", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "ProposalParty", + "name": null + }, + { + "type": "ProposalParty", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "proposalNumber", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "preparedDate", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "validUntil", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "projectTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "executiveSummary", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "sender", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ProposalParty", + "params": [] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ProposalParty", + "params": [] + }, + { + "kind": "method", + "name": "sections", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "timeline", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "pricingRows", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "acceptanceTerms", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalData$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "proposalNumber", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "proposalNumber" + } + ] + }, + { + "kind": "method", + "name": "preparedDate", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "preparedDate" + } + ] + }, + { + "kind": "method", + "name": "validUntil", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "validUntil" + } + ] + }, + { + "kind": "method", + "name": "projectTitle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "projectTitle" + } + ] + }, + { + "kind": "method", + "name": "executiveSummary", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "executiveSummary" + } + ] + }, + { + "kind": "method", + "name": "sender", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "ProposalParty", + "name": "sender" + } + ] + }, + { + "kind": "method", + "name": "sender", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "ProposalParty", + "name": "recipient" + } + ] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "sections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "List", + "name": "sections" + } + ] + }, + { + "kind": "method", + "name": "addSection", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "ProposalSection", + "name": "section" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "String...", + "name": "paragraphs" + } + ] + }, + { + "kind": "method", + "name": "timeline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "List", + "name": "timeline" + } + ] + }, + { + "kind": "method", + "name": "addTimelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "ProposalTimelineItem", + "name": "item" + } + ] + }, + { + "kind": "method", + "name": "timelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "timelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "phase" + }, + { + "type": "String", + "name": "duration" + }, + { + "type": "String", + "name": "details" + } + ] + }, + { + "kind": "method", + "name": "pricingRows", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "List", + "name": "pricingRows" + } + ] + }, + { + "kind": "method", + "name": "addPricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "ProposalPricingRow", + "name": "pricingRow" + } + ] + }, + { + "kind": "method", + "name": "pricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "pricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "emphasizedPricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "acceptanceTerms", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "List", + "name": "acceptanceTerms" + } + ] + }, + { + "kind": "method", + "name": "acceptanceTerm", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "acceptanceTerm" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData", + "params": [] + } + ] + }, + { + "name": "ProposalDeliverables", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalDeliverables", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalDeliverables", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "heading", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "leftColumn", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "rightColumn", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ProposalDocumentSpec", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalDocumentSpec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ProposalData", + "name": null + } + ] + }, + { + "kind": "method", + "name": "from", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec", + "params": [ + { + "type": "ProposalData", + "name": "proposal" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [] + }, + { + "kind": "method", + "name": "proposal", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ProposalData", + "params": [] + } + ] + }, + { + "name": "ProposalDocumentSpec.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "proposalNumber", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "proposalNumber" + } + ] + }, + { + "kind": "method", + "name": "preparedDate", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "preparedDate" + } + ] + }, + { + "kind": "method", + "name": "validUntil", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "validUntil" + } + ] + }, + { + "kind": "method", + "name": "projectTitle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "projectTitle" + } + ] + }, + { + "kind": "method", + "name": "executiveSummary", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "executiveSummary" + } + ] + }, + { + "kind": "method", + "name": "sender", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "ProposalParty", + "name": "sender" + } + ] + }, + { + "kind": "method", + "name": "sender", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "ProposalParty", + "name": "recipient" + } + ] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "sections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "sections" + } + ] + }, + { + "kind": "method", + "name": "addSection", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "ProposalSection", + "name": "section" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "String...", + "name": "paragraphs" + } + ] + }, + { + "kind": "method", + "name": "timeline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "timeline" + } + ] + }, + { + "kind": "method", + "name": "addTimelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "ProposalTimelineItem", + "name": "item" + } + ] + }, + { + "kind": "method", + "name": "timelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "timelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "phase" + }, + { + "type": "String", + "name": "duration" + }, + { + "type": "String", + "name": "details" + } + ] + }, + { + "kind": "method", + "name": "pricingRows", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "pricingRows" + } + ] + }, + { + "kind": "method", + "name": "addPricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "ProposalPricingRow", + "name": "pricingRow" + } + ] + }, + { + "kind": "method", + "name": "pricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "pricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "emphasizedPricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "acceptanceTerms", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "acceptanceTerms" + } + ] + }, + { + "kind": "method", + "name": "acceptanceTerm", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "acceptanceTerm" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec", + "params": [] + } + ] + }, + { + "name": "ProposalGlance", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalGlance", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalGlance", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "heading", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "facts", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ProposalGlance.Fact", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalGlance$Fact", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Fact", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "value", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "note", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalGoals", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalGoals", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalGoals", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "heading", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "items", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ProposalGoals.Goal", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalGoals$Goal", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Goal", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "text", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalInvestment", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalInvestment", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalInvestment", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, { "kind": "method", - "name": "sender", + "name": "heading", "static": false, "origin": "generated", "typeParameters": null, - "returns": "ProposalParty", + "returns": "String", "params": [] }, { "kind": "method", - "name": "recipient", + "name": "icon", "static": false, "origin": "generated", "typeParameters": null, - "returns": "ProposalParty", + "returns": "String", "params": [] }, { "kind": "method", - "name": "sections", + "name": "itemHeader", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "String", "params": [] }, { "kind": "method", - "name": "timeline", + "name": "amountHeader", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "String", "params": [] }, { "kind": "method", - "name": "pricingRows", + "name": "rows", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "List", "params": [] }, { "kind": "method", - "name": "acceptanceTerms", + "name": "totalLabel", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "String", "params": [] }, { "kind": "method", - "name": "footerNote", + "name": "totalAmount", "static": false, "origin": "generated", "typeParameters": null, @@ -12574,420 +16658,532 @@ ] }, { - "name": "ProposalData.Builder", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalData$Builder", - "kind": "class", + "name": "ProposalInvestment.Role", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalInvestment$Role", + "kind": "enum", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "method", - "name": "title", + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "ProposalInvestment.Role" + }, + { + "kind": "constant", + "name": "SUBTOTAL", + "static": true, + "origin": "generated", + "type": "ProposalInvestment.Role" + }, + { + "kind": "constant", + "name": "OPTIONAL", + "static": true, + "origin": "generated", + "type": "ProposalInvestment.Role" + } + ] + }, + { + "name": "ProposalInvestment.Row", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalInvestment$Row", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Row", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": null, "params": [ { "type": "String", - "name": "title" + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "ProposalInvestment.Role", + "name": null } ] }, { "kind": "method", - "name": "proposalNumber", + "name": "label", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "String", - "name": "proposalNumber" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "preparedDate", + "name": "amount", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "String", - "name": "preparedDate" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "validUntil", + "name": "role", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "ProposalInvestment.Role", + "params": [] + } + ] + }, + { + "name": "ProposalMetaLine", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalMetaLine", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalMetaLine", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, "params": [ { "type": "String", - "name": "validUntil" + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null } ] }, { "kind": "method", - "name": "projectTitle", + "name": "preparedFor", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "String", - "name": "projectTitle" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "executiveSummary", + "name": "preparedBy", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "date", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalParty", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalParty", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalParty", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, "params": [ { "type": "String", - "name": "executiveSummary" + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null } ] }, { "kind": "method", - "name": "sender", - "static": false, + "name": "builder", + "static": true, "origin": "source", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "ProposalParty", - "name": "sender" - } - ] + "returns": "ProposalParty.Builder", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] }, { "kind": "method", - "name": "sender", + "name": "email", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "recipient", + "name": "phone", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "ProposalParty", - "name": "recipient" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "recipient", + "name": "website", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] - }, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalParty.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalParty$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { "kind": "method", - "name": "sections", + "name": "name", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "ProposalParty.Builder", "params": [ { - "type": "List", - "name": "sections" + "type": "String", + "name": "name" } ] }, { "kind": "method", - "name": "addSection", + "name": "addressLines", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "ProposalParty.Builder", "params": [ { - "type": "ProposalSection", - "name": "section" + "type": "List", + "name": "addressLines" } ] }, { "kind": "method", - "name": "section", + "name": "addressLines", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "ProposalParty.Builder", "params": [ { - "type": "Consumer", - "name": "spec" + "type": "String...", + "name": "addressLines" } ] }, { "kind": "method", - "name": "section", + "name": "addAddressLine", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "ProposalParty.Builder", "params": [ { "type": "String", - "name": "title" - }, - { - "type": "String...", - "name": "paragraphs" + "name": "addressLine" } ] }, { "kind": "method", - "name": "timeline", + "name": "email", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "ProposalParty.Builder", "params": [ { - "type": "List", - "name": "timeline" + "type": "String", + "name": "email" } ] }, { "kind": "method", - "name": "addTimelineItem", + "name": "phone", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "ProposalParty.Builder", "params": [ { - "type": "ProposalTimelineItem", - "name": "item" + "type": "String", + "name": "phone" } ] }, { "kind": "method", - "name": "timelineItem", + "name": "website", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "ProposalParty.Builder", "params": [ { - "type": "Consumer", - "name": "spec" + "type": "String", + "name": "website" } ] }, { "kind": "method", - "name": "timelineItem", + "name": "build", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "ProposalParty", + "params": [] + } + ] + }, + { + "name": "ProposalPhaseGrid", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalPhaseGrid", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalPhaseGrid", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, "params": [ { "type": "String", - "name": "phase" + "name": null }, { "type": "String", - "name": "duration" + "name": null }, { - "type": "String", - "name": "details" + "type": "List", + "name": null + }, + { + "type": "List", + "name": null } ] }, { "kind": "method", - "name": "pricingRows", + "name": "heading", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "List", - "name": "pricingRows" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "addPricingRow", + "name": "icon", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "ProposalPricingRow", - "name": "pricingRow" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "pricingRow", + "name": "columnHeaders", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] + "returns": "List", + "params": [] }, { "kind": "method", - "name": "pricingRow", + "name": "phases", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ProposalPhaseGrid.Phase", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalPhaseGrid$Phase", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Phase", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, "params": [ { "type": "String", - "name": "label" + "name": null }, { "type": "String", - "name": "description" + "name": null }, { "type": "String", - "name": "amount" - } - ] - }, - { - "kind": "method", - "name": "emphasizedPricingRow", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "String", - "name": "label" + "name": null }, { "type": "String", - "name": "description" + "name": null }, { "type": "String", - "name": "amount" + "name": null } ] }, { "kind": "method", - "name": "acceptanceTerms", + "name": "number", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "List", - "name": "acceptanceTerms" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "acceptanceTerm", + "name": "name", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "String", - "name": "acceptanceTerm" - } - ] + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "focus", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] }, { "kind": "method", - "name": "footerNote", + "name": "duration", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData.Builder", - "params": [ - { - "type": "String", - "name": "footerNote" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "build", + "name": "output", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalData", + "returns": "String", "params": [] } ] }, { - "name": "ProposalDocumentSpec", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec", + "name": "ProposalPricingRow", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalPricingRow", "kind": "record", "modifiers": [ "final" @@ -12996,55 +17192,80 @@ "members": [ { "kind": "constructor", - "name": "ProposalDocumentSpec", + "name": "ProposalPricingRow", "static": false, "origin": "generated", "typeParameters": null, "returns": null, "params": [ { - "type": "ProposalData", + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "boolean", "name": null } ] }, { "kind": "method", - "name": "from", + "name": "builder", "static": true, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec", - "params": [ - { - "type": "ProposalData", - "name": "proposal" - } - ] + "returns": "ProposalPricingRow.Builder", + "params": [] }, { "kind": "method", - "name": "builder", - "static": true, - "origin": "source", + "name": "label", + "static": false, + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": "String", "params": [] }, { "kind": "method", - "name": "proposal", + "name": "description", "static": false, "origin": "generated", "typeParameters": null, - "returns": "ProposalData", + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "amount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "emphasized", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", "params": [] } ] }, { - "name": "ProposalDocumentSpec.Builder", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec$Builder", + "name": "ProposalPricingRow.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalPricingRow$Builder", "kind": "class", "modifiers": [ "final" @@ -13053,410 +17274,386 @@ "members": [ { "kind": "method", - "name": "title", + "name": "label", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": "ProposalPricingRow.Builder", "params": [ { "type": "String", - "name": "title" + "name": "label" } ] }, { "kind": "method", - "name": "proposalNumber", + "name": "description", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": "ProposalPricingRow.Builder", "params": [ { "type": "String", - "name": "proposalNumber" + "name": "description" } ] }, { "kind": "method", - "name": "preparedDate", + "name": "amount", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": "ProposalPricingRow.Builder", "params": [ { "type": "String", - "name": "preparedDate" + "name": "amount" } ] }, { "kind": "method", - "name": "validUntil", + "name": "emphasized", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": "ProposalPricingRow.Builder", "params": [ { - "type": "String", - "name": "validUntil" + "type": "boolean", + "name": "emphasized" } ] }, { "kind": "method", - "name": "projectTitle", + "name": "build", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "String", - "name": "projectTitle" - } - ] - }, + "returns": "ProposalPricingRow", + "params": [] + } + ] + }, + { + "name": "ProposalScope", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalScope", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { - "kind": "method", - "name": "executiveSummary", + "kind": "constructor", + "name": "ProposalScope", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": null, "params": [ { "type": "String", - "name": "executiveSummary" + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null } ] }, { "kind": "method", - "name": "sender", + "name": "heading", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "ProposalParty", - "name": "sender" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "sender", + "name": "icon", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "recipient", + "name": "items", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "ProposalParty", - "name": "recipient" - } - ] - }, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ProposalScope.Item", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalScope$Item", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { - "kind": "method", - "name": "recipient", + "kind": "constructor", + "name": "Item", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": null, "params": [ { - "type": "Consumer", - "name": "spec" + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null } ] }, { "kind": "method", - "name": "sections", + "name": "number", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "List", - "name": "sections" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "addSection", + "name": "title", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "ProposalSection", - "name": "section" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "section", + "name": "description", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] - }, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalSection", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalSection", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { - "kind": "method", - "name": "section", + "kind": "constructor", + "name": "ProposalSection", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": null, "params": [ { "type": "String", - "name": "title" + "name": null }, { - "type": "String...", - "name": "paragraphs" + "type": "List", + "name": null } ] }, { "kind": "method", - "name": "timeline", - "static": false, + "name": "builder", + "static": true, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "List", - "name": "timeline" - } - ] + "returns": "ProposalSection.Builder", + "params": [] }, { "kind": "method", - "name": "addTimelineItem", + "name": "title", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "ProposalTimelineItem", - "name": "item" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "timelineItem", + "name": "paragraphs", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] - }, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ProposalSection.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalSection$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { "kind": "method", - "name": "timelineItem", + "name": "title", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": "ProposalSection.Builder", "params": [ { "type": "String", - "name": "phase" - }, - { - "type": "String", - "name": "duration" - }, - { - "type": "String", - "name": "details" + "name": "title" } ] }, { "kind": "method", - "name": "pricingRows", + "name": "paragraphs", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": "ProposalSection.Builder", "params": [ { - "type": "List", - "name": "pricingRows" + "type": "List", + "name": "paragraphs" } ] }, { "kind": "method", - "name": "addPricingRow", + "name": "paragraphs", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": "ProposalSection.Builder", "params": [ { - "type": "ProposalPricingRow", - "name": "pricingRow" + "type": "String...", + "name": "paragraphs" } ] }, { "kind": "method", - "name": "pricingRow", + "name": "addParagraph", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": "ProposalSection.Builder", "params": [ { - "type": "Consumer", - "name": "spec" + "type": "String", + "name": "paragraph" } ] }, { "kind": "method", - "name": "pricingRow", + "name": "build", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "String", - "name": "label" - }, - { - "type": "String", - "name": "description" - }, - { - "type": "String", - "name": "amount" - } - ] - }, + "returns": "ProposalSection", + "params": [] + } + ] + }, + { + "name": "ProposalSummaryBlock", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalSummaryBlock", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { - "kind": "method", - "name": "emphasizedPricingRow", + "kind": "constructor", + "name": "ProposalSummaryBlock", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", + "returns": null, "params": [ { "type": "String", - "name": "label" + "name": null }, { "type": "String", - "name": "description" + "name": null }, - { - "type": "String", - "name": "amount" - } - ] - }, - { - "kind": "method", - "name": "acceptanceTerms", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ { "type": "List", - "name": "acceptanceTerms" + "name": null } ] }, { "kind": "method", - "name": "acceptanceTerm", + "name": "heading", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "String", - "name": "acceptanceTerm" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "footerNote", + "name": "icon", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec.Builder", - "params": [ - { - "type": "String", - "name": "footerNote" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "build", + "name": "paragraphs", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalDocumentSpec", + "returns": "List", "params": [] } ] }, { - "name": "ProposalParty", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalParty", + "name": "ProposalTermsBlock", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalTermsBlock", "kind": "record", "modifiers": [ "final" @@ -13465,20 +17662,12 @@ "members": [ { "kind": "constructor", - "name": "ProposalParty", + "name": "ProposalTermsBlock", "static": false, "origin": "generated", "typeParameters": null, "returns": null, "params": [ - { - "type": "String", - "name": null - }, - { - "type": "List", - "name": null - }, { "type": "String", "name": null @@ -13488,23 +17677,23 @@ "name": null }, { - "type": "String", + "type": "List", "name": null } ] }, { "kind": "method", - "name": "builder", - "static": true, - "origin": "source", + "name": "heading", + "static": false, + "origin": "generated", "typeParameters": null, - "returns": "ProposalParty.Builder", + "returns": "String", "params": [] }, { "kind": "method", - "name": "name", + "name": "icon", "static": false, "origin": "generated", "typeParameters": null, @@ -13513,16 +17702,58 @@ }, { "kind": "method", - "name": "addressLines", - "static": false, - "origin": "generated", + "name": "items", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ProposalTimelineItem", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalTimelineItem", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalTimelineItem", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", "typeParameters": null, - "returns": "List", + "returns": "ProposalTimelineItem.Builder", "params": [] }, { "kind": "method", - "name": "email", + "name": "phase", "static": false, "origin": "generated", "typeParameters": null, @@ -13531,7 +17762,7 @@ }, { "kind": "method", - "name": "phone", + "name": "duration", "static": false, "origin": "generated", "typeParameters": null, @@ -13540,7 +17771,7 @@ }, { "kind": "method", - "name": "website", + "name": "details", "static": false, "origin": "generated", "typeParameters": null, @@ -13550,8 +17781,8 @@ ] }, { - "name": "ProposalParty.Builder", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalParty$Builder", + "name": "ProposalTimelineItem.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalTimelineItem$Builder", "kind": "class", "modifiers": [ "final" @@ -13560,116 +17791,120 @@ "members": [ { "kind": "method", - "name": "name", + "name": "phase", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalParty.Builder", + "returns": "ProposalTimelineItem.Builder", "params": [ { "type": "String", - "name": "name" + "name": "phase" } ] }, { "kind": "method", - "name": "addressLines", + "name": "duration", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalParty.Builder", + "returns": "ProposalTimelineItem.Builder", "params": [ { - "type": "List", - "name": "addressLines" + "type": "String", + "name": "duration" } ] }, { "kind": "method", - "name": "addressLines", + "name": "details", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalParty.Builder", + "returns": "ProposalTimelineItem.Builder", "params": [ { - "type": "String...", - "name": "addressLines" + "type": "String", + "name": "details" } ] }, { "kind": "method", - "name": "addAddressLine", + "name": "build", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalParty.Builder", - "params": [ - { - "type": "String", - "name": "addressLine" - } - ] - }, + "returns": "ProposalTimelineItem", + "params": [] + } + ] + }, + { + "name": "ProposalTitleLines", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalTitleLines", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { - "kind": "method", - "name": "email", + "kind": "constructor", + "name": "ProposalTitleLines", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalParty.Builder", + "returns": null, "params": [ { "type": "String", - "name": "email" + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null } ] }, { "kind": "method", - "name": "phone", + "name": "lead", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalParty.Builder", - "params": [ - { - "type": "String", - "name": "phone" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "website", + "name": "second", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalParty.Builder", - "params": [ - { - "type": "String", - "name": "website" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "build", + "name": "third", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalParty", + "returns": "String", "params": [] } ] }, { - "name": "ProposalPricingRow", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalPricingRow", + "name": "StructuredProposalData", + "binaryName": "com.demcha.compose.document.templates.data.proposal.StructuredProposalData", "kind": "record", "modifiers": [ "final" @@ -13678,26 +17913,58 @@ "members": [ { "kind": "constructor", - "name": "ProposalPricingRow", + "name": "StructuredProposalData", "static": false, "origin": "generated", "typeParameters": null, "returns": null, "params": [ { - "type": "String", + "type": "ProposalBrand", "name": null }, { - "type": "String", + "type": "ProposalTitleLines", "name": null }, { - "type": "String", + "type": "ProposalMetaLine", "name": null }, { - "type": "boolean", + "type": "ProposalSummaryBlock", + "name": null + }, + { + "type": "ProposalGlance", + "name": null + }, + { + "type": "ProposalGoals", + "name": null + }, + { + "type": "ProposalScope", + "name": null + }, + { + "type": "ProposalDeliverables", + "name": null + }, + { + "type": "ProposalPhaseGrid", + "name": null + }, + { + "type": "ProposalInvestment", + "name": null + }, + { + "type": "ProposalTermsBlock", + "name": null + }, + { + "type": "ProposalAcceptance", "name": null } ] @@ -13708,382 +17975,351 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "ProposalPricingRow.Builder", + "returns": "StructuredProposalData.Builder", "params": [] }, { "kind": "method", - "name": "label", + "name": "brand", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "ProposalBrand", "params": [] }, { "kind": "method", - "name": "description", + "name": "title", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "ProposalTitleLines", "params": [] }, { "kind": "method", - "name": "amount", + "name": "meta", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "ProposalMetaLine", "params": [] }, { "kind": "method", - "name": "emphasized", + "name": "executiveSummary", "static": false, "origin": "generated", "typeParameters": null, - "returns": "boolean", + "returns": "ProposalSummaryBlock", "params": [] - } - ] - }, - { - "name": "ProposalPricingRow.Builder", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalPricingRow$Builder", - "kind": "class", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ - { - "kind": "method", - "name": "label", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ProposalPricingRow.Builder", - "params": [ - { - "type": "String", - "name": "label" - } - ] }, { "kind": "method", - "name": "description", + "name": "glance", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalPricingRow.Builder", - "params": [ - { - "type": "String", - "name": "description" - } - ] + "returns": "ProposalGlance", + "params": [] }, { "kind": "method", - "name": "amount", + "name": "goals", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalPricingRow.Builder", - "params": [ - { - "type": "String", - "name": "amount" - } - ] + "returns": "ProposalGoals", + "params": [] }, { "kind": "method", - "name": "emphasized", + "name": "scope", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalPricingRow.Builder", - "params": [ - { - "type": "boolean", - "name": "emphasized" - } - ] + "returns": "ProposalScope", + "params": [] }, { "kind": "method", - "name": "build", + "name": "deliverables", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalPricingRow", + "returns": "ProposalDeliverables", "params": [] - } - ] - }, - { - "name": "ProposalSection", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalSection", - "kind": "record", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ + }, { - "kind": "constructor", - "name": "ProposalSection", + "kind": "method", + "name": "timeline", "static": false, "origin": "generated", "typeParameters": null, - "returns": null, - "params": [ - { - "type": "String", - "name": null - }, - { - "type": "List", - "name": null - } - ] + "returns": "ProposalPhaseGrid", + "params": [] }, { "kind": "method", - "name": "builder", - "static": true, - "origin": "source", + "name": "investment", + "static": false, + "origin": "generated", "typeParameters": null, - "returns": "ProposalSection.Builder", + "returns": "ProposalInvestment", "params": [] }, { "kind": "method", - "name": "title", + "name": "terms", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "ProposalTermsBlock", "params": [] }, { "kind": "method", - "name": "paragraphs", + "name": "acceptance", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "ProposalAcceptance", "params": [] } ] }, { - "name": "ProposalSection.Builder", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalSection$Builder", + "name": "StructuredProposalData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.StructuredProposalData$Builder", "kind": "class", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ + { + "kind": "method", + "name": "brand", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredProposalData.Builder", + "params": [ + { + "type": "ProposalBrand", + "name": "brand" + } + ] + }, { "kind": "method", "name": "title", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalSection.Builder", + "returns": "StructuredProposalData.Builder", "params": [ { - "type": "String", + "type": "ProposalTitleLines", "name": "title" } ] }, { "kind": "method", - "name": "paragraphs", + "name": "meta", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalSection.Builder", + "returns": "StructuredProposalData.Builder", "params": [ { - "type": "List", - "name": "paragraphs" + "type": "ProposalMetaLine", + "name": "meta" } ] }, { "kind": "method", - "name": "paragraphs", + "name": "executiveSummary", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalSection.Builder", + "returns": "StructuredProposalData.Builder", "params": [ { - "type": "String...", - "name": "paragraphs" + "type": "ProposalSummaryBlock", + "name": "executiveSummary" } ] }, { "kind": "method", - "name": "addParagraph", + "name": "glance", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalSection.Builder", + "returns": "StructuredProposalData.Builder", "params": [ { - "type": "String", - "name": "paragraph" + "type": "ProposalGlance", + "name": "glance" } ] }, { "kind": "method", - "name": "build", + "name": "goals", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalSection", - "params": [] - } - ] - }, - { - "name": "ProposalTimelineItem", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalTimelineItem", - "kind": "record", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ + "returns": "StructuredProposalData.Builder", + "params": [ + { + "type": "ProposalGoals", + "name": "goals" + } + ] + }, { - "kind": "constructor", - "name": "ProposalTimelineItem", + "kind": "method", + "name": "scope", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": null, + "returns": "StructuredProposalData.Builder", "params": [ { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null + "type": "ProposalScope", + "name": "scope" } ] }, { "kind": "method", - "name": "builder", - "static": true, + "name": "deliverables", + "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalTimelineItem.Builder", - "params": [] + "returns": "StructuredProposalData.Builder", + "params": [ + { + "type": "ProposalDeliverables", + "name": "deliverables" + } + ] }, { "kind": "method", - "name": "phase", + "name": "timeline", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "String", - "params": [] + "returns": "StructuredProposalData.Builder", + "params": [ + { + "type": "ProposalPhaseGrid", + "name": "timeline" + } + ] }, { "kind": "method", - "name": "duration", + "name": "investment", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "String", - "params": [] + "returns": "StructuredProposalData.Builder", + "params": [ + { + "type": "ProposalInvestment", + "name": "investment" + } + ] }, { "kind": "method", - "name": "details", + "name": "terms", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "String", - "params": [] - } - ] - }, - { - "name": "ProposalTimelineItem.Builder", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalTimelineItem$Builder", - "kind": "class", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ + "returns": "StructuredProposalData.Builder", + "params": [ + { + "type": "ProposalTermsBlock", + "name": "terms" + } + ] + }, { "kind": "method", - "name": "phase", + "name": "acceptance", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalTimelineItem.Builder", + "returns": "StructuredProposalData.Builder", "params": [ { - "type": "String", - "name": "phase" + "type": "ProposalAcceptance", + "name": "acceptance" } ] }, { "kind": "method", - "name": "duration", + "name": "build", "static": false, "origin": "source", "typeParameters": null, - "returns": "ProposalTimelineItem.Builder", + "returns": "StructuredProposalData", + "params": [] + } + ] + }, + { + "name": "StructuredProposalDocumentSpec", + "binaryName": "com.demcha.compose.document.templates.data.proposal.StructuredProposalDocumentSpec", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "StructuredProposalDocumentSpec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, "params": [ { - "type": "String", - "name": "duration" + "type": "StructuredProposalData", + "name": null } ] }, { "kind": "method", - "name": "details", - "static": false, + "name": "from", + "static": true, "origin": "source", "typeParameters": null, - "returns": "ProposalTimelineItem.Builder", + "returns": "StructuredProposalDocumentSpec", "params": [ { - "type": "String", - "name": "details" + "type": "StructuredProposalData", + "name": "proposal" } ] }, { "kind": "method", - "name": "build", + "name": "proposal", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ProposalTimelineItem", + "returns": "StructuredProposalData", "params": [] } ] @@ -16271,78 +20507,208 @@ }, { "kind": "method", - "name": "assignment", - "static": false, + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "personId" + }, + { + "type": "String", + "name": "dayId" + }, + { + "type": "String", + "name": "categoryId" + }, + { + "type": "List", + "name": "slots" + }, + { + "type": "String", + "name": "note" + } + ] + }, + { + "kind": "method", + "name": "footerNotes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "footerNotes" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.invoice.presets", + "types": [ + { + "name": "ClassicInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.ClassicInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "String", - "name": "personId" - }, - { - "type": "String", - "name": "dayId" - }, - { - "type": "String", - "name": "categoryId" - }, - { - "type": "List", - "name": "slots" - }, - { - "type": "String", - "name": "note" - } - ] + "returns": "DocumentTemplate", + "params": [] }, { "kind": "method", - "name": "footerNotes", - "static": false, + "name": "create", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "DocumentTemplate", "params": [ { - "type": "List", - "name": "footerNotes" + "type": "BrandTheme", + "name": "theme" } ] + } + ] + }, + { + "name": "ConsultingInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.ConsultingInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" }, { "kind": "method", - "name": "footerNote", - "static": false, + "name": "create", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "String", - "name": "footerNote" - } - ] + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "LumaStudioInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.LumaStudioInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" }, { "kind": "method", - "name": "build", - "static": false, + "name": "create", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec", + "returns": "DocumentTemplate", "params": [] } ] - } - ] - }, - { - "name": "com.demcha.compose.document.templates.invoice.presets", - "types": [ + }, { "name": "ModernInvoice", "binaryName": "com.demcha.compose.document.templates.invoice.presets.ModernInvoice", @@ -16397,12 +20763,121 @@ ] } ] + }, + { + "name": "PaymentsInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.PaymentsInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "WorkspaceInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.WorkspaceInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] } ] }, { "name": "com.demcha.compose.document.templates.proposal.presets", "types": [ + { + "name": "EditorialProposal", + "binaryName": "com.demcha.compose.document.templates.proposal.presets.EditorialProposal", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "ModernProposal", "binaryName": "com.demcha.compose.document.templates.proposal.presets.ModernProposal", @@ -16457,6 +20932,47 @@ ] } ] + }, + { + "name": "NorthlineProposal", + "binaryName": "com.demcha.compose.document.templates.proposal.presets.NorthlineProposal", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] } ] } diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index cf770d0fd..f215aee3a 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 +Types: 217 · methods: 1221 · constants: 164 · compiler-generated members: 644 ## com.demcha.compose.document.templates.api @@ -585,14 +585,31 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `CvSection section()` ### CvEntry (record) -- `new CvEntry(String, String, String, String)` +- `new CvEntry(String, String, String, String, String, String, String)` +- `new CvEntry(String title, String subtitle, String date, String body, String place, String icon)` +- `new CvEntry(String title, String subtitle, String date, String body)` +- `CvEntry.Builder builder(String title)` - `String title()` - `String subtitle()` - `String date()` - `String body()` +- `String place()` +- `String icon()` +- `String link()` + +### CvEntry.Builder (class) +- `CvEntry.Builder subtitle(String value)` +- `CvEntry.Builder date(String value)` +- `CvEntry.Builder body(String value)` +- `CvEntry.Builder body(List lines)` +- `CvEntry.Builder place(String value)` +- `CvEntry.Builder icon(String value)` +- `CvEntry.Builder link(String value)` +- `CvEntry build()` ### CvIdentity (record) -- `new CvIdentity(CvName, String, Contact, List)` +- `new CvIdentity(CvName, String, Contact, List, Optional)` +- `new CvIdentity(CvName name, String jobTitle, Contact contact, List links)` - `new CvIdentity(CvName name, Contact contact, List links)` - `String displayName()` - `String tagline()` @@ -601,6 +618,7 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `String jobTitle()` - `Contact contact()` - `List links()` +- `Optional portrait()` ### CvIdentity.Builder (class) - `CvIdentity.Builder name(CvName value)` @@ -611,6 +629,7 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `CvIdentity.Builder contact(String phone, String email, String address)` - `CvIdentity.Builder link(Link link)` - `CvIdentity.Builder link(String label, String url)` +- `CvIdentity.Builder portrait(DocumentImageData value)` - `CvIdentity build()` ### CvName (record) @@ -631,11 +650,14 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `String title()` ### CvSkill (record) -- `new CvSkill(String, OptionalDouble)` +- `new CvSkill(String, OptionalDouble, String)` +- `new CvSkill(String name, OptionalDouble level)` - `CvSkill of(String name)` - `CvSkill of(String name, double level)` +- `CvSkill of(String name, double level, String note)` - `String name()` - `OptionalDouble level()` +- `String note()` ### EntriesSection (record) - `new EntriesSection(String, List)` @@ -711,6 +733,10 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `DocumentTemplate create(BrandTheme theme)` - constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` +### CharcoalGold (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + ### ClassicSerif (class) - `DocumentTemplate create()` - `DocumentTemplate create(BrandTheme theme)` @@ -736,6 +762,10 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `DocumentTemplate create(BrandTheme theme)` - constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` +### MidnightNavy (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + ### MinimalUnderlined (class) - `DocumentTemplate create()` - `DocumentTemplate create(BrandTheme theme)` @@ -791,6 +821,10 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `MonogramSidebar.Options.Builder monogramRingColor(DocumentColor value)` - `MonogramSidebar.Options build()` +### NavySidebar (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + ### NordicClean (class) - `DocumentTemplate create()` - `DocumentTemplate create(BrandTheme theme)` @@ -816,11 +850,23 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 ### NordicClean.RailSide (enum) - constants: `LEFT`, `RIGHT` +### OrangeOps (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `DISPLAY_FONT` + ### Panel (class) - `DocumentTemplate create()` - `DocumentTemplate create(BrandTheme theme)` - constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` +### ProfessionalSidebar (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### SerifHeadline (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + ### SidebarPortrait (class) - `DocumentTemplate create()` - `DocumentTemplate create(BrandTheme theme)` @@ -841,11 +887,27 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `SidebarPortrait.Options.Builder accentColor(DocumentColor value)` - `SidebarPortrait.Options build()` +### SlateOrange (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + +### TealPulse (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + +### TerracottaRail (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + ### TimelineMinimal (class) - `DocumentTemplate create()` - `DocumentTemplate create(BrandTheme theme)` - constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` +### VioletGrid (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + ## com.demcha.compose.document.templates.cv.widgets ### FlowSectionHeader (class) @@ -920,6 +982,31 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 ## com.demcha.compose.document.templates.data.invoice +### InvoiceBrand (record) +- `new InvoiceBrand(DocumentImageData, String, String, String, String, String)` +- `new InvoiceBrand(DocumentImageData logo, String name, String qualifier, String tagline)` +- `boolean hasMonogram()` +- `boolean hasLogo()` +- `DocumentImageData logo()` +- `String name()` +- `String qualifier()` +- `String tagline()` +- `String monogramTop()` +- `String monogramBottom()` + +### InvoiceContactBlock (record) +- `new InvoiceContactBlock(String, List, String, String, String, String, String, String, String)` +- `new InvoiceContactBlock(String legalName, List addressLines, String phone, String email, String website, String registrationLabel, String registrationNumber)` +- `String legalName()` +- `List addressLines()` +- `String phone()` +- `String email()` +- `String website()` +- `String registrationLabel()` +- `String registrationNumber()` +- `String taxRegistrationLabel()` +- `String taxRegistrationNumber()` + ### InvoiceData (record) - `new InvoiceData(String, String, String, String, String, String, InvoiceParty, InvoiceParty, List, List, List, List, String)` - `InvoiceData.Builder builder()` @@ -1014,6 +1101,24 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `InvoiceLineItem.Builder amount(String amount)` - `InvoiceLineItem build()` +### InvoiceMasthead (record) +- `new InvoiceMasthead(String, List)` +- `String title()` +- `List entries()` + +### InvoiceMasthead.Entry (record) +- `new Entry(String, String, boolean)` +- `String label()` +- `String value()` +- `boolean emphasized()` + +### InvoiceNotesBlock (record) +- `new InvoiceNotesBlock(String, List, String, String)` +- `String heading()` +- `List paragraphs()` +- `String contactEmail()` +- `String contactPhone()` + ### InvoiceParty (record) - `new InvoiceParty(String, List, String, String, String)` - `InvoiceParty.Builder builder()` @@ -1033,6 +1138,72 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `InvoiceParty.Builder taxId(String taxId)` - `InvoiceParty build()` +### InvoicePaymentBlock (record) +- `new InvoicePaymentBlock(String, List, String, String, String, String, String)` +- `new InvoicePaymentBlock(String heading, List fields, String instruction, String dueNotice, String dueNoticeEmphasis)` +- `String heading()` +- `List fields()` +- `String instruction()` +- `String dueNotice()` +- `String dueNoticeEmphasis()` +- `String accountHolder()` +- `String signOff()` + +### InvoicePaymentBlock.Field (record) +- `new Field(String, String)` +- `String label()` +- `String value()` + +### InvoiceRecipient (record) +- `new InvoiceRecipient(String, String, String, List, String, String, String, String)` +- `new InvoiceRecipient(String heading, String name, String subline, List addressLines, String emailLabel, String email)` +- `boolean hasRegistration()` +- `String heading()` +- `String name()` +- `String subline()` +- `List addressLines()` +- `String emailLabel()` +- `String email()` +- `String registrationLabel()` +- `String registrationNumber()` + +### InvoiceServiceLines (record) +- `new InvoiceServiceLines(InvoiceServiceLines.Columns, List)` +- `InvoiceServiceLines.Columns columns()` +- `List lines()` + +### InvoiceServiceLines.Columns (record) +- `new Columns(String, String, String, String, String, String, String)` +- `new Columns(String index, String description, String servicePeriod, String quantity, String unitPrice, String amount)` +- `String index()` +- `String description()` +- `String servicePeriod()` +- `String quantity()` +- `String unitPrice()` +- `String amount()` +- `String vat()` + +### InvoiceServiceLines.Line (record) +- `new Line(int, String, String, String, BigDecimal, String, BigDecimal, BigDecimal, String, String)` +- `new Line(int lineNumber, String title, String description, String servicePeriod, BigDecimal quantity, String unit, BigDecimal unitPrice, BigDecimal amount, String vatRate)` +- `new Line(int lineNumber, String title, String description, String servicePeriod, BigDecimal quantity, String unit, BigDecimal unitPrice, BigDecimal amount)` +- `int lineNumber()` +- `String title()` +- `String description()` +- `String servicePeriod()` +- `BigDecimal quantity()` +- `String unit()` +- `BigDecimal unitPrice()` +- `BigDecimal amount()` +- `String vatRate()` +- `String icon()` + +### InvoiceSummaryBlock (record) +- `new InvoiceSummaryBlock(String, String, String)` +- `String heading()` +- `String intro()` +- `String servicePeriod()` + ### InvoiceSummaryRow (record) - `new InvoiceSummaryRow(String, String, boolean)` - `InvoiceSummaryRow.Builder builder()` @@ -1046,8 +1217,70 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `InvoiceSummaryRow.Builder emphasized(boolean emphasized)` - `InvoiceSummaryRow build()` +### InvoiceTotalsBlock (record) +- `new InvoiceTotalsBlock(List, String, BigDecimal)` +- `List rows()` +- `String totalLabel()` +- `BigDecimal totalAmount()` + +### InvoiceTotalsBlock.Row (record) +- `new Row(String, BigDecimal)` +- `String label()` +- `BigDecimal amount()` + +### StructuredInvoiceData (record) +- `new StructuredInvoiceData(InvoiceBrand, InvoiceContactBlock, InvoiceMasthead, InvoiceRecipient, InvoiceRecipient, InvoiceSummaryBlock, InvoiceServiceLines, InvoiceTotalsBlock, InvoicePaymentBlock, InvoiceNotesBlock, String)` +- `new StructuredInvoiceData(InvoiceBrand brand, InvoiceContactBlock supplier, InvoiceMasthead masthead, InvoiceRecipient billTo, InvoiceSummaryBlock summary, InvoiceServiceLines serviceLines, InvoiceTotalsBlock totals, InvoicePaymentBlock payment, InvoiceNotesBlock notes, String currencyCode)` +- `StructuredInvoiceData.Builder builder()` +- `InvoiceBrand brand()` +- `InvoiceContactBlock supplier()` +- `InvoiceMasthead masthead()` +- `InvoiceRecipient billTo()` +- `InvoiceRecipient shipTo()` +- `InvoiceSummaryBlock summary()` +- `InvoiceServiceLines serviceLines()` +- `InvoiceTotalsBlock totals()` +- `InvoicePaymentBlock payment()` +- `InvoiceNotesBlock notes()` +- `String currencyCode()` + +### StructuredInvoiceData.Builder (class) +- `StructuredInvoiceData.Builder brand(InvoiceBrand brand)` +- `StructuredInvoiceData.Builder supplier(InvoiceContactBlock supplier)` +- `StructuredInvoiceData.Builder masthead(InvoiceMasthead masthead)` +- `StructuredInvoiceData.Builder billTo(InvoiceRecipient billTo)` +- `StructuredInvoiceData.Builder shipTo(InvoiceRecipient shipTo)` +- `StructuredInvoiceData.Builder summary(InvoiceSummaryBlock summary)` +- `StructuredInvoiceData.Builder serviceLines(InvoiceServiceLines serviceLines)` +- `StructuredInvoiceData.Builder totals(InvoiceTotalsBlock totals)` +- `StructuredInvoiceData.Builder payment(InvoicePaymentBlock payment)` +- `StructuredInvoiceData.Builder notes(InvoiceNotesBlock notes)` +- `StructuredInvoiceData.Builder currencyCode(String currencyCode)` +- `StructuredInvoiceData build()` + +### StructuredInvoiceDocumentSpec (record) +- `new StructuredInvoiceDocumentSpec(StructuredInvoiceData)` +- `StructuredInvoiceDocumentSpec from(StructuredInvoiceData invoice)` +- `StructuredInvoiceData invoice()` + ## com.demcha.compose.document.templates.data.proposal +### ProposalAcceptance (record) +- `new ProposalAcceptance(String, String, String, List)` +- `String heading()` +- `String icon()` +- `String statement()` +- `List fields()` + +### ProposalBrand (record) +- `new ProposalBrand(String, String, String, String, String, String)` +- `String monogram()` +- `String nameLine1()` +- `String nameLine2()` +- `String documentLabel()` +- `String website()` +- `String footerName()` + ### ProposalData (record) - `new ProposalData(String, String, String, String, String, String, ProposalParty, ProposalParty, List, List, List, List, String)` - `ProposalData.Builder builder()` @@ -1094,6 +1327,13 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `ProposalData.Builder footerNote(String footerNote)` - `ProposalData build()` +### ProposalDeliverables (record) +- `new ProposalDeliverables(String, String, List, List)` +- `String heading()` +- `String icon()` +- `List leftColumn()` +- `List rightColumn()` + ### ProposalDocumentSpec (record) - `new ProposalDocumentSpec(ProposalData)` - `ProposalDocumentSpec from(ProposalData proposal)` @@ -1129,6 +1369,54 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `ProposalDocumentSpec.Builder footerNote(String footerNote)` - `ProposalDocumentSpec build()` +### ProposalGlance (record) +- `new ProposalGlance(String, List)` +- `String heading()` +- `List facts()` + +### ProposalGlance.Fact (record) +- `new Fact(String, String, String, String)` +- `String icon()` +- `String label()` +- `String value()` +- `String note()` + +### ProposalGoals (record) +- `new ProposalGoals(String, String, List)` +- `String heading()` +- `String icon()` +- `List items()` + +### ProposalGoals.Goal (record) +- `new Goal(String, String)` +- `String icon()` +- `String text()` + +### ProposalInvestment (record) +- `new ProposalInvestment(String, String, String, String, List, String, String)` +- `String heading()` +- `String icon()` +- `String itemHeader()` +- `String amountHeader()` +- `List rows()` +- `String totalLabel()` +- `String totalAmount()` + +### ProposalInvestment.Role (enum) +- constants: `NONE`, `SUBTOTAL`, `OPTIONAL` + +### ProposalInvestment.Row (record) +- `new Row(String, String, ProposalInvestment.Role)` +- `String label()` +- `String amount()` +- `ProposalInvestment.Role role()` + +### ProposalMetaLine (record) +- `new ProposalMetaLine(String, String, String)` +- `String preparedFor()` +- `String preparedBy()` +- `String date()` + ### ProposalParty (record) - `new ProposalParty(String, List, String, String, String)` - `ProposalParty.Builder builder()` @@ -1148,6 +1436,21 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `ProposalParty.Builder website(String website)` - `ProposalParty build()` +### ProposalPhaseGrid (record) +- `new ProposalPhaseGrid(String, String, List, List)` +- `String heading()` +- `String icon()` +- `List columnHeaders()` +- `List phases()` + +### ProposalPhaseGrid.Phase (record) +- `new Phase(String, String, String, String, String)` +- `String number()` +- `String name()` +- `String focus()` +- `String duration()` +- `String output()` + ### ProposalPricingRow (record) - `new ProposalPricingRow(String, String, String, boolean)` - `ProposalPricingRow.Builder builder()` @@ -1163,6 +1466,18 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `ProposalPricingRow.Builder emphasized(boolean emphasized)` - `ProposalPricingRow build()` +### ProposalScope (record) +- `new ProposalScope(String, String, List)` +- `String heading()` +- `String icon()` +- `List items()` + +### ProposalScope.Item (record) +- `new Item(String, String, String)` +- `String number()` +- `String title()` +- `String description()` + ### ProposalSection (record) - `new ProposalSection(String, List)` - `ProposalSection.Builder builder()` @@ -1176,6 +1491,18 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `ProposalSection.Builder addParagraph(String paragraph)` - `ProposalSection build()` +### ProposalSummaryBlock (record) +- `new ProposalSummaryBlock(String, String, List)` +- `String heading()` +- `String icon()` +- `List paragraphs()` + +### ProposalTermsBlock (record) +- `new ProposalTermsBlock(String, String, List)` +- `String heading()` +- `String icon()` +- `List items()` + ### ProposalTimelineItem (record) - `new ProposalTimelineItem(String, String, String)` - `ProposalTimelineItem.Builder builder()` @@ -1189,6 +1516,48 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 - `ProposalTimelineItem.Builder details(String details)` - `ProposalTimelineItem build()` +### ProposalTitleLines (record) +- `new ProposalTitleLines(String, String, String)` +- `String lead()` +- `String second()` +- `String third()` + +### StructuredProposalData (record) +- `new StructuredProposalData(ProposalBrand, ProposalTitleLines, ProposalMetaLine, ProposalSummaryBlock, ProposalGlance, ProposalGoals, ProposalScope, ProposalDeliverables, ProposalPhaseGrid, ProposalInvestment, ProposalTermsBlock, ProposalAcceptance)` +- `StructuredProposalData.Builder builder()` +- `ProposalBrand brand()` +- `ProposalTitleLines title()` +- `ProposalMetaLine meta()` +- `ProposalSummaryBlock executiveSummary()` +- `ProposalGlance glance()` +- `ProposalGoals goals()` +- `ProposalScope scope()` +- `ProposalDeliverables deliverables()` +- `ProposalPhaseGrid timeline()` +- `ProposalInvestment investment()` +- `ProposalTermsBlock terms()` +- `ProposalAcceptance acceptance()` + +### StructuredProposalData.Builder (class) +- `StructuredProposalData.Builder brand(ProposalBrand brand)` +- `StructuredProposalData.Builder title(ProposalTitleLines title)` +- `StructuredProposalData.Builder meta(ProposalMetaLine meta)` +- `StructuredProposalData.Builder executiveSummary(ProposalSummaryBlock executiveSummary)` +- `StructuredProposalData.Builder glance(ProposalGlance glance)` +- `StructuredProposalData.Builder goals(ProposalGoals goals)` +- `StructuredProposalData.Builder scope(ProposalScope scope)` +- `StructuredProposalData.Builder deliverables(ProposalDeliverables deliverables)` +- `StructuredProposalData.Builder timeline(ProposalPhaseGrid timeline)` +- `StructuredProposalData.Builder investment(ProposalInvestment investment)` +- `StructuredProposalData.Builder terms(ProposalTermsBlock terms)` +- `StructuredProposalData.Builder acceptance(ProposalAcceptance acceptance)` +- `StructuredProposalData build()` + +### StructuredProposalDocumentSpec (record) +- `new StructuredProposalDocumentSpec(StructuredProposalData)` +- `StructuredProposalDocumentSpec from(StructuredProposalData proposal)` +- `StructuredProposalData proposal()` + ## com.demcha.compose.document.templates.data.schedule ### ScheduleAssignment (record) @@ -1367,14 +1736,43 @@ Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 ## com.demcha.compose.document.templates.invoice.presets +### ClassicInvoice (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### ConsultingInvoice (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### LumaStudioInvoice (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + ### ModernInvoice (class) - `DocumentTemplate create()` - `DocumentTemplate create(BrandTheme theme)` - constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` +### PaymentsInvoice (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + +### WorkspaceInvoice (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + ## com.demcha.compose.document.templates.proposal.presets +### EditorialProposal (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + ### ModernProposal (class) - `DocumentTemplate create()` - `DocumentTemplate create(BrandTheme theme)` - constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### NorthlineProposal (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvEntry.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvEntry.java index 91a27c9f9..dc9f2aab3 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvEntry.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvEntry.java @@ -93,7 +93,7 @@ public CvEntry(String title, String subtitle, String date, String body) { * * @param title the entry's heading (required, non-blank) * @return new fluent builder - * @since 2.2.3 + * @since 2.4.0 */ public static Builder builder(String title) { return new Builder(title); @@ -103,7 +103,7 @@ public static Builder builder(String title) { * Mutable builder for {@link CvEntry}. Every field but the title starts * blank, so an entry names only what it has. * - * @since 2.2.3 + * @since 2.4.0 */ public static final class Builder { private final String title; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvIdentity.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvIdentity.java index e5ff45f27..e8c05b525 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvIdentity.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvIdentity.java @@ -221,7 +221,7 @@ public Builder link(String label, String url) { * @param value the image data; null leaves the identity without a * photograph * @return this builder for chaining - * @since 2.2.3 + * @since 2.4.0 */ public Builder portrait(DocumentImageData value) { this.portrait = value; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavy.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavy.java index 14b2dd59e..d7739bb18 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavy.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavy.java @@ -103,7 +103,7 @@ * template.compose(session, cv); * } * - * @since 2.2.3 + * @since 2.4.0 */ public final class MidnightNavy { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOps.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOps.java index b0f09781b..01d732a3e 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOps.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOps.java @@ -124,7 +124,7 @@ * title, the degree and a certification become links when their entry carries * {@code CvEntry.link()}.

      * - * @since 2.2.3 + * @since 2.4.0 */ public final class OrangeOps { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrange.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrange.java index 0eba71d02..92ee5af76 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrange.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrange.java @@ -116,7 +116,7 @@ * template.compose(session, cv); * } * - * @since 2.2.3 + * @since 2.4.0 */ public final class SlateOrange { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulse.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulse.java index 7301d71ed..a5b054406 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulse.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulse.java @@ -109,7 +109,7 @@ * template.compose(session, cv); * } * - * @since 2.2.3 + * @since 2.4.0 */ public final class TealPulse { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRail.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRail.java index 2dc44a148..af64d4f60 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRail.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRail.java @@ -102,7 +102,7 @@ * template.compose(session, cv); * } * - * @since 2.2.3 + * @since 2.4.0 */ public final class TerracottaRail { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGrid.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGrid.java index 18b6ca623..4ed4f0b2e 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGrid.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGrid.java @@ -108,7 +108,7 @@ * template.compose(session, cv); * } * - * @since 2.2.3 + * @since 2.4.0 */ public final class VioletGrid { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoice.java index f951ab8c9..6a3a16f9a 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoice.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoice.java @@ -72,7 +72,7 @@ * the band and the sidebar sprig — are template chrome and ship inside the * artifact.

      * - * @since 2.2.3 + * @since 2.4.0 */ public final class LumaStudioInvoice { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java index a51312a8b..a2e549999 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java @@ -85,7 +85,7 @@ * template.compose(session, invoice); * } * - * @since 2.2.3 + * @since 2.4.0 */ public final class PaymentsInvoice { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java index 7ffd4d03f..eef33276a 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java @@ -83,7 +83,7 @@ * template.compose(session, invoice); * } * - * @since 2.2.3 + * @since 2.4.0 */ public final class WorkspaceInvoice { From 038f379c23c96adb01befb26059cdd0a4d1b3142 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 14:13:12 +0100 Subject: [PATCH 31/85] fix(templates): set the invoice page number in the sheet's own face (#642) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A header or footer zone draws in the standard-14 face unless a document says otherwise, and until the zone gained fontName in 2.3.0 there was no way to say otherwise. Both paginating invoice presets were written before that, so each left the page number as the one line on an otherwise Lato sheet set in Helvetica — visible in the resource dictionary as F1 Lato-Bold, F2 Lato-Regular, F3 Helvetica. Both now name the sheet's own face. The change is confined to that line. Measured at 600 dpi it moves 3 885 pixels of 34 794 400 on one sheet and 3 898 on the other, every one of them inside the number's own box; nothing around it shifts, and no layout node moves, because the band is page chrome rather than part of the node tree. The two pixel baselines and the two committed previews are re-recorded; the layout snapshots are unchanged. --- CHANGELOG.md | 8 ++++++++ .../readme/examples/invoice-payments-v2.pdf | Bin 32645 -> 32658 bytes .../readme/examples/invoice-workspace-v2.pdf | Bin 30149 -> 30164 bytes .../payments_invoice-page-0.png | Bin 100748 -> 100732 bytes .../workspace_invoice-page-0.png | Bin 87551 -> 87537 bytes .../invoice/presets/PaymentsInvoice.java | 5 +++++ .../invoice/presets/WorkspaceInvoice.java | 5 +++++ 7 files changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ae429217..babd740b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -120,6 +120,14 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **The invoice presets set their page number in their own face.** A header or footer + zone draws in the standard-14 face unless a document says otherwise, and until the + zone gained `fontName` there was no way to say otherwise — so `PaymentsInvoice` and + `WorkspaceInvoice` left the page number as the one line on an otherwise Lato sheet set + in Helvetica. Both now name the sheet's own face. The change is confined to that line: + measured at 600 dpi it moves 3 885 pixels of 34 794 400 on one sheet and 3 898 on the + other, all of them inside the number's own box, and nothing around it shifts. + - **A violet SaaS invoice preset: `WorkspaceInvoice`.** A brand masthead over a short accent bar, a half-split issuer and metadata header, two addressed parties on filled discs, a service-line table whose marks sit on coloured tiles, a settlement row diff --git a/assets/readme/examples/invoice-payments-v2.pdf b/assets/readme/examples/invoice-payments-v2.pdf index 6e98ee59e9d8199b5b6094002baf850edd837a7a..6d65b071dce37ed4649e825c2510040c554e6f4c 100644 GIT binary patch delta 439 zcmZqu&p7EnyKLY5_Z#i=dXGDDSS{Civxa+;v1_NXeDkb}TQr{s1e$Ex>mkm2 zG&|{{!pgMN>PxH>L@)5A#OHiqUim{XwfOq~cc;EBy!wJ$bhE4?FIQ?_N^wb1YGN)| z>g0E-Y?}iWHpkXGyEvIRJ3G1<7`V9_x|q2+Sr}Uyn!B197@C;7IhzMq zm|7Sb8M+x-nwl9KIypKynVXxKnmU`>DcDeA1PjQF$?bKK^$aW*W6#vi{LLoa{B}x< znMR{oN5_N}&0HNXI*k(QK1`Yzru{Pg=&Bbo5~42GT(3F%#VrgEbe82cx#%PE# zkD1uHihlunzbjc^t=9j#w@*XdQd!f*&6r=$q&a(m!G__TzGSw!sgg|VwoF?mW|WW9*X#Y(g8$g}&J%YzwnBNj<@H*~luEK+~vu;kgl2P)xGy-SXXoVt9} zu;PR7R3HAxFC}|h&8%K1Iq=u=7#!h9ZkdtLCHX8Op;PqQjf8I5Zx#n7XT%boBaR) diff --git a/assets/readme/examples/invoice-workspace-v2.pdf b/assets/readme/examples/invoice-workspace-v2.pdf index 4e45afe8cc73aa78650d3eecbd346b647497a7cb..0dd4896b3148396fdd3c042eab56cf0c4bfdfc7e 100644 GIT binary patch delta 410 zcmX^5n(@kO#tr$BlMm*p=9zXlaxoe5xPG^E^}F!X*Jp0S4vo2mYoD-{vfSmXs9XKu z(Z`DSUctBTo!@s?Z|ZM9k5`kpm1XyJ%=&b1C7bW+4XW;fPb(&znG~{F_U7d`NyiG8 z3r`StkV;@)E7ADohh(bk`oH&QK6drKz}_V0Z7lcSrtk*T4vnW>SJp)ru}(j7^Oz+h>so8I>uiSsM zd*iL9T+^E5>@`;(wjMLLl7HLzPTqvoWd0B4DW`cnL18g@eJL-enIV^|s;j>n7Xb5* BmL>oI delta 419 zcmccen(^ps#tr$BOa=y%3ni87MGqVD9Wvlyy>NH=4`rRaq{kX@tC_Ud)-Z|$v3R$8 z+1fwy%wLxH>iF`nPwf`Hoe~jS$R81WQzFE$W!MB<)+!)dw-LX9V=E zZ0Ei2>&bPsQ{Gp?`-?H9L(H0&D>W~rxTGjGF&D(jPs-vlv`{cm05NPf%S%~A)thqZ z2j%CNC>R2TgShlPT@<2i%+1Y=+{`UpO%04Jj4g~^ot=!$&D`9~oGlFv4P4ADos5ml z4UL_gU7TIr%$-ck4NS}}O)N|;oDH1aoXw5h>=cMLLIRf=li!s@BqcDgKCE7#(9uvP z&?K_%0LQknuy+i+bC(uJSTuA>pZeXsey7X_aZy2Mg>D@&^CR4*{TIx)Z9NinJ2GwO z+qD6+7rv9b*E}^Wa_v9yTNnMT_Fw$qc)i>9;uqKAo@obJfz!m2OI6j? H-;E0ZQ7D#g diff --git a/qa/src/test/resources/visual-baselines/invoice-v2-layered/payments_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/payments_invoice-page-0.png index ee7f1c12b59d88ea60420a7f7fee0e2edaaf5937..525ad665497684ace78f786cf76cc278f26e45ab 100644 GIT binary patch delta 8398 zcmY*eby$?$xBW0^L|Tv#kdl(_L8MzkI;4?q9En$@yO|-RQ%YL8V_@j+9y$kvVTjB3 zyZ1iNz2}ej&$HjN_Bng6wO3>U=1n~2w;GH=8x}OzkF3y~AEDuR;S8)txY%5wtPww| zV9~5O9JoIOj*E{qms?riZ$gkZ7>uu0@{t!f3+x`_iYz}p#&?NW0@rt;^1bW`EmB#H zM3V?eYzPK7#K#tc5Tb62K@OaA{bG0WVP*>-&n-fc=6lB_nQW)zu`0!!UBPut?8=O- z?v^3LkT>DSC(xmpMF*=qL$RE)lMn2pBR5tVq~l~;`aMku`=a`F@6@_(e%Bg-6IG-x z=&K5?vVKYSHW06ni`JR1~FBqr^dIjKXXrj?N?8=Jp8k0z^}A80zEtmje3-Q`Gf*qn*T9HD}xCGyD5P^28+-lS<|m z8)d)t=Iv{RoEB|e+<4WM?CsM?JGH%Yv;STX8P*$@H6!e3kWBegYM99b3`z;4I*`PH zU-nfDZ24AGaBXdqByo;-aqX^_PSW?`967&^e56ztC944W;ew~QHtt70+B*J0kKHcj zqY%kr@$XaMT8UafVV$F+H(taWr)7u4n8cAiUcv+3t^Vff!qRoi56vOELm^Y|e;9$% zBzk_8p1@b1DZ?03^pzPUw^BMH5QYtK{ug(+KP9`?D<>_Muv|g)SI%uWXU_ijyWali zPPWjn=exjl+v(B_)-&UNU+~sc1+X2nMJ51m`#W8eWN$7XiF0#IA-7m-_!hX|*JV`b z&;(GIZQ0KYq70v@q?6BIMzM_#wxQRWyW}TKZ#OnGZ{23M+onVCOFF$_1;A}nrQ}^E zJ@;Qq^oZma9~&cHwnX38r;&3`vIHq9sQUZsSb$95{ygxLzWqXU?)}Noi~?%9t+lJ} zz0Tpz{jkSiGWkbY>v&F)E$X@cS9H!o^&h4x6F_{=uXeeE;|~*Dl_4ApZ`kgyxGT1e z-%yHo9zXWET+5e?91-?*oxZ_-!zRXhy~%pJw>5T*pNc-DYfbQ}+?+iv-3G*0w`Q38 zT>?J3Fm3=0I8zl&)4dWdN;dMHL> zIL~b%o>)+@P^f152WmPntD*S<;~qs}@;V50eDAU9KGG(Y!mrueRMhWhoLVTayxSkY zTINBOQEY56+}R&WfRj;tIEuqzTHD1pg-{y0XuDo_me5L)Uo93|(QTUo2r(j4{-kF! zv0+=>XY*?lnP*B5aXvhc%mD0RO*PBYIIUz73i`3^iE@`eNkkwaK1F<9kcv+_{15Be^a@K#;X9EAnTH_6Ip!j3U<9^0g#?k`$ZtyH0isf8^eu z``aNFDx?JM1BxdfCQ30|kg*ZzH1utY$lSnk0_-<=0RF(Gnrt& zNTttW9oak=7pm!>+rEO&6H`h)7Xqi=+`O3?acG;&dx7mY(!kWePhmmQ*JeKbtxlna z)}&A?`ueJvUBr0B7x>HVFQ&<5@Xd6USuXjItP&d|PD#fLV{99^TX7K#|9*G8HOBEC z9(kxx*fQZZG45Ur+dm$Ki|}9Y7AKHCD_!^l;ZsD6;V^VWSiV}Eql5q)2x;wyioc1VMlin0jeD*-o=j^8 zQZsVnh3Aba;YNMeny4D;V`fEpxkr=+q59=;)7qKh6`Iy_OBTJleM#@Ofa}K_R$hDC z-2M#y#I`<@cH`$C-6>?1a5wDdSrF1)HIBivHPk$G`ITe)o|m-A`H;2Wq1&U#Ik+<1 z1<)f-7#WXoQJ}bT_TV-Ad-t`wA{=rOkHTKs?5Om#7pL%iI!$FO`Fr}})2XCC&!j{* zsw+*40@LCAE!|;auMa=lhVsaTs;Jj9O5rXUxIA2*q}>-DOV8KzZH*!-V&VczlBVA! zHtVpW?OfAps+QaL_9NwzftUT(qSuj^Ay9{nKF{R$>1gcvo<`0YmV@=hewCVfdUW)> zp`!Uc`)u>!bMs_4l+dD*K9x@uddd`_#zJn%DVLLc=$U%BKnIs<+3c|NpwialVl(4N z4_RwH8@WyQ>XY00_M4N6jUbBrjpJz5kPvW+Y2AuGKBoU97{$2NKUy7zf=aso1#&`1 zZ{wckH+>oNC6Q}zBD{f-FnL6~*J`z6oTJl&+!)Lm2a{D-gy2u*N|t=nh4A}cREQup z4j{Fo0niw@h9TkjrYH~H(C%v7gz)Y|O@Eu0uVJR7W*eOO+Mo{gzRR3Vr`dciN$OMH zC&nLd6kks#POrc7p?zx!%4YFj2V_`))ic}P__NJthv|ZfFF(l_wF|Y~lZ*AdO&QW4 z;K{TS`n1Q5VEmFqlX&zEbL1OD_smv!^P;re zmhrh+#{&_l{PY_Dy#>KR&o(ZW)gJ^01VZ&&1fM-sS_+-DEOxI=Aa7)5$gn-0 zU}JwxND#Qh#=(mr(7_rGB%K#9&+P9|Bjci42dgTo0?Q&G`NLCc9t!*Db$374!o+uP z_n1u>xr-EPNL&Et9KPT&~HkRq`L6@%+pq0Of2 z_>4)LVjDNfM#T=4adpTm-C-PeKM2rIspb0@- z632JbIlS@jX}8xD@#QH-O@3p9DG4?(*v+X@JcixeNq^=LbrDvDu)1S#0w(#JahY7m zqU?2v2e6@>1*!ye-C=wG!cD%f`Dn`{?nmcYg0T>s z+ z?$o?jgsxwBO`T7mtmTh--TZ$4Qk7L z$Jd(^@EV{_nS}TD8sa^MFJa-tZT)spIVpE%k=-S?1IYrr#$RB*-~G!6lZN@f+S=%X zaLy1zCq_YRqn@`_KBH13N8&rhe)$poQ)(mH`RM8ln(^+pi5UoRwP$Kh)T{P8o zdp|c{SAHX9f)Nkh{u$4z+2t$J{L5T~R^oDy?$GuZyh?(v3wa0r?Yi}hUGVWr#-k;Q zb58g)i)ouqbGB^@)T)USH>P3QW_bW8BWNl8KLNu-;F@ZL`N1`<20c1F`%C*xzzf+>)j<5QBJro>MhE32+d(tXH&07+1Wcs-%N^|rMqW8M~NVsbbN9PZU=2%jHPgMmL%WR)YjJK z)y&^kvVsf{wagcZu)X+xU)g-rcqCMP+sru+-RKk5Vj{oxWFFm<<*_XMW+lPwT8E#2#>!sc@k`N+pyeSKAg#mM6$ zrgH=2&`&4Ls}fdqv5`>J`1r`kr6CJqfe7+P+yfmx#e;s9A?}BG6h=}IoCU}c?`{dn z(`7|aOInG{F^}l6E#*%g)wNcrM=t)c>3(tFnR6BpGO=UGm`l9VXH|S7;qf}kQ%l`i z^(Prst<_3Xfc4m*dOCTP#f%1SVtKM!-Ti_Vww$ukFB7oiV(`#|z&Ot}WNF4Tp`>ZF z?#u8i?=R#lt@e790x)B&~rTAih+HAOZXm~#p@LS9?PIR9)CH392@oGEur_xuz| zlc&eKVVrTCjY6KVdqS&S9R1PtKMIBndYIqqI1&;pq$K;(n+Kq#PtHY3#!lojIn2G~ zVhD50F_eWI!$IFr!O`ayh=6S5D9)~i;iVQ9f3FwCb%kW|-t~KWAjD}Qx-0RUhA@H} zV~;Ju>rleG5%ceWGiU0mBrFN3%gJ6>>O@{h1 zqkY#(!DglXlKTz_rp}`wFV){fDcju9oBe~#cUQxcJyIG$vR0(*eJKH`Yo7@?5myPK zt$~j#Oy-Wr86OH9QT(aQ%9@0Qaj&3V1Vf_l$BHLJC~c5>-ND$D^$ueF8U|EV0=u&< z@*|nTCcLJ7C6J|-c{cSwk-RIlKG#Jp)&h+!$W7lm&%&NxUxR5A9PDbsjh)-T!t%sT zH=su^DThVrD9c1mN9y4bpsE-4y#M5e`!I-KAbi%6 z;$DP;Qe9i1&h4ur=XomQhi4;M6N`UXCwnTp<*y7k`QR8xkLdb%=1xMoT)0x07>vzkirek`gvT4Q-QF-CmOeggv@-!TPZGqrxNN>AKVh)f06I(KHj-V6etPqofiNlI@N^1h z4AzjH!|!|?$Z=`_6rJYa|Lc9-uw>BB##qD1SHL!BcoxFJ6&{!mb^dszHrO2fD&6(* z+@eJ*VaUifH`@PLc$+L&-RsTP7iLiMdt0@5k`h>U@5+BKVLnSMw2>0?8))$vlN7uG(>?~3u6NoAo%Kp$~^2|w#_`?U< zfXgKjcH7F2?mbE_EugK_%DxLjZV7d83Rw$`?^G%_8Gt7r72S`G8>r)rdm?= z>l3A+F($B3x{Icw>t{_K{ysgFHPOH=?SK6pI-6Ugia&4ysbu4fURL21Cu+6@#jI@a zlN;aofmjeE-M-Xc8(w1z#}qL+jqvmWSIM_6^Oqs;p#d17L2Hk`vWpPin{agnN-@{s ziHoK*=augyQ0D>o2T@zKXRpJPu|Y>kRvTs@wWq%Aur(uHQqj~A-nRTIyok}lYMcT3 zpw*%TBA1ygNml~SvQK=$T^sXNo%2 z#rrJJxAo~YmrXr!NB@P^Qtg$E6SE^rYu(d6y1*JW9hX`iOTnKi!T?+6C0<%4WJgOu z;B}ggRfFPORmVVGg-5!GBh8}Cw4;;YM=MNc4IcR}7A@7v-9nY0%G_yWa}KG zG3~<)##;U@DVZX3N}}feXXXpm?5Ls=YT+~|oos$`*z{aQvNb!?9I2tc+20_)m8!8f z{X%`4S)XeWs&1Bu9l({J8kx_WmNN@c`%;A3iA#UUKfV!$I;cMh;wknJ4aj2CK&2733NZz#JoQ`sB z*}D1u+>?kwm@e1inbkJw+x1m|X6cEx=5 z6oUk_$2W2Y+RqX3mM)jznX;w!qcqxwz8OLzZ&1gJZjophil(yMziO%}O+AB2TYEiu zT7|xu$*DVHc`RT?Qk3W@0+F#a);Esk(5ZmZ73z^+b88>PMufpup}R^Du)oZ2}_<$R-wy@NMsAw0YW7g_ewQ)iW-cZj*1DXa8X z4Hrd9tsVsb&!}_xZjiOQ0C;>N^5nPho_TI4wG9Os6_3TMa0$23(qT1N_@oPpm{H*- zD*G`xG?Pa5=1ZzHy>q*M(?FwvyE9zF$kq{9F|X^_)FD)jEsgl+9~?SG87XZ7!TH>i zWbzG>UR?HMs(Q|9K-2a5iMz^k7I^`Od=cS;PF?_lDxyuY+&4RHJM%Mr5YC5BD~aew z3tlAh{qwU;I36Ph8iU!7J-%DP;p36!!4ZHtxN4$lIjKBo$36aTQi@yV^{cKAgS3W# z_r7k)S90#u7(Qt#{B4;&A$Kp{I8&XxC;68fMu!L3cJ$9LRX&RLC?l#Dm*u9H>LGD- zo>5n$H3Oj|9=1QFyxZK0$AUvpKjxPdVNmt=be#ne6h;tmDE$4SDAWg{KWQg?JQbVy`D2Y%`xo7a?rjDvwV&uI;^B0*uAj<0>yaf zHniXKw=unZ5ouD=^1Y~6MQ`BkdD2Yp;k@5LkS@sV;I8-EE?o@HJBwt;*6vNdNSc{B zA)ObRF;vdwT@7h5+0E`g3eDKk^4E$u>QA^+35AcB`XZN7^>o2+R%^=3JdIzReq-MB zXEEBvUFKWKeW%M#pd~X-wi6L%0k{zJzWaPW7J>L<-pW2zzVCz3%=Tl7ZB6?Y{2}ri z;)=%|YnX?QIg6boc!OJ(h?a?#7YV&+MKF@9h?yNdB3=eVosFS5?kVZen9(=)IVqy4 z&PV)OHhIeC3bC%^cTX%puW~xqHA_QKMVLSsFU}K1Zy~ymxX*rbm*_xa0jee;L8|Yr zS#KFOBJo6Y_Gzj)_oSCx#C;5WhNvsCQepz$eQUA~8uXpphM#5^8O=B=FJ`L2S-N{! zV0_CzNRT*3Jf{BN8~ok(b&y$RNSx;Zx^g7yav%EkW1n4XfsqEv|0X@q9p zitv7k7NxFl8;aOdfQj08Nhw*km75A}eR$-__yk^ce6RRjJK!xTGP~E$M@591x?!+i zs(|&f4=j520SSHwyxO_DakusYf!sj@ocHnLd%r`CLkJNo|_iFZWAm@=r;L;cz z0fsitg=cb(OZS$2-OB=*Ijl=tiYYN_>7Qgx#&%WkY?`>-p49-`+3gq72{AH%7Aho0 z(=y$bxQ~ecJPFEsonq43MEKl;;__=_mzR*-1DPYLbKsW)Zb(As#}ke#gj13?PFFLo zDun(cntKv>O%-CdX|OKCY%Anz3Rzn)9%7zzWhA1GULsK=Lh7F~R1SM()ns>X|D(xI z^WZZZlQTkGxU+A;y#tZeU|$s#5TC_S>T1&1us5s4MnXEp;j)v{Dc<5vvlgssCN7k3}?{|DS^%hs1dFHcgM6@h0KD9*Xj2d*#U zT*U5RZ1eyIk;M(_s$&$4dTND8`jUAY4Y6qbwPzm@kQ2Ljt%@V_g{M-U6CD*N4KnF} zol@^4xp|snDGPr7FizPu7Ux5Bsh_QjZXZ_lD=xc|QPuGYRm@hchv07RG|eBE z9b1D2{cop=PQPygY#eVO&L3?uxzF(y|FlbLwtkfG8@9XjZh51`^52PtL%G?u4p=N6 zgMLzTv|+`&XS>`aZdGANMWs=T+nYd}cP-?N)@$@jdesb)zcNhd`#lKTM>2V#dj^Jv zaXB}Mj8C{$-usgi322h?`O4%BH-?Xk{O`XKYdx6Rsp=YEDW=HO&&t%o*YO~q!Z64o zfGq~zzt*8lpjkMg2-EwL^SL=wdKTx`i z!Df$bwf&5i;s<2)e|G;_f<-)<76X&Y?h^ew9ZKK;&SO+WGANsQ8*54%uiUog`~U1f zrQzHJbB#8pduzFc`hky_+^-siZDbR{4S9BsmN(y}3(YqYx_xQ?&o=sX#lNnpoW%Tj z*?B}BXVR#NN5RgxOrrJL#3UFY?d4^MARWVM!Q{4*E{g|uX;{Q`C$Hqe&hIn*_hzbB zx$EY@sTEZuJzf)RAF3&Yt+;b|3`Os;*BaK*sLTRJyrg8h9E3~3ueNfr&){>-NQ!W5 za;8&XCnE50MiVO?*?%8s-T1++I9LLFAGA#d9;qz&{r|_Djr^YQQ+EHF`&eY_KMzY$ MR!ye-{ih%Q1z}Y9uK)l5 delta 8421 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 diff --git a/qa/src/test/resources/visual-baselines/invoice-v2-layered/workspace_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/workspace_invoice-page-0.png index f55e72757621080833dc71ab661db7806f4371e4..779b3cd0a1c98067735effb9d5f6803030482b86 100644 GIT binary patch delta 17773 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
      ipq#qVC=&`dG5+W@ZJtVI)zr4(VkR>IN(RuzW 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 Qs{jB107*qoM6N<$g5S+>?*IS* diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java index a2e549999..0ceed8df3 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsInvoice.java @@ -12,6 +12,7 @@ import java.util.Objects; import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.CONTINUATION_MARGIN; +import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.FACE; import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.MUTED; import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PAGE; import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.PAGE_MARGIN; @@ -157,6 +158,10 @@ private static void renderPageNumber(DocumentSession document) { document.footer(DocumentHeaderFooter.builder() .zone(DocumentHeaderFooterZone.FOOTER) .centerText("Page {page} of {pages}") + // The zone's own default is the standard-14 face, which + // would leave the page number the one line on the sheet in + // a family the design never uses. + .fontName(FACE) .height((float) PAGE_NUMBER_BAND) .fontSize((float) PAGE_NUMBER_SIZE) .textColor(MUTED) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java index eef33276a..d14b17ed0 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceInvoice.java @@ -12,6 +12,7 @@ import java.util.Objects; import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.CONTINUATION_MARGIN; +import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.FACE; import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.MUTED; import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.PAGE; import static com.demcha.compose.document.templates.invoice.presets.WorkspaceStyles.PAGE_MARGIN; @@ -159,6 +160,10 @@ private static void renderPageNumber(DocumentSession document) { document.footer(DocumentHeaderFooter.builder() .zone(DocumentHeaderFooterZone.FOOTER) .centerText("Page {page} of {pages}") + // The zone's own default is the standard-14 face, which + // would leave the page number the one line on the sheet in + // a family the design never uses. + .fontName(FACE) .height((float) PAGE_NUMBER_BAND) .fontSize((float) PAGE_NUMBER_SIZE) .textColor(MUTED) From 61f7ea6130dc35b6c64eba0a3dd86e149d5a966a Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 14:20:26 +0100 Subject: [PATCH 32/85] feat(templates): make seven CV presets' phone numbers dialable (#643) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(templates): make seven CV presets' phone numbers dialable An audit of every committed preview for printed contact details that carry no annotation found the same gap in seven presets: EngineeringResume, Executive, MintEditorial, MonogramSidebar, Panel, SidebarPortrait and TimelineMinimal each made an email and a profile reachable and left the phone as plain text. A reader on a phone could tap every contact on the sheet except the one they would ring. Each now carries a tel: target. Five already had a link slot and were passing null into it. The other two printed the address and the number as one joined string, which cannot carry a target on half of itself; they now set the two as separate runs of the same paragraph, with the same glyphs in the same order, and joinPipe goes with them because nothing else called it. Nothing moves. The full gate passes with every pixel baseline untouched, because a link annotation is not ink; only the eight committed previews change, and only in their bytes. ContactUri is the one place the conversion now lives, rather than a thirteenth copy beside a contact block. A parenthesised trunk prefix is dropped and a parenthesised area code is kept. A number inside a referee's free-form prose stays plain: an address in running text is recognisable, a number is not, and dates and reference numbers look the same. * test(templates): pin the dialling rule, and drop what earns no helper Review of the change found three things. ContactUri.mailto had no callers: a bare concatenation with no rule to encode earns no helper, so it goes. tel stays, because the trunk prefix is a rule. Removing joinPipe left a stray blank line before the class close in both presets that had it. And the rule itself had no test of its own — it was only exercised through seven renders. ContactUriTest pins it directly: a trunk prefix is dropped, a parenthesised area code is not, a local number keeps its form, separators never reach the target, and text with no digits is not dialable. --- CHANGELOG.md | 17 ++++++ .../examples/cv-engineering-resume-v2.pdf | Bin 32109 -> 32182 bytes assets/readme/examples/cv-executive-v2.pdf | Bin 37700 -> 37991 bytes .../examples/cv-mint-editorial-v2-custom.pdf | Bin 22526 -> 22903 bytes .../readme/examples/cv-mint-editorial-v2.pdf | Bin 22506 -> 22886 bytes .../examples/cv-monogram-sidebar-v2.pdf | Bin 45039 -> 45395 bytes assets/readme/examples/cv-panel-v2.pdf | Bin 38293 -> 38584 bytes .../examples/cv-sidebar-portrait-v2.pdf | Bin 42450 -> 42788 bytes .../examples/cv-timeline-minimal-v2.pdf | Bin 45160 -> 45270 bytes .../templates/cv/presets/ContactUriTest.java | 53 +++++++++++++++++ .../templates/cv/presets/ContactUri.java | 56 ++++++++++++++++++ .../cv/presets/EngineeringResume.java | 3 +- .../templates/cv/presets/Executive.java | 47 ++++++++------- .../templates/cv/presets/MintEditorial.java | 3 +- .../templates/cv/presets/MonogramSidebar.java | 3 +- .../document/templates/cv/presets/Panel.java | 47 ++++++++------- .../templates/cv/presets/SidebarPortrait.java | 3 +- .../templates/cv/presets/TimelineMinimal.java | 3 +- 18 files changed, 186 insertions(+), 49 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ContactUriTest.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ContactUri.java diff --git a/CHANGELOG.md b/CHANGELOG.md index babd740b5..857896f71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -127,6 +127,23 @@ follow semantic versioning; release dates are ISO 8601. in Helvetica. Both now name the sheet's own face. The change is confined to that line: measured at 600 dpi it moves 3 885 pixels of 34 794 400 on one sheet and 3 898 on the other, all of them inside the number's own box, and nothing around it shifts. +- **Seven CV presets make their telephone number dialable.** `EngineeringResume`, + `Executive`, `MintEditorial`, `MonogramSidebar`, `Panel`, `SidebarPortrait` and + `TimelineMinimal` already made an email and a profile reachable and printed the phone + as plain text, so a reader on a phone or a tablet could tap every contact on the sheet + except the one they would actually ring. Each now carries a `tel:` target built the + way the rest of the library builds it — a parenthesised trunk prefix is dropped, + because it is the digit a caller omits from abroad, while a parenthesised area code is + kept. `ContactUri` is the one place that conversion now lives. +

      + Two of the seven printed the address and the number as one joined string, which cannot + carry a target on half of itself; they now set the two as separate runs of the same + paragraph, with the same glyphs in the same order. Nothing moves: every pixel baseline + in the suite passes untouched, because a link annotation is not ink. +

      + A number inside a referee's free-form prose stays plain. An address in running text is + recognisable; a number is not — dates, reference numbers and amounts all look like + one — so only the structured contact field is linked. - **A violet SaaS invoice preset: `WorkspaceInvoice`.** A brand masthead over a short accent bar, a half-split issuer and metadata header, two addressed parties on filled diff --git a/assets/readme/examples/cv-engineering-resume-v2.pdf b/assets/readme/examples/cv-engineering-resume-v2.pdf index dec3ff8a28bce5755a0aac9c0cf2c1dfc187a296..8e2bccd5d09ceb90f5e56a2cf08788f68a150ba5 100644 GIT binary patch delta 6633 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 E7x(A8q5uE@ delta 6532 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 delta 5492 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 W*FPgths%T@ShNmARn^pz0Qnc2M2Khr delta 2640 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 O&douBVK93a68Jx{p4!&{ diff --git a/assets/readme/examples/cv-panel-v2.pdf b/assets/readme/examples/cv-panel-v2.pdf index 1375fc645de99145e3d8e2bbbfab11bdfe6a48c9..61685bead8d802945e4e702154a53a3e62e08311 100644 GIT binary patch delta 7854 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 delta 7556 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 delta 2456 zcma);c{CJ^8pfGIjXgvOV;Ng%X3UrwOkqNX9)SFhchAQNfYhlm@Es86MY67DOR#o*)L7*E zvH&Ei=EnUT8P*C&k|mdoVLIP~PmiLfIjiBzp;y_!HsEl25?Txv{(!Nn?TA5eeia9-;jZaI z!Fl@=-POsx&+|3GwIT)bem>^>wLTW7)`Tkvf_AgV&}<##DLyIdwDgQG zb5z(kw(|AYN0KvLZvBHM`vQ~>W8lus4knzhXUxF+q%;Y|ZoF%&czC%k_-NB2bLsK|Bf{>=y9K|A1zNyFSuRQ5Ykc{| zn^2R0A%mTR>5kQ=W`~W@k>5|v@QRT0dfZsQ+O=vH#hh?0qc47Fy%3|1p}wi5&w8)y zTyx(Q*~D+JXR-FyXRE#FxWkRx(AuTApj|q=@{JdEAl<&Eq<$8naEN-;tPoZHfm5A5 zalQ~cXKFMYKpPB8dZ}DaE{p-?Ep(<# zCRr783cFj*|Ey46n4_`#^?amd5z#lSZeLQ#8x9GUes<9%$hvqU(#`UL@-Ly=5+CH) zOr?!)4RSn=??sku;6UyM&-kLP@;rc804pl=SY|xeUf>dxTxAZ)phc`JvjP zvUEQJr9`VU!rTl*SWX{n1KY#X&t)(l1Wz*@RtJWp)V8CbYER^b>9fsW9xim{(>6aO zhw?6WWHfbSzni%^k9o8SR(%kkjNC;)&_l9L_~v-ok>ZWfhN?!727-89mQvUgrHzM# zJm2)h5l(E-=Th0SB1K-gxsy~Z&3IG~i#Ips|MAD#KLkQqcgxBpb0J+41!+vaf{Cf3 zU3ErUwbM(%yp>Zto?mS0Uc@$5nKjm6Y7!dClYK_l{`v^3TrW0svcHZj?S3}77Kg__ z=FVP2zYgj4<&Vjz;G_&Ai|qIZJwE&aFQLj3Q=((KbL}5bYbL008)Q3@W$)?Nb+U(J z3M||+=858-y4pCDAqNFXXEPPN%Ph?qHfc?_oWk~J_$;{rux^7mlW5j~<2v`W`yk%Jdq0{3h}hwn_DI=FVpa!y&i>xs_d#(uc0d2UAM#qd@y zy&Jz8CF0MlmX;l%hfch|yD2XG{B;RGgd91w1$$Z{kZqXf*)Sjvs$dEwB+i#FSLf%M zT5Qkz&8mo6zI*BHv-jKwtH^vYD!nLV`?HH1GU*Brr#K7Me=_MjKhP33(4@j6;_uHF zYV|VhbVmOL3I_u#NaLoL>DnZh5eBJ6A|iRIRrQ zi?;a8MVcQLks>dN2U-8(Cr!Cd6j%hvQM_qJ!;JR>PiC2F3tnMxJ-uLG>4I`KaLcxAt=;cZa z1YLptURayOP-aiLweeLR!bEd}x_Yp!t)!UM`4%HSpjlz+TcHHQ;yF0f)hWDfYDL8M zX~w;I(edugVVZ^B<>V7PA`c>TfKTv1M)o(!Q?9;IH>Z8>THxzjbi9(ghJ0P~aA9T~5|rHT;6#V9Py+i$d`Fb5Si2?if-qea8VCjxEQ!E>0hB>~&;`Nq$twMQgzuobKmymKAkz|%$)hYIS=1AKLP2Vgp>=(L$FAWuzUzF z1dHNaQ+RTSXbxPF0)b#LoY>R)hlu6W!RfppK~)MgQ1Jzg)TF?dDlAY#T@tiaT?6mp zq(CRNesGF$=&J{TM5Yv{Mm{7a7cO7=}QA8W};E;f#Qv zX~NK}Ih~Y{P`Nhg1H}4=Tlu5+YuB+i^U~$pOmnbli*-Etq9I`j%;OqJt@Si8&RkCG zU7K`DcdjgNiTc(Nn-e{|^sv$z;iRMSr1af;L`6}7(i2y=&mh{97}u)4T#9x}5X*S; zpfoc~6PWJ0TB_7B)hL*iN?}{B;+~+|g9M=~?QJ|H%1t|&wRHHA6jcj@3v$?BSK7~( z%{=Z7gnN#$%M$>!r!@;(6`Xac`y@_*R>7k9letQKzu&+WBnT|WDYdVs35nzUBu#v- zGes5(j!IG3aqc1nu?*yyldUz$7N^eou@1<prr6#B61zoLU1huGYlg;(fED5K0tk?3hm7@Q%vH4m#{p=QRVs zx5TlvjpLE{L4bb(B>=MyICzP_vSh zrYZx@+|xn9Z3a*pHUk*l{! zD{VFrMVq*C`yVb`XqT8p7WF@QF2O9@W#d=1!8f9Dc8RyiqVP{mwB-okrosrhTvR*- z=af*(JsOcId@ImO=c&U3lGnAiwl?F3j~WOUXM2`>EiI-as)E`q<`(-FU)>k|Hn-^6 zXWXIl`>KD$&$#}8;Jp4z)9x~g{A<4ZfwsdE8KT#pX zzV6HRYH_?_@rY2?I$qHSsHg2N$!)e7?k>h|G)6V{{^vBK7 z=iSV-c6+qeWj-OJg2u2IojogjoRKR)Fh&@6?MCdbC77|uu2U)fyE{FL4RqC>hUgtR z5kJiHS#W$fYMs4xXLdL6lN)<<^N0Q5TtlNred&S*`q=w)S)md@jZ*AHa zekgARe*_v1ludy>UGB+>=+5yTj=RAhUEjd`$z)m3x1^8jr?rj7=(q&l%G7 zj(f|!iLP!weM?&8ZKz?F(PZC@slSWXobK!9#0{uoS2~p%Q(l!fvqC3Tthc@pOM*x~ z+gBMmQXf>r)l|^cbDO$b#8rZu1sjAW#Q+Sd;3Iy!=q6z7g~5{OR=-!E&}6ydB*A=8 z|0tB;k*4GyA!&bfq~FvpZ6fek%P(4~5WX;J2^W6)Z+X1Ev_KPx&}9+90b}mf!gj@g z`j1>|m%hRxS%lWfBY!yNBQt7wgz7^#W!ieomfF zZ}-r36E=Wau$~}Khgw%NCOdTJ;=L;p^l#NZ1y2{xvo%bn(65puk~O%UJjbTp-p8LB zQ4wn+YR5M@v)mk+2->ZKUnJ9KZ7@r%_m+pJbZx4rDAb=add1R#V8GgHB9GutzV9rQ zkEt9*T7R(6l6{<4L6zryb}nAnD$Dx*WK-0(1Hc1-qHbTB^*eh9*~%aBD-qRah6?Co zHlum?5}OFC^H#JD*)*c1R#i~;tye9=YWE11yZ!>&FVo|6!%3+ci1?zqiIh`=3kk^* zO_$tWC5OEut0m@@iwoLp$l$(8%Oyl5qy%=7UsDSm5IC9d0!I?25^k1Pm1;<3XjK>a zt;zs%Nq%*3&mISg@4R~zYZDe?yH8AX_Mtd;wd#LeWj`)2KE){BS%P`t0zf@ODv8$~3Ma*cr zirU(n1@)j2kG{KovUc|SgY)go7{!_9Mt5(Y^(uz=d{kw!Lv}WvbWTeW@D+J2Vh{r) z27MQHr}zeVWi&jpeG^~4Ta}nrZ7A{9nRk2BDM<0!s?ofMNtg5pR(g8_-+W<2tigr1 z{B%s1WW$Eb3QZb+r!|?M^I2AlVUOh2uJLs+SlMZ^pKf-1RQ1PR?{IFBSU(yZ#aCI9 z3#}Y=Ux43v7Rh@;VJNMehrmrq{c^*wN%mevn9IRQ!W=@e>UvV3Bw^2`X|Y}jN}t%{ zok*R+F+Lqj<9HnZJe7M}en@kV_Blwhb~9;e{L(3Y8hBS-62RmB?d0R2x=x{?;V{&p z=>*laGKYB?;IRav37L#CC*jQT=B8)@5vONjZc5ZMLt-)HLjy;~kjza`L>!8YF(VVv zXj8Nv35i0Z^w4Oc9>xgvFA+}vXU6&ey&@E+fIz6O^TlfcFg*TnLb`vzRhSp@kbsnz zNZ?O>C&)Re_({4{%=HN&d2xA*6E&Jfd^W|;2U&Rt^TJS8D{v;jPR?B S!&R|ZJe~+uQ6V{yp??FdW6fp& delta 2480 zcmbuB`9IVN1INuoG)%6^Q6o2lFk{TYI+|g|eQTPUT}eWYdV2Qtdj5jvr_by2{^9+@=cmtG0eEo+TrUm>qm6k`cqj;r z#_(d4Dt;uEr>;x|gV8wNb=9AKB%ar*9u5KwU%9x zV(4-{#3Sk=#L!vA7z4PmCS!?`Cwl{CbUj6OTy)jF z+!<|1so|sg^Af4lo|cUG1RtU;l3}K$4<4I7l2P(oD6X?Oqx14W9jOcEhszyNalb_i&T1yc~?DW=&Ioyc9vF7-+O5 zhwml#^i#G-U!`RS0;or<7$+5-Hmap8Bo$0Ti$u^V}m|ZjZG8L+q_2}s^%qI zsHE`*Hr)O2`Jjn+K_+I#A0VW8oo^b)h1!9Ru6#jJ<1oAS7nFOjZIWm(Qoj4c<_@?E}&h3fL1 z*JcN%I&q=XVYoR#9Ib&Fr?-3}AWko7uh5sT{QH3V>O<((0d3`@^3aMU_5>v&(*Jrz zc%)$FAUs-7q?Bq?A-UZiwqA5~hfQWP_Bf5D<%#BQH%!fXEQba~OMjW-?aDw!?(SlanYT9r$gZbZqNuJx@ zmkn{fgDu15C8MzC#RYM+ykh#UMUu>0C7RRJ(tgpmw&GoV<;zru7x}3MlR?Dya2Iy@ z$m585sEg~;mYaQvOc_r$NyztWS`7QvmMu}T^C`tx-fZB?rdn_Dw3+mg+cl*o4;C99 z*d@eB@0X8iuT1{(dCPCRbA~vcAN`dk)ch6hbIT$u%_6$ALgt(4ZYAn9jMv11#}>}{ zEe^~fwC=gQ6(y1`z}~}^)j#au-^9Bs>>yB9{j&!_RbGv(7vRqL2`nqe1JHj zC-$XHtcA0d zj)3d9%s(x!xb+_YH?>ZQ?yB(zsSBF-Pl$M)z_j-tWPG82;&C<@87T;~MfahK zCrl1i?t(0=gR1R>MYlRF4?vES)RvS*4Yv!Os)9}R%TIh&Yh1^|%4=yQwZrJ8jbSne zbl?2L`Gm#>2X9!L>WAObU1D7USj4q*y}{g5&o#0XBR1Q8y94HhwJ;TdVrZ<_wDA2q z`1WD?~9LrS-nP|vDaKkeRpQf%;i`_Lt zoBa+GS2HlLZ4Olnvd+1>B!w>7xeggt+MF}>Ns5Vij=Nku0f@@Jn!hBwWX?@@k5Ku` z>5q>zu_lUS?fO8(g7^3<+;m~oJrRdA@7YWiPhx10-D{KX!!Em>-pbJ}kgIyUdEdrh zqjMv%b#hqrK{F^Z{L8IXbY3H%_bDuN{8|+^WrN;Iccblv`Hop=#~Zl9xg$BymcxG9 zz9-pm&e^6MqpNezCp^db^DK<%-lV&Ri2bs}C(3nf?T&+ZO4#S_9BxiC?lw2Oxh3wy zCbjo8D@wbJJ^SRP^;;n2Q+C-EKDv2)D3QqBxrmK=GqNr=v7cojDrZM8y;_ROoe6qJ zMZ7Ng4YJctn&*q~+I*EZj_kRA(F+Z@!QPhYId6S#%N=5fqPE-&t9*pj`KU%60C7Z9R z9~Y{q%2b_}#gn|U8>_vA=rqB;Ze+M3{<~-Uqc%08aD;X^s8*hm2~@{%oQ>4wZ>TWI z^1YAL7@J^1!V|497;6F!izi}Gcxxoy8jG|x zCJ_i$cx#Lmkw73CqcCVB21&+|jYvczG?8e9A``8!D3X6d*G3KtiM9MfVM7bO(IDNzmVLSA@!t5osuBL z+MJK=NEP+ND%MC0uY7VvaO3`pXkM5ofTowRA6BLYWo8oI#@sn*A0_dV@Es^-&z!Ib zXIA0^Viug!Ogu7%D2+Yg>DH;g6kPNVnGjw(Pf^qU$ozo&)@CKXZTp%mN~^%DuIa=$ zKfAD|-nEvery preset that draws a telephone number now routes through it, so the + * rule is asserted here once rather than through each of their renders.

      + */ +class ContactUriTest { + + @Test + void aTrunkPrefixIsDroppedBecauseAnInternationalCallerOmitsIt() { + assertThat(ContactUri.tel("+44 (0)20 7946 0832")).isEqualTo("tel:+442079460832"); + assertThat(ContactUri.tel("+44 (0) 20 3966 1900")).isEqualTo("tel:+442039661900"); + } + + @Test + void aParenthesisedAreaCodeIsNotATrunkPrefixAndStays() { + // Only an all-zero group goes. A US area code in brackets is part of + // the number, and dropping it would dial somewhere else entirely. + assertThat(ContactUri.tel("+1 (415) 555 7842")).isEqualTo("tel:+14155557842"); + } + + @Test + void aNumberWithoutAPlusKeepsItsLocalForm() { + assertThat(ContactUri.tel("020 7946 0832")).isEqualTo("tel:02079460832"); + } + + @Test + void separatorsAndSpacingDoNotReachTheTarget() { + assertThat(ContactUri.tel("+61 402-938-209")).isEqualTo("tel:+61402938209"); + } + + @Test + void textWithNoDigitsIsNotDialable() { + assertThat(ContactUri.tel("ask reception")).isNull(); + assertThat(ContactUri.tel("")).isNull(); + assertThat(ContactUri.tel(" ")).isNull(); + assertThat(ContactUri.tel(null)).isNull(); + } + + @Test + void theLinkFormMirrorsTheTargetForm() { + assertThat(ContactUri.telLink("+44 (0)20 7946 0832")).isNotNull(); + assertThat(ContactUri.telLink("ask reception")).isNull(); + assertThat(ContactUri.telLink(null)).isNull(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ContactUri.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ContactUri.java new file mode 100644 index 000000000..3c08c581a --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ContactUri.java @@ -0,0 +1,56 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.node.DocumentLinkOptions; + +import java.util.regex.Pattern; + +/** + * Turns a printed contact detail into something a reader can act on. + * + *

      A sheet prints a number the way a person reads it and a reader's device + * dials the digits, and the two are not the same string — so the conversion + * belongs in one place rather than beside every contact block that needs it.

      + */ +final class ContactUri { + + /** + * A trunk prefix in a printed number is for a domestic dialler and is not + * part of the international one — {@code +44 (0)20 7946 0832} dials + * {@code +442079460832}. Left in, the digits run together into a number + * that reaches nobody. A parenthesised area code is not a trunk + * prefix, which is why only an all-zero group goes. + */ + private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); + + private ContactUri() { + } + + /** + * A printed telephone number as something a reader can dial. + * + * @param phone the number as the sheet prints it + * @return a {@code tel:} target, or {@code null} when the text carries no + * digits to dial + */ + static String tel(String phone) { + if (phone == null || phone.isBlank()) { + return null; + } + String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + /** + * The same, ready to hand to a component that takes a link or nothing. + * + * @param phone the number as the sheet prints it + * @return the link options, or {@code null} when there is nothing to dial + */ + static DocumentLinkOptions telLink(String phone) { + String uri = tel(phone); + return uri == null ? null : new DocumentLinkOptions(uri); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/EngineeringResume.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/EngineeringResume.java index 40a190c87..195edbda9 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/EngineeringResume.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/EngineeringResume.java @@ -235,7 +235,8 @@ private static List contactParts(CvIdentity identity) { } List parts = new ArrayList<>(); addPart(parts, identity.contact().address(), null); - addPart(parts, identity.contact().phone(), null); + addPart(parts, identity.contact().phone(), + ContactUri.telLink(identity.contact().phone())); String email = identity.contact().email(); if (!email.isBlank()) { addPart(parts, email, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Executive.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Executive.java index 95ae92d35..626dc63a9 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Executive.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Executive.java @@ -145,14 +145,31 @@ private void addHeader(PageFlowBuilder flow, CvIdentity identity, .padding(DocumentInsets.zero()); Headline.uppercaseLeftAligned(section, identity.name().full(), theme, nameStyle()); - String meta = joinPipe(identity.contact().address(), - identity.contact().phone()); - if (!meta.isBlank()) { - section.addParagraph(paragraph -> paragraph - .text(meta) - .textStyle(metaStyle()) - .align(TextAlign.LEFT) - .margin(DocumentInsets.top(2))); + String address = identity.contact().address(); + String phone = identity.contact().phone(); + if (!address.isBlank() || !phone.isBlank()) { + // The number is its own run rather than part of one joined string, so + // it can carry a dialling target without the address being swept into + // it. The glyphs and their order are what the joined string gave. + section.addParagraph(paragraph -> { + paragraph.textStyle(metaStyle()) + .align(TextAlign.LEFT) + .margin(DocumentInsets.top(2)); + if (!address.isBlank()) { + paragraph.inlineText(address.trim(), metaStyle()); + } + if (!phone.isBlank()) { + if (!address.isBlank()) { + paragraph.inlineText(" | ", metaStyle()); + } + DocumentLinkOptions dial = ContactUri.telLink(phone); + if (dial == null) { + paragraph.inlineText(phone.trim(), metaStyle()); + } else { + paragraph.inlineText(phone.trim(), metaStyle(), dial); + } + } + }); } addLinkRow(section, identity); section.addLine(line -> line @@ -229,19 +246,5 @@ private DocumentTextStyle linkRowLinkStyle() { DocumentTextDecoration.UNDERLINE, ACCENT); } - - private static String joinPipe(String... parts) { - StringBuilder sb = new StringBuilder(); - for (String part : parts) { - if (part == null || part.isBlank()) { - continue; - } - if (sb.length() > 0) { - sb.append(" | "); - } - sb.append(part.trim()); - } - return sb.toString(); - } } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MintEditorial.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MintEditorial.java index 2105d3011..c4307cfd3 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MintEditorial.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MintEditorial.java @@ -694,7 +694,8 @@ private void addContact(SectionBuilder section, CvIdentity identity) { String phone = identity.contact().phone(); if (!phone.isBlank()) { IconTextRow.render(block, glyph("phone.svg"), ICON_COLOR, - CONTACT_ICON_SIZE, phone, style, null, + CONTACT_ICON_SIZE, phone, style, + ContactUri.telLink(phone), DocumentInsets.bottom(13)); } String email = identity.contact().email(); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebar.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebar.java index af6838959..777245f32 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebar.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebar.java @@ -893,7 +893,8 @@ private static List contactItems(CvIdentity identity) { return List.of(); } List items = new ArrayList<>(); - addContactItem(items, "phone.svg", identity.contact().phone(), null); + addContactItem(items, "phone.svg", identity.contact().phone(), + ContactUri.telLink(identity.contact().phone())); String email = identity.contact().email(); if (!email.isBlank()) { addContactItem(items, "email.svg", email, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Panel.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Panel.java index 3f5e44530..9677693a3 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Panel.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Panel.java @@ -244,14 +244,31 @@ private void addHeader(PageFlowBuilder flow, CvIdentity identity, .align(TextAlign.CENTER) .margin(DocumentInsets.zero())); } - String contact = joinPipe(identity.contact().address(), - identity.contact().phone()); - if (!contact.isBlank()) { - card.addParagraph(paragraph -> paragraph - .text(contact) - .textStyle(headerMetaStyle()) - .align(TextAlign.CENTER) - .margin(DocumentInsets.zero())); + String address = identity.contact().address(); + String phone = identity.contact().phone(); + if (!address.isBlank() || !phone.isBlank()) { + // The number is its own run rather than part of one joined string, so + // it can carry a dialling target without the address being swept into + // it. The glyphs and their order are what the joined string gave. + card.addParagraph(paragraph -> { + paragraph.textStyle(headerMetaStyle()) + .align(TextAlign.CENTER) + .margin(DocumentInsets.zero()); + if (!address.isBlank()) { + paragraph.inlineText(address.trim(), headerMetaStyle()); + } + if (!phone.isBlank()) { + if (!address.isBlank()) { + paragraph.inlineText(" | ", headerMetaStyle()); + } + DocumentLinkOptions dial = ContactUri.telLink(phone); + if (dial == null) { + paragraph.inlineText(phone.trim(), headerMetaStyle()); + } else { + paragraph.inlineText(phone.trim(), headerMetaStyle(), dial); + } + } + }); } addLinkRow(card, identity); }); @@ -497,19 +514,5 @@ private DocumentTextStyle moduleTitleStyle() { DocumentTextDecoration.BOLD, ACCENT); } - - private static String joinPipe(String... parts) { - StringBuilder sb = new StringBuilder(); - for (String part : parts) { - if (part == null || part.isBlank()) { - continue; - } - if (sb.length() > 0) { - sb.append(" | "); - } - sb.append(part.trim()); - } - return sb.toString(); - } } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SidebarPortrait.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SidebarPortrait.java index 994b612bf..7ebb8cae1 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SidebarPortrait.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SidebarPortrait.java @@ -926,7 +926,8 @@ private static List contactItems(CvIdentity identity) { return List.of(); } List items = new ArrayList<>(); - addContactItem(items, "phone.svg", identity.contact().phone(), null); + addContactItem(items, "phone.svg", identity.contact().phone(), + ContactUri.telLink(identity.contact().phone())); String email = identity.contact().email(); if (!email.isBlank()) { addContactItem(items, "email.svg", email, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java index 8f03cc54f..15b33e7fb 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java @@ -432,7 +432,8 @@ private List contactItems(CvIdentity identity) { addContactItem(items, "LOC", "location.svg", identity.contact().address(), null); addContactItem(items, "TEL", "phone.svg", - identity.contact().phone(), null); + identity.contact().phone(), + ContactUri.telLink(identity.contact().phone())); String email = identity.contact().email(); if (!email.isBlank()) { addContactItem(items, "@", "email.svg", email, From c4ae2945a2dcb6db19af8494f39a0a685e4bf0f2 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 14:59:01 +0100 Subject: [PATCH 33/85] feat(templates): let a supplier carry the legal line it prints under its name (#644) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A footer band that identifies the issuer often has to carry more than a name and an address. A parent-company or regulator disclosure — "X is a subsidiary of Y" — is a statement the jurisdiction requires on the sheet, and it cannot be derived from the fields beside it because it is prose, not a number. Composed from legalName alone, that line simply went missing. InvoiceContactBlock now carries legalFootnote, a plain string blank when absent like the fields beside it. A preset with no footer band ignores it. Both constructors that predate it are kept explicitly, so existing calls compile and link unchanged and every block built through them still prints no disclosure. Tests: three cases on the compatibility suite — the older constructor leaves it blank, a block carries the footnote it is given, and null normalizes to blank like its neighbours. Reactor gate green. --- CHANGELOG.md | 11 ++++ knowledge/api/templates.json | 63 ++++++++++++++++++- knowledge/api/templates.md | 6 +- .../StructuredInvoiceCompatibilityTest.java | 27 ++++++++ .../data/invoice/InvoiceContactBlock.java | 32 +++++++++- 5 files changed, 133 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 857896f71..d7c633888 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **A supplier carries the legal line it prints under its name.** A footer band that + identifies the issuer often has to carry more than a name and an address: a + parent-company or regulator disclosure — "X is a subsidiary of Y" — is a statement the + jurisdiction requires on the sheet, and deriving it from the fields beside it is not + possible because it is prose, not a number. Composed from `legalName` alone, that line + simply went missing. `InvoiceContactBlock` now carries `legalFootnote`, a plain string + blank when absent, like the fields beside it; a preset with no footer band ignores it. + Both constructors that predate it — the one before the second registration and the one + before the footnote — are kept explicitly, so existing calls compile and link unchanged + and every block built through them still prints no disclosure. + - **A billed party carries a printed registration.** A supplier could already state a tax registration through `InvoiceContactBlock.taxRegistrationLabel` / `taxRegistrationNumber`, and the party being billed could not — but most B2B invoices diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index e04d94f55..f94e2879b 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -23,9 +23,9 @@ ], "counts": { "types": 217, - "methods": 1221, + "methods": 1223, "constants": 164, - "generated": 644 + "generated": 645 }, "packages": [ { @@ -11738,6 +11738,56 @@ { "type": "String", "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "InvoiceContactBlock", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "legalName" + }, + { + "type": "List", + "name": "addressLines" + }, + { + "type": "String", + "name": "phone" + }, + { + "type": "String", + "name": "email" + }, + { + "type": "String", + "name": "website" + }, + { + "type": "String", + "name": "registrationLabel" + }, + { + "type": "String", + "name": "registrationNumber" + }, + { + "type": "String", + "name": "taxRegistrationLabel" + }, + { + "type": "String", + "name": "taxRegistrationNumber" } ] }, @@ -11859,6 +11909,15 @@ "typeParameters": null, "returns": "String", "params": [] + }, + { + "kind": "method", + "name": "legalFootnote", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] } ] }, diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index f215aee3a..26d9dee8c 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 217 · methods: 1221 · constants: 164 · compiler-generated members: 644 +Types: 217 · methods: 1223 · constants: 164 · compiler-generated members: 645 ## com.demcha.compose.document.templates.api @@ -995,7 +995,8 @@ Types: 217 · methods: 1221 · constants: 164 · compiler-generated members: 644 - `String monogramBottom()` ### InvoiceContactBlock (record) -- `new InvoiceContactBlock(String, List, String, String, String, String, String, String, String)` +- `new InvoiceContactBlock(String, List, String, String, String, String, String, String, String, String)` +- `new InvoiceContactBlock(String legalName, List addressLines, String phone, String email, String website, String registrationLabel, String registrationNumber, String taxRegistrationLabel, String taxRegistrationNumber)` - `new InvoiceContactBlock(String legalName, List addressLines, String phone, String email, String website, String registrationLabel, String registrationNumber)` - `String legalName()` - `List addressLines()` @@ -1006,6 +1007,7 @@ Types: 217 · methods: 1221 · constants: 164 · compiler-generated members: 644 - `String registrationNumber()` - `String taxRegistrationLabel()` - `String taxRegistrationNumber()` +- `String legalFootnote()` ### InvoiceData (record) - `new InvoiceData(String, String, String, String, String, String, InvoiceParty, InvoiceParty, List, List, List, List, String)` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java index 76a7c3096..cb11db499 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java @@ -40,6 +40,33 @@ void theContactConstructorThatPredatesTheSecondRegistrationLeavesItBlank() { assertThat(supplier.registrationNumber()).isEqualTo("12578934"); } + @Test + void theContactConstructorThatPredatesTheLegalFootnoteLeavesItBlank() { + InvoiceContactBlock supplier = new InvoiceContactBlock( + "Luma Ltd", List.of("14 Gower Street"), "+44", "a@b.c", "b.c", + "Company No.", "12578934", "VAT No.", "GB123"); + assertThat(supplier.legalFootnote()).isEmpty(); + assertThat(supplier.taxRegistrationNumber()).isEqualTo("GB123"); + } + + @Test + void aContactCarriesTheLegalFootnoteItIsGiven() { + InvoiceContactBlock supplier = new InvoiceContactBlock( + "Luma Ltd", List.of("14 Gower Street"), "+44", "a@b.c", "b.c", + "Company No.", "12578934", "VAT No.", "GB123", + "Luma Ltd is a subsidiary of Luma Group plc."); + assertThat(supplier.legalFootnote()) + .isEqualTo("Luma Ltd is a subsidiary of Luma Group plc."); + } + + @Test + void aNullLegalFootnoteNormalizesToBlankLikeTheFieldsBesideIt() { + InvoiceContactBlock supplier = new InvoiceContactBlock( + "Luma Ltd", List.of("14 Gower Street"), "+44", "a@b.c", "b.c", + "Company No.", "12578934", "VAT No.", "GB123", null); + assertThat(supplier.legalFootnote()).isEmpty(); + } + @Test void thePaymentConstructorThatPredatesTheAccountHolderLeavesItBlank() { InvoicePaymentBlock payment = new InvoicePaymentBlock( diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java index 22477ede2..e9bc1c8fb 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java @@ -24,6 +24,10 @@ * jurisdiction requires beside the first * (e.g. {@code "VAT No."}); blank when absent * @param taxRegistrationNumber that second number itself; blank when absent + * @param legalFootnote a legal disclosure the sheet prints beside the + * name — a parent-company or regulator statement + * such as {@code "… is a subsidiary of …"}; blank + * when the jurisdiction requires none */ public record InvoiceContactBlock( String legalName, @@ -34,7 +38,8 @@ public record InvoiceContactBlock( String registrationLabel, String registrationNumber, String taxRegistrationLabel, - String taxRegistrationNumber) { + String taxRegistrationNumber, + String legalFootnote) { /** * Normalizes optional fields and freezes the address lines. @@ -49,6 +54,29 @@ public record InvoiceContactBlock( registrationNumber = Objects.requireNonNullElse(registrationNumber, ""); taxRegistrationLabel = Objects.requireNonNullElse(taxRegistrationLabel, ""); taxRegistrationNumber = Objects.requireNonNullElse(taxRegistrationNumber, ""); + legalFootnote = Objects.requireNonNullElse(legalFootnote, ""); + } + + /** + * Backward-compatible constructor for callers that predate the legal + * footnote. + * + * @param legalName the registered business name + * @param addressLines the address lines, in order + * @param phone the phone channel + * @param email the email channel + * @param website the website channel + * @param registrationLabel the label of the registration number + * @param registrationNumber the registration number itself + * @param taxRegistrationLabel the label of the second registration + * @param taxRegistrationNumber that second number itself + */ + public InvoiceContactBlock(String legalName, List addressLines, String phone, + String email, String website, String registrationLabel, + String registrationNumber, String taxRegistrationLabel, + String taxRegistrationNumber) { + this(legalName, addressLines, phone, email, website, registrationLabel, + registrationNumber, taxRegistrationLabel, taxRegistrationNumber, ""); } /** @@ -67,6 +95,6 @@ public InvoiceContactBlock(String legalName, List addressLines, String p String email, String website, String registrationLabel, String registrationNumber) { this(legalName, addressLines, phone, email, website, - registrationLabel, registrationNumber, "", ""); + registrationLabel, registrationNumber, "", "", ""); } } From 54196174e9de2c195078e99731fd5adc749ed469 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 15:36:31 +0100 Subject: [PATCH 34/85] feat(templates): add a metered-usage invoice preset (#645) MeteredInvoice ports the rendered layout of a published standalone template onto the existing StructuredInvoiceData model: an orange masthead over its own rule, the supplier split from the invoice's metadata by a hairline, two addressed parties, a service-line table whose marks sit on bordered tiles, a closing row pairing the bank details against the totals and the due date, and a full-bleed dark band along the foot of every page. Rendered against the frozen original with the same data, the document body is pixel-identical: 0 of 2,173,720 at 150 dpi between the title and the footer band. Two regions differ. The masthead lockup is one, because the mark is the caller's and the artifact ships none. The band is the other, because it sets the sheet's own face where the original took the zone default. A unit price is written at the precision it is quoted at, between two places and four, where every other figure is written at two. A metered rate is a fraction of a currency unit: an hour of compute at 0.0710 rounded to two places is 0.07, a different price that multiplies out to a different bill. The design's side margins are unequal and are kept as measured; regularising them at the mean costs four pixels of horizontal error on every glyph to save eight on one edge. Its hairlines are a pixel of ink rather than of geometry, so they are drawn at the weight that reproduces them. The table is one column wide with a composed row inside each cell, because a cell strokes all four of its own edges and five real columns would draw four interior verticals the design does not have. InvoiceUri gives the package one home for turning a printed number, address or site into the form a reader's device needs, instead of a third private copy of the same rule. Tests: a smoke test covering the unknown-mark data error, a line that names no mark, the rate-versus-amount rule, pagination bringing the header back with it, and the disclosure line falling back to the supplier's name; an exact layout snapshot; and a pixel baseline. One fixture feeds all three. Reactor gate green. --- CHANGELOG.md | 34 + knowledge/api/templates.json | 42 +- knowledge/api/templates.md | 6 +- .../presets/MeteredInvoiceFixtures.java | 107 + .../MeteredInvoiceLayoutSnapshotTest.java | 21 + .../presets/MeteredInvoiceSmokeTest.java | 221 + .../MeteredInvoiceVisualParityTest.java | 32 + .../invoice/metered_invoice_layout.json | 5897 +++++++++++++++++ .../metered_invoice-page-0.png | Bin 0 -> 89864 bytes .../templates/invoice/presets/InvoiceUri.java | 87 + .../invoice/presets/MeteredClosing.java | 134 + .../invoice/presets/MeteredIcons.java | 75 + .../invoice/presets/MeteredInvoice.java | 209 + .../invoice/presets/MeteredLines.java | 144 + .../invoice/presets/MeteredMasthead.java | 255 + .../invoice/presets/MeteredSettlement.java | 172 + .../invoice/presets/MeteredStyles.java | 303 + .../invoice/presets/MeteredText.java | 75 + .../invoice/presets/MeteredWidgets.java | 135 + .../invoice/metered/icons/bill-to.svg | 1 + .../invoice/metered/icons/calendar.svg | 1 + .../templates/invoice/metered/icons/card.svg | 1 + .../invoice/metered/icons/compute.svg | 1 + .../invoice/metered/icons/database.svg | 1 + .../templates/invoice/metered/icons/info.svg | 1 + .../invoice/metered/icons/ship-to.svg | 1 + .../invoice/metered/icons/storage.svg | 1 + .../invoice/metered/icons/support.svg | 1 + .../invoice/metered/icons/transfer.svg | 1 + 29 files changed, 7954 insertions(+), 5 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/metered_invoice_layout.json create mode 100644 qa/src/test/resources/visual-baselines/invoice-v2-layered/metered_invoice-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/InvoiceUri.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoice.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredLines.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredSettlement.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredText.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredWidgets.java create mode 100644 templates/src/main/resources/templates/invoice/metered/icons/bill-to.svg create mode 100644 templates/src/main/resources/templates/invoice/metered/icons/calendar.svg create mode 100644 templates/src/main/resources/templates/invoice/metered/icons/card.svg create mode 100644 templates/src/main/resources/templates/invoice/metered/icons/compute.svg create mode 100644 templates/src/main/resources/templates/invoice/metered/icons/database.svg create mode 100644 templates/src/main/resources/templates/invoice/metered/icons/info.svg create mode 100644 templates/src/main/resources/templates/invoice/metered/icons/ship-to.svg create mode 100644 templates/src/main/resources/templates/invoice/metered/icons/storage.svg create mode 100644 templates/src/main/resources/templates/invoice/metered/icons/support.svg create mode 100644 templates/src/main/resources/templates/invoice/metered/icons/transfer.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index d7c633888..ef292e58e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -156,6 +156,40 @@ follow semantic versioning; release dates are ISO 8601. recognisable; a number is not — dates, reference numbers and amounts all look like one — so only the structured contact field is linked. +- **A metered-usage invoice preset: `MeteredInvoice`.** An orange-accented masthead over + its own rule, the supplier split from the invoice's metadata by a hairline, two + addressed parties, a service-line table whose marks sit on bordered tiles, a closing + row pairing the bank details against the totals and the due date, and a full-bleed dark + band along the foot of every page. Ships as `invoice.presets.MeteredInvoice` on the + existing `StructuredInvoiceData` model, porting the rendered layout of a published + standalone template: rendered against the frozen original with the same data, the + document body is pixel-identical — 0 of 2,173,720 at 150 dpi between the title and the + footer band — and the two regions that differ are the masthead lockup, which the preset + leaves to the caller, and the band, which sets the sheet's own face where the original + took the zone default. It flows: the table's header repeats on every page it reaches, + the bottom margin reserves the band on every page so no row runs into the chrome, and + every page carries its number. +

      + A unit price is written at the precision it is quoted at, between two places and four, + where every other figure on the sheet is written at two. That is not a formatting + preference: a metered rate is a fraction of a currency unit, and an hour of compute at + 0.0710 rounded to an amount's two places is 0.07 — a different price that multiplies + out to a different bill. Figures state their locale rather than inheriting it. +

      + The design's side margins are unequal, 35.5 px against 43.5 px of a 1055 px sheet, and + are kept as measured: regularising them at the mean costs four pixels of horizontal + error on every glyph to save eight on one edge. Its hairlines are a pixel of ink rather + than a pixel of geometry, so they are drawn at the weight that reproduces them instead + of the 0.6 pt they measure, which rasterises to less than a pixel and drops half the + row rules to partial opacity. The table is one column wide with a composed row inside + each cell, because a cell strokes all four of its own edges and five real columns would + draw four interior verticals the design does not have. +

      + Guarded by a smoke test (including the unknown-mark data error, a line that names no + mark, the rate-versus-amount precision rule, pagination bringing the header back with + it, and the disclosure line falling back to the supplier's name), an exact layout + snapshot, and a pixel baseline — both fed by one fixture. + - **A violet SaaS invoice preset: `WorkspaceInvoice`.** A brand masthead over a short accent bar, a half-split issuer and metadata header, two addressed parties on filled discs, a service-line table whose marks sit on coloured tiles, a settlement row diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index f94e2879b..8218f0a28 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,10 +22,10 @@ "graph-compose-testing:sources" ], "counts": { - "types": 217, - "methods": 1223, - "constants": 164, - "generated": 645 + "types": 218, + "methods": 1224, + "constants": 166, + "generated": 647 }, "packages": [ { @@ -20768,6 +20768,40 @@ } ] }, + { + "name": "MeteredInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.MeteredInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "ModernInvoice", "binaryName": "com.demcha.compose.document.templates.invoice.presets.ModernInvoice", diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index 26d9dee8c..a43149d4a 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 217 · methods: 1223 · constants: 164 · compiler-generated members: 645 +Types: 218 · methods: 1224 · constants: 166 · compiler-generated members: 647 ## com.demcha.compose.document.templates.api @@ -1751,6 +1751,10 @@ Types: 217 · methods: 1223 · constants: 164 · compiler-generated members: 645 - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME` +### MeteredInvoice (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + ### ModernInvoice (class) - `DocumentTemplate create()` - `DocumentTemplate create(BrandTheme theme)` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceFixtures.java new file mode 100644 index 000000000..6b61f5759 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceFixtures.java @@ -0,0 +1,107 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * The one invoice the Metered preset's tests render. + * + *

      Both gates read it: the exact layout snapshot and the pixel baseline. One + * fixture behind both is what makes the two comparable — a shift the snapshot + * catches is a shift in the same document the baseline was recorded from.

      + */ +final class MeteredInvoiceFixtures { + + private MeteredInvoiceFixtures() { + } + + /** A month of metered platform usage, billed to one customer. */ + static StructuredInvoiceData invoice() { + return StructuredInvoiceData.builder() + .brand(new InvoiceBrand(null, "Northwind Cloud", "", "", "", "")) + .supplier(new InvoiceContactBlock( + "Northwind Cloud Services Ltd.", + List.of("120 Riverside Way", "Bristol, BS1 6QT", "United Kingdom"), + "+44 (0)117 496 2280", + "billing@northwind.example", + "https://northwind.example", + "", "", + "VAT ID:", "GB 412 8830 27", + "Northwind Cloud Services Ltd. is a subsidiary of Northwind Group plc.")) + .masthead(new InvoiceMasthead("INVOICE", List.of( + new InvoiceMasthead.Entry("Invoice Number:", "INV-2026-00041882", true), + new InvoiceMasthead.Entry("Invoice Date:", "31 July 2026", false), + new InvoiceMasthead.Entry("Due Date:", "30 August 2026", false), + new InvoiceMasthead.Entry("Bill Period:", "01 Jul 2026 – 31 Jul 2026", false), + new InvoiceMasthead.Entry("Payment Terms:", "Net 30 Days", false), + new InvoiceMasthead.Entry("Currency:", "GBP", false)))) + .billTo(new InvoiceRecipient("BILL TO", "Bright Future Ltd.", "", + List.of("45 King Street", "Manchester, M2 4WU", "United Kingdom"), + "", "", "VAT ID:", "GB 987 6543 21")) + .shipTo(new InvoiceRecipient("SHIP TO", "Bright Future Ltd.", "", + List.of("Warehouse 7", "North Industrial Estate", + "Manchester, M2 4WU", "United Kingdom"), + "", "", "", "")) + .serviceLines(new InvoiceServiceLines( + new InvoiceServiceLines.Columns("", "DESCRIPTION", "SERVICE", + "QTY", "UNIT PRICE", "AMOUNT"), + lines())) + .totals(new InvoiceTotalsBlock(List.of( + new InvoiceTotalsBlock.Row("Subtotal", new BigDecimal("214.71")), + new InvoiceTotalsBlock.Row("VAT (20%)", new BigDecimal("42.94"))), + "TOTAL DUE", new BigDecimal("257.65"))) + .payment(new InvoicePaymentBlock("PAYMENT DETAILS", List.of( + new InvoicePaymentBlock.Field("Account Name:", + "Northwind Cloud Services Ltd."), + new InvoicePaymentBlock.Field("Bank Name:", "Riverbank plc"), + new InvoicePaymentBlock.Field("Account Number:", "60415523"), + new InvoicePaymentBlock.Field("Sort Code:", "20-41-08"), + new InvoicePaymentBlock.Field("IBAN:", "GB29 RIVB 2041 0860 4155 23"), + new InvoicePaymentBlock.Field("Account Type:", "Business Current"), + new InvoicePaymentBlock.Field("Remittance Email:", + "billing@northwind.example")), + "", "PAYMENT DUE BY", "30 August 2026", "", "")) + .notes(new InvoiceNotesBlock( + "Thank you for running on Northwind Cloud.", + List.of("For billing and account support, visit" + + " https://northwind.example or write to" + + " billing@northwind.example."), + "billing@northwind.example", "")) + .currencyCode("GBP") + .build(); + } + + private static List lines() { + List lines = new ArrayList<>(); + lines.add(line(1, "Compute Instances", "On-demand usage", "London (eu-west)", + "744", "Hrs", "0.0710", "52.82", "compute")); + lines.add(line(2, "Object Storage", "Stored volume", "London (eu-west)", + "480", "GB", "0.0215", "10.32", "storage")); + lines.add(line(3, "Managed Database", "Primary and replica", "London (eu-west)", + "744", "Hrs", "0.1650", "122.76", "database")); + lines.add(line(4, "Egress Traffic", "Data transfer out", "Global", + "310", "GB", "0.0900", "27.90", "transfer")); + lines.add(line(5, "Support Plan", "Standard response", "Global", + "1", "", "0.91", "0.91", "support")); + return lines; + } + + private static InvoiceServiceLines.Line line(int number, String title, String description, + String service, String quantity, String unit, + String unitPrice, String amount, String icon) { + return new InvoiceServiceLines.Line(number, title, description, service, + new BigDecimal(quantity), unit, new BigDecimal(unitPrice), + new BigDecimal(amount), "", icon); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceLayoutSnapshotTest.java new file mode 100644 index 000000000..d0a8bc4a8 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceLayoutSnapshotTest.java @@ -0,0 +1,21 @@ +package com.demcha.compose.document.templates.invoice.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; + +class MeteredInvoiceLayoutSnapshotTest { + + @Test + void theInvoiceMatchesItsLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + MeteredInvoice.create().compose(session, MeteredInvoiceFixtures.invoice()); + assertThat(session.layoutSnapshot().totalPages()).as("total pages").isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "metered_invoice_layout", "invoice"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceSmokeTest.java new file mode 100644 index 000000000..16dab1816 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceSmokeTest.java @@ -0,0 +1,221 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +class MeteredInvoiceSmokeTest { + + // -- what the sheet says ------------------------------------------- + + @Test + void theSheetCarriesTheIssuerTheCustomerAndEveryLine() throws Exception { + String text = textOf(render(MeteredInvoiceFixtures.invoice())); + assertThat(text) + .contains("Northwind Cloud Services Ltd.") + .contains("Bright Future Ltd.") + .contains("Compute Instances") + .contains("Managed Database") + .contains("Support Plan") + .contains("TOTAL DUE"); + } + + @Test + void aRateKeepsThePrecisionItIsQuotedAtAndAnAmountDoesNot() throws Exception { + String text = textOf(render(MeteredInvoiceFixtures.invoice())); + // 0.0710 rounded to an amount's two places is 0.07 — a different price + // that multiplies out to a different bill. + assertThat(text).contains("GBP 0.0710").contains("GBP 0.0215"); + // The support line is quoted at two places and stays there. + assertThat(text).contains("GBP 0.91"); + // Amounts and totals are written at two throughout. + assertThat(text).contains("GBP 122.76").contains("GBP 257.65"); + } + + @Test + void aCountIsWrittenWithTheThingItCounts() throws Exception { + String text = textOf(render(MeteredInvoiceFixtures.invoice())); + assertThat(text).contains("744 Hrs").contains("480 GB"); + // The support line counts a plan, which has no unit. + assertThat(text).contains("Support Plan"); + } + + @Test + void theBandUnderTheSheetCarriesTheDisclosureTheSupplierStates() throws Exception { + String text = textOf(render(MeteredInvoiceFixtures.invoice())); + assertThat(text).contains("is a subsidiary of Northwind Group plc."); + } + + @Test + void aSupplierThatStatesNoDisclosureIsIdentifiedByItsNameInstead() throws Exception { + StructuredInvoiceData data = MeteredInvoiceFixtures.invoice(); + InvoiceContactBlock plain = new InvoiceContactBlock( + data.supplier().legalName(), data.supplier().addressLines(), + data.supplier().phone(), data.supplier().email(), data.supplier().website(), + "", "", data.supplier().taxRegistrationLabel(), + data.supplier().taxRegistrationNumber()); + String text = textOf(render(StructuredInvoiceData.builder() + .brand(data.brand()).supplier(plain).masthead(data.masthead()) + .billTo(data.billTo()).shipTo(data.shipTo()) + .serviceLines(data.serviceLines()).totals(data.totals()) + .payment(data.payment()).notes(data.notes()) + .currencyCode(data.currencyCode()).build())); + assertThat(text).contains("Northwind Cloud Services Ltd.") + .doesNotContain("is a subsidiary of"); + } + + // -- what a reader can act on -------------------------------------- + + @Test + void everyAddressTheSheetPrintsIsReachable() throws Exception { + List targets = linkTargets(render(MeteredInvoiceFixtures.invoice())); + assertThat(targets) + .contains("mailto:billing@northwind.example") + .contains("https://northwind.example") + // The trunk prefix goes: it is the digit a caller omits from abroad. + .contains("tel:+441174962280"); + } + + @Test + void theNotesProseLinksTheAddressesInsideItAndNotTheSentenceAroundThem() + throws Exception { + byte[] pdf = render(MeteredInvoiceFixtures.invoice()); + assertThat(linkTargets(pdf)) + .filteredOn(target -> target.startsWith("mailto:")) + .isNotEmpty(); + // The sentence still reads as one sentence. + assertThat(textOf(pdf)) + .contains("For billing and account support, visit"); + } + + // -- what the document chooses, and what it may not ---------------- + + @Test + void aLineDrawsTheMarkItNames() throws Exception { + String text = textOf(render(MeteredInvoiceFixtures.invoice())); + // A mark leaves no glyph, so the render succeeding on every packaged + // token is the assertion; an unknown one is rejected below. + assertThat(text).contains("Egress Traffic"); + } + + @Test + void aLineThatNamesNoMarkStillRenders() throws Exception { + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + MeteredInvoiceFixtures.invoice().serviceLines().columns(), + List.of(new InvoiceServiceLines.Line(1, "Compute Instances", "On-demand usage", + "London (eu-west)", new BigDecimal("744"), "Hrs", + new BigDecimal("0.0710"), new BigDecimal("52.82"), "", "")))); + assertThat(textOf(render(data))).contains("Compute Instances"); + } + + @Test + void anUnknownMarkIsReportedAsADataErrorNamingTheSet() { + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + MeteredInvoiceFixtures.invoice().serviceLines().columns(), + List.of(new InvoiceServiceLines.Line(1, "Compute Instances", "On-demand usage", + "London (eu-west)", new BigDecimal("744"), "Hrs", + new BigDecimal("0.0710"), new BigDecimal("52.82"), "", "rocket")))); + assertThatThrownBy(() -> render(data)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("rocket") + .hasMessageContaining("compute"); + } + + // -- how it flows --------------------------------------------------- + + @Test + void theDesignsOwnLineCountIsOneSheet() throws Exception { + assertThat(pagesOf(MeteredInvoiceFixtures.invoice())).isEqualTo(1); + } + + @Test + void enoughLinesPaginateAndTheHeaderComesBackWithThem() throws Exception { + List many = new ArrayList<>(); + for (int i = 1; i <= 40; i++) { + many.add(new InvoiceServiceLines.Line(i, "Compute Instances " + i, + "On-demand usage", "London (eu-west)", new BigDecimal("744"), "Hrs", + new BigDecimal("0.0710"), new BigDecimal("52.82"), "", "compute")); + } + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + MeteredInvoiceFixtures.invoice().serviceLines().columns(), many)); + assertThat(pagesOf(data)).isGreaterThan(1); + + String text = textOf(render(data)); + // The caps header is repeated, so it appears once per page the table reaches. + assertThat(text.split("UNIT PRICE", -1).length - 1).isGreaterThan(1); + } + + // -- helpers --------------------------------------------------------- + + private static byte[] render(StructuredInvoiceData data) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + MeteredInvoice.create().compose(session, data); + 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); + } + } + + private static int pagesOf(StructuredInvoiceData data) throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + MeteredInvoice.create().compose(session, data); + return session.layoutSnapshot().totalPages(); + } + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + private static StructuredInvoiceData withLines(InvoiceServiceLines lines) { + StructuredInvoiceData base = MeteredInvoiceFixtures.invoice(); + return StructuredInvoiceData.builder() + .brand(base.brand()) + .supplier(base.supplier()) + .masthead(base.masthead()) + .billTo(base.billTo()) + .shipTo(base.shipTo()) + .serviceLines(lines) + .totals(base.totals()) + .payment(base.payment()) + .notes(base.notes()) + .currencyCode(base.currencyCode()) + .build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceVisualParityTest.java new file mode 100644 index 000000000..067c55ebc --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoiceVisualParityTest.java @@ -0,0 +1,32 @@ +package com.demcha.compose.document.templates.invoice.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; + +class MeteredInvoiceVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "invoice-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()) { + MeteredInvoice.create().compose(document, MeteredInvoiceFixtures.invoice()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("metered_invoice", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/metered_invoice_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/metered_invoice_layout.json new file mode 100644 index 000000000..421c71a7c --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/metered_invoice_layout.json @@ -0,0 +1,5897 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 550.7, + "innerHeight" : 771.895, + "margin" : { + "top" : 24.827, + "right" : 24.545, + "bottom" : 45.169, + "left" : 20.031 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "MeteredInvoice[0]", + "entityName" : "MeteredInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 20.031, + "computedY" : 54.204, + "placementX" : 20.031, + "placementY" : 54.204, + "placementWidth" : 550.7, + "placementHeight" : 762.859, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 762.859, + "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" : "MeteredInvoice[0]/Body[0]", + "entityName" : "Body", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 20.031, + "computedY" : 54.204, + "placementX" : 20.031, + "placementY" : 54.204, + "placementWidth" : 550.7, + "placementHeight" : 762.859, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 762.859, + "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" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]", + "entityName" : "BrandHeader", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 20.031, + "computedY" : 770.414, + "placementX" : 20.031, + "placementY" : 770.414, + "placementWidth" : 550.7, + "placementHeight" : 46.649, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 46.649, + "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" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]/BrandMark[0]", + "entityName" : "BrandMark", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 20.031, + "computedY" : 776.339, + "placementX" : 20.031, + "placementY" : 776.339, + "placementWidth" : 223.445, + "placementHeight" : 34.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 223.445, + "contentHeight" : 34.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" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]/BrandMark[0]/BrandName[0]", + "entityName" : "BrandName", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]/BrandMark[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 20.031, + "computedY" : 776.339, + "placementX" : 20.031, + "placementY" : 776.339, + "placementWidth" : 223.445, + "placementHeight" : 34.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 223.445, + "contentHeight" : 34.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" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]/InvoiceTitle[1]", + "entityName" : "InvoiceTitle", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 295.381, + "computedY" : 770.414, + "placementX" : 295.381, + "placementY" : 770.414, + "placementWidth" : 275.35, + "placementHeight" : 46.649, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 275.35, + "contentHeight" : 46.649, + "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" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]/InvoiceTitle[1]/InvoiceTitleText[0]", + "entityName" : "InvoiceTitleText", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]/InvoiceTitle[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 295.381, + "computedY" : 782.263, + "placementX" : 295.381, + "placementY" : 782.263, + "placementWidth" : 275.35, + "placementHeight" : 34.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 275.35, + "contentHeight" : 34.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" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]/InvoiceTitle[1]/Align[1]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]/InvoiceTitle[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 295.381, + "computedY" : 770.414, + "placementX" : 295.381, + "placementY" : 770.414, + "placementWidth" : 275.35, + "placementHeight" : 2.257, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 275.35, + "contentHeight" : 2.257, + "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" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]/InvoiceTitle[1]/Align[1]/InvoiceTitleRule[0]", + "entityName" : "InvoiceTitleRule", + "entityKind" : "LineNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/BrandHeader[0]/InvoiceTitle[1]/Align[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 530.67, + "computedY" : 770.414, + "placementX" : 530.67, + "placementY" : 770.414, + "placementWidth" : 40.061, + "placementHeight" : 2.257, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.061, + "contentHeight" : 2.257, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]", + "entityName" : "IdentityRow", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 20.031, + "computedY" : 630.536, + "placementX" : 20.031, + "placementY" : 630.536, + "placementWidth" : 550.7, + "placementHeight" : 127.465, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 127.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]", + "entityName" : "SupplierColumn", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 20.031, + "computedY" : 630.536, + "placementX" : 20.031, + "placementY" : 630.536, + "placementWidth" : 237.352, + "placementHeight" : 127.465, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.352, + "contentHeight" : 127.465, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 11.285, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]", + "entityName" : "SupplierBlock", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 20.031, + "computedY" : 630.536, + "placementX" : 20.031, + "placementY" : 630.536, + "placementWidth" : 226.067, + "placementHeight" : 124.079, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 124.079, + "margin" : { + "top" : 3.385, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierIdentity[0]", + "entityName" : "SupplierIdentity", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 20.031, + "computedY" : 698.253, + "placementX" : 20.031, + "placementY" : 698.253, + "placementWidth" : 142.622, + "placementHeight" : 56.363, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 142.622, + "contentHeight" : 56.363, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierIdentity[0]/SupplierName[0]", + "entityName" : "SupplierName", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierIdentity[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 20.031, + "computedY" : 742.015, + "placementX" : 20.031, + "placementY" : 742.015, + "placementWidth" : 142.622, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 142.622, + "contentHeight" : 12.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.385, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierIdentity[0]/SupplierAddress_0[1]", + "entityName" : "SupplierAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierIdentity[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 20.031, + "computedY" : 725.171, + "placementX" : 20.031, + "placementY" : 725.171, + "placementWidth" : 75.867, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.867, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierIdentity[0]/SupplierAddress_1[2]", + "entityName" : "SupplierAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierIdentity[0]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 20.031, + "computedY" : 711.712, + "placementX" : 20.031, + "placementY" : 711.712, + "placementWidth" : 66.676, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 66.676, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierIdentity[0]/SupplierAddress_2[3]", + "entityName" : "SupplierAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierIdentity[0]", + "childIndex" : 3, + "depth" : 7, + "layer" : 7, + "computedX" : 20.031, + "computedY" : 698.253, + "placementX" : 20.031, + "placementY" : 698.253, + "placementWidth" : 65.229, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 65.229, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]", + "entityName" : "SupplierContacts", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 20.031, + "computedY" : 630.536, + "placementX" : 20.031, + "placementY" : 630.536, + "placementWidth" : 226.067, + "placementHeight" : 54.175, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 54.175, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_0Layer[0]", + "entityName" : "SupplierContact_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 20.031, + "computedY" : 673.791, + "placementX" : 20.031, + "placementY" : 673.791, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_0Layer[0]/SupplierContact_0Holder[0]", + "entityName" : "SupplierContact_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_0Layer[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 20.031, + "computedY" : 673.791, + "placementX" : 20.031, + "placementY" : 673.791, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_0Layer[0]/SupplierContact_0Holder[0]/SupplierContact_0[0]", + "entityName" : "SupplierContact_0", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_0Layer[0]/SupplierContact_0Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 20.031, + "computedY" : 673.791, + "placementX" : 20.031, + "placementY" : 673.791, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_0Layer[0]/SupplierContact_0Holder[0]/SupplierContact_0[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_0Layer[0]/SupplierContact_0Holder[0]/SupplierContact_0[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 20.031, + "computedY" : 673.791, + "placementX" : 20.031, + "placementY" : 673.791, + "placementWidth" : 31.777, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.777, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_0Layer[0]/SupplierContact_0Holder[0]/SupplierContact_0[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_0Layer[0]/SupplierContact_0Holder[0]/SupplierContact_0[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 67.991, + "computedY" : 673.791, + "placementX" : 67.991, + "placementY" : 673.791, + "placementWidth" : 67.031, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.031, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_1Layer[1]", + "entityName" : "SupplierContact_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 20.031, + "computedY" : 659.372, + "placementX" : 20.031, + "placementY" : 659.372, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_1Layer[1]/SupplierContact_1Holder[0]", + "entityName" : "SupplierContact_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_1Layer[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 20.031, + "computedY" : 659.372, + "placementX" : 20.031, + "placementY" : 659.372, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_1Layer[1]/SupplierContact_1Holder[0]/SupplierContact_1[0]", + "entityName" : "SupplierContact_1", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_1Layer[1]/SupplierContact_1Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 20.031, + "computedY" : 659.372, + "placementX" : 20.031, + "placementY" : 659.372, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_1Layer[1]/SupplierContact_1Holder[0]/SupplierContact_1[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_1Layer[1]/SupplierContact_1Holder[0]/SupplierContact_1[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 20.031, + "computedY" : 659.372, + "placementX" : 20.031, + "placementY" : 659.372, + "placementWidth" : 27.864, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.864, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_1Layer[1]/SupplierContact_1Holder[0]/SupplierContact_1[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_1Layer[1]/SupplierContact_1Holder[0]/SupplierContact_1[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 67.991, + "computedY" : 659.372, + "placementX" : 67.991, + "placementY" : 659.372, + "placementWidth" : 85.74, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.74, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_2Layer[2]", + "entityName" : "SupplierContact_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 20.031, + "computedY" : 644.954, + "placementX" : 20.031, + "placementY" : 644.954, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_2Layer[2]/SupplierContact_2Holder[0]", + "entityName" : "SupplierContact_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_2Layer[2]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 20.031, + "computedY" : 644.954, + "placementX" : 20.031, + "placementY" : 644.954, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_2Layer[2]/SupplierContact_2Holder[0]/SupplierContact_2[0]", + "entityName" : "SupplierContact_2", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_2Layer[2]/SupplierContact_2Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 20.031, + "computedY" : 644.954, + "placementX" : 20.031, + "placementY" : 644.954, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_2Layer[2]/SupplierContact_2Holder[0]/SupplierContact_2[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_2Layer[2]/SupplierContact_2Holder[0]/SupplierContact_2[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 20.031, + "computedY" : 644.954, + "placementX" : 20.031, + "placementY" : 644.954, + "placementWidth" : 23.878, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.878, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_2Layer[2]/SupplierContact_2Holder[0]/SupplierContact_2[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_2Layer[2]/SupplierContact_2Holder[0]/SupplierContact_2[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 67.991, + "computedY" : 644.954, + "placementX" : 67.991, + "placementY" : 644.954, + "placementWidth" : 108.144, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.144, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_3Layer[3]", + "entityName" : "SupplierContact_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]", + "childIndex" : 3, + "depth" : 7, + "layer" : 7, + "computedX" : 20.031, + "computedY" : 630.536, + "placementX" : 20.031, + "placementY" : 630.536, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_3Layer[3]/SupplierContact_3Holder[0]", + "entityName" : "SupplierContact_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_3Layer[3]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 20.031, + "computedY" : 630.536, + "placementX" : 20.031, + "placementY" : 630.536, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_3Layer[3]/SupplierContact_3Holder[0]/SupplierContact_3[0]", + "entityName" : "SupplierContact_3", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_3Layer[3]/SupplierContact_3Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 20.031, + "computedY" : 630.536, + "placementX" : 20.031, + "placementY" : 630.536, + "placementWidth" : 226.067, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.067, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_3Layer[3]/SupplierContact_3Holder[0]/SupplierContact_3[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_3Layer[3]/SupplierContact_3Holder[0]/SupplierContact_3[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 20.031, + "computedY" : 630.536, + "placementX" : 20.031, + "placementY" : 630.536, + "placementWidth" : 35.799, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.799, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_3Layer[3]/SupplierContact_3Holder[0]/SupplierContact_3[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/SupplierColumn[0]/SupplierBlock[0]/SupplierContacts[1]/SupplierContact_3Layer[3]/SupplierContact_3Holder[0]/SupplierContact_3[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 67.991, + "computedY" : 630.536, + "placementX" : 67.991, + "placementY" : 630.536, + "placementWidth" : 108.117, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.117, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]", + "entityName" : "MetaColumn", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 257.383, + "computedY" : 640.415, + "placementX" : 257.383, + "placementY" : 640.415, + "placementWidth" : 313.349, + "placementHeight" : 117.586, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.349, + "contentHeight" : 117.586, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 79.558 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]", + "entityName" : "InvoiceMeta", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 336.941, + "computedY" : 640.415, + "placementX" : 336.941, + "placementY" : 640.415, + "placementWidth" : 233.79, + "placementHeight" : 111.379, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 111.379, + "margin" : { + "top" : 6.207, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_0Layer[0]", + "entityName" : "InvoiceMeta_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 336.941, + "computedY" : 740.154, + "placementX" : 336.941, + "placementY" : 740.154, + "placementWidth" : 233.79, + "placementHeight" : 11.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 11.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_0Layer[0]/InvoiceMeta_0Holder[0]", + "entityName" : "InvoiceMeta_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_0Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 336.941, + "computedY" : 740.154, + "placementX" : 336.941, + "placementY" : 740.154, + "placementWidth" : 233.79, + "placementHeight" : 11.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 11.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_0Layer[0]/InvoiceMeta_0Holder[0]/InvoiceMeta_0[0]", + "entityName" : "InvoiceMeta_0", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_0Layer[0]/InvoiceMeta_0Holder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 336.941, + "computedY" : 740.154, + "placementX" : 336.941, + "placementY" : 740.154, + "placementWidth" : 233.79, + "placementHeight" : 11.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 11.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_0Layer[0]/InvoiceMeta_0Holder[0]/InvoiceMeta_0[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_0Layer[0]/InvoiceMeta_0Holder[0]/InvoiceMeta_0[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 336.941, + "computedY" : 741.474, + "placementX" : 336.941, + "placementY" : 741.474, + "placementWidth" : 62.522, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.522, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_0Layer[0]/InvoiceMeta_0Holder[0]/InvoiceMeta_0[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_0Layer[0]/InvoiceMeta_0Holder[0]/InvoiceMeta_0[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 423.27, + "computedY" : 740.154, + "placementX" : 423.27, + "placementY" : 740.154, + "placementWidth" : 91.849, + "placementHeight" : 11.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.849, + "contentHeight" : 11.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_1Layer[1]", + "entityName" : "InvoiceMeta_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 336.941, + "computedY" : 720.206, + "placementX" : 336.941, + "placementY" : 720.206, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_1Layer[1]/InvoiceMeta_1Holder[0]", + "entityName" : "InvoiceMeta_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_1Layer[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 336.941, + "computedY" : 720.206, + "placementX" : 336.941, + "placementY" : 720.206, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_1Layer[1]/InvoiceMeta_1Holder[0]/InvoiceMeta_1[0]", + "entityName" : "InvoiceMeta_1", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_1Layer[1]/InvoiceMeta_1Holder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 336.941, + "computedY" : 720.206, + "placementX" : 336.941, + "placementY" : 720.206, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_1Layer[1]/InvoiceMeta_1Holder[0]/InvoiceMeta_1[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_1Layer[1]/InvoiceMeta_1Holder[0]/InvoiceMeta_1[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 336.941, + "computedY" : 720.806, + "placementX" : 336.941, + "placementY" : 720.806, + "placementWidth" : 50.035, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.035, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_1Layer[1]/InvoiceMeta_1Holder[0]/InvoiceMeta_1[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_1Layer[1]/InvoiceMeta_1Holder[0]/InvoiceMeta_1[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 423.27, + "computedY" : 720.206, + "placementX" : 423.27, + "placementY" : 720.206, + "placementWidth" : 52.098, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.098, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_2Layer[2]", + "entityName" : "InvoiceMeta_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 336.941, + "computedY" : 700.258, + "placementX" : 336.941, + "placementY" : 700.258, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_2Layer[2]/InvoiceMeta_2Holder[0]", + "entityName" : "InvoiceMeta_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_2Layer[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 336.941, + "computedY" : 700.258, + "placementX" : 336.941, + "placementY" : 700.258, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_2Layer[2]/InvoiceMeta_2Holder[0]/InvoiceMeta_2[0]", + "entityName" : "InvoiceMeta_2", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_2Layer[2]/InvoiceMeta_2Holder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 336.941, + "computedY" : 700.258, + "placementX" : 336.941, + "placementY" : 700.258, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_2Layer[2]/InvoiceMeta_2Holder[0]/InvoiceMeta_2[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_2Layer[2]/InvoiceMeta_2Holder[0]/InvoiceMeta_2[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 336.941, + "computedY" : 700.858, + "placementX" : 336.941, + "placementY" : 700.858, + "placementWidth" : 38.683, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.683, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_2Layer[2]/InvoiceMeta_2Holder[0]/InvoiceMeta_2[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_2Layer[2]/InvoiceMeta_2Holder[0]/InvoiceMeta_2[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 423.27, + "computedY" : 700.258, + "placementX" : 423.27, + "placementY" : 700.258, + "placementWidth" : 64.583, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.583, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_3Layer[3]", + "entityName" : "InvoiceMeta_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 336.941, + "computedY" : 680.31, + "placementX" : 336.941, + "placementY" : 680.31, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_3Layer[3]/InvoiceMeta_3Holder[0]", + "entityName" : "InvoiceMeta_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_3Layer[3]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 336.941, + "computedY" : 680.31, + "placementX" : 336.941, + "placementY" : 680.31, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_3Layer[3]/InvoiceMeta_3Holder[0]/InvoiceMeta_3[0]", + "entityName" : "InvoiceMeta_3", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_3Layer[3]/InvoiceMeta_3Holder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 336.941, + "computedY" : 680.31, + "placementX" : 336.941, + "placementY" : 680.31, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_3Layer[3]/InvoiceMeta_3Holder[0]/InvoiceMeta_3[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_3Layer[3]/InvoiceMeta_3Holder[0]/InvoiceMeta_3[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 336.941, + "computedY" : 680.91, + "placementX" : 336.941, + "placementY" : 680.91, + "placementWidth" : 40.635, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.635, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_3Layer[3]/InvoiceMeta_3Holder[0]/InvoiceMeta_3[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_3Layer[3]/InvoiceMeta_3Holder[0]/InvoiceMeta_3[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 423.27, + "computedY" : 680.31, + "placementX" : 423.27, + "placementY" : 680.31, + "placementWidth" : 104.741, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.741, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_4Layer[4]", + "entityName" : "InvoiceMeta_4Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]", + "childIndex" : 4, + "depth" : 6, + "layer" : 6, + "computedX" : 336.941, + "computedY" : 660.363, + "placementX" : 336.941, + "placementY" : 660.363, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_4Layer[4]/InvoiceMeta_4Holder[0]", + "entityName" : "InvoiceMeta_4Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_4Layer[4]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 336.941, + "computedY" : 660.363, + "placementX" : 336.941, + "placementY" : 660.363, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_4Layer[4]/InvoiceMeta_4Holder[0]/InvoiceMeta_4[0]", + "entityName" : "InvoiceMeta_4", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_4Layer[4]/InvoiceMeta_4Holder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 336.941, + "computedY" : 660.363, + "placementX" : 336.941, + "placementY" : 660.363, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_4Layer[4]/InvoiceMeta_4Holder[0]/InvoiceMeta_4[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_4Layer[4]/InvoiceMeta_4Holder[0]/InvoiceMeta_4[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 336.941, + "computedY" : 660.963, + "placementX" : 336.941, + "placementY" : 660.963, + "placementWidth" : 61.292, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.292, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_4Layer[4]/InvoiceMeta_4Holder[0]/InvoiceMeta_4[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_4Layer[4]/InvoiceMeta_4Holder[0]/InvoiceMeta_4[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 423.27, + "computedY" : 660.363, + "placementX" : 423.27, + "placementY" : 660.363, + "placementWidth" : 50.323, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.323, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_5Layer[5]", + "entityName" : "InvoiceMeta_5Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]", + "childIndex" : 5, + "depth" : 6, + "layer" : 6, + "computedX" : 336.941, + "computedY" : 640.415, + "placementX" : 336.941, + "placementY" : 640.415, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_5Layer[5]/InvoiceMeta_5Holder[0]", + "entityName" : "InvoiceMeta_5Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_5Layer[5]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 336.941, + "computedY" : 640.415, + "placementX" : 336.941, + "placementY" : 640.415, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_5Layer[5]/InvoiceMeta_5Holder[0]/InvoiceMeta_5[0]", + "entityName" : "InvoiceMeta_5", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_5Layer[5]/InvoiceMeta_5Holder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 336.941, + "computedY" : 640.415, + "placementX" : 336.941, + "placementY" : 640.415, + "placementWidth" : 233.79, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.79, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_5Layer[5]/InvoiceMeta_5Holder[0]/InvoiceMeta_5[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_5Layer[5]/InvoiceMeta_5Holder[0]/InvoiceMeta_5[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 336.941, + "computedY" : 641.015, + "placementX" : 336.941, + "placementY" : 641.015, + "placementWidth" : 36.842, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.842, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_5Layer[5]/InvoiceMeta_5Holder[0]/InvoiceMeta_5[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/IdentityRow[1]/MetaColumn[1]/InvoiceMeta[0]/InvoiceMeta_5Layer[5]/InvoiceMeta_5Holder[0]/InvoiceMeta_5[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 423.27, + "computedY" : 640.415, + "placementX" : 423.27, + "placementY" : 640.415, + "placementWidth" : 18.009, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 18.009, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/IdentityRule[2]", + "entityName" : "IdentityRule", + "entityKind" : "ShapeNode", + "parentPath" : "MeteredInvoice[0]/Body[0]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 20.031, + "computedY" : 609.264, + "placementX" : 20.031, + "placementY" : 609.264, + "placementWidth" : 550.7, + "placementHeight" : 0.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 0.959, + "margin" : { + "top" : 7.899, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]", + "entityName" : "PartiesRow", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 20.031, + "computedY" : 497.688, + "placementX" : 20.031, + "placementY" : 497.688, + "placementWidth" : 550.7, + "placementHeight" : 94.084, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 94.084, + "margin" : { + "top" : 5.078, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]", + "entityName" : "BillToColumn", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 20.031, + "computedY" : 497.688, + "placementX" : 20.031, + "placementY" : 497.688, + "placementWidth" : 272.046, + "placementHeight" : 94.084, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 272.046, + "contentHeight" : 94.084, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 11.285, + "bottom" : 0.0, + "left" : 4.232 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]", + "entityName" : "BillTo", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 24.262, + "computedY" : 497.688, + "placementX" : 24.262, + "placementY" : 497.688, + "placementWidth" : 256.529, + "placementHeight" : 94.084, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.529, + "contentHeight" : 94.084, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]", + "entityName" : "BillToHeadingLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 24.262, + "computedY" : 578.231, + "placementX" : 24.262, + "placementY" : 578.231, + "placementWidth" : 256.529, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.529, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]", + "entityName" : "BillToHeadingHolder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 24.262, + "computedY" : 578.231, + "placementX" : 24.262, + "placementY" : 578.231, + "placementWidth" : 256.529, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.529, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]", + "entityName" : "BillToHeading", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 24.262, + "computedY" : 578.231, + "placementX" : 24.262, + "placementY" : 578.231, + "placementWidth" : 256.529, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.529, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]/BillToHeadingIcon[0]", + "entityName" : "BillToHeadingIcon", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 24.262, + "computedY" : 578.231, + "placementX" : 24.262, + "placementY" : 578.231, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]/BillToHeadingIcon[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]/BillToHeadingIcon[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 24.262, + "computedY" : 578.231, + "placementX" : 24.262, + "placementY" : 578.231, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]/BillToHeadingIcon[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]/BillToHeadingIcon[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 24.262, + "computedY" : 578.231, + "placementX" : 24.262, + "placementY" : 578.231, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]/BillToHeadingIcon[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]/BillToHeadingIcon[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 24.262, + "computedY" : 578.231, + "placementX" : 24.262, + "placementY" : 578.231, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]/BillToHeadingLabel[1]", + "entityName" : "BillToHeadingLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToHeadingLayer[0]/BillToHeadingHolder[0]/BillToHeading[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 46.268, + "computedY" : 580.261, + "placementX" : 46.268, + "placementY" : 580.261, + "placementWidth" : 28.811, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.811, + "contentHeight" : 9.48, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]", + "entityName" : "BillToBody", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 24.262, + "computedY" : 497.688, + "placementX" : 24.262, + "placementY" : 497.688, + "placementWidth" : 256.529, + "placementHeight" : 75.464, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.529, + "contentHeight" : 75.464, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 22.005 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToName[0]", + "entityName" : "BillToName", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 46.268, + "computedY" : 560.552, + "placementX" : 46.268, + "placementY" : 560.552, + "placementWidth" : 83.024, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.024, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToAddress_0[1]", + "entityName" : "BillToAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 46.268, + "computedY" : 546.811, + "placementX" : 46.268, + "placementY" : 546.811, + "placementWidth" : 57.639, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.639, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToAddress_1[2]", + "entityName" : "BillToAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 46.268, + "computedY" : 533.07, + "placementX" : 46.268, + "placementY" : 533.07, + "placementWidth" : 89.471, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 89.471, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToAddress_2[3]", + "entityName" : "BillToAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]", + "childIndex" : 3, + "depth" : 7, + "layer" : 7, + "computedX" : 46.268, + "computedY" : 519.329, + "placementX" : 46.268, + "placementY" : 519.329, + "placementWidth" : 65.229, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 65.229, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToRegistrationLayer[4]", + "entityName" : "BillToRegistrationLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]", + "childIndex" : 4, + "depth" : 7, + "layer" : 7, + "computedX" : 46.268, + "computedY" : 497.688, + "placementX" : 46.268, + "placementY" : 497.688, + "placementWidth" : 234.524, + "placementHeight" : 18.819, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 234.524, + "contentHeight" : 18.819, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToRegistrationLayer[4]/BillToRegistrationHolder[0]", + "entityName" : "BillToRegistrationHolder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToRegistrationLayer[4]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 46.268, + "computedY" : 497.688, + "placementX" : 46.268, + "placementY" : 497.688, + "placementWidth" : 234.524, + "placementHeight" : 18.819, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 234.524, + "contentHeight" : 18.819, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToRegistrationLayer[4]/BillToRegistrationHolder[0]/BillToRegistration[0]", + "entityName" : "BillToRegistration", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToRegistrationLayer[4]/BillToRegistrationHolder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 46.268, + "computedY" : 497.688, + "placementX" : 46.268, + "placementY" : 497.688, + "placementWidth" : 234.524, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 234.524, + "contentHeight" : 10.92, + "margin" : { + "top" : 7.899, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToRegistrationLayer[4]/BillToRegistrationHolder[0]/BillToRegistration[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToRegistrationLayer[4]/BillToRegistrationHolder[0]/BillToRegistration[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 46.268, + "computedY" : 497.688, + "placementX" : 46.268, + "placementY" : 497.688, + "placementWidth" : 31.777, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.777, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToRegistrationLayer[4]/BillToRegistrationHolder[0]/BillToRegistration[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/BillToColumn[0]/BillTo[0]/BillToBody[1]/BillToRegistrationLayer[4]/BillToRegistrationHolder[0]/BillToRegistration[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 86.329, + "computedY" : 497.688, + "placementX" : 86.329, + "placementY" : 497.688, + "placementWidth" : 67.031, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.031, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]", + "entityName" : "ShipToColumn", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 292.077, + "computedY" : 505.587, + "placementX" : 292.077, + "placementY" : 505.587, + "placementWidth" : 278.654, + "placementHeight" : 86.185, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 278.654, + "contentHeight" : 86.185, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 41.754 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]", + "entityName" : "ShipTo", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 333.831, + "computedY" : 505.587, + "placementX" : 333.831, + "placementY" : 505.587, + "placementWidth" : 236.901, + "placementHeight" : 86.185, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.901, + "contentHeight" : 86.185, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]", + "entityName" : "ShipToHeadingLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 333.831, + "computedY" : 578.231, + "placementX" : 333.831, + "placementY" : 578.231, + "placementWidth" : 236.901, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.901, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]", + "entityName" : "ShipToHeadingHolder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 333.831, + "computedY" : 578.231, + "placementX" : 333.831, + "placementY" : 578.231, + "placementWidth" : 236.901, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.901, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]", + "entityName" : "ShipToHeading", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 333.831, + "computedY" : 578.231, + "placementX" : 333.831, + "placementY" : 578.231, + "placementWidth" : 236.901, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.901, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]/ShipToHeadingIcon[0]", + "entityName" : "ShipToHeadingIcon", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 333.831, + "computedY" : 578.231, + "placementX" : 333.831, + "placementY" : 578.231, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]/ShipToHeadingIcon[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]/ShipToHeadingIcon[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 333.831, + "computedY" : 578.231, + "placementX" : 333.831, + "placementY" : 578.231, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]/ShipToHeadingIcon[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]/ShipToHeadingIcon[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 333.831, + "computedY" : 578.231, + "placementX" : 333.831, + "placementY" : 578.231, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]/ShipToHeadingIcon[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]/ShipToHeadingIcon[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 333.831, + "computedY" : 578.231, + "placementX" : 333.831, + "placementY" : 578.231, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]/ShipToHeadingLabel[1]", + "entityName" : "ShipToHeadingLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToHeadingLayer[0]/ShipToHeadingHolder[0]/ShipToHeading[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 355.836, + "computedY" : 580.261, + "placementX" : 355.836, + "placementY" : 580.261, + "placementWidth" : 30.707, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.707, + "contentHeight" : 9.48, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]", + "entityName" : "ShipToBody", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 333.831, + "computedY" : 505.587, + "placementX" : 333.831, + "placementY" : 505.587, + "placementWidth" : 112.669, + "placementHeight" : 67.565, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.669, + "contentHeight" : 67.565, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 22.005 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]/ShipToName[0]", + "entityName" : "ShipToName", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 355.836, + "computedY" : 560.552, + "placementX" : 355.836, + "placementY" : 560.552, + "placementWidth" : 83.024, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.024, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]/ShipToAddress_0[1]", + "entityName" : "ShipToAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 355.836, + "computedY" : 546.811, + "placementX" : 355.836, + "placementY" : 546.811, + "placementWidth" : 53.736, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 53.736, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]/ShipToAddress_1[2]", + "entityName" : "ShipToAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 355.836, + "computedY" : 533.07, + "placementX" : 355.836, + "placementY" : 533.07, + "placementWidth" : 90.663, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.663, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]/ShipToAddress_2[3]", + "entityName" : "ShipToAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]", + "childIndex" : 3, + "depth" : 7, + "layer" : 7, + "computedX" : 355.836, + "computedY" : 519.329, + "placementX" : 355.836, + "placementY" : 519.329, + "placementWidth" : 89.471, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 89.471, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]/ShipToAddress_3[4]", + "entityName" : "ShipToAddress_3", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/PartiesRow[3]/ShipToColumn[1]/ShipTo[0]/ShipToBody[1]", + "childIndex" : 4, + "depth" : 7, + "layer" : 7, + "computedX" : 355.836, + "computedY" : 505.587, + "placementX" : 355.836, + "placementY" : 505.587, + "placementWidth" : 65.229, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 65.229, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/LineItems[4]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "MeteredInvoice[0]/Body[0]", + "childIndex" : 4, + "depth" : 3, + "layer" : 3, + "computedX" : 20.031, + "computedY" : 248.321, + "placementX" : 20.031, + "placementY" : 248.321, + "placementWidth" : 550.7, + "placementHeight" : 230.183, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 230.183, + "margin" : { + "top" : 6.771, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]", + "entityName" : "ClosingRow", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]", + "childIndex" : 5, + "depth" : 3, + "layer" : 3, + "computedX" : 20.031, + "computedY" : 105.426, + "placementX" : 20.031, + "placementY" : 105.426, + "placementWidth" : 550.7, + "placementHeight" : 130.482, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 130.482, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]", + "entityName" : "PaymentColumn", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 20.031, + "computedY" : 105.426, + "placementX" : 20.031, + "placementY" : 105.426, + "placementWidth" : 243.188, + "placementHeight" : 127.229, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 243.188, + "contentHeight" : 127.229, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]", + "entityName" : "PaymentDetails", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 20.031, + "computedY" : 105.426, + "placementX" : 20.031, + "placementY" : 105.426, + "placementWidth" : 243.188, + "placementHeight" : 127.229, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 243.188, + "contentHeight" : 127.229, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 11.849, + "right" : 11.849, + "bottom" : 11.849, + "left" : 11.849 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]", + "entityName" : "PaymentDetailsHeadingLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 31.88, + "computedY" : 206.135, + "placementX" : 31.88, + "placementY" : 206.135, + "placementWidth" : 219.49, + "placementHeight" : 14.67, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 14.67, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]", + "entityName" : "PaymentDetailsHeadingHolder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 31.88, + "computedY" : 206.135, + "placementX" : 31.88, + "placementY" : 206.135, + "placementWidth" : 219.49, + "placementHeight" : 14.67, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 14.67, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]", + "entityName" : "PaymentDetailsHeading", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 31.88, + "computedY" : 206.135, + "placementX" : 31.88, + "placementY" : 206.135, + "placementWidth" : 219.49, + "placementHeight" : 14.67, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 14.67, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]/PaymentDetailsHeadingIcon[0]", + "entityName" : "PaymentDetailsHeadingIcon", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 31.88, + "computedY" : 206.135, + "placementX" : 31.88, + "placementY" : 206.135, + "placementWidth" : 14.67, + "placementHeight" : 14.67, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.67, + "contentHeight" : 14.67, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]/PaymentDetailsHeadingIcon[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]/PaymentDetailsHeadingIcon[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 31.88, + "computedY" : 206.135, + "placementX" : 31.88, + "placementY" : 206.135, + "placementWidth" : 14.67, + "placementHeight" : 14.67, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.67, + "contentHeight" : 14.67, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]/PaymentDetailsHeadingIcon[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]/PaymentDetailsHeadingIcon[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 31.88, + "computedY" : 206.135, + "placementX" : 31.88, + "placementY" : 206.135, + "placementWidth" : 14.67, + "placementHeight" : 14.67, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.67, + "contentHeight" : 14.67, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]/PaymentDetailsHeadingIcon[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]/PaymentDetailsHeadingIcon[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 31.88, + "computedY" : 206.135, + "placementX" : 31.88, + "placementY" : 206.135, + "placementWidth" : 14.67, + "placementHeight" : 14.67, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.67, + "contentHeight" : 14.67, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]/PaymentDetailsHeadingLabel[1]", + "entityName" : "PaymentDetailsHeadingLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsHeadingLayer[0]/PaymentDetailsHeadingHolder[0]/PaymentDetailsHeading[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 49.371, + "computedY" : 208.221, + "placementX" : 49.371, + "placementY" : 208.221, + "placementWidth" : 79.564, + "placementHeight" : 10.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 79.564, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]", + "entityName" : "PaymentDetailsRows", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 31.88, + "computedY" : 117.275, + "placementX" : 31.88, + "placementY" : 117.275, + "placementWidth" : 219.49, + "placementHeight" : 83.952, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 83.952, + "margin" : { + "top" : 2.257, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_0Layer[0]", + "entityName" : "PaymentDetail_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 31.88, + "computedY" : 191.506, + "placementX" : 31.88, + "placementY" : 191.506, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_0Layer[0]/PaymentDetail_0Holder[0]", + "entityName" : "PaymentDetail_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_0Layer[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 31.88, + "computedY" : 191.506, + "placementX" : 31.88, + "placementY" : 191.506, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_0Layer[0]/PaymentDetail_0Holder[0]/PaymentDetail_0[0]", + "entityName" : "PaymentDetail_0", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_0Layer[0]/PaymentDetail_0Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 31.88, + "computedY" : 191.506, + "placementX" : 31.88, + "placementY" : 191.506, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_0Layer[0]/PaymentDetail_0Holder[0]/PaymentDetail_0[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_0Layer[0]/PaymentDetail_0Holder[0]/PaymentDetail_0[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 31.88, + "computedY" : 191.506, + "placementX" : 31.88, + "placementY" : 191.506, + "placementWidth" : 55.023, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 55.023, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_0Layer[0]/PaymentDetail_0Holder[0]/PaymentDetail_0[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_0Layer[0]/PaymentDetail_0Holder[0]/PaymentDetail_0[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 128.929, + "computedY" : 191.506, + "placementX" : 128.929, + "placementY" : 191.506, + "placementWidth" : 108.637, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.637, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_1Layer[1]", + "entityName" : "PaymentDetail_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 31.88, + "computedY" : 179.135, + "placementX" : 31.88, + "placementY" : 179.135, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_1Layer[1]/PaymentDetail_1Holder[0]", + "entityName" : "PaymentDetail_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_1Layer[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 31.88, + "computedY" : 179.135, + "placementX" : 31.88, + "placementY" : 179.135, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_1Layer[1]/PaymentDetail_1Holder[0]/PaymentDetail_1[0]", + "entityName" : "PaymentDetail_1", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_1Layer[1]/PaymentDetail_1Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 31.88, + "computedY" : 179.135, + "placementX" : 31.88, + "placementY" : 179.135, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_1Layer[1]/PaymentDetail_1Holder[0]/PaymentDetail_1[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_1Layer[1]/PaymentDetail_1Holder[0]/PaymentDetail_1[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 31.88, + "computedY" : 179.135, + "placementX" : 31.88, + "placementY" : 179.135, + "placementWidth" : 43.157, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 43.157, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_1Layer[1]/PaymentDetail_1Holder[0]/PaymentDetail_1[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_1Layer[1]/PaymentDetail_1Holder[0]/PaymentDetail_1[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 128.929, + "computedY" : 179.135, + "placementX" : 128.929, + "placementY" : 179.135, + "placementWidth" : 48.025, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.025, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_2Layer[2]", + "entityName" : "PaymentDetail_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 31.88, + "computedY" : 166.763, + "placementX" : 31.88, + "placementY" : 166.763, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_2Layer[2]/PaymentDetail_2Holder[0]", + "entityName" : "PaymentDetail_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_2Layer[2]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 31.88, + "computedY" : 166.763, + "placementX" : 31.88, + "placementY" : 166.763, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_2Layer[2]/PaymentDetail_2Holder[0]/PaymentDetail_2[0]", + "entityName" : "PaymentDetail_2", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_2Layer[2]/PaymentDetail_2Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 31.88, + "computedY" : 166.763, + "placementX" : 31.88, + "placementY" : 166.763, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_2Layer[2]/PaymentDetail_2Holder[0]/PaymentDetail_2[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_2Layer[2]/PaymentDetail_2Holder[0]/PaymentDetail_2[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 31.88, + "computedY" : 166.763, + "placementX" : 31.88, + "placementY" : 166.763, + "placementWidth" : 63.002, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.002, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_2Layer[2]/PaymentDetail_2Holder[0]/PaymentDetail_2[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_2Layer[2]/PaymentDetail_2Holder[0]/PaymentDetail_2[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 128.929, + "computedY" : 166.763, + "placementX" : 128.929, + "placementY" : 166.763, + "placementWidth" : 37.584, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 37.584, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_3Layer[3]", + "entityName" : "PaymentDetail_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]", + "childIndex" : 3, + "depth" : 7, + "layer" : 7, + "computedX" : 31.88, + "computedY" : 154.391, + "placementX" : 31.88, + "placementY" : 154.391, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_3Layer[3]/PaymentDetail_3Holder[0]", + "entityName" : "PaymentDetail_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_3Layer[3]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 31.88, + "computedY" : 154.391, + "placementX" : 31.88, + "placementY" : 154.391, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_3Layer[3]/PaymentDetail_3Holder[0]/PaymentDetail_3[0]", + "entityName" : "PaymentDetail_3", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_3Layer[3]/PaymentDetail_3Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 31.88, + "computedY" : 154.391, + "placementX" : 31.88, + "placementY" : 154.391, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_3Layer[3]/PaymentDetail_3Holder[0]/PaymentDetail_3[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_3Layer[3]/PaymentDetail_3Holder[0]/PaymentDetail_3[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 31.88, + "computedY" : 154.391, + "placementX" : 31.88, + "placementY" : 154.391, + "placementWidth" : 37.762, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 37.762, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_3Layer[3]/PaymentDetail_3Holder[0]/PaymentDetail_3[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_3Layer[3]/PaymentDetail_3Holder[0]/PaymentDetail_3[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 128.929, + "computedY" : 154.391, + "placementX" : 128.929, + "placementY" : 154.391, + "placementWidth" : 34.214, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.214, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_4Layer[4]", + "entityName" : "PaymentDetail_4Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]", + "childIndex" : 4, + "depth" : 7, + "layer" : 7, + "computedX" : 31.88, + "computedY" : 142.019, + "placementX" : 31.88, + "placementY" : 142.019, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_4Layer[4]/PaymentDetail_4Holder[0]", + "entityName" : "PaymentDetail_4Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_4Layer[4]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 31.88, + "computedY" : 142.019, + "placementX" : 31.88, + "placementY" : 142.019, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_4Layer[4]/PaymentDetail_4Holder[0]/PaymentDetail_4[0]", + "entityName" : "PaymentDetail_4", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_4Layer[4]/PaymentDetail_4Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 31.88, + "computedY" : 142.019, + "placementX" : 31.88, + "placementY" : 142.019, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_4Layer[4]/PaymentDetail_4Holder[0]/PaymentDetail_4[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_4Layer[4]/PaymentDetail_4Holder[0]/PaymentDetail_4[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 31.88, + "computedY" : 142.019, + "placementX" : 31.88, + "placementY" : 142.019, + "placementWidth" : 21.206, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.206, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_4Layer[4]/PaymentDetail_4Holder[0]/PaymentDetail_4[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_4Layer[4]/PaymentDetail_4Holder[0]/PaymentDetail_4[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 128.929, + "computedY" : 142.019, + "placementX" : 128.929, + "placementY" : 142.019, + "placementWidth" : 114.769, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 114.769, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_5Layer[5]", + "entityName" : "PaymentDetail_5Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]", + "childIndex" : 5, + "depth" : 7, + "layer" : 7, + "computedX" : 31.88, + "computedY" : 129.647, + "placementX" : 31.88, + "placementY" : 129.647, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_5Layer[5]/PaymentDetail_5Holder[0]", + "entityName" : "PaymentDetail_5Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_5Layer[5]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 31.88, + "computedY" : 129.647, + "placementX" : 31.88, + "placementY" : 129.647, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_5Layer[5]/PaymentDetail_5Holder[0]/PaymentDetail_5[0]", + "entityName" : "PaymentDetail_5", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_5Layer[5]/PaymentDetail_5Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 31.88, + "computedY" : 129.647, + "placementX" : 31.88, + "placementY" : 129.647, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_5Layer[5]/PaymentDetail_5Holder[0]/PaymentDetail_5[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_5Layer[5]/PaymentDetail_5Holder[0]/PaymentDetail_5[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 31.88, + "computedY" : 129.647, + "placementX" : 31.88, + "placementY" : 129.647, + "placementWidth" : 51.654, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.654, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_5Layer[5]/PaymentDetail_5Holder[0]/PaymentDetail_5[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_5Layer[5]/PaymentDetail_5Holder[0]/PaymentDetail_5[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 128.929, + "computedY" : 129.647, + "placementX" : 128.929, + "placementY" : 129.647, + "placementWidth" : 60.629, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.629, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_6Layer[6]", + "entityName" : "PaymentDetail_6Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]", + "childIndex" : 6, + "depth" : 7, + "layer" : 7, + "computedX" : 31.88, + "computedY" : 117.275, + "placementX" : 31.88, + "placementY" : 117.275, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_6Layer[6]/PaymentDetail_6Holder[0]", + "entityName" : "PaymentDetail_6Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_6Layer[6]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 31.88, + "computedY" : 117.275, + "placementX" : 31.88, + "placementY" : 117.275, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_6Layer[6]/PaymentDetail_6Holder[0]/PaymentDetail_6[0]", + "entityName" : "PaymentDetail_6", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_6Layer[6]/PaymentDetail_6Holder[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 31.88, + "computedY" : 117.275, + "placementX" : 31.88, + "placementY" : 117.275, + "placementWidth" : 219.49, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 219.49, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_6Layer[6]/PaymentDetail_6Holder[0]/PaymentDetail_6[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_6Layer[6]/PaymentDetail_6Holder[0]/PaymentDetail_6[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 31.88, + "computedY" : 117.275, + "placementX" : 31.88, + "placementY" : 117.275, + "placementWidth" : 63.804, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.804, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_6Layer[6]/PaymentDetail_6Holder[0]/PaymentDetail_6[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/PaymentColumn[0]/PaymentDetails[0]/PaymentDetailsRows[1]/PaymentDetail_6Layer[6]/PaymentDetail_6Holder[0]/PaymentDetail_6[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 128.929, + "computedY" : 117.275, + "placementX" : 128.929, + "placementY" : 117.275, + "placementWidth" : 96.26, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.26, + "contentHeight" : 9.72, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]", + "entityName" : "SummaryColumn", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 326.978, + "computedY" : 105.426, + "placementX" : 326.978, + "placementY" : 105.426, + "placementWidth" : 238.11, + "placementHeight" : 130.482, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.11, + "contentHeight" : 130.482, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]", + "entityName" : "Totals", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 326.978, + "computedY" : 167.638, + "placementX" : 326.978, + "placementY" : 167.638, + "placementWidth" : 238.11, + "placementHeight" : 68.269, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.11, + "contentHeight" : 68.269, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 4.232, + "bottom" : 0.0, + "left" : 3.385 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_0Layer[0]", + "entityName" : "TotalsRow_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 330.364, + "computedY" : 225.588, + "placementX" : 330.364, + "placementY" : 225.588, + "placementWidth" : 230.493, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.493, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]", + "entityName" : "TotalsRow_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_0Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 330.364, + "computedY" : 225.588, + "placementX" : 330.364, + "placementY" : 225.588, + "placementWidth" : 230.493, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.493, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "entityName" : "TotalsRow_0", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 330.364, + "computedY" : 225.588, + "placementX" : 330.364, + "placementY" : 225.588, + "placementWidth" : 230.493, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.493, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 330.364, + "computedY" : 225.588, + "placementX" : 330.364, + "placementY" : 225.588, + "placementWidth" : 31.639, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.639, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 445.61, + "computedY" : 225.588, + "placementX" : 445.61, + "placementY" : 225.588, + "placementWidth" : 115.246, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.246, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_1Layer[1]", + "entityName" : "TotalsRow_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 330.364, + "computedY" : 206.804, + "placementX" : 330.364, + "placementY" : 206.804, + "placementWidth" : 230.493, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.493, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]", + "entityName" : "TotalsRow_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_1Layer[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 330.364, + "computedY" : 206.804, + "placementX" : 330.364, + "placementY" : 206.804, + "placementWidth" : 230.493, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.493, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "entityName" : "TotalsRow_1", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 330.364, + "computedY" : 206.804, + "placementX" : 330.364, + "placementY" : 206.804, + "placementWidth" : 230.493, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.493, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 330.364, + "computedY" : 206.804, + "placementX" : 330.364, + "placementY" : 206.804, + "placementWidth" : 40.394, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.394, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 445.61, + "computedY" : 206.804, + "placementX" : 445.61, + "placementY" : 206.804, + "placementWidth" : 115.246, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.246, + "contentHeight" : 10.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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalsRule[2]", + "entityName" : "TotalsRule", + "entityKind" : "LineNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 330.364, + "computedY" : 195.237, + "placementX" : 330.364, + "placementY" : 195.237, + "placementWidth" : 230.493, + "placementHeight" : 1.128, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.493, + "contentHeight" : 1.128, + "margin" : { + "top" : 1.975, + "right" : 0.0, + "bottom" : 1.975, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalDueLayer[3]", + "entityName" : "TotalDueLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 330.364, + "computedY" : 167.638, + "placementX" : 330.364, + "placementY" : 167.638, + "placementWidth" : 230.493, + "placementHeight" : 17.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.493, + "contentHeight" : 17.16, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]", + "entityName" : "TotalDueHolder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalDueLayer[3]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 330.364, + "computedY" : 167.638, + "placementX" : 330.364, + "placementY" : 167.638, + "placementWidth" : 230.493, + "placementHeight" : 17.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.493, + "contentHeight" : 17.16, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "entityName" : "TotalDue", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 330.364, + "computedY" : 167.638, + "placementX" : 330.364, + "placementY" : 167.638, + "placementWidth" : 230.493, + "placementHeight" : 17.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 230.493, + "contentHeight" : 17.16, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 330.364, + "computedY" : 169.618, + "placementX" : 330.364, + "placementY" : 169.618, + "placementWidth" : 60.995, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.995, + "contentHeight" : 13.2, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 445.61, + "computedY" : 167.638, + "placementX" : 445.61, + "placementY" : 167.638, + "placementWidth" : 115.246, + "placementHeight" : 17.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.246, + "contentHeight" : 17.16, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]", + "entityName" : "PaymentDueBy", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 326.978, + "computedY" : 105.426, + "placementX" : 326.978, + "placementY" : 105.426, + "placementWidth" : 238.11, + "placementHeight" : 45.85, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.11, + "contentHeight" : 45.85, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 11.285, + "right" : 11.285, + "bottom" : 11.285, + "left" : 11.285 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]", + "entityName" : "PaymentDueByRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 338.263, + "computedY" : 116.711, + "placementX" : 338.263, + "placementY" : 116.711, + "placementWidth" : 215.541, + "placementHeight" : 23.28, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 215.541, + "contentHeight" : 23.28, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]", + "entityName" : "PaymentDueByRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 338.263, + "computedY" : 116.711, + "placementX" : 338.263, + "placementY" : 116.711, + "placementWidth" : 215.541, + "placementHeight" : 23.28, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 215.541, + "contentHeight" : 23.28, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]", + "entityName" : "PaymentDueByRow", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 338.263, + "computedY" : 116.711, + "placementX" : 338.263, + "placementY" : 116.711, + "placementWidth" : 215.541, + "placementHeight" : 23.28, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 215.541, + "contentHeight" : 23.28, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByIcon[0]", + "entityName" : "PaymentDueByIcon", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 338.263, + "computedY" : 118.194, + "placementX" : 338.263, + "placementY" : 118.194, + "placementWidth" : 20.313, + "placementHeight" : 20.313, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.313, + "contentHeight" : 20.313, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByIcon[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByIcon[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 338.263, + "computedY" : 118.194, + "placementX" : 338.263, + "placementY" : 118.194, + "placementWidth" : 20.313, + "placementHeight" : 20.313, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.313, + "contentHeight" : 20.313, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByIcon[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByIcon[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 338.263, + "computedY" : 118.194, + "placementX" : 338.263, + "placementY" : 118.194, + "placementWidth" : 20.313, + "placementHeight" : 20.313, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.313, + "contentHeight" : 20.313, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByIcon[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByIcon[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 338.263, + "computedY" : 118.194, + "placementX" : 338.263, + "placementY" : 118.194, + "placementWidth" : 20.313, + "placementHeight" : 20.313, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.313, + "contentHeight" : 20.313, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByIcon[0]/SvgIcon[0]/SvgLayer2[2]", + "entityName" : "SvgLayer2", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByIcon[0]/SvgIcon[0]", + "childIndex" : 2, + "depth" : 11, + "layer" : 11, + "computedX" : 338.263, + "computedY" : 118.194, + "placementX" : 338.263, + "placementY" : 118.194, + "placementWidth" : 20.313, + "placementHeight" : 20.313, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.313, + "contentHeight" : 20.313, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByText[1]", + "entityName" : "PaymentDueByText", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 370.989, + "computedY" : 116.711, + "placementX" : 370.989, + "placementY" : 116.711, + "placementWidth" : 81.271, + "placementHeight" : 23.28, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 81.271, + "contentHeight" : 23.28, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByText[1]/PaymentDueByLabel[0]", + "entityName" : "PaymentDueByLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByText[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 370.989, + "computedY" : 130.391, + "placementX" : 370.989, + "placementY" : 130.391, + "placementWidth" : 69.8, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.8, + "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" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByText[1]/PaymentDueByValue[1]", + "entityName" : "PaymentDueByValue", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingRow[5]/SummaryColumn[1]/PaymentDueBy[1]/PaymentDueByRowLayer[0]/PaymentDueByRowHolder[0]/PaymentDueByRow[0]/PaymentDueByText[1]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 370.989, + "computedY" : 116.711, + "placementX" : 370.989, + "placementY" : 116.711, + "placementWidth" : 81.271, + "placementHeight" : 13.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 81.271, + "contentHeight" : 13.68, + "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" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]", + "entityName" : "ClosingNote", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]", + "childIndex" : 6, + "depth" : 3, + "layer" : 3, + "computedX" : 20.031, + "computedY" : 54.204, + "placementX" : 20.031, + "placementY" : 54.204, + "placementWidth" : 550.7, + "placementHeight" : 37.116, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 37.116, + "margin" : { + "top" : 1.693, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteRule[0]", + "entityName" : "ClosingNoteRule", + "entityKind" : "ShapeNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 20.031, + "computedY" : 90.36, + "placementX" : 20.031, + "placementY" : 90.36, + "placementWidth" : 550.7, + "placementHeight" : 0.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 0.959, + "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" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]", + "entityName" : "ClosingNoteBody", + "entityKind" : "RowNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 20.031, + "computedY" : 54.204, + "placementX" : 20.031, + "placementY" : 54.204, + "placementWidth" : 550.7, + "placementHeight" : 23.461, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 550.7, + "contentHeight" : 23.461, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 3.103 + } + }, { + "path" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteIcon[0]", + "entityName" : "ClosingNoteIcon", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 23.134, + "computedY" : 64.123, + "placementX" : 23.134, + "placementY" : 64.123, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteIcon[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteIcon[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 23.134, + "computedY" : 64.123, + "placementX" : 23.134, + "placementY" : 64.123, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteIcon[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteIcon[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 23.134, + "computedY" : 64.123, + "placementX" : 23.134, + "placementY" : 64.123, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteIcon[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteIcon[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 23.134, + "computedY" : 64.123, + "placementX" : 23.134, + "placementY" : 64.123, + "placementWidth" : 13.542, + "placementHeight" : 13.542, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.542, + "contentHeight" : 13.542, + "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" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteText[1]", + "entityName" : "ClosingNoteText", + "entityKind" : "SectionNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 47.396, + "computedY" : 54.204, + "placementX" : 47.396, + "placementY" : 54.204, + "placementWidth" : 367.011, + "placementHeight" : 23.461, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 367.011, + "contentHeight" : 23.461, + "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" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteText[1]/ClosingNoteLead[0]", + "entityName" : "ClosingNoteLead", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteText[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 47.396, + "computedY" : 66.745, + "placementX" : 47.396, + "placementY" : 66.745, + "placementWidth" : 177.022, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 177.022, + "contentHeight" : 10.92, + "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" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteText[1]/ClosingNoteProse_0[1]", + "entityName" : "ClosingNoteProse_0", + "entityKind" : "ParagraphNode", + "parentPath" : "MeteredInvoice[0]/Body[0]/ClosingNote[6]/ClosingNoteBody[1]/ClosingNoteText[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 47.396, + "computedY" : 54.204, + "placementX" : 47.396, + "placementY" : 54.204, + "placementWidth" : 367.011, + "placementHeight" : 9.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 367.011, + "contentHeight" : 9.72, + "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/invoice-v2-layered/metered_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/metered_invoice-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..c0b6a4c64d32303b8a846eff6d66eef5cad4d9ff GIT binary patch literal 89864 zcmd>mXEdCBv~MB>5xqr1M2{ZbC?iOs6GU%`E=2DJAreHi(R)M}z1Kms88y+nU=StB zsH5J$_dVx+xa*vC?^@^M^~G8w=9%aD@4bI*Pv}ckIl?>l?_9ffjZi`UnZ~tiIGWe4 z-B7^80YAy3;W@l^?fo@{XVR}cjW?Tbxl*CVj!uhx#y#dwXT1hFo8kNClFhQeT!WtS-<93ITt6tYX(`%8loa}vj;SEE>|O_!^j;d_2U=~@x2K$ud)qdStZ zuM}52RA`j2%sDRMx$~3KWeuan+D{SB(yLQXq#PCt1J5VU{-m@8aXv+ViNZ*2!xr!2 z3Xoj{OSRP7b-rEYNf`K)o{-2jG-J}_ij^`^lRu>2_VZrdGCJZ@D^xm~WBph|*I0jO z+yKk5Z(q4Quk}!-UHuVSIBrkj&C}-=YrS8mz-k!@y)oPPF8We&bmOAiWKJ>+&uWUP>L}FL*_uUDhn$;hbAH!KUK`^ zFh))yb7Eq`-xscKdU2XDC+f@EQ7>Y>_PM3yyj+2!e!0}aPtaN;!c^g2uet+4j7kb5I4d<2cHldf z?3NPc_p#9JZlvA?cFu~L#~7ZKispQoeK$JBkj#peTLV+@ibJb`Jq~SlU3dWRg#w(H zhi7ZJ)Gz9(M7?I-poG^?GptU&JyAxBV>!MQ3_X!?agjcG;8FvduGw~_T^&Z;z}@Xq zPQARC7H>S-@^~R10F#S&c)2t`FXZEoN}qQtvS=APl~@`?`~QM3v;I^-1^KC(cVuJSMycQpfYN5)hpRpuMP^vUn`le&FY(VftFsr`-so3$FHXT zs*t*LBqovtwZ*0YCqAGP9SQRIGt}>WcM$W3%PFXx%hCNJcoIOn+0q3^M zO=YHi^?9Mi^uUU-I6-$QcTbQ1*>dqE?EIZhOQ|abYn-9Z0@?D+sRqT1<&*G~Y1cpc z+2&ZgdIAfSUfIjtikbZC4Ux{SE-^DAdZB?C$#H|A`Iq#t!(#IS*ZRUOUyjkRAx%_p zx7kC;;;VP_<-Iihis`V43fA2t=!KX*1fgNRi^pA$vvsw6`tF8T_TvHrawzJ>7QYCc@|wYh1hXG6{>2|^pfd<&@P(s$kV ztW7q(hpZApC$lk;%Z(W>x$mo}l@aCSILn5?k+d#`kr2zs$e89Uw09imDCWo><#68BZ>dvIp_SVBGs4KH&sgVR zaL0(MlHjtho>L)B)T^iC^0-%-RRV$mPvB=z>2w(?DDOon4pz5tq-Z;0SDrT!7FReP z=hDoKzVU#<31ZXs?ZU~)>FP#UG14Ct%cC#@E!&`2(I%PR!90>U-o*L3#RHA>z83DJ zJaX*VSB2=<`8I}b37kmif7U}t2@#6H)@=(WLw^h!EwR7f zo?eFK`4(#REODthvc=tNQJVwlu{*R}zI4OMfq;_NAoFdSds;*3eBC4+s^Uj`X|KF} zH_(}8Zf>Rfcwj(D3FA6! zOjKLtth-_5jz#1mlA?}RzS2~#pgyu~O~13JQ(81*zb5-BasghyQxW%eDEIXO2lf^3 zhxAZbzE&d-t3n0bw z2--!TDX-OtAT|Z)ex!$#&;q*$tqK<#R=;Y^eClmwqOG!A4jUG89QTz{cs%O+Q$C%R zX$quVpD??eZ0s1Rc{M|Gg`F5Jqj{gEp+C4d z_(!!-5|Yg{`kScY1}h(bQfV7V1r1%Gi)hkuO9ryX1|tVe(F-37F@WNuQnTKNc70TO z4LU$Vso~y0@KzrMw-&>$BQd9TvG3kFuOVN(&We7zB6RN!m(ouB->q2`=Pk_cxahoF z%18e~uZ@TjHN7$i^U`5g%KoHUByFSHH2EO$lV?|>tz;ikfd2|p;3q4|iM2lI+qfLx ztX&h;wG>dms2ix{y6qO*_%x3nYymLR9FtUq# zidD6ZD->m=_{H|RytA0{y}jQQI$h@N-tg;=NbDhz)KHU_u!FTG>-_xug=qa7<22sZ zU%9`FQG}wl@v*32pLeDj&&f|K*dIeMe zJpbgajnO*{_8y3Co^o5aAB$nmSpL)TbXwkEs@Y1)1#hfUyv9Q4-Q?V}C)@^i?l|sW zBdPlgXUeeY(0vq$uNLligwE2l+B*)_99S8IY}z=ZUHoQce42f>{YY>eUPL7AtX^Uh zg8X+TYgb6vut5eH7H90GCJJ{i*@vyj33ZAF-!rfh_2=03k+NZ*;z=+~$4cc%?Vdi&-D*-@=&!@iDgzWq%Qb1;mxZ6)mklH{w}~kX+c|y8=|`lONdOe^?i)sT>sR zQ&;yeH^88>_iTBknBgO)D?Ekl9w{mNMest5i#)^Ln)SfhbCutksMTalkKVvoiQ2JZ zm%_*Q#^-6f^~9eDL4kLrJnM-qU71V!24|k1*u^(dL&WD--mPEswxDL^I8ynM5eG{Y zVlA6*eKT-;PcXLx^a=2uBVpDf6QQhudT=KCIHcz--T2(*&M-$gU*=Vp>P@dZaxdnb zyURWbtqK0AT;@T~q|jnXY?6)YvQgpbA?H1D$=V~{aY!r4$>iaZ*#@_1#ZRy<5z{0I zw_FA3XJMA9PnMEJQQd$2Fd;W{(qTMfi%!W#mcmh$nX4+3{8>qTi9%{Jt&yAk$FjmP z5l+3I?$Vp#WGEs)3r=+0K=B3iysTTVpr7d(K;LT-jYIOk8fvj*%_`-Mjzb=RGF^IJ3#BeI%Q@gcBxKp$%CT>5uI` zC0k@RS+o!Mw#qu6*)G@5vq~K+WsYJBICxMS8|55l+iXcKUWcS-_pwms_k2y}6v41x zgmyt#JrrkniPMi;RwT+4rlElNEAE~Yo0g;y4rk7AnjxTI-!pg3$ah;I5ztzxghw_o zGbHh^`tdiYDMCkkzg9&N`^&e!j;BD@`mWkr^^Mb-sW9hJejjV_CcRjiRkO+G%f-4K zB;GI!&HJMi02_-T?lbpVZNCc!V3AfS{z~f6u+j0a_KEVchg$LVGou{NRGQA3j@+ET5-x>`uku7>SPAd~P)lHvDKNI#j zc);be99_gtUormJ2$?W}@6Hj2Zgg78<)d`Ugr6aqA%GXDrYmrxq+#~+5&Xf4Z?1u} znwuho3#FN5W64;zc&U#JmXVQ3Gr`M#3Pt}wuU9{q;UlwITHy}$iDWZI%EFBVHCZz( zM4Ht8!j6(9`-_}JGEO8jAZV0kjzS9~mTQ`W&*M7553i581#Uz+$>sr$eoc%f_s>|- zOr+$hYlijSX+^#B4u@1+>w~##Hj5mzYcfzxJ}~SYUr+&Hgv9EaP4z*ph6^9|amPwE z42lY( zqW6lYJrqhF2p?Ju$N!BvW!)}7S8l3CjI^Oo`mBz5dVhS)88|L|ge_vbe6VVYw1O3k z!(}M=)l^gz00a*1v%4LW+h;vdRn6(7IA>dPNkK_z@uJ)%P0R>sHTNix$I4uN9ktrD zX9C*`!|EOsC@MqE5lqTM>tL1!`4LFKWns*b*1T4E51SaD*cblI(lW0$&^ zthUO4WPKM;R{}IK`JQMq7`SlH^Db^&Lb^C~UXW5kDZfo_S+?CxiSK@H7>3n^6-&M& zkM`WxHGe~d*24qGgf?%TJQ3c|4F`fmu+Gv(ZK4i@gDCPApEWD zg1cs>rm2y2gxJ2`k@56RKHEuiAvK*VHG{*V84r^gRk@m4`p(1$qvXD-`<=!gDeQ81 z_8~Z;Xu7PxDXb=!ZZH;7OGCgdgf>|JQ%!usIw7UXTEun$XYv$=4hsu&QPt{OOjV;v zK#oE>WDvbNCCSmbmw#iC zJJlp2zexT7TO9~a8t=M17_Sv~T`TunvK$gI5k~?vQt*m><5u)wh4_eAH>;y$@!PS& z50$&l+}r*q;V!X7BT>ZjzxpQMQ2pVY*MZW5N;qA5iZ}k%q?%Ut(;}9|Zy}WjU74QB zH(B3w(3W6XmoySJSP}4-cJguk^0tG&oiQ`B0@M|{8R%je(-G!!kGZ#oxnh|oR&>ht zFh#0zi}r0RL@~x?p#_;<8&U)&KZjP2w-Z{n`BdtmI@hjGa%jLXxkqiMPivf$Z+g;w zOlJMw2W2Tvy+?maBu|S3qZ|&V2rYRjT>rZHJ)Fz0_bH9@14X?3$mj!X(K$`bx2x&5 zG7I*ZsKLM+m$Y8`%M1H(vGBC47B)F(@57_~x5c+r$>pe;7NX5qMa@3%nCx;HMJp^E z{(ZbRHvlM9=#>&RG#FiK4G1^Wi^v2OmJG!lMZLAB2yO!pq#>Dt-{r#4)Ikcf^Wtt7 zm(QjgRkD?j&K&%h_@q|GWrSMP>(<|-KvamcSIWi3JriKBJF5u^ zk*`$xRO^06Ik`Dh`~p7GbW6HIgqeAyn%XJMymZePpvgz|ec7;_m%-m}lzYl-2-}fS z$M}eXqqUgwYe1tEjPDzH{p%yu3HzPvqYgXYSbE7Lom~M`i{VT=;T4I z^@G<(VoG*@?x~ZN-4kV}9`gU`xc9^1GC&qJyGqWcMoQlMp`(A3Ce?Ih6Wig@pO*<_ zGoG9qSNfJ>&Iz5uKROzR!~g7iq1CT~N48$o^RE}0)|jvEr$#~gbAv|x^NS;gGRHYr zI9%;Y*&Sp&_>UL%{hz(ye|f=}21Z7Q`VX%-Mmf1zGI}<|9^79c0dZF?Ic5;Ht7>mxgmZf3FmWzqq0`O(Ki1Bddedb?HeT(=z`b8xIzOI^6Q>6cmKuM!fs*vkwArOtv0!t_~9&zWj-t}=u3Wt=X!2R*imfRF{w z1BGIBfUSzIfY~H-(ZXsV-9eH7yR-TtGR1Xw$l{17m@MWB$3LSR!=$ z!4>E9>as@Gx?(w6OfOo@2j{I?qkv93Y$c-@U(D|}G(um2UK4Sg0E8JTCuBEuA9Fq^ zo>8?il4dCelyRaWApU@A&}(BU9R5nfsZ(OyYf`sAYP)bN>;%_glE`vh#2&?<=Yn-3 z{9`uxC^M9;?Y`T6ag>~>?z_2$rK~enWRyeC{$%|fir)0RvO2i!xC3Jh8LqIB7?2`R z$Fep02g!BFqcL0)csMTc!{jK?6aXU*AfSQ1O|@W~`#%4gsAxW$1u|c5OB?`(a*s|v z#W;Mt6b*z*{Dl$oN0BC>&%+YRA@5dFQ?X%Gk2Ne&7%e;dX++F%HiXZy0TLYs+oQVa zyWe?Km!6GU0hr{B4t)va-Iti07sgEUzs%Sy2aWy^sThyUTNaDG_HOWCCexa3vTdzW z$$1w{=?Q!Qk3XeF$LE?$4yom)^kt@%!(+*q#Zo$@5R%g;7s#{Y8^gtoBK^{1?Tx#*R$cRVy=WO5{5daLzZ|#k zi7MhOmOebpac>)cHZkqA+f8*^;k_DK%e>1L-)REf@!ZpWd3K!C#z# zc`=o@Um)^9`Ee8>BI*I}$x6#zMO@6U+?J!=aT#_7dZMu_wbqF|&+g7#507DqFD?;T zrDLcwkb1@a7DqN5U=uk$+u$+CATCcfrUQm8`_t&31>L|U7O@`cX)z^)f5Tn?3A@=9 zd&j5c1j@;9WhAuTh@%oAQd7EC2I%rV{Jybw6VEJM;KXXNDh!`BWe@7K>Mn)8yXs|&r5&bz3FFWr3 z8O?yz{GE6Q=F$aa;ds$>M+GEV(t%W4K70?(#kNSD8bi+$&?NnnFeMO0MzjTl$Dypj zr$fvgsZ-CP);-M}I`vc@r$GMQTK!3C*2>{wj7qrg6%Nz&49y_P=ISXFf6VTCsl>Bh zT6CkAoQ=Nv2Ycc36jh%?NqdCJ7t@BbHe7h4i0RZtX`Kb4rndq`D!#+CG1i$#bSZuj zJGj4pE8P&4>vlS{^nq!x`)1Qa@nX----D)kCxtFE1HbrYFDb|L3w{QC9`iTDhWWzf) zLLMHv)c3GsFQ9QKEDGBEB5F}Y%E9nE29?gLVkmYFwTtzL{X(!nDSef%A1uhJRXSZ@ z%iAlBXlXu(rp2+_@hlv*$I~x*rY2tcF}M;x+9 z;5#u_-=nNjX3|CSOwT06%M)g%67Go7(D-8;HfTv*=#i$JRaxMHjAJeyLEA#pGIr)Z%V zWN$eaXptSU_u0@XP+Ojw0*l5Ey1`XD1-? zOWa4;CeHhx-DXX@&1)EC%&cND5XW67KDx{KV*y*=M)&Xo^(Rw*al8NC!ykq5tbDLG zDUlhwQCt_^?7Oy2_+@R6%8xmSe7`HA_hD_9UkD`))$nOXdCVRGc2T?9Ovi5CgAD1h zfirF~8)i-!f>Tp>a2>~nwrwH+!5T>W`NKVNKDC**^Oqa!ImB39dOmLnp8Li`=m&zX zBXTA%UMJAeuWU93`sXG%Kv^TUQ;L`J+=;4rz%2N7?l!V5yB2z^!J%e~S-2++eQTD4 z87+E-mYqLKq-*NzVwLEB6nGE<8|kCPepVFqY-eLqGFO%ff{}#u*s(l^4vSN8ohJ(M z3NDfu@@(M~L}lH#8c=__=qM_3^D}1srn}0tguvTN|i7|V|Cbxbe&dcn#J4(A?+C1rGx4QTi zy8!$sQZidkAf^F^19dx5uJ5T%j}(6S(e*O{W@*X+JIoaa4`4Z*}_+C`XMrsn;i!P={kts$&>{xAN(4f}7U6@fxGo2ROrHW^6(N~8`jJmwY z6G=q_A4lM6PjYW$-&0M)h7=K|AlS6W<|5aXNdHvBxY_+i5_(77jLp=j0tbtf5@pK< z&X@o39*|Q2zjb+0t}%alZ2Q{-xJ7lguM1Q^Sn77DVlp54-iE(gqIzeci3G2m3tTIM zcDe8+D&WZD*(Rjk+<*A=(3%O!5ip~c%>2X>PKK!lm?V)a^?qeq?#&lN=22?*`Mr|v zVBNRo2!u*aTHX-p)T8wc3Fh>--g8f zVRcoE-mmdRsR&){m*Y}gmNl(<_N3K}6&Et0Iid3WE4 z@9w}tpPeX@K1?BY`}W7yQ^#rgQ~CYcY`&YHrJ8TMcDi0x9_*-YX2Y_(=IZL>mZ*;B zwjZ56FAEB$reF7IysqMl{!n^8pMVE-Rq6Zd^O9Xnj}VJ?ltrA@!qmj`627G9jIJ&` z|J0eG8zFbEw(0rij>BT$It%SJu3hWA1kW>#VF5*QthJiWhQo}!Cm^)L+0Pr9e z+4#d5Y5ePMBZSH_bs7zZT17G(ksI%@06ab6E@(xo3^|Mx5lWQV@n{zsQx7`>y@-tF zj_KYaB>GV`>0%&>25Y-f!x7Z=IA4LvTDor0f@5Lxvsx&Nk{@35(HX4_BkM({QbPTW zZZ+m6>}$G#a-2;*H-*o)L;8PnPk$dNB1VB=g-V54H}233i5?V(6xA$5@Sd4{i;XM0 zKUrKVbkFO~k>L@!Lp>Qmfo#*R)bdDtw2O zvwh8B(|~*q$nytPHG0^37Z^cCfS4GAjf2brIz=Xg6mOPomQ+$*_ zGDH8fXQTP}d$4Z;Y_)-sKKRCcaY)N)bCyUfDK4PoJC|IiEwbpf$;;}M-EQ>#Aa4I%)F!{*~2n#d?)mR!UVg!ZKQ zRsu?;RBNSJ(L1i*`jjmMfSej9j3e`8NIHW_z6#Y=tQ|$tvqq@Pq^kHX3bXtwX0;#J zooDKi3v=5DJlKiYmR_v0qg_13VQ{S!2#n<1b%J)=!XoOtw2DJs>ICjujdk9p+INH0 zJ0qdeMWwPm6Gcwnr}X&{PFXvoW>#_S4q;L!9jlLbadW%r2{6S$^!~7}G&2}Occ3Y# z^E7=yze_=rkzfzsr=5ESFUiLi;bJb2Bh4jQ{tHqKh(4y_9}1X_*7P#^hkOE_+{6Q9 zf@Pt9-Wm`GFvs=1B)+cmf#pU0+f*CoXk|EeDds=Z{cq zizJm$p!a>v;e6Pw=>?SiD^g63-I{4OKq$Vu$11Q5vQSS9wq(@R)xqTGoxypoq%~2w z{Zv_58H7yC4HbWNn^-Q2@MFdz_4Ymm1sNlpMsMyI3zwznl*jLv-51?c<+hPD zugYGl`wPg*Yz20zrTIAzD8zMxyHU`TD;T}K(4Gi5PsBY*V`Q-XEGGQMO&sa_czwye zYCm?%Q`M*@_|Qt&3BLNS|6LmRwiciF8VFN72>%S{>peKs z&exZF5!l^sQ2zGs`6)5*hz*O~+u;`9p8^r`n8?VRM8;e|Lm(hEmg{3W0h8W<&%$C( zNCKggEDIr$V;3M?uU!Z3FG1GH+-|2myVZYJ#S@TqE8zZDQ^cP zIf#V8ajNJIQ};k}c$5Oc-pgG)nUx-hvP5v247=tj}Q#`yU>Y`a4*2Rh^j% zjMiIfP9yc)XTdOTaONPbXdA1H>#`w_a7#ddC6z*r=y+Oq1BBc6|(jLml)zOs!wQMXnkLofP`HwQ4>q2du%9rm-T_!hA^` z$gcG`lA@i@qw5khy?Msxx9OqIeUx?Vo}9O9Ie%XHFxko{{7YK}!&YaUuXtZ(e{t<@ z^uLsjq52C9)3GXx)5Lr8T-ouG{%qlqldsOFfb!Jfx*Z<;s>Hb%h};?YkgyEqb78&E zhzO_$^zKnu3k--#16j)W?Me^C861HT(yM*E;@RZ1#QG(+MM~mKtU4qy_Q}`hdYK(0 zQ2WK$Pbvl?_P-8K4ju?t4bIax5xS4%57)_ziUA166eQYwdOCx6Tm9gnxF2R$kNdkz z?HrJ-;@ys?fLN;6y}+dMQp|J08XvpTz4=~qOslj845p+csuW&EMhu9gfa)iI+!8;_ z(>v|W@fAPYC_au;r!*-kzu^7Ag$16bhIYsYA$B>^?tPQ2;wRBIv|Dp~Ds6j<&qur9 zE1PJQ6UO)E$_u3e7H)FYMW7HIX5*jAWl;?Wj(ofg3|&Jy)`9} z@l-0AN@TiABy*a7)O?+EJ-J9 zV|wP?2c4~k~uOErmU^&}0v|Q-S)h~J0ej_G< zh*vl2Vmib5DL*+J2g|CQF6=JzD8>9iJ^>b#c+WXQ6u~3_)o!nWi>6bg@AGFz{RuCF zw33c|f>`gCnDJM68pj7@WGBGC3cn|b0L)yMEHYB(Jo%rg6&bS)oV;*@DvKP$Wqptl z>r@X552t*V3HzuRz#|OAqwwuOzz&J!f|vC@e~_zhC}5(eYW|8l5jMJROS;2e12kA9 zhi>n*n=VhGc?|WT)A`w7ZB0N zpQO+XVm0b8>4&UpNzfD@9@12imj~ZL7WQhw%0OXXK}=EK7$amm`sU|Pb|iSCl*kbSn-ZkJ!)D)xZ8lR{sqgKM06U zo+*4%HjLeST*j72vCN};HnAI1=izm(m<}b!IV@wyUP`w(%4?sl+>CglIxX`b7Z2*K zsaAl&%4w5`4*GU7EypH;d-}SV<4##%KipOs1)$#x8YfNvL{`#HcDo*WG`dci@tj+9Gso`s2 zMxS$z=~j6rSxDU%A}!rR0&1|7ee?g4@qF zyyMdB^-KD)@X42hcz-fB)`Hab)v_KyNrT+?V~|LLt(T)prGnAC%*^{h{?8jooE7>? z%+s=GA@meJh)P=*aZKE}@kl*|$cX&t%gOp_5k@94wsw2Q7ocpQfK*J@n28L?-<&wq z>&i%#Z4YTRC?BE}nUqaqV5HzMb_WW+ia`zAN5HF}IzQdM-m%NMGWa>kT4q`0ABTj! z7%h;N4Ens3#xEBlN+<7!+PAc$y6K zn*r{>ZU(kXdD-2fz({gFmD1w_>k(77^m7T3pIREhGwT!M3E-^48;}9U-ice6vaU1Xy96r)x`);q{RSRfMkR%I zpW};l30ZeZ_fFzsx6){F&gAoqv#31tF_|U6g_FFp1u@B>RQ9ymLG;g@@gq1ns1N;M z3f`0e;uvcnZ10+zF16Yg^4C(EL5-5=&G0Wx)gWxUYsp>o_6Wt89!C& zpw7yS$lClD&m13GOfvN=v0g7uibVsaz-+ykFTwc_;m8Svt$kl&Q$3%$F>Xvi+#N|F z|NRx?Kfh{z1|Yc~`9Dwkzhy0@(GCD}gUt9l;}$r$<05ubVjLVjbWH4YqMpZT!~#fl zp>;vwthM{m5tRuCN+n>4f|6S+6X1Uu<74oYo-4-l8h)FZ*p0NJCgawxm{BfEpn5l7 zKV45lN~%|_{XwR)SJ>tk5BP#Y5rF%cf3?d=#u$w)T5zU8DBRZOQg*rv^3!$x={nLF z)QofdY?F3@UIyhFobJH`PI;f>Czjh6A8H+>J~5(W664Ryi(th{RcVb!JyHEdRck-B z^#6j0?-mf7NBS0c;{fGJ`Tn##G4USH6VUyG%m)q7c7MF^UNtG_fH;IGlS>Xuul7|E zMPLWQY~oH+{dW9$)L4^SH$V;j1|-b>Js>s-*jO0Cg$*d2a9IJ{-+|ASKyYV8`Psn? zU{#N2z&R92fnZqrmNs7jTw@W)nSfdv`mAN!czd5O1tixY&ii#1It+Y)kCQEVy7Sh% zi@au~IkfmO{8%m@UHogTE`vW>K%`3&Y^Z=#FQ69-u|YvWih^udt_PG);9}yIGiV7v z7Tr>y)nEL`0g2%oIN!(ZI~G8wg2D3Bc12TFb3uS1SiAr*Kp#wb{3NKY{iSrfN)WIg zTOVd8pv-`97tqps=V_o?QI+*@0XVB5v(;fnFjwIVYVqdQM0K7{OB?9c^+_ONmJ0E? z0KtrT*ku?PE6nM!w=n@v-T%%tn#iOIRLaT85u^a`_&k++9<(7i?Y_xD5x5t}A2_wY zn+b!^V~m+q;QO&zpQD}S{#H(fp65`GhpcS48jKd+eH|>Ux4=m(Na#i#fk@oeY|A$D ze9!2{dp*!WTKn!^Y%$VPYC?l0$(`f7(gbZ{eU9j5;6r3C^gF4;=j*065w8C`B5p>j9f&-Bva!|u~OK6k)p|ptm9{` zT?=7?J+LhSn`tYI$~LFvOgP*We+gu^WH|{LGxMt$iohntk#;(R>>m)dRlS=!V5H*w zR(Mo^{Twx(E35OF;Ll>|B7M%v>tA;t3ZI;-wX~I7w#m0tpdkYA#i`bKrJEu1L{{ z+Goq@h}j8dUyOFX=OhROy@?TPd8^~4XUsZ}(#$L1FA_z`X>#6m=}~~DGJjDrlr5A} zH3q5jt1S)W>K?^ly3gY81Z6=w{+#=qAl-*>=Qgy*!Qqzu#MYWlaJI9zT}OMLr%uQn z_B9L^KdT{R^D9C)n1mW@U3!~{CW*;Joo0-K4_lW5dce}Cp74Tsjdw*5H4mvgGeE?8 zxSkdK?lNCpDEvnEz#Y-4w2uKsa@miPtZr4;?MVl)VI_K@VY-8U#3)SQFR*L_JZa#E zR&O2=@?hSWzX=EKla37k>SGde@*Ar_RNe@CnR&7%!0>e!gjXqE*2#xrw^mb4-@Fmj zb61a{rUXrA4%lah<6!S4^foo0b9oK&JtV8A67vWP;yFQTpFVze2u4{?#xLiWlZ(6k zy@k!E1HFh|z}~s`p)WB#gjMdBvSy3u=Po+cm(c*nLSUVR)t=l@4)XyY663(2$t`(f zKQv=ztudS5%R4_6uz~Szv!)JvAJscYy!HtM=>!E#bB`#B!q8=>K4`)KJ+NR1tGpQ zDQi)mWo|WqPEf+{9_7hn`=dF8K=tHPj*#fBN|CD(U{IW>hrT6JvoZNZr=FqWe*&@Eeqj!SLjtJ9Mq3A4Yf0ey( z2RX^`&!6FKI7jrN%#k9KcjqdMnrQk=VvxN|$waz=)IK1r(|c%I9;p;xEF){acyoW< z;j#5(`$mR1{U`DlS%Nk_cl!dv5_p!jhhhUBYgBF`5~|ei?TdzF&wN$*4iueXjdB8V zdh4WtJD@wFHgq(ooHiXrY*bTfxA5NE==U2_ZJC4Fr@Jnw2WYQ|o`z&Cn51^}O`JV< zD04k78S2io`O)nHOP5(<>Ir3WWs%1odU+usTDMZkVg@Ue$im|8Vjm~RLf$gnqTaVW z<{_v~u3)*_^{A7VIc7pTR)!^mLji~dh5KX=AIx!6ogFJ^ra9nh@wR}M>3#U{KAvqKCUa$# z=8rZrnYu!-p^?^;OC~8^7r-@vs~yaIi*ECEB}^{$#>Q!5&TBY~bBDeGH>Ft51hgxG z^C-mw<$pw>;q4UI(bl{P5XQg}SPl*L^pm)*cU1*wysf3qfl|Gw=i@`{(lKL&E0`DZAW5`gG9h+IIA&^qa` zvQDfn7(ub>?lG|fZ3%Kf#Nh%G3qV@oDYf!=wVld`i?70j(?ECreP@QEX%y1PE0PDC zX|C(dCkBUK{w{wX;aM=L2dOyzWG8^;z;V>b_tZ97B z4I&P+>M|w91cP7)XVK6JAAUU{RlsdeZoFtCWiLR`;!`-#>YeD3DPN%Xn=Hhsf8@GQ zwE|5pf{xx=*yK8xSjGvssPRH0YHhHc%Jyy%(6%DE5a(#M74!K5A1L z*h|t+bMWiiig>FB-27FzQ2-C74dV2Ufa-u4;!^@QZfvEd+6!I-FuQRJZ?I*5`ms z-8&8{umfAGEMN~s`*VCD2^}3BJ-tJ&+$_S3nnGl_qvifTssJ%OGCsMcal17WknXZ{ zb7MH#pvlf6YvtVzerxLtR+{!9P&WF2wO?f1*aqN>?ZUzmt7_(Cr~2y{_n0yIOEcsS zAIL+gWnsO#GECBQV>a$f*i{wjl+K21z-d?y|Z z&GlFIooae}p-v>Eq-#wXi8#jwMIa+a6e(c6cIT(g7<3GVKPXme!DNo|L6WD;VI%}nxj-4Is!`Fevi+H@1wctX0abT1dA8o6U9#ZOEak!T^w~w~5GL5#F z+uu&QM;4#2vvgjUZ!5_ofFJ-oU->bxGM0cUDK^DUJ=tEArHO(%&-4~@r^vMvwCf4ZNG%}gb=*k|h!(M*aZMG#U*>#uXMgd2ASXW;s67ykq=)VXYvBzSSgQ|aswQotuZCE2S;Hg zKkPBx)SsTN&3Js)dd**Ty&#n4p`TIyi%yZqH9UwDhJrA#YBQCGAv8f2Ge9PxBxyme zqeZ3ZlIaHmDft8Ov-e%M#!_TkujSrIcu|~SUBv;Sluv?}CP;sj-@7>^38&~YK9 zQ1cOPhOd%u*~92k_w(F|XQ~+WrZOSjg$T2jG9}|rN`q6YHZSI0=F z>D##mCgC>Fr_{eZ)&dSlNl8jTOa5F(cCMIqYCYN zJ2$?lFO8nLxd9-T_qd@9?jUN}>!%S!_&8KIqGKW7E5cz?Z8YO#Up5Z$4|V`yU#m&p z=YyZp^NKHle=wwA15~fy%qIhM@86{JNNYQ+c$>C2%%A7M|sSFCSPc#!GuQ8N$LG)shDJjmN0Lb0e>Jn1t4%)1sZ}@iJOrj zAstKMMw?g}~0=AqCMvlBZh^{Tn z0FGYAo7?EPjyhV?k&-x)D>b@tqMXbxJNA9l{ul&a)5Ymu9OAJ_MHM`a=4W*V`UZ$# zlBRQeWP(zb2Q&x_?7*t;7x%ad>6Rm=3yr znk&S-4?a2}lmL%kPh?H^P>GaGB(3f#lVF@&M6(Z}7V>c>U2hW-7RPvB_ za<7;3J2>DvMcQ)Tz-kbHO8n=(8L}X6J!n)`x8|w|lw5`kuc{DP8)yg(FhV095d>gz z$Gzb&^wpC8id$_yK);LAsAFoML%MvheZSeWq_e2+Sy!)2I}e~CaMqrcHM~1jrJa;R z>2?UxABF71Ekg>|Z~Yq*w_%}wJBtWgqnXL^aacQI2qawW$W}(&(b@ngevtP`6p`5u zaWINTD(=3B)17qkNpK!@j?FPum0+x8Pl7n&(e-$XboYTop-71T3IK!j8}E2=*e6>stU z3=c^pFf3w@sDIy{01Qp+j~54l|KQbJkemG52$Om}skYOX?;Af`@a&<{3pu&Q+pcWM zzk@`Fx~C?$GN9y`8I#MX3?Kn5e&`{n0YWkyH~^uVD^2Fcrtos0x0xGJ4Yzkz40n$< z`kjBWbB+hW9C5kykB%S)D}-gc09`nZ-p=vwK!=kozWV05_P-}hEJ`is#OVJaTmOH6 zXk(^~FS_SAw^2Yd>Yfaq9BnknIU$T2KsR135B@p&3fus4|GhHsp#(Z1>v6H;$Xd{# zzDSvW*D6&2vLm4J+jD8cDj7oKMVcQ(mB5EbNLloEe@?o7U_ml&kGPj!`zT}?bq?h= zLiE&oVMf-z<#3>R4I98;0iQ4M>(?(}(1J%(2%z%H1Ge6DsSwAKT5#?yF*iqhfh`~T zZ4WGIA8@Xy+1%svZi=%G{GK4q$A<{*NUgrw(Xu2`P{(pqvp0e)XRp@Rd&^puWDF5~ zFKOxN=MgUNl{+6@eLw&k4L{0z5b*(g8jCp!+|g zpyU=5>F!3PL!?s>ln^#8jUXVfL1{MR9jdk)vyYpv(G@B3E| zO53JNp&_*qpN!+t*HWXsj%L1}TKykX_vnRh4EfxjuQ5m>Qn2ySsx-Wr8jHK^lGR^Z z$itJJn)GP5EkPIaS-iK5g=Y(TPbtL8>jYTnB1E@)c{?ktD55$Bbg9QcOub?apdp9O zdy8)Q+H$Sxmg+o{22aH=WW6Ah_^DO+fd8r3wWlN5@9gXBr>A1hdbJzJPJTURTGw`I zgd>zT2~+RcJOCOe5P438+2Ipmfk=s?laAIFZ_9>_(rV3ceeGlrl9b%haPiuAl z{nI5rt#);&OnV=UbC1Qe){ECQqJmmL%ng4pJH${>3f$a7utD@l)-6IrOhKvW12iN3 zE}mgTmOx^6$_p3)Bp+|%v47idT}qSiV4x#oi>I!=1>9(#3@hGIQN%Aq1$}q0yN<&e z3ARY4=HgNXkarq>>j9slTl+4}8teQ2S>gw!RJkU#sG;OaOmh%2DY6E#X=2G{WE{Ec zWB*>&=nR_w;yQLjk#Xa?0Z*wnuM$1Rz+JKJ*4aoZ*FUYnWO>f+DFKndsi++hYD^Ydm`9zf&G>bH)=Rh(M*yO{5FpkbZzD3DNr`rW~@q4hEw&*PlH*sbGp zg;&-<%0H>>=gj;1-R_@FFT}#q9(S|2J@?NDSft1KV4WG{_BdMf*3um|hO8RC()kO+ zCY%N>?5Gt6VXu@=)@NZWv^cBIclS3X6{gRBZG2?SIRpqm%GVDM2N_}F^1kw;2vQvU zW*=?Vc>I#|){CQB19}0-purI?JkIXS{hUqJvHR?c-bc#( zL}Zrl?!|tg+I+=u_kfgQ{0?mH{cbm6B}!c8);7U!b`|pdsUkiISt2b`wWou;ELqwx z!rr#3>TueBb6hky6iA4N?WWYV{MpEZx4}4<;t~(MwQ>X1CpYM;`MP3Kv$_=#;3|QE zm(NYWsIJfm0v^`Iq|X?+SZdtQ5TX>rqLARJ7NE&iKTr$?yryUS*?JvQ=UK)Gp*tN( zIWX>q_E*Sp*8Hwz+mfw-%JQ{`tLO)q&_R|q@y-D;&z}mg!zMZGyDkFHxLUzE5>7SRZ$)vTU2OS z3>MZHClIsfZwSb99(;y~hO)HY?BZjxkxzR<>lO5LC!D-kOQZWoNJhH z7hINFn4##&+Lx6zG3O#e5!FUOPx>NK-3-j)*{{SA6|w#yc%7tmxi15g^6DaPbOkN( zUu|akWc6d04~_!#HFq+?2_Mr)>Eag-%$HS4{l)Z+RQ2Pyy|vmWarRGD(y!6MX>6zU ze`hmQPREZ-##te|Xq@wW?Q8M}%P6gU6FQc;m>(9*-&H*m_`6;X}o>47k`u9qQ1LrHuU=2`)l%`)Ak(EO928~G0 z9w*4Xw=~YHj(Z=U=Chq_63(zbb)WXc$K%+EKYa}?$G~iQ0Pr7iM zKJoH?miHNl@JU+Hbs%7W#`WWh^s;SXH+m=bI;~9a8`+yQJ2P0GbBdoMLqbY5?w!wp zpoG;FTiZu`h%BqYl_+BNwe;8ZE~09mU!6@mzj;4>=Hjiy1snPWpUDWzH>y<~-`hVj zXQZ)NTLb9}c|%cIm!^Ns5`4OYp~gNLdBiJgboJps>>#I zHP*0T5Mx#J+X7%liylc0S)I^L>z3ENHrI`Z+Z|RBa3S(V*C~6!3<%hkzLWX!kLKNf zd{IjVuj^LZ-cjP;C+A2t%mh)1ZmaGQGXQcZ$@iQYHwA2&h&fne`6{y#oXCHmA-uq< zdOR0Ds6r+4m_KuYFM0Ast_VS>7)>B}$v%ruZXv6`=gEr23qK2(vUY>CG#UL`YYCC1 zG9~nqAx|Y3LGAv2FMjjTIHOdw%Sz#a$L8#d7RAnmg@vW|X|T^Si5!M%LjcWlU!8RQ zfvuSlJ4O=b0f@8;z&w<TD(nPge&-%vM;6`+$=9Y zoEe|Qp9LJPa2uz!(+E1K_K`b?_Gd_#GCQB6gE53@#Tc)~ajdMjamP$#haxg6YWe=> zQ-}hqg$%;G^l5E{&}2y=hFrmQ<%kz`^GC{s3^YvNpp`lV(hM@^&gTH%xwuU%d3q)& z*nSvvZXmAuR^j|JzSiU-fHOfCd21TDZjvi;?LakWia$?#C+xh<(|pS0prg*~>vHlU*eO1T28& z2761LFV7E0+@x2~HY$B4OMxBMTefAnstr>FglqIA2kgJrW68UbJWzFc^ou%<9x|JM;*y5*r|GEdtnC*aqgAm!Dv>fL1no z##K%lv7;0J%$bO3aKO125i9_JE$EnY*=@Flj zVtx=A?d3H*HtG(JP62zPVjaj?myKs*g;4TbcoG!McVyn_n2dzqIiR`^>KL$^!40|nDg(qd9sw`(sn^PNC0ymel9m-~ zNHIJO!lg*g0pSG{Xh_()uy0v1$la|63IyP`T*+A7H<9|QC?N>m#OM|v@3CKe!jK6u zkgg&c{e69~=#fYyAZ1`q>}7E7bd8BlDcxTc66VEDUV4`lnd2{e%ymd+VGgNLo>P=p zxV}B>f%h=|8P_tAHr(Cf8z}bNwE}0%^@Txf~ia>FkFO&PelopC%CTQqEizS-%S|o`Istw10SG)i0{G;Il5P%GUGO>BPEDf zy^n9&>aqj7GgB<&Ula_ayg;nCCA}B3yz*Q{^lG8Kaus*_lfWWJKK|IbMF`b&GH4h=59N%xT6|dt28AuORydT?S3BVD$y>-OG<~!V+xf zM9yK%zC_aUn@xp{0qNQ3{CgN6#sSlY2F)Eoc;DNs5~!FeckTy@Z+sf=tm;4C!eY_pJ1mtt@f&b6J3rT?>(A`c03B zK)tC~fJ{uF{FS?V+4wli*{{u(^aY|W%<7ke7$5v&4{j|To+KLwSPp33YAh~%*sA>x zfdcS_C6;}NX;5VAduz1xqF&$W=0_j8p$b0VZ{cQn;-uC9CNA&M^2Q_oy*8<+D#hJ zw)X}7udrXzG5INQadBlKWmVX$gwoy$|&jZ^qv#u2a!J^Fy`{8QKZe67wPI-=QX zHaMJ4+|v`JyEY-(zs7d4tF_w%6x?Tl3EIjPq>DFX-n+A-l?a@MtT%SMr@zug5uO555-2?q?-!to-s(+<-%x9~XJ*zW=NFs~h?<=flgSy3CZQVImt|ST5 z!Qa;r*>7#VX*QjoTw&q!&iaAg#lh8Gw6Ma^jZV+Iv z(u%A2a!wbb040?W{&5VRk582I9)DHvPR@`Y*QcZ_GJxRrd{8XWtQNFh@CT{5)WDlX z{jv)ygAsdww$1tg90|m(v z|MI=g6#H-@K@oV+)rJFF{4aZ63}_$+D8aff&13827zE#_W+^_MY1pDj-8PS851bz( zK>O1j{NVoIr7I_~1${N!oARa)?p?!4`J70YjsnX;)Bv;><8^nZty4K8)9rjKh^nsA34VYIl=Pkc=HnfTgu8l)Dx~p8+y*US;?dM% zvFrV&4f@?(H<_=#IuqBKG!_2Gp+lUwUEXXri1;=F*wv8A;^u)~QPjk92!U3(uiPI8 zgLF4buC_l4;8cKHulW7|2-4gEb*s1LfbXM2-Av#oy32pbc7nZ%>18{`Hxgb++m2X8 zX!O!$5zZLy2{kVCy}Bk0{GjX%-;|ZwB?^Z4Qf|X$70+`bmULc}xJl0H(4AJ;Cv$*4 zTpzo>M&B8KXJu%>ReU2rCBS~B8K>g?TtlO3a9JrtE#WUvW2ok$$XrtZ*sf;dNRr57 z3Bvg$&39G&*#WCZ3q&e2UwFmm$Wni!11we#zi^_j-MxZ=A$y`qq77`D_}Ds!ImO#D zx9U+6vA(tc4h%JM(aWT#xiI4di`nmP0$+xi$=Vkv|Ct9@(XRYf#FFd zF)7IVzagAKL=f#1Va&IbUVjU3h0_Z2V*zq1yrGw*elbAlx|g9?2sR(a=VXfQwU&l6raB&MFNv#5uiSBju$z}h{Xq&m*qAolpX1o?MeWv>#7}$aqL1m8I`N`k9hHeTv-mee@6|X)`j$JbkRsaIemxFUt2C}V1Rs_LoaeTuyUie$yg^`~ z0cg##HLxI6#Iewmp9_wUwB=vH!#3d0yFs8U5I>k@9nSyEW1LM{;i+?R%O;}Q`g=y7 zKG{|WMNR;OeR{DFv?x6uB;XA5`8@Pi8qs?~=MKtEzStok%WvOt zV#?r@4GakAp?NSvk@j5o$xxSSM%&bHc|}_F8yFW+(#s+;leH_SHd_*Ja~rDszI$vL zZGAu7JZkr}UZ)!L%(yr(|FZHk#5b$mUdeF7J%4+J5Prz*HV9#Ly>TlxQS<)Wp{=#q zgN8>J3@#|vj2;@{8r4 z%50_zPbObqJNtAvk8MQTa!L9f-bYsMd}LS-YgpWd23i}w$qd0m1bm;)kN?kp?Y@Ne zxe-h2`(0$poKAm@HSCatgvyG`yOxo~Ncl#mME7H~vhix_(AsHLLCdKVrt#i*N!Wt5 zaVv>Emp2(>u(6V{j)>W(to6EI$KDI;3n&|1eGWFIC}!!zEf*E3t#Pp!gr zF%`y(^swOHex0H2^DSq~fWn3OF6Y<67>Rz4cw}d?e@Ew79N4m=R8&PpwM!VY9;McJ zr0htA67)zu>M7J1{_H~OHte|7!REEG;(Q@VctR&ZulJo^%hFQ7c|WDAq8T-{K5!)t z^*z3)Vz$~WhZ)rz*Mp9}8=men2AkBSPyabWu~5K|ipGXJw%AlM_jeIQsu|jGsJzIH zjXmKe&*4~Gb&gA%ymCra5~0dh5pfL_r0!`ob%CNCO5^ePJrop4JU_V^ja*5s1_~wo zD6SSP{m6t{N3YCeIvF#6jEjTcKBv^;A!@5U!8kXoh2x-XI5qE~EQ`xzs-Go{d35+* zz{N~4U6gr%E%s>s!g8kY>gy%9cYb;XnkF~PO|Wk|zV-7Q1sx9`)@Hi5H`noJ@1NFW ztwc1W4y~NlF(K;iF32n_lqmXYuai@(XCV(S$+4gnFL!-=&$n9l-M4soM;U{C-fh`d z;m0(Ga4aXG@B9#>(yV`|BwfyjfLm&{Z&&|JF(YlzmMJWb%+eo&`k3jVcH-_-c;}Kz zJZAUM6!ogfML~9UI1d@J_C7Z>S26+F_I5&F29sj2fQ+77W$WQUk8#lB@@)^ID1?{> zI5Qeb>m(eFbkoJrD82gYuMF%?>6(m0u+vM|cSsZxxXpe_R_Hc;E_2G%!rJ5i*0%!V zvi0u{16fTmA2FZc%Gttvl%jk33+GuK?F7zS*Avvu5i34op{J}W;h5cHzc}}+&KX=- z9LYbj3FW7!pWkF9Wu+twze_1DU@a%t(`e~nx)&$tem|eohWs-lmdS}bOZ&n|^>|%O zLJIP!=0b%3B|mpG&4Eo*?IvxEaABS-mbA++R`^8OSbrtoPaBbBI5L_rO{OCyEsJ93 zdw^wJb`yTB9)D+DIUXaz*+qVO?R<4-P|HgU)7|%}HFYA)PknBr3U74fNiX`D>S>ys zz4EB~C?>*#crL!~Mjn)tQd@|J{cpeR1~W{*^g*t>TYAbN@u2&OqvB;b?E3WlvA63_ zE1#1CQ-IlN zl_{dN25pr$$u_sH8zO0z0LMFY|G@Z%iaFXhAM2wBwEh7imYtXRsw z*2CHOmhrEn89k4aj|-m2y0Gx+V6_k^$Km%DeL4QmNn~AUjAgNm18b-7eEzVkDt!|g z7B$jz6{RXcMqOuX6&w7OkYe@zJ?mz`8Y?|xmQm)=p&#?jEQ`!+R>%9e99cQ6gYEeV zP&lYyXGPtH0?{c8n`;8+S;;WI^ndfAGZ#8t*eYm$n>SBU`vq7xo~F`x9-pcIL8H!v zj$T+)_R=8`elf1)_@g4LRp9QgHrYc0H~tI={^ELca+w~d`T5~hn!fVqL2->WK?E&Oade2Ua}}g@As&vVRtb(LC9h1vliZ+F13y_u0TmLb~3t? zCJL8?2paI{mcOtqC|8 zGD(cyj-g8C34K5S55;?l7t6G%7cU>@qN%OTScDwr*93MTLt@LI9)Cl~eth|(x@)eDH5WPBZZ4l?TKB!K^a)8&*cILK zv1?9xiGxHas-CW`+2hL`6Gigs1r@5nj&mpalsmua1gRI_&*hCRcB#9r90%SnksAAU zimk7gk4}%kn3bd$ok->LE*%_n>0eUSq_VrWk&C=!WS-5-%PV7Hz9lICQrLdec(4UJ=Pu%bRdq?SC)F;T_>&umCWWQv@8gmfTw=3x`#d-c64dUBLB$uwDY21|?cO8_ok(OUnGlHm;k8RlJ-ZJb_Ok3~> zQ~?$s^C3@u45VepA4uO}7%E5e5ZDiqhCPp8b(CNl8APP96=~*H?AaXBauKy63EYFk zflFywtaG)W)^zR!?ojps)J*VOeafx};E67^d=J z-v=s7NjdLK?ykk0p5VnjbUhB7RPjdzO(WsRms9J#5fq+W#>m1Vsf{ffvUyqWw#b%9 z9NNa-9YM+ep!CU6-mg-_R%;b&?-j37ukj&P1NNK#GwlMaJ$;+V{jz1 zZyd)0TcWzo24Gfd{YHuEYLOYBml3?Xxg#zahC%;b4KC)lo~E5;A)%|Dd~@o3d@~&L zd}FHh{*U2kdPzkkCD)d4qXgoy8w6G^<)7QZ9@JYZ=CMVx^Yv=DPMIb#deN!Opq`gm zu9ZFQqKgRnaHPCY%(-Kz)rOtkKY(e-^b`)bkfdO{e)D>~7WS_<(SssqvR_@po=WI; z&uwx8Tej$@Imm;Ggrl|N!AhZ}?OMO);Ctj8+Nc~P&(n2A!$VGwmU_v*Jy-;_-1!}f znET^zR)VGMS@`<)PLDT?39r0)p8oh9D}5>yniQ+V4AlV*gyPx0(YO$!g&j(F!jQE+ z#XCGXjP!_2P3YO*Hv8j~we;m~!C;2nw|Z9kHtn*wmGmuNrFDgKEInQ9`p*MPYIAdQ zU9>7&jslfhvpAwh=(Si{QoNpQq2ezwUngDP_vq}BWX?)S3F+^~hD917=l;$UD6uAU z5TzuE6#DVAQeO1=R?{!{rp%rhhf_wa@Y37|2c;!sRR0g$pkVpOC@rbi!lA8qpZW=g z?D9<{e0m*o4NE|}qe;5|GZsr=|JpdX!DkD>bSa#&VrN0=DsvMDedgRBhhKyDb!;4+ zzWm|I0?Na0Uz>!JqFqJ`?<6OO&Rj{bOJbTcoMD=_-f`C1vj$hCJtOHx9%8N2`AGmN zuRE`_ib-97!`lE{uEB2etuIM9?CGtKznNX)@q5LS@VqjRkF)!|v(i9&Z31^>A0%1d zkHq72dS&h^Yp7|QwO)p_y|i0mQ23k1>4i$eIK1C0cIU$uZd)otv$GzO&YG3efG9zR z#mSyc*5Pk^3Rw*T*x^IG|MJ7KBBbw0*Amt1$%ckNR7FtzD4%^LGEi zeZFXZwjTNg*R!T4F}n4@cV~PfshfI5VS-|Axn6{B_nmR>EP%L9GlX>a z+~bO4L{*L4DMj2DpuRWbPG_ZN3XI9Ow8zN7>2n=>`pRTXM3x?C4z%XRWT>`a*F|S2 za3j$nfq{W%kHKzig~xaJkK~cJ)i-?NXr8LG?Z;>~uz#FKsFbqu@hRoSnznuZk;~F;6bq!!k_58Pzq6N^_78vf3N|~&%kyY_LyW9s zoKDnrruZd4ji3|seeQo6P=dkDm2bVYVqUs-hg7Z%m|E_9d-iku!wbC^AsSxitC}#X zZv?eX1`rm@&5-`>@#|~!5#Vb;Qz}_cym_G?*{p=}=yIf0D#aCp+T-t9`6MA)j>kFI zuWA&SGKVON^Wc#lT=u;1$mHRxU{U)~Pp@OjW!tBQkMpZ|!{X$Om9ax)>m4?G$ja+{ z(6Di8X9uMuy~KRn{Y;UNE@h4w{Gi(1yszk(Kx$N?Rqd;#r4{P>aPzw#&lAuE^~dqp zZMJc@a`6oLbim7x`~qP+eUBG`p6PDb5NIepbD_~lA*&my zFrX1vJKS$xy(f#R5VpULeg};}r?MVv$57qh&C=;2CS}+r=WNE0p!N8(DipGpI@ai8 z$_$=N)XXBw#e>eGsh7Nqg?SOw66`*!odise8e%Y9CUsS6?c@zk-+g={X~n)`efodK zWBr+W_J2+6MR%QSySaF^$7r@7ag-G@>HXM3Rg?Y{g+)GJyZ89?ReNil<>lN?+hc^E zCI+C>gz8MzEXxXs1mZ2ya`%CwPAiV_^|gBesBc7R7C$^oz3a5Sc;Tr|(ax#d4}Lo4 zWbKCRv4KWzZi$1D;wVN)03R(z=8TJu-*2?&enPYSI*!3-*`DPpx;appm)C2B>kZS> zr<#cM50AfA$)u);;2M3@mHzf?%H!>R#n*xKfWmOeRpT61zYqd8dUB@1brQOzo~h7k z)-21?P5Rzzd#v_+nM;H4`7>Qa=u%J=?FzD$kW0)@O(9X; z%gps9CR+mP#2wSEwnN7C_-IM`y&b3Foa4aoWc*#|t>v&wq!(Y^`kY}f!#W2+H=2lN zj*H}`%#{zsmB|?ns*g*Mf?YGS12xIhlgvaLUX4M8of0khuxy}(636b!{XfGJK#X|t@ra~-OOzkn}x-K z0kZYxy(dvKE5#01;I8k$x{n*Gy!3==5X$6h2~`WbBo|hdJrgNzU1rVdNA=i8rHfbILfx@YG3SI<0Jf+YV!laQ<{)hM zgx-)~y8uUZh4Hso;uES2y*yUiF0w>!>01Kp zlFpPZECbfK2&p_)ZWSofvZ(V*`T#KMN&h#8-U+Riv-vH{tO0mzkO*cjpYnoUO-P+H zPfbDLXM3=E)>Cx?`)PP&{fu5p-QvDSmOr~)p3~H3@caFCs`azlYnJtukDB$ncAHx~ z0L)Q4q+#3JAq;oEn6#1zyjV7_R`5QpihI-zWAHj4Zb6SI1)nyL^w~V7Qz+8;xVg15 z+33yXyqtkEuEkO^@$?B@swXpam?rVFQpuiAG{sbD14Ej$ugUNTWH%L3}g64g)d4uUWvsx+xce?r= zQ)GJ925-E5p}0o$@nK)uDa@Mh;&ogh-1+#6o*JClw-)&IhvM~6!$*LQz2(F__4q9e$;kSif@_h`T(uy z`W)6(PRDFnz6ZC^OpIr4n6-b%_%py_d<@i z@qN-C+Lqr>7q1)NCZy)WEaY>HYcYu}8usYr>ByGK(pJLJcGna%rF>xvgG4C1p_+Ro za;4)=^Fvo3`HYp!t>xmYcdUxB*R%5l)(BgFdV&o!O0h0HUkyg1&@5>PzRJBQ+cHLRCi^e$FVa*nJ6QKGD z*?#ps_=!*1_JymZh-8(|<44>+0u|W^(8NoOS@a+Gm1I>K^xBxyHNkNFYZ+6t<)NQ5 zVDk^P3B^>(c@2E@IQs}mA(S=EOK zA%@GW^d<967DD7otz>Asv9fTaW|7U@E1<%Qq^+0<= zQ6DE~?{bW~?`1;jD4Bd6gnh5+%PCq2v3cmPJe%|o58YOzJFctc7;jh5!-?R`6MRDk)D z>ISD0bDDa7G7K@TTpHXtQo#Cm?opWJz9mTJOtvE}9L#tJ77c^F+`(3UFD8~){)EA0 z;X|QkOTwCnC8DoYB5Gu$9~orv;zosfYzEwWf+HE764Ym_IL3G+_}Og4xO#&1l!_+u z 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 D=L4gr literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/InvoiceUri.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/InvoiceUri.java new file mode 100644 index 000000000..c801a9046 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/InvoiceUri.java @@ -0,0 +1,87 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.node.DocumentLinkOptions; + +import java.util.regex.Pattern; + +/** + * Turns a printed contact detail into something a reader can act on. + * + *

      A sheet prints a number, an address and a site the way a person reads + * them, and a reader's device needs the form it can dial, mail or open. The two + * are not the same string, so the conversion lives in one place rather than + * beside every block on every invoice preset that needs it.

      + */ +final class InvoiceUri { + + /** + * A trunk prefix in a printed number is for a domestic dialler and is not + * part of the international one — {@code +44 (0)20 7946 0832} dials + * {@code +442079460832}. Left in, the digits run together into a number that + * reaches nobody. A parenthesised area code is not a trunk prefix, + * which is why only an all-zero group goes. + */ + private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); + + private InvoiceUri() { + } + + /** + * A printed telephone number as something a reader can dial. + * + * @param phone the number as the sheet prints it + * @return a {@code tel:} target, or {@code null} when the text carries no + * digits to dial + */ + private static String tel(String phone) { + if (phone == null || phone.isBlank()) { + return null; + } + String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + /** + * The same, ready to hand to a component that takes a link or nothing. + * + * @param phone the number as the sheet prints it + * @return the link options, or {@code null} when there is nothing to dial + */ + static DocumentLinkOptions telLink(String phone) { + String uri = tel(phone); + return uri == null ? null : new DocumentLinkOptions(uri); + } + + /** + * An address as something a reader can write to. + * + * @param email the address as the sheet prints it + * @return the link options, or {@code null} when there is no address + */ + static DocumentLinkOptions mailLink(String email) { + return email == null || email.isBlank() + ? null + : new DocumentLinkOptions("mailto:" + email.trim()); + } + + /** + * A written site as something a reader can follow. A sheet prints + * {@code example.com}; a viewer needs a scheme in front of it. + * + * @param website the site as the sheet prints it + * @return the link options, or {@code null} when there is no site + */ + static DocumentLinkOptions webLink(String website) { + if (website == null || website.isBlank()) { + return null; + } + String trimmed = website.trim(); + return new DocumentLinkOptions( + trimmed.startsWith("http://") || trimmed.startsWith("https://") + ? trimmed + : "https://" + trimmed); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredClosing.java new file mode 100644 index 000000000..4a9c61012 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredClosing.java @@ -0,0 +1,134 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.NOTE_BODY; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.NOTE_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.NOTE_ICON_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.NOTE_INSET; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.NOTE_LEAD; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.NOTE_LINE_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.NOTE_RULE_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.RULE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SEAM_CLOSING_TO_NOTE; + +/** + * The closing note: a rule, a mark, a lead line and the prose under it. + */ +final class MeteredClosing { + + private MeteredClosing() { + } + + /** + * The note. + * + * @param body the page's body section + * @param notes the lead and its prose + * @param supplier the addresses the prose may name + */ + static void render(SectionBuilder body, InvoiceNotesBlock notes, + InvoiceContactBlock supplier) { + if (notes.heading().isBlank() && notes.paragraphs().isEmpty()) { + return; + } + body.addSection("ClosingNote", block -> { + block.margin(SEAM_CLOSING_TO_NOTE); + block.keepTogether(); + block.spacing(NOTE_RULE_GAP); + block.addDivider(d -> d + .name("ClosingNoteRule") + .width(CONTENT_W) + .thickness(HAIRLINE) + .color(RULE)); + block.addRow("ClosingNoteBody", row -> row + .padding(new DocumentInsets(0, 0, 0, NOTE_INSET)) + .columns(DocumentRowColumn.fixed(NOTE_ICON + NOTE_ICON_GAP), + DocumentRowColumn.auto()) + .addSection("ClosingNoteIcon", cell -> cell + .addSvgIcon(MeteredIcons.icon(MeteredIcons.INFO), NOTE_ICON)) + .addSection("ClosingNoteText", text -> { + text.spacing(NOTE_LINE_GAP); + if (!notes.heading().isBlank()) { + text.addParagraph(p -> p + .name("ClosingNoteLead") + .text(notes.heading()) + .textStyle(NOTE_LEAD)); + } + List paragraphs = notes.paragraphs(); + for (int i = 0; i < paragraphs.size(); i++) { + String prose = paragraphs.get(i); + int index = i; + text.addParagraph(p -> { + p.name("ClosingNoteProse_" + index); + writeReachable(p, prose, notes, supplier); + }); + } + })); + }); + } + + /** + * The prose, with every address it names made reachable. + * + *

      The note tells a reader where to go, and the places it can send them — + * the support address, the site — are printed inside the sentence. Written + * as one string the whole sentence would have to carry the target or none of + * it would, so each address it actually contains becomes its own run and the + * text between them stays plain. The glyphs and their order are what the + * sentence gave.

      + */ + private static void writeReachable(ParagraphBuilder paragraph, String prose, + InvoiceNotesBlock notes, InvoiceContactBlock supplier) { + List found = new ArrayList<>(); + addIfPresent(found, prose, notes.contactEmail(), InvoiceUri.mailLink(notes.contactEmail())); + addIfPresent(found, prose, supplier.email(), InvoiceUri.mailLink(supplier.email())); + addIfPresent(found, prose, notes.contactPhone(), InvoiceUri.telLink(notes.contactPhone())); + addIfPresent(found, prose, supplier.website(), InvoiceUri.webLink(supplier.website())); + found.sort(Comparator.comparingInt(Reachable::at)); + + int cursor = 0; + for (Reachable reachable : found) { + if (reachable.at() < cursor) { + // An address that overlaps one already written — the site inside + // an address, say. The first one wins; writing both would + // duplicate the glyphs. + continue; + } + if (reachable.at() > cursor) { + paragraph.inlineText(prose.substring(cursor, reachable.at()), NOTE_BODY); + } + paragraph.inlineText(reachable.text(), NOTE_BODY, reachable.link()); + cursor = reachable.at() + reachable.text().length(); + } + if (cursor < prose.length()) { + paragraph.inlineText(prose.substring(cursor), NOTE_BODY); + } + } + + private static void addIfPresent(List found, String prose, String text, + DocumentLinkOptions link) { + if (text == null || text.isBlank() || link == null) { + return; + } + int at = prose.indexOf(text); + if (at >= 0) { + found.add(new Reachable(at, text, link)); + } + } + + private record Reachable(int at, String text, DocumentLinkOptions link) { + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredIcons.java new file mode 100644 index 000000000..503687746 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredIcons.java @@ -0,0 +1,75 @@ +package com.demcha.compose.document.templates.invoice.presets; + +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.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * The marks the Metered invoice packages. + * + *

      Five of them the preset chooses itself — which glyph opens the bill-to + * block, the ship-to block, the bank panel, the due-by card and the closing + * note is a property of the design, not of the document. The other five are a + * vocabulary a document may name on a service line through + * {@code InvoiceServiceLines.Line.icon()}.

      + */ +final class MeteredIcons { + + static final String BILL_TO = "bill-to"; + static final String SHIP_TO = "ship-to"; + static final String CARD = "card"; + static final String CALENDAR = "calendar"; + static final String INFO = "info"; + + private static final String ICON_ROOT = "/templates/invoice/metered/icons/"; + + /** The marks a document may name on a service line. */ + static final Set LINE_TOKENS = + Set.of("compute", "storage", "database", "transfer", "support"); + + private static final Set TOKENS = Set.of(BILL_TO, SHIP_TO, CARD, CALENDAR, INFO, + "compute", "storage", "database", "transfer", "support"); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private MeteredIcons() { + } + + /** + * The packaged mark a token names. + * + * @param token one of this preset's tokens + * @return the parsed icon + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error and not a missing resource + */ + static SvgIcon icon(String token) { + if (!TOKENS.contains(token)) { + throw new IllegalArgumentException( + "Unknown metered invoice icon token '" + token + + "'. This preset packages " + LINE_TOKENS.stream().sorted().toList() + + " for a service line's mark."); + } + return CACHE.computeIfAbsent(token, MeteredIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = MeteredIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing metered invoice icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read metered invoice icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoice.java new file mode 100644 index 000000000..31f5167e8 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredInvoice.java @@ -0,0 +1,209 @@ +package com.demcha.compose.document.templates.invoice.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.output.DocumentPageNumberStyle; +import com.demcha.compose.document.output.DocumentPageNumbering; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.BAND_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.FACE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.FOOTER_BAND_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.FOOTER_DARK; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.FOOTER_LINE_ONE_H; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.FOOTER_LINE_TWO_H; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.FOOTER_PAGE_H; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.FOOTER_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.INVERSE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PAGE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PAGE_MARGIN; + +/** + * Metered — an invoice for usage that is billed by the meter: an orange-accented + * masthead, the supplier against the invoice's own metadata, two addressed + * parties, a line-item table whose marks sit on bordered tiles, a closing row + * pairing the bank details against the totals and the due date, and a + * full-bleed dark band along the foot of every page. + * + *

      It flows

      + * + *

      The design shows five service lines and real usage brings dozens, so the + * table is the region that grows: its header repeats on every page it reaches, + * the bottom margin reserves the dark band on every page so no row runs into + * the chrome, and every page carries its number.

      + * + *

      One column, not five

      + * + *

      The table has an outer box and a rule between every row and no interior + * verticals, which is exactly what a single-column table draws: a cell strokes + * all four of its own edges and a one-column table has no interior vertical + * edge. The five columns are a row inside each cell. Built the other way round + * — the box from a stroked section wrapped round the table — every continuation + * page would end in an empty bordered strip.

      + * + *

      A rate is not an amount

      + * + *

      Metered rates are fractions of a currency unit: an hour of compute at + * 0.0680 rounds to 0.07 at an amount's two places, which is a different price + * and multiplies out to a different bill. A unit price is written at its own + * scale, between two and four places; every other figure on the sheet is + * written at two. Figures state their locale rather than inheriting it, so the + * same data renders the same sheet on any machine.

      + * + *

      The lockup is the caller's

      + * + *

      The masthead draws the logo from {@code InvoiceBrand} at the design's + * measured width, or the brand's name when there is no logo. The templates + * artifact carries no mark of its own.

      + * + *

      What the document says, and what the preset chooses

      + * + *

      A service line names its own mark through + * {@code InvoiceServiceLines.Line.icon()}, from this preset's own vocabulary, + * and an unknown token is reported as a data error naming the set. A line that + * names no mark keeps its tile, so the text lanes stay on their axis down the + * column. The party marks, the bank mark, the calendar and the note's mark are + * the preset's: which glyph opens which block is a property of the design + * rather than of the document.

      + * + *

      Fonts

      + * + *

      The sheet is set in Lato throughout. The templates artifact carries no + * fonts — register the family on the session, or the engine substitutes and the + * measured geometry no longer matches the type sitting in it.

      + * + *

      Usage:

      + *
      {@code
      + * DocumentTemplate template = MeteredInvoice.create();
      + * template.compose(session, invoice);
      + * }
      + * + * @since 2.4.0 + */ +public final class MeteredInvoice { + + /** Stable identifier of this preset. */ + public static final String ID = "metered-invoice"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Metered Invoice"; + + private MeteredInvoice() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link StructuredInvoiceData} + */ + 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, StructuredInvoiceData data) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(data, "data"); + + // Every length on the sheet is a share of the design's own grid, so + // the preset sets the page and its margins rather than following + // what the caller configured. + document.pageSize(PAGE); + document.margin(PAGE_MARGIN); + renderFooterBand(document); + renderPageFooter(document, data.supplier()); + + String currency = data.currencyCode(); + document.pageFlow(page -> page + .name("MeteredInvoice") + .padding(DocumentInsets.zero()) + .spacing(0) + .addSection("Body", body -> { + body.spacing(BAND_GAP); + MeteredMasthead.renderBrandHeader(body, data.brand(), data.masthead()); + MeteredMasthead.renderIdentityRow(body, data.supplier(), data.masthead()); + MeteredMasthead.renderParties(body, data.billTo(), data.shipTo()); + MeteredLines.render(body, data.serviceLines(), currency); + MeteredSettlement.render(body, data.payment(), data.totals(), currency); + MeteredClosing.render(body, data.notes(), data.supplier()); + })); + } + + /** + * The band is a page background, not a section fill and not a bleed: it + * has to reach all three bottom edges and repeat on every page whatever + * the content height is. + */ + private static void renderFooterBand(DocumentSession document) { + document.pageBackgrounds( + List.of(PageBackgroundFill.bottomBand(FOOTER_BAND_RATIO, FOOTER_DARK))); + } + + /** + * Repeating chrome. A footer entry carries left, centre and right + * strings and nothing else, so each line of the band is its own entry + * positioned by its distance from the paper's bottom edge: the + * supplier's legal line, its address, and the enumeration on the band's + * own centre line. The first is the disclosure the jurisdiction + * requires when the supplier states one, and its name when it does + * not — either way the band identifies who issued the sheet. + * + *

      Each entry names the sheet's face. The zone's own default is the + * standard-14 face, which would leave the band the one place on the + * sheet in a family the design never uses.

      + */ + private static void renderPageFooter(DocumentSession document, + InvoiceContactBlock supplier) { + legalLine(document, FOOTER_LINE_ONE_H, supplier.legalFootnote().isBlank() + ? supplier.legalName() + : supplier.legalFootnote()); + legalLine(document, FOOTER_LINE_TWO_H, String.join(", ", supplier.addressLines())); + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .height((float) FOOTER_PAGE_H) + .fontName(FACE) + .fontSize((float) FOOTER_SIZE) + .textColor(INVERSE) + .rightText("Page {page} of {pages}") + .numbering(DocumentPageNumbering.builder() + .style(DocumentPageNumberStyle.DECIMAL) + .showOnFirstPage(true) + .build()) + .build()); + } + + private static void legalLine(DocumentSession document, double height, String text) { + if (text.isBlank()) { + return; + } + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .height((float) height) + .fontName(FACE) + .fontSize((float) FOOTER_SIZE) + .textColor(INVERSE) + .leftText(text) + .build()); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredLines.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredLines.java new file mode 100644 index 000000000..f70813763 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredLines.java @@ -0,0 +1,144 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.RowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.table.DocumentTableCell; +import com.demcha.compose.document.table.DocumentTableColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.BODY_CELL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.CELL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.COL_AMOUNT; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.COL_QUANTITY; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.COL_SERVICE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.COL_UNIT_PRICE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.DESC_TEXT_COL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.DESC_TILE_COL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.HEADER_CELL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.LINE_SUB; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.LINE_TEXT_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.LINE_TITLE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SEAM_PARTIES_TO_TABLE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TABLE_HEAD; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TABLE_PAD_L; + +/** + * The metered line-item table: a dark caps header that repeats on every page it + * reaches, and one row per service line with its mark on a bordered tile. + */ +final class MeteredLines { + + private MeteredLines() { + } + + /** + * The table. + * + * @param body the page's body section + * @param serviceLines the lines and their column captions + * @param currencyCode the code every figure is written behind + */ + static void render(SectionBuilder body, InvoiceServiceLines serviceLines, String currencyCode) { + body.addTable(table -> { + table.name("LineItems"); + table.margin(SEAM_PARTIES_TO_TABLE); + table.width(CONTENT_W); + table.columns(DocumentTableColumn.fixed(CONTENT_W)); + table.defaultCellStyle(BODY_CELL); + renderHeader(table, serviceLines.columns()); + List lines = serviceLines.lines(); + for (int i = 0; i < lines.size(); i++) { + table.rowCells(DocumentTableCell + .node(lineRow(lines.get(i), i, currencyCode)) + .withStyle(BODY_CELL)); + } + }); + } + + /** + * The dark band: its fill, its inverse caps, and the instruction that brings + * it back at the top of every page the table reaches. + */ + private static void renderHeader(TableBuilder table, InvoiceServiceLines.Columns columns) { + table.headerCells(DocumentTableCell.node(headerRow(columns)).withStyle(HEADER_CELL)); + table.repeatHeader(); + } + + private static DocumentNode headerRow(InvoiceServiceLines.Columns columns) { + RowBuilder row = new RowBuilder(); + row.name("LineItemsHeaderRow") + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(DESC_TILE_COL), + DocumentRowColumn.fixed(DESC_TEXT_COL), + DocumentRowColumn.fixed(COL_SERVICE), + DocumentRowColumn.fixed(COL_QUANTITY), + DocumentRowColumn.fixed(COL_UNIT_PRICE), + DocumentRowColumn.fixed(COL_AMOUNT)) + .addSpacer(0) + .addParagraph(p -> p.name("HeadDescription") + .text(columns.description()).textStyle(TABLE_HEAD)) + .addParagraph(p -> p.name("HeadService") + .text(columns.servicePeriod()).textStyle(TABLE_HEAD).align(TextAlign.CENTER)) + .addParagraph(p -> p.name("HeadQuantity") + .text(columns.quantity()).textStyle(TABLE_HEAD).align(TextAlign.CENTER)) + .addParagraph(p -> p.name("HeadUnitPrice") + .text(columns.unitPrice()).textStyle(TABLE_HEAD).align(TextAlign.CENTER)) + .addParagraph(p -> p.name("HeadAmount") + .text(columns.amount()).textStyle(TABLE_HEAD).align(TextAlign.CENTER)); + return row.build(); + } + + /** + * One service line. + * + *

      The mark is the document's: a line names one from this preset's own + * vocabulary through {@code icon()}, and a line that names none keeps the + * tile's space so the text lanes stay on their axis down the column.

      + */ + private static DocumentNode lineRow(InvoiceServiceLines.Line line, int index, + String currencyCode) { + String token = line.icon(); + DocumentNode mark = token == null || token.isBlank() + ? MeteredWidgets.tileSpace(index) + : MeteredWidgets.tile(token, index); + RowBuilder row = new RowBuilder(); + row.name("LineItemRow_" + index) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(DESC_TILE_COL), + DocumentRowColumn.fixed(DESC_TEXT_COL), + DocumentRowColumn.fixed(COL_SERVICE), + DocumentRowColumn.fixed(COL_QUANTITY), + DocumentRowColumn.fixed(COL_UNIT_PRICE), + DocumentRowColumn.fixed(COL_AMOUNT)) + .addSection("LineTileCell_" + index, cell -> cell + .padding(new DocumentInsets(0, 0, 0, TABLE_PAD_L)) + .add(mark)) + .addSection("LineText_" + index, text -> text + .spacing(LINE_TEXT_GAP) + .addParagraph(p -> p.name("LineTitle_" + index) + .text(line.title()).textStyle(LINE_TITLE)) + .addParagraph(p -> p.name("LineSubtitle_" + index) + .text(line.description()).textStyle(LINE_SUB))) + .addParagraph(p -> p.name("LineService_" + index) + .text(line.servicePeriod()).textStyle(CELL).align(TextAlign.CENTER)) + .addParagraph(p -> p.name("LineQuantity_" + index) + .text(MeteredText.quantityWithUnit(line.quantity(), line.unit())) + .textStyle(CELL).align(TextAlign.CENTER)) + .addParagraph(p -> p.name("LineUnitPrice_" + index) + .text(MeteredText.codedRate(currencyCode, line.unitPrice())) + .textStyle(CELL).align(TextAlign.CENTER)) + .addParagraph(p -> p.name("LineAmount_" + index) + .text(MeteredText.codedMoney(currencyCode, line.amount())) + .textStyle(CELL).align(TextAlign.CENTER)); + return row.build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredMasthead.java new file mode 100644 index 000000000..263bcbcc3 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredMasthead.java @@ -0,0 +1,255 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.LineBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.HorizontalAlign; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentBorders; +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.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.ACCENT_BRIGHT; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.IDENTITY_SPLIT; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.LOGO_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.META_ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.META_BLOCK_INSET; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.META_COLUMN_INSET; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.META_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.META_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.META_PAIR_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.META_VALUE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PARTIES_SPLIT; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PARTY_EXTRA_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PARTY_HEAD_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PARTY_INSET; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PARTY_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PARTY_LINE_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PARTY_NAME; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.RULE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SEAM_CLEARANCE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SEAM_IDENTITY_TO_RULE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SEAM_RULE_TO_PARTIES; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SECTION_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SECTION_ICON_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SECTION_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SHIP_COLUMN_INSET; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUPPLIER_BLOCK_INSET; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUPPLIER_GROUP_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUPPLIER_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUPPLIER_LINE_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUPPLIER_NAME; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUPPLIER_NAME_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUPPLIER_PAIR_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TITLE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TITLE_RULE_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TITLE_RULE_T; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TITLE_RULE_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredWidgets.hangingBody; +import static com.demcha.compose.document.templates.invoice.presets.MeteredWidgets.iconHeading; +import static com.demcha.compose.document.templates.invoice.presets.MeteredWidgets.labelledRow; +import static com.demcha.compose.document.templates.invoice.presets.MeteredWidgets.layeredRow; + +/** + * The three bands above the line items: the lockup and the title, the supplier + * against the invoice's own metadata, and the two addressed parties. + */ +final class MeteredMasthead { + + private MeteredMasthead() { + } + + /** + * The lockup on the left and the document's title on the right, over the + * accent rule. + * + *

      The mark is the caller's: the lockup draws the brand's logo at the + * design's measured width, or the brand's name when there is none. The + * templates artifact carries no mark of its own.

      + */ + static void renderBrandHeader(SectionBuilder body, InvoiceBrand brand, InvoiceMasthead masthead) { + body.addRow("BrandHeader", row -> row + .verticalAlign(RowVerticalAlign.CENTER) + .weights(1, 1) + .addSection("BrandMark", mark -> { + if (brand.logo() != null) { + mark.add(new ImageBuilder() + .name("BrandLogo") + .source(brand.logo()) + .width(LOGO_W) + .build()); + } else { + mark.addParagraph(p -> p + .name("BrandName") + .text(brand.name()) + .textStyle(TITLE)); + } + }) + .addSection("InvoiceTitle", title -> title + .spacing(TITLE_RULE_GAP) + .addParagraph(p -> p + .name("InvoiceTitleText") + .text(masthead.title()) + .textStyle(TITLE) + .align(TextAlign.RIGHT)) + .addAligned(HorizontalAlign.RIGHT, new LineBuilder() + .name("InvoiceTitleRule") + .horizontal(TITLE_RULE_W) + .thickness(TITLE_RULE_T) + .color(ACCENT_BRIGHT) + .build()))); + } + + /** The supplier's own details against the invoice's metadata, split by a hairline. */ + static void renderIdentityRow(SectionBuilder body, InvoiceContactBlock supplier, + InvoiceMasthead masthead) { + body.addRow("IdentityRow", row -> row + .weights(IDENTITY_SPLIT, 1 - IDENTITY_SPLIT) + .addSection("SupplierColumn", left -> { + left.borders(DocumentBorders.right(DocumentStroke.of(RULE, HAIRLINE))); + left.padding(new DocumentInsets(0, SEAM_CLEARANCE, 0, 0)); + renderSupplierBlock(left, supplier); + }) + .addSection("MetaColumn", right -> { + right.padding(new DocumentInsets(0, 0, 0, META_COLUMN_INSET)); + renderInvoiceMeta(right, masthead); + })); + body.addDivider(d -> d + .name("IdentityRule") + .width(CONTENT_W) + .thickness(HAIRLINE) + .color(RULE) + .margin(SEAM_IDENTITY_TO_RULE)); + } + + private static void renderSupplierBlock(SectionBuilder column, InvoiceContactBlock supplier) { + column.addSection("SupplierBlock", block -> { + block.margin(SUPPLIER_BLOCK_INSET); + block.spacing(SUPPLIER_GROUP_GAP); + block.addSection("SupplierIdentity", identity -> { + identity.spacing(SUPPLIER_LINE_GAP); + identity.addParagraph(p -> p + .name("SupplierName") + .text(supplier.legalName()) + .textStyle(SUPPLIER_NAME) + .margin(new DocumentInsets(0, 0, SUPPLIER_NAME_GAP, 0))); + List lines = supplier.addressLines(); + for (int i = 0; i < lines.size(); i++) { + String line = lines.get(i); + int index = i; + identity.addParagraph(p -> p + .name("SupplierAddress_" + index) + .text(line) + .textStyle(BODY)); + } + }); + block.addSection("SupplierContacts", contacts -> { + contacts.spacing(SUPPLIER_PAIR_GAP); + int index = 0; + if (!supplier.taxRegistrationNumber().isBlank()) { + labelledRow(contacts, "SupplierContact_" + index++, + supplier.taxRegistrationLabel(), supplier.taxRegistrationNumber(), + SUPPLIER_LABEL_W, BODY, BODY, null); + } + if (!supplier.phone().isBlank()) { + labelledRow(contacts, "SupplierContact_" + index++, + "Phone:", supplier.phone(), + SUPPLIER_LABEL_W, BODY, BODY, InvoiceUri.telLink(supplier.phone())); + } + if (!supplier.email().isBlank()) { + labelledRow(contacts, "SupplierContact_" + index++, + "Email:", supplier.email(), SUPPLIER_LABEL_W, BODY, BODY, + InvoiceUri.mailLink(supplier.email())); + } + if (!supplier.website().isBlank()) { + labelledRow(contacts, "SupplierContact_" + index, + "Website:", supplier.website(), SUPPLIER_LABEL_W, BODY, BODY, + InvoiceUri.webLink(supplier.website())); + } + }); + }); + } + + private static void renderInvoiceMeta(SectionBuilder column, InvoiceMasthead masthead) { + column.addSection("InvoiceMeta", meta -> { + meta.margin(META_BLOCK_INSET); + meta.spacing(META_PAIR_GAP); + List entries = masthead.entries(); + for (int i = 0; i < entries.size(); i++) { + InvoiceMasthead.Entry entry = entries.get(i); + labelledRow(meta, "InvoiceMeta_" + i, entry.label(), entry.value(), + META_LABEL_W, META_LABEL, + entry.emphasized() ? META_ACCENT : META_VALUE, null); + } + }); + } + + /** The billed party against the shipped-to party, split by the same hairline. */ + static void renderParties(SectionBuilder body, InvoiceRecipient billTo, InvoiceRecipient shipTo) { + body.addRow("PartiesRow", row -> row + .margin(SEAM_RULE_TO_PARTIES) + .weights(PARTIES_SPLIT, 1 - PARTIES_SPLIT) + .addSection("BillToColumn", left -> { + left.borders(DocumentBorders.right(DocumentStroke.of(RULE, HAIRLINE))); + left.padding(new DocumentInsets(0, SEAM_CLEARANCE, 0, PARTY_INSET)); + renderParty(left, "BillTo", billTo, MeteredIcons.BILL_TO); + }) + .addSection("ShipToColumn", right -> { + right.padding(new DocumentInsets(0, 0, 0, SHIP_COLUMN_INSET)); + if (shipTo != null) { + renderParty(right, "ShipTo", shipTo, MeteredIcons.SHIP_TO); + } + })); + } + + /** + * The shared body of the two party blocks. The heading's mark hangs in the + * block's own margin: everything under it is left-aligned with the label, + * which is one padding on the body group rather than a margin repeated on + * every line. + */ + private static void renderParty(SectionBuilder column, String id, InvoiceRecipient party, + String iconToken) { + column.addSection(id, block -> { + block.keepTogether(); + block.spacing(PARTY_HEAD_GAP); + iconHeading(block, id + "Heading", iconToken, SECTION_ICON, SECTION_ICON_GAP, + party.heading(), SECTION_LABEL); + block.addSection(id + "Body", lines -> { + lines.padding(hangingBody(SECTION_ICON, SECTION_ICON_GAP)); + lines.spacing(PARTY_LINE_GAP); + lines.addParagraph(p -> p + .name(id + "Name") + .text(party.name()) + .textStyle(PARTY_NAME)); + List address = party.addressLines(); + for (int i = 0; i < address.size(); i++) { + String line = address.get(i); + int index = i; + lines.addParagraph(p -> p + .name(id + "Address_" + index) + .text(line) + .textStyle(BODY)); + } + if (!party.registrationNumber().isBlank()) { + layeredRow(lines, id + "Registration", row -> row + .margin(new DocumentInsets(PARTY_EXTRA_GAP, 0, 0, 0)) + .columns(DocumentRowColumn.fixed(PARTY_LABEL_W), DocumentRowColumn.auto()) + .addParagraph(p -> p.text(party.registrationLabel()).textStyle(BODY)) + .addParagraph(p -> p.text(party.registrationNumber()).textStyle(BODY))); + } + }); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredSettlement.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredSettlement.java new file mode 100644 index 000000000..1ea27a35c --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredSettlement.java @@ -0,0 +1,172 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +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.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.CLOSING_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.CLOSING_LEFT_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.CLOSING_RIGHT_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.DUE_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.DUE_ICON_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.DUE_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.DUE_PADDING; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.DUE_TEXT_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.DUE_VALUE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_BORDER; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_FILL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_HEAD_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_ICON_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_PADDING; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_ROW_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_TEXT; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_TITLE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SEAM_TABLE_TO_CLOSING; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUMMARY_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUMMARY_INSET_L; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUMMARY_INSET_R; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.SUMMARY_W; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TOTALS_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TOTALS_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TOTALS_RULE_GAP; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TOTALS_RULE_T; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TOTALS_VALUE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TOTAL_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.TOTAL_VALUE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.WHITE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredWidgets.iconHeading; +import static com.demcha.compose.document.templates.invoice.presets.MeteredWidgets.labelledRow; +import static com.demcha.compose.document.templates.invoice.presets.MeteredWidgets.layeredRow; + +/** + * The band under the table: the bank details on the left, and on the right the + * totals over the card that carries the due date. + */ +final class MeteredSettlement { + + private MeteredSettlement() { + } + + /** + * The closing row. + * + * @param body the page's body section + * @param payment the bank details and the due notice + * @param totals the summed rows and the grand total + * @param currencyCode the code every figure is written behind + */ + static void render(SectionBuilder body, InvoicePaymentBlock payment, + InvoiceTotalsBlock totals, String currencyCode) { + body.addRow("ClosingRow", row -> row + .margin(SEAM_TABLE_TO_CLOSING) + .verticalAlign(RowVerticalAlign.BOTTOM) + .gap(CLOSING_GUTTER) + .columns(DocumentRowColumn.fixed(CLOSING_LEFT_W), + DocumentRowColumn.fixed(CLOSING_RIGHT_W)) + .addSection("PaymentColumn", left -> renderPaymentDetails(left, payment)) + .addSection("SummaryColumn", right -> { + right.spacing(SUMMARY_GAP); + renderTotals(right, totals, currencyCode); + renderDueBy(right, payment); + })); + } + + private static void renderTotals(SectionBuilder column, InvoiceTotalsBlock totals, + String currencyCode) { + column.addSection("Totals", block -> { + block.keepTogether(); + block.padding(new DocumentInsets(0, SUMMARY_INSET_R, 0, SUMMARY_INSET_L)); + block.spacing(TOTALS_GAP); + List rows = totals.rows(); + for (int i = 0; i < rows.size(); i++) { + InvoiceTotalsBlock.Row row = rows.get(i); + totalsRow(block, "TotalsRow_" + i, row.label(), + MeteredText.codedMoney(currencyCode, row.amount()), + TOTALS_LABEL, TOTALS_VALUE); + } + block.addLine(l -> l + .name("TotalsRule") + .horizontal(SUMMARY_W) + .thickness(TOTALS_RULE_T) + .color(ACCENT) + .margin(new DocumentInsets(TOTALS_RULE_GAP, 0, TOTALS_RULE_GAP, 0))); + totalsRow(block, "TotalDue", totals.totalLabel(), + MeteredText.codedMoney(currencyCode, totals.totalAmount()), + TOTAL_LABEL, TOTAL_VALUE); + }); + } + + private static void totalsRow(SectionBuilder parent, String name, String label, String value, + DocumentTextStyle labelStyle, DocumentTextStyle valueStyle) { + layeredRow(parent, name, row -> row + .verticalAlign(RowVerticalAlign.CENTER) + .weights(1, 1) + .addParagraph(p -> p.text(label).textStyle(labelStyle)) + .addParagraph(p -> p.text(value).textStyle(valueStyle).align(TextAlign.RIGHT))); + } + + private static void renderPaymentDetails(SectionBuilder column, InvoicePaymentBlock payment) { + column.addSection("PaymentDetails", card -> { + card.keepTogether(); + card.softPanel(WHITE, PANEL_RADIUS, PANEL_PADDING, + DocumentStroke.of(PANEL_BORDER, HAIRLINE)); + card.spacing(PANEL_ROW_GAP); + iconHeading(card, "PaymentDetailsHeading", MeteredIcons.CARD, + PANEL_ICON, PANEL_ICON_GAP, payment.heading(), PANEL_TITLE); + card.addSection("PaymentDetailsRows", rows -> { + rows.margin(new DocumentInsets(PANEL_HEAD_GAP, 0, 0, 0)); + rows.spacing(PANEL_ROW_GAP); + List fields = payment.fields(); + for (int i = 0; i < fields.size(); i++) { + InvoicePaymentBlock.Field field = fields.get(i); + labelledRow(rows, "PaymentDetail_" + i, field.label(), field.value(), + PANEL_LABEL_W, PANEL_TEXT, PANEL_TEXT, linkFor(field.value())); + } + }); + }); + } + + /** + * A bank detail is a reference, not a destination — except the remittance + * address, which is the one field on the panel a reader would act on. + */ + private static DocumentLinkOptions linkFor(String value) { + return value.contains("@") ? InvoiceUri.mailLink(value) : null; + } + + private static void renderDueBy(SectionBuilder column, InvoicePaymentBlock payment) { + if (payment.dueNotice().isBlank() && payment.dueNoticeEmphasis().isBlank()) { + return; + } + column.addSection("PaymentDueBy", card -> { + card.keepTogether(); + card.softPanel(PANEL_FILL, PANEL_RADIUS, DUE_PADDING); + layeredRow(card, "PaymentDueByRow", row -> row + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(DUE_ICON + DUE_ICON_GAP), + DocumentRowColumn.auto()) + .addSection("PaymentDueByIcon", cell -> cell + .addSvgIcon(MeteredIcons.icon(MeteredIcons.CALENDAR), DUE_ICON)) + .addSection("PaymentDueByText", text -> text + .spacing(DUE_TEXT_GAP) + .addParagraph(p -> p.name("PaymentDueByLabel") + .text(payment.dueNotice()).textStyle(DUE_LABEL)) + .addParagraph(p -> p.name("PaymentDueByValue") + .text(payment.dueNoticeEmphasis()).textStyle(DUE_VALUE)))); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredStyles.java new file mode 100644 index 000000000..6b12017de --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredStyles.java @@ -0,0 +1,303 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.font.FontName; + +/** + * Every measurement, colour and type size of the Metered invoice. + * + *

      Geometry is relational. Every width is a fraction of {@link #CONTENT_W} and + * every length taken off the design is written as {@code px(n)} — the design's + * own pixel — so it still reads as the thing that was measured while scaling + * with the page. Two lengths are independent of the grid: the icon tile and the + * hairline weight.

      + */ +final class MeteredStyles { + + private MeteredStyles() { + } + + // ------------------------------------------------------------------ + // The page and its grid + // ------------------------------------------------------------------ + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + + private static final double PAGE_W = PAGE.width(); + private static final double PAGE_H = PAGE.height(); + + /** The design image's pixel width — the scale every measurement below is in. */ + private static final double DESIGN_PX_WIDTH = 1055.0; + + /** Points per design pixel. The one conversion the whole preset goes through. */ + private static final double PX = PAGE_W / DESIGN_PX_WIDTH; + + static double px(double designPixels) { + return designPixels * PX; + } + + /** + * The side margins are not equal: every full-width element runs from x=35.5 + * to x=1011.5 of a 1055 px sheet, a 35.5 px left margin against a 43.5 px + * right one. Built symmetric at the mean it costs 4 px of horizontal error + * on every glyph in the document to save 8 px on one edge, so the asymmetry + * is kept as measured. + */ + static final double MARGIN_LEFT = px(35.5); + static final double MARGIN_RIGHT = px(43.5); + static final double TOP_MARGIN = px(44); + + /** The dark band's share of the page height; passed straight to the background. */ + static final double FOOTER_BAND_RATIO = 72.0 / 1491.0; + static final double FOOTER_BAND_H = PAGE_H * FOOTER_BAND_RATIO; + + /** The band plus clearance, so no continuation page runs its last row into the chrome. */ + static final double BOTTOM_MARGIN = FOOTER_BAND_H + px(8); + + /** Every column width on the page is a fraction of this. */ + static final double CONTENT_W = PAGE_W - MARGIN_LEFT - MARGIN_RIGHT; + + static final DocumentInsets PAGE_MARGIN = + new DocumentInsets(TOP_MARGIN, MARGIN_RIGHT, BOTTOM_MARGIN, MARGIN_LEFT); + + /** + * Every rule, border and table stroke on the page. + * + *

      The design's hairlines are one pixel of a 1055 px image, which is + * 0.6 pt — and a 0.6 pt stroke rasterises to less than a pixel at preview + * resolution, so half the table's row rules come out at partial opacity and + * the two panel outlines do not register at all. They are a pixel of ink, + * not a pixel of geometry; this is the weight that reproduces them.

      + */ + static final double HAIRLINE = px(1.7); + + // ------------------------------------------------------------------ + // Seams between the stacked bands + // ------------------------------------------------------------------ + + /** The base seam. The ones that differ carry the difference as their own margin. */ + static final double BAND_GAP = px(22); + + static final DocumentInsets SEAM_IDENTITY_TO_RULE = seam(14); + static final DocumentInsets SEAM_RULE_TO_PARTIES = seam(9); + static final DocumentInsets SEAM_PARTIES_TO_TABLE = seam(12); + static final DocumentInsets SEAM_TABLE_TO_CLOSING = seam(0); + static final DocumentInsets SEAM_CLOSING_TO_NOTE = seam(3); + + /** The two columns of the identity row start at different heights. */ + static final DocumentInsets SUPPLIER_BLOCK_INSET = seam(6); + static final DocumentInsets META_BLOCK_INSET = seam(11); + + private static DocumentInsets seam(double extraPixels) { + return new DocumentInsets(px(extraPixels), 0, 0, 0); + } + + // ------------------------------------------------------------------ + // Column splits + // ------------------------------------------------------------------ + + /** Identity row: supplier | hairline | invoice metadata. */ + static final double IDENTITY_SPLIT = 0.431; + static final double SEAM_CLEARANCE = px(20); + static final double META_COLUMN_INSET = px(141); + + /** Parties row: bill-to | hairline | ship-to. */ + static final double PARTIES_SPLIT = 0.494; + static final double SHIP_COLUMN_INSET = px(74); + + /** Closing row: payment card | gutter | totals over the due-by card. */ + static final double CLOSING_LEFT_W = CONTENT_W * (431.0 / 976.0); + static final double CLOSING_RIGHT_W = CONTENT_W * (422.0 / 976.0); + static final double CLOSING_GUTTER = px(113); + + /** The totals rows sit inside their column, not flush with the panel below them. */ + static final double SUMMARY_INSET_L = px(6); + static final double SUMMARY_INSET_R = px(7.5); + static final double SUMMARY_W = CLOSING_RIGHT_W - SUMMARY_INSET_L - SUMMARY_INSET_R; + static final double TOTALS_RULE_GAP = px(3.5); + + /** The five table columns, solved from the header-label centres. */ + static final double COL_DESCRIPTION = CONTENT_W * 0.2945; + static final double COL_SERVICE = CONTENT_W * 0.2352; + static final double COL_QUANTITY = CONTENT_W * 0.1288; + static final double COL_UNIT_PRICE = CONTENT_W * 0.1759; + static final double COL_AMOUNT = CONTENT_W * 0.1656; + + static final double ICON_TILE = px(44); + static final double ICON_TILE_RADIUS = px(10); + static final double LINE_ICON = px(25); + static final double TABLE_PAD_L = px(17.5); + static final double TILE_GAP = px(24); + + /** Splits the description column into the tile's lane and the text's lane. */ + static final double DESC_TILE_COL = TABLE_PAD_L + ICON_TILE + TILE_GAP; + static final double DESC_TEXT_COL = COL_DESCRIPTION - DESC_TILE_COL; + + static final double ROW_PAD_Y = px(14.3); + static final double HEADER_PAD_Y = px(14.5); + static final double LINE_TEXT_GAP = px(1); + + // ------------------------------------------------------------------ + // Cards and marks + // ------------------------------------------------------------------ + + static final double PANEL_RADIUS = px(10); + static final double PANEL_PADDING = px(21); + static final double DUE_PADDING = px(20); + + static final double SECTION_ICON = px(24); + static final double SECTION_ICON_GAP = px(15); + static final double PANEL_ICON = px(26); + static final double PANEL_ICON_GAP = px(5); + static final double DUE_ICON = px(36); + static final double DUE_ICON_GAP = px(22); + static final double NOTE_ICON = px(24); + static final double NOTE_ICON_GAP = px(19); + + /** Bill-to's mark and the note's mark hang inside the content edge, not on it. */ + static final double PARTY_INSET = px(7.5); + static final double NOTE_INSET = px(5.5); + + /** The masthead lockup's measured width. */ + static final double LOGO_W = px(222); + + /** Label columns: four pair lists, four widths, each stated once. */ + static final double SUPPLIER_LABEL_W = px(85); + static final double META_LABEL_W = px(153); + static final double PANEL_LABEL_W = px(172); + static final double PARTY_LABEL_W = px(71); + + // Line pitches, as the gap a section puts between its children. + static final double SUPPLIER_LINE_GAP = px(4.5); + static final double SUPPLIER_NAME_GAP = px(6); + static final double SUPPLIER_GROUP_GAP = px(24); + static final double SUPPLIER_PAIR_GAP = px(6.2); + static final double META_PAIR_GAP = px(16); + static final double PARTY_HEAD_GAP = px(9); + static final double PARTY_LINE_GAP = px(5); + static final double PARTY_EXTRA_GAP = px(14); + static final double TOTALS_GAP = px(15); + static final double TOTALS_RULE_T = px(2); + static final double SUMMARY_GAP = px(29); + static final double PANEL_HEAD_GAP = px(4); + static final double PANEL_ROW_GAP = px(4.7); + static final double DUE_TEXT_GAP = px(0); + static final double NOTE_RULE_GAP = px(22.5); + static final double NOTE_LINE_GAP = px(5); + static final double TITLE_RULE_GAP = px(17); + static final double TITLE_RULE_W = px(71); + static final double TITLE_RULE_T = px(4); + + // ------------------------------------------------------------------ + // Page chrome + // ------------------------------------------------------------------ + + /** + * Repeating chrome is positioned by its distance from the paper's bottom + * edge, so the two legal lines are two footer entries at two heights and the + * enumeration is a third on the band's own centre line. + */ + static final double FOOTER_LINE_ONE_H = 32.7; + static final double FOOTER_LINE_TWO_H = 21.5; + static final double FOOTER_PAGE_H = 27; + static final double FOOTER_SIZE = 7; + + // ------------------------------------------------------------------ + // Colour + // ------------------------------------------------------------------ + + static final DocumentColor INK = DocumentColor.rgb(11, 18, 28); + static final DocumentColor ACCENT = DocumentColor.rgb(251, 122, 0); + static final DocumentColor ACCENT_BRIGHT = DocumentColor.rgb(255, 140, 5); + static final DocumentColor BAND_DARK = DocumentColor.rgb(17, 26, 41); + static final DocumentColor FOOTER_DARK = DocumentColor.rgb(7, 18, 27); + static final DocumentColor INVERSE = DocumentColor.rgb(255, 255, 255); + static final DocumentColor PANEL_FILL = DocumentColor.rgb(248, 248, 248); + static final DocumentColor PANEL_BORDER = DocumentColor.rgb(235, 235, 235); + static final DocumentColor RULE = DocumentColor.rgb(222, 223, 226); + static final DocumentColor TABLE_RULE = DocumentColor.rgb(224, 225, 227); + static final DocumentColor TABLE_BORDER = DocumentColor.rgb(237, 237, 237); + static final DocumentColor WHITE = DocumentColor.WHITE; + + /** + * The sheet is set in Lato throughout, chosen by measurement against the + * design's own grotesque. The templates artifact carries no fonts — + * register the family on the session, or the engine substitutes and the + * measured geometry no longer matches the type sitting in it. + */ + static final FontName FACE = FontName.LATO; + + // ------------------------------------------------------------------ + // Type + // ------------------------------------------------------------------ + + static final DocumentTextStyle TITLE = bold(29, INK); + static final DocumentTextStyle SUPPLIER_NAME = bold(10.5, INK); + static final DocumentTextStyle BODY = plain(9.1, INK); + static final DocumentTextStyle META_LABEL = plain(8.6, INK); + static final DocumentTextStyle META_VALUE = plain(9.1, INK); + static final DocumentTextStyle META_ACCENT = bold(9.7, ACCENT); + static final DocumentTextStyle SECTION_LABEL = bold(7.9, ACCENT); + static final DocumentTextStyle PARTY_NAME = bold(10.5, INK); + static final DocumentTextStyle TABLE_HEAD = bold(7.5, INVERSE); + static final DocumentTextStyle LINE_TITLE = bold(10, INK); + static final DocumentTextStyle LINE_SUB = plain(8.6, INK); + static final DocumentTextStyle CELL = plain(8.2, INK); + static final DocumentTextStyle TOTALS_LABEL = plain(8.6, INK); + static final DocumentTextStyle TOTALS_VALUE = plain(8.6, INK); + static final DocumentTextStyle TOTAL_LABEL = bold(11, INK); + static final DocumentTextStyle TOTAL_VALUE = bold(14.3, ACCENT); + static final DocumentTextStyle PANEL_TITLE = bold(8.75, ACCENT); + static final DocumentTextStyle PANEL_TEXT = plain(8.1, INK); + static final DocumentTextStyle DUE_LABEL = bold(8, INK); + static final DocumentTextStyle DUE_VALUE = bold(11.4, INK); + static final DocumentTextStyle NOTE_LEAD = bold(9.1, INK); + static final DocumentTextStyle NOTE_BODY = plain(8.1, INK); + + static DocumentTextStyle plain(double size, DocumentColor color) { + return style(size, color, DocumentTextDecoration.DEFAULT); + } + + static DocumentTextStyle bold(double size, DocumentColor color) { + return style(size, color, DocumentTextDecoration.BOLD); + } + + private static DocumentTextStyle style(double size, DocumentColor color, + DocumentTextDecoration decoration) { + return DocumentTextStyle.builder() + .fontName(FACE) + .size(size) + .color(color) + .decoration(decoration) + .build(); + } + + // ------------------------------------------------------------------ + // Table cells + // ------------------------------------------------------------------ + + /** + * A table's rules are drawn per cell and cover all four of that cell's + * edges. A five-column stroked table therefore draws four internal + * verticals the design does not have, so the table is one column wide and + * each cell carries a composed row of six fixed sub-columns. That leaves + * exactly the topology the design has: an outer box and a rule between + * rows. + */ + static final DocumentTableStyle HEADER_CELL = DocumentTableStyle.builder() + .padding(new DocumentInsets(HEADER_PAD_Y, 0, HEADER_PAD_Y, 0)) + .fillColor(BAND_DARK) + .stroke(DocumentStroke.of(TABLE_BORDER, HAIRLINE)) + .build(); + + static final DocumentTableStyle BODY_CELL = DocumentTableStyle.builder() + .padding(new DocumentInsets(ROW_PAD_Y, 0, ROW_PAD_Y, 0)) + .stroke(DocumentStroke.of(TABLE_RULE, HAIRLINE)) + .build(); +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredText.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredText.java new file mode 100644 index 000000000..f393504af --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredText.java @@ -0,0 +1,75 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import java.math.BigDecimal; +import java.text.NumberFormat; +import java.util.Locale; + +/** + * How the Metered invoice writes its figures. + * + *

      The locale is stated rather than inherited, so the same data renders the + * same sheet on any machine.

      + */ +final class MeteredText { + + /** A metered rate is quoted to four places; an amount to two. */ + private static final int RATE_MAX_DIGITS = 4; + private static final int MONEY_DIGITS = 2; + + private MeteredText() { + } + + /** An amount, grouped and to two places. */ + private static String money(BigDecimal value) { + return decimal(value, MONEY_DIGITS, MONEY_DIGITS); + } + + /** + * A unit price at the precision it is quoted at. + * + *

      Metered rates are fractions of a currency unit — an hour of compute at + * 0.0680 rounds to 0.07 at an amount's two places, which is a different + * price and multiplies out to a different bill. A rate is written at its own + * scale, never at fewer than two places and never at more than four.

      + * + * @param value the rate + * @return the rate as the sheet prints it + */ + private static String rate(BigDecimal value) { + int digits = Math.min(Math.max(value.scale(), MONEY_DIGITS), RATE_MAX_DIGITS); + return decimal(value, digits, digits); + } + + /** An amount behind its currency code, the way every figure on the sheet is written. */ + static String codedMoney(String currencyCode, BigDecimal value) { + return code(currencyCode, money(value)); + } + + /** A rate behind its currency code. */ + static String codedRate(String currencyCode, BigDecimal value) { + return code(currencyCode, rate(value)); + } + + /** A count and the thing it counts, or the count alone when the line names no unit. */ + static String quantityWithUnit(BigDecimal value, String unit) { + BigDecimal stripped = value.stripTrailingZeros(); + String written = stripped.scale() <= 0 + ? stripped.toBigInteger().toString() + : stripped.toPlainString(); + return unit == null || unit.isBlank() ? written : written + " " + unit; + } + + private static String code(String currencyCode, String written) { + return currencyCode == null || currencyCode.isBlank() + ? written + : currencyCode.trim() + " " + written; + } + + private static String decimal(BigDecimal value, int min, int max) { + NumberFormat format = NumberFormat.getNumberInstance(Locale.ENGLISH); + format.setGroupingUsed(true); + format.setMinimumFractionDigits(min); + format.setMaximumFractionDigits(max); + return format.format(value); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredWidgets.java new file mode 100644 index 000000000..a01dac897 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredWidgets.java @@ -0,0 +1,135 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.RowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.SpacerNode; +import com.demcha.compose.document.node.RowVerticalAlign; +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 java.util.function.Consumer; + +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.ICON_TILE; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.ICON_TILE_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.LINE_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.PANEL_BORDER; +import static com.demcha.compose.document.templates.invoice.presets.MeteredStyles.WHITE; + +/** + * The shapes the Metered invoice repeats: a horizontal pair inside a column, a + * label/value pair over a fixed label lane, a mark beside a caption, and the + * bordered tile a service mark sits in. + */ +final class MeteredWidgets { + + private MeteredWidgets() { + } + + /** + * A row wrapped in a layer, so it can sit inside a row cell. + * + *

      A row nested in a row cell is refused by the layout compiler, and + * through a section too — it is the ancestry that matters, not the immediate + * parent. A row wrapped in a LayerStack layer lays out horizontally there. + * Every horizontal pair inside one of this page's three two-column rows goes + * through here; the ones at the top of the flow do not need it.

      + * + * @param parent the section the pair belongs to + * @param name the pair's name, which its holder and layer extend + * @param spec the row itself + */ + static void layeredRow(SectionBuilder parent, String name, Consumer spec) { + SectionBuilder holder = new SectionBuilder(); + holder.name(name + "Holder"); + holder.addRow(name, spec); + DocumentNode node = holder.build(); + parent.addLayerStack(stack -> stack + .name(name + "Layer") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** + * One label/value pair over a fixed label column, so every value in a list + * starts on the same axis. Four lists on this page use it at four widths. + * + * @param parent the section the pair belongs to + * @param name the pair's name + * @param label the label text + * @param value the value text + * @param labelWidth the label lane's width + * @param labelStyle the label's type + * @param valueStyle the value's type + * @param link a target for the value, or {@code null} when it is not + * something a reader can act on + */ + static void labelledRow(SectionBuilder parent, String name, String label, String value, + double labelWidth, + DocumentTextStyle labelStyle, DocumentTextStyle valueStyle, + DocumentLinkOptions link) { + layeredRow(parent, name, row -> row + .columns(DocumentRowColumn.fixed(labelWidth), DocumentRowColumn.auto()) + .addParagraph(p -> p.text(label).textStyle(labelStyle)) + .addParagraph(p -> { + p.text(value).textStyle(valueStyle); + if (link != null) { + p.link(link); + } + })); + } + + /** A mark and a caption on one centre line, with the gap owned by the column. */ + static void iconHeading(SectionBuilder parent, String name, String iconToken, + double iconSize, double gap, String text, + DocumentTextStyle textStyle) { + layeredRow(parent, name, row -> row + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(iconSize + gap), DocumentRowColumn.auto()) + .addSection(name + "Icon", cell -> cell.addSvgIcon(MeteredIcons.icon(iconToken), iconSize)) + .addParagraph(p -> p.name(name + "Label").text(text).textStyle(textStyle))); + } + + /** + * The bordered square a service mark lives in — the tile is laid out, the + * mark is its content. + * + * @param token the mark's token + * @param index the line's index, which names the tile + * @return the tile + */ + static DocumentNode tile(String token, int index) { + ShapeContainerBuilder tile = new ShapeContainerBuilder(); + tile.name("LineIconTile_" + index) + .roundedRect(ICON_TILE, ICON_TILE, ICON_TILE_RADIUS) + .fillColor(WHITE) + .stroke(DocumentStroke.of(PANEL_BORDER, HAIRLINE)) + .center(MeteredIcons.icon(token).node(LINE_ICON)); + return tile.build(); + } + + /** + * The tile's space without the tile, for a line that names no mark. + * + *

      Drawing an empty bordered box would be a mark of its own — the design + * has none — so the lane keeps its width and its height and stays blank, + * which leaves every text lane down the column on the same axis.

      + * + * @param index the line's index, which names the space + * @return a node the size of a tile + */ + static DocumentNode tileSpace(int index) { + return new SpacerNode("LineIconSpace_" + index, ICON_TILE, ICON_TILE, + DocumentInsets.zero(), DocumentInsets.zero()); + } + + /** A section padded to hold a block's body under a hanging mark. */ + static DocumentInsets hangingBody(double iconSize, double gap) { + return new DocumentInsets(0, 0, 0, iconSize + gap); + } +} diff --git a/templates/src/main/resources/templates/invoice/metered/icons/bill-to.svg b/templates/src/main/resources/templates/invoice/metered/icons/bill-to.svg new file mode 100644 index 000000000..78b3cecb4 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/metered/icons/bill-to.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/metered/icons/calendar.svg b/templates/src/main/resources/templates/invoice/metered/icons/calendar.svg new file mode 100644 index 000000000..7610d234a --- /dev/null +++ b/templates/src/main/resources/templates/invoice/metered/icons/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/metered/icons/card.svg b/templates/src/main/resources/templates/invoice/metered/icons/card.svg new file mode 100644 index 000000000..d4b504c64 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/metered/icons/card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/metered/icons/compute.svg b/templates/src/main/resources/templates/invoice/metered/icons/compute.svg new file mode 100644 index 000000000..0c9288aa3 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/metered/icons/compute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/metered/icons/database.svg b/templates/src/main/resources/templates/invoice/metered/icons/database.svg new file mode 100644 index 000000000..ce150f4c9 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/metered/icons/database.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/metered/icons/info.svg b/templates/src/main/resources/templates/invoice/metered/icons/info.svg new file mode 100644 index 000000000..6e89f8dd3 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/metered/icons/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/metered/icons/ship-to.svg b/templates/src/main/resources/templates/invoice/metered/icons/ship-to.svg new file mode 100644 index 000000000..03c9ea081 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/metered/icons/ship-to.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/metered/icons/storage.svg b/templates/src/main/resources/templates/invoice/metered/icons/storage.svg new file mode 100644 index 000000000..5d2940770 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/metered/icons/storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/metered/icons/support.svg b/templates/src/main/resources/templates/invoice/metered/icons/support.svg new file mode 100644 index 000000000..99f6d84f5 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/metered/icons/support.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/metered/icons/transfer.svg b/templates/src/main/resources/templates/invoice/metered/icons/transfer.svg new file mode 100644 index 000000000..980b6eedd --- /dev/null +++ b/templates/src/main/resources/templates/invoice/metered/icons/transfer.svg @@ -0,0 +1 @@ + \ No newline at end of file From a4df7e5f683cbf90f3f5694ee3912be9373d502e Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 15:36:47 +0100 Subject: [PATCH 35/85] test(ci): stop the CodeQL scope guard from being emptied by a rewritten deploy (#646) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CodeQlScopeGuardTest asks whether every module a release publishes is inside the security scan. It read the left-hand side of that comparison out of the publish workflows by matching -f /pom.xml on a line mentioning deploy, and a deploy written any other way left the module out of the inventory entirely. A shorter inventory is an easier comparison, not a failing one, so the guard went green on a scope it was no longer checking. Verified by mutation: with publish-fonts.yml switched to the -pl form and graph-compose-fonts removed from the scan's module list, the suite stayed green while a module published to Maven Central went unscanned. Two checks now key on the absence of a positive signal. A publish workflow that contributes no module to the inventory fails, so a deploy shape the guard cannot read is reported instead of dropped. And publish.yml's deploy steps are held against the order line it validates its own resume against — a second statement of the train that nothing derives from the first — so a step lost from that file is caught by the file itself. PublishedModules gains attribution for this: a flat list cannot tell "this workflow publishes nothing" from "this workflow was not read", because both look like a shorter list. Tests: the two mutations above both go red, and the clean tree is green, 4/4 on the suite. Reactor gate green. --- CHANGELOG.md | 15 ++++ .../documentation/CodeQlScopeGuardTest.java | 71 +++++++++++++++++++ .../documentation/PublishedModules.java | 58 +++++++++++++-- 3 files changed, 140 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef292e58e..a72a35f26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -623,6 +623,21 @@ follow semantic versioning; release dates are ISO 8601. ### Tests +- **The CodeQL scope guard can no longer be emptied by rewriting a deploy command.** + `CodeQlScopeGuardTest` asks whether every module a release publishes is inside the + security scan, and it read the answer's left-hand side out of the publish workflows by + matching `-f /pom.xml` on a line mentioning `deploy`. A deploy written any + other way — `-pl :graph-compose-fonts`, or the same command wrapped across two lines — + simply left that module out of the inventory, and a shorter inventory is an easier + comparison rather than a failing one. Verified by mutation: with `publish-fonts.yml` + switched to the `-pl` form and `graph-compose-fonts` removed from the scan's module + list, the suite stayed green while a module published to Maven Central went unscanned. + Two checks now key on the absence of a positive signal instead — a publish workflow + that contributes no module to the inventory fails, and `publish.yml`'s deploy steps + are held against the `order` line it validates its own resume against, which is a + second statement of the train that nothing derives from the first. Both go red under + the mutation that used to pass. + - **The sidebar CV samples are held to the width of the column they are drawn in.** A contact channel in `ProfessionalSidebar` and `NavySidebar` is one paragraph — the mark and the value share a line — so a value wider than the sidebar's text column diff --git a/core/src/test/java/com/demcha/documentation/CodeQlScopeGuardTest.java b/core/src/test/java/com/demcha/documentation/CodeQlScopeGuardTest.java index 7b587b377..2065bfca9 100644 --- a/core/src/test/java/com/demcha/documentation/CodeQlScopeGuardTest.java +++ b/core/src/test/java/com/demcha/documentation/CodeQlScopeGuardTest.java @@ -97,6 +97,77 @@ void everyDeployedModuleWithSourcesIsScanned() throws IOException { .isEmpty(); } + /** + * The inventory the second test compares against is itself read out of the publish + * workflows, so it can be emptied by editing them — and an emptier inventory is an + * easier comparison, not a failing one. Both halves below key on the absence of a + * positive signal instead: a publish workflow that deploys nothing, and a train + * whose declared modules are not among the steps read from it. + * + *

      Writing a deploy as {@code -pl :graph-compose-fonts} rather than + * {@code -f fonts/pom.xml} is enough to do it, and nothing about that edit looks + * like it touches the scan.

      + */ + @Test + void everyPublishWorkflowContributesToTheInventoryItIsRead() throws IOException { + Map> byWorkflow = PublishedModules.deployedByWorkflow(PROJECT_ROOT); + + assertThat(byWorkflow) + .describedAs("no publish workflow was found at all — they were renamed, and the " + + "inventory the deployed-module test compares against is now empty") + .isNotEmpty(); + + Set silent = new TreeSet<>(); + byWorkflow.forEach((workflow, modules) -> { + if (modules.isEmpty()) { + silent.add(workflow); + } + }); + + assertThat(silent) + .describedAs("a publish workflow whose deploy steps this guard can no longer " + + "read: whatever it ships is now invisible to the deployed-module test, " + + "which will pass without ever asking about it. Either the workflow " + + "stopped deploying — in which case it should stop being a publish " + + "workflow — or its deploy is written some way other than " + + "`-f /pom.xml`, and this guard has to learn that shape before " + + "the edit lands") + .isEmpty(); + } + + /** + * The train {@code publish.yml} declares matches the steps it carries. + * + *

      The workflow states its module set twice and neither statement is derived from + * the other: the {@code order} the resume input is validated against, and the deploy + * steps themselves. A module dropped from the steps — or written in a shape this + * guard cannot read — leaves the two disagreeing, which is the signal that the + * inventory shrank rather than the train.

      + */ + @Test + void theDeployStepsCoverThePublishTrainTheWorkflowDeclares() throws IOException { + List declared = PublishedModules.declaredTrain(PROJECT_ROOT); + List steps = PublishedModules.deployedByWorkflow(PROJECT_ROOT) + .getOrDefault("publish.yml", List.of()); + + assertThat(declared) + .describedAs("publish.yml no longer declares its train as `order=\"...\"` — the " + + "resume validation moved, and with it the second, independent statement " + + "of what a release publishes that this guard holds the steps against") + .isNotEmpty(); + + Set missing = new TreeSet<>(declared); + missing.removeAll(steps); + + assertThat(missing) + .describedAs("publish.yml names these in its train but this guard finds no deploy " + + "step for them. Either the module stopped shipping and belongs out of " + + "the train, or its step is written some way other than " + + "`-f /pom.xml` — in which case the module is deployed, absent " + + "from the inventory, and therefore never checked against the scan") + .isEmpty(); + } + /** * The {@code -pl} selectors of the {@code mvnw} invocation carrying {@code goal}, or * every reactor module when the command carries no {@code -pl} at all — a build diff --git a/core/src/test/java/com/demcha/documentation/PublishedModules.java b/core/src/test/java/com/demcha/documentation/PublishedModules.java index 2871fcf8e..5d7fb0a25 100644 --- a/core/src/test/java/com/demcha/documentation/PublishedModules.java +++ b/core/src/test/java/com/demcha/documentation/PublishedModules.java @@ -33,6 +33,10 @@ private PublishedModules() { private static final Pattern DEPLOY_STEP = Pattern.compile("-f\\s+([\\w-]+)/pom\\.xml"); + /** The {@code order="core render-pdf ..."} line publish.yml validates its resume against. */ + private static final Pattern TRAIN_ORDER = + Pattern.compile("order=\"([^\"]+)\""); + /** * The modules a release actually deploys, read from the publish workflows. * @@ -42,26 +46,72 @@ private PublishedModules() { * comparison, which is precisely the shape that keeps it green.

      */ static List deployed(Path repoRoot) throws IOException { - Path workflows = repoRoot.resolve(".github/workflows"); List deployed = new ArrayList<>(); + deployedByWorkflow(repoRoot).values().forEach(modules -> modules.forEach(module -> { + if (!deployed.contains(module)) { + deployed.add(module); + } + })); + return deployed; + } + + /** + * The modules each publish workflow deploys, keyed by the workflow's file name — + * including the workflows that deploy none. + * + *

      Attribution is what lets a caller tell "this workflow publishes nothing" from + * "this workflow was not read". A flat list cannot: both look like a shorter list, + * and a shorter list is exactly what a guard comparing against it wants to see.

      + * + * @param repoRoot the repository root + * @return every {@code publish*.yml}, mapped to the module directories it deploys + * @throws IOException when a workflow cannot be read + */ + static Map> deployedByWorkflow(Path repoRoot) throws IOException { + Path workflows = repoRoot.resolve(".github/workflows"); + Map> byWorkflow = new LinkedHashMap<>(); try (var files = Files.list(workflows)) { for (Path workflow : files.sorted().toList()) { String name = workflow.getFileName().toString(); if (!name.startsWith("publish") || !name.endsWith(".yml")) { continue; } + List modules = new ArrayList<>(); for (String line : Files.readAllLines(workflow)) { if (!line.contains("deploy")) { continue; } Matcher module = DEPLOY_STEP.matcher(line); - if (module.find() && !deployed.contains(module.group(1))) { - deployed.add(module.group(1)); + if (module.find() && !modules.contains(module.group(1))) { + modules.add(module.group(1)); } } + byWorkflow.put(name, modules); } } - return deployed; + return byWorkflow; + } + + /** + * The publish train {@code publish.yml} declares for itself, in order. + * + *

      The workflow states its module set twice — once as the {@code order} the resume + * input is validated against, and once as the deploy steps themselves. Neither is + * derived from the other, so holding them together catches the step list drifting + * away from the train without anything having to restate it a third time.

      + * + * @param repoRoot the repository root + * @return the module directories the train names, or an empty list when the + * declaration is absent + * @throws IOException when the workflow cannot be read + */ + static List declaredTrain(Path repoRoot) throws IOException { + Path workflow = repoRoot.resolve(".github/workflows/publish.yml"); + if (!Files.isRegularFile(workflow)) { + return List.of(); + } + Matcher order = TRAIN_ORDER.matcher(Files.readString(workflow)); + return order.find() ? List.of(order.group(1).strip().split("\\s+")) : List.of(); } /** The module directories the root reactor builds, in declaration order. */ From 533a65c0a36ad0ffedeb98e8d4ad341395aa02b6 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 16:05:34 +0100 Subject: [PATCH 36/85] feat(templates): let an invoice line carry where it was delivered (#647) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A design that bills the same service in more than one place — the same instance type in two datacentres, the same plan in two jurisdictions — prints where beside what, as its own column next to the service. InvoiceServiceLines.Line had nowhere to put it. servicePeriod is the neighbouring column on such a sheet, so folding the two together collapses two columns the design draws apart, and vatRate is a tax rate that happens to be free. Line now carries region and Columns its caption, both plain strings blank when absent. A design with one location per invoice leaves them alone. All three constructors that predate it are kept explicitly, so existing calls compile and link unchanged and every line built through them still prints no region. Tests: four cases on the compatibility suite — the older Columns and Line constructors leave it blank, a line carries the region it is given, and null normalizes to blank on both records. 21/21. Reactor gate green. --- CHANGELOG.md | 12 ++ knowledge/api/templates.json | 118 +++++++++++++++++- knowledge/api/templates.md | 10 +- .../StructuredInvoiceCompatibilityTest.java | 36 ++++++ .../data/invoice/InvoiceServiceLines.java | 57 ++++++++- 5 files changed, 224 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a72a35f26..fed6b2d85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **An invoice line carries where it was delivered.** A design that bills the same + service in more than one place — the same instance type in two datacentres, the same + plan in two jurisdictions — prints where beside what, as its own column next to the + service. `InvoiceServiceLines.Line` had nowhere to put it: `servicePeriod` is the + neighbouring column on such a sheet, so folding the two together collapses two columns + the design draws apart, and `vatRate` is a tax rate that happens to be free. `Line` now + carries `region` and `Columns` its caption, both plain strings blank when absent, and a + design with one location per invoice leaves them alone. All three constructors that + predate it — the ones before the per-line tax rate, the mark, and the region — are kept + explicitly, so existing calls compile and link unchanged and every line built through + them still prints no region. + - **A supplier carries the legal line it prints under its name.** A footer band that identifies the issuer often has to carry more than a name and an address: a parent-company or regulator disclosure — "X is a subsidiary of Y" — is a statement the diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index 8218f0a28..1058b040f 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -23,9 +23,9 @@ ], "counts": { "types": 218, - "methods": 1224, + "methods": 1228, "constants": 166, - "generated": 647 + "generated": 649 }, "packages": [ { @@ -13963,6 +13963,48 @@ { "type": "String", "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "Columns", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "index" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "servicePeriod" + }, + { + "type": "String", + "name": "quantity" + }, + { + "type": "String", + "name": "unitPrice" + }, + { + "type": "String", + "name": "amount" + }, + { + "type": "String", + "name": "vat" } ] }, @@ -14062,6 +14104,15 @@ "typeParameters": null, "returns": "String", "params": [] + }, + { + "kind": "method", + "name": "region", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] } ] }, @@ -14118,12 +14169,66 @@ "type": "String", "name": null }, + { + "type": "String", + "name": null + }, { "type": "String", "name": null } ] }, + { + "kind": "constructor", + "name": "Line", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "int", + "name": "lineNumber" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "servicePeriod" + }, + { + "type": "BigDecimal", + "name": "quantity" + }, + { + "type": "String", + "name": "unit" + }, + { + "type": "BigDecimal", + "name": "unitPrice" + }, + { + "type": "BigDecimal", + "name": "amount" + }, + { + "type": "String", + "name": "vatRate" + }, + { + "type": "String", + "name": "icon" + } + ] + }, { "kind": "constructor", "name": "Line", @@ -14301,6 +14406,15 @@ "typeParameters": null, "returns": "String", "params": [] + }, + { + "kind": "method", + "name": "region", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] } ] }, diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index a43149d4a..df1a249bb 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 218 · methods: 1224 · constants: 166 · compiler-generated members: 647 +Types: 218 · methods: 1228 · constants: 166 · compiler-generated members: 649 ## com.demcha.compose.document.templates.api @@ -1175,7 +1175,8 @@ Types: 218 · methods: 1224 · constants: 166 · compiler-generated members: 647 - `List lines()` ### InvoiceServiceLines.Columns (record) -- `new Columns(String, String, String, String, String, String, String)` +- `new Columns(String, String, String, String, String, String, String, String)` +- `new Columns(String index, String description, String servicePeriod, String quantity, String unitPrice, String amount, String vat)` - `new Columns(String index, String description, String servicePeriod, String quantity, String unitPrice, String amount)` - `String index()` - `String description()` @@ -1184,9 +1185,11 @@ Types: 218 · methods: 1224 · constants: 166 · compiler-generated members: 647 - `String unitPrice()` - `String amount()` - `String vat()` +- `String region()` ### InvoiceServiceLines.Line (record) -- `new Line(int, String, String, String, BigDecimal, String, BigDecimal, BigDecimal, String, String)` +- `new Line(int, String, String, String, BigDecimal, String, BigDecimal, BigDecimal, String, String, String)` +- `new Line(int lineNumber, String title, String description, String servicePeriod, BigDecimal quantity, String unit, BigDecimal unitPrice, BigDecimal amount, String vatRate, String icon)` - `new Line(int lineNumber, String title, String description, String servicePeriod, BigDecimal quantity, String unit, BigDecimal unitPrice, BigDecimal amount, String vatRate)` - `new Line(int lineNumber, String title, String description, String servicePeriod, BigDecimal quantity, String unit, BigDecimal unitPrice, BigDecimal amount)` - `int lineNumber()` @@ -1199,6 +1202,7 @@ Types: 218 · methods: 1224 · constants: 166 · compiler-generated members: 647 - `BigDecimal amount()` - `String vatRate()` - `String icon()` +- `String region()` ### InvoiceSummaryBlock (record) - `new InvoiceSummaryBlock(String, String, String)` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java index cb11db499..0df48ae90 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java @@ -122,6 +122,42 @@ void aNullMarkNormalizesToBlankLikeTheFieldsBesideIt() { assertThat(line.icon()).isEmpty(); } + @Test + void theColumnsConstructorThatPredatesTheRegionColumnLeavesItBlank() { + InvoiceServiceLines.Columns columns = new InvoiceServiceLines.Columns( + "#", "DESCRIPTION", "PERIOD", "QTY", "UNIT PRICE", "AMOUNT", "VAT"); + assertThat(columns.region()).isEmpty(); + assertThat(columns.vat()).isEqualTo("VAT"); + } + + @Test + void theLineConstructorThatPredatesTheRegionLeavesItBlank() { + InvoiceServiceLines.Line line = new InvoiceServiceLines.Line( + 1, "Compute", "On-demand", "May 2026", BigDecimal.ONE, "Hrs", + BigDecimal.ONE, BigDecimal.ONE, "20%", "compute"); + assertThat(line.region()).isEmpty(); + assertThat(line.icon()).isEqualTo("compute"); + } + + @Test + void aLineCarriesTheRegionItIsGiven() { + InvoiceServiceLines.Line line = new InvoiceServiceLines.Line( + 1, "Compute", "On-demand", "May 2026", BigDecimal.ONE, "Hrs", + BigDecimal.ONE, BigDecimal.ONE, "20%", "compute", "eu-west1"); + assertThat(line.region()).isEqualTo("eu-west1"); + } + + @Test + void aNullRegionNormalizesToBlankLikeTheFieldsBesideIt() { + InvoiceServiceLines.Line line = new InvoiceServiceLines.Line( + 1, "Compute", "On-demand", "May 2026", BigDecimal.ONE, "Hrs", + BigDecimal.ONE, BigDecimal.ONE, "20%", "compute", null); + assertThat(line.region()).isEmpty(); + assertThat(new InvoiceServiceLines.Columns( + "#", "DESCRIPTION", "PERIOD", "QTY", "UNIT PRICE", "AMOUNT", "VAT", null) + .region()).isEmpty(); + } + @Test void theRecipientConstructorThatPredatesTheRegistrationLeavesItBlank() { InvoiceRecipient recipient = new InvoiceRecipient("BILL TO", "Northwind Ltd.", "", diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java index 0a2326bbe..c5d773133 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java @@ -42,6 +42,10 @@ public record InvoiceServiceLines(Columns columns, List lines) { * @param vat label of the tax-rate column, for the * jurisdictions that print the rate per line; * blank leaves the column out + * @param region label of the region column, for the designs that + * bill the same service in more than one location + * and print where beside what; blank leaves the + * column out */ public record Columns( String index, @@ -50,7 +54,8 @@ public record Columns( String quantity, String unitPrice, String amount, - String vat) { + String vat, + String region) { /** * Normalizes optional labels to empty strings. @@ -63,6 +68,24 @@ public record Columns( unitPrice = Objects.requireNonNullElse(unitPrice, ""); amount = Objects.requireNonNullElse(amount, ""); vat = Objects.requireNonNullElse(vat, ""); + region = Objects.requireNonNullElse(region, ""); + } + + /** + * Backward-compatible constructor for callers that predate the region + * column. + * + * @param index label of the line-number column + * @param description label of the description column + * @param servicePeriod label of the service-period column + * @param quantity label of the quantity column + * @param unitPrice label of the unit-price column + * @param amount label of the amount column + * @param vat label of the tax-rate column + */ + public Columns(String index, String description, String servicePeriod, + String quantity, String unitPrice, String amount, String vat) { + this(index, description, servicePeriod, quantity, unitPrice, amount, vat, ""); } /** @@ -104,6 +127,9 @@ public Columns(String index, String description, String servicePeriod, * means something only to the preset that packages * it, and a preset that draws no marks ignores it. * Blank when absent + * @param region where this line was delivered, for the designs that + * bill the same service in more than one location and + * print where beside what; blank when absent */ public record Line( int lineNumber, @@ -115,7 +141,8 @@ public record Line( BigDecimal unitPrice, BigDecimal amount, String vatRate, - String icon) { + String icon, + String region) { /** * Normalizes optional fields. @@ -130,6 +157,28 @@ public record Line( amount = Objects.requireNonNullElse(amount, BigDecimal.ZERO); vatRate = Objects.requireNonNullElse(vatRate, ""); icon = Objects.requireNonNullElse(icon, ""); + region = Objects.requireNonNullElse(region, ""); + } + + /** + * Backward-compatible constructor for callers that predate the region. + * + * @param lineNumber the printed line number + * @param title the service title + * @param description the description under the title + * @param servicePeriod the period this line covers + * @param quantity how much was delivered + * @param unit what the quantity counts + * @param unitPrice the price per unit + * @param amount the line total + * @param vatRate the tax rate printed for this line + * @param icon the mark a preset draws for this line + */ + public Line(int lineNumber, String title, String description, String servicePeriod, + BigDecimal quantity, String unit, BigDecimal unitPrice, + BigDecimal amount, String vatRate, String icon) { + this(lineNumber, title, description, servicePeriod, quantity, unit, + unitPrice, amount, vatRate, icon, ""); } /** @@ -149,7 +198,7 @@ public Line(int lineNumber, String title, String description, String servicePeri BigDecimal quantity, String unit, BigDecimal unitPrice, BigDecimal amount, String vatRate) { this(lineNumber, title, description, servicePeriod, quantity, unit, - unitPrice, amount, vatRate, ""); + unitPrice, amount, vatRate, "", ""); } /** @@ -169,7 +218,7 @@ public Line(int lineNumber, String title, String description, String servicePeri BigDecimal quantity, String unit, BigDecimal unitPrice, BigDecimal amount) { this(lineNumber, title, description, servicePeriod, quantity, unit, - unitPrice, amount, "", ""); + unitPrice, amount, "", "", ""); } } } From 519f58983c04ae1c8d61d5416eabfaeb028dce34 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 17:37:29 +0100 Subject: [PATCH 37/85] feat(templates): add a region-billed platform invoice preset (#648) PlatformInvoice ports the rendered layout of a published standalone template onto the existing StructuredInvoiceData model: a lockup against the title, the supplier split from the invoice's own metadata by a full-height hairline, two addressed parties, a six-column usage table, an outlined bank panel beside the totals and the due-date card, and an identity band closing the sheet. This is the design that needed Line.region. It bills the same service in more than one place and prints where beside what, as its own column between the service and the usage. Rendered against the frozen original with the same data, the document body carries no ink displaced at all: every one of 225 paired words lands within 0.15 pt, and no pixel between the masthead and the closing note differs by more than a rounding step at 150 dpi. What differs is the two lockups, which the preset leaves to the caller, the enumeration, which sets the sheet's own face where the original took the zone default, and one phrase in the note that the design links to a URL it does not print. Two scales, on purpose. The design is 1.50 aspect where A4 is 1.414, so one conversion constant cannot serve both axes: widths and type sizes go through the horizontal one because that is where advance widths have to fit, heights and pitches through the vertical one, and marks through their mean. Pitches are set cap-top to cap-top, so each gap is solved from Barlow's own cap height and ascender rather than from the type size. The table's separators are rows. A table's rules come from each cell's own style and cover all four of its edges, so any stroke that buys a horizontal separator also buys five verticals, which this design has nowhere inside its table. Every cell is stroked at zero width and each separator is one cell spanning every column with a full-width line as its content. A unit price keeps the precision it is quoted at. Usage that names a unit carries two places even on a whole number, because the meter reads to that precision; usage that names none is a count and is written bare. Tests: a smoke test covering the region column, the unknown-mark data error, a line with no mark, an invoice that ships nowhere, both figure rules and pagination; an exact layout snapshot; and a pixel baseline. One fixture feeds all three. Reactor gate green. --- CHANGELOG.md | 43 + knowledge/api/templates.json | 42 +- knowledge/api/templates.md | 6 +- .../presets/PlatformInvoiceFixtures.java | 111 + .../PlatformInvoiceLayoutSnapshotTest.java | 21 + .../presets/PlatformInvoiceSmokeTest.java | 206 + .../PlatformInvoiceVisualParityTest.java | 32 + .../invoice/platform_invoice_layout.json | 5777 +++++++++++++++++ .../platform_invoice-page-0.png | Bin 0 -> 94429 bytes .../invoice/presets/PlatformClosing.java | 199 + .../invoice/presets/PlatformIcons.java | 83 + .../invoice/presets/PlatformInvoice.java | 184 + .../invoice/presets/PlatformLines.java | 215 + .../invoice/presets/PlatformMasthead.java | 221 + .../invoice/presets/PlatformParties.java | 140 + .../invoice/presets/PlatformSettlement.java | 279 + .../invoice/presets/PlatformStyles.java | 335 + .../invoice/presets/PlatformText.java | 79 + .../invoice/presets/PlatformWidgets.java | 115 + .../templates/invoice/platform/icons/bank.svg | 1 + .../invoice/platform/icons/bill-to.svg | 1 + .../invoice/platform/icons/calendar.svg | 1 + .../invoice/platform/icons/compute.svg | 1 + .../invoice/platform/icons/database.svg | 1 + .../invoice/platform/icons/email.svg | 1 + .../invoice/platform/icons/info-outline.svg | 1 + .../templates/invoice/platform/icons/info.svg | 1 + .../invoice/platform/icons/network.svg | 1 + .../invoice/platform/icons/phone.svg | 1 + .../invoice/platform/icons/ship-to.svg | 1 + .../invoice/platform/icons/storage.svg | 1 + .../invoice/platform/icons/support.svg | 1 + .../invoice/platform/icons/website.svg | 1 + 33 files changed, 8097 insertions(+), 5 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/platform_invoice_layout.json create mode 100644 qa/src/test/resources/visual-baselines/invoice-v2-layered/platform_invoice-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoice.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformLines.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformParties.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformSettlement.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformText.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformWidgets.java create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/bank.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/bill-to.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/calendar.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/compute.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/database.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/email.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/info-outline.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/info.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/network.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/phone.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/ship-to.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/storage.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/support.svg create mode 100644 templates/src/main/resources/templates/invoice/platform/icons/website.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index fed6b2d85..5c45e3b00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -168,6 +168,49 @@ follow semantic versioning; release dates are ISO 8601. recognisable; a number is not — dates, reference numbers and amounts all look like one — so only the structured contact field is linked. +- **A region-billed platform invoice preset: `PlatformInvoice`.** A lockup against the + title, the supplier split from the invoice's own metadata by a full-height hairline, + two addressed parties on differently-treated marks, a six-column usage table, an + outlined bank panel beside the totals and the due-date card, and an identity band + closing the sheet. Ships as `invoice.presets.PlatformInvoice` on the existing + `StructuredInvoiceData` model, porting the rendered layout of a published standalone + template: rendered against the frozen original with the same data, the document body + carries **no ink displaced at all** — every one of 225 paired words within 0.15 pt, + and zero pixels differing by more than a rounding step at 150 dpi between the masthead + and the closing note. The regions that differ are the two lockups, which the preset + leaves to the caller, the enumeration, which sets the sheet's own face where the + original took the zone default, and one phrase in the note. +

      + This is the design that needed `Line.region`: it bills the same service in more than + one place and prints where beside what, as its own column between the service and the + usage. +

      + Two scales, on purpose. The design is 1.50 aspect where A4 is 1.414, so one conversion + constant cannot serve both axes: widths, x-offsets and type sizes go through the + horizontal one because that is where advance widths have to fit, heights and pitches + through the vertical one, which is 6.3% tighter, and marks and discs through their + mean — about 3% out in each axis rather than 6% out in one. Writing a vertical + measurement on the horizontal scale would stretch the sheet by 6.3% with nothing + failing, which is what the split exists to make visible. The design's line pitches are + set cap-top to cap-top, so the preset solves each gap from Barlow's own cap height and + ascender rather than from the type size. +

      + The table's separators are rows. A table's rules come from each cell's own style and + cover all four of that cell's edges, so any stroke that buys a horizontal separator + also buys five verticals — which this design has nowhere inside its table. Every cell + is stroked at zero width and each separator is a row of its own: one cell spanning + every column, zero padding, and a full-width line as its content. +

      + A unit price is written at the precision it is quoted at, between two places and four. + Usage that names a unit carries two places even on a whole number, because the meter + reads to that precision; usage that names none is a count of whole things and is + written bare. The currency is stated once per money column with the figures under it + bare, and once more on the grand total, which stands under no caption. Guarded by a + smoke test (including the region column, the unknown-mark data error, a line with no + mark, an invoice that ships nowhere, both figure rules, and pagination bringing the + header back), an exact layout snapshot, and a pixel baseline — all three fed by one + fixture. + - **A metered-usage invoice preset: `MeteredInvoice`.** An orange-accented masthead over its own rule, the supplier split from the invoice's metadata by a hairline, two addressed parties, a service-line table whose marks sit on bordered tiles, a closing diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index 1058b040f..b859b97ed 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,10 +22,10 @@ "graph-compose-testing:sources" ], "counts": { - "types": 218, - "methods": 1228, - "constants": 166, - "generated": 649 + "types": 219, + "methods": 1229, + "constants": 168, + "generated": 651 }, "packages": [ { @@ -21005,6 +21005,40 @@ } ] }, + { + "name": "PlatformInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.PlatformInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "WorkspaceInvoice", "binaryName": "com.demcha.compose.document.templates.invoice.presets.WorkspaceInvoice", diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index df1a249bb..932f7b339 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 218 · methods: 1228 · constants: 166 · compiler-generated members: 649 +Types: 219 · methods: 1229 · constants: 168 · compiler-generated members: 651 ## com.demcha.compose.document.templates.api @@ -1768,6 +1768,10 @@ Types: 218 · methods: 1228 · constants: 166 · compiler-generated members: 649 - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME` +### PlatformInvoice (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + ### WorkspaceInvoice (class) - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceFixtures.java new file mode 100644 index 000000000..74463ad9c --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceFixtures.java @@ -0,0 +1,111 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * The one invoice the Platform preset's tests render. + * + *

      Both gates read it: the exact layout snapshot and the pixel baseline. One + * fixture behind both is what makes the two comparable — a shift the snapshot + * catches is a shift in the same document the baseline was recorded from.

      + * + *

      It bills across two regions on purpose, because that is the column this + * design has and the others do not.

      + */ +final class PlatformInvoiceFixtures { + + private PlatformInvoiceFixtures() { + } + + /** A month of platform usage, billed across two regions to one customer. */ + static StructuredInvoiceData invoice() { + return StructuredInvoiceData.builder() + .brand(new InvoiceBrand(null, "Aurora Cloud", "", "", "", "")) + .supplier(new InvoiceContactBlock( + "Aurora Cloud Inc.", + List.of("500 Harbour Street", "Vancouver, BC V6C 2W2", "Canada"), + "+1 604-555-0180", + "billing@aurora.example", + "aurora.example", + "", "", + "VAT ID:", "CA BN 84213 7755")) + .masthead(new InvoiceMasthead("INVOICE", List.of( + new InvoiceMasthead.Entry("Invoice Number:", "INV-2026-07-31-9F4K2M", true), + new InvoiceMasthead.Entry("Invoice Date:", "31 July 2026", false), + new InvoiceMasthead.Entry("Due Date:", "30 August 2026", false), + new InvoiceMasthead.Entry("Billing Account ID:", "7C2D9E-B1F4A8-3K6M0P", true), + new InvoiceMasthead.Entry("Billing Period:", "01 Jul 2026 – 31 Jul 2026", false), + new InvoiceMasthead.Entry("Payment Terms:", "Net 30 Days", false), + new InvoiceMasthead.Entry("Currency:", "CAD", false)))) + .billTo(new InvoiceRecipient("BILL TO", "Bright Future Ltd.", "", + List.of("45 King Street", "Manchester, M2 4WU", "United Kingdom"), + "", "", "VAT ID:", "GB 987 6543 21")) + .shipTo(new InvoiceRecipient("SHIP TO", "Bright Future Ltd.", "", + List.of("Warehouse 7", "North Industrial Estate", + "Manchester, M2 4WU", "United Kingdom"), + "", "", "", "")) + .serviceLines(new InvoiceServiceLines( + new InvoiceServiceLines.Columns("", "DESCRIPTION", "SERVICE", + "USAGE", "UNIT PRICE", "AMOUNT", "", "REGION"), + lines())) + .totals(new InvoiceTotalsBlock(List.of( + new InvoiceTotalsBlock.Row("Subtotal", new BigDecimal("186.44")), + new InvoiceTotalsBlock.Row("Tax (5%)", new BigDecimal("9.32"))), + "TOTAL DUE", new BigDecimal("195.76"))) + .payment(new InvoicePaymentBlock("PAYMENT INFORMATION", List.of( + new InvoicePaymentBlock.Field("Bank Name:", "Harbourbank of Canada"), + new InvoicePaymentBlock.Field("Account Name:", "Aurora Cloud Inc."), + new InvoicePaymentBlock.Field("Account Number:", "417 802 336"), + new InvoicePaymentBlock.Field("SWIFT Code:", "HBCACAT1"), + new InvoicePaymentBlock.Field("Transit Number:", "00812"), + new InvoicePaymentBlock.Field("Institution Number:", "049"), + new InvoicePaymentBlock.Field("Account Type:", "Business Chequing"), + new InvoicePaymentBlock.Field("Remittance Email:", + "billing@aurora.example")), + "Include your Billing Account ID\non your payment remittance.", + "DUE DATE", "30 August 2026", "", "")) + .notes(new InvoiceNotesBlock( + "Thank you for running on Aurora Cloud.", + List.of("Manage your account at aurora.example" + + " or write to billing@aurora.example."), + "billing@aurora.example", "")) + .currencyCode("CAD") + .build(); + } + + private static List lines() { + List lines = new ArrayList<>(); + lines.add(line(1, "Compute Instances", "N2 Standard VM", "Compute", "ca-central1", + "744", "Hours", "0.0685", "50.96", "compute")); + lines.add(line(2, "Object Storage", "Standard class", "Storage", "ca-central1", + "480", "GB", "0.0210", "10.08", "storage")); + lines.add(line(3, "Managed Database", "PostgreSQL instance", "Database", "ca-central1", + "744", "Hours", "0.1385", "103.04", "database")); + lines.add(line(4, "Egress Traffic", "Data transfer out", "Network", "Global", + "260", "GB", "0.0860", "22.36", "network")); + lines.add(line(5, "Support Plan", "Standard response", "Support", "Global", + "1", "", "0.00", "0.00", "support")); + return lines; + } + + private static InvoiceServiceLines.Line line(int number, String title, String description, + String service, String region, String quantity, + String unit, String unitPrice, String amount, + String icon) { + return new InvoiceServiceLines.Line(number, title, description, service, + new BigDecimal(quantity), unit, new BigDecimal(unitPrice), + new BigDecimal(amount), "", icon, region); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceLayoutSnapshotTest.java new file mode 100644 index 000000000..f039c73b2 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceLayoutSnapshotTest.java @@ -0,0 +1,21 @@ +package com.demcha.compose.document.templates.invoice.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; + +class PlatformInvoiceLayoutSnapshotTest { + + @Test + void theInvoiceMatchesItsLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + PlatformInvoice.create().compose(session, PlatformInvoiceFixtures.invoice()); + assertThat(session.layoutSnapshot().totalPages()).as("total pages").isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "platform_invoice_layout", "invoice"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceSmokeTest.java new file mode 100644 index 000000000..cbf409af2 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceSmokeTest.java @@ -0,0 +1,206 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +class PlatformInvoiceSmokeTest { + + // -- what the sheet says ------------------------------------------- + + @Test + void theSheetCarriesTheIssuerTheCustomerAndEveryLine() throws Exception { + String text = textOf(render(PlatformInvoiceFixtures.invoice())); + assertThat(text) + .contains("Aurora Cloud Inc.") + .contains("Bright Future Ltd.") + .contains("Compute Instances") + .contains("Managed Database") + .contains("Support Plan") + .contains("TOTAL DUE"); + } + + @Test + void aLineStatesWhereItWasDelivered() throws Exception { + String text = textOf(render(PlatformInvoiceFixtures.invoice())); + assertThat(text).contains("REGION").contains("ca-central1").contains("Global"); + } + + @Test + void aRateKeepsThePrecisionItIsQuotedAtAndAnAmountDoesNot() throws Exception { + String text = textOf(render(PlatformInvoiceFixtures.invoice())); + // 0.0685 rounded to an amount's two places is 0.07 — a different price + // that multiplies out to a different bill. + assertThat(text).contains("0.0685").contains("0.0210").contains("0.1385"); + // Amounts stay at two. + assertThat(text).contains("103.04").contains("22.36"); + } + + @Test + void usageWithAUnitIsAMeasurementAndUsageWithoutOneIsACount() throws Exception { + String text = textOf(render(PlatformInvoiceFixtures.invoice())); + // The meter reads to two places, so a whole number keeps them. + assertThat(text).contains("744.00").contains("480.00").contains("260.00"); + // The support line counts one plan and names no unit, so it stays bare. + assertThat(text).doesNotContain("1.00"); + } + + @Test + void theCurrencyIsStatedOnceInEachMoneyColumnAndOnceOnTheTotal() throws Exception { + String text = textOf(render(PlatformInvoiceFixtures.invoice())); + assertThat(text).contains("UNIT PRICE (CAD)").contains("AMOUNT (CAD)"); + // The grand total stands under no caption, so it names its own currency. + assertThat(text).contains("CAD 195.76"); + // The summed rows sit under a column that already stated it. + assertThat(text).contains("186.44").doesNotContain("CAD 186.44"); + } + + // -- what a reader can act on -------------------------------------- + + @Test + void everyAddressTheSheetPrintsIsReachable() throws Exception { + List targets = linkTargets(render(PlatformInvoiceFixtures.invoice())); + assertThat(targets) + .contains("mailto:billing@aurora.example") + // A site printed without a scheme still needs one to open. + .contains("https://aurora.example") + .contains("tel:+16045550180"); + } + + // -- what the document chooses, and what it may not ---------------- + + @Test + void aLineThatNamesNoMarkStillRenders() throws Exception { + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + PlatformInvoiceFixtures.invoice().serviceLines().columns(), + List.of(new InvoiceServiceLines.Line(1, "Compute Instances", "N2 Standard VM", + "Compute", new BigDecimal("744"), "Hours", + new BigDecimal("0.0685"), new BigDecimal("50.96"), "", "", + "ca-central1")))); + assertThat(textOf(render(data))).contains("Compute Instances"); + } + + @Test + void anUnknownMarkIsReportedAsADataErrorNamingTheSet() { + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + PlatformInvoiceFixtures.invoice().serviceLines().columns(), + List.of(new InvoiceServiceLines.Line(1, "Compute Instances", "N2 Standard VM", + "Compute", new BigDecimal("744"), "Hours", + new BigDecimal("0.0685"), new BigDecimal("50.96"), "", "rocket", + "ca-central1")))); + assertThatThrownBy(() -> render(data)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("rocket") + .hasMessageContaining("compute"); + } + + @Test + void anInvoiceThatShipsNowhereLeavesTheColumnEmptyRatherThanFailing() throws Exception { + StructuredInvoiceData base = PlatformInvoiceFixtures.invoice(); + StructuredInvoiceData data = StructuredInvoiceData.builder() + .brand(base.brand()).supplier(base.supplier()).masthead(base.masthead()) + .billTo(base.billTo()) + .serviceLines(base.serviceLines()).totals(base.totals()) + .payment(base.payment()).notes(base.notes()) + .currencyCode(base.currencyCode()).build(); + String text = textOf(render(data)); + assertThat(text).contains("BILL TO").doesNotContain("SHIP TO"); + } + + // -- how it flows --------------------------------------------------- + + @Test + void theDesignsOwnLineCountIsOneSheet() throws Exception { + assertThat(pagesOf(PlatformInvoiceFixtures.invoice())).isEqualTo(1); + } + + @Test + void enoughLinesPaginateAndTheHeaderComesBackWithThem() throws Exception { + List many = new ArrayList<>(); + for (int i = 1; i <= 40; i++) { + many.add(new InvoiceServiceLines.Line(i, "Compute Instances " + i, "N2 Standard VM", + "Compute", new BigDecimal("744"), "Hours", new BigDecimal("0.0685"), + new BigDecimal("50.96"), "", "compute", "ca-central1")); + } + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + PlatformInvoiceFixtures.invoice().serviceLines().columns(), many)); + assertThat(pagesOf(data)).isGreaterThan(1); + + String text = textOf(render(data)); + // The caps header is repeated, so it appears once per page the table reaches. + assertThat(text.split("REGION", -1).length - 1).isGreaterThan(1); + } + + // -- helpers --------------------------------------------------------- + + private static byte[] render(StructuredInvoiceData data) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + PlatformInvoice.create().compose(session, data); + 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); + } + } + + private static int pagesOf(StructuredInvoiceData data) throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + PlatformInvoice.create().compose(session, data); + return session.layoutSnapshot().totalPages(); + } + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + private static StructuredInvoiceData withLines(InvoiceServiceLines lines) { + StructuredInvoiceData base = PlatformInvoiceFixtures.invoice(); + return StructuredInvoiceData.builder() + .brand(base.brand()) + .supplier(base.supplier()) + .masthead(base.masthead()) + .billTo(base.billTo()) + .shipTo(base.shipTo()) + .serviceLines(lines) + .totals(base.totals()) + .payment(base.payment()) + .notes(base.notes()) + .currencyCode(base.currencyCode()) + .build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceVisualParityTest.java new file mode 100644 index 000000000..c3beec57c --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoiceVisualParityTest.java @@ -0,0 +1,32 @@ +package com.demcha.compose.document.templates.invoice.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; + +class PlatformInvoiceVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "invoice-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()) { + PlatformInvoice.create().compose(document, PlatformInvoiceFixtures.invoice()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("platform_invoice", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/platform_invoice_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/platform_invoice_layout.json new file mode 100644 index 000000000..3e0f7b796 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/platform_invoice_layout.json @@ -0,0 +1,5777 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 544.119, + "innerHeight" : 814.941, + "margin" : { + "top" : 14.948, + "right" : 25.578, + "bottom" : 12.0, + "left" : 25.578 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "PlatformInvoice[0]", + "entityName" : "PlatformInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 25.578, + "computedY" : 14.039, + "placementX" : 25.578, + "placementY" : 14.039, + "placementWidth" : 544.119, + "placementHeight" : 812.902, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.119, + "contentHeight" : 812.902, + "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" : "PlatformInvoice[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 25.578, + "computedY" : 788.076, + "placementX" : 25.578, + "placementY" : 788.076, + "placementWidth" : 544.119, + "placementHeight" : 38.866, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.119, + "contentHeight" : 38.866, + "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" : "PlatformInvoice[0]/Masthead[0]/BrandLockup[0]", + "entityName" : "BrandLockup", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.578, + "computedY" : 802.924, + "placementX" : 25.578, + "placementY" : 802.924, + "placementWidth" : 76.894, + "placementHeight" : 24.017, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.894, + "contentHeight" : 24.017, + "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" : "PlatformInvoice[0]/Masthead[0]/BrandLockup[0]/BrandWordmark[0]", + "entityName" : "BrandWordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Masthead[0]/BrandLockup[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 25.578, + "computedY" : 802.924, + "placementX" : 25.578, + "placementY" : 802.924, + "placementWidth" : 76.894, + "placementHeight" : 15.945, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.894, + "contentHeight" : 15.945, + "margin" : { + "top" : 8.072, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/Masthead[0]/InvoiceTitle[1]", + "entityName" : "InvoiceTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 195.325, + "computedY" : 788.076, + "placementX" : 195.325, + "placementY" : 788.076, + "placementWidth" : 374.373, + "placementHeight" : 38.866, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 374.373, + "contentHeight" : 38.866, + "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" : "PlatformInvoice[0]/IdentityRow[1]", + "entityName" : "IdentityRow", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 25.578, + "computedY" : 632.115, + "placementX" : 25.578, + "placementY" : 632.115, + "placementWidth" : 544.119, + "placementHeight" : 139.767, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.119, + "contentHeight" : 139.767, + "margin" : { + "top" : 16.194, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]", + "entityName" : "SupplierColumn", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.578, + "computedY" : 635.055, + "placementX" : 25.578, + "placementY" : 635.055, + "placementWidth" : 127.15, + "placementHeight" : 136.827, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 127.15, + "contentHeight" : 136.827, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 3.488 + } + }, { + "path" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierName[0]", + "entityName" : "SupplierName", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 29.066, + "computedY" : 755.937, + "placementX" : 29.066, + "placementY" : 755.937, + "placementWidth" : 101.037, + "placementHeight" : 15.945, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 101.037, + "contentHeight" : 15.945, + "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" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierAddress[1]", + "entityName" : "SupplierAddress", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 29.066, + "computedY" : 711.79, + "placementX" : 29.066, + "placementY" : 711.79, + "placementWidth" : 103.353, + "placementHeight" : 38.268, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.353, + "contentHeight" : 38.268, + "margin" : { + "top" : 5.88, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierAddress[1]/SupplierAddress_0[0]", + "entityName" : "SupplierAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierAddress[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 29.066, + "computedY" : 738.099, + "placementX" : 29.066, + "placementY" : 738.099, + "placementWidth" : 82.774, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 82.774, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierAddress[1]/SupplierAddress_1[1]", + "entityName" : "SupplierAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierAddress[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 29.066, + "computedY" : 724.944, + "placementX" : 29.066, + "placementY" : 724.944, + "placementWidth" : 103.353, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.353, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierAddress[1]/SupplierAddress_2[2]", + "entityName" : "SupplierAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierAddress[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 29.066, + "computedY" : 711.79, + "placementX" : 29.066, + "placementY" : 711.79, + "placementWidth" : 32.139, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.139, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierContact[2]", + "entityName" : "SupplierContact", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 29.066, + "computedY" : 655.883, + "placementX" : 29.066, + "placementY" : 655.883, + "placementWidth" : 123.663, + "placementHeight" : 42.653, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.663, + "contentHeight" : 42.653, + "margin" : { + "top" : 13.254, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierContact[2]/SupplierContactWebsite[0]", + "entityName" : "SupplierContactWebsite", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierContact[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 29.066, + "computedY" : 686.577, + "placementX" : 29.066, + "placementY" : 686.577, + "placementWidth" : 89.61, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 89.61, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierContact[2]/SupplierContactEmail[1]", + "entityName" : "SupplierContactEmail", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierContact[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 29.066, + "computedY" : 671.23, + "placementX" : 29.066, + "placementY" : 671.23, + "placementWidth" : 123.663, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.663, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierContact[2]/SupplierContactPhone[2]", + "entityName" : "SupplierContactPhone", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierContact[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 29.066, + "computedY" : 655.883, + "placementX" : 29.066, + "placementY" : 655.883, + "placementWidth" : 92.002, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.002, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]/SupplierTaxId[3]", + "entityName" : "SupplierTaxId", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/SupplierColumn[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 29.066, + "computedY" : 635.055, + "placementX" : 29.066, + "placementY" : 635.055, + "placementWidth" : 119.039, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.039, + "contentHeight" : 11.959, + "margin" : { + "top" : 8.869, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/IdentityRow[1]/IdentityColumnDivider[1]", + "entityName" : "IdentityColumnDivider", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 294.731, + "computedY" : 632.115, + "placementX" : 294.731, + "placementY" : 632.115, + "placementWidth" : 0.581, + "placementHeight" : 139.767, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.581, + "contentHeight" : 139.767, + "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" : "PlatformInvoice[0]/IdentityRow[1]/IdentityColumnDivider[1]/IdentityColumnDivider[0]", + "entityName" : "IdentityColumnDivider", + "entityKind" : "LineNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/IdentityColumnDivider[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 294.731, + "computedY" : 632.115, + "placementX" : 294.731, + "placementY" : 632.115, + "placementWidth" : 1.0, + "placementHeight" : 139.767, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 139.767, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]", + "entityName" : "MetaColumn", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 295.313, + "computedY" : 638.332, + "placementX" : 295.313, + "placementY" : 638.332, + "placementWidth" : 274.385, + "placementHeight" : 130.908, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 274.385, + "contentHeight" : 130.908, + "margin" : { + "top" : 2.641, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 37.786 + } + }, { + "path" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_0Layer[0]", + "entityName" : "MetaRow_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 333.099, + "computedY" : 757.282, + "placementX" : 333.099, + "placementY" : 757.282, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]", + "entityName" : "MetaRow_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_0Layer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 333.099, + "computedY" : 757.282, + "placementX" : 333.099, + "placementY" : 757.282, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]/MetaRow_0[0]", + "entityName" : "MetaRow_0", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 333.099, + "computedY" : 757.282, + "placementX" : 333.099, + "placementY" : 757.282, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]/MetaRow_0[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]/MetaRow_0[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 333.099, + "computedY" : 757.282, + "placementX" : 333.099, + "placementY" : 757.282, + "placementWidth" : 71.224, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.224, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]/MetaRow_0[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]/MetaRow_0[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 434.83, + "computedY" : 757.282, + "placementX" : 434.83, + "placementY" : 757.282, + "placementWidth" : 106.203, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.203, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_1Layer[1]", + "entityName" : "MetaRow_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 333.099, + "computedY" : 737.457, + "placementX" : 333.099, + "placementY" : 737.457, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]", + "entityName" : "MetaRow_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_1Layer[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 333.099, + "computedY" : 737.457, + "placementX" : 333.099, + "placementY" : 737.457, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]/MetaRow_1[0]", + "entityName" : "MetaRow_1", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 333.099, + "computedY" : 737.457, + "placementX" : 333.099, + "placementY" : 737.457, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]/MetaRow_1[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]/MetaRow_1[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 333.099, + "computedY" : 737.457, + "placementX" : 333.099, + "placementY" : 737.457, + "placementWidth" : 56.714, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.714, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]/MetaRow_1[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]/MetaRow_1[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 434.83, + "computedY" : 737.457, + "placementX" : 434.83, + "placementY" : 737.457, + "placementWidth" : 52.03, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.03, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_2Layer[2]", + "entityName" : "MetaRow_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 333.099, + "computedY" : 717.632, + "placementX" : 333.099, + "placementY" : 717.632, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]", + "entityName" : "MetaRow_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_2Layer[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 333.099, + "computedY" : 717.632, + "placementX" : 333.099, + "placementY" : 717.632, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]/MetaRow_2[0]", + "entityName" : "MetaRow_2", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 333.099, + "computedY" : 717.632, + "placementX" : 333.099, + "placementY" : 717.632, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]/MetaRow_2[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]/MetaRow_2[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 333.099, + "computedY" : 717.632, + "placementX" : 333.099, + "placementY" : 717.632, + "placementWidth" : 42.374, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.374, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]/MetaRow_2[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]/MetaRow_2[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 434.83, + "computedY" : 717.632, + "placementX" : 434.83, + "placementY" : 717.632, + "placementWidth" : 66.68, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 66.68, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_3Layer[3]", + "entityName" : "MetaRow_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 333.099, + "computedY" : 697.807, + "placementX" : 333.099, + "placementY" : 697.807, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]", + "entityName" : "MetaRow_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_3Layer[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 333.099, + "computedY" : 697.807, + "placementX" : 333.099, + "placementY" : 697.807, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]/MetaRow_3[0]", + "entityName" : "MetaRow_3", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 333.099, + "computedY" : 697.807, + "placementX" : 333.099, + "placementY" : 697.807, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]/MetaRow_3[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]/MetaRow_3[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 333.099, + "computedY" : 697.807, + "placementX" : 333.099, + "placementY" : 697.807, + "placementWidth" : 78.907, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.907, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]/MetaRow_3[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]/MetaRow_3[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 434.83, + "computedY" : 697.807, + "placementX" : 434.83, + "placementY" : 697.807, + "placementWidth" : 108.475, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.475, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_4Layer[4]", + "entityName" : "MetaRow_4Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 333.099, + "computedY" : 677.982, + "placementX" : 333.099, + "placementY" : 677.982, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]", + "entityName" : "MetaRow_4Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_4Layer[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 333.099, + "computedY" : 677.982, + "placementX" : 333.099, + "placementY" : 677.982, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]/MetaRow_4[0]", + "entityName" : "MetaRow_4", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 333.099, + "computedY" : 677.982, + "placementX" : 333.099, + "placementY" : 677.982, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]/MetaRow_4[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]/MetaRow_4[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 333.099, + "computedY" : 677.982, + "placementX" : 333.099, + "placementY" : 677.982, + "placementWidth" : 60.242, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.242, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]/MetaRow_4[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]/MetaRow_4[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 434.83, + "computedY" : 677.982, + "placementX" : 434.83, + "placementY" : 677.982, + "placementWidth" : 103.841, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.841, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_5Layer[5]", + "entityName" : "MetaRow_5Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 333.099, + "computedY" : 658.157, + "placementX" : 333.099, + "placementY" : 658.157, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]", + "entityName" : "MetaRow_5Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_5Layer[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 333.099, + "computedY" : 658.157, + "placementX" : 333.099, + "placementY" : 658.157, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]/MetaRow_5[0]", + "entityName" : "MetaRow_5", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 333.099, + "computedY" : 658.157, + "placementX" : 333.099, + "placementY" : 658.157, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]/MetaRow_5[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]/MetaRow_5[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 333.099, + "computedY" : 658.157, + "placementX" : 333.099, + "placementY" : 658.157, + "placementWidth" : 71.154, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.154, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]/MetaRow_5[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]/MetaRow_5[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 434.83, + "computedY" : 658.157, + "placementX" : 434.83, + "placementY" : 658.157, + "placementWidth" : 51.063, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.063, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_6Layer[6]", + "entityName" : "MetaRow_6Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 333.099, + "computedY" : 638.332, + "placementX" : 333.099, + "placementY" : 638.332, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_6Layer[6]/MetaRow_6Holder[0]", + "entityName" : "MetaRow_6Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_6Layer[6]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 333.099, + "computedY" : 638.332, + "placementX" : 333.099, + "placementY" : 638.332, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_6Layer[6]/MetaRow_6Holder[0]/MetaRow_6[0]", + "entityName" : "MetaRow_6", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_6Layer[6]/MetaRow_6Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 333.099, + "computedY" : 638.332, + "placementX" : 333.099, + "placementY" : 638.332, + "placementWidth" : 236.599, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.599, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_6Layer[6]/MetaRow_6Holder[0]/MetaRow_6[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_6Layer[6]/MetaRow_6Holder[0]/MetaRow_6[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 333.099, + "computedY" : 638.332, + "placementX" : 333.099, + "placementY" : 638.332, + "placementWidth" : 42.483, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.483, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_6Layer[6]/MetaRow_6Holder[0]/MetaRow_6[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/IdentityRow[1]/MetaColumn[2]/MetaRow_6Layer[6]/MetaRow_6Holder[0]/MetaRow_6[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 434.83, + "computedY" : 638.332, + "placementX" : 434.83, + "placementY" : 638.332, + "placementWidth" : 18.257, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 18.257, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/IdentityRule[2]", + "entityName" : "IdentityRule", + "entityKind" : "LineNode", + "parentPath" : "PlatformInvoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 28.485, + "computedY" : 617.412, + "placementX" : 28.485, + "placementY" : 617.412, + "placementWidth" : 537.143, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 537.143, + "contentHeight" : 1.0, + "margin" : { + "top" : 13.703, + "right" : 0.0, + "bottom" : 0.0, + "left" : 2.907 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]", + "entityName" : "PartiesRow", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 25.578, + "computedY" : 500.666, + "placementX" : 25.578, + "placementY" : 500.666, + "placementWidth" : 544.119, + "placementHeight" : 104.14, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.119, + "contentHeight" : 104.14, + "margin" : { + "top" : 12.606, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]", + "entityName" : "BillToColumn", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.578, + "computedY" : 506.167, + "placementX" : 25.578, + "placementY" : 506.167, + "placementWidth" : 269.153, + "placementHeight" : 98.639, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 269.153, + "contentHeight" : 98.639, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 2.907 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]", + "entityName" : "BillToLabelLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 28.485, + "computedY" : 586.17, + "placementX" : 28.485, + "placementY" : 586.17, + "placementWidth" : 266.246, + "placementHeight" : 18.636, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 266.246, + "contentHeight" : 18.636, + "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" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]", + "entityName" : "BillToLabelHolder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 28.485, + "computedY" : 586.17, + "placementX" : 28.485, + "placementY" : 586.17, + "placementWidth" : 266.246, + "placementHeight" : 18.636, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 266.246, + "contentHeight" : 18.636, + "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" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]", + "entityName" : "BillToLabel", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 28.485, + "computedY" : 586.17, + "placementX" : 28.485, + "placementY" : 586.17, + "placementWidth" : 266.246, + "placementHeight" : 18.636, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 266.246, + "contentHeight" : 18.636, + "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" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToDisc[0]", + "entityName" : "BillToDisc", + "entityKind" : "ShapeContainerNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 28.485, + "computedY" : 586.17, + "placementX" : 28.485, + "placementY" : 586.17, + "placementWidth" : 18.636, + "placementHeight" : 18.636, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 18.636, + "contentHeight" : 18.636, + "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" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToDisc[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToDisc[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 32.72, + "computedY" : 590.406, + "placementX" : 32.72, + "placementY" : 590.406, + "placementWidth" : 10.165, + "placementHeight" : 10.165, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.165, + "contentHeight" : 10.165, + "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" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToDisc[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToDisc[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 32.72, + "computedY" : 590.406, + "placementX" : 32.72, + "placementY" : 590.406, + "placementWidth" : 10.165, + "placementHeight" : 10.165, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.165, + "contentHeight" : 10.165, + "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" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToLabelText[1]", + "entityName" : "BillToLabelText", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 61.039, + "computedY" : 589.509, + "placementX" : 61.039, + "placementY" : 589.509, + "placementWidth" : 34.212, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.212, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]", + "entityName" : "BillToBody", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 28.485, + "computedY" : 506.167, + "placementX" : 28.485, + "placementY" : 506.167, + "placementWidth" : 143.341, + "placementHeight" : 80.003, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 143.341, + "contentHeight" : 80.003, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 32.554 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]/BillToName[0]", + "entityName" : "BillToName", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 61.039, + "computedY" : 572.069, + "placementX" : 61.039, + "placementY" : 572.069, + "placementWidth" : 85.159, + "placementHeight" : 12.955, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.159, + "contentHeight" : 12.955, + "margin" : { + "top" : 1.146, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]", + "entityName" : "BillToAddress", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 61.039, + "computedY" : 528.639, + "placementX" : 61.039, + "placementY" : 528.639, + "placementWidth" : 90.597, + "placementHeight" : 39.693, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.597, + "contentHeight" : 39.693, + "margin" : { + "top" : 3.737, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]/BillToAddress_0[0]", + "entityName" : "BillToAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 61.039, + "computedY" : 556.373, + "placementX" : 61.039, + "placementY" : 556.373, + "placementWidth" : 61.258, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.258, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]/BillToAddress_1[1]", + "entityName" : "BillToAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 61.039, + "computedY" : 542.506, + "placementX" : 61.039, + "placementY" : 542.506, + "placementWidth" : 90.597, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.597, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]/BillToAddress_2[2]", + "entityName" : "BillToAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 61.039, + "computedY" : 528.639, + "placementX" : 61.039, + "placementY" : 528.639, + "placementWidth" : 69.191, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.191, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]/BillToRegistration[2]", + "entityName" : "BillToRegistration", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/BillToColumn[0]/BillToBody[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 61.039, + "computedY" : 506.167, + "placementX" : 61.039, + "placementY" : 506.167, + "placementWidth" : 110.787, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.787, + "contentHeight" : 11.959, + "margin" : { + "top" : 10.514, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/PartyColumnDivider[1]", + "entityName" : "PartyColumnDivider", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 294.731, + "computedY" : 500.666, + "placementX" : 294.731, + "placementY" : 500.666, + "placementWidth" : 0.581, + "placementHeight" : 104.14, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.581, + "contentHeight" : 104.14, + "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" : "PlatformInvoice[0]/PartiesRow[3]/PartyColumnDivider[1]/PartyColumnDivider[0]", + "entityName" : "PartyColumnDivider", + "entityKind" : "LineNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/PartyColumnDivider[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 294.731, + "computedY" : 500.666, + "placementX" : 294.731, + "placementY" : 500.666, + "placementWidth" : 1.0, + "placementHeight" : 101.399, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 101.399, + "margin" : { + "top" : 2.741, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]", + "entityName" : "ShipToColumn", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 295.313, + "computedY" : 517.031, + "placementX" : 295.313, + "placementY" : 517.031, + "placementWidth" : 274.385, + "placementHeight" : 87.775, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 274.385, + "contentHeight" : 87.775, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 18.602 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]", + "entityName" : "ShipToLabelLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 313.915, + "computedY" : 588.429, + "placementX" : 313.915, + "placementY" : 588.429, + "placementWidth" : 255.782, + "placementHeight" : 16.377, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.782, + "contentHeight" : 16.377, + "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" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]", + "entityName" : "ShipToLabelHolder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 313.915, + "computedY" : 588.429, + "placementX" : 313.915, + "placementY" : 588.429, + "placementWidth" : 255.782, + "placementHeight" : 16.377, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.782, + "contentHeight" : 16.377, + "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" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]", + "entityName" : "ShipToLabel", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 313.915, + "computedY" : 588.429, + "placementX" : 313.915, + "placementY" : 588.429, + "placementWidth" : 255.782, + "placementHeight" : 16.377, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.782, + "contentHeight" : 16.377, + "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" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 313.915, + "computedY" : 588.429, + "placementX" : 313.915, + "placementY" : 588.429, + "placementWidth" : 16.377, + "placementHeight" : 16.377, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.377, + "contentHeight" : 16.377, + "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" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 313.915, + "computedY" : 588.429, + "placementX" : 313.915, + "placementY" : 588.429, + "placementWidth" : 16.377, + "placementHeight" : 16.377, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.377, + "contentHeight" : 16.377, + "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" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]/ShipToLabelText[1]", + "entityName" : "ShipToLabelText", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 344.725, + "computedY" : 590.638, + "placementX" : 344.725, + "placementY" : 590.638, + "placementWidth" : 34.77, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.77, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]", + "entityName" : "ShipToBody", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 313.915, + "computedY" : 517.031, + "placementX" : 313.915, + "placementY" : 517.031, + "placementWidth" : 128.782, + "placementHeight" : 71.398, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 128.782, + "contentHeight" : 71.398, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 30.81 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]/ShipToName[0]", + "entityName" : "ShipToName", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 344.725, + "computedY" : 574.328, + "placementX" : 344.725, + "placementY" : 574.328, + "placementWidth" : 85.159, + "placementHeight" : 12.955, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.159, + "contentHeight" : 12.955, + "margin" : { + "top" : 1.146, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]", + "entityName" : "ShipToAddress", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 344.725, + "computedY" : 517.031, + "placementX" : 344.725, + "placementY" : 517.031, + "placementWidth" : 97.971, + "placementHeight" : 53.56, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.971, + "contentHeight" : 53.56, + "margin" : { + "top" : 3.737, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]/ShipToAddress_0[0]", + "entityName" : "ShipToAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 344.725, + "computedY" : 558.632, + "placementX" : 344.725, + "placementY" : 558.632, + "placementWidth" : 55.737, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 55.737, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]/ShipToAddress_1[1]", + "entityName" : "ShipToAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 344.725, + "computedY" : 544.765, + "placementX" : 344.725, + "placementY" : 544.765, + "placementWidth" : 97.971, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.971, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]/ShipToAddress_2[2]", + "entityName" : "ShipToAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 344.725, + "computedY" : 530.898, + "placementX" : 344.725, + "placementY" : 530.898, + "placementWidth" : 90.597, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.597, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]/ShipToAddress_3[3]", + "entityName" : "ShipToAddress_3", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/PartiesRow[3]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 344.725, + "computedY" : 517.031, + "placementX" : 344.725, + "placementY" : 517.031, + "placementWidth" : 69.191, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.191, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/LineItems[4]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "PlatformInvoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 25.578, + "computedY" : 274.395, + "placementX" : 25.578, + "placementY" : 274.395, + "placementWidth" : 544.119, + "placementHeight" : 208.732, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.119, + "contentHeight" : 208.732, + "margin" : { + "top" : 17.539, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]", + "entityName" : "Settlement", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 25.578, + "computedY" : 99.7, + "placementX" : 25.578, + "placementY" : 99.7, + "placementWidth" : 544.119, + "placementHeight" : 168.117, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.119, + "contentHeight" : 168.117, + "margin" : { + "top" : 6.577, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]", + "entityName" : "PaymentPanel", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.578, + "computedY" : 99.7, + "placementX" : 25.578, + "placementY" : 99.7, + "placementWidth" : 241.249, + "placementHeight" : 168.117, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 241.249, + "contentHeight" : 168.117, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]", + "entityName" : "PaymentHeadingLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 25.578, + "computedY" : 244.398, + "placementX" : 25.578, + "placementY" : 244.398, + "placementWidth" : 241.249, + "placementHeight" : 23.419, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 241.249, + "contentHeight" : 23.419, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]", + "entityName" : "PaymentHeadingHolder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 25.578, + "computedY" : 244.398, + "placementX" : 25.578, + "placementY" : 244.398, + "placementWidth" : 241.249, + "placementHeight" : 23.419, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 241.249, + "contentHeight" : 23.419, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]", + "entityName" : "PaymentHeading", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 25.578, + "computedY" : 244.398, + "placementX" : 25.578, + "placementY" : 244.398, + "placementWidth" : 241.249, + "placementHeight" : 23.419, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 241.249, + "contentHeight" : 23.419, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 9.866, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.952 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 39.53, + "computedY" : 244.398, + "placementX" : 39.53, + "placementY" : 244.398, + "placementWidth" : 13.553, + "placementHeight" : 13.553, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.553, + "contentHeight" : 13.553, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 39.53, + "computedY" : 244.398, + "placementX" : 39.53, + "placementY" : 244.398, + "placementWidth" : 13.553, + "placementHeight" : 13.553, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.553, + "contentHeight" : 13.553, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/PaymentHeadingText[1]", + "entityName" : "PaymentHeadingText", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 68.596, + "computedY" : 245.196, + "placementX" : 68.596, + "placementY" : 245.196, + "placementWidth" : 108.395, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.395, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]", + "entityName" : "PaymentRows", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 25.578, + "computedY" : 145.097, + "placementX" : 25.578, + "placementY" : 145.097, + "placementWidth" : 241.249, + "placementHeight" : 94.219, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 241.249, + "contentHeight" : 94.219, + "margin" : { + "top" : 5.082, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 13.952, + "bottom" : 0.0, + "left" : 14.533 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]", + "entityName" : "PaymentRow_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 40.111, + "computedY" : 228.354, + "placementX" : 40.111, + "placementY" : 228.354, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]", + "entityName" : "PaymentRow_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 40.111, + "computedY" : 228.354, + "placementX" : 40.111, + "placementY" : 228.354, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]/PaymentRow_0[0]", + "entityName" : "PaymentRow_0", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 40.111, + "computedY" : 228.354, + "placementX" : 40.111, + "placementY" : 228.354, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]/PaymentRow_0[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]/PaymentRow_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 40.111, + "computedY" : 228.354, + "placementX" : 40.111, + "placementY" : 228.354, + "placementWidth" : 48.087, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.087, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]/PaymentRow_0[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]/PaymentRow_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 144.75, + "computedY" : 228.354, + "placementX" : 144.75, + "placementY" : 228.354, + "placementWidth" : 92.657, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.657, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]", + "entityName" : "PaymentRow_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 40.111, + "computedY" : 216.46, + "placementX" : 40.111, + "placementY" : 216.46, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]", + "entityName" : "PaymentRow_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 40.111, + "computedY" : 216.46, + "placementX" : 40.111, + "placementY" : 216.46, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]/PaymentRow_1[0]", + "entityName" : "PaymentRow_1", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 40.111, + "computedY" : 216.46, + "placementX" : 40.111, + "placementY" : 216.46, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]/PaymentRow_1[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]/PaymentRow_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 40.111, + "computedY" : 216.46, + "placementX" : 40.111, + "placementY" : 216.46, + "placementWidth" : 61.36, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.36, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]/PaymentRow_1[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]/PaymentRow_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 144.75, + "computedY" : 216.46, + "placementX" : 144.75, + "placementY" : 216.46, + "placementWidth" : 67.481, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.481, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]", + "entityName" : "PaymentRow_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 40.111, + "computedY" : 204.566, + "placementX" : 40.111, + "placementY" : 204.566, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]", + "entityName" : "PaymentRow_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 40.111, + "computedY" : 204.566, + "placementX" : 40.111, + "placementY" : 204.566, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]/PaymentRow_2[0]", + "entityName" : "PaymentRow_2", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 40.111, + "computedY" : 204.566, + "placementX" : 40.111, + "placementY" : 204.566, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]/PaymentRow_2[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]/PaymentRow_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 40.111, + "computedY" : 204.566, + "placementX" : 40.111, + "placementY" : 204.566, + "placementWidth" : 69.902, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.902, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]/PaymentRow_2[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]/PaymentRow_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 144.75, + "computedY" : 204.566, + "placementX" : 144.75, + "placementY" : 204.566, + "placementWidth" : 45.136, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.136, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]", + "entityName" : "PaymentRow_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 40.111, + "computedY" : 192.672, + "placementX" : 40.111, + "placementY" : 192.672, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]", + "entityName" : "PaymentRow_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 40.111, + "computedY" : 192.672, + "placementX" : 40.111, + "placementY" : 192.672, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]/PaymentRow_3[0]", + "entityName" : "PaymentRow_3", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 40.111, + "computedY" : 192.672, + "placementX" : 40.111, + "placementY" : 192.672, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]/PaymentRow_3[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]/PaymentRow_3[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 40.111, + "computedY" : 192.672, + "placementX" : 40.111, + "placementY" : 192.672, + "placementWidth" : 51.412, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.412, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]/PaymentRow_3[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]/PaymentRow_3[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 144.75, + "computedY" : 192.672, + "placementX" : 144.75, + "placementY" : 192.672, + "placementWidth" : 42.277, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.277, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]", + "entityName" : "PaymentRow_4Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 40.111, + "computedY" : 180.778, + "placementX" : 40.111, + "placementY" : 180.778, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]", + "entityName" : "PaymentRow_4Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 40.111, + "computedY" : 180.778, + "placementX" : 40.111, + "placementY" : 180.778, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]/PaymentRow_4[0]", + "entityName" : "PaymentRow_4", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 40.111, + "computedY" : 180.778, + "placementX" : 40.111, + "placementY" : 180.778, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]/PaymentRow_4[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]/PaymentRow_4[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 40.111, + "computedY" : 180.778, + "placementX" : 40.111, + "placementY" : 180.778, + "placementWidth" : 64.896, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.896, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]/PaymentRow_4[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]/PaymentRow_4[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 144.75, + "computedY" : 180.778, + "placementX" : 144.75, + "placementY" : 180.778, + "placementWidth" : 23.176, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.176, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]", + "entityName" : "PaymentRow_5Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 40.111, + "computedY" : 168.884, + "placementX" : 40.111, + "placementY" : 168.884, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]", + "entityName" : "PaymentRow_5Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 40.111, + "computedY" : 168.884, + "placementX" : 40.111, + "placementY" : 168.884, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]/PaymentRow_5[0]", + "entityName" : "PaymentRow_5", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 40.111, + "computedY" : 168.884, + "placementX" : 40.111, + "placementY" : 168.884, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]/PaymentRow_5[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]/PaymentRow_5[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 40.111, + "computedY" : 168.884, + "placementX" : 40.111, + "placementY" : 168.884, + "placementWidth" : 77.849, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.849, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]/PaymentRow_5[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]/PaymentRow_5[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 144.75, + "computedY" : 168.884, + "placementX" : 144.75, + "placementY" : 168.884, + "placementWidth" : 14.954, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.954, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]", + "entityName" : "PaymentRow_6Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 40.111, + "computedY" : 156.99, + "placementX" : 40.111, + "placementY" : 156.99, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]", + "entityName" : "PaymentRow_6Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 40.111, + "computedY" : 156.99, + "placementX" : 40.111, + "placementY" : 156.99, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]/PaymentRow_6[0]", + "entityName" : "PaymentRow_6", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 40.111, + "computedY" : 156.99, + "placementX" : 40.111, + "placementY" : 156.99, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]/PaymentRow_6[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]/PaymentRow_6[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 40.111, + "computedY" : 156.99, + "placementX" : 40.111, + "placementY" : 156.99, + "placementWidth" : 57.414, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.414, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]/PaymentRow_6[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]/PaymentRow_6[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 144.75, + "computedY" : 156.99, + "placementX" : 144.75, + "placementY" : 156.99, + "placementWidth" : 75.173, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.173, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]", + "entityName" : "PaymentRow_7Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 40.111, + "computedY" : 145.097, + "placementX" : 40.111, + "placementY" : 145.097, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]", + "entityName" : "PaymentRow_7Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 40.111, + "computedY" : 145.097, + "placementX" : 40.111, + "placementY" : 145.097, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]/PaymentRow_7[0]", + "entityName" : "PaymentRow_7", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 40.111, + "computedY" : 145.097, + "placementX" : 40.111, + "placementY" : 145.097, + "placementWidth" : 212.765, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 212.765, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]/PaymentRow_7[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]/PaymentRow_7[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 40.111, + "computedY" : 145.097, + "placementX" : 40.111, + "placementY" : 145.097, + "placementWidth" : 73.309, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 73.309, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]/PaymentRow_7[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]/PaymentRow_7[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 144.75, + "computedY" : 145.097, + "placementX" : 144.75, + "placementY" : 145.097, + "placementWidth" : 93.077, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 93.077, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentPanelRule[2]", + "entityName" : "PaymentPanelRule", + "entityKind" : "LineNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 25.578, + "computedY" : 134.779, + "placementX" : 25.578, + "placementY" : 134.779, + "placementWidth" : 241.249, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 241.249, + "contentHeight" : 1.0, + "margin" : { + "top" : 9.318, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]", + "entityName" : "PaymentNoteLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 25.578, + "computedY" : 99.7, + "placementX" : 25.578, + "placementY" : 99.7, + "placementWidth" : 241.249, + "placementHeight" : 35.079, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 241.249, + "contentHeight" : 35.079, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]", + "entityName" : "PaymentNoteHolder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 25.578, + "computedY" : 99.7, + "placementX" : 25.578, + "placementY" : 99.7, + "placementWidth" : 241.249, + "placementHeight" : 35.079, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 241.249, + "contentHeight" : 35.079, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]", + "entityName" : "PaymentNote", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 25.578, + "computedY" : 99.7, + "placementX" : 25.578, + "placementY" : 99.7, + "placementWidth" : 241.249, + "placementHeight" : 35.079, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 241.249, + "contentHeight" : 35.079, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 6.029, + "right" : 0.0, + "bottom" : 6.029, + "left" : 13.952 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 39.53, + "computedY" : 115.761, + "placementX" : 39.53, + "placementY" : 115.761, + "placementWidth" : 12.988, + "placementHeight" : 12.988, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.988, + "contentHeight" : 12.988, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 39.53, + "computedY" : 115.761, + "placementX" : 39.53, + "placementY" : 115.761, + "placementWidth" : 12.988, + "placementHeight" : 12.988, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.988, + "contentHeight" : 12.988, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/PaymentNoteText[1]", + "entityName" : "PaymentNoteText", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 62.202, + "computedY" : 105.729, + "placementX" : 62.202, + "placementY" : 105.729, + "placementWidth" : 119.195, + "placementHeight" : 23.02, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.195, + "contentHeight" : 23.02, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/PaymentNoteText[1]/PaymentNoteLine_0[0]", + "entityName" : "PaymentNoteLine_0", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/PaymentNoteText[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 62.202, + "computedY" : 117.787, + "placementX" : 62.202, + "placementY" : 117.787, + "placementWidth" : 119.195, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.195, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/PaymentNoteText[1]/PaymentNoteLine_1[1]", + "entityName" : "PaymentNoteLine_1", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/PaymentNoteText[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 62.202, + "computedY" : 105.729, + "placementX" : 62.202, + "placementY" : 105.729, + "placementWidth" : 113.869, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 113.869, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementGap[1]", + "entityName" : "SettlementGap", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 266.828, + "computedY" : 267.817, + "placementX" : 266.828, + "placementY" : 267.817, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]", + "entityName" : "SettlementRight", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 313.915, + "computedY" : 123.114, + "placementX" : 313.915, + "placementY" : 123.114, + "placementWidth" : 235.436, + "placementHeight" : 144.703, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.436, + "contentHeight" : 144.703, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]", + "entityName" : "Totals", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 313.915, + "computedY" : 193.222, + "placementX" : 313.915, + "placementY" : 193.222, + "placementWidth" : 235.436, + "placementHeight" : 67.171, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.436, + "contentHeight" : 67.171, + "margin" : { + "top" : 7.424, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 5.813 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]", + "entityName" : "TotalsRow_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 319.728, + "computedY" : 248.434, + "placementX" : 319.728, + "placementY" : 248.434, + "placementWidth" : 229.623, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.623, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]", + "entityName" : "TotalsRow_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 319.728, + "computedY" : 248.434, + "placementX" : 319.728, + "placementY" : 248.434, + "placementWidth" : 229.623, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.623, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "entityName" : "TotalsRow_0", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 319.728, + "computedY" : 248.434, + "placementX" : 319.728, + "placementY" : 248.434, + "placementWidth" : 229.623, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.623, + "contentHeight" : 11.959, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 7.557, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 319.728, + "computedY" : 248.434, + "placementX" : 319.728, + "placementY" : 248.434, + "placementWidth" : 36.673, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.673, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 430.761, + "computedY" : 248.434, + "placementX" : 430.761, + "placementY" : 248.434, + "placementWidth" : 111.033, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.033, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]", + "entityName" : "TotalsRow_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 319.728, + "computedY" : 231.443, + "placementX" : 319.728, + "placementY" : 231.443, + "placementWidth" : 229.623, + "placementHeight" : 16.991, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.623, + "contentHeight" : 16.991, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]", + "entityName" : "TotalsRow_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 319.728, + "computedY" : 231.443, + "placementX" : 319.728, + "placementY" : 231.443, + "placementWidth" : 229.623, + "placementHeight" : 16.991, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.623, + "contentHeight" : 16.991, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "entityName" : "TotalsRow_1", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 319.728, + "computedY" : 231.443, + "placementX" : 319.728, + "placementY" : 231.443, + "placementWidth" : 229.623, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.623, + "contentHeight" : 11.959, + "margin" : { + "top" : 5.033, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 7.557, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 319.728, + "computedY" : 231.443, + "placementX" : 319.728, + "placementY" : 231.443, + "placementWidth" : 36.285, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.285, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 430.761, + "computedY" : 231.443, + "placementX" : 430.761, + "placementY" : 231.443, + "placementWidth" : 111.033, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.033, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalsRule[2]", + "entityName" : "TotalsRule", + "entityKind" : "LineNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 319.728, + "computedY" : 222.421, + "placementX" : 319.728, + "placementY" : 222.421, + "placementWidth" : 229.623, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.623, + "contentHeight" : 1.0, + "margin" : { + "top" : 8.022, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]", + "entityName" : "TotalDueLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 319.728, + "computedY" : 193.222, + "placementX" : 319.728, + "placementY" : 193.222, + "placementWidth" : 229.623, + "placementHeight" : 29.199, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.623, + "contentHeight" : 29.199, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]", + "entityName" : "TotalDueHolder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 319.728, + "computedY" : 193.222, + "placementX" : 319.728, + "placementY" : 193.222, + "placementWidth" : 229.623, + "placementHeight" : 29.199, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.623, + "contentHeight" : 29.199, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "entityName" : "TotalDue", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 319.728, + "computedY" : 193.222, + "placementX" : 319.728, + "placementY" : 193.222, + "placementWidth" : 229.623, + "placementHeight" : 29.199, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.623, + "contentHeight" : 29.199, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 9.268, + "right" : 7.557, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]/TotalDueLabel[0]", + "entityName" : "TotalDueLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 319.728, + "computedY" : 195.713, + "placementX" : 319.728, + "placementY" : 195.713, + "placementWidth" : 63.094, + "placementHeight" : 14.948, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.094, + "contentHeight" : 14.948, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]/TotalDueValue[1]", + "entityName" : "TotalDueValue", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 430.761, + "computedY" : 193.222, + "placementX" : 430.761, + "placementY" : 193.222, + "placementWidth" : 111.033, + "placementHeight" : 19.931, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.033, + "contentHeight" : 19.931, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]", + "entityName" : "DueDateCard", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 313.915, + "computedY" : 123.114, + "placementX" : 313.915, + "placementY" : 123.114, + "placementWidth" : 235.436, + "placementHeight" : 52.02, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.436, + "contentHeight" : 52.02, + "margin" : { + "top" : 18.087, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]", + "entityName" : "DueDateRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 313.915, + "computedY" : 123.114, + "placementX" : 313.915, + "placementY" : 123.114, + "placementWidth" : 235.436, + "placementHeight" : 52.02, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.436, + "contentHeight" : 52.02, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]", + "entityName" : "DueDateRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 313.915, + "computedY" : 123.114, + "placementX" : 313.915, + "placementY" : 123.114, + "placementWidth" : 235.436, + "placementHeight" : 52.02, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.436, + "contentHeight" : 52.02, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]", + "entityName" : "DueDateRow", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 313.915, + "computedY" : 123.114, + "placementX" : 313.915, + "placementY" : 123.114, + "placementWidth" : 235.436, + "placementHeight" : 52.02, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.436, + "contentHeight" : 52.02, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 10.962, + "right" : 0.0, + "bottom" : 11.51, + "left" : 13.37 + } + }, { + "path" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateDisc[0]", + "entityName" : "DueDateDisc", + "entityKind" : "ShapeContainerNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 327.285, + "computedY" : 135.28, + "placementX" : 327.285, + "placementY" : 135.28, + "placementWidth" : 28.236, + "placementHeight" : 28.236, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.236, + "contentHeight" : 28.236, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateDisc[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateDisc[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 334.062, + "computedY" : 142.057, + "placementX" : 334.062, + "placementY" : 142.057, + "placementWidth" : 14.683, + "placementHeight" : 14.683, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.683, + "contentHeight" : 14.683, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateDisc[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateDisc[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 334.062, + "computedY" : 142.057, + "placementX" : 334.062, + "placementY" : 142.057, + "placementWidth" : 14.683, + "placementHeight" : 14.683, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.683, + "contentHeight" : 14.683, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateText[1]", + "entityName" : "DueDateText", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 367.397, + "computedY" : 134.624, + "placementX" : 367.397, + "placementY" : 134.624, + "placementWidth" : 86.401, + "placementHeight" : 29.548, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.401, + "contentHeight" : 29.548, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateText[1]/DueDateLabel[0]", + "entityName" : "DueDateLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateText[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 367.397, + "computedY" : 152.213, + "placementX" : 367.397, + "placementY" : 152.213, + "placementWidth" : 44.735, + "placementHeight" : 11.959, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.735, + "contentHeight" : 11.959, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateText[1]/DueDateValue[1]", + "entityName" : "DueDateValue", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateText[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 367.397, + "computedY" : 134.624, + "placementX" : 367.397, + "placementY" : 134.624, + "placementWidth" : 86.401, + "placementHeight" : 14.948, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.401, + "contentHeight" : 14.948, + "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" : "PlatformInvoice[0]/Settlement[5]/SettlementTail[3]", + "entityName" : "SettlementTail", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/Settlement[5]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 549.351, + "computedY" : 267.817, + "placementX" : 549.351, + "placementY" : 267.817, + "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" : "PlatformInvoice[0]/ClosingNoteRule[6]", + "entityName" : "ClosingNoteRule", + "entityKind" : "LineNode", + "parentPath" : "PlatformInvoice[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 25.578, + "computedY" : 91.027, + "placementX" : 25.578, + "placementY" : 91.027, + "placementWidth" : 544.119, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.119, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.673, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/ClosingNote[7]", + "entityName" : "ClosingNote", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 25.578, + "computedY" : 55.948, + "placementX" : 25.578, + "placementY" : 55.948, + "placementWidth" : 544.119, + "placementHeight" : 23.02, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.119, + "contentHeight" : 23.02, + "margin" : { + "top" : 12.058, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/ClosingNote[7]/ClosingNoteIcon[0]", + "entityName" : "ClosingNoteIcon", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/ClosingNote[7]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.578, + "computedY" : 64.286, + "placementX" : 25.578, + "placementY" : 64.286, + "placementWidth" : 14.683, + "placementHeight" : 14.683, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.683, + "contentHeight" : 14.683, + "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" : "PlatformInvoice[0]/ClosingNote[7]/ClosingNoteIcon[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "PlatformInvoice[0]/ClosingNote[7]/ClosingNoteIcon[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 25.578, + "computedY" : 64.286, + "placementX" : 25.578, + "placementY" : 64.286, + "placementWidth" : 14.683, + "placementHeight" : 14.683, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.683, + "contentHeight" : 14.683, + "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" : "PlatformInvoice[0]/ClosingNote[7]/ClosingNoteIcon[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "PlatformInvoice[0]/ClosingNote[7]/ClosingNoteIcon[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 25.578, + "computedY" : 64.286, + "placementX" : 25.578, + "placementY" : 64.286, + "placementWidth" : 14.683, + "placementHeight" : 14.683, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.683, + "contentHeight" : 14.683, + "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" : "PlatformInvoice[0]/ClosingNote[7]/ClosingNoteText[1]", + "entityName" : "ClosingNoteText", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/ClosingNote[7]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 51.738, + "computedY" : 55.948, + "placementX" : 51.738, + "placementY" : 55.948, + "placementWidth" : 297.384, + "placementHeight" : 23.02, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 297.384, + "contentHeight" : 23.02, + "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" : "PlatformInvoice[0]/ClosingNote[7]/ClosingNoteText[1]/ClosingNoteLead[0]", + "entityName" : "ClosingNoteLead", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/ClosingNote[7]/ClosingNoteText[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 51.738, + "computedY" : 68.006, + "placementX" : 51.738, + "placementY" : 68.006, + "placementWidth" : 152.794, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 152.794, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/ClosingNote[7]/ClosingNoteText[1]/ClosingNoteLine_0[1]", + "entityName" : "ClosingNoteLine_0", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/ClosingNote[7]/ClosingNoteText[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 51.738, + "computedY" : 55.948, + "placementX" : 51.738, + "placementY" : 55.948, + "placementWidth" : 297.384, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 297.384, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/FooterIdentityRule[8]", + "entityName" : "FooterIdentityRule", + "entityKind" : "LineNode", + "parentPath" : "PlatformInvoice[0]", + "childIndex" : 8, + "depth" : 2, + "layer" : 2, + "computedX" : 25.578, + "computedY" : 45.082, + "placementX" : 25.578, + "placementY" : 45.082, + "placementWidth" : 544.119, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.119, + "contentHeight" : 1.0, + "margin" : { + "top" : 9.866, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/FooterIdentity[9]", + "entityName" : "FooterIdentity", + "entityKind" : "RowNode", + "parentPath" : "PlatformInvoice[0]", + "childIndex" : 9, + "depth" : 2, + "layer" : 2, + "computedX" : 26.16, + "computedY" : 14.039, + "placementX" : 26.16, + "placementY" : 14.039, + "placementWidth" : 543.538, + "placementHeight" : 21.725, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 543.538, + "contentHeight" : 21.725, + "margin" : { + "top" : 9.318, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.581 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/FooterIdentity[9]/FooterLockup[0]", + "entityName" : "FooterLockup", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/FooterIdentity[9]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 26.16, + "computedY" : 24.802, + "placementX" : 26.16, + "placementY" : 24.802, + "placementWidth" : 52.865, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.865, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/FooterIdentity[9]/FooterLockup[0]/FooterWordmark[0]", + "entityName" : "FooterWordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/FooterIdentity[9]/FooterLockup[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 26.16, + "computedY" : 24.802, + "placementX" : 26.16, + "placementY" : 24.802, + "placementWidth" : 52.865, + "placementHeight" : 10.962, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.865, + "contentHeight" : 10.962, + "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" : "PlatformInvoice[0]/FooterIdentity[9]/FooterAddress[1]", + "entityName" : "FooterAddress", + "entityKind" : "SectionNode", + "parentPath" : "PlatformInvoice[0]/FooterIdentity[9]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 130.798, + "computedY" : 14.039, + "placementX" : 130.798, + "placementY" : 14.039, + "placementWidth" : 438.9, + "placementHeight" : 20.928, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 438.9, + "contentHeight" : 20.928, + "margin" : { + "top" : 0.797, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "PlatformInvoice[0]/FooterIdentity[9]/FooterAddress[1]/FooterIdentityName[0]", + "entityName" : "FooterIdentityName", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/FooterIdentity[9]/FooterAddress[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 130.798, + "computedY" : 25.001, + "placementX" : 130.798, + "placementY" : 25.001, + "placementWidth" : 438.9, + "placementHeight" : 9.966, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 438.9, + "contentHeight" : 9.966, + "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" : "PlatformInvoice[0]/FooterIdentity[9]/FooterAddress[1]/FooterIdentityAddress[1]", + "entityName" : "FooterIdentityAddress", + "entityKind" : "ParagraphNode", + "parentPath" : "PlatformInvoice[0]/FooterIdentity[9]/FooterAddress[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 130.798, + "computedY" : 14.039, + "placementX" : 130.798, + "placementY" : 14.039, + "placementWidth" : 438.9, + "placementHeight" : 9.966, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 438.9, + "contentHeight" : 9.966, + "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/invoice-v2-layered/platform_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/platform_invoice-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..1170210e75081da166ba56f2b4caf26eb2f03602 GIT binary patch literal 94429 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 z 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
      &fk^CHjH_&<_wM_M_5%W#LPr z5*DVwZj2D+;N=!(=EC>4=xPD`65J#7uZQ*<>bFjfDJ3DiteFTq)MR1y+`x{6&ILA> zPpi(n3*jN*XWLuEk}enNnH*QnEMwN&`2X+$mL78A`j}5t5((Nkla3R3MBpmoNt_9V z;22TnyG}h0MZCwYlt~4`=JINfx_N3JLb5uqp=w}c#hgpx^krcnMHWZ$Bq5=^tgK#Q zBa&mSxcw&9dA`v@Xg2YO!KjDn3#QIl9EQTBi@ip!L3TBb>H--h!ah#AmK!A*Bs;sMd{O(aZ48>J_-|CuYb#Bg|-Ai)-a zFRJq?QJ-YNkjv11P^>2*&IRQnKwpF|C0#?dR#)*; zyb9c`urhAmkh`H92GT~PWZAc|q zRD&lHzS;?4UJD;H!E1Uhk}Vx6Z*{E<|GD@$Hd&nO~sZbRC#(A<4bmM_(#;v4_x*T&|5IPi$F+gIH*40+-1jwCq=vYdV#bokV7XVJU=sp^ZC$cD ziQq*KHXdp&d%(2k{8a@|NgQPZ3=X*eHFS%h9teZ~zhJfh_pARuFnlga7Z!?2VkZqXh&5*?&J|4=5<(sR>Aq$NG0kAUZvlt^=yO$bXl} z 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 line + .name("ClosingNoteRule") + .horizontal(CONTENT_W) + .thickness(RULE_THICK) + .color(HAIRLINE) + .margin(new DocumentInsets(py(1364 - 1350), 0, 0, 0))); + } + + /** + * The closing note. + * + *

      The note tells a reader where to go, and the places it can send them are + * printed inside the sentence. Written as one string the whole sentence would + * have to carry the target or none of it would, so each address it actually + * contains becomes its own run, in the accent, and the text between them stays + * plain.

      + */ + static void renderNote(PageFlowBuilder page, InvoiceNotesBlock notes, + InvoiceContactBlock supplier) { + if (notes.heading().isBlank() && notes.paragraphs().isEmpty()) { + return; + } + page.addRow("ClosingNote", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(NOTE_GUTTER), DocumentRowColumn.weight(1)) + .margin(new DocumentInsets( + py(1392 - 1365) - CAP_INSET * NOTE_SIZE, 0, 0, 0)); + row.addSection("ClosingNoteIcon", gutter -> { + gutter.spacing(0); + gutter.addSvgIcon(PlatformIcons.icon(PlatformIcons.INFO_OUTLINE), NOTE_ICON); + }); + row.addSection("ClosingNoteText", text -> { + text.spacing(capPitch(22, NOTE_SIZE)) + .keepWithNext(); + if (!notes.heading().isBlank()) { + text.addParagraph(p -> p + .name("ClosingNoteLead") + .text(notes.heading()) + .textStyle(style(NOTE_SIZE, BODY))); + } + List paragraphs = notes.paragraphs(); + for (int i = 0; i < paragraphs.size(); i++) { + String prose = paragraphs.get(i); + int index = i; + text.addParagraph(p -> { + p.name("ClosingNoteLine_" + index); + writeReachable(p, prose, notes, supplier); + }); + } + }); + }); + } + + /** The rule above the identity band. */ + static void renderIdentityRule(PageFlowBuilder page) { + page.addLine(line -> line + .name("FooterIdentityRule") + .horizontal(CONTENT_W) + .thickness(RULE_THICK) + .color(HAIRLINE) + .margin(new DocumentInsets( + py(1447 - 1414) - (LINE_BOX - CAP_INSET) * NOTE_SIZE, 0, 0, 0))); + } + + /** + * The identity band: the lockup again, and the issuer's own name and address + * set against the right margin. + */ + static void renderIdentity(PageFlowBuilder page, InvoiceBrand brand, + InvoiceContactBlock supplier) { + page.addRow("FooterIdentity", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(FOOTER_LOCKUP_W), + DocumentRowColumn.weight(1)) + .margin(new DocumentInsets(py(1465 - 1448), 0, 0, px(1))); + row.addSection("FooterLockup", cell -> { + cell.spacing(0); + if (brand.logo() != null) { + cell.add(new ImageBuilder() + .name("FooterLogo") + .source(brand.logo()) + .width(FOOTER_LOCKUP_W) + .build()); + } else if (!brand.name().isBlank()) { + cell.addParagraph(p -> p + .name("FooterWordmark") + .text(brand.name()) + .textStyle(bold(NOTE_SIZE, INK))); + } + }); + row.addSection("FooterAddress", text -> { + text.spacing(capPitch(20, TINY_SIZE)) + .margin(new DocumentInsets( + py(1471 - 1465) - CAP_INSET * TINY_SIZE, 0, 0, 0)); + text.addParagraph(p -> p + .name("FooterIdentityName") + .text(supplier.legalName()) + .textStyle(style(TINY_SIZE, MUTED)) + .align(TextAlign.RIGHT)); + text.addParagraph(p -> p + .name("FooterIdentityAddress") + .text(String.join(", ", supplier.addressLines())) + .textStyle(style(TINY_SIZE, MUTED)) + .align(TextAlign.RIGHT)); + }); + }); + } + + private static void writeReachable(ParagraphBuilder paragraph, String prose, + InvoiceNotesBlock notes, InvoiceContactBlock supplier) { + List found = new ArrayList<>(); + addIfPresent(found, prose, notes.contactEmail(), InvoiceUri.mailLink(notes.contactEmail())); + addIfPresent(found, prose, supplier.email(), InvoiceUri.mailLink(supplier.email())); + addIfPresent(found, prose, supplier.website(), InvoiceUri.webLink(supplier.website())); + addIfPresent(found, prose, notes.contactPhone(), InvoiceUri.telLink(notes.contactPhone())); + found.sort(Comparator.comparingInt(Reachable::at)); + + int cursor = 0; + for (Reachable reachable : found) { + if (reachable.at() < cursor) { + // An address overlapping one already written — the site inside an + // address, say. The first one wins; writing both would duplicate + // the glyphs. + continue; + } + if (reachable.at() > cursor) { + paragraph.inlineText(prose.substring(cursor, reachable.at()), + style(NOTE_SIZE, BODY)); + } + paragraph.inlineText(reachable.text(), style(NOTE_SIZE, ACCENT), reachable.link()); + cursor = reachable.at() + reachable.text().length(); + } + if (cursor < prose.length()) { + paragraph.inlineText(prose.substring(cursor), style(NOTE_SIZE, BODY)); + } + } + + private static void addIfPresent(List found, String prose, String text, + DocumentLinkOptions link) { + if (text == null || text.isBlank() || link == null) { + return; + } + int at = prose.indexOf(text); + if (at >= 0) { + found.add(new Reachable(at, text, link)); + } + } + + private record Reachable(int at, String text, DocumentLinkOptions link) { + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformIcons.java new file mode 100644 index 000000000..c33114d03 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformIcons.java @@ -0,0 +1,83 @@ +package com.demcha.compose.document.templates.invoice.presets; + +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.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * The marks the Platform invoice packages. + * + *

      Nine the preset chooses itself — which glyph opens the bill-to block, the + * ship-to block, the bank panel, the panel's note, the due-date card and each of + * the three contact channels. The other five are a vocabulary a document may + * name on a service line through {@code InvoiceServiceLines.Line.icon()}.

      + * + *

      Each mark carries the accent colour in the asset itself rather than taking + * it at draw time, which is how the design draws them: they are filled shapes in + * one colour, not line work tinted per use.

      + */ +final class PlatformIcons { + + static final String BILL_TO = "bill-to"; + static final String SHIP_TO = "ship-to"; + static final String BANK = "bank"; + static final String CALENDAR = "calendar"; + static final String INFO = "info"; + static final String INFO_OUTLINE = "info-outline"; + static final String WEBSITE = "website"; + static final String EMAIL = "email"; + static final String PHONE = "phone"; + + private static final String ICON_ROOT = "/templates/invoice/platform/icons/"; + + /** The marks a document may name on a service line. */ + static final Set LINE_TOKENS = + Set.of("compute", "storage", "database", "network", "support"); + + private static final Set TOKENS = Set.of( + BILL_TO, SHIP_TO, BANK, CALENDAR, INFO, INFO_OUTLINE, WEBSITE, EMAIL, PHONE, + "compute", "storage", "database", "network", "support"); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private PlatformIcons() { + } + + /** + * The packaged mark a token names. + * + * @param token one of this preset's tokens + * @return the parsed icon + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, so + * a wrong one is a data error and not a missing resource + */ + static SvgIcon icon(String token) { + if (!TOKENS.contains(token)) { + throw new IllegalArgumentException( + "Unknown platform invoice icon token '" + token + + "'. This preset packages " + LINE_TOKENS.stream().sorted().toList() + + " for a service line's mark."); + } + return CACHE.computeIfAbsent(token, PlatformIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = PlatformIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing platform invoice icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read platform invoice icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoice.java new file mode 100644 index 000000000..a14745072 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformInvoice.java @@ -0,0 +1,184 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageMarginRule; +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.invoice.StructuredInvoiceData; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.FACE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.FOOTER_BAND_H; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.FOOTER_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PAGE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PAGE_MARGIN; + +/** + * Platform — an invoice for platform usage billed by region: a lockup against + * the title, the supplier split from the invoice's metadata by a full-height + * hairline, two addressed parties, a six-column usage table, an outlined bank + * panel beside the totals and the due-date card, and an identity band closing + * the sheet. + * + *

      Where, beside what

      + * + *

      The table is six columns wide because this design bills the same service in + * more than one place and prints where beside what: + * {@code DESCRIPTION | SERVICE | REGION | USAGE | UNIT PRICE | AMOUNT}. A line + * names its region through {@code InvoiceServiceLines.Line.region()}, and a + * document with one location per invoice leaves it blank.

      + * + *

      Two scales, on purpose

      + * + *

      The design is 1.50 aspect where A4 is 1.414, so one conversion constant + * cannot serve both axes. Widths, x-offsets and type sizes go through the + * horizontal scale because that is the axis where advance widths have to fit; + * heights, pitches and gaps go through the vertical one, which is 6.3% tighter; + * marks and discs go through their mean, and are therefore about 3% out in each + * axis rather than 6% out in one.

      + * + *

      Rules are rows

      + * + *

      A table's rules come from each cell's own style and cover all four of that + * cell's edges, so any stroke that buys a horizontal separator also buys five + * verticals — which this design has nowhere inside its table. Every cell is + * stroked at zero width and the separators are rows of their own: one cell + * spanning every column, zero padding, and a full-width line as its content.

      + * + *

      It flows

      + * + *

      The design shows five service lines and real usage brings dozens, so the + * table is the region that grows: its header repeats on every page it reaches, + * a continuation page keeps the first page's geometry, and every page carries + * its number. The bottom margin is the enumeration's band exactly — reserving + * less lets a continuation page's last row run into it, a defect page one is + * structurally unable to show.

      + * + *

      A rate is not an amount, and usage is not a tally

      + * + *

      A unit price is written at the precision it is quoted at, between two + * places and four: a rate of 0.0670 rounded to an amount's two places is a + * different price. Usage that names a unit carries two places even on a whole + * number, because the meter reads to that precision; usage that names none is a + * count of whole things and is written bare. The currency is stated once per + * money column and the figures under it are bare. Figures state their locale + * rather than inheriting it.

      + * + *

      The lockup is the caller's

      + * + *

      The design opens and closes with the same mark. Both come from + * {@code InvoiceBrand}: the masthead draws the logo at the design's measured + * width and the identity band at its smaller one, or the brand's name when there + * is no logo. The templates artifact carries no mark of its own.

      + * + *

      Fonts

      + * + *

      The sheet is set in Barlow throughout, and the preset's pitches are solved + * from Barlow's own cap height and ascender. The templates artifact carries no + * fonts — register the family on the session, or the engine substitutes and that + * arithmetic no longer describes the type sitting in it.

      + * + *

      Usage:

      + *
      {@code
      + * DocumentTemplate template = PlatformInvoice.create();
      + * template.compose(session, invoice);
      + * }
      + * + * @since 2.4.0 + */ +public final class PlatformInvoice { + + /** Stable identifier of this preset. */ + public static final String ID = "platform-invoice"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Platform Invoice"; + + private PlatformInvoice() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link StructuredInvoiceData} + */ + 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, StructuredInvoiceData data) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(data, "data"); + + // Every length on the sheet is a share of the design's own grid, so + // the preset sets the page and its margins rather than following + // what the caller configured. + document.pageSize(PAGE); + document.margin(PAGE_MARGIN); + // A continuation page has the same geometry as the first: it loses + // the masthead only because that is body content already drawn. + // Stating the rule keeps the page model decided rather than + // inherited by accident. + document.pageMargins(List.of(PageMarginRule.from(2, PAGE_MARGIN))); + renderPageNumber(document); + + document.pageFlow(page -> { + page.name("PlatformInvoice").padding(DocumentInsets.zero()).spacing(0); + PlatformMasthead.renderBrandHeader(page, data.brand(), data.masthead()); + PlatformMasthead.renderIdentityRow(page, data.supplier(), data.masthead()); + PlatformMasthead.renderIdentityRule(page); + PlatformParties.render(page, data.billTo(), data.shipTo()); + PlatformLines.render(page, data.serviceLines(), data.currencyCode()); + PlatformSettlement.render(page, data.payment(), data.totals(), + data.currencyCode()); + PlatformClosing.renderNoteRule(page); + PlatformClosing.renderNote(page, data.notes(), data.supplier()); + PlatformClosing.renderIdentityRule(page); + PlatformClosing.renderIdentity(page, data.brand(), data.supplier()); + }); + } + + /** + * The only chrome the sheet has. The design's own identity band cannot be + * chrome — a header/footer zone carries left, centre and right strings + * and nothing else, and the band holds a lockup — so page identity is + * carried by the enumeration alone. + * + *

      The height is stated because it is also what positions the number + * inside the band: the engine seats the line box at the band's top and + * the band's foot is the paper's, so the number rises point for point + * with it. The face is stated because the zone's own default is the + * standard-14 one, which would leave the number the single line on the + * sheet in a family the design never uses.

      + */ + private static void renderPageNumber(DocumentSession document) { + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .height((float) FOOTER_BAND_H) + .fontName(FACE) + .fontSize((float) FOOTER_SIZE) + .textColor(MUTED) + .centerText("Page {page} of {pages}") + .showSeparator(false) + .build()); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformLines.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformLines.java new file mode 100644 index 000000000..8687956fc --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformLines.java @@ -0,0 +1,215 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.LineBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +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.invoice.InvoiceServiceLines; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BAND; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.RULE_THICK; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.SMALL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_HEADER_H; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_HEAD_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_ICON; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_PAD_CENTRED; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_PAD_FIRST; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_PAD_ICON; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_PAD_RIGHT; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_PAD_X; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_ROW_H; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.WHITE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.capPitch; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.py; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.style; + +/** + * The usage table: six columns, a filled caps header that repeats on every page + * it reaches, and a horizontal separator under every row. + * + *

      Why the separators are rows

      + * + *

      A table's rules come from each cell's own style and there is no per-edge + * control, so any stroke that buys a horizontal separator also buys five + * verticals — and the design has no vertical rule anywhere inside the table, nor + * a side border below the header. Every cell is therefore stroked at zero width + * and the separators are rows of their own: one cell spanning every column, zero + * padding, and a full-width line as its content.

      + */ +final class PlatformLines { + + /** The six columns, as shares of the content width, solved from the design. */ + private static final double[] WEIGHTS = {0.2834, 0.1658, 0.1348, 0.123, 0.1487, 0.1443}; + + /** The two numeric columns are centred; the four leading ones are not. */ + private static final boolean[] CENTRED = {false, false, false, false, true, true}; + + private PlatformLines() { + } + + /** + * The table. + * + * @param page the page flow + * @param serviceLines the lines and their column captions + * @param currencyCode the code the two money captions carry + */ + static void render(PageFlowBuilder page, InvoiceServiceLines serviceLines, + String currencyCode) { + List captions = captions(serviceLines.columns(), currencyCode); + page.addTable(table -> { + table.name("LineItems").width(CONTENT_W); + table.margin(new DocumentInsets(py(654 - 622), 0, 0, 0)); + List columns = new ArrayList<>(); + for (double weight : WEIGHTS) { + columns.add(DocumentTableColumn.fixed(CONTENT_W * weight)); + } + table.columns(columns.toArray(new DocumentTableColumn[0])); + + renderHeader(table, captions); + // The header's bottom edge, then one separator under every row — + // including the last, which the design draws. + table.rowCells(separatorCells()); + List lines = serviceLines.lines(); + for (int i = 0; i < lines.size(); i++) { + table.rowCells(bodyCells(lines.get(i), i)); + table.rowCells(separatorCells()); + } + }); + } + + /** + * The captions, with the currency code appended to the two money columns. + * + *

      The design states the currency once per money column and writes the + * figures under it bare, which is why the code belongs in the caption rather + * than in front of every amount.

      + */ + private static List captions(InvoiceServiceLines.Columns columns, + String currencyCode) { + String suffix = currencyCode == null || currencyCode.isBlank() + ? "" + : " (" + currencyCode.trim() + ")"; + return List.of( + columns.description(), + columns.servicePeriod(), + columns.region(), + columns.quantity(), + columns.unitPrice() + suffix, + columns.amount() + suffix); + } + + /** + * The header band: one cell per column, each carrying the fill so the band + * reads as continuous, and a repeat instruction so it comes back at the top + * of every page the table reaches. Without it a continuation page carries + * unlabelled columns — a defect no single-page render can show. + * + *

      The first heading is inset further than the other five. Measured; the + * design really is asymmetric there.

      + */ + private static void renderHeader(TableBuilder table, List captions) { + double pad = (TABLE_HEADER_H - LINE_BOX * TABLE_HEAD_SIZE) / 2.0; + List cells = new ArrayList<>(); + for (int i = 0; i < captions.size(); i++) { + DocumentInsets insets = CENTRED[i] + ? new DocumentInsets(pad, TABLE_PAD_CENTRED, pad, TABLE_PAD_CENTRED) + : new DocumentInsets(pad, TABLE_PAD_RIGHT, pad, + i == 0 ? TABLE_PAD_FIRST : TABLE_PAD_X); + DocumentTableStyle cellStyle = DocumentTableStyle.builder() + .padding(insets) + .fillColor(BAND) + .stroke(DocumentStroke.of(BAND, 0)) + .textStyle(bold(TABLE_HEAD_SIZE, ACCENT)) + .textAnchor(CENTRED[i] + ? DocumentTableTextAnchor.CENTER + : DocumentTableTextAnchor.CENTER_LEFT) + .build(); + cells.add(new DocumentTableCell(List.of(captions.get(i)), cellStyle)); + } + table.headerCells(cells); + table.repeatHeader(); + } + + /** One usage row: a composed description cell and five plain ones. */ + private static List bodyCells(InvoiceServiceLines.Line line, int index) { + double pad = (TABLE_ROW_H - descriptionHeight()) / 2.0; + List values = List.of( + "", + line.servicePeriod(), + line.region(), + "", + PlatformText.rate(line.unitPrice()), + PlatformText.money(line.amount())); + List cells = new ArrayList<>(); + for (int i = 0; i < WEIGHTS.length; i++) { + DocumentInsets insets = CENTRED[i] + ? new DocumentInsets(pad, TABLE_PAD_CENTRED, pad, TABLE_PAD_CENTRED) + : new DocumentInsets(pad, TABLE_PAD_RIGHT, pad, + i == 0 ? TABLE_PAD_ICON : TABLE_PAD_X); + DocumentTableStyle cellStyle = DocumentTableStyle.builder() + .padding(insets) + .fillColor(WHITE) + .stroke(DocumentStroke.of(WHITE, 0)) + .textStyle(style(SMALL_SIZE, MUTED)) + .lineSpacing(capPitch(23, SMALL_SIZE)) + .textAnchor(CENTRED[i] + ? DocumentTableTextAnchor.CENTER + : DocumentTableTextAnchor.CENTER_LEFT) + .build(); + if (i == 0) { + cells.add(new DocumentTableCell(List.of(), cellStyle, 1, 1, + PlatformWidgets.descriptionCell(line, index))); + } else if (i == 3) { + // The count and what it counts are two lines of one cell, so a + // long unit falls under the figure rather than widening the + // column the design measured. + String usage = PlatformText.usage(line.quantity(), line.unit()); + cells.add(line.unit().isBlank() + ? new DocumentTableCell(List.of(usage), cellStyle) + : new DocumentTableCell(List.of(usage, line.unit()), cellStyle)); + } else { + cells.add(new DocumentTableCell(List.of(values.get(i)), cellStyle)); + } + } + return cells; + } + + /** The tallest cell in a row, and therefore what its padding is solved against. */ + private static double descriptionHeight() { + return Math.max(TABLE_ICON, + LINE_BOX * BODY_SIZE + capPitch(23, BODY_SIZE, SMALL_SIZE) + + LINE_BOX * SMALL_SIZE); + } + + /** A separator row: one cell across every column, carrying a full-width line. */ + private static List separatorCells() { + DocumentTableStyle cellStyle = DocumentTableStyle.builder() + .padding(DocumentInsets.zero()) + .fillColor(WHITE) + .stroke(DocumentStroke.of(WHITE, 0)) + .build(); + return List.of(new DocumentTableCell(List.of(), cellStyle, WEIGHTS.length, 1, + new LineBuilder() + .name("LineItemsSeparator") + .horizontal(CONTENT_W) + .thickness(RULE_THICK) + .color(HAIRLINE) + .build())); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformMasthead.java new file mode 100644 index 000000000..33ce330c2 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformMasthead.java @@ -0,0 +1,221 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.InlineImageAlignment; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CAP_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CONTACT_GAP_PX; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CONTACT_ICON; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.DIVIDER_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.LEFT_COLUMN_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.LOCKUP_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.MARGIN_TOP; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.META_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.META_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.RULE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.RULE_THICK; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.SUPPLIER_NAME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.capPitch; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.flowY; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.py; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.spaces; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.style; +import static com.demcha.compose.document.templates.invoice.presets.PlatformWidgets.layeredRow; + +/** + * The head of the sheet: the lockup against the title, then the supplier's own + * details against the invoice's metadata, split by a full-height hairline. + */ +final class PlatformMasthead { + + private PlatformMasthead() { + } + + /** + * The lockup on the left and the document's title on the right. + * + *

      The mark is the caller's: the lockup draws the brand's logo at the + * design's measured width, or the brand's name when there is none. The + * templates artifact carries no mark of its own.

      + */ + static void renderBrandHeader(PageFlowBuilder page, InvoiceBrand brand, + InvoiceMasthead masthead) { + page.addRow("Masthead", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(LOCKUP_W), DocumentRowColumn.weight(1)); + row.addSection("BrandLockup", cell -> { + cell.spacing(0); + if (brand.logo() != null) { + cell.add(new ImageBuilder() + .name("BrandLogo") + .source(brand.logo()) + .width(LOCKUP_W) + .margin(new DocumentInsets(flowY(42), 0, 0, 0)) + .build()); + } else if (!brand.name().isBlank()) { + cell.addParagraph(p -> p + .name("BrandWordmark") + .text(brand.name()) + .textStyle(bold(SUPPLIER_NAME_SIZE, INK)) + .margin(new DocumentInsets(flowY(42), 0, 0, 0))); + } + }); + row.addParagraph(p -> p + .name("InvoiceTitle") + .text(masthead.title()) + .textStyle(bold(TITLE_SIZE, INK)) + .align(TextAlign.RIGHT)); + }); + } + + /** + * The supplier's details against the invoice's metadata. + * + *

      The gap above is measured from the title's line-box foot to the + * supplier name's cap, because the masthead row's box ends at the former and + * the design measures the latter.

      + */ + static void renderIdentityRow(PageFlowBuilder page, InvoiceContactBlock supplier, + InvoiceMasthead masthead) { + page.addRow("IdentityRow", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(LEFT_COLUMN_W), + DocumentRowColumn.fixed(DIVIDER_W), + DocumentRowColumn.weight(1)) + .margin(new DocumentInsets( + py(135) - CAP_INSET * SUPPLIER_NAME_SIZE + - (flowY(45) - CAP_INSET * TITLE_SIZE + LINE_BOX * TITLE_SIZE) + - MARGIN_TOP, + 0, 0, 0)); + row.addSection("SupplierColumn", column -> renderSupplier(column, supplier)); + row.addSection("IdentityColumnDivider", column -> { + column.spacing(0); + column.addLine(line -> line + .name("IdentityColumnDivider") + .vertical(py(383 - 128)) + .thickness(DIVIDER_W) + .color(RULE)); + }); + row.addSection("MetaColumn", column -> renderMeta(column, masthead)); + }); + } + + /** The rule under both columns, at the design's own width and inset. */ + static void renderIdentityRule(PageFlowBuilder page) { + page.addLine(line -> line + .name("IdentityRule") + .horizontal(px(924)) + .thickness(RULE_THICK) + .color(RULE) + .margin(new DocumentInsets(py(408 - 383), 0, 0, px(5)))); + } + + private static void renderSupplier(SectionBuilder column, InvoiceContactBlock supplier) { + column.spacing(0).padding(new DocumentInsets(0, 0, 0, px(6))); + column.addParagraph(p -> p + .name("SupplierName") + .text(supplier.legalName()) + .textStyle(bold(SUPPLIER_NAME_SIZE, INK))); + + column.addSection("SupplierAddress", block -> { + block.spacing(capPitch(24, BODY_SIZE)) + .margin(new DocumentInsets( + capPitch(38, SUPPLIER_NAME_SIZE, BODY_SIZE), 0, 0, 0)); + List lines = supplier.addressLines(); + for (int i = 0; i < lines.size(); i++) { + String line = lines.get(i); + int index = i; + block.addParagraph(p -> p + .name("SupplierAddress_" + index) + .text(line) + .textStyle(style(BODY_SIZE, BODY))); + } + }); + + column.addSection("SupplierContact", block -> { + block.spacing(capPitch(28, BODY_SIZE)) + .margin(new DocumentInsets(capPitch(46, BODY_SIZE), 0, 0, 0)); + channel(block, "Website", PlatformIcons.WEBSITE, supplier.website(), + InvoiceUri.webLink(supplier.website())); + channel(block, "Email", PlatformIcons.EMAIL, supplier.email(), + InvoiceUri.mailLink(supplier.email())); + channel(block, "Phone", PlatformIcons.PHONE, supplier.phone(), + InvoiceUri.telLink(supplier.phone())); + }); + + if (!supplier.taxRegistrationNumber().isBlank()) { + column.addParagraph(p -> { + p.name("SupplierTaxId"); + p.inlineText(supplier.taxRegistrationLabel(), style(BODY_SIZE, BODY)); + p.inlineText(spaces(20, BODY_SIZE), style(BODY_SIZE, BODY)); + p.inlineText(supplier.taxRegistrationNumber(), style(BODY_SIZE, BODY)); + p.margin(new DocumentInsets(capPitch(38, BODY_SIZE), 0, 0, 0)); + }); + } + } + + /** + * One contact channel: its mark, a measured gap, and the value. + * + *

      The gap is a run of spaces rather than a column, because the design sets + * mark and value on one baseline inside a single line — a two-column row + * would put the mark on the line box's own top edge instead.

      + */ + private static void channel(SectionBuilder block, String name, String token, + String value, DocumentLinkOptions link) { + if (value.isBlank()) { + return; + } + block.addParagraph(p -> { + p.name("SupplierContact" + name); + p.inlineSvgIcon(PlatformIcons.icon(token), CONTACT_ICON, InlineImageAlignment.CENTER); + p.inlineText(spaces(CONTACT_GAP_PX, BODY_SIZE), style(BODY_SIZE, BODY)); + if (link == null) { + p.inlineText(value, style(BODY_SIZE, BODY)); + } else { + p.inlineText(value, style(BODY_SIZE, BODY), link); + } + }); + } + + private static void renderMeta(SectionBuilder column, InvoiceMasthead masthead) { + column.spacing(capPitch(36.17, BODY_SIZE)) + .padding(new DocumentInsets(0, 0, 0, META_PAD_L)) + .margin(new DocumentInsets( + py(138) - CAP_INSET * BODY_SIZE + - (py(135) - CAP_INSET * SUPPLIER_NAME_SIZE), + 0, 0, 0)); + List entries = masthead.entries(); + for (int i = 0; i < entries.size(); i++) { + InvoiceMasthead.Entry entry = entries.get(i); + layeredRow(column, "MetaRow_" + i, row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(META_LABEL_W), + DocumentRowColumn.weight(1)); + row.addParagraph(p -> p.text(entry.label()).textStyle(style(BODY_SIZE, BODY))); + row.addParagraph(p -> p + .text(entry.value()) + .textStyle(style(BODY_SIZE, entry.emphasized() ? ACCENT : INK))); + }); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformParties.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformParties.java new file mode 100644 index 000000000..b22a2fbf9 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformParties.java @@ -0,0 +1,140 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BILL_TO_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BILL_TO_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CAP_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.DIVIDER_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.LEFT_COLUMN_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PARTY_NAME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PIN_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.RULE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.SHIP_TO_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.SHIP_TO_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.capPitch; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.py; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.spaces; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.style; +import static com.demcha.compose.document.templates.invoice.presets.PlatformWidgets.layeredRow; +import static com.demcha.compose.document.templates.invoice.presets.PlatformWidgets.partyDisc; + +/** + * The two addressed parties, split by the same hairline the identity row uses. + * + *

      The two headings are not drawn alike, and that is the design's own choice + * rather than an inconsistency: the billed party's mark sits knocked out of a + * filled disc, the shipped-to party's is a bare pin. They also sit on different + * gutters and different left insets, both measured.

      + */ +final class PlatformParties { + + private PlatformParties() { + } + + /** + * The parties row. + * + * @param page the page flow + * @param billTo the billed party + * @param shipTo the shipped-to party, or {@code null} when the invoice ships + * nowhere and the column stays empty + */ + static void render(PageFlowBuilder page, InvoiceRecipient billTo, InvoiceRecipient shipTo) { + page.addRow("PartiesRow", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(LEFT_COLUMN_W), + DocumentRowColumn.fixed(DIVIDER_W), + DocumentRowColumn.weight(1)) + .margin(new DocumentInsets(py(432 - 409), 0, 0, 0)); + row.addSection("BillToColumn", column -> + renderParty(column, "BillTo", billTo, PlatformIcons.BILL_TO, + BILL_TO_PAD_L, BILL_TO_GUTTER, true)); + row.addSection("PartyColumnDivider", column -> { + column.spacing(0); + column.addLine(line -> line + .name("PartyColumnDivider") + .vertical(py(622 - 437)) + .thickness(DIVIDER_W) + .color(RULE) + .margin(new DocumentInsets(py(437 - 432), 0, 0, 0))); + }); + row.addSection("ShipToColumn", column -> { + if (shipTo != null) { + renderParty(column, "ShipTo", shipTo, PlatformIcons.SHIP_TO, + SHIP_TO_PAD_L, SHIP_TO_GUTTER, false); + } else { + column.spacing(0); + } + }); + }); + } + + private static void renderParty(SectionBuilder column, String id, InvoiceRecipient party, + String token, double padLeft, double gutter, + boolean drawsDisc) { + column.spacing(0).padding(new DocumentInsets(0, 0, 0, padLeft)); + + layeredRow(column, id + "Label", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(gutter), DocumentRowColumn.weight(1)); + row.add(drawsDisc + ? partyDisc(id + "Disc", token) + : PlatformIcons.icon(token).node(PIN_W)); + row.addParagraph(p -> p + .name(id + "LabelText") + .text(party.heading()) + .textStyle(bold(LABEL_SIZE, ACCENT))); + }); + + column.addSection(id + "Body", block -> { + block.spacing(0).padding(new DocumentInsets(0, 0, 0, gutter)); + + block.addParagraph(p -> p + .name(id + "Name") + .text(party.name()) + .textStyle(bold(PARTY_NAME_SIZE, INK)) + .margin(new DocumentInsets( + py(474 - 466) - CAP_INSET * PARTY_NAME_SIZE, 0, 0, 0))); + + block.addSection(id + "Address", lines -> { + lines.spacing(capPitch(25.3, BODY_SIZE)) + .margin(new DocumentInsets( + capPitch(30, PARTY_NAME_SIZE, BODY_SIZE), 0, 0, 0)); + List address = party.addressLines(); + for (int i = 0; i < address.size(); i++) { + String line = address.get(i); + int index = i; + lines.addParagraph(p -> p + .name(id + "Address_" + index) + .text(line) + .textStyle(style(BODY_SIZE, BODY))); + } + }); + + if (!party.registrationNumber().isBlank()) { + block.addParagraph(p -> { + p.name(id + "Registration"); + p.inlineText(party.registrationLabel(), style(BODY_SIZE, BODY)); + p.inlineText(spaces(26, BODY_SIZE), style(BODY_SIZE, BODY)); + p.inlineText(party.registrationNumber(), style(BODY_SIZE, BODY)); + p.margin(new DocumentInsets(capPitch(41, BODY_SIZE), 0, 0, 0)); + }); + } + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformSettlement.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformSettlement.java new file mode 100644 index 000000000..d9ab639c3 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformSettlement.java @@ -0,0 +1,279 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +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.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CAP_INSET; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CARD; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CARD_DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CARD_DISC_ICON; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CARD_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CARD_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.CARD_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.DUE_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_BORDER; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_BOTTOM_Y; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_HEAD_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_ICON; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_ICON_Y; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_LAST_ROW_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_NOTE_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_NOTE_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_NOTE_ICON; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_NOTE_LAST_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_PAD_ROWS_L; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_PAD_X; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_ROW1_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_ROW_PITCH_Y; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_RULE_Y; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_TOP_Y; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.PANEL_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.RIGHT_COLUMN_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.RULE_THICK; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.SMALL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.SUMMARY_GAP_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TOTALS_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TOTALS_PAD_R; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TOTALS_RULE_W; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TOTAL_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TOTAL_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.WHITE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.capPitch; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.py; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.style; +import static com.demcha.compose.document.templates.invoice.presets.PlatformWidgets.disc; +import static com.demcha.compose.document.templates.invoice.presets.PlatformWidgets.layeredRow; + +/** + * The band under the table: the outlined bank panel on the left, and on the + * right the totals over the filled card carrying the due date. + */ +final class PlatformSettlement { + + private PlatformSettlement() { + } + + /** + * The settlement row. + * + *

      The card stops short of the right margin, so the row carries the + * remainder as a cell of its own rather than letting the right column stretch + * into it.

      + */ + static void render(PageFlowBuilder page, InvoicePaymentBlock payment, + InvoiceTotalsBlock totals, String currencyCode) { + page.addRow("Settlement", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(PANEL_W), + DocumentRowColumn.fixed(SUMMARY_GAP_W), + DocumentRowColumn.fixed(RIGHT_COLUMN_W), + DocumentRowColumn.weight(1)) + .margin(new DocumentInsets(py(1046 - 1034), 0, 0, 0)); + row.addSection("PaymentPanel", column -> renderPaymentPanel(column, payment)); + row.addSection("SettlementGap", column -> column.spacing(0)); + row.addSection("SettlementRight", column -> { + column.spacing(0); + renderTotals(column, totals, currencyCode); + renderDueCard(column, payment); + }); + row.addSection("SettlementTail", column -> column.spacing(0)); + }); + } + + private static void renderPaymentPanel(SectionBuilder column, InvoicePaymentBlock payment) { + column.spacing(0) + .keepTogether() + .fillColor(WHITE) + .stroke(DocumentStroke.of(PANEL_BORDER, RULE_THICK)) + .cornerRadius(PANEL_RADIUS); + + layeredRow(column, "PaymentHeading", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(PANEL_HEAD_GUTTER), + DocumentRowColumn.weight(1)) + .padding(new DocumentInsets(py(PANEL_ICON_Y - PANEL_TOP_Y), 0, 0, PANEL_PAD_X)); + row.add(PlatformIcons.icon(PlatformIcons.BANK).node(PANEL_ICON)); + row.addParagraph(p -> p + .name("PaymentHeadingText") + .text(payment.heading()) + .textStyle(bold(LABEL_SIZE, ACCENT))); + }); + + column.addSection("PaymentRows", rows -> { + rows.spacing(capPitch(PANEL_ROW_PITCH_Y, SMALL_SIZE)) + .padding(new DocumentInsets(0, PANEL_PAD_X, 0, PANEL_PAD_ROWS_L)) + // Measured from the mark, because the heading layer's height + // is the mark's and not the label's line box. + .margin(new DocumentInsets( + py(PANEL_ROW1_CAP_Y - PANEL_ICON_Y) + - CAP_INSET * SMALL_SIZE - PANEL_ICON, + 0, 0, 0)); + List fields = payment.fields(); + for (int i = 0; i < fields.size(); i++) { + InvoicePaymentBlock.Field field = fields.get(i); + layeredRow(rows, "PaymentRow_" + i, row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(PANEL_LABEL_W), + DocumentRowColumn.weight(1)); + row.addParagraph(p -> p.text(field.label()).textStyle(style(SMALL_SIZE, BODY))); + row.addParagraph(p -> { + p.text(field.value()).textStyle(style(SMALL_SIZE, INK)); + // A bank detail is a reference, not a destination — + // except the remittance address, the one field on the + // panel a reader would act on. + if (field.value().contains("@")) { + p.link(InvoiceUri.mailLink(field.value())); + } + }); + }); + } + }); + + if (payment.instruction().isBlank()) { + return; + } + column.addLine(line -> line + .name("PaymentPanelRule") + .horizontal(PANEL_W) + .thickness(RULE_THICK) + .color(HAIRLINE) + .margin(new DocumentInsets( + py(PANEL_RULE_Y - PANEL_LAST_ROW_CAP_Y) + - (LINE_BOX - CAP_INSET) * SMALL_SIZE, + 0, 0, 0))); + layeredRow(column, "PaymentNote", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(PANEL_NOTE_GUTTER), + DocumentRowColumn.weight(1)) + .padding(new DocumentInsets( + py(PANEL_NOTE_CAP_Y - PANEL_RULE_Y) - CAP_INSET * SMALL_SIZE, + 0, + py(PANEL_BOTTOM_Y - PANEL_NOTE_LAST_CAP_Y) + - (LINE_BOX - CAP_INSET) * SMALL_SIZE, + PANEL_PAD_X)); + row.add(PlatformIcons.icon(PlatformIcons.INFO).node(PANEL_NOTE_ICON)); + row.addSection("PaymentNoteText", text -> { + text.spacing(capPitch(22, SMALL_SIZE)); + String[] lines = payment.instruction().split("\n"); + for (int i = 0; i < lines.length; i++) { + String prose = lines[i]; + int index = i; + text.addParagraph(p -> p + .name("PaymentNoteLine_" + index) + .text(prose) + .textStyle(style(SMALL_SIZE, BODY))); + } + }); + }); + } + + /** + * The summed rows and the grand total. + * + *

      The summed rows are written bare, under a column that already states + * the currency; the grand total carries the code, because it stands alone + * under no caption and a bare figure there names no currency at all.

      + */ + private static void renderTotals(SectionBuilder column, InvoiceTotalsBlock totals, + String currencyCode) { + column.addSection("Totals", block -> { + block.spacing(0) + .keepTogether() + .padding(new DocumentInsets(0, 0, 0, TOTALS_PAD_L)) + .margin(new DocumentInsets(py(1065 - 1046) - CAP_INSET * BODY_SIZE, 0, 0, 0)); + List rows = totals.rows(); + for (int i = 0; i < rows.size(); i++) { + InvoiceTotalsBlock.Row entry = rows.get(i); + boolean first = i == 0; + layeredRow(block, "TotalsRow_" + i, row -> { + row.spacing(0) + .padding(new DocumentInsets(0, TOTALS_PAD_R, 0, 0)) + .margin(new DocumentInsets( + first ? 0 : capPitch(31, BODY_SIZE), 0, 0, 0)) + .evenWeights(); + row.addParagraph(p -> p.text(entry.label()).textStyle(style(BODY_SIZE, BODY))); + row.addParagraph(p -> p + .text(PlatformText.money(entry.amount())) + .textStyle(style(BODY_SIZE, INK)) + .align(TextAlign.RIGHT)); + }); + } + block.addLine(line -> line + .name("TotalsRule") + .horizontal(TOTALS_RULE_W) + .thickness(RULE_THICK) + .color(HAIRLINE) + .margin(new DocumentInsets( + py(1127) - (py(1096) + (LINE_BOX - CAP_INSET) * BODY_SIZE), 0, 0, 0))); + layeredRow(block, "TotalDue", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .padding(new DocumentInsets( + py(1155 - 1129) - CAP_INSET * TOTAL_VALUE_SIZE, + TOTALS_PAD_R, 0, 0)) + .evenWeights(); + row.addParagraph(p -> p + .name("TotalDueLabel") + .text(totals.totalLabel()) + .textStyle(bold(TOTAL_LABEL_SIZE, INK))); + row.addParagraph(p -> p + .name("TotalDueValue") + .text(PlatformText.coded(currencyCode, totals.totalAmount())) + .textStyle(bold(TOTAL_VALUE_SIZE, ACCENT)) + .align(TextAlign.RIGHT)); + }); + }); + } + + private static void renderDueCard(SectionBuilder column, InvoicePaymentBlock payment) { + if (payment.dueNotice().isBlank() && payment.dueNoticeEmphasis().isBlank()) { + return; + } + column.addSection("DueDateCard", panel -> { + panel.spacing(0) + .keepTogether() + .fillColor(CARD) + .cornerRadius(CARD_RADIUS) + .margin(new DocumentInsets(py(1215 - 1182), 0, 0, 0)); + layeredRow(panel, "DueDateRow", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(CARD_GUTTER), DocumentRowColumn.weight(1)) + .padding(new DocumentInsets( + py(1235 - 1215), 0, py(1306 - 1285), CARD_PAD_L)); + row.add(disc("DueDateDisc", PlatformIcons.CALENDAR, CARD_DISC_D, CARD_DISC_ICON)); + row.addSection("DueDateText", text -> { + text.spacing(capPitch(28, LABEL_SIZE, DUE_VALUE_SIZE)); + text.addParagraph(p -> p + .name("DueDateLabel") + .text(payment.dueNotice()) + .textStyle(bold(LABEL_SIZE, ACCENT))); + text.addParagraph(p -> p + .name("DueDateValue") + .text(payment.dueNoticeEmphasis()) + .textStyle(bold(DUE_VALUE_SIZE, INK))); + }); + }); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformStyles.java new file mode 100644 index 000000000..30f3f3fed --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformStyles.java @@ -0,0 +1,335 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.font.FontName; + +/** + * Every measurement, colour and type size of the Platform invoice. + * + *

      Two scales, on purpose

      + * + *

      The design is 1.50 aspect and A4 is 1.414, so one conversion constant + * cannot serve both axes. {@link #px(double)} is horizontal and every column + * width, x-offset and font size goes through it, because that is the axis where + * advance widths have to fit. {@link #py(double)} is vertical, 6.3% tighter, and + * every block height, line pitch and gap goes through that. {@link #sq(double)} + * is their mean, for the two square things on the sheet — marks and discs — + * which cannot match both axes and are therefore about 3% out in each rather + * than 6% out in one.

      + * + *

      Writing a vertical measurement as {@code px(n)} would stretch the sheet by + * 6.3% without anything failing. The split exists to make that visible.

      + */ +final class PlatformStyles { + + private PlatformStyles() { + } + + // ------------------------------------------------------------------ + // The page and its two scales + // ------------------------------------------------------------------ + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + + private static final double PAGE_W = PAGE.width(); + private static final double PAGE_H = PAGE.height(); + + /** The design image's own pixel size — the units every measurement below is in. */ + private static final double REF_W = 1024.0; + private static final double REF_H = 1536.0; + + /** Points per design pixel, horizontal. */ + private static final double PX = PAGE_W / REF_W; + + /** + * Points per design pixel, vertical. + * + *

      The design's full height maps onto the page's full height, which is what + * a comparison against it does: the image is resampled to the render's width + * and height, so a design pixel at y is compared against the page at + * y / 1536 of its height and nothing else. Anchoring the scale on anything + * narrower — the last ink, say — tilts every measurement below the masthead + * by the difference, growing to a visible offset by the foot of the page.

      + */ + private static final double PY = PAGE_H / REF_H; + + /** Points per design pixel for anything square. */ + private static final double SQ = (PX + PY) / 2.0; + + static double px(double designPixels) { + return designPixels * PX; + } + + static double py(double designPixels) { + return designPixels * PY; + } + + static double sq(double designPixels) { + return designPixels * SQ; + } + + // ------------------------------------------------------------------ + // Type, and the arithmetic the design's pitches need + // ------------------------------------------------------------------ + + /** + * The sheet is set in Barlow throughout. The templates artifact carries no + * fonts — register the family on the session, or the engine substitutes and + * the cap arithmetic below no longer describes the type sitting in it. + */ + static final FontName FACE = FontName.BARLOW; + + /** Barlow's capHeight / unitsPerEm, identical in Regular and Bold. */ + private static final double FACE_CAP_RATIO = 0.700; + + /** Barlow's ascender, as a share of the em. */ + private static final double FACE_ASCENT = 1.000; + + /** The line box the engine lays a paragraph out in, as a multiple of the size. */ + static final double LINE_BOX = 1.200; + + /** What a line box carries above its own cap. */ + static final double CAP_INSET = FACE_ASCENT - FACE_CAP_RATIO; + + /** Barlow's space advance, as a share of the em. */ + private static final double FACE_SPACE_ADVANCE = 0.200; + + /** A size whose caps measure {@code capPx} on the design. */ + static double sizeForCap(double capPx) { + return px(capPx) / FACE_CAP_RATIO; + } + + /** + * The gap to put between two stacked text boxes so their cap tops land + * {@code pitchPx} design pixels apart. + * + *

      Line spacing and section spacing are additive terms in points + * between boxes rather than multiples of the type size, and a box reaches + * the full ascent above its baseline where the cap only reaches + * {@code FACE_CAP_RATIO}. So the gap is the measured pitch minus what the + * previous box hangs below its own cap and what the next box carries above + * its own.

      + * + *

      The result is clamped at zero, and on this sheet that clamp fires. Type + * is sized on the horizontal scale because advance widths have to fit the + * columns, while pitches are measured on the vertical one, which is 6.3% + * tighter — so a line box can be marginally taller than the pitch the design + * sets it at. The closing note is the case: 22 design pixels of pitch against + * a line box that occupies 22.1. Zero spacing lands it a tenth of a pixel + * out, which is the closest the compressed page can come, and a negative gap + * is not something the engine accepts.

      + * + * @param pitchPx the cap-to-cap distance the design sets + * @param prevSize the size of the box above + * @param nextSize the size of the box below + * @return the gap between the two boxes + */ + static double capPitch(double pitchPx, double prevSize, double nextSize) { + return Math.max(0, py(pitchPx) - (LINE_BOX - CAP_INSET) * prevSize - CAP_INSET * nextSize); + } + + /** The same, for two lines of one size. */ + static double capPitch(double pitchPx, double size) { + return capPitch(pitchPx, size, size); + } + + static final double TITLE_SIZE = sizeForCap(39); + static final double SUPPLIER_NAME_SIZE = sizeForCap(16); + static final double PARTY_NAME_SIZE = sizeForCap(13); + static final double BODY_SIZE = sizeForCap(12); + static final double SMALL_SIZE = sizeForCap(11); + static final double TINY_SIZE = sizeForCap(10); + static final double LABEL_SIZE = sizeForCap(12); + static final double TABLE_HEAD_SIZE = sizeForCap(10); + static final double TOTAL_LABEL_SIZE = sizeForCap(15); + static final double TOTAL_VALUE_SIZE = sizeForCap(20); + static final double DUE_VALUE_SIZE = sizeForCap(15); + static final double NOTE_SIZE = sizeForCap(11); + static final double FOOTER_SIZE = sizeForCap(8); + + static DocumentTextStyle style(double size, DocumentColor color) { + return type(size, color, DocumentTextDecoration.DEFAULT); + } + + static DocumentTextStyle bold(double size, DocumentColor color) { + return type(size, color, DocumentTextDecoration.BOLD); + } + + private static DocumentTextStyle type(double size, DocumentColor color, + DocumentTextDecoration decoration) { + return DocumentTextStyle.builder() + .fontName(FACE) + .size(size) + .color(color) + .decoration(decoration) + .build(); + } + + // ------------------------------------------------------------------ + // The page box + // ------------------------------------------------------------------ + + /** + * Points reserved at the foot of every page for the enumeration, and the + * bottom margin that keeps the body out of it. + * + *

      The band's height is also what positions the number inside it: the + * engine seats the text's line box at the band's top and the band's foot is + * the paper's, so the number rises point for point with this constant. At + * nine points the descender came within a point of the paper edge, which + * reads as a printing accident rather than a margin.

      + * + *

      The margin is the band, and not the band plus a chosen number. + * Reserving less is what lets a continuation page's last row run into the + * enumeration — a defect page one is structurally unable to show, because its + * content ends well above the fold. Reserving more is a second gap doing the + * job the band's own top leading already does.

      + */ + static final double FOOTER_BAND_H = 12.0; + + static final double MARGIN_TOP = py(45) - CAP_INSET * TITLE_SIZE; + static final double MARGIN_X = px(44); + static final double MARGIN_BOTTOM = FOOTER_BAND_H; + + static final DocumentInsets PAGE_MARGIN = + new DocumentInsets(MARGIN_TOP, MARGIN_X, MARGIN_BOTTOM, MARGIN_X); + + static final double CONTENT_W = PAGE_W - 2 * MARGIN_X; + + /** Flow y of a design y, for the few places a gap is measured from the page. */ + static double flowY(double designY) { + return py(designY) - MARGIN_TOP; + } + + // ------------------------------------------------------------------ + // Columns and blocks + // ------------------------------------------------------------------ + + /** Every rule on the sheet. */ + static final double RULE_THICK = py(1.2); + + static final double PANEL_RADIUS = px(8); + static final double CARD_RADIUS = px(8); + + static final double LOCKUP_W = px(292); + static final double FOOTER_LOCKUP_W = px(180); + + static final double LEFT_COLUMN_W = px(463); + static final double DIVIDER_W = px(1); + static final double META_PAD_L = px(65); + static final double META_LABEL_W = px(175); + + static final double BILL_TO_GUTTER = px(56); + static final double BILL_TO_PAD_L = px(5); + static final double SHIP_TO_GUTTER = px(53); + static final double SHIP_TO_PAD_L = px(32); + + static final double DISC_D = sq(33); + static final double DISC_ICON = sq(18); + static final double PIN_W = sq(29); + static final double CONTACT_ICON = sq(18); + static final double CONTACT_GAP_PX = 20.0; + + // ------------------------------------------------------------------ + // The usage table + // ------------------------------------------------------------------ + + /** The pitch of the design's five body rows, measured across all of them. */ + private static final double TABLE_ROW_PITCH_Y = (1034 - 696) / 5.0; + + /** A separator asked for less than a point is laid out as one. */ + static final double TABLE_RULE_LAID_OUT = 1.0; + + static final double TABLE_HEADER_H = py(41); + static final double TABLE_ROW_H = py(TABLE_ROW_PITCH_Y) - TABLE_RULE_LAID_OUT; + + static final double TABLE_PAD_FIRST = px(29); + static final double TABLE_PAD_X = px(19); + static final double TABLE_PAD_RIGHT = px(8); + + /** + * A centred column carries far less side padding than a left-aligned one: + * nineteen design pixels on both sides does not leave room for the widest + * heading inside its measured column. + */ + static final double TABLE_PAD_CENTRED = px(6); + + static final double TABLE_PAD_ICON = px(18); + static final double TABLE_ICON = sq(36); + static final double TABLE_ICON_GUTTER = px(36); + static final double TABLE_ICON_GAP = px(22); + + // ------------------------------------------------------------------ + // Settlement + // ------------------------------------------------------------------ + + static final double PANEL_W = px(415); + static final double PANEL_PAD_X = px(24); + static final double PANEL_HEAD_GUTTER = px(50); + static final double PANEL_NOTE_GUTTER = px(39); + static final double PANEL_LABEL_W = px(180); + static final double PANEL_ICON = sq(24); + static final double PANEL_NOTE_ICON = sq(23); + static final double PANEL_PAD_ROWS_L = px(25); + + static final double SUMMARY_GAP_W = px(81); + static final double RIGHT_COLUMN_W = px(405); + static final double TOTALS_PAD_L = px(10); + static final double TOTALS_PAD_R = px(13); + static final double TOTALS_RULE_W = px(395); + + static final double CARD_DISC_D = sq(50); + static final double CARD_DISC_ICON = sq(26); + static final double CARD_PAD_L = px(23); + static final double CARD_GUTTER = px(69); + + static final double NOTE_ICON = sq(26); + static final double NOTE_GUTTER = px(45); + + // The design's measured y positions inside the settlement band. + static final double PANEL_TOP_Y = 1046; + static final double PANEL_ICON_Y = 1064; + static final double PANEL_ROW1_CAP_Y = 1103; + static final double PANEL_ROW_PITCH_Y = 21.7; + static final double PANEL_LAST_ROW_CAP_Y = 1254; + static final double PANEL_RULE_Y = 1286; + static final double PANEL_NOTE_CAP_Y = 1302; + static final double PANEL_NOTE_LAST_CAP_Y = 1324; + static final double PANEL_BOTTOM_Y = 1350; + + /** Design y of the last ink on the sheet: the foot of the identity band. */ + static final double REF_CONTENT_BOTTOM = 1505.0; + + // ------------------------------------------------------------------ + // Colour + // ------------------------------------------------------------------ + + static final DocumentColor ACCENT = DocumentColor.rgb(26, 115, 232); + static final DocumentColor INK = DocumentColor.rgb(32, 33, 36); + static final DocumentColor BODY = DocumentColor.rgb(60, 64, 67); + static final DocumentColor MUTED = DocumentColor.rgb(95, 99, 104); + static final DocumentColor BAND = DocumentColor.rgb(239, 244, 254); + static final DocumentColor CARD = DocumentColor.rgb(244, 248, 254); + static final DocumentColor PANEL_BORDER = DocumentColor.rgb(226, 236, 253); + static final DocumentColor RULE = DocumentColor.rgb(224, 224, 225); + static final DocumentColor HAIRLINE = DocumentColor.rgb(229, 229, 230); + static final DocumentColor WHITE = DocumentColor.WHITE; + + /** + * A run of spaces that advances {@code widthPx} design pixels at + * {@code size}, for the two places the design sets a measured gap inside one + * paragraph rather than between two. + * + * @param widthPx the gap the design measures + * @param size the type the gap is set in + * @return the spaces to write + */ + static String spaces(double widthPx, double size) { + int count = (int) Math.round(px(widthPx) / (FACE_SPACE_ADVANCE * size)); + return " ".repeat(Math.max(1, count)); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformText.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformText.java new file mode 100644 index 000000000..431fb873e --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformText.java @@ -0,0 +1,79 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import java.math.BigDecimal; +import java.text.NumberFormat; +import java.util.Locale; + +/** + * How the Platform invoice writes its figures. + * + *

      This design states its currency once per money column and writes the + * figures under it bare, so nothing here carries a code. The locale is stated + * rather than inherited, so the same data renders the same sheet on any + * machine.

      + */ +final class PlatformText { + + /** A metered rate is quoted to four places; an amount and a count to two. */ + private static final int RATE_MAX_DIGITS = 4; + private static final int MONEY_DIGITS = 2; + + private PlatformText() { + } + + /** An amount, grouped and to two places. */ + static String money(BigDecimal value) { + return decimal(value, MONEY_DIGITS, MONEY_DIGITS); + } + + /** An amount behind its currency code, for the one figure that stands alone. */ + static String coded(String currencyCode, BigDecimal value) { + return currencyCode == null || currencyCode.isBlank() + ? money(value) + : currencyCode.trim() + " " + money(value); + } + + /** + * A unit price at the precision it is quoted at. + * + *

      Metered rates are fractions of a currency unit — an hour of compute at + * 0.0670 rounds to 0.07 at an amount's two places, which is a different price + * and multiplies out to a different bill. A rate is written at its own scale, + * never at fewer than two places and never at more than four.

      + */ + static String rate(BigDecimal value) { + int digits = Math.min(Math.max(value.scale(), MONEY_DIGITS), RATE_MAX_DIGITS); + return decimal(value, digits, digits); + } + + /** + * A usage figure, written the way the design writes it. + * + *

      Usage that names a unit is a measurement and carries two places even + * when it lands on a whole number — 730.00 hours, 250.00 gigabytes — because + * the meter reads to that precision and a bare "730" claims it did not. + * Usage that names no unit is a tally of whole things, and the design writes + * it bare.

      + * + * @param value the metered figure + * @param unit what it counts, blank when the line counts whole things + * @return the figure as the sheet prints it + */ + static String usage(BigDecimal value, String unit) { + if (unit == null || unit.isBlank()) { + BigDecimal stripped = value.stripTrailingZeros(); + return stripped.scale() <= 0 + ? stripped.toBigInteger().toString() + : stripped.toPlainString(); + } + return decimal(value, MONEY_DIGITS, MONEY_DIGITS); + } + + private static String decimal(BigDecimal value, int min, int max) { + NumberFormat format = NumberFormat.getNumberInstance(Locale.ENGLISH); + format.setGroupingUsed(true); + format.setMinimumFractionDigits(min); + format.setMaximumFractionDigits(max); + return format.format(value); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformWidgets.java new file mode 100644 index 000000000..1304be467 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformWidgets.java @@ -0,0 +1,115 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.RowBuilder; +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.DocumentRowColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; + +import java.util.function.Consumer; + +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.DISC_ICON; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.SMALL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_ICON; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_ICON_GAP; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.TABLE_ICON_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.capPitch; +import static com.demcha.compose.document.templates.invoice.presets.PlatformStyles.style; + +/** + * The shapes the Platform invoice repeats: a horizontal pair inside a column, + * the filled disc a party heading opens with, and the mark-and-two-lines block + * that fills the table's first column. + */ +final class PlatformWidgets { + + private PlatformWidgets() { + } + + /** + * A row wrapped in a layer, so it can sit inside a row cell. + * + *

      A row nested in a row cell is refused by the layout compiler, and + * through a section too — it is the ancestry that matters, not the immediate + * parent. A row wrapped in a LayerStack layer lays out horizontally there. + * Every horizontal pair below the top level goes through here.

      + * + * @param parent the section the pair belongs to + * @param name the pair's name, which its holder and layer extend + * @param spec the row itself + */ + static void layeredRow(SectionBuilder parent, String name, Consumer spec) { + SectionBuilder holder = new SectionBuilder(); + holder.name(name + "Holder"); + holder.addRow(name, spec); + DocumentNode node = holder.build(); + parent.addLayerStack(stack -> stack + .name(name + "Layer") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** A mark knocked out of a filled accent disc. */ + static DocumentNode disc(String name, String token, double diameter, double markSize) { + return new ShapeContainerBuilder() + .name(name) + .circle(diameter) + .fillColor(ACCENT) + .center(PlatformIcons.icon(token).node(markSize)) + .build(); + } + + /** The party disc, at the size the two headings use. */ + static DocumentNode partyDisc(String name, String token) { + return disc(name, token, DISC_D, DISC_ICON); + } + + /** + * The service mark and the two-line description beside it, as one table cell's + * content. + * + *

      The mark hangs in a fixed gutter and the text takes the rest, so a longer + * product name wraps under itself rather than under the mark.

      + * + * @param line the service line + * @param index the line's index, which names the block + * @return the block + */ + static DocumentNode descriptionCell(InvoiceServiceLines.Line line, int index) { + String token = line.icon(); + SectionBuilder holder = new SectionBuilder(); + holder.name("Description_" + index + "Holder"); + holder.addRow("Description_" + index, cell -> { + cell.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(TABLE_ICON_GUTTER + TABLE_ICON_GAP), + DocumentRowColumn.weight(1)); + cell.addSection("DescriptionIcon_" + index, gutter -> { + gutter.spacing(0); + if (!token.isBlank()) { + gutter.addSvgIcon(PlatformIcons.icon(token), TABLE_ICON); + } + }); + cell.addSection("DescriptionText_" + index, text -> { + text.spacing(capPitch(23, BODY_SIZE, SMALL_SIZE)); + text.addParagraph(p -> p + .name("LineTitle_" + index) + .text(line.title()) + .textStyle(bold(BODY_SIZE, INK))); + text.addParagraph(p -> p + .name("LineSubtitle_" + index) + .text(line.description()) + .textStyle(style(SMALL_SIZE, MUTED))); + }); + }); + return holder.build(); + } +} diff --git a/templates/src/main/resources/templates/invoice/platform/icons/bank.svg b/templates/src/main/resources/templates/invoice/platform/icons/bank.svg new file mode 100644 index 000000000..308bc13d0 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/bill-to.svg b/templates/src/main/resources/templates/invoice/platform/icons/bill-to.svg new file mode 100644 index 000000000..98e94c3ac --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/bill-to.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/calendar.svg b/templates/src/main/resources/templates/invoice/platform/icons/calendar.svg new file mode 100644 index 000000000..ec36dc3f6 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/compute.svg b/templates/src/main/resources/templates/invoice/platform/icons/compute.svg new file mode 100644 index 000000000..75fcdd873 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/compute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/database.svg b/templates/src/main/resources/templates/invoice/platform/icons/database.svg new file mode 100644 index 000000000..b382c996d --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/database.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/email.svg b/templates/src/main/resources/templates/invoice/platform/icons/email.svg new file mode 100644 index 000000000..e25560c04 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/info-outline.svg b/templates/src/main/resources/templates/invoice/platform/icons/info-outline.svg new file mode 100644 index 000000000..8ebf8147b --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/info-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/info.svg b/templates/src/main/resources/templates/invoice/platform/icons/info.svg new file mode 100644 index 000000000..8ebf8147b --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/network.svg b/templates/src/main/resources/templates/invoice/platform/icons/network.svg new file mode 100644 index 000000000..5bffd238c --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/phone.svg b/templates/src/main/resources/templates/invoice/platform/icons/phone.svg new file mode 100644 index 000000000..6cb9b3630 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/ship-to.svg b/templates/src/main/resources/templates/invoice/platform/icons/ship-to.svg new file mode 100644 index 000000000..c2abefab2 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/ship-to.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/storage.svg b/templates/src/main/resources/templates/invoice/platform/icons/storage.svg new file mode 100644 index 000000000..8779098c4 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/support.svg b/templates/src/main/resources/templates/invoice/platform/icons/support.svg new file mode 100644 index 000000000..04679786f --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/support.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/platform/icons/website.svg b/templates/src/main/resources/templates/invoice/platform/icons/website.svg new file mode 100644 index 000000000..b7c38fe5d --- /dev/null +++ b/templates/src/main/resources/templates/invoice/platform/icons/website.svg @@ -0,0 +1 @@ + \ No newline at end of file From 95de7c24b5f427704593ee1ec518739162fcba1e Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 18:08:20 +0100 Subject: [PATCH 38/85] feat(templates): add a per-seat subscription invoice preset (#649) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SubscriptionInvoice ports the rendered layout of a published standalone template onto the existing StructuredInvoiceData model: a lockup against the title, the supplier's details beside a metadata panel whose rows each open with a coloured bar, two addressed parties under coloured underlines, a six-column table carrying a tax rate on every line, the notes beside the totals, a marked payment band, a four-segment strip, and a closing band that bleeds to three paper edges. The port is exact. Rendered against the frozen original with the same data the text layers are identical — all 218 words in the same place — and the body carries no differing pixel at all. Two things differ, both by design: the masthead mark, which the preset leaves to the caller, and the enumeration, which sets the sheet's own face where the original took the zone default. It is the first preset in the family to draw a per-line tax rate and its caption, because it bills in a jurisdiction that prints the rate on the line rather than only in the sum. It is also the first to number its lines, from lineNumber() when a line states one and from its position when it does not. Colour is by position and never by meaning: the metadata bars, the party underlines and the closing strip draw from one four-colour cycle indexed by where a thing sits, so nothing in the document ever names a colour. The page carries no side margins, because the strip and the closing band have to reach the paper edges and do it by being the only blocks without horizontal padding. Money is written with the currency's mark against the digits, which is also this preset's one boundary: the columns are measured for a one-character mark, so a currency the runtime knows only by its three-letter code does not fit the unit-price column and the render is refused there rather than letting the figure run under its neighbour. That is documented on the preset and pinned by a test rather than left to be discovered. Tests: a smoke test covering the per-line rate, line numbering from both sources, the currency boundary, a payment band with a different cell count, an invoice that ships nowhere and pagination; an exact layout snapshot; and a pixel baseline. One fixture feeds all three. Reactor gate green. --- CHANGELOG.md | 36 + knowledge/api/templates.json | 42 +- knowledge/api/templates.md | 6 +- .../presets/SubscriptionInvoiceFixtures.java | 103 + ...SubscriptionInvoiceLayoutSnapshotTest.java | 22 + .../presets/SubscriptionInvoiceSmokeTest.java | 225 + .../SubscriptionInvoiceVisualParityTest.java | 33 + .../invoice/subscription_invoice_layout.json | 5057 +++++++++++++++++ .../subscription_invoice-page-0.png | Bin 0 -> 89542 bytes .../invoice/presets/SubscriptionClosing.java | 303 + .../invoice/presets/SubscriptionIcons.java | 74 + .../invoice/presets/SubscriptionInvoice.java | 181 + .../invoice/presets/SubscriptionLines.java | 175 + .../invoice/presets/SubscriptionMasthead.java | 233 + .../invoice/presets/SubscriptionParties.java | 106 + .../presets/SubscriptionSettlement.java | 150 + .../invoice/presets/SubscriptionStyles.java | 377 ++ .../invoice/presets/SubscriptionText.java | 74 + .../invoice/presets/SubscriptionWidgets.java | 81 + .../invoice/subscription/icons/bank.svg | 1 + .../subscription/icons/beneficiary.svg | 1 + .../invoice/subscription/icons/card.svg | 1 + .../invoice/subscription/icons/reference.svg | 1 + .../invoice/subscription/icons/shield.svg | 1 + .../invoice/subscription/icons/transfer.svg | 1 + 25 files changed, 7279 insertions(+), 5 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/subscription_invoice_layout.json create mode 100644 qa/src/test/resources/visual-baselines/invoice-v2-layered/subscription_invoice-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoice.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionLines.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionParties.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionSettlement.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionText.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionWidgets.java create mode 100644 templates/src/main/resources/templates/invoice/subscription/icons/bank.svg create mode 100644 templates/src/main/resources/templates/invoice/subscription/icons/beneficiary.svg create mode 100644 templates/src/main/resources/templates/invoice/subscription/icons/card.svg create mode 100644 templates/src/main/resources/templates/invoice/subscription/icons/reference.svg create mode 100644 templates/src/main/resources/templates/invoice/subscription/icons/shield.svg create mode 100644 templates/src/main/resources/templates/invoice/subscription/icons/transfer.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c45e3b00..c3eb3dcf2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -168,6 +168,42 @@ follow semantic versioning; release dates are ISO 8601. recognisable; a number is not — dates, reference numbers and amounts all look like one — so only the structured contact field is linked. +- **A per-seat subscription invoice preset: `SubscriptionInvoice`.** A lockup against the + title, the supplier's details beside a metadata panel whose rows each open with a + coloured bar, two addressed parties under coloured underlines, a six-column table + carrying a tax rate on every line, the notes beside the totals, a marked payment band, + a four-segment strip, and a closing band that bleeds to three paper edges. Ships as + `invoice.presets.SubscriptionInvoice` on the existing `StructuredInvoiceData` model, + porting the rendered layout of a published standalone template — and this one is exact: + rendered against the frozen original with the same data the text layers are + **identical, all 218 words in the same place**, and the body carries **no differing + pixel at all**. Only two things differ, both by design: the masthead mark, which the + preset leaves to the caller, and the enumeration, which sets the sheet's own face where + the original took the zone default. +

      + It is the first preset in the family to draw `InvoiceServiceLines.Line.vatRate()` and + its caption — it bills in a jurisdiction that prints the rate per line rather than only + as a total — and the first to number its lines, from `lineNumber()` when a line states + one and from its position when it does not. +

      + Colour is by position and never by meaning: the metadata bars, the party underlines and + the closing strip all draw from one four-colour cycle indexed by where a thing sits, so + the fourth metadata row is amber because it is fourth and nothing in the document ever + names a colour. The page carries no side margins, because the strip and the closing band + have to reach the paper edges and do it by being the only blocks without horizontal + padding; the band reaches the bottom edge by bleeding rather than by being last, which + is what lets the enumeration sit over its fill for nothing. +

      + Money is written with the currency's mark against the digits, so every figure names its + own currency and no column states one — which is also the preset's one boundary, and it + is documented and tested rather than left to be discovered: the columns are measured for + a one-character mark, so a currency the runtime knows only by its three-letter code does + not fit the unit-price column and the render is refused there rather than letting the + figure run under its neighbour. Guarded by a smoke test (including the per-line rate, + line numbering from both sources, the currency boundary, a payment band with a different + cell count, an invoice that ships nowhere, and pagination), an exact layout snapshot, + and a pixel baseline — all three fed by one fixture. + - **A region-billed platform invoice preset: `PlatformInvoice`.** A lockup against the title, the supplier split from the invoice's own metadata by a full-height hairline, two addressed parties on differently-treated marks, a six-column usage table, an diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index b859b97ed..9b40897ed 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,10 +22,10 @@ "graph-compose-testing:sources" ], "counts": { - "types": 219, - "methods": 1229, - "constants": 168, - "generated": 651 + "types": 220, + "methods": 1230, + "constants": 170, + "generated": 653 }, "packages": [ { @@ -21039,6 +21039,40 @@ } ] }, + { + "name": "SubscriptionInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.SubscriptionInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "WorkspaceInvoice", "binaryName": "com.demcha.compose.document.templates.invoice.presets.WorkspaceInvoice", diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index 932f7b339..aa941b2c1 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 219 · methods: 1229 · constants: 168 · compiler-generated members: 651 +Types: 220 · methods: 1230 · constants: 170 · compiler-generated members: 653 ## com.demcha.compose.document.templates.api @@ -1772,6 +1772,10 @@ Types: 219 · methods: 1229 · constants: 168 · compiler-generated members: 651 - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME` +### SubscriptionInvoice (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + ### WorkspaceInvoice (class) - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceFixtures.java new file mode 100644 index 000000000..aa5c0f43d --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceFixtures.java @@ -0,0 +1,103 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * The one invoice the Subscription preset's tests render. + * + *

      Both gates read it: the exact layout snapshot and the pixel baseline. One + * fixture behind both is what makes the two comparable — a shift the snapshot + * catches is a shift in the same document the baseline was recorded from.

      + * + *

      It bills seats with a tax rate on every line, because that is what this + * design's table carries and the others' do not.

      + */ +final class SubscriptionInvoiceFixtures { + + private SubscriptionInvoiceFixtures() { + } + + /** A billing period of software subscriptions, billed to one customer. */ + static StructuredInvoiceData invoice() { + return StructuredInvoiceData.builder() + .brand(new InvoiceBrand(null, "Halstead", "", "", "", "")) + .supplier(new InvoiceContactBlock( + "Halstead Software Ltd.", + List.of("18 Chandler Row", "Leeds LS1 4QT", "United Kingdom"), + "", + "billing@halstead.example", + "www.halstead.example", + "", "", + "VAT No", "GB 418 2276 03")) + .masthead(new InvoiceMasthead("INVOICE", List.of( + new InvoiceMasthead.Entry("Invoice No", "HS-INV-2026-0417", false), + new InvoiceMasthead.Entry("Issue Date", "27 August 2026", false), + new InvoiceMasthead.Entry("Due Date", "10 September 2026", false), + new InvoiceMasthead.Entry("Payment Terms", "14 days", false), + new InvoiceMasthead.Entry("Currency", "GBP", false)))) + .billTo(new InvoiceRecipient("BILL TO", "Northline Consulting Ltd", + "Attn: Sarah Mitchell", + List.of("21 Jubilee Way", "London SE1 3SS", "United Kingdom"), + "", "", "", "")) + .shipTo(new InvoiceRecipient("SHIP TO", "Northline Consulting Ltd", + "The Foundry, 2nd Floor", + List.of("17-19 Great Suffolk Street", "London SE1 0NS", + "United Kingdom"), + "", "", "", "")) + .serviceLines(new InvoiceServiceLines( + new InvoiceServiceLines.Columns("#", "DESCRIPTION", "", + "QTY", "UNIT PRICE", "AMOUNT", "VAT"), + lines())) + .totals(new InvoiceTotalsBlock(List.of( + new InvoiceTotalsBlock.Row("Subtotal", new BigDecimal("947.00")), + new InvoiceTotalsBlock.Row("VAT (20%)", new BigDecimal("189.40"))), + "TOTAL DUE", new BigDecimal("1136.40"))) + .payment(new InvoicePaymentBlock("PAYMENT DETAILS", List.of( + new InvoicePaymentBlock.Field("Beneficiary", "Halstead Software Ltd"), + new InvoicePaymentBlock.Field("Bank", "Northgate Bank"), + new InvoicePaymentBlock.Field("Sort Code", "40-05-30"), + new InvoicePaymentBlock.Field("Account Number", "12345678"), + new InvoicePaymentBlock.Field("Reference", "HS-INV-2026-0417")), + "Please include the invoice number as the payment reference" + + " to ensure timely allocation.", + "Payment is due by 10 September 2026. If payment is not received" + + " by the due date, late fees may apply.\n" + + "For any queries, please contact billing@halstead.example.", + "", "", "Thank you for your business.")) + .notes(new InvoiceNotesBlock("NOTES", + List.of("This invoice covers software subscriptions and hosted" + + " services for the current billing period."), + "", "")) + .currencyCode("GBP") + .build(); + } + + private static List lines() { + List lines = new ArrayList<>(); + lines.add(line(1, "Halstead Workspace Premium (10 seats)", "10", "18.00", "180.00")); + lines.add(line(2, "Hosted Platform Services", "1", "420.00", "420.00")); + lines.add(line(3, "Analytics Pro Licences (5 seats)", "5", "8.40", "42.00")); + lines.add(line(4, "Priority Support Plan", "1", "275.00", "275.00")); + lines.add(line(5, "Voice Add-on (5 seats)", "5", "6.00", "30.00")); + return lines; + } + + private static InvoiceServiceLines.Line line(int number, String title, String quantity, + String unitPrice, String amount) { + return new InvoiceServiceLines.Line(number, title, "", "", + new BigDecimal(quantity), "", new BigDecimal(unitPrice), + new BigDecimal(amount), "20%", "", ""); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceLayoutSnapshotTest.java new file mode 100644 index 000000000..fc994f672 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceLayoutSnapshotTest.java @@ -0,0 +1,22 @@ +package com.demcha.compose.document.templates.invoice.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; + +class SubscriptionInvoiceLayoutSnapshotTest { + + @Test + void theInvoiceMatchesItsLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + SubscriptionInvoice.create().compose(session, + SubscriptionInvoiceFixtures.invoice()); + assertThat(session.layoutSnapshot().totalPages()).as("total pages").isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "subscription_invoice_layout", "invoice"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceSmokeTest.java new file mode 100644 index 000000000..fe7dbf8a9 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceSmokeTest.java @@ -0,0 +1,225 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +class SubscriptionInvoiceSmokeTest { + + // -- what the sheet says ------------------------------------------- + + @Test + void theSheetCarriesTheIssuerTheCustomerAndEveryLine() throws Exception { + String text = textOf(render(SubscriptionInvoiceFixtures.invoice())); + assertThat(text) + .contains("Halstead Software Ltd.") + .contains("Northline Consulting Ltd") + .contains("Halstead Workspace Premium (10 seats)") + .contains("Priority Support Plan") + .contains("TOTAL DUE"); + } + + @Test + void everyLineCarriesItsOwnTaxRate() throws Exception { + String text = textOf(render(SubscriptionInvoiceFixtures.invoice())); + // The rate is printed per line, not only in the sum, which is what the + // VAT column is for. + assertThat(text.split("20%", -1).length - 1).isGreaterThanOrEqualTo(5); + } + + @Test + void aLineIsNumberedByWhatItStatesAndOtherwiseByItsPosition() throws Exception { + StructuredInvoiceData stated = withLines(new InvoiceServiceLines( + SubscriptionInvoiceFixtures.invoice().serviceLines().columns(), + List.of(line(41, "Carried forward"), line(42, "Second")))); + assertThat(textOf(render(stated))).contains("41").contains("42"); + + StructuredInvoiceData unstated = withLines(new InvoiceServiceLines( + SubscriptionInvoiceFixtures.invoice().serviceLines().columns(), + List.of(line(0, "First"), line(0, "Second")))); + String text = textOf(render(unstated)); + assertThat(text).contains("1").contains("2"); + } + + @Test + void moneyCarriesItsCurrencySymbolAgainstTheDigits() throws Exception { + String text = textOf(render(SubscriptionInvoiceFixtures.invoice())); + // Every figure names its own currency, because no column states one. + assertThat(text).contains("£18.00").contains("£1,136.40"); + } + + @Test + void aCurrencyWhoseMarkTheColumnCannotHoldIsRejectedRatherThanOverflowed() { + StructuredInvoiceData base = SubscriptionInvoiceFixtures.invoice(); + StructuredInvoiceData data = StructuredInvoiceData.builder() + .brand(base.brand()).supplier(base.supplier()).masthead(base.masthead()) + .billTo(base.billTo()).shipTo(base.shipTo()) + .serviceLines(base.serviceLines()).totals(base.totals()) + .payment(base.payment()).notes(base.notes()) + .currencyCode("ZZZ").build(); + // The design writes money with a one-character mark and its columns are + // measured for one, so a currency the runtime knows only by its + // three-letter code does not fit the unit-price column. Widening it + // would be a different sheet, so the render is refused where it happens + // rather than letting the figure run under its neighbour — a defect a + // reader would have to catch by eye. + assertThatThrownBy(() -> render(data)) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("column"); + } + + // -- what a reader can act on -------------------------------------- + + @Test + void everyAddressTheSheetPrintsIsReachable() throws Exception { + List targets = linkTargets(render(SubscriptionInvoiceFixtures.invoice())); + assertThat(targets) + .contains("mailto:billing@halstead.example") + // A site printed without a scheme still needs one to open. + .contains("https://www.halstead.example"); + } + + @Test + void theClosingBandLinksTheAddressInsideItsSentence() throws Exception { + byte[] pdf = render(SubscriptionInvoiceFixtures.invoice()); + assertThat(textOf(pdf)).contains("For any queries, please contact"); + assertThat(linkTargets(pdf)) + .filteredOn(target -> target.equals("mailto:billing@halstead.example")) + // Once in the supplier block and once in the closing band. + .hasSizeGreaterThanOrEqualTo(2); + } + + // -- what the design assumes, and what it tolerates ---------------- + + @Test + void aPaymentBandWithADifferentCellCountStillDividesEvenly() throws Exception { + StructuredInvoiceData base = SubscriptionInvoiceFixtures.invoice(); + InvoicePaymentBlock payment = base.payment(); + StructuredInvoiceData data = StructuredInvoiceData.builder() + .brand(base.brand()).supplier(base.supplier()).masthead(base.masthead()) + .billTo(base.billTo()).shipTo(base.shipTo()) + .serviceLines(base.serviceLines()).totals(base.totals()) + .payment(new InvoicePaymentBlock(payment.heading(), + payment.fields().subList(0, 3), payment.instruction(), + payment.dueNotice(), "", "", payment.signOff())) + .notes(base.notes()).currencyCode(base.currencyCode()).build(); + String text = textOf(render(data)); + assertThat(text).contains("Beneficiary").contains("Sort Code") + .doesNotContain("Account Number"); + } + + @Test + void anInvoiceThatShipsNowhereLeavesTheSecondPartyOut() throws Exception { + StructuredInvoiceData base = SubscriptionInvoiceFixtures.invoice(); + StructuredInvoiceData data = StructuredInvoiceData.builder() + .brand(base.brand()).supplier(base.supplier()).masthead(base.masthead()) + .billTo(base.billTo()) + .serviceLines(base.serviceLines()).totals(base.totals()) + .payment(base.payment()).notes(base.notes()) + .currencyCode(base.currencyCode()).build(); + String text = textOf(render(data)); + assertThat(text).contains("BILL TO").doesNotContain("SHIP TO"); + } + + // -- how it flows --------------------------------------------------- + + @Test + void theDesignsOwnLineCountIsOneSheet() throws Exception { + assertThat(pagesOf(SubscriptionInvoiceFixtures.invoice())).isEqualTo(1); + } + + @Test + void enoughLinesPaginateAndTheHeaderComesBackWithThem() throws Exception { + List many = new ArrayList<>(); + for (int i = 1; i <= 40; i++) { + many.add(line(i, "Halstead Workspace Premium " + i)); + } + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + SubscriptionInvoiceFixtures.invoice().serviceLines().columns(), many)); + assertThat(pagesOf(data)).isGreaterThan(1); + + String text = textOf(render(data)); + // The caps header is repeated, so it appears once per page the table reaches. + assertThat(text.split("UNIT PRICE", -1).length - 1).isGreaterThan(1); + } + + // -- helpers --------------------------------------------------------- + + private static InvoiceServiceLines.Line line(int number, String title) { + return new InvoiceServiceLines.Line(number, title, "", "", + new BigDecimal("10"), "", new BigDecimal("18.00"), + new BigDecimal("180.00"), "20%", "", ""); + } + + private static byte[] render(StructuredInvoiceData data) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + SubscriptionInvoice.create().compose(session, data); + 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); + } + } + + private static int pagesOf(StructuredInvoiceData data) throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + SubscriptionInvoice.create().compose(session, data); + return session.layoutSnapshot().totalPages(); + } + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + private static StructuredInvoiceData withLines(InvoiceServiceLines lines) { + StructuredInvoiceData base = SubscriptionInvoiceFixtures.invoice(); + return StructuredInvoiceData.builder() + .brand(base.brand()) + .supplier(base.supplier()) + .masthead(base.masthead()) + .billTo(base.billTo()) + .shipTo(base.shipTo()) + .serviceLines(lines) + .totals(base.totals()) + .payment(base.payment()) + .notes(base.notes()) + .currencyCode(base.currencyCode()) + .build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceVisualParityTest.java new file mode 100644 index 000000000..9a3030d31 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoiceVisualParityTest.java @@ -0,0 +1,33 @@ +package com.demcha.compose.document.templates.invoice.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; + +class SubscriptionInvoiceVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "invoice-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()) { + SubscriptionInvoice.create().compose(document, + SubscriptionInvoiceFixtures.invoice()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("subscription_invoice", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/subscription_invoice_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/subscription_invoice_layout.json new file mode 100644 index 000000000..95370e330 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/subscription_invoice_layout.json @@ -0,0 +1,5057 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 595.276, + "innerHeight" : 813.113, + "margin" : { + "top" : 17.492, + "right" : 0.0, + "bottom" : 11.285, + "left" : 0.0 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "SubscriptionInvoice[0]", + "entityName" : "SubscriptionInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 0.0, + "computedY" : 15.283, + "placementX" : 0.0, + "placementY" : 15.283, + "placementWidth" : 595.276, + "placementHeight" : 809.116, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 809.116, + "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" : "SubscriptionInvoice[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 773.592, + "placementX" : 0.0, + "placementY" : 773.592, + "placementWidth" : 595.276, + "placementHeight" : 50.806, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 50.806, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 27.084, + "bottom" : 0.0, + "left" : 27.084 + } + }, { + "path" : "SubscriptionInvoice[0]/Masthead[0]/BrandMark[0]", + "entityName" : "BrandMark", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.084, + "computedY" : 824.398, + "placementX" : 27.084, + "placementY" : 824.398, + "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" : "SubscriptionInvoice[0]/Masthead[0]/BrandWordmark[1]", + "entityName" : "BrandWordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 66.581, + "computedY" : 783.031, + "placementX" : 66.581, + "placementY" : 783.031, + "placementWidth" : 95.37, + "placementHeight" : 31.493, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.37, + "contentHeight" : 31.493, + "margin" : { + "top" : 9.874, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/Masthead[0]/InvoiceTitle[2]", + "entityName" : "InvoiceTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Masthead[0]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 161.951, + "computedY" : 773.592, + "placementX" : 161.951, + "placementY" : 773.592, + "placementWidth" : 406.241, + "placementHeight" : 50.806, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 406.241, + "contentHeight" : 50.806, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]", + "entityName" : "IdentityBand", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 629.767, + "placementX" : 0.0, + "placementY" : 629.767, + "placementWidth" : 595.276, + "placementHeight" : 132.597, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 132.597, + "margin" : { + "top" : 11.228, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 27.084, + "bottom" : 0.0, + "left" : 27.084 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]", + "entityName" : "SupplierIdentity", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.084, + "computedY" : 637.753, + "placementX" : 27.084, + "placementY" : 637.753, + "placementWidth" : 330.082, + "placementHeight" : 123.087, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 123.087, + "margin" : { + "top" : 1.523, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierName[0]", + "entityName" : "SupplierName", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 27.084, + "computedY" : 746.185, + "placementX" : 27.084, + "placementY" : 746.185, + "placementWidth" : 116.134, + "placementHeight" : 14.656, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.134, + "contentHeight" : 14.656, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierAddress[1]", + "entityName" : "SupplierAddress", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 27.084, + "computedY" : 699.199, + "placementX" : 27.084, + "placementY" : 699.199, + "placementWidth" : 72.296, + "placementHeight" : 43.263, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.296, + "contentHeight" : 43.263, + "margin" : { + "top" : 3.722, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierAddress[1]/SupplierAddress_0[0]", + "entityName" : "SupplierAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierAddress[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 729.668, + "placementX" : 27.084, + "placementY" : 729.668, + "placementWidth" : 72.296, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.296, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierAddress[1]/SupplierAddress_1[1]", + "entityName" : "SupplierAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierAddress[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 714.434, + "placementX" : 27.084, + "placementY" : 714.434, + "placementWidth" : 61.496, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.496, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierAddress[1]/SupplierAddress_2[2]", + "entityName" : "SupplierAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierAddress[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 699.199, + "placementX" : 27.084, + "placementY" : 699.199, + "placementWidth" : 70.025, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.025, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]", + "entityName" : "SupplierContacts", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 27.084, + "computedY" : 637.753, + "placementX" : 27.084, + "placementY" : 637.753, + "placementWidth" : 330.082, + "placementHeight" : 46.648, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 46.648, + "margin" : { + "top" : 14.798, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactEmailLayer[0]", + "entityName" : "ContactEmailLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 671.608, + "placementX" : 27.084, + "placementY" : 671.608, + "placementWidth" : 330.082, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactEmailLayer[0]/ContactEmailHolder[0]", + "entityName" : "ContactEmailHolder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactEmailLayer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.084, + "computedY" : 671.608, + "placementX" : 27.084, + "placementY" : 671.608, + "placementWidth" : 330.082, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactEmailLayer[0]/ContactEmailHolder[0]/ContactEmail[0]", + "entityName" : "ContactEmail", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactEmailLayer[0]/ContactEmailHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.084, + "computedY" : 671.608, + "placementX" : 27.084, + "placementY" : 671.608, + "placementWidth" : 330.082, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactEmailLayer[0]/ContactEmailHolder[0]/ContactEmail[0]/ContactEmailLabel[0]", + "entityName" : "ContactEmailLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactEmailLayer[0]/ContactEmailHolder[0]/ContactEmail[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.084, + "computedY" : 671.608, + "placementX" : 27.084, + "placementY" : 671.608, + "placementWidth" : 5.054, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.054, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactEmailLayer[0]/ContactEmailHolder[0]/ContactEmail[0]/ContactEmailValue[1]", + "entityName" : "ContactEmailValue", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactEmailLayer[0]/ContactEmailHolder[0]/ContactEmail[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 66.581, + "computedY" : 671.608, + "placementX" : 66.581, + "placementY" : 671.608, + "placementWidth" : 114.43, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 114.43, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactWebsiteLayer[1]", + "entityName" : "ContactWebsiteLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 654.681, + "placementX" : 27.084, + "placementY" : 654.681, + "placementWidth" : 330.082, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactWebsiteLayer[1]/ContactWebsiteHolder[0]", + "entityName" : "ContactWebsiteHolder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactWebsiteLayer[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.084, + "computedY" : 654.681, + "placementX" : 27.084, + "placementY" : 654.681, + "placementWidth" : 330.082, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactWebsiteLayer[1]/ContactWebsiteHolder[0]/ContactWebsite[0]", + "entityName" : "ContactWebsite", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactWebsiteLayer[1]/ContactWebsiteHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.084, + "computedY" : 654.681, + "placementX" : 27.084, + "placementY" : 654.681, + "placementWidth" : 330.082, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactWebsiteLayer[1]/ContactWebsiteHolder[0]/ContactWebsite[0]/ContactWebsiteLabel[0]", + "entityName" : "ContactWebsiteLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactWebsiteLayer[1]/ContactWebsiteHolder[0]/ContactWebsite[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.084, + "computedY" : 654.681, + "placementX" : 27.084, + "placementY" : 654.681, + "placementWidth" : 8.231, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.231, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactWebsiteLayer[1]/ContactWebsiteHolder[0]/ContactWebsite[0]/ContactWebsiteValue[1]", + "entityName" : "ContactWebsiteValue", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactWebsiteLayer[1]/ContactWebsiteHolder[0]/ContactWebsite[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 66.581, + "computedY" : 654.681, + "placementX" : 66.581, + "placementY" : 654.681, + "placementWidth" : 100.485, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.485, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactRegistrationLayer[2]", + "entityName" : "ContactRegistrationLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 637.753, + "placementX" : 27.084, + "placementY" : 637.753, + "placementWidth" : 330.082, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactRegistrationLayer[2]/ContactRegistrationHolder[0]", + "entityName" : "ContactRegistrationHolder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactRegistrationLayer[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.084, + "computedY" : 637.753, + "placementX" : 27.084, + "placementY" : 637.753, + "placementWidth" : 330.082, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactRegistrationLayer[2]/ContactRegistrationHolder[0]/ContactRegistration[0]", + "entityName" : "ContactRegistration", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactRegistrationLayer[2]/ContactRegistrationHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.084, + "computedY" : 637.753, + "placementX" : 27.084, + "placementY" : 637.753, + "placementWidth" : 330.082, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.082, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactRegistrationLayer[2]/ContactRegistrationHolder[0]/ContactRegistration[0]/ContactRegistrationLabel[0]", + "entityName" : "ContactRegistrationLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactRegistrationLayer[2]/ContactRegistrationHolder[0]/ContactRegistration[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.084, + "computedY" : 637.753, + "placementX" : 27.084, + "placementY" : 637.753, + "placementWidth" : 30.908, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.908, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactRegistrationLayer[2]/ContactRegistrationHolder[0]/ContactRegistration[0]/ContactRegistrationValue[1]", + "entityName" : "ContactRegistrationValue", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/SupplierIdentity[0]/SupplierContacts[2]/ContactRegistrationLayer[2]/ContactRegistrationHolder[0]/ContactRegistration[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 66.581, + "computedY" : 637.753, + "placementX" : 66.581, + "placementY" : 637.753, + "placementWidth" : 63.479, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.479, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]", + "entityName" : "MetaPanel", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 357.165, + "computedY" : 629.767, + "placementX" : 357.165, + "placementY" : 629.767, + "placementWidth" : 211.027, + "placementHeight" : 132.597, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 132.597, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]", + "entityName" : "MetaRow_0", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 357.165, + "computedY" : 737.537, + "placementX" : 357.165, + "placementY" : 737.537, + "placementWidth" : 211.027, + "placementHeight" : 24.827, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 24.827, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]", + "entityName" : "MetaLine_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 357.165, + "computedY" : 740.358, + "placementX" : 357.165, + "placementY" : 740.358, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]/MetaLine_0Holder[0]", + "entityName" : "MetaLine_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 357.165, + "computedY" : 740.358, + "placementX" : 357.165, + "placementY" : 740.358, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]/MetaLine_0Holder[0]/MetaLine_0[0]", + "entityName" : "MetaLine_0", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]/MetaLine_0Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 357.165, + "computedY" : 740.358, + "placementX" : 357.165, + "placementY" : 740.358, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.464, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]/MetaLine_0Holder[0]/MetaLine_0[0]/MetaAccent_0[0]", + "entityName" : "MetaAccent_0", + "entityKind" : "ShapeNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]/MetaLine_0Holder[0]/MetaLine_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 357.165, + "computedY" : 740.358, + "placementX" : 357.165, + "placementY" : 740.358, + "placementWidth" : 2.257, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 2.257, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]/MetaLine_0Holder[0]/MetaLine_0[0]/MetaLabel_0[1]", + "entityName" : "MetaLabel_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]/MetaLine_0Holder[0]/MetaLine_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 359.422, + "computedY" : 744.766, + "placementX" : 359.422, + "placementY" : 744.766, + "placementWidth" : 57.296, + "placementHeight" : 13.19, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.296, + "contentHeight" : 13.19, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.592 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]/MetaLine_0Holder[0]/MetaLine_0[0]/MetaValue_0[2]", + "entityName" : "MetaValue_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaLine_0Layer[0]/MetaLine_0Holder[0]/MetaLine_0[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 459.575, + "computedY" : 744.718, + "placementX" : 459.575, + "placementY" : 744.718, + "placementWidth" : 100.153, + "placementHeight" : 13.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.153, + "contentHeight" : 13.286, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]/MetaSeparator_0[1]", + "entityName" : "MetaSeparator_0", + "entityKind" : "LineNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_0[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 360.551, + "computedY" : 737.537, + "placementX" : 360.551, + "placementY" : 737.537, + "placementWidth" : 207.641, + "placementHeight" : 1.128, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 207.641, + "contentHeight" : 1.128, + "margin" : { + "top" : 1.693, + "right" : 0.0, + "bottom" : 0.0, + "left" : 3.385 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]", + "entityName" : "MetaRow_1", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 357.165, + "computedY" : 709.889, + "placementX" : 357.165, + "placementY" : 709.889, + "placementWidth" : 211.027, + "placementHeight" : 24.827, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 24.827, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]", + "entityName" : "MetaLine_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 357.165, + "computedY" : 712.71, + "placementX" : 357.165, + "placementY" : 712.71, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]/MetaLine_1Holder[0]", + "entityName" : "MetaLine_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 357.165, + "computedY" : 712.71, + "placementX" : 357.165, + "placementY" : 712.71, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]/MetaLine_1Holder[0]/MetaLine_1[0]", + "entityName" : "MetaLine_1", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]/MetaLine_1Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 357.165, + "computedY" : 712.71, + "placementX" : 357.165, + "placementY" : 712.71, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.464, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]/MetaLine_1Holder[0]/MetaLine_1[0]/MetaAccent_1[0]", + "entityName" : "MetaAccent_1", + "entityKind" : "ShapeNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]/MetaLine_1Holder[0]/MetaLine_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 357.165, + "computedY" : 712.71, + "placementX" : 357.165, + "placementY" : 712.71, + "placementWidth" : 2.257, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 2.257, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]/MetaLine_1Holder[0]/MetaLine_1[0]/MetaLabel_1[1]", + "entityName" : "MetaLabel_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]/MetaLine_1Holder[0]/MetaLine_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 359.422, + "computedY" : 717.118, + "placementX" : 359.422, + "placementY" : 717.118, + "placementWidth" : 57.186, + "placementHeight" : 13.19, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.186, + "contentHeight" : 13.19, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.592 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]/MetaLine_1Holder[0]/MetaLine_1[0]/MetaValue_1[2]", + "entityName" : "MetaValue_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaLine_1Layer[0]/MetaLine_1Holder[0]/MetaLine_1[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 459.575, + "computedY" : 717.07, + "placementX" : 459.575, + "placementY" : 717.07, + "placementWidth" : 100.153, + "placementHeight" : 13.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.153, + "contentHeight" : 13.286, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]/MetaSeparator_1[1]", + "entityName" : "MetaSeparator_1", + "entityKind" : "LineNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_1[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 360.551, + "computedY" : 709.889, + "placementX" : 360.551, + "placementY" : 709.889, + "placementWidth" : 207.641, + "placementHeight" : 1.128, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 207.641, + "contentHeight" : 1.128, + "margin" : { + "top" : 1.693, + "right" : 0.0, + "bottom" : 0.0, + "left" : 3.385 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]", + "entityName" : "MetaRow_2", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 357.165, + "computedY" : 682.241, + "placementX" : 357.165, + "placementY" : 682.241, + "placementWidth" : 211.027, + "placementHeight" : 24.827, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 24.827, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]", + "entityName" : "MetaLine_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 357.165, + "computedY" : 685.062, + "placementX" : 357.165, + "placementY" : 685.062, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]/MetaLine_2Holder[0]", + "entityName" : "MetaLine_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 357.165, + "computedY" : 685.062, + "placementX" : 357.165, + "placementY" : 685.062, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]/MetaLine_2Holder[0]/MetaLine_2[0]", + "entityName" : "MetaLine_2", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]/MetaLine_2Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 357.165, + "computedY" : 685.062, + "placementX" : 357.165, + "placementY" : 685.062, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.464, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]/MetaLine_2Holder[0]/MetaLine_2[0]/MetaAccent_2[0]", + "entityName" : "MetaAccent_2", + "entityKind" : "ShapeNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]/MetaLine_2Holder[0]/MetaLine_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 357.165, + "computedY" : 685.062, + "placementX" : 357.165, + "placementY" : 685.062, + "placementWidth" : 2.257, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 2.257, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]/MetaLine_2Holder[0]/MetaLine_2[0]/MetaLabel_2[1]", + "entityName" : "MetaLabel_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]/MetaLine_2Holder[0]/MetaLine_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 359.422, + "computedY" : 689.47, + "placementX" : 359.422, + "placementY" : 689.47, + "placementWidth" : 51.141, + "placementHeight" : 13.19, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.141, + "contentHeight" : 13.19, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.592 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]/MetaLine_2Holder[0]/MetaLine_2[0]/MetaValue_2[2]", + "entityName" : "MetaValue_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaLine_2Layer[0]/MetaLine_2Holder[0]/MetaLine_2[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 459.575, + "computedY" : 689.422, + "placementX" : 459.575, + "placementY" : 689.422, + "placementWidth" : 100.153, + "placementHeight" : 13.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.153, + "contentHeight" : 13.286, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]/MetaSeparator_2[1]", + "entityName" : "MetaSeparator_2", + "entityKind" : "LineNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_2[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 360.551, + "computedY" : 682.241, + "placementX" : 360.551, + "placementY" : 682.241, + "placementWidth" : 207.641, + "placementHeight" : 1.128, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 207.641, + "contentHeight" : 1.128, + "margin" : { + "top" : 1.693, + "right" : 0.0, + "bottom" : 0.0, + "left" : 3.385 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]", + "entityName" : "MetaRow_3", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 357.165, + "computedY" : 654.593, + "placementX" : 357.165, + "placementY" : 654.593, + "placementWidth" : 211.027, + "placementHeight" : 24.827, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 24.827, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]", + "entityName" : "MetaLine_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 357.165, + "computedY" : 657.415, + "placementX" : 357.165, + "placementY" : 657.415, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]/MetaLine_3Holder[0]", + "entityName" : "MetaLine_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 357.165, + "computedY" : 657.415, + "placementX" : 357.165, + "placementY" : 657.415, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]/MetaLine_3Holder[0]/MetaLine_3[0]", + "entityName" : "MetaLine_3", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]/MetaLine_3Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 357.165, + "computedY" : 657.415, + "placementX" : 357.165, + "placementY" : 657.415, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.464, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]/MetaLine_3Holder[0]/MetaLine_3[0]/MetaAccent_3[0]", + "entityName" : "MetaAccent_3", + "entityKind" : "ShapeNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]/MetaLine_3Holder[0]/MetaLine_3[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 357.165, + "computedY" : 657.415, + "placementX" : 357.165, + "placementY" : 657.415, + "placementWidth" : 2.257, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 2.257, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]/MetaLine_3Holder[0]/MetaLine_3[0]/MetaLabel_3[1]", + "entityName" : "MetaLabel_3", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]/MetaLine_3Holder[0]/MetaLine_3[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 359.422, + "computedY" : 661.822, + "placementX" : 359.422, + "placementY" : 661.822, + "placementWidth" : 80.324, + "placementHeight" : 13.19, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.324, + "contentHeight" : 13.19, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.592 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]/MetaLine_3Holder[0]/MetaLine_3[0]/MetaValue_3[2]", + "entityName" : "MetaValue_3", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaLine_3Layer[0]/MetaLine_3Holder[0]/MetaLine_3[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 459.575, + "computedY" : 661.774, + "placementX" : 459.575, + "placementY" : 661.774, + "placementWidth" : 100.153, + "placementHeight" : 13.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.153, + "contentHeight" : 13.286, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]/MetaSeparator_3[1]", + "entityName" : "MetaSeparator_3", + "entityKind" : "LineNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_3[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 360.551, + "computedY" : 654.593, + "placementX" : 360.551, + "placementY" : 654.593, + "placementWidth" : 207.641, + "placementHeight" : 1.128, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 207.641, + "contentHeight" : 1.128, + "margin" : { + "top" : 1.693, + "right" : 0.0, + "bottom" : 0.0, + "left" : 3.385 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]", + "entityName" : "MetaRow_4", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 357.165, + "computedY" : 629.767, + "placementX" : 357.165, + "placementY" : 629.767, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]", + "entityName" : "MetaLine_4Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 357.165, + "computedY" : 629.767, + "placementX" : 357.165, + "placementY" : 629.767, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]/MetaLine_4Holder[0]", + "entityName" : "MetaLine_4Holder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 357.165, + "computedY" : 629.767, + "placementX" : 357.165, + "placementY" : 629.767, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]/MetaLine_4Holder[0]/MetaLine_4[0]", + "entityName" : "MetaLine_4", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]/MetaLine_4Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 357.165, + "computedY" : 629.767, + "placementX" : 357.165, + "placementY" : 629.767, + "placementWidth" : 211.027, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.027, + "contentHeight" : 22.005, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.464, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]/MetaLine_4Holder[0]/MetaLine_4[0]/MetaAccent_4[0]", + "entityName" : "MetaAccent_4", + "entityKind" : "ShapeNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]/MetaLine_4Holder[0]/MetaLine_4[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 357.165, + "computedY" : 629.767, + "placementX" : 357.165, + "placementY" : 629.767, + "placementWidth" : 2.257, + "placementHeight" : 22.005, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 2.257, + "contentHeight" : 22.005, + "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" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]/MetaLine_4Holder[0]/MetaLine_4[0]/MetaLabel_4[1]", + "entityName" : "MetaLabel_4", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]/MetaLine_4Holder[0]/MetaLine_4[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 359.422, + "computedY" : 634.174, + "placementX" : 359.422, + "placementY" : 634.174, + "placementWidth" : 50.459, + "placementHeight" : 13.19, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.459, + "contentHeight" : 13.19, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.592 + } + }, { + "path" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]/MetaLine_4Holder[0]/MetaLine_4[0]/MetaValue_4[2]", + "entityName" : "MetaValue_4", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/IdentityBand[1]/MetaPanel[1]/MetaRow_4[4]/MetaLine_4Layer[0]/MetaLine_4Holder[0]/MetaLine_4[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 459.575, + "computedY" : 634.126, + "placementX" : 459.575, + "placementY" : 634.126, + "placementWidth" : 100.153, + "placementHeight" : 13.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.153, + "contentHeight" : 13.286, + "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" : "SubscriptionInvoice[0]/Parties[2]", + "entityName" : "Parties", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 502.861, + "placementX" : 0.0, + "placementY" : 502.861, + "placementWidth" : 595.276, + "placementHeight" : 105.634, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 105.634, + "margin" : { + "top" : 21.272, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 27.084, + "bottom" : 0.0, + "left" : 27.084 + } + }, { + "path" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]", + "entityName" : "Party_0", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.084, + "computedY" : 502.861, + "placementX" : 27.084, + "placementY" : 502.861, + "placementWidth" : 277.043, + "placementHeight" : 105.634, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 277.043, + "contentHeight" : 105.634, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]", + "entityName" : "PartyHeading_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 27.084, + "computedY" : 589.401, + "placementX" : 27.084, + "placementY" : 589.401, + "placementWidth" : 277.043, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 277.043, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]/PartyHeading_0Holder[0]", + "entityName" : "PartyHeading_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 589.401, + "placementX" : 27.084, + "placementY" : 589.401, + "placementWidth" : 277.043, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 277.043, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]/PartyHeading_0Holder[0]/PartyHeading_0[0]", + "entityName" : "PartyHeading_0", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]/PartyHeading_0Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.084, + "computedY" : 589.401, + "placementX" : 27.084, + "placementY" : 589.401, + "placementWidth" : 277.043, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 277.043, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]/PartyHeading_0Holder[0]/PartyHeading_0[0]/PartyHeading_0Rule[0]", + "entityName" : "PartyHeading_0Rule", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]/PartyHeading_0Holder[0]/PartyHeading_0[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.084, + "computedY" : 589.401, + "placementX" : 27.084, + "placementY" : 589.401, + "placementWidth" : 38.946, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.946, + "contentHeight" : 19.094, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.95, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]/PartyHeading_0Holder[0]/PartyHeading_0[0]/PartyHeading_0Rule[0]/PartyHeading_0Text[0]", + "entityName" : "PartyHeading_0Text", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]/PartyHeading_0Holder[0]/PartyHeading_0[0]/PartyHeading_0Rule[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.084, + "computedY" : 593.351, + "placementX" : 27.084, + "placementY" : 593.351, + "placementWidth" : 38.946, + "placementHeight" : 15.144, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.946, + "contentHeight" : 15.144, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]/PartyHeading_0Holder[0]/PartyHeading_0[0]/SpacerNode[1]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyHeading_0Layer[0]/PartyHeading_0Holder[0]/PartyHeading_0[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 66.029, + "computedY" : 608.495, + "placementX" : 66.029, + "placementY" : 608.495, + "placementWidth" : 0.564, + "placementHeight" : 0.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.564, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]", + "entityName" : "PartyAddress_0", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 27.084, + "computedY" : 502.861, + "placementX" : 27.084, + "placementY" : 502.861, + "placementWidth" : 106.616, + "placementHeight" : 73.732, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.616, + "contentHeight" : 73.732, + "margin" : { + "top" : 12.808, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]/PartyName_0[0]", + "entityName" : "PartyName_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 563.799, + "placementX" : 27.084, + "placementY" : 563.799, + "placementWidth" : 106.616, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.616, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]/PartySubline_0[1]", + "entityName" : "PartySubline_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 548.564, + "placementX" : 27.084, + "placementY" : 548.564, + "placementWidth" : 85.378, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.378, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]/PartyAddress_0_0[2]", + "entityName" : "PartyAddress_0_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 533.33, + "placementX" : 27.084, + "placementY" : 533.33, + "placementWidth" : 62.029, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.029, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]/PartyAddress_0_1[3]", + "entityName" : "PartyAddress_0_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 518.095, + "placementX" : 27.084, + "placementY" : 518.095, + "placementWidth" : 67.733, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.733, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]/PartyAddress_0_2[4]", + "entityName" : "PartyAddress_0_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_0[0]/PartyAddress_0[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 502.861, + "placementX" : 27.084, + "placementY" : 502.861, + "placementWidth" : 70.025, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.025, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]", + "entityName" : "Party_1", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 304.127, + "computedY" : 502.861, + "placementX" : 304.127, + "placementY" : 502.861, + "placementWidth" : 264.065, + "placementHeight" : 105.634, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 264.065, + "contentHeight" : 105.634, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]", + "entityName" : "PartyHeading_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 304.127, + "computedY" : 589.401, + "placementX" : 304.127, + "placementY" : 589.401, + "placementWidth" : 264.065, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 264.065, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]/PartyHeading_1Holder[0]", + "entityName" : "PartyHeading_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 304.127, + "computedY" : 589.401, + "placementX" : 304.127, + "placementY" : 589.401, + "placementWidth" : 264.065, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 264.065, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]/PartyHeading_1Holder[0]/PartyHeading_1[0]", + "entityName" : "PartyHeading_1", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]/PartyHeading_1Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 304.127, + "computedY" : 589.401, + "placementX" : 304.127, + "placementY" : 589.401, + "placementWidth" : 264.065, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 264.065, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]/PartyHeading_1Holder[0]/PartyHeading_1[0]/PartyHeading_1Rule[0]", + "entityName" : "PartyHeading_1Rule", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]/PartyHeading_1Holder[0]/PartyHeading_1[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 304.127, + "computedY" : 589.401, + "placementX" : 304.127, + "placementY" : 589.401, + "placementWidth" : 41.167, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.167, + "contentHeight" : 19.094, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.95, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]/PartyHeading_1Holder[0]/PartyHeading_1[0]/PartyHeading_1Rule[0]/PartyHeading_1Text[0]", + "entityName" : "PartyHeading_1Text", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]/PartyHeading_1Holder[0]/PartyHeading_1[0]/PartyHeading_1Rule[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 304.127, + "computedY" : 593.351, + "placementX" : 304.127, + "placementY" : 593.351, + "placementWidth" : 41.167, + "placementHeight" : 15.144, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.167, + "contentHeight" : 15.144, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]/PartyHeading_1Holder[0]/PartyHeading_1[0]/SpacerNode[1]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyHeading_1Layer[0]/PartyHeading_1Holder[0]/PartyHeading_1[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 345.293, + "computedY" : 608.495, + "placementX" : 345.293, + "placementY" : 608.495, + "placementWidth" : 0.564, + "placementHeight" : 0.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.564, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]", + "entityName" : "PartyAddress_1", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 304.127, + "computedY" : 502.861, + "placementX" : 304.127, + "placementY" : 502.861, + "placementWidth" : 110.368, + "placementHeight" : 73.732, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.368, + "contentHeight" : 73.732, + "margin" : { + "top" : 12.808, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]/PartyName_1[0]", + "entityName" : "PartyName_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 304.127, + "computedY" : 563.799, + "placementX" : 304.127, + "placementY" : 563.799, + "placementWidth" : 106.616, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.616, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]/PartySubline_1[1]", + "entityName" : "PartySubline_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 304.127, + "computedY" : 548.564, + "placementX" : 304.127, + "placementY" : 548.564, + "placementWidth" : 99.686, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.686, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]/PartyAddress_1_0[2]", + "entityName" : "PartyAddress_1_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 304.127, + "computedY" : 533.33, + "placementX" : 304.127, + "placementY" : 533.33, + "placementWidth" : 110.368, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.368, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]/PartyAddress_1_1[3]", + "entityName" : "PartyAddress_1_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 304.127, + "computedY" : 518.095, + "placementX" : 304.127, + "placementY" : 518.095, + "placementWidth" : 69.663, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.663, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]/PartyAddress_1_2[4]", + "entityName" : "PartyAddress_1_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/Parties[2]/Party_1[1]/PartyAddress_1[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 304.127, + "computedY" : 502.861, + "placementX" : 304.127, + "placementY" : 502.861, + "placementWidth" : 70.025, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.025, + "contentHeight" : 12.794, + "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" : "SubscriptionInvoice[0]/LineItems[3]", + "entityName" : "LineItems", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 317.222, + "placementX" : 0.0, + "placementY" : 317.222, + "placementWidth" : 595.276, + "placementHeight" : 160.924, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 160.924, + "margin" : { + "top" : 24.714, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 27.084, + "bottom" : 0.0, + "left" : 27.084 + } + }, { + "path" : "SubscriptionInvoice[0]/LineItems[3]/LineItemsRuled[0]", + "entityName" : "LineItemsRuled", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/LineItems[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.084, + "computedY" : 317.222, + "placementX" : 27.084, + "placementY" : 317.222, + "placementWidth" : 541.108, + "placementHeight" : 160.924, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 541.108, + "contentHeight" : 160.924, + "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" : "SubscriptionInvoice[0]/LineItems[3]/LineItemsRuled[0]/LineItemTable[0]", + "entityName" : "LineItemTable", + "entityKind" : "TableNode", + "parentPath" : "SubscriptionInvoice[0]/LineItems[3]/LineItemsRuled[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 27.084, + "computedY" : 317.222, + "placementX" : 27.084, + "placementY" : 317.222, + "placementWidth" : 541.108, + "placementHeight" : 160.924, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 541.108, + "contentHeight" : 160.924, + "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" : "SubscriptionInvoice[0]/NotesAndTotals[4]", + "entityName" : "NotesAndTotals", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 228.249, + "placementX" : 0.0, + "placementY" : 228.249, + "placementWidth" : 595.276, + "placementHeight" : 87.788, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 87.788, + "margin" : { + "top" : 1.185, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 27.084, + "bottom" : 0.0, + "left" : 27.084 + } + }, { + "path" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]", + "entityName" : "Notes", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/NotesAndTotals[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.084, + "computedY" : 228.249, + "placementX" : 27.084, + "placementY" : 228.249, + "placementWidth" : 325.004, + "placementHeight" : 59.294, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 325.004, + "contentHeight" : 59.294, + "margin" : { + "top" : 28.494, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 99.307, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]", + "entityName" : "NotesHeadingLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 27.084, + "computedY" : 268.449, + "placementX" : 27.084, + "placementY" : 268.449, + "placementWidth" : 225.697, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.697, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]/NotesHeadingHolder[0]", + "entityName" : "NotesHeadingHolder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 268.449, + "placementX" : 27.084, + "placementY" : 268.449, + "placementWidth" : 225.697, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.697, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]/NotesHeadingHolder[0]/NotesHeading[0]", + "entityName" : "NotesHeading", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]/NotesHeadingHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.084, + "computedY" : 268.449, + "placementX" : 27.084, + "placementY" : 268.449, + "placementWidth" : 225.697, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.697, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]/NotesHeadingHolder[0]/NotesHeading[0]/NotesHeadingRule[0]", + "entityName" : "NotesHeadingRule", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]/NotesHeadingHolder[0]/NotesHeading[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.084, + "computedY" : 268.449, + "placementX" : 27.084, + "placementY" : 268.449, + "placementWidth" : 34.226, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.226, + "contentHeight" : 19.094, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.95, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]/NotesHeadingHolder[0]/NotesHeading[0]/NotesHeadingRule[0]/NotesHeadingText[0]", + "entityName" : "NotesHeadingText", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]/NotesHeadingHolder[0]/NotesHeading[0]/NotesHeadingRule[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.084, + "computedY" : 272.399, + "placementX" : 27.084, + "placementY" : 272.399, + "placementWidth" : 34.226, + "placementHeight" : 15.144, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.226, + "contentHeight" : 15.144, + "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" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]/NotesHeadingHolder[0]/NotesHeading[0]/SpacerNode[1]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesHeadingLayer[0]/NotesHeadingHolder[0]/NotesHeading[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 61.309, + "computedY" : 287.543, + "placementX" : 61.309, + "placementY" : 287.543, + "placementWidth" : 0.564, + "placementHeight" : 0.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.564, + "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" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]/NotesBody_0[1]", + "entityName" : "NotesBody_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Notes[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 27.084, + "computedY" : 228.249, + "placementX" : 27.084, + "placementY" : 228.249, + "placementWidth" : 211.39, + "placementHeight" : 28.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.39, + "contentHeight" : 28.52, + "margin" : { + "top" : 11.68, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Totals[1]", + "entityName" : "Totals", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/NotesAndTotals[4]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 352.087, + "computedY" : 230.939, + "placementX" : 352.087, + "placementY" : 230.939, + "placementWidth" : 216.105, + "placementHeight" : 85.099, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 216.105, + "contentHeight" : 85.099, + "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" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Totals[1]/TotalsTable[0]", + "entityName" : "TotalsTable", + "entityKind" : "TableNode", + "parentPath" : "SubscriptionInvoice[0]/NotesAndTotals[4]/Totals[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 352.087, + "computedY" : 230.939, + "placementX" : 352.087, + "placementY" : 230.939, + "placementWidth" : 216.105, + "placementHeight" : 85.099, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 216.105, + "contentHeight" : 85.099, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]", + "entityName" : "PaymentDetails", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 116.289, + "placementX" : 0.0, + "placementY" : 116.289, + "placementWidth" : 595.276, + "placementHeight" : 91.591, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 91.591, + "margin" : { + "top" : 20.369, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 27.084, + "bottom" : 0.0, + "left" : 27.084 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]", + "entityName" : "PaymentHeadingLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.084, + "computedY" : 188.786, + "placementX" : 27.084, + "placementY" : 188.786, + "placementWidth" : 541.108, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 541.108, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]", + "entityName" : "PaymentHeadingHolder", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 27.084, + "computedY" : 188.786, + "placementX" : 27.084, + "placementY" : 188.786, + "placementWidth" : 541.108, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 541.108, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]", + "entityName" : "PaymentHeading", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 188.786, + "placementX" : 27.084, + "placementY" : 188.786, + "placementWidth" : 541.108, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 541.108, + "contentHeight" : 19.094, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/PaymentHeadingRule[0]", + "entityName" : "PaymentHeadingRule", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.084, + "computedY" : 188.786, + "placementX" : 27.084, + "placementY" : 188.786, + "placementWidth" : 94.336, + "placementHeight" : 19.094, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 94.336, + "contentHeight" : 19.094, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.95, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/PaymentHeadingRule[0]/PaymentHeadingText[0]", + "entityName" : "PaymentHeadingText", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/PaymentHeadingRule[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.084, + "computedY" : 192.736, + "placementX" : 27.084, + "placementY" : 192.736, + "placementWidth" : 94.336, + "placementHeight" : 15.144, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 94.336, + "contentHeight" : 15.144, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/SpacerNode[1]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 121.419, + "computedY" : 207.88, + "placementX" : 121.419, + "placementY" : 207.88, + "placementWidth" : 0.564, + "placementHeight" : 0.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.564, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]", + "entityName" : "PaymentColumns", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 27.084, + "computedY" : 116.289, + "placementX" : 27.084, + "placementY" : 116.289, + "placementWidth" : 541.108, + "placementHeight" : 61.833, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 541.108, + "contentHeight" : 61.833, + "margin" : { + "top" : 10.664, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]", + "entityName" : "PaymentColumn_0", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 27.084, + "computedY" : 116.289, + "placementX" : 27.084, + "placementY" : 116.289, + "placementWidth" : 117.08, + "placementHeight" : 61.833, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 117.08, + "contentHeight" : 61.833, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 11.285, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 154.424, + "placementX" : 27.084, + "placementY" : 154.424, + "placementWidth" : 105.795, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.795, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]/Align[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 68.132, + "computedY" : 154.424, + "placementX" : 68.132, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 68.132, + "computedY" : 154.424, + "placementX" : 68.132, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]/Align[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]/Align[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 68.132, + "computedY" : 154.424, + "placementX" : 68.132, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]/PaymentLabel_0[1]", + "entityName" : "PaymentLabel_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 132.807, + "placementX" : 27.084, + "placementY" : 132.807, + "placementWidth" : 105.795, + "placementHeight" : 12.702, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.795, + "contentHeight" : 12.702, + "margin" : { + "top" : 8.915, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]/PaymentValue_0[2]", + "entityName" : "PaymentValue_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_0[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 27.084, + "computedY" : 116.289, + "placementX" : 27.084, + "placementY" : 116.289, + "placementWidth" : 105.795, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.795, + "contentHeight" : 12.794, + "margin" : { + "top" : 3.724, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]", + "entityName" : "PaymentColumn_1", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 144.164, + "computedY" : 116.289, + "placementX" : 144.164, + "placementY" : 116.289, + "placementWidth" : 100.435, + "placementHeight" : 61.833, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.435, + "contentHeight" : 61.833, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 144.164, + "computedY" : 154.424, + "placementX" : 144.164, + "placementY" : 154.424, + "placementWidth" : 100.435, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.435, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]/Align[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 182.532, + "computedY" : 154.424, + "placementX" : 182.532, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 182.532, + "computedY" : 154.424, + "placementX" : 182.532, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]/PaymentLabel_1[1]", + "entityName" : "PaymentLabel_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 144.164, + "computedY" : 132.807, + "placementX" : 144.164, + "placementY" : 132.807, + "placementWidth" : 100.435, + "placementHeight" : 12.702, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.435, + "contentHeight" : 12.702, + "margin" : { + "top" : 8.915, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]/PaymentValue_1[2]", + "entityName" : "PaymentValue_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_1[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 144.164, + "computedY" : 116.289, + "placementX" : 144.164, + "placementY" : 116.289, + "placementWidth" : 100.435, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.435, + "contentHeight" : 12.794, + "margin" : { + "top" : 3.724, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]", + "entityName" : "PaymentColumn_2", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 244.599, + "computedY" : 116.289, + "placementX" : 244.599, + "placementY" : 116.289, + "placementWidth" : 103.821, + "placementHeight" : 61.833, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.821, + "contentHeight" : 61.833, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 244.599, + "computedY" : 154.424, + "placementX" : 244.599, + "placementY" : 154.424, + "placementWidth" : 103.821, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.821, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]/Align[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 284.66, + "computedY" : 154.424, + "placementX" : 284.66, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 284.66, + "computedY" : 154.424, + "placementX" : 284.66, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]/PaymentLabel_2[1]", + "entityName" : "PaymentLabel_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 244.599, + "computedY" : 132.807, + "placementX" : 244.599, + "placementY" : 132.807, + "placementWidth" : 103.821, + "placementHeight" : 12.702, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.821, + "contentHeight" : 12.702, + "margin" : { + "top" : 8.915, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]/PaymentValue_2[2]", + "entityName" : "PaymentValue_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_2[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 244.599, + "computedY" : 116.289, + "placementX" : 244.599, + "placementY" : 116.289, + "placementWidth" : 103.821, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.821, + "contentHeight" : 12.794, + "margin" : { + "top" : 3.724, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]", + "entityName" : "PaymentColumn_3", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 348.42, + "computedY" : 116.289, + "placementX" : 348.42, + "placementY" : 116.289, + "placementWidth" : 104.385, + "placementHeight" : 61.833, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.385, + "contentHeight" : 61.833, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 348.42, + "computedY" : 154.424, + "placementX" : 348.42, + "placementY" : 154.424, + "placementWidth" : 104.385, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.385, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]/Align[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 388.763, + "computedY" : 154.424, + "placementX" : 388.763, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 388.763, + "computedY" : 154.424, + "placementX" : 388.763, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]/Align[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]/Align[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 388.763, + "computedY" : 154.424, + "placementX" : 388.763, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]/PaymentLabel_3[1]", + "entityName" : "PaymentLabel_3", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 348.42, + "computedY" : 132.807, + "placementX" : 348.42, + "placementY" : 132.807, + "placementWidth" : 104.385, + "placementHeight" : 12.702, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.385, + "contentHeight" : 12.702, + "margin" : { + "top" : 8.915, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]/PaymentValue_3[2]", + "entityName" : "PaymentValue_3", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_3[3]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 348.42, + "computedY" : 116.289, + "placementX" : 348.42, + "placementY" : 116.289, + "placementWidth" : 104.385, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.385, + "contentHeight" : 12.794, + "margin" : { + "top" : 3.724, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]", + "entityName" : "PaymentColumn_4", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 452.804, + "computedY" : 116.289, + "placementX" : 452.804, + "placementY" : 116.289, + "placementWidth" : 115.388, + "placementHeight" : 61.833, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.388, + "contentHeight" : 61.833, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 11.285, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 452.804, + "computedY" : 154.424, + "placementX" : 452.804, + "placementY" : 154.424, + "placementWidth" : 104.103, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.103, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]/Align[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 493.007, + "computedY" : 154.424, + "placementX" : 493.007, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 493.007, + "computedY" : 154.424, + "placementX" : 493.007, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]/Align[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]/Align[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 493.007, + "computedY" : 154.424, + "placementX" : 493.007, + "placementY" : 154.424, + "placementWidth" : 23.698, + "placementHeight" : 23.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.698, + "contentHeight" : 23.698, + "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" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]/PaymentLabel_4[1]", + "entityName" : "PaymentLabel_4", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 452.804, + "computedY" : 132.807, + "placementX" : 452.804, + "placementY" : 132.807, + "placementWidth" : 104.103, + "placementHeight" : 12.702, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.103, + "contentHeight" : 12.702, + "margin" : { + "top" : 8.915, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]/PaymentValue_4[2]", + "entityName" : "PaymentValue_4", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentDetails[5]/PaymentColumns[1]/PaymentColumn_4[4]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 452.804, + "computedY" : 116.289, + "placementX" : 452.804, + "placementY" : 116.289, + "placementWidth" : 104.103, + "placementHeight" : 12.794, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.103, + "contentHeight" : 12.794, + "margin" : { + "top" : 3.724, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentNote[6]", + "entityName" : "PaymentNote", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 91.674, + "placementX" : 0.0, + "placementY" : 91.674, + "placementWidth" : 435.354, + "placementHeight" : 12.597, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 435.354, + "contentHeight" : 12.597, + "margin" : { + "top" : 12.018, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 27.084, + "bottom" : 0.0, + "left" : 27.084 + } + }, { + "path" : "SubscriptionInvoice[0]/PaymentNote[6]/PaymentNote[0]", + "entityName" : "PaymentNote", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/PaymentNote[6]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.084, + "computedY" : 91.674, + "placementX" : 27.084, + "placementY" : 91.674, + "placementWidth" : 381.186, + "placementHeight" : 12.597, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 381.186, + "contentHeight" : 12.597, + "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" : "SubscriptionInvoice[0]/BrandStrip[7]", + "entityName" : "BrandStrip", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 70.176, + "placementX" : 0.0, + "placementY" : 70.176, + "placementWidth" : 595.276, + "placementHeight" : 3.385, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 3.385, + "margin" : { + "top" : 18.112, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/BrandStrip[7]/BrandStripSegment_0[0]", + "entityName" : "BrandStripSegment_0", + "entityKind" : "ShapeNode", + "parentPath" : "SubscriptionInvoice[0]/BrandStrip[7]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 70.176, + "placementX" : 0.0, + "placementY" : 70.176, + "placementWidth" : 153.474, + "placementHeight" : 3.385, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 153.474, + "contentHeight" : 3.385, + "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" : "SubscriptionInvoice[0]/BrandStrip[7]/BrandStripSegment_1[1]", + "entityName" : "BrandStripSegment_1", + "entityKind" : "ShapeNode", + "parentPath" : "SubscriptionInvoice[0]/BrandStrip[7]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 153.474, + "computedY" : 70.176, + "placementX" : 153.474, + "placementY" : 70.176, + "placementWidth" : 143.882, + "placementHeight" : 3.385, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 143.882, + "contentHeight" : 3.385, + "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" : "SubscriptionInvoice[0]/BrandStrip[7]/BrandStripSegment_2[2]", + "entityName" : "BrandStripSegment_2", + "entityKind" : "ShapeNode", + "parentPath" : "SubscriptionInvoice[0]/BrandStrip[7]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 297.356, + "computedY" : 70.176, + "placementX" : 297.356, + "placementY" : 70.176, + "placementWidth" : 142.189, + "placementHeight" : 3.385, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 142.189, + "contentHeight" : 3.385, + "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" : "SubscriptionInvoice[0]/BrandStrip[7]/BrandStripSegment_3[3]", + "entityName" : "BrandStripSegment_3", + "entityKind" : "ShapeNode", + "parentPath" : "SubscriptionInvoice[0]/BrandStrip[7]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 439.545, + "computedY" : 70.176, + "placementX" : 439.545, + "placementY" : 70.176, + "placementWidth" : 155.731, + "placementHeight" : 3.385, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 155.731, + "contentHeight" : 3.385, + "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" : "SubscriptionInvoice[0]/ClosingBand[8]", + "entityName" : "ClosingBand", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]", + "childIndex" : 8, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 15.283, + "placementX" : 0.0, + "placementY" : 15.283, + "placementWidth" : 595.276, + "placementHeight" : 54.329, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 54.329, + "margin" : { + "top" : 0.564, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 13.993, + "right" : 27.084, + "bottom" : 1.128, + "left" : 23.698 + } + }, { + "path" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]", + "entityName" : "ClosingLockup", + "entityKind" : "RowNode", + "parentPath" : "SubscriptionInvoice[0]/ClosingBand[8]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 23.698, + "computedY" : 16.411, + "placementX" : 23.698, + "placementY" : 16.411, + "placementWidth" : 544.494, + "placementHeight" : 39.208, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.494, + "contentHeight" : 39.208, + "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" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMark[0]", + "entityName" : "ClosingMark", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 23.698, + "computedY" : 21.627, + "placementX" : 23.698, + "placementY" : 21.627, + "placementWidth" : 44.575, + "placementHeight" : 31.598, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.575, + "contentHeight" : 31.598, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.821, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMark[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMark[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 23.698, + "computedY" : 21.627, + "placementX" : 23.698, + "placementY" : 21.627, + "placementWidth" : 44.575, + "placementHeight" : 31.598, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.575, + "contentHeight" : 31.598, + "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" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMark[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMark[0]/Align[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 23.698, + "computedY" : 21.627, + "placementX" : 23.698, + "placementY" : 21.627, + "placementWidth" : 31.598, + "placementHeight" : 31.598, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.598, + "contentHeight" : 31.598, + "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" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMark[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMark[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 23.698, + "computedY" : 21.627, + "placementX" : 23.698, + "placementY" : 21.627, + "placementWidth" : 31.598, + "placementHeight" : 31.598, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.598, + "contentHeight" : 31.598, + "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" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMark[0]/Align[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMark[0]/Align[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 23.698, + "computedY" : 21.627, + "placementX" : 23.698, + "placementY" : 21.627, + "placementWidth" : 31.598, + "placementHeight" : 31.598, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.598, + "contentHeight" : 31.598, + "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" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMessage[1]", + "entityName" : "ClosingMessage", + "entityKind" : "SectionNode", + "parentPath" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 68.273, + "computedY" : 16.411, + "placementX" : 68.273, + "placementY" : 16.411, + "placementWidth" : 415.505, + "placementHeight" : 39.208, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 415.505, + "contentHeight" : 39.208, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 3.385 + } + }, { + "path" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMessage[1]/ClosingHeadline[0]", + "entityName" : "ClosingHeadline", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMessage[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 71.659, + "computedY" : 43.406, + "placementX" : 71.659, + "placementY" : 43.406, + "placementWidth" : 121.357, + "placementHeight" : 12.213, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 121.357, + "contentHeight" : 12.213, + "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" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMessage[1]/ClosingLine_0[1]", + "entityName" : "ClosingLine_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMessage[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 71.659, + "computedY" : 29.953, + "placementX" : 71.659, + "placementY" : 29.953, + "placementWidth" : 412.12, + "placementHeight" : 11.81, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 412.12, + "contentHeight" : 11.81, + "margin" : { + "top" : 1.643, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMessage[1]/ClosingLine_1[2]", + "entityName" : "ClosingLine_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SubscriptionInvoice[0]/ClosingBand[8]/ClosingLockup[0]/ClosingMessage[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 71.659, + "computedY" : 16.411, + "placementX" : 71.659, + "placementY" : 16.411, + "placementWidth" : 235.545, + "placementHeight" : 11.81, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.545, + "contentHeight" : 11.81, + "margin" : { + "top" : 1.732, + "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/invoice-v2-layered/subscription_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/subscription_invoice-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..0dbd2cba509456c164bf2edc0429b15f67e76740 GIT binary patch literal 89542 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

      =~4D+4Es@j^oIoyI#Qw@1e60fHj-{hwik3HmTX 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 z z_Pj`#7P6kzF0lQIDpim46$skB(8GQDxGn2KT>5-evxdoyH!y62>LJg!=4qVHS-!eF z(IRN~u^K+EVO89p2-4h=t36J8KHG#Q$rSNcu`~5;%P(6HC~MyOTgg^6g*BWFkNhDX zUF3}p6Z($A3c)Rjg0)7}Fg8&Q$GkJE*FQM(Za}^(vi4ac{b$Ve*7cGS$u2@n~o44rov(GlI1p=kWafT1EoO*U*g5J3&c-Rp`sXK#eG-fBE))7aU z%OMbqXz3OWX>B(S&xbX_Fu55mJnbQ~5-+YQm!ps<#v7;m&U!u0GK>i*s8&mlcsY^( z>ehkw68OK07-ub7sQ8~|35xswf5B{0Ifo8|v=8%`b*r>chtIysF52Otueamexz!HH z6|rgtm;BG)RQ9vKL+l@Y*Ztde6ncVJaCRw+7u6n}UL@{+xtk>Lg}-Xrx`Q}KlcZSO z-(&u5>WMeum(4Gb6-e;)N=$+su&wl1>|)uv-`t)hq=&Tm&1dPFf(qO<3cM}i!pN(V zc2U~4SO^|2PET|2jR)4NnEt?neW{==+rDE>lX}mk#+{9F4u&U75xdm_46*IulLTts z%hO>y{8oUY?t=pDa9i$O&qsw)F9o2zO4O;dY_{9^iDpv2#u~ZYdbs{JHGLswwIyt! zl!XK9CUNVWP8=_56+igI3PjFTBBHU^&NN(WJ4s!FcC?xg!Lxe30pf0sHR xbHbZ_52F-S(;1|^N5YIt^@bq-M}^tFY}}71fe%%|%>RLhy0VVaM+MvH{{?}K8u$PJ literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionClosing.java new file mode 100644 index 000000000..fa43a8c09 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionClosing.java @@ -0,0 +1,303 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.HorizontalAlign; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentEdge; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.svg.SvgIcon; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.BAND_FILL; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CLOSE_BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CLOSE_HEAD_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CLOSE_ICON_COLUMN; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CLOSE_ICON_LIFT; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CLOSE_ICON_W; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CLOSE_LINE_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CLOSE_PAD_B; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CLOSE_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CLOSE_PAD_T; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CLOSE_TEXT_INDENT; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CONTENT_PAD; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.GAP_NOTE_TO_STRIP; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.GAP_PAYMENT_TO_NOTE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.GAP_STRIP_TO_BAND; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.GAP_TABLE_TO_PAYMENT; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.HEADING_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAGE_W; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAYMENT_PX; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAY_COLUMNS_GAP; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAY_DIVIDER; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAY_ICON_W; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAY_LABEL_GAP; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAY_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAY_NOTE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAY_OUTER_NUDGE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAY_VALUE_GAP; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAY_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.STRIP_H; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.STRIP_PX; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.STRIP_TOTAL_PX; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.MARGIN_X; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.baselineGap; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.cycle; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.plain; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionWidgets.headingPlaque; + +/** + * The foot of the sheet: the payment band, the reference note under it, the + * four-segment strip, and the closing band that bleeds to three paper edges. + */ +final class SubscriptionClosing { + + private SubscriptionClosing() { + } + + /** + * The payment band: one marked cell per field, divided by hairlines. + * + *

      The design's outer two cells are not centred on the space the dividers + * give them — their content sits inboard — while the middle three are centred + * to within three pixels, so the nudge is on the outer pair only.

      + * + *

      The cells take their widths from the design's five, so a payment block + * with a different number of fields divides the band evenly instead.

      + */ + static void renderPaymentBand(PageFlowBuilder page, InvoicePaymentBlock payment) { + List fields = payment.fields(); + if (fields.isEmpty()) { + return; + } + page.addSection("PaymentDetails", section -> { + section.padding(CONTENT_PAD); + section.margin(new DocumentInsets(GAP_TABLE_TO_PAYMENT, 0, 0, 0)); + section.spacing(0); + section.keepTogether(); + headingPlaque(section, "PaymentHeading", payment.heading(), HEADING_SIZE, ACCENT); + section.addRow("PaymentColumns", row -> { + row.spacing(0); + row.margin(new DocumentInsets(PAY_COLUMNS_GAP, 0, 0, 0)); + row.weights(weights(fields.size())); + for (int i = 0; i < fields.size(); i++) { + InvoicePaymentBlock.Field field = fields.get(i); + SvgIcon mark = SubscriptionIcons.band(i); + boolean divided = i > 0; + boolean outer = i == 0 || i == fields.size() - 1; + int index = i; + row.addSection("PaymentColumn_" + index, cell -> { + cell.spacing(0); + if (outer) { + cell.padding(new DocumentInsets(0, PAY_OUTER_NUDGE, 0, 0)); + } + if (divided) { + cell.accentLeft(HAIRLINE, PAY_DIVIDER); + } + if (mark != null) { + cell.addSvgIcon(mark, PAY_ICON_W, HorizontalAlign.CENTER); + } + cell.addParagraph(p -> p + .name("PaymentLabel_" + index) + .text(field.label()) + .textStyle(bold(PAY_LABEL_SIZE, INK)) + .align(TextAlign.CENTER) + .margin(new DocumentInsets(PAY_LABEL_GAP, 0, 0, 0))); + cell.addParagraph(p -> p + .name("PaymentValue_" + index) + .text(field.value()) + .textStyle(plain(PAY_VALUE_SIZE, INK)) + .align(TextAlign.CENTER) + .margin(new DocumentInsets(PAY_VALUE_GAP, 0, 0, 0))); + }); + } + }); + }); + } + + /** + * The design's five column widths when the band has five cells, and an even + * division when it has any other number — measured shares only describe the + * band they were measured on. + */ + private static double[] weights(int cells) { + double[] weights = new double[cells]; + if (cells == PAYMENT_PX.length) { + double total = 0; + for (double share : PAYMENT_PX) { + total += share; + } + for (int i = 0; i < cells; i++) { + weights[i] = PAYMENT_PX[i] / total; + } + return weights; + } + for (int i = 0; i < cells; i++) { + weights[i] = 1.0 / cells; + } + return weights; + } + + /** The instruction under the band. */ + static void renderPaymentNote(PageFlowBuilder page, InvoicePaymentBlock payment) { + if (payment.instruction().isBlank()) { + return; + } + page.addSection("PaymentNote", section -> { + section.padding(CONTENT_PAD); + section.margin(new DocumentInsets(GAP_PAYMENT_TO_NOTE, 0, 0, 0)); + section.spacing(0); + section.addParagraph(p -> p + .name("PaymentNote") + .text(payment.instruction()) + .textStyle(plain(PAY_NOTE_SIZE, INK))); + }); + } + + /** The four-segment strip, at the design's measured widths across the paper. */ + static void renderStrip(PageFlowBuilder page) { + page.addRow("BrandStrip", row -> { + row.margin(new DocumentInsets(GAP_NOTE_TO_STRIP, 0, 0, 0)); + row.spacing(0); + DocumentRowColumn[] columns = new DocumentRowColumn[STRIP_PX.length]; + for (int i = 0; i < STRIP_PX.length; i++) { + columns[i] = DocumentRowColumn.fixed(PAGE_W * STRIP_PX[i] / STRIP_TOTAL_PX); + } + row.columns(columns); + for (int i = 0; i < STRIP_PX.length; i++) { + DocumentColor colour = cycle(i); + double width = PAGE_W * STRIP_PX[i] / STRIP_TOTAL_PX; + int index = i; + row.addShape(shape -> shape + .name("BrandStripSegment_" + index) + .size(width, STRIP_H) + .fillColor(colour)); + } + }); + } + + /** + * The closing band. + * + *

      It reaches three paper edges by bleeding rather than by being the last + * thing on the page, which is what lets the enumeration sit over its fill + * without the band giving up any of its own width.

      + * + *

      Its lines come from the payment block's sign-off and due notice: the + * sign-off is the headline, and the notice's own lines are the prose under + * it, with any address the prose names made reachable.

      + */ + static void renderBand(PageFlowBuilder page, InvoicePaymentBlock payment, + InvoiceContactBlock supplier) { + if (payment.signOff().isBlank() && payment.dueNotice().isBlank()) { + return; + } + page.addSection("ClosingBand", section -> { + section.name("ClosingBand"); + section.spacing(0); + section.keepTogether(); + section.margin(new DocumentInsets(GAP_STRIP_TO_BAND, 0, 0, 0)); + section.padding(new DocumentInsets(CLOSE_PAD_T, MARGIN_X, CLOSE_PAD_B, CLOSE_PAD_L)); + section.fillColor(BAND_FILL); + section.bleedToEdge(DocumentEdge.LEFT, DocumentEdge.RIGHT, DocumentEdge.BOTTOM); + section.addRow("ClosingLockup", row -> { + row.spacing(0); + row.verticalAlign(RowVerticalAlign.CENTER); + row.columns(DocumentRowColumn.fixed(CLOSE_ICON_COLUMN), + DocumentRowColumn.weight(1)); + row.addSection("ClosingMark", cell -> { + cell.spacing(0); + cell.margin(new DocumentInsets(0, 0, CLOSE_ICON_LIFT, 0)); + cell.addSvgIcon(SubscriptionIcons.icon(SubscriptionIcons.SHIELD), + CLOSE_ICON_W, HorizontalAlign.LEFT); + }); + row.addSection("ClosingMessage", cell -> { + cell.spacing(0); + cell.padding(new DocumentInsets(0, 0, 0, CLOSE_TEXT_INDENT)); + if (!payment.signOff().isBlank()) { + cell.addParagraph(p -> p + .name("ClosingHeadline") + .text(payment.signOff()) + .textStyle(bold(CLOSE_HEAD_SIZE, INK))); + } + String[] lines = payment.dueNotice().isBlank() + ? new String[0] + : payment.dueNotice().split("\n"); + for (int i = 0; i < lines.length; i++) { + String prose = lines[i]; + int index = i; + cell.addParagraph(p -> { + p.name("ClosingLine_" + index); + p.margin(new DocumentInsets( + baselineGap(CLOSE_LINE_PITCH, + index == 0 ? CLOSE_HEAD_SIZE : CLOSE_BODY_SIZE, + CLOSE_BODY_SIZE), + 0, 0, 0)); + writeReachable(p, prose, supplier); + }); + } + }); + }); + }); + } + + /** + * The prose, with any address it names made reachable. + * + *

      The band tells a reader where to write, and the address is printed + * inside the sentence. Written as one string the whole sentence would have to + * carry the target or none of it would, so the address becomes its own run + * and the text around it stays plain.

      + */ + private static void writeReachable(ParagraphBuilder paragraph, String prose, + InvoiceContactBlock supplier) { + List found = new ArrayList<>(); + addIfPresent(found, prose, supplier.email(), InvoiceUri.mailLink(supplier.email())); + addIfPresent(found, prose, supplier.website(), InvoiceUri.webLink(supplier.website())); + addIfPresent(found, prose, supplier.phone(), InvoiceUri.telLink(supplier.phone())); + found.sort(Comparator.comparingInt(Reachable::at)); + + int cursor = 0; + for (Reachable reachable : found) { + if (reachable.at() < cursor) { + continue; + } + if (reachable.at() > cursor) { + paragraph.inlineText(prose.substring(cursor, reachable.at()), + plain(CLOSE_BODY_SIZE, INK)); + } + paragraph.inlineText(reachable.text(), plain(CLOSE_BODY_SIZE, INK), reachable.link()); + cursor = reachable.at() + reachable.text().length(); + } + if (cursor < prose.length()) { + paragraph.inlineText(prose.substring(cursor), plain(CLOSE_BODY_SIZE, INK)); + } + } + + private static void addIfPresent(List found, String prose, String text, + DocumentLinkOptions link) { + if (text == null || text.isBlank() || link == null) { + return; + } + int at = prose.indexOf(text); + if (at >= 0) { + found.add(new Reachable(at, text, link)); + } + } + + private record Reachable(int at, String text, DocumentLinkOptions link) { + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionIcons.java new file mode 100644 index 000000000..eedecfd3a --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionIcons.java @@ -0,0 +1,74 @@ +package com.demcha.compose.document.templates.invoice.presets; + +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.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * The marks the Subscription invoice packages. + * + *

      All of them are the preset's, not the document's. Five open the payment + * band's cells and one opens the closing band, and which glyph opens which is a + * property of the design rather than of the invoice — a bank payment block's + * cells are the same five roles wherever it is printed.

      + * + *

      The band's marks are drawn in order: the design is five marked + * cells, so a payment block with more fields than that draws the extra ones + * unmarked rather than repeating a glyph that would then mean nothing.

      + */ +final class SubscriptionIcons { + + /** The payment band's marks, in the order the design's cells take them. */ + static final List BAND = + List.of("beneficiary", "bank", "transfer", "card", "reference"); + + static final String SHIELD = "shield"; + + private static final String ICON_ROOT = "/templates/invoice/subscription/icons/"; + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private SubscriptionIcons() { + } + + /** + * The mark the payment band's cell at {@code index} opens with, or + * {@code null} when the design has no cell there. + * + * @param index the cell's position in the band + * @return the icon, or {@code null} past the band's own five cells + */ + static SvgIcon band(int index) { + return index < 0 || index >= BAND.size() ? null : icon(BAND.get(index)); + } + + /** + * A packaged mark by name. + * + * @param token the mark's name + * @return the parsed icon + */ + static SvgIcon icon(String token) { + return CACHE.computeIfAbsent(token, SubscriptionIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = SubscriptionIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException( + "Missing subscription invoice icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read subscription invoice icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoice.java new file mode 100644 index 000000000..79842b21f --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionInvoice.java @@ -0,0 +1,181 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.output.DocumentHeaderFooter; +import com.demcha.compose.document.output.DocumentHeaderFooterZone; +import com.demcha.compose.document.output.DocumentPageNumbering; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.util.Objects; + +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CHROME_GREY; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CHROME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.FACE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.FOOTER_H; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.FOOTER_RESERVE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.MARGIN_T; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PAGE; + +/** + * Subscription — an invoice for seats and licences billed with tax per line: a + * lockup against the title, the supplier's details beside a metadata panel whose + * rows each open with a coloured bar, two addressed parties under coloured + * underlines, a six-column table carrying a tax rate on every line, the notes + * beside the totals, a marked payment band, a four-segment strip, and a closing + * band that bleeds to three paper edges. + * + *

      Tax on the line, not only in the sum

      + * + *

      This is the first preset in the family to draw + * {@code InvoiceServiceLines.Line.vatRate()} and its caption, because it bills + * subscriptions in a jurisdiction that prints the rate per line rather than only + * as a total. It is also the one that numbers its lines: a line states its own + * number through {@code lineNumber()}, and one that states none is numbered by + * its position.

      + * + *

      Colour by position, never by meaning

      + * + *

      The metadata bars, the party underlines and the closing strip all draw from + * one four-colour cycle indexed by position — the fourth metadata row is amber + * because it is fourth. Nothing in the document ever names a colour.

      + * + *

      The page has no side margins

      + * + *

      The strip and the closing band have to reach the paper edges, and they do + * it by being the only blocks that carry no horizontal padding — every other + * block carries the content inset itself. The bottom margin reserves the + * enumeration's strip, and the band reaches the bottom edge by bleeding rather + * than by being the last thing on the page, so reserving it costs the design + * nothing but a few points of the band's lower padding.

      + * + *

      Every cell is unstroked

      + * + *

      A cell's stroke draws all four of its edges and there is no per-edge + * control, so any stroke that buys the table's horizontal rule also buys five + * verticals it does not have. The rule under the header is an accent on the + * header cell, and the rule under each data row is a row of its own.

      + * + *

      Money carries its symbol

      + * + *

      This design writes money with the currency's symbol against the digits + * rather than with a code in front or a caption above, so every figure carries + * its own currency and none of the columns state one. Figures state their locale + * rather than inheriting it.

      + * + *

      That is also this preset's one boundary. The columns are measured for a + * one-character mark, so a currency the runtime knows only by its three-letter + * code — several ordinary European ones among them — does not fit the unit-price + * column, and the render is refused there rather than letting the figure run + * under its neighbour. A document billed in such a currency wants a preset that + * states the currency in the column caption instead.

      + * + *

      The lockup is the caller's

      + * + *

      The masthead draws the logo from {@code InvoiceBrand} at the design's + * measured width, and the brand's name beside it as the wordmark. The templates + * artifact carries no mark of its own.

      + * + *

      Fonts

      + * + *

      The sheet is set in Fira Sans Condensed, chosen by measurement: the usual + * humanist substitute matches this design's mixed-case widths but sets uppercase + * about 20% wider per unit of cap height, which shows immediately as headings + * and their coloured rules overshooting. The templates artifact carries no fonts + * — register the family on the session, or the engine substitutes and the + * measured geometry no longer matches the type sitting in it.

      + * + *

      Usage:

      + *
      {@code
      + * DocumentTemplate template = SubscriptionInvoice.create();
      + * template.compose(session, invoice);
      + * }
      + * + * @since 2.4.0 + */ +public final class SubscriptionInvoice { + + /** Stable identifier of this preset. */ + public static final String ID = "subscription-invoice"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Subscription Invoice"; + + private SubscriptionInvoice() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link StructuredInvoiceData} + */ + 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, StructuredInvoiceData data) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(data, "data"); + + document.pageSize(PAGE); + // No side margins and no real bottom margin: the strip and the + // closing band have to reach the paper edges, and they do it by + // being the only blocks that carry no horizontal padding. + document.margin(new DocumentInsets(MARGIN_T, 0, FOOTER_RESERVE, 0)); + renderPageNumber(document); + + String currency = data.currencyCode(); + document.pageFlow(page -> { + page.name("SubscriptionInvoice"); + page.padding(DocumentInsets.zero()); + page.spacing(0); + SubscriptionMasthead.renderBrandHeader(page, data.brand(), data.masthead()); + SubscriptionMasthead.renderIdentityBand(page, data.supplier(), data.masthead()); + SubscriptionParties.render(page, data.billTo(), data.shipTo()); + SubscriptionLines.render(page, data.serviceLines(), currency); + SubscriptionSettlement.render(page, data.notes(), data.totals(), currency); + SubscriptionClosing.renderPaymentBand(page, data.payment()); + SubscriptionClosing.renderPaymentNote(page, data.payment()); + SubscriptionClosing.renderStrip(page); + SubscriptionClosing.renderBand(page, data.payment(), data.supplier()); + }); + } + + /** + * The enumeration. The design has none — it is one sheet — but the + * document flows, and a reader holding page 1 of 2 has to be able to tell + * that page 2 is missing. + * + *

      It sits in the foot, over the closing band's fill. The face is + * stated because the zone's own default is the standard-14 one, which + * would leave the number the single line on the sheet in a family the + * design never uses.

      + */ + private static void renderPageNumber(DocumentSession document) { + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .height((float) FOOTER_H) + .fontName(FACE) + .fontSize((float) CHROME_SIZE) + .textColor(CHROME_GREY) + .centerText("Page {page} of {pages}") + .showSeparator(false) + .numbering(DocumentPageNumbering.DEFAULT) + .build()); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionLines.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionLines.java new file mode 100644 index 000000000..4a8470d37 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionLines.java @@ -0,0 +1,175 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.SpacerBuilder; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +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.invoice.InvoiceServiceLines; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CELL_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CELL_PAD_R; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CELL_PAD_V; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.COLUMN_PX; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.COLUMN_TOTAL_PX; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CONTENT_PAD; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.GAP_PARTIES_TO_TABLE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.HEAD_PAD_H; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.HEAD_PAD_V; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.NO_RULE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TABLE_BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TABLE_HEAD_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TABLE_RULE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TABLE_TOP_RULE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.plain; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.px; + +/** + * The line-item table: six columns under an accent rule, a caps header that + * repeats on every page it reaches, and a hairline under every row. + * + *

      Why every cell is unstroked

      + * + *

      A cell's stroke draws all four of its edges and there is no per-edge + * control, so any stroke that buys the design's horizontal rule also buys five + * verticals it does not have. Every cell here therefore carries none: the rule + * under the header is an accent on the header cell, and the rule under each data + * row is a row of its own — a filled cell spanning every column, one rule + * thick.

      + */ +final class SubscriptionLines { + + private SubscriptionLines() { + } + + /** + * The table. + * + * @param page the page flow + * @param serviceLines the lines and their column captions + * @param currencyCode the code every money figure carries as a symbol + */ + static void render(PageFlowBuilder page, InvoiceServiceLines serviceLines, + String currencyCode) { + page.addSection("LineItems", section -> { + section.padding(CONTENT_PAD); + section.margin(new DocumentInsets(GAP_PARTIES_TO_TABLE, 0, 0, 0)); + section.spacing(0); + // The accent rule belongs to a node whose box is the content box. + // The section above carries the page's horizontal padding, so its own + // box is the full paper width and an accent on it would run edge to + // edge. + section.addSection("LineItemsRuled", ruled -> { + ruled.spacing(0); + ruled.accentTop(ACCENT, TABLE_TOP_RULE); + renderTable(ruled, serviceLines, currencyCode); + }); + }); + } + + private static void renderTable(SectionBuilder ruled, InvoiceServiceLines serviceLines, + String currencyCode) { + InvoiceServiceLines.Columns columns = serviceLines.columns(); + ruled.addTable(table -> { + table.name("LineItemTable"); + table.defaultCellStyle(DocumentTableStyle.builder().stroke(NO_RULE).build()); + table.columns(column(0), column(1), column(2), column(3), column(4), column(5)); + table.headerCells( + headerCell(columns.index(), TextAlign.LEFT), + headerCell(columns.description(), TextAlign.LEFT), + headerCell(columns.quantity(), TextAlign.CENTER), + headerCell(columns.unitPrice(), TextAlign.CENTER), + headerCell(columns.vat(), TextAlign.CENTER), + headerCell(columns.amount(), TextAlign.CENTER)); + table.repeatHeader(); + + List lines = serviceLines.lines(); + for (int i = 0; i < lines.size(); i++) { + InvoiceServiceLines.Line line = lines.get(i); + table.rowCells( + dataCell(number(line, i), DocumentTableTextAnchor.CENTER_LEFT), + dataCell(line.title(), DocumentTableTextAnchor.CENTER_LEFT), + dataCell(SubscriptionText.quantity(line.quantity()), + DocumentTableTextAnchor.CENTER), + dataCell(SubscriptionText.money(currencyCode, line.unitPrice()), + DocumentTableTextAnchor.CENTER_RIGHT), + dataCell(line.vatRate(), DocumentTableTextAnchor.CENTER), + dataCell(SubscriptionText.money(currencyCode, line.amount()), + DocumentTableTextAnchor.CENTER_RIGHT)); + table.rowCells(ruleRow()); + } + }); + } + + /** + * The number the sheet prints for a line: the one the document states, or its + * position when it states none. A document continuing a numbering from + * somewhere else can say so; one that does not gets 1, 2, 3. + */ + private static String number(InvoiceServiceLines.Line line, int index) { + return String.valueOf(line.lineNumber() > 0 ? line.lineNumber() : index + 1); + } + + private static DocumentTableColumn column(int index) { + return DocumentTableColumn.fixed(CONTENT_W * COLUMN_PX[index] / COLUMN_TOTAL_PX); + } + + /** + * A caption cell. A centred caption needs room, not alignment, so it takes + * the narrower symmetric padding; a left-aligned one is positioned by its + * padding and keeps the data cells' measured inset. + */ + private static DocumentTableCell headerCell(String caption, TextAlign align) { + SectionBuilder cell = new SectionBuilder(); + cell.name("LineItemHeaderCell"); + cell.spacing(0); + double padL = align == TextAlign.LEFT ? CELL_PAD_L : HEAD_PAD_H; + double padR = align == TextAlign.LEFT ? CELL_PAD_R : HEAD_PAD_H; + cell.padding(new DocumentInsets(HEAD_PAD_V, padR, HEAD_PAD_V, padL)); + cell.accentBottom(HAIRLINE, TABLE_RULE); + cell.addParagraph(p -> p + .name("LineItemHeading") + .text(caption) + .textStyle(bold(TABLE_HEAD_SIZE, INK)) + .align(align)); + return DocumentTableCell.node(cell.build()).withStyle(DocumentTableStyle.builder() + .stroke(NO_RULE) + .padding(DocumentInsets.zero()) + .build()); + } + + private static DocumentTableCell dataCell(String value, DocumentTableTextAnchor anchor) { + return DocumentTableCell.text(value).withStyle(DocumentTableStyle.builder() + .stroke(NO_RULE) + .padding(new DocumentInsets(CELL_PAD_V, CELL_PAD_R, CELL_PAD_V, CELL_PAD_L)) + .textStyle(plain(TABLE_BODY_SIZE, INK)) + .textAnchor(anchor) + .build()); + } + + /** The hairline under a row: a filled cell across every column, one rule thick. */ + private static DocumentTableCell ruleRow() { + return DocumentTableCell + .node(new SpacerBuilder() + .name("LineItemRule") + .size(px(1), TABLE_RULE) + .build()) + .withStyle(DocumentTableStyle.builder() + .stroke(NO_RULE) + .padding(DocumentInsets.zero()) + .fillColor(HAIRLINE) + .build()) + .colSpan(COLUMN_PX.length); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionMasthead.java new file mode 100644 index 000000000..fdc0f16d6 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionMasthead.java @@ -0,0 +1,233 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +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.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CONTACT_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CONTENT_PAD; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.GAP_MASTHEAD_TO_IDENTITY; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.IDENTITY_LEFT_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.MARK_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.MARK_TOP; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.MARK_W; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_BAR_H; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_BAR_W; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_LABEL_INDENT; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_RIGHT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_ROW_GAP; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_RULE_GAP; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_RULE_INDENT; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_RULE_THICK; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_RULE_W; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.META_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PARTY_LINE_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.SUPPLIER_NAME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.SUPPLIER_TOP_OFFSET; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TITLE_GREY; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.WORDMARK_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.WORDMARK_TOP; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.baselineGap; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.cycle; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.plain; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionWidgets.layeredRow; + +/** + * The head of the sheet: the lockup against the title, then the supplier's own + * details against a metadata panel whose rows each open with a coloured bar. + */ +final class SubscriptionMasthead { + + private SubscriptionMasthead() { + } + + /** + * Mark and wordmark on the left, the document's name pushed to the right + * edge. + * + *

      Three columns rather than a brand block beside a title block: a row + * cannot nest in a row cell, and the lockup needs no grouping node of its own + * to sit on the same line as the title. The mark is the caller's — the + * templates artifact carries none — and the wordmark is the brand's name.

      + */ + static void renderBrandHeader(PageFlowBuilder page, InvoiceBrand brand, + InvoiceMasthead masthead) { + page.addRow("Masthead", row -> { + row.padding(CONTENT_PAD); + row.spacing(0); + row.verticalAlign(RowVerticalAlign.TOP); + row.columns(DocumentRowColumn.fixed(MARK_W + MARK_GUTTER), + DocumentRowColumn.auto(), + DocumentRowColumn.weight(1)); + row.addSection("BrandMark", cell -> { + cell.spacing(0); + if (brand.logo() != null) { + cell.add(new ImageBuilder() + .name("BrandLogo") + .source(brand.logo()) + .width(MARK_W) + .margin(new DocumentInsets(MARK_TOP, 0, 0, 0)) + .build()); + } + }); + row.addParagraph(p -> p + .name("BrandWordmark") + .text(brand.name()) + .textStyle(plain(WORDMARK_SIZE, TITLE_GREY)) + .margin(new DocumentInsets(WORDMARK_TOP, 0, 0, 0))); + row.addParagraph(p -> p + .name("InvoiceTitle") + .text(masthead.title()) + .textStyle(bold(TITLE_SIZE, TITLE_GREY)) + .align(TextAlign.RIGHT)); + }); + } + + /** The supplier's details against the metadata panel. */ + static void renderIdentityBand(PageFlowBuilder page, InvoiceContactBlock supplier, + InvoiceMasthead masthead) { + page.addRow("IdentityBand", row -> { + row.padding(CONTENT_PAD); + row.margin(new DocumentInsets(GAP_MASTHEAD_TO_IDENTITY, 0, 0, 0)); + row.spacing(0); + row.weights(IDENTITY_LEFT_RATIO, 1 - IDENTITY_LEFT_RATIO); + row.addSection("SupplierIdentity", cell -> renderSupplier(cell, supplier)); + row.addSection("MetaPanel", cell -> renderMetaPanel(cell, masthead)); + }); + } + + private static void renderSupplier(SectionBuilder cell, InvoiceContactBlock supplier) { + cell.spacing(0); + // The panel's first accent bar opens the band; the name's cap sits a + // little lower than the bar's top, and that offset is the supplier's. + cell.margin(new DocumentInsets(SUPPLIER_TOP_OFFSET, 0, 0, 0)); + cell.addParagraph(p -> p + .name("SupplierName") + .text(supplier.legalName()) + .textStyle(bold(SUPPLIER_NAME_SIZE, INK))); + + cell.addSection("SupplierAddress", block -> { + block.margin(new DocumentInsets( + baselineGap(30, SUPPLIER_NAME_SIZE, BODY_SIZE), 0, 0, 0)); + block.spacing(PARTY_LINE_PITCH - 1.2 * BODY_SIZE); + List lines = supplier.addressLines(); + for (int i = 0; i < lines.size(); i++) { + String line = lines.get(i); + int index = i; + block.addParagraph(p -> p + .name("SupplierAddress_" + index) + .text(line) + .textStyle(plain(BODY_SIZE, INK))); + } + }); + + cell.addSection("SupplierContacts", block -> { + block.margin(new DocumentInsets(baselineGap(48.9, BODY_SIZE, BODY_SIZE), 0, 0, 0)); + block.spacing(px(30) - 1.2 * BODY_SIZE); + contact(block, "Email", "E", supplier.email(), + InvoiceUri.mailLink(supplier.email())); + contact(block, "Website", "W", supplier.website(), + InvoiceUri.webLink(supplier.website())); + contact(block, "Registration", supplier.taxRegistrationLabel(), + supplier.taxRegistrationNumber(), null); + }); + } + + /** + * One contact channel, over a fixed label column so every value starts on + * the same axis. + * + *

      The design abbreviates its channel labels to single letters; those are + * the preset's, because which letter opens a channel is a property of the + * design, while the registration's label is the document's — it differs by + * jurisdiction.

      + */ + private static void contact(SectionBuilder block, String name, String label, + String value, DocumentLinkOptions link) { + if (value.isBlank() || label.isBlank()) { + return; + } + layeredRow(block, "Contact" + name, line -> { + line.spacing(0); + line.columns(DocumentRowColumn.fixed(CONTACT_LABEL_W), DocumentRowColumn.weight(1)); + line.addParagraph(p -> p + .name("Contact" + name + "Label") + .text(label) + .textStyle(bold(BODY_SIZE, INK))); + line.addParagraph(p -> { + p.name("Contact" + name + "Value"); + if (link == null) { + p.inlineText(value, plain(BODY_SIZE, INK)); + } else { + p.inlineText(value, plain(BODY_SIZE, INK), link); + } + }); + }); + } + + /** + * The metadata panel: each row opens with a bar from the cycle and closes + * with a hairline, except the last, which the design leaves open. + */ + private static void renderMetaPanel(SectionBuilder cell, InvoiceMasthead masthead) { + cell.spacing(META_ROW_GAP); + List entries = masthead.entries(); + for (int i = 0; i < entries.size(); i++) { + InvoiceMasthead.Entry entry = entries.get(i); + DocumentColor accent = cycle(i); + boolean last = i == entries.size() - 1; + int index = i; + cell.addSection("MetaRow_" + index, block -> { + block.spacing(0); + layeredRow(block, "MetaLine_" + index, line -> { + line.spacing(0); + line.padding(new DocumentInsets(0, META_RIGHT_INSET, 0, 0)); + line.verticalAlign(RowVerticalAlign.CENTER); + line.columns(DocumentRowColumn.fixed(META_BAR_W), + DocumentRowColumn.weight(1), + DocumentRowColumn.weight(1)); + line.addShape(bar -> bar + .name("MetaAccent_" + index) + .size(META_BAR_W, META_BAR_H) + .fillColor(accent)); + line.addParagraph(p -> p + .name("MetaLabel_" + index) + .text(entry.label()) + .textStyle(bold(META_LABEL_SIZE, INK)) + .padding(new DocumentInsets(0, 0, 0, META_LABEL_INDENT))); + line.addParagraph(p -> p + .name("MetaValue_" + index) + .text(entry.value()) + .textStyle(plain(META_VALUE_SIZE, INK)) + .align(TextAlign.RIGHT)); + }); + if (!last) { + block.addLine(rule -> rule + .name("MetaSeparator_" + index) + .horizontal(META_RULE_W) + .thickness(META_RULE_THICK) + .color(HAIRLINE) + .margin(new DocumentInsets(META_RULE_GAP, 0, 0, META_RULE_INDENT))); + } + }); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionParties.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionParties.java new file mode 100644 index 000000000..2f9567d39 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionParties.java @@ -0,0 +1,106 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CONTENT_PAD; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.GAP_IDENTITY_TO_PARTIES; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.HEADING_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PARTY_BODY_GAP; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PARTY_LINE_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.PARTY_SPLIT; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.cycle; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.plain; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionWidgets.headingPlaque; + +/** + * The addressed parties, each under a heading underlined in the next colour of + * the cycle. + */ +final class SubscriptionParties { + + private SubscriptionParties() { + } + + /** + * The parties row. + * + *

      The split is the design's measured one when both parties are set. With + * one party there is nothing to split against, so the block takes the row.

      + * + * @param page the page flow + * @param billTo the billed party + * @param shipTo the shipped-to party, or {@code null} when the invoice ships + * nowhere + */ + static void render(PageFlowBuilder page, InvoiceRecipient billTo, InvoiceRecipient shipTo) { + List parties = new ArrayList<>(); + parties.add(billTo); + if (shipTo != null) { + parties.add(shipTo); + } + page.addRow("Parties", row -> { + row.padding(CONTENT_PAD); + row.margin(new DocumentInsets(GAP_IDENTITY_TO_PARTIES, 0, 0, 0)); + row.spacing(0); + if (parties.size() == 2) { + row.weights(PARTY_SPLIT, 1 - PARTY_SPLIT); + } else { + row.evenWeights(); + } + for (int i = 0; i < parties.size(); i++) { + InvoiceRecipient party = parties.get(i); + DocumentColor accent = cycle(i); + int index = i; + row.addSection("Party_" + index, cell -> renderParty(cell, index, party, accent)); + } + }); + } + + private static void renderParty(SectionBuilder cell, int index, InvoiceRecipient party, + DocumentColor accent) { + cell.spacing(0); + headingPlaque(cell, "PartyHeading_" + index, party.heading(), HEADING_SIZE, accent); + cell.addSection("PartyAddress_" + index, block -> { + block.margin(new DocumentInsets(PARTY_BODY_GAP, 0, 0, 0)); + block.spacing(PARTY_LINE_PITCH - 1.2 * BODY_SIZE); + // The attention line sits above the address, which is what the + // contract says it is and what this design draws. + if (!party.name().isBlank()) { + block.addParagraph(p -> p + .name("PartyName_" + index) + .text(party.name()) + .textStyle(plain(BODY_SIZE, INK))); + } + if (!party.subline().isBlank()) { + block.addParagraph(p -> p + .name("PartySubline_" + index) + .text(party.subline()) + .textStyle(plain(BODY_SIZE, INK))); + } + List address = party.addressLines(); + for (int i = 0; i < address.size(); i++) { + String line = address.get(i); + int lineIndex = i; + block.addParagraph(p -> p + .name("PartyAddress_" + index + "_" + lineIndex) + .text(line) + .textStyle(plain(BODY_SIZE, INK))); + } + if (!party.registrationNumber().isBlank()) { + block.addParagraph(p -> p + .name("PartyRegistration_" + index) + .text(party.registrationLabel() + " " + party.registrationNumber()) + .textStyle(plain(BODY_SIZE, INK))); + } + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionSettlement.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionSettlement.java new file mode 100644 index 000000000..9febed945 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionSettlement.java @@ -0,0 +1,150 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.SpacerBuilder; +import com.demcha.compose.document.style.DocumentInsets; +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.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CONTENT_PAD; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.CYCLE_AMBER; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.GAP_TABLE_TO_TOTALS; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.HEADING_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.NOTES_BODY_GAP; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.NOTES_BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.NOTES_LINE_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.NOTES_TEXT_W; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.NOTES_TOP_OFFSET; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.NO_RULE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TOTALS_DUE_PAD_V; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TOTALS_LABEL_SHARE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TOTALS_LEFT_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TOTALS_PAD_H; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TOTALS_PAD_V; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TOTALS_ROW_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TOTALS_RULE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TOTAL_DUE_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.TOTAL_DUE_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.leading; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.plain; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionWidgets.headingPlaque; + +/** + * The band under the table: the notes on the left, the totals on the right. + */ +final class SubscriptionSettlement { + + private SubscriptionSettlement() { + } + + /** + * The notes-and-totals row. + * + *

      The two are not top-flush: the design starts the notes heading a + * heading-height below the first totals line beside it, which is what makes + * the block read as an aside to the sum rather than as a second column of + * it.

      + * + * @param page the page flow + * @param notes the note beside the totals + * @param totals the summed rows and the grand total + * @param currencyCode the code every money figure carries as a symbol + */ + static void render(PageFlowBuilder page, InvoiceNotesBlock notes, + InvoiceTotalsBlock totals, String currencyCode) { + page.addRow("NotesAndTotals", row -> { + row.padding(CONTENT_PAD); + row.margin(new DocumentInsets(GAP_TABLE_TO_TOTALS, 0, 0, 0)); + row.spacing(0); + row.weights(TOTALS_LEFT_RATIO, 1 - TOTALS_LEFT_RATIO); + row.addSection("Notes", cell -> renderNotes(cell, notes)); + row.addSection("Totals", cell -> renderTotals(cell, totals, currencyCode)); + }); + } + + private static void renderNotes(SectionBuilder cell, InvoiceNotesBlock notes) { + cell.spacing(0); + if (notes.heading().isBlank() && notes.paragraphs().isEmpty()) { + return; + } + cell.margin(new DocumentInsets(NOTES_TOP_OFFSET, 0, 0, 0)); + // The paragraph wraps at its container, and the design wraps it well + // before the cell ends, so the width belongs to the cell. + cell.padding(new DocumentInsets( + 0, CONTENT_W * TOTALS_LEFT_RATIO - NOTES_TEXT_W, 0, 0)); + if (!notes.heading().isBlank()) { + headingPlaque(cell, "NotesHeading", notes.heading(), HEADING_SIZE, CYCLE_AMBER); + } + List paragraphs = notes.paragraphs(); + for (int i = 0; i < paragraphs.size(); i++) { + String prose = paragraphs.get(i); + int index = i; + cell.addParagraph(p -> p + .name("NotesBody_" + index) + .text(prose) + .textStyle(plain(NOTES_BODY_SIZE, INK)) + .lineSpacing(leading(NOTES_LINE_PITCH, NOTES_BODY_SIZE)) + .margin(new DocumentInsets(NOTES_BODY_GAP, 0, 0, 0))); + } + } + + private static void renderTotals(SectionBuilder cell, InvoiceTotalsBlock totals, + String currencyCode) { + cell.spacing(0); + cell.keepTogether(); + double width = CONTENT_W * (1 - TOTALS_LEFT_RATIO); + cell.addTable(table -> { + table.name("TotalsTable"); + table.defaultCellStyle(DocumentTableStyle.builder().stroke(NO_RULE).build()); + table.columns(DocumentTableColumn.fixed(width * TOTALS_LABEL_SHARE), + DocumentTableColumn.fixed(width * (1 - TOTALS_LABEL_SHARE))); + for (InvoiceTotalsBlock.Row row : totals.rows()) { + table.rowCells( + totalsCell(row.label(), TOTALS_ROW_SIZE, + DocumentTableTextAnchor.CENTER_LEFT, TOTALS_PAD_V), + totalsCell(SubscriptionText.money(currencyCode, row.amount()), + TOTALS_ROW_SIZE, DocumentTableTextAnchor.CENTER_RIGHT, + TOTALS_PAD_V)); + } + table.rowCells(DocumentTableCell + .node(new SpacerBuilder() + .name("TotalsRule") + .size(px(1), TOTALS_RULE) + .build()) + .withStyle(DocumentTableStyle.builder() + .stroke(NO_RULE) + .padding(DocumentInsets.zero()) + .fillColor(ACCENT) + .build()) + .colSpan(2)); + table.rowCells( + totalsCell(totals.totalLabel(), TOTAL_DUE_LABEL_SIZE, + DocumentTableTextAnchor.CENTER_LEFT, TOTALS_DUE_PAD_V), + totalsCell(SubscriptionText.money(currencyCode, totals.totalAmount()), + TOTAL_DUE_VALUE_SIZE, DocumentTableTextAnchor.CENTER_RIGHT, + TOTALS_DUE_PAD_V)); + }); + } + + private static DocumentTableCell totalsCell(String value, double size, + DocumentTableTextAnchor anchor, double padV) { + return DocumentTableCell.text(value).withStyle(DocumentTableStyle.builder() + .stroke(NO_RULE) + .padding(new DocumentInsets(padV, TOTALS_PAD_H, padV, TOTALS_PAD_H)) + .textStyle(bold(size, INK)) + .textAnchor(anchor) + .build()); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionStyles.java new file mode 100644 index 000000000..a8ff5dfe8 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionStyles.java @@ -0,0 +1,377 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.font.FontName; + +import java.util.List; + +/** + * Every measurement, colour and type size of the Subscription invoice. + * + *

      Geometry is relational: every dimension comes from three base numbers — + * the page, {@link #px(double)} (the design's own pixel scale in points), and + * {@link #CONTENT_W}. A measurement taken off the design is written as + * {@code px(n)} so it stays readable as the thing that was measured while still + * rescaling with the page, and every type size is {@link #sizeForCap(double)} so + * it stays readable as the cap height it reproduces.

      + */ +final class SubscriptionStyles { + + private SubscriptionStyles() { + } + + // ------------------------------------------------------------------ + // The page + // ------------------------------------------------------------------ + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + + static final double PAGE_W = PAGE.width(); + + /** The design image's pixel width — the scale every measurement below is in. */ + private static final double DESIGN_PX_WIDTH = 1055.0; + + /** Points per design pixel. The one conversion the whole preset goes through. */ + private static final double PX = PAGE_W / DESIGN_PX_WIDTH; + + static double px(double designPixels) { + return designPixels * PX; + } + + /** Measured: ink runs x=48..1006 on a 1055 px page, symmetric within a pixel. */ + static final double MARGIN_X = px(48); + + /** + * The flow's top. + * + *

      The mark's first ink row is at 46, but a paragraph's box starts above + * its cap band and the title is the tallest thing in the masthead. The flow + * therefore opens at the title's box top — 14 px above the mark — + * which is what puts the mark back at 46 once the masthead row aligns its + * cells against each other.

      + */ + static final double MARGIN_T = px(31); + + /** + * The room the body is held off the paper's bottom edge — roughly the + * padding the design already leaves below the last line of its closing band, + * so the band's fill still runs to the edge and only the text moves up. + */ + static final double FOOTER_RESERVE = px(20); + + /** + * The chrome band the enumeration is seated in, deliberately taller than the + * reserve. + * + *

      The two answer different questions. The reserve is how much page the + * body gives up, and it decides whether the closing band still fits + * on one page; the band height is where inside that foot the number + * sits. Seating it in a taller band lifts it off the paper edge + * without taking another point from the body.

      + */ + static final double FOOTER_H = px(24); + + static final double CONTENT_W = PAGE_W - 2 * MARGIN_X; + + /** The horizontal inset every block carries except the two that reach the paper edges. */ + static final DocumentInsets CONTENT_PAD = new DocumentInsets(0, MARGIN_X, 0, MARGIN_X); + + // ------------------------------------------------------------------ + // Colour + // ------------------------------------------------------------------ + + static final DocumentColor INK = DocumentColor.rgb(0, 4, 14); + static final DocumentColor TITLE_GREY = DocumentColor.rgb(71, 71, 70); + static final DocumentColor ACCENT = DocumentColor.rgb(0, 104, 218); + static final DocumentColor HAIRLINE = DocumentColor.rgb(234, 234, 235); + static final DocumentColor BAND_FILL = DocumentColor.rgb(245, 246, 247); + static final DocumentColor CHROME_GREY = DocumentColor.rgb(154, 160, 166); + + private static final DocumentColor CYCLE_RED = DocumentColor.rgb(242, 69, 34); + private static final DocumentColor CYCLE_GREEN = DocumentColor.rgb(114, 176, 22); + private static final DocumentColor CYCLE_BLUE = DocumentColor.rgb(20, 118, 212); + static final DocumentColor CYCLE_AMBER = DocumentColor.rgb(255, 180, 0); + + /** + * The cycle the metadata bars, the party underlines and the closing strip all + * draw from. Position, not meaning: the fourth row is amber because it is + * fourth, and nothing in the document ever names a colour. + */ + static final List CYCLE = + List.of(CYCLE_RED, CYCLE_GREEN, CYCLE_BLUE, CYCLE_AMBER); + + /** The colour at a position in the cycle. */ + static DocumentColor cycle(int index) { + return CYCLE.get(Math.floorMod(index, CYCLE.size())); + } + + /** + * A cell's stroke draws all four edges and there is no per-edge control, so + * every cell in this document carries none. The rules the design does show + * are drawn as accents and as rule rows instead. + */ + static final DocumentStroke NO_RULE = DocumentStroke.of(DocumentColor.rgba(255, 255, 255, 0), 0); + + // ------------------------------------------------------------------ + // Type + // ------------------------------------------------------------------ + + /** + * The design is set in a humanist grotesque that is not bundled. Lato is the + * usual substitute and matches the design's mixed-case widths to within 4%, + * but its uppercase is about 20% wider per unit of cap height, which shows up + * immediately as headings and their coloured rules overshooting. Measured + * across twenty strings, Fira Sans Condensed is the bundled family that + * reproduces both: all-caps within 5% and mixed-case within 1% at the + * measured cap heights. + * + *

      The templates artifact carries no fonts — register the family on the + * session, or the engine substitutes and the cap arithmetic below no longer + * describes the type sitting in it.

      + */ + static final FontName FACE = FontName.FIRA_SANS_CONDENSED; + + /** Fira Sans Condensed's cap heights, read off the bundled TTFs, on a 1000 unit em. */ + private static final double CAP_REGULAR = 0.688; + private static final double CAP_BOLD = 0.693; + + /** Its ascender and descender, same source. They sum to the 1.2 em line box. */ + private static final double ASCENT = 0.935; + private static final double DESCENT = 0.265; + + static double sizeForCap(double capPx) { + return px(capPx) / CAP_REGULAR; + } + + static double sizeForCapBold(double capPx) { + return px(capPx) / CAP_BOLD; + } + + /** + * The margin that puts the next block's first baseline {@code pitchPx} below + * the previous block's last baseline. Baselines are what the design can be + * measured on unambiguously; box edges are not. + */ + static double baselineGap(double pitchPx, double sizeAbove, double sizeBelow) { + return px(pitchPx) - DESCENT * sizeAbove - ASCENT * sizeBelow; + } + + /** + * Line spacing is points added between lines and the line box is + * 1.2× the type size, so a measured line pitch converts as + * {@code pitch - 1.2 * size}, never as a ratio. + */ + static double leading(double pitchPx, double size) { + return px(pitchPx) - 1.2 * size; + } + + static final double TITLE_SIZE = sizeForCapBold(52); + static final double WORDMARK_SIZE = sizeForCap(32); + static final double SUPPLIER_NAME_SIZE = sizeForCapBold(15); + static final double BODY_SIZE = sizeForCap(13); + static final double META_LABEL_SIZE = sizeForCapBold(13.5); + static final double META_VALUE_SIZE = sizeForCap(13.5); + static final double HEADING_SIZE = sizeForCapBold(15.5); + static final double TABLE_HEAD_SIZE = sizeForCapBold(13.5); + static final double TABLE_BODY_SIZE = sizeForCap(12.8); + static final double TOTALS_ROW_SIZE = sizeForCapBold(13); + static final double TOTAL_DUE_LABEL_SIZE = sizeForCapBold(16); + static final double TOTAL_DUE_VALUE_SIZE = sizeForCapBold(20.5); + static final double NOTES_BODY_SIZE = sizeForCap(13.5); + static final double PAY_LABEL_SIZE = sizeForCapBold(13); + static final double PAY_VALUE_SIZE = sizeForCap(13); + static final double PAY_NOTE_SIZE = sizeForCap(12.8); + static final double CLOSE_HEAD_SIZE = sizeForCapBold(12.5); + static final double CLOSE_BODY_SIZE = sizeForCap(12); + static final double CHROME_SIZE = 7.0; + + static DocumentTextStyle style(double size, DocumentColor colour, + DocumentTextDecoration decoration) { + return DocumentTextStyle.builder() + .fontName(FACE) + .size(size) + .color(colour) + .decoration(decoration) + .build(); + } + + static DocumentTextStyle plain(double size, DocumentColor colour) { + return style(size, colour, DocumentTextDecoration.DEFAULT); + } + + static DocumentTextStyle bold(double size, DocumentColor colour) { + return style(size, colour, DocumentTextDecoration.BOLD); + } + + // ------------------------------------------------------------------ + // Masthead + // ------------------------------------------------------------------ + + /** The mark is 54 px square and the wordmark's ink opens 16 px to its right. */ + static final double MARK_W = px(54); + static final double MARK_GUTTER = px(16); + + /** + * The mark's top against the masthead row's top. The design lines the title's + * cap band up with the mark rather than the title's line box, and + * the box is half as tall again as the cap — so the row is top-aligned and + * the mark carries the difference instead of the row centring the two. + */ + static final double MARK_TOP = px(15); + + /** The wordmark's cap sits below the mark's top by this much. */ + static final double WORDMARK_TOP = px(17.5); + + // ------------------------------------------------------------------ + // Identity band + // ------------------------------------------------------------------ + + /** The metadata panel's left edge, as a share of the content box. */ + static final double IDENTITY_LEFT_RATIO = (633.0 - 48.0) / 959.0; + + static final double SUPPLIER_TOP_OFFSET = px(2.7); + static final double META_BAR_W = px(4); + static final double META_BAR_H = px(39); + static final double META_LABEL_INDENT = px(17); + static final double META_RIGHT_INSET = px(15); + static final double META_RULE_W = px(368); + static final double META_RULE_INDENT = px(6); + static final double META_RULE_THICK = px(2); + + /** Bar bottom 179 → rule top 182, and rule bottom 184 → next bar top 189. */ + static final double META_RULE_GAP = px(3); + static final double META_ROW_GAP = px(5); + + /** + * The contact label gutter. The design puts two of the values at x=116 and + * the third at 132, which is a minimum width plus a gap; one fixed column is + * the honest reading of it, and it has to clear the longest label. + */ + static final double CONTACT_LABEL_W = px(70); + + // ------------------------------------------------------------------ + // Parties and headings + // ------------------------------------------------------------------ + + /** The second party column opens at x=539 of the content box. */ + static final double PARTY_SPLIT = (539.0 - 48.0) / 959.0; + + /** Heading rule bottom 449 → first address baseline 487. */ + static final double PARTY_BODY_GAP = px(22.7); + + /** Heading baseline 434 → rule 444..448: ten points of pad, then a five-pixel rule. */ + static final double HEADING_RULE_PAD = px(7); + static final double HEADING_RULE_THICK = px(4.2); + + static final double PARTY_LINE_PITCH = px(27); + + // ------------------------------------------------------------------ + // The line-item table + // ------------------------------------------------------------------ + + /** + * The six columns, solved from the ink: the number and description are left + * aligned, the money headings centred, the amounts right aligned. The widths + * sum to the content width by construction. + */ + static final double[] COLUMN_PX = {67, 413, 96, 116, 151, 116}; + static final double COLUMN_TOTAL_PX = 959.0; + + static final double CELL_PAD_L = px(17); + static final double CELL_PAD_R = px(25); + + /** The data row band is 47.5 px, of which the rule row below it takes one. */ + static final double CELL_PAD_V = px(12.2); + static final double HEAD_PAD_V = px(11.6); + + /** + * A centred caption needs room, not alignment: the widest one is 94 px inside + * a 116 px column, which leaves it seven px a side. A left-aligned caption is + * positioned by its padding instead, so those cells keep the data cells' + * measured inset. + */ + static final double HEAD_PAD_H = px(7); + + static final double TABLE_RULE = px(1); + static final double TABLE_TOP_RULE = px(5); + + // ------------------------------------------------------------------ + // Totals and notes + // ------------------------------------------------------------------ + + /** The totals block opens on the unit-price boundary, so it is derived, not measured. */ + static final double TOTALS_LEFT_RATIO = + (COLUMN_PX[0] + COLUMN_PX[1] + COLUMN_PX[2]) / COLUMN_TOTAL_PX; + static final double TOTALS_LABEL_SHARE = 0.50; + static final double TOTALS_PAD_H = px(25); + static final double TOTALS_PAD_V = px(12.6); + static final double TOTALS_DUE_PAD_V = px(8.45); + static final double TOTALS_RULE = px(3); + + /** The notes paragraph wraps well before its cell ends, so the width is the cell's. */ + static final double NOTES_TEXT_W = px(400); + static final double NOTES_BODY_GAP = px(20.7); + static final double NOTES_LINE_PITCH = 27; + + /** + * What makes the notes/totals row not top-flush: the design starts the notes + * heading a heading-height below the first totals line beside it. + */ + static final double NOTES_TOP_OFFSET = px(50.5); + + // ------------------------------------------------------------------ + // Payment band, strip and closing band + // ------------------------------------------------------------------ + + /** The five payment columns, from the dividers' measured positions. */ + static final double[] PAYMENT_PX = {207.5, 178, 184, 185, 204.5}; + + static final double PAY_ICON_W = px(42); + static final double PAY_DIVIDER = px(2); + static final double PAY_COLUMNS_GAP = px(18.9); + static final double PAY_LABEL_GAP = px(15.8); + static final double PAY_VALUE_GAP = px(6.6); + + /** + * The design's outer two payment columns are not centred on the space the + * dividers give them: their content sits about ten px inboard. The middle + * three are centred to within three px, so the nudge is on the outer pair. + */ + static final double PAY_OUTER_NUDGE = px(20); + + /** The closing strip: four segments across the full paper width. */ + static final double[] STRIP_PX = {272, 255, 252, 276}; + static final double STRIP_TOTAL_PX = DESIGN_PX_WIDTH; + static final double STRIP_H = px(6); + + /** + * The band's left inset is short of the page's, because the mark's SVG + * carries its own padding: the design puts the glyph's ink at the + * content edge, so the icon box has to start left of it to land there. + */ + static final double CLOSE_PAD_L = px(42); + static final double CLOSE_TEXT_INDENT = px(6); + + /** Lifts the mark off the text block's centre line, as the design does. */ + static final double CLOSE_ICON_LIFT = px(5); + static final double CLOSE_ICON_COLUMN = px(79); + static final double CLOSE_ICON_W = px(56); + static final double CLOSE_PAD_T = px(24.8); + static final double CLOSE_PAD_B = px(2); + static final double CLOSE_LINE_PITCH = 24; + + // Inter-block gaps, each named by the two measured ink edges it reproduces. + static final double GAP_MASTHEAD_TO_IDENTITY = px(19.9); + static final double GAP_IDENTITY_TO_PARTIES = px(37.7); + static final double GAP_PARTIES_TO_TABLE = px(43.8); + static final double GAP_TABLE_TO_TOTALS = px(2.1); + static final double GAP_TABLE_TO_PAYMENT = px(36.1); + static final double GAP_PAYMENT_TO_NOTE = px(21.3); + static final double GAP_NOTE_TO_STRIP = px(32.1); + static final double GAP_STRIP_TO_BAND = px(1); +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionText.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionText.java new file mode 100644 index 000000000..98a27aab7 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionText.java @@ -0,0 +1,74 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import java.math.BigDecimal; +import java.text.NumberFormat; +import java.util.Currency; +import java.util.Locale; + +/** + * How the Subscription invoice writes its figures. + * + *

      This design writes money with the currency's symbol against the + * digits rather than with a code in front or a caption above, so every figure on + * the sheet carries its own currency and none of the columns state one. The + * locale is stated rather than inherited, so the same data renders the same + * sheet on any machine.

      + */ +final class SubscriptionText { + + private SubscriptionText() { + } + + /** + * An amount behind its currency symbol. + * + * @param currencyCode the code the invoice is billed in + * @param value the amount + * @return the amount as the sheet prints it + */ + static String money(String currencyCode, BigDecimal value) { + return symbol(currencyCode) + amount(value); + } + + /** + * A count, bare, with no fraction when it has none. + * + * @param value the count + * @return the count as the sheet prints it + */ + static String quantity(BigDecimal value) { + BigDecimal stripped = value.stripTrailingZeros(); + return stripped.scale() <= 0 + ? stripped.toBigInteger().toString() + : stripped.toPlainString(); + } + + /** + * The symbol a code is written with, or the code itself when the runtime + * knows no symbol for it. + * + *

      Either way it goes hard against the digits, which is this design's own + * rule and not only a convention for the short marks: a sheet that prints + * the code there is still readable, and one that prints nothing at all names + * no currency anywhere. The columns are measured for a one-character mark + * though, so a three-letter code leaves the amount that much less room.

      + */ + private static String symbol(String currencyCode) { + if (currencyCode == null || currencyCode.isBlank()) { + return ""; + } + try { + return Currency.getInstance(currencyCode.trim()).getSymbol(Locale.ENGLISH); + } catch (IllegalArgumentException notACurrency) { + return currencyCode.trim(); + } + } + + private static String amount(BigDecimal value) { + NumberFormat format = NumberFormat.getNumberInstance(Locale.ENGLISH); + format.setGroupingUsed(true); + format.setMinimumFractionDigits(2); + format.setMaximumFractionDigits(2); + return format.format(value); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionWidgets.java new file mode 100644 index 000000000..170d6380d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionWidgets.java @@ -0,0 +1,81 @@ +package com.demcha.compose.document.templates.invoice.presets; + +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.LayerAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; + +import java.util.function.Consumer; + +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.HEADING_RULE_PAD; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.HEADING_RULE_THICK; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.SubscriptionStyles.px; + +/** + * The two shapes the Subscription invoice repeats: a horizontal pair inside a + * column, and the heading plaque — a caption underlined in one of the cycle's + * colours, sized to the caption rather than to the column. + */ +final class SubscriptionWidgets { + + private SubscriptionWidgets() { + } + + /** + * A row wrapped in a layer, so it can sit inside a row cell. + * + *

      A row nested in a row cell is refused by the layout compiler, and + * through a section too — it is the ancestry that matters, not the immediate + * parent. A row wrapped in a LayerStack layer lays out horizontally there.

      + * + * @param parent the section the pair belongs to + * @param name the pair's name, which its holder and layer extend + * @param spec the row itself + */ + static void layeredRow(SectionBuilder parent, String name, Consumer spec) { + SectionBuilder holder = new SectionBuilder(); + holder.name(name + "Holder"); + holder.addRow(name, spec); + DocumentNode node = holder.build(); + parent.addLayerStack(stack -> stack + .name(name + "Layer") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** + * A caption with a coloured rule under it, as wide as the caption. + * + *

      The rule is an accent on a cell that hugs its text, not a line of a + * stated width: the design's rules end where their headings do, and a stated + * width would have to be re-measured for every caption a document might set. + * The spacer beside it is what stops the cell from filling the row.

      + * + * @param host the section the plaque belongs to + * @param name the plaque's name + * @param heading the caption + * @param size the caption's type size + * @param accent the rule's colour + */ + static void headingPlaque(SectionBuilder host, String name, String heading, + double size, DocumentColor accent) { + layeredRow(host, name, row -> { + row.spacing(0); + row.columns(DocumentRowColumn.auto(), DocumentRowColumn.weight(1)); + row.addSection(name + "Rule", cell -> { + cell.spacing(0); + cell.padding(new DocumentInsets(0, 0, HEADING_RULE_PAD, 0)); + cell.accentBottom(accent, HEADING_RULE_THICK); + cell.addParagraph(p -> p + .name(name + "Text") + .text(heading) + .textStyle(bold(size, INK))); + }); + row.addSpacer(px(1)); + }); + } +} diff --git a/templates/src/main/resources/templates/invoice/subscription/icons/bank.svg b/templates/src/main/resources/templates/invoice/subscription/icons/bank.svg new file mode 100644 index 000000000..bd29cf79b --- /dev/null +++ b/templates/src/main/resources/templates/invoice/subscription/icons/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/subscription/icons/beneficiary.svg b/templates/src/main/resources/templates/invoice/subscription/icons/beneficiary.svg new file mode 100644 index 000000000..996b9ad7e --- /dev/null +++ b/templates/src/main/resources/templates/invoice/subscription/icons/beneficiary.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/subscription/icons/card.svg b/templates/src/main/resources/templates/invoice/subscription/icons/card.svg new file mode 100644 index 000000000..cb11e906e --- /dev/null +++ b/templates/src/main/resources/templates/invoice/subscription/icons/card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/subscription/icons/reference.svg b/templates/src/main/resources/templates/invoice/subscription/icons/reference.svg new file mode 100644 index 000000000..6e21e0e50 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/subscription/icons/reference.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/subscription/icons/shield.svg b/templates/src/main/resources/templates/invoice/subscription/icons/shield.svg new file mode 100644 index 000000000..839647a90 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/subscription/icons/shield.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/subscription/icons/transfer.svg b/templates/src/main/resources/templates/invoice/subscription/icons/transfer.svg new file mode 100644 index 000000000..7b4ed303d --- /dev/null +++ b/templates/src/main/resources/templates/invoice/subscription/icons/transfer.svg @@ -0,0 +1 @@ + \ No newline at end of file From 52763abdf25847c309546c0207dee7231d65837e Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 20:19:01 +0100 Subject: [PATCH 39/85] feat(templates): add a dark invoice preset (#650) ObsidianInvoice is the first dark sheet in the library. It ports the rendered layout of a published standalone template onto the existing StructuredInvoiceData model: a wordmark over the document's name against a ruled metadata stack, the issuer and the billed party on filled discs in cards of their own, a line-item table in a third, the totals in a fourth, the notes and payment details side by side in a fifth and sixth, and a closing band under a hairline. Rendered against the frozen original with the same data, every card, the table, the totals and both information cards are pixel-identical. The regions that differ are the two discs, which carry the caller's mark where the original carried its own, and the enumeration, which sets the sheet's own face. The fill is set on the page, not on the flow. A container's fill is bounded by its content height, so a continuation page carrying three line items would show two thirds of a white sheet under them. Sizes are solved from ink rather than from cap height: the design's face is not bundled, and matching a cap height alone would still set every string to the wrong width. Each size comes from the measured ink width of the string it sets, with the substitute's width ratio applied once, and every size is named by the string it came from. Vertical positions are cap tops rather than box edges. The tax column is worked out rather than asked for. This design gives the tax its own money column where the model carries a rate, and the figure is not a second thing to state: a line already gives the quantity, the unit price and the total, so the tax is the difference between what was charged and what the goods cost. The issuer's disc carries the caller's logo when there is one, the brand's monogram when it states one, and initials taken from the name otherwise; the billed party's always shows initials from its name. Tests: a smoke test covering the derived tax and its zero-rated case, both disc fallbacks, the due sentence keeping its accented date inside one sentence, and pagination; an exact layout snapshot; and a pixel baseline. One fixture feeds all three. Reactor gate green. --- CHANGELOG.md | 36 + knowledge/api/templates.json | 42 +- knowledge/api/templates.md | 6 +- .../presets/ObsidianInvoiceFixtures.java | 97 + .../ObsidianInvoiceLayoutSnapshotTest.java | 21 + .../presets/ObsidianInvoiceSmokeTest.java | 182 + .../ObsidianInvoiceVisualParityTest.java | 32 + .../invoice/obsidian_invoice_layout.json | 4187 +++++++++++++++++ .../obsidian_invoice-page-0.png | Bin 0 -> 78833 bytes .../invoice/presets/ObsidianCards.java | 170 + .../invoice/presets/ObsidianClosing.java | 141 + .../invoice/presets/ObsidianIcons.java | 55 + .../invoice/presets/ObsidianInvoice.java | 187 + .../invoice/presets/ObsidianLines.java | 203 + .../invoice/presets/ObsidianMasthead.java | 141 + .../invoice/presets/ObsidianParties.java | 165 + .../invoice/presets/ObsidianSettlement.java | 141 + .../invoice/presets/ObsidianStyles.java | 250 + .../invoice/presets/ObsidianText.java | 83 + .../invoice/presets/ObsidianWidgets.java | 122 + .../invoice/obsidian/icons/notes.svg | 1 + .../invoice/obsidian/icons/payment.svg | 1 + 22 files changed, 6258 insertions(+), 5 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/obsidian_invoice_layout.json create mode 100644 qa/src/test/resources/visual-baselines/invoice-v2-layered/obsidian_invoice-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianCards.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoice.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianLines.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianParties.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianSettlement.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianText.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianWidgets.java create mode 100644 templates/src/main/resources/templates/invoice/obsidian/icons/notes.svg create mode 100644 templates/src/main/resources/templates/invoice/obsidian/icons/payment.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index c3eb3dcf2..54d5a8d23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -168,6 +168,42 @@ follow semantic versioning; release dates are ISO 8601. recognisable; a number is not — dates, reference numbers and amounts all look like one — so only the structured contact field is linked. +- **A dark invoice preset: `ObsidianInvoice`.** The first dark sheet in the library: a + wordmark over the document's name against a ruled metadata stack, the issuer and the + billed party on filled discs in cards of their own, a line-item table in a third, the + totals in a fourth, the notes and payment details side by side in a fifth and sixth, + and a closing band under a hairline. Ships as `invoice.presets.ObsidianInvoice` on the + existing `StructuredInvoiceData` model, porting the rendered layout of a published + standalone template: rendered against the frozen original with the same data, every + card, the table, the totals and both information cards are **pixel-identical**, and the + only regions that differ are the two discs — which carry the caller's mark where the + original carried its own — and the enumeration, which sets the sheet's own face. +

      + The fill is set on the page rather than on the flow. A container's fill is bounded by + its content height, so a continuation page carrying three line items would show two + thirds of a white sheet under them; the page background covers the paper whatever the + content does. +

      + Sizes are solved from ink rather than from cap height. The design's own face is not + bundled and matching a cap height alone would still set every string to the wrong + width, so each size is solved from the measured ink width of the string it sets, with + the substitute's width ratio applied once — and every size is named, in the styles, by + the string it came from. Vertical positions are cap tops rather than box edges, because + ink is what a design can be measured on. +

      + The tax column is worked out rather than asked for. This design gives the tax its own + money column where the model carries a rate, and the figure is not a second thing to + state: a line already gives the quantity, the unit price and the total it comes to, so + the tax is the difference between what was charged and what the goods cost. Reading it + off the line is also what keeps the column and the total consistent when either moves. +

      + The issuer's disc carries the caller's logo when there is one, the brand's monogram when + it states one, and initials taken from the name otherwise; the billed party's always + shows initials taken from its name. Guarded by a smoke test (including the derived tax + and its zero-rated case, both disc fallbacks, the due sentence keeping its accented date + inside one sentence, and pagination), an exact layout snapshot, and a pixel baseline — + all three fed by one fixture. + - **A per-seat subscription invoice preset: `SubscriptionInvoice`.** A lockup against the title, the supplier's details beside a metadata panel whose rows each open with a coloured bar, two addressed parties under coloured underlines, a six-column table diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index 9b40897ed..b6fd1866a 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,10 +22,10 @@ "graph-compose-testing:sources" ], "counts": { - "types": 220, - "methods": 1230, - "constants": 170, - "generated": 653 + "types": 221, + "methods": 1231, + "constants": 172, + "generated": 655 }, "packages": [ { @@ -20971,6 +20971,40 @@ } ] }, + { + "name": "ObsidianInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.ObsidianInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "PaymentsInvoice", "binaryName": "com.demcha.compose.document.templates.invoice.presets.PaymentsInvoice", diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index aa941b2c1..f3c6ffb47 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 220 · methods: 1230 · constants: 170 · compiler-generated members: 653 +Types: 221 · methods: 1231 · constants: 172 · compiler-generated members: 655 ## com.demcha.compose.document.templates.api @@ -1764,6 +1764,10 @@ Types: 220 · methods: 1230 · constants: 170 · compiler-generated members: 653 - `DocumentTemplate create(BrandTheme theme)` - constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` +### ObsidianInvoice (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + ### PaymentsInvoice (class) - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceFixtures.java new file mode 100644 index 000000000..1be5916dc --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceFixtures.java @@ -0,0 +1,97 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * The one invoice the Obsidian preset's tests render. + * + *

      Both gates read it: the exact layout snapshot and the pixel baseline. One + * fixture behind both is what makes the two comparable — a shift the snapshot + * catches is a shift in the same document the baseline was recorded from.

      + * + *

      Its lines are priced so the tax the preset works out is a round figure per + * line, because that column is derived rather than stated and a fixture that + * hid the arithmetic would not exercise it.

      + */ +final class ObsidianInvoiceFixtures { + + private ObsidianInvoiceFixtures() { + } + + /** A month of business-account services, billed to one customer. */ + static StructuredInvoiceData invoice() { + return StructuredInvoiceData.builder() + .brand(new InvoiceBrand(null, "Kestrel", "", "", "K", "")) + .supplier(new InvoiceContactBlock( + "Kestrel Business", + List.of("7 Harbourside Walk", "Bristol BS1 5TY", "United Kingdom"), + "", "ar@kestrel.example", "", "", "", "", "")) + .masthead(new InvoiceMasthead("INVOICE", List.of( + new InvoiceMasthead.Entry("Invoice number", "INV-2026-1048", false), + new InvoiceMasthead.Entry("Issue date", "27 August 2026", false), + new InvoiceMasthead.Entry("Due date", "10 September 2026", true), + new InvoiceMasthead.Entry("Payment terms", "14 days", false), + new InvoiceMasthead.Entry("Currency", "GBP", false)))) + .billTo(new InvoiceRecipient("Bill to", "Northline Consulting Ltd", "", + List.of("21 Jubilee Way", "London SE1 3SS", "United Kingdom"), + "", "", "", "")) + .serviceLines(new InvoiceServiceLines( + new InvoiceServiceLines.Columns("#", "Description", "", + "Qty", "Unit price", "Amount", "VAT (20%)"), + lines())) + .totals(new InvoiceTotalsBlock(List.of( + new InvoiceTotalsBlock.Row("Subtotal", new BigDecimal("730.00")), + new InvoiceTotalsBlock.Row("VAT (20%)", new BigDecimal("146.00"))), + "Total due", new BigDecimal("876.00"))) + .payment(new InvoicePaymentBlock("Payment details", List.of( + new InvoicePaymentBlock.Field("Payee", "Kestrel Business"), + new InvoicePaymentBlock.Field("Sort code", "04-00-75"), + new InvoicePaymentBlock.Field("Account number", "12345678"), + new InvoicePaymentBlock.Field("Reference", "INV-2026-1048")), + "Please pay by bank transfer\nto the account below.", + "Payment is due by 10 September 2026.", + "10 September 2026", "", "Thank you for your business.")) + .notes(new InvoiceNotesBlock("Notes", List.of( + "Thank you for choosing Kestrel Business.\n" + + "This invoice covers services and features provided\n" + + "to your business as of the date of issue.", + "If you have any questions about this invoice,\n" + + "please contact us at ar@kestrel.example."), + "", "")) + .currencyCode("GBP") + .build(); + } + + private static List lines() { + List lines = new ArrayList<>(); + lines.add(line(1, "Subscription setup", "One-off account and workspace setup", + "150.00", "180.00")); + lines.add(line(2, "International payment support", + "Monthly support for cross-border payments", "250.00", "300.00")); + lines.add(line(3, "Expense management integration", "API access and integration", + "200.00", "240.00")); + lines.add(line(4, "Virtual cards", "50 virtual cards", "100.00", "120.00")); + lines.add(line(5, "Business account maintenance", "Monthly account maintenance fee", + "30.00", "36.00")); + return lines; + } + + private static InvoiceServiceLines.Line line(int number, String title, String subtitle, + String unitPrice, String amount) { + return new InvoiceServiceLines.Line(number, title, subtitle, "", + BigDecimal.ONE, "", new BigDecimal(unitPrice), + new BigDecimal(amount), "", "", ""); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceLayoutSnapshotTest.java new file mode 100644 index 000000000..eb890c9d7 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceLayoutSnapshotTest.java @@ -0,0 +1,21 @@ +package com.demcha.compose.document.templates.invoice.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; + +class ObsidianInvoiceLayoutSnapshotTest { + + @Test + void theInvoiceMatchesItsLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + ObsidianInvoice.create().compose(session, ObsidianInvoiceFixtures.invoice()); + assertThat(session.layoutSnapshot().totalPages()).as("total pages").isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "obsidian_invoice_layout", "invoice"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceSmokeTest.java new file mode 100644 index 000000000..5e49dd476 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceSmokeTest.java @@ -0,0 +1,182 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +class ObsidianInvoiceSmokeTest { + + // -- what the sheet says ------------------------------------------- + + @Test + void theSheetCarriesTheIssuerTheCustomerAndEveryLine() throws Exception { + String text = textOf(render(ObsidianInvoiceFixtures.invoice())); + assertThat(text) + .contains("Kestrel Business") + .contains("Northline Consulting Ltd") + .contains("Subscription setup") + .contains("Business account maintenance") + .contains("Total due"); + } + + @Test + void theTaxColumnIsWorkedOutFromTheLineRatherThanStated() throws Exception { + String text = textOf(render(ObsidianInvoiceFixtures.invoice())); + // 1 x £150.00 charged at £180.00 leaves £30.00 of tax, and the model + // carries a rate rather than that figure. + assertThat(text).contains("£30.00").contains("£50.00").contains("£40.00"); + } + + @Test + void aLineWithNoTaxLeavesTheColumnAtZeroRatherThanNegative() throws Exception { + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + ObsidianInvoiceFixtures.invoice().serviceLines().columns(), + List.of(new InvoiceServiceLines.Line(1, "Zero-rated service", "No tax due", "", + BigDecimal.ONE, "", new BigDecimal("150.00"), + new BigDecimal("150.00"), "", "", "")))); + assertThat(textOf(render(data))).contains("£0.00"); + } + + @Test + void moneyCarriesItsCurrencyMarkAgainstTheDigits() throws Exception { + String text = textOf(render(ObsidianInvoiceFixtures.invoice())); + assertThat(text).contains("£150.00").contains("£876.00"); + } + + // -- the discs ------------------------------------------------------ + + @Test + void theBilledPartysDiscTakesItsInitialsFromItsName() throws Exception { + // "Northline Consulting Ltd" gives NC, which is the design's own disc. + assertThat(textOf(render(ObsidianInvoiceFixtures.invoice()))).contains("NC"); + } + + @Test + void theIssuersDiscFallsBackFromMonogramToInitials() throws Exception { + StructuredInvoiceData base = ObsidianInvoiceFixtures.invoice(); + // The fixture states a monogram, so that is what the disc shows. + assertThat(textOf(render(base))).contains("K"); + + StructuredInvoiceData noMonogram = withBrand( + new InvoiceBrand(null, "Kestrel Business", "", "", "", "")); + // With none stated it falls back to initials taken from the name. + assertThat(textOf(render(noMonogram))).contains("KB"); + } + + // -- what a reader can act on -------------------------------------- + + @Test + void everyAddressTheSheetPrintsIsReachable() throws Exception { + List targets = linkTargets(render(ObsidianInvoiceFixtures.invoice())); + assertThat(targets).contains("mailto:ar@kestrel.example"); + } + + @Test + void theDueSentenceSetsItsDateApartWithoutBreakingTheSentence() throws Exception { + String text = textOf(render(ObsidianInvoiceFixtures.invoice())); + // The date is a run of the same sentence, not a paragraph of its own. + assertThat(text).contains("Payment is due by 10 September 2026."); + } + + // -- how it flows --------------------------------------------------- + + @Test + void theDesignsOwnLineCountIsOneSheet() throws Exception { + assertThat(pagesOf(ObsidianInvoiceFixtures.invoice())).isEqualTo(1); + } + + @Test + void enoughLinesPaginateAndTheHeaderComesBackWithThem() throws Exception { + List many = new ArrayList<>(); + for (int i = 1; i <= 30; i++) { + many.add(new InvoiceServiceLines.Line(i, "Subscription setup " + i, + "One-off account and workspace setup", "", + BigDecimal.ONE, "", new BigDecimal("150.00"), + new BigDecimal("180.00"), "", "", "")); + } + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + ObsidianInvoiceFixtures.invoice().serviceLines().columns(), many)); + assertThat(pagesOf(data)).isGreaterThan(1); + + String text = textOf(render(data)); + // The caps header is repeated, so it appears once per page the table reaches. + assertThat(text.split("Unit price", -1).length - 1).isGreaterThan(1); + } + + // -- helpers --------------------------------------------------------- + + private static byte[] render(StructuredInvoiceData data) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + ObsidianInvoice.create().compose(session, data); + 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); + } + } + + private static int pagesOf(StructuredInvoiceData data) throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + ObsidianInvoice.create().compose(session, data); + return session.layoutSnapshot().totalPages(); + } + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + private static StructuredInvoiceData withLines(InvoiceServiceLines lines) { + StructuredInvoiceData base = ObsidianInvoiceFixtures.invoice(); + return StructuredInvoiceData.builder() + .brand(base.brand()).supplier(base.supplier()).masthead(base.masthead()) + .billTo(base.billTo()) + .serviceLines(lines).totals(base.totals()) + .payment(base.payment()).notes(base.notes()) + .currencyCode(base.currencyCode()).build(); + } + + private static StructuredInvoiceData withBrand(InvoiceBrand brand) { + StructuredInvoiceData base = ObsidianInvoiceFixtures.invoice(); + return StructuredInvoiceData.builder() + .brand(brand).supplier(base.supplier()).masthead(base.masthead()) + .billTo(base.billTo()) + .serviceLines(base.serviceLines()).totals(base.totals()) + .payment(base.payment()).notes(base.notes()) + .currencyCode(base.currencyCode()).build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceVisualParityTest.java new file mode 100644 index 000000000..dee6121cf --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoiceVisualParityTest.java @@ -0,0 +1,32 @@ +package com.demcha.compose.document.templates.invoice.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; + +class ObsidianInvoiceVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "invoice-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()) { + ObsidianInvoice.create().compose(document, ObsidianInvoiceFixtures.invoice()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("obsidian_invoice", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/obsidian_invoice_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/obsidian_invoice_layout.json new file mode 100644 index 000000000..56afc5820 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/obsidian_invoice_layout.json @@ -0,0 +1,4187 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 542.237, + "innerHeight" : 802.393, + "margin" : { + "top" : 25.955, + "right" : 27.084, + "bottom" : 13.542, + "left" : 25.955 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "ObsidianInvoice[0]", + "entityName" : "ObsidianInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 25.955, + "computedY" : 16.015, + "placementX" : 25.955, + "placementY" : 16.015, + "placementWidth" : 542.237, + "placementHeight" : 799.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 542.237, + "contentHeight" : 799.92, + "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" : "ObsidianInvoice[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 25.955, + "computedY" : 690.441, + "placementX" : 25.955, + "placementY" : 690.441, + "placementWidth" : 542.237, + "placementHeight" : 125.493, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 542.237, + "contentHeight" : 125.493, + "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" : "ObsidianInvoice[0]/Masthead[0]/BrandColumn[0]", + "entityName" : "BrandColumn", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.955, + "computedY" : 691.709, + "placementX" : 25.955, + "placementY" : 691.709, + "placementWidth" : 167.991, + "placementHeight" : 124.226, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.991, + "contentHeight" : 124.226, + "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" : "ObsidianInvoice[0]/Masthead[0]/BrandColumn[0]/BrandWordmark[0]", + "entityName" : "BrandWordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/BrandColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 25.955, + "computedY" : 789.772, + "placementX" : 25.955, + "placementY" : 789.772, + "placementWidth" : 90.274, + "placementHeight" : 26.265, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.274, + "contentHeight" : 26.265, + "margin" : { + "top" : -0.103, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/BrandColumn[0]/InvoiceTitle[1]", + "entityName" : "InvoiceTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/BrandColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 25.955, + "computedY" : 691.709, + "placementX" : 25.955, + "placementY" : 691.709, + "placementWidth" : 167.991, + "placementHeight" : 41.306, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.991, + "contentHeight" : 41.306, + "margin" : { + "top" : 56.757, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "entityName" : "InvoiceMeta", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 350.959, + "computedY" : 690.441, + "placementX" : 350.959, + "placementY" : 690.441, + "placementWidth" : 217.233, + "placementHeight" : 125.493, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 125.493, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaNumberLabel[0]", + "entityName" : "MetaNumberLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 350.959, + "computedY" : 804.961, + "placementX" : 350.959, + "placementY" : 804.961, + "placementWidth" : 56.184, + "placementHeight" : 8.128, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.184, + "contentHeight" : 8.128, + "margin" : { + "top" : 2.845, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaNumber[1]", + "entityName" : "MetaNumber", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 350.959, + "computedY" : 785.681, + "placementX" : 350.959, + "placementY" : 785.681, + "placementWidth" : 84.786, + "placementHeight" : 11.228, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 84.786, + "contentHeight" : 11.228, + "margin" : { + "top" : 8.052, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_0Rule[2]", + "entityName" : "MetaRow_0Rule", + "entityKind" : "LineNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 350.959, + "computedY" : 775.593, + "placementX" : 350.959, + "placementY" : 775.593, + "placementWidth" : 217.233, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 1.0, + "margin" : { + "top" : 9.087, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_0Layer[3]", + "entityName" : "MetaRow_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 350.959, + "computedY" : 758.15, + "placementX" : 350.959, + "placementY" : 758.15, + "placementWidth" : 217.233, + "placementHeight" : 17.443, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 17.443, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_0Layer[3]/MetaRow_0Holder[0]", + "entityName" : "MetaRow_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_0Layer[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 350.959, + "computedY" : 758.15, + "placementX" : 350.959, + "placementY" : 758.15, + "placementWidth" : 217.233, + "placementHeight" : 17.443, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 17.443, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_0Layer[3]/MetaRow_0Holder[0]/MetaRow_0[0]", + "entityName" : "MetaRow_0", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_0Layer[3]/MetaRow_0Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 350.959, + "computedY" : 758.15, + "placementX" : 350.959, + "placementY" : 758.15, + "placementWidth" : 217.233, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 9.179, + "margin" : { + "top" : 8.264, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_0Layer[3]/MetaRow_0Holder[0]/MetaRow_0[0]/MetaRow_0Label[0]", + "entityName" : "MetaRow_0Label", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_0Layer[3]/MetaRow_0Holder[0]/MetaRow_0[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 350.959, + "computedY" : 758.15, + "placementX" : 350.959, + "placementY" : 758.15, + "placementWidth" : 42.72, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.72, + "contentHeight" : 9.179, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_0Layer[3]/MetaRow_0Holder[0]/MetaRow_0[0]/MetaRow_0Value[1]", + "entityName" : "MetaRow_0Value", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_0Layer[3]/MetaRow_0Holder[0]/MetaRow_0[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 459.575, + "computedY" : 758.15, + "placementX" : 459.575, + "placementY" : 758.15, + "placementWidth" : 108.617, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.617, + "contentHeight" : 9.179, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_1Rule[4]", + "entityName" : "MetaRow_1Rule", + "entityKind" : "LineNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 350.959, + "computedY" : 751.331, + "placementX" : 350.959, + "placementY" : 751.331, + "placementWidth" : 217.233, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 1.0, + "margin" : { + "top" : 5.819, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_1Layer[5]", + "entityName" : "MetaRow_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 350.959, + "computedY" : 735.581, + "placementX" : 350.959, + "placementY" : 735.581, + "placementWidth" : 217.233, + "placementHeight" : 15.75, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 15.75, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_1Layer[5]/MetaRow_1Holder[0]", + "entityName" : "MetaRow_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_1Layer[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 350.959, + "computedY" : 735.581, + "placementX" : 350.959, + "placementY" : 735.581, + "placementWidth" : 217.233, + "placementHeight" : 15.75, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 15.75, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_1Layer[5]/MetaRow_1Holder[0]/MetaRow_1[0]", + "entityName" : "MetaRow_1", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_1Layer[5]/MetaRow_1Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 350.959, + "computedY" : 735.581, + "placementX" : 350.959, + "placementY" : 735.581, + "placementWidth" : 217.233, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 9.179, + "margin" : { + "top" : 6.571, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_1Layer[5]/MetaRow_1Holder[0]/MetaRow_1[0]/MetaRow_1Label[0]", + "entityName" : "MetaRow_1Label", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_1Layer[5]/MetaRow_1Holder[0]/MetaRow_1[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 350.959, + "computedY" : 735.581, + "placementX" : 350.959, + "placementY" : 735.581, + "placementWidth" : 37.46, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 37.46, + "contentHeight" : 9.179, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_1Layer[5]/MetaRow_1Holder[0]/MetaRow_1[0]/MetaRow_1Value[1]", + "entityName" : "MetaRow_1Value", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_1Layer[5]/MetaRow_1Holder[0]/MetaRow_1[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 459.575, + "computedY" : 735.581, + "placementX" : 459.575, + "placementY" : 735.581, + "placementWidth" : 108.617, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.617, + "contentHeight" : 9.179, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_2Rule[6]", + "entityName" : "MetaRow_2Rule", + "entityKind" : "LineNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 350.959, + "computedY" : 729.325, + "placementX" : 350.959, + "placementY" : 729.325, + "placementWidth" : 217.233, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 1.0, + "margin" : { + "top" : 5.255, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_2Layer[7]", + "entityName" : "MetaRow_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 350.959, + "computedY" : 713.011, + "placementX" : 350.959, + "placementY" : 713.011, + "placementWidth" : 217.233, + "placementHeight" : 16.314, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 16.314, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_2Layer[7]/MetaRow_2Holder[0]", + "entityName" : "MetaRow_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_2Layer[7]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 350.959, + "computedY" : 713.011, + "placementX" : 350.959, + "placementY" : 713.011, + "placementWidth" : 217.233, + "placementHeight" : 16.314, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 16.314, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_2Layer[7]/MetaRow_2Holder[0]/MetaRow_2[0]", + "entityName" : "MetaRow_2", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_2Layer[7]/MetaRow_2Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 350.959, + "computedY" : 713.011, + "placementX" : 350.959, + "placementY" : 713.011, + "placementWidth" : 217.233, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 9.179, + "margin" : { + "top" : 7.135, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_2Layer[7]/MetaRow_2Holder[0]/MetaRow_2[0]/MetaRow_2Label[0]", + "entityName" : "MetaRow_2Label", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_2Layer[7]/MetaRow_2Holder[0]/MetaRow_2[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 350.959, + "computedY" : 713.011, + "placementX" : 350.959, + "placementY" : 713.011, + "placementWidth" : 62.647, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.647, + "contentHeight" : 9.179, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_2Layer[7]/MetaRow_2Holder[0]/MetaRow_2[0]/MetaRow_2Value[1]", + "entityName" : "MetaRow_2Value", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_2Layer[7]/MetaRow_2Holder[0]/MetaRow_2[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 459.575, + "computedY" : 713.011, + "placementX" : 459.575, + "placementY" : 713.011, + "placementWidth" : 108.617, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.617, + "contentHeight" : 9.179, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_3Rule[8]", + "entityName" : "MetaRow_3Rule", + "entityKind" : "LineNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "childIndex" : 8, + "depth" : 4, + "layer" : 4, + "computedX" : 350.959, + "computedY" : 706.756, + "placementX" : 350.959, + "placementY" : 706.756, + "placementWidth" : 217.233, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 1.0, + "margin" : { + "top" : 5.255, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_3Layer[9]", + "entityName" : "MetaRow_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]", + "childIndex" : 9, + "depth" : 4, + "layer" : 4, + "computedX" : 350.959, + "computedY" : 690.441, + "placementX" : 350.959, + "placementY" : 690.441, + "placementWidth" : 217.233, + "placementHeight" : 16.314, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 16.314, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_3Layer[9]/MetaRow_3Holder[0]", + "entityName" : "MetaRow_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_3Layer[9]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 350.959, + "computedY" : 690.441, + "placementX" : 350.959, + "placementY" : 690.441, + "placementWidth" : 217.233, + "placementHeight" : 16.314, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 16.314, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_3Layer[9]/MetaRow_3Holder[0]/MetaRow_3[0]", + "entityName" : "MetaRow_3", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_3Layer[9]/MetaRow_3Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 350.959, + "computedY" : 690.441, + "placementX" : 350.959, + "placementY" : 690.441, + "placementWidth" : 217.233, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 217.233, + "contentHeight" : 9.179, + "margin" : { + "top" : 7.135, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_3Layer[9]/MetaRow_3Holder[0]/MetaRow_3[0]/MetaRow_3Label[0]", + "entityName" : "MetaRow_3Label", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_3Layer[9]/MetaRow_3Holder[0]/MetaRow_3[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 350.959, + "computedY" : 690.441, + "placementX" : 350.959, + "placementY" : 690.441, + "placementWidth" : 37.111, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 37.111, + "contentHeight" : 9.179, + "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" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_3Layer[9]/MetaRow_3Holder[0]/MetaRow_3[0]/MetaRow_3Value[1]", + "entityName" : "MetaRow_3Value", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/Masthead[0]/InvoiceMeta[1]/MetaRow_3Layer[9]/MetaRow_3Holder[0]/MetaRow_3[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 459.575, + "computedY" : 690.441, + "placementX" : 459.575, + "placementY" : 690.441, + "placementWidth" : 108.617, + "placementHeight" : 9.179, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.617, + "contentHeight" : 9.179, + "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" : "ObsidianInvoice[0]/HeaderDivider[1]", + "entityName" : "HeaderDivider", + "entityKind" : "LineNode", + "parentPath" : "ObsidianInvoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 25.955, + "computedY" : 675.216, + "placementX" : 25.955, + "placementY" : 675.216, + "placementWidth" : 542.237, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 542.237, + "contentHeight" : 1.0, + "margin" : { + "top" : 14.226, + "right" : 0.0, + "bottom" : 15.235, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]", + "entityName" : "PartiesRow", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 25.955, + "computedY" : 535.433, + "placementX" : 25.955, + "placementY" : 535.433, + "placementWidth" : 542.237, + "placementHeight" : 124.548, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 542.237, + "contentHeight" : 124.548, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]", + "entityName" : "SupplierCard", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.955, + "computedY" : 535.433, + "placementX" : 25.955, + "placementY" : 535.433, + "placementWidth" : 260.398, + "placementHeight" : 124.548, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.398, + "contentHeight" : 124.548, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 13.542, + "bottom" : 14.67, + "left" : 13.542 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierLabel[0]", + "entityName" : "SupplierLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 39.497, + "computedY" : 634.377, + "placementX" : 39.497, + "placementY" : 634.377, + "placementWidth" : 21.785, + "placementHeight" : 8.903, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.785, + "contentHeight" : 8.903, + "margin" : { + "top" : 16.701, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]", + "entityName" : "SupplierBodyLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 39.497, + "computedY" : 550.103, + "placementX" : 39.497, + "placementY" : 550.103, + "placementWidth" : 233.314, + "placementHeight" : 84.274, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 84.274, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]", + "entityName" : "SupplierBodyHolder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 39.497, + "computedY" : 550.103, + "placementX" : 39.497, + "placementY" : 550.103, + "placementWidth" : 233.314, + "placementHeight" : 84.274, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 84.274, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]", + "entityName" : "SupplierBody", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 39.497, + "computedY" : 550.103, + "placementX" : 39.497, + "placementY" : 550.103, + "placementWidth" : 233.314, + "placementHeight" : 74.331, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 74.331, + "margin" : { + "top" : 9.944, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierDisc[0]", + "entityName" : "SupplierDisc", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 39.497, + "computedY" : 588.886, + "placementX" : 39.497, + "placementY" : 588.886, + "placementWidth" : 35.547, + "placementHeight" : 35.547, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.547, + "contentHeight" : 35.547, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierDisc[0]/SupplierDisc[0]", + "entityName" : "SupplierDisc", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierDisc[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 39.497, + "computedY" : 588.886, + "placementX" : 39.497, + "placementY" : 588.886, + "placementWidth" : 35.547, + "placementHeight" : 35.547, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.547, + "contentHeight" : 35.547, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierDisc[0]/SupplierDisc[0]/SupplierDiscInitials[0]", + "entityName" : "SupplierDiscInitials", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierDisc[0]/SupplierDisc[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 39.497, + "computedY" : 601.849, + "placementX" : 39.497, + "placementY" : 601.849, + "placementWidth" : 35.547, + "placementHeight" : 9.621, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.547, + "contentHeight" : 9.621, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]", + "entityName" : "SupplierText", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 102.128, + "computedY" : 550.103, + "placementX" : 102.128, + "placementY" : 550.103, + "placementWidth" : 86.34, + "placementHeight" : 74.331, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.34, + "contentHeight" : 74.331, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]/SupplierName[0]", + "entityName" : "SupplierName", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 102.128, + "computedY" : 612.8, + "placementX" : 102.128, + "placementY" : 612.8, + "placementWidth" : 76.798, + "placementHeight" : 9.621, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.798, + "contentHeight" : 9.621, + "margin" : { + "top" : 2.013, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]/SupplierAddressLine_0[1]", + "entityName" : "SupplierAddressLine_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 102.128, + "computedY" : 597.5, + "placementX" : 102.128, + "placementY" : 597.5, + "placementWidth" : 83.639, + "placementHeight" : 9.511, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.639, + "contentHeight" : 9.511, + "margin" : { + "top" : 5.789, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]/SupplierAddressLine_1[2]", + "entityName" : "SupplierAddressLine_1", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 102.128, + "computedY" : 582.829, + "placementX" : 102.128, + "placementY" : 582.829, + "placementWidth" : 66.205, + "placementHeight" : 9.511, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 66.205, + "contentHeight" : 9.511, + "margin" : { + "top" : 5.159, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]/SupplierAddressLine_2[3]", + "entityName" : "SupplierAddressLine_2", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]", + "childIndex" : 3, + "depth" : 8, + "layer" : 8, + "computedX" : 102.128, + "computedY" : 568.723, + "placementX" : 102.128, + "placementY" : 568.723, + "placementWidth" : 69.287, + "placementHeight" : 9.511, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.287, + "contentHeight" : 9.511, + "margin" : { + "top" : 4.595, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]/SupplierContact[4]", + "entityName" : "SupplierContact", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/SupplierCard[0]/SupplierBodyLayer[1]/SupplierBodyHolder[0]/SupplierBody[0]/SupplierText[1]", + "childIndex" : 4, + "depth" : 8, + "layer" : 8, + "computedX" : 102.128, + "computedY" : 550.103, + "placementX" : 102.128, + "placementY" : 550.103, + "placementWidth" : 86.34, + "placementHeight" : 9.511, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.34, + "contentHeight" : 9.511, + "margin" : { + "top" : 9.109, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]", + "entityName" : "BillToCard", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 307.794, + "computedY" : 554.053, + "placementX" : 307.794, + "placementY" : 554.053, + "placementWidth" : 260.398, + "placementHeight" : 105.928, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.398, + "contentHeight" : 105.928, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 13.542, + "bottom" : 14.67, + "left" : 13.542 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToLabel[0]", + "entityName" : "BillToLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 321.336, + "computedY" : 634.377, + "placementX" : 321.336, + "placementY" : 634.377, + "placementWidth" : 24.518, + "placementHeight" : 8.903, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.518, + "contentHeight" : 8.903, + "margin" : { + "top" : 16.701, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]", + "entityName" : "BillToBodyLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 321.336, + "computedY" : 568.723, + "placementX" : 321.336, + "placementY" : 568.723, + "placementWidth" : 233.314, + "placementHeight" : 65.654, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 65.654, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]", + "entityName" : "BillToBodyHolder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 321.336, + "computedY" : 568.723, + "placementX" : 321.336, + "placementY" : 568.723, + "placementWidth" : 233.314, + "placementHeight" : 65.654, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 65.654, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]", + "entityName" : "BillToBody", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 321.336, + "computedY" : 568.723, + "placementX" : 321.336, + "placementY" : 568.723, + "placementWidth" : 233.314, + "placementHeight" : 55.711, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 55.711, + "margin" : { + "top" : 9.944, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToDisc[0]", + "entityName" : "BillToDisc", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 321.336, + "computedY" : 588.886, + "placementX" : 321.336, + "placementY" : 588.886, + "placementWidth" : 35.547, + "placementHeight" : 35.547, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.547, + "contentHeight" : 35.547, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToDisc[0]/BillToDisc[0]", + "entityName" : "BillToDisc", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToDisc[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 321.336, + "computedY" : 588.886, + "placementX" : 321.336, + "placementY" : 588.886, + "placementWidth" : 35.547, + "placementHeight" : 35.547, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.547, + "contentHeight" : 35.547, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToDisc[0]/BillToDisc[0]/BillToDiscInitials[0]", + "entityName" : "BillToDiscInitials", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToDisc[0]/BillToDisc[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 321.336, + "computedY" : 601.849, + "placementX" : 321.336, + "placementY" : 601.849, + "placementWidth" : 35.547, + "placementHeight" : 9.621, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.547, + "contentHeight" : 9.621, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToText[1]", + "entityName" : "BillToText", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 383.967, + "computedY" : 568.723, + "placementX" : 383.967, + "placementY" : 568.723, + "placementWidth" : 111.801, + "placementHeight" : 55.711, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.801, + "contentHeight" : 55.711, + "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" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToText[1]/BillToName[0]", + "entityName" : "BillToName", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToText[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 383.967, + "computedY" : 612.8, + "placementX" : 383.967, + "placementY" : 612.8, + "placementWidth" : 111.801, + "placementHeight" : 9.621, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.801, + "contentHeight" : 9.621, + "margin" : { + "top" : 2.013, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToText[1]/BillToAddressLine_0[1]", + "entityName" : "BillToAddressLine_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToText[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 383.967, + "computedY" : 597.5, + "placementX" : 383.967, + "placementY" : 597.5, + "placementWidth" : 64.208, + "placementHeight" : 9.511, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.208, + "contentHeight" : 9.511, + "margin" : { + "top" : 5.789, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToText[1]/BillToAddressLine_1[2]", + "entityName" : "BillToAddressLine_1", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToText[1]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 383.967, + "computedY" : 582.829, + "placementX" : 383.967, + "placementY" : 582.829, + "placementWidth" : 70.19, + "placementHeight" : 9.511, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.19, + "contentHeight" : 9.511, + "margin" : { + "top" : 5.159, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToText[1]/BillToAddressLine_2[3]", + "entityName" : "BillToAddressLine_2", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/PartiesRow[2]/BillToCard[1]/BillToBodyLayer[1]/BillToBodyHolder[0]/BillToBody[0]/BillToText[1]", + "childIndex" : 3, + "depth" : 8, + "layer" : 8, + "computedX" : 383.967, + "computedY" : 568.723, + "placementX" : 383.967, + "placementY" : 568.723, + "placementWidth" : 69.287, + "placementHeight" : 9.511, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.287, + "contentHeight" : 9.511, + "margin" : { + "top" : 4.595, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/LineItemsCard[3]", + "entityName" : "LineItemsCard", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 25.955, + "computedY" : 286.962, + "placementX" : 25.955, + "placementY" : 286.962, + "placementWidth" : 542.237, + "placementHeight" : 232.673, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 542.237, + "contentHeight" : 232.673, + "margin" : { + "top" : 15.799, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 12.413, + "bottom" : 0.0, + "left" : 12.413 + } + }, { + "path" : "ObsidianInvoice[0]/LineItemsCard[3]/LineItems[0]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "ObsidianInvoice[0]/LineItemsCard[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 38.368, + "computedY" : 286.962, + "placementX" : 38.368, + "placementY" : 286.962, + "placementWidth" : 517.41, + "placementHeight" : 232.673, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 517.41, + "contentHeight" : 232.673, + "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" : "ObsidianInvoice[0]/TotalsRow[4]", + "entityName" : "TotalsRow", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 25.955, + "computedY" : 197.162, + "placementX" : 25.955, + "placementY" : 197.162, + "placementWidth" : 542.237, + "placementHeight" : 89.799, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 542.237, + "contentHeight" : 89.799, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsSpacer[0]", + "entityName" : "TotalsSpacer", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.955, + "computedY" : 286.962, + "placementX" : 25.955, + "placementY" : 286.962, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]", + "entityName" : "TotalsCard", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 307.794, + "computedY" : 197.162, + "placementX" : 307.794, + "placementY" : 197.162, + "placementWidth" : 260.398, + "placementHeight" : 82.464, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.398, + "contentHeight" : 82.464, + "margin" : { + "top" : 7.335, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 16.927, + "bottom" : 8.038, + "left" : 13.542 + } + }, { + "path" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_0Layer[0]", + "entityName" : "TotalsRow_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 321.336, + "computedY" : 259.939, + "placementX" : 321.336, + "placementY" : 259.939, + "placementWidth" : 229.929, + "placementHeight" : 19.687, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.929, + "contentHeight" : 19.687, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]", + "entityName" : "TotalsRow_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_0Layer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 321.336, + "computedY" : 259.939, + "placementX" : 321.336, + "placementY" : 259.939, + "placementWidth" : 229.929, + "placementHeight" : 19.687, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.929, + "contentHeight" : 19.687, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "entityName" : "TotalsRow_0", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 321.336, + "computedY" : 259.939, + "placementX" : 321.336, + "placementY" : 259.939, + "placementWidth" : 229.929, + "placementHeight" : 10.119, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.929, + "contentHeight" : 10.119, + "margin" : { + "top" : 9.568, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]/TotalsRow_0Label[0]", + "entityName" : "TotalsRow_0Label", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 321.336, + "computedY" : 261.211, + "placementX" : 321.336, + "placementY" : 261.211, + "placementWidth" : 33.806, + "placementHeight" : 8.847, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.806, + "contentHeight" : 8.847, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]/TotalsRow_0Value[1]", + "entityName" : "TotalsRow_0Value", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 436.3, + "computedY" : 259.939, + "placementX" : 436.3, + "placementY" : 259.939, + "placementWidth" : 114.964, + "placementHeight" : 10.119, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 114.964, + "contentHeight" : 10.119, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_1Layer[1]", + "entityName" : "TotalsRow_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 321.336, + "computedY" : 240.755, + "placementX" : 321.336, + "placementY" : 240.755, + "placementWidth" : 229.929, + "placementHeight" : 19.184, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.929, + "contentHeight" : 19.184, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]", + "entityName" : "TotalsRow_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_1Layer[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 321.336, + "computedY" : 240.755, + "placementX" : 321.336, + "placementY" : 240.755, + "placementWidth" : 229.929, + "placementHeight" : 19.184, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.929, + "contentHeight" : 19.184, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "entityName" : "TotalsRow_1", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 321.336, + "computedY" : 240.755, + "placementX" : 321.336, + "placementY" : 240.755, + "placementWidth" : 229.929, + "placementHeight" : 10.119, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.929, + "contentHeight" : 10.119, + "margin" : { + "top" : 9.065, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]/TotalsRow_1Label[0]", + "entityName" : "TotalsRow_1Label", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 321.336, + "computedY" : 242.027, + "placementX" : 321.336, + "placementY" : 242.027, + "placementWidth" : 43.998, + "placementHeight" : 8.847, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 43.998, + "contentHeight" : 8.847, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]/TotalsRow_1Value[1]", + "entityName" : "TotalsRow_1Value", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 436.3, + "computedY" : 240.755, + "placementX" : 436.3, + "placementY" : 240.755, + "placementWidth" : 114.964, + "placementHeight" : 10.119, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 114.964, + "contentHeight" : 10.119, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalsRule[2]", + "entityName" : "TotalsRule", + "entityKind" : "LineNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 317.386, + "computedY" : 231.992, + "placementX" : 317.386, + "placementY" : 231.992, + "placementWidth" : 237.828, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.828, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.763, + "right" : -3.95, + "bottom" : 0.0, + "left" : -3.95 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalDueLayer[3]", + "entityName" : "TotalDueLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 321.336, + "computedY" : 205.2, + "placementX" : 321.336, + "placementY" : 205.2, + "placementWidth" : 229.929, + "placementHeight" : 26.791, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.929, + "contentHeight" : 26.791, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalDueLayer[3]/TotalDueHolder[0]", + "entityName" : "TotalDueHolder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalDueLayer[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 321.336, + "computedY" : 205.2, + "placementX" : 321.336, + "placementY" : 205.2, + "placementWidth" : 229.929, + "placementHeight" : 26.791, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.929, + "contentHeight" : 26.791, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "entityName" : "TotalDue", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalDueLayer[3]/TotalDueHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 321.336, + "computedY" : 205.2, + "placementX" : 321.336, + "placementY" : 205.2, + "placementWidth" : 229.929, + "placementHeight" : 17.805, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.929, + "contentHeight" : 17.805, + "margin" : { + "top" : 8.986, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]/TotalDueLabel[0]", + "entityName" : "TotalDueLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 321.336, + "computedY" : 209.265, + "placementX" : 321.336, + "placementY" : 209.265, + "placementWidth" : 43.11, + "placementHeight" : 9.677, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 43.11, + "contentHeight" : 9.677, + "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" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]/TotalDueValue[1]", + "entityName" : "TotalDueValue", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/TotalsRow[4]/TotalsCard[1]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 436.3, + "computedY" : 205.2, + "placementX" : 436.3, + "placementY" : 205.2, + "placementWidth" : 114.964, + "placementHeight" : 17.805, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 114.964, + "contentHeight" : 17.805, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]", + "entityName" : "InfoCardsRow", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 25.955, + "computedY" : 65.386, + "placementX" : 25.955, + "placementY" : 65.386, + "placementWidth" : 542.237, + "placementHeight" : 123.313, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 542.237, + "contentHeight" : 123.313, + "margin" : { + "top" : 8.464, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]", + "entityName" : "NotesCard", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 25.955, + "computedY" : 65.976, + "placementX" : 25.955, + "placementY" : 65.976, + "placementWidth" : 260.398, + "placementHeight" : 122.723, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.398, + "contentHeight" : 122.723, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 13.542, + "bottom" : 16.981, + "left" : 13.542 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]", + "entityName" : "NotesHeadLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 39.497, + "computedY" : 160.487, + "placementX" : 39.497, + "placementY" : 160.487, + "placementWidth" : 233.314, + "placementHeight" : 28.212, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 28.212, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]", + "entityName" : "NotesHeadHolder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 39.497, + "computedY" : 160.487, + "placementX" : 39.497, + "placementY" : 160.487, + "placementWidth" : 233.314, + "placementHeight" : 28.212, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 28.212, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]", + "entityName" : "NotesHead", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 39.497, + "computedY" : 160.487, + "placementX" : 39.497, + "placementY" : 160.487, + "placementWidth" : 233.314, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 14.106, + "margin" : { + "top" : 14.106, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]/NotesIcon[0]", + "entityName" : "NotesIcon", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 39.497, + "computedY" : 160.487, + "placementX" : 39.497, + "placementY" : 160.487, + "placementWidth" : 26.519, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.519, + "contentHeight" : 14.106, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]/NotesIcon[0]/Glyph_notes[0]", + "entityName" : "Glyph_notes", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]/NotesIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 39.497, + "computedY" : 160.487, + "placementX" : 39.497, + "placementY" : 160.487, + "placementWidth" : 26.519, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.519, + "contentHeight" : 14.106, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]/NotesIcon[0]/Glyph_notes[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]/NotesIcon[0]/Glyph_notes[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 39.497, + "computedY" : 160.487, + "placementX" : 39.497, + "placementY" : 160.487, + "placementWidth" : 26.519, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.519, + "contentHeight" : 14.106, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]/NotesIcon[0]/Glyph_notes[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]/NotesIcon[0]/Glyph_notes[0]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 39.497, + "computedY" : 160.487, + "placementX" : 39.497, + "placementY" : 160.487, + "placementWidth" : 14.106, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.106, + "contentHeight" : 14.106, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]/NotesIcon[0]/Glyph_notes[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]/NotesIcon[0]/Glyph_notes[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 39.497, + "computedY" : 160.487, + "placementX" : 39.497, + "placementY" : 160.487, + "placementWidth" : 14.106, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.106, + "contentHeight" : 14.106, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]/NotesHeading[1]", + "entityName" : "NotesHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesHeadLayer[0]/NotesHeadHolder[0]/NotesHead[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 66.016, + "computedY" : 163.365, + "placementX" : 66.016, + "placementY" : 163.365, + "placementWidth" : 24.421, + "placementHeight" : 8.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.421, + "contentHeight" : 8.626, + "margin" : { + "top" : 2.602, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesBody[1]", + "entityName" : "NotesBody", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 39.497, + "computedY" : 82.957, + "placementX" : 39.497, + "placementY" : 82.957, + "placementWidth" : 216.942, + "placementHeight" : 77.53, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 216.942, + "contentHeight" : 77.53, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 26.519 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesBody[1]/NotesParagraph_0[0]", + "entityName" : "NotesParagraph_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 66.016, + "computedY" : 118.786, + "placementX" : 66.016, + "placementY" : 118.786, + "placementWidth" : 190.423, + "placementHeight" : 33.796, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 190.423, + "contentHeight" : 33.796, + "margin" : { + "top" : 7.905, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesBody[1]/NotesParagraph_1[1]", + "entityName" : "NotesParagraph_1", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/NotesCard[0]/NotesBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 66.016, + "computedY" : 82.957, + "placementX" : 66.016, + "placementY" : 82.957, + "placementWidth" : 167.62, + "placementHeight" : 21.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.62, + "contentHeight" : 21.1, + "margin" : { + "top" : 14.729, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]", + "entityName" : "PaymentCard", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 307.794, + "computedY" : 65.386, + "placementX" : 307.794, + "placementY" : 65.386, + "placementWidth" : 260.398, + "placementHeight" : 123.313, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.398, + "contentHeight" : 123.313, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 13.542, + "bottom" : 12.312, + "left" : 13.542 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]", + "entityName" : "PaymentHeadLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 321.336, + "computedY" : 160.487, + "placementX" : 321.336, + "placementY" : 160.487, + "placementWidth" : 233.314, + "placementHeight" : 28.212, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 28.212, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]", + "entityName" : "PaymentHeadHolder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 321.336, + "computedY" : 160.487, + "placementX" : 321.336, + "placementY" : 160.487, + "placementWidth" : 233.314, + "placementHeight" : 28.212, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 28.212, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]", + "entityName" : "PaymentHead", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 321.336, + "computedY" : 160.487, + "placementX" : 321.336, + "placementY" : 160.487, + "placementWidth" : 233.314, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 14.106, + "margin" : { + "top" : 14.106, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]/PaymentIcon[0]", + "entityName" : "PaymentIcon", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 321.336, + "computedY" : 160.487, + "placementX" : 321.336, + "placementY" : 160.487, + "placementWidth" : 26.519, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.519, + "contentHeight" : 14.106, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]/PaymentIcon[0]/Glyph_payment[0]", + "entityName" : "Glyph_payment", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]/PaymentIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 321.336, + "computedY" : 160.487, + "placementX" : 321.336, + "placementY" : 160.487, + "placementWidth" : 26.519, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.519, + "contentHeight" : 14.106, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]/PaymentIcon[0]/Glyph_payment[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]/PaymentIcon[0]/Glyph_payment[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 321.336, + "computedY" : 160.487, + "placementX" : 321.336, + "placementY" : 160.487, + "placementWidth" : 26.519, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.519, + "contentHeight" : 14.106, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]/PaymentIcon[0]/Glyph_payment[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]/PaymentIcon[0]/Glyph_payment[0]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 321.336, + "computedY" : 160.487, + "placementX" : 321.336, + "placementY" : 160.487, + "placementWidth" : 14.106, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.106, + "contentHeight" : 14.106, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]/PaymentIcon[0]/Glyph_payment[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]/PaymentIcon[0]/Glyph_payment[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 321.336, + "computedY" : 160.487, + "placementX" : 321.336, + "placementY" : 160.487, + "placementWidth" : 14.106, + "placementHeight" : 14.106, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.106, + "contentHeight" : 14.106, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]/PaymentHeading[1]", + "entityName" : "PaymentHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentHeadLayer[0]/PaymentHeadHolder[0]/PaymentHead[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 347.855, + "computedY" : 163.365, + "placementX" : 347.855, + "placementY" : 163.365, + "placementWidth" : 66.611, + "placementHeight" : 8.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 66.611, + "contentHeight" : 8.626, + "margin" : { + "top" : 2.602, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentIntro[1]", + "entityName" : "PaymentIntro", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 321.336, + "computedY" : 133.795, + "placementX" : 321.336, + "placementY" : 133.795, + "placementWidth" : 104.986, + "placementHeight" : 19.351, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.986, + "contentHeight" : 19.351, + "margin" : { + "top" : 7.34, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]", + "entityName" : "PaymentFields", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 321.336, + "computedY" : 77.698, + "placementX" : 321.336, + "placementY" : 77.698, + "placementWidth" : 233.314, + "placementHeight" : 46.996, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 46.996, + "margin" : { + "top" : 9.101, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_0Layer[0]", + "entityName" : "PaymentField_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 321.336, + "computedY" : 116.123, + "placementX" : 321.336, + "placementY" : 116.123, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_0Layer[0]/PaymentField_0Holder[0]", + "entityName" : "PaymentField_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_0Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 321.336, + "computedY" : 116.123, + "placementX" : 321.336, + "placementY" : 116.123, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_0Layer[0]/PaymentField_0Holder[0]/PaymentField_0[0]", + "entityName" : "PaymentField_0", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_0Layer[0]/PaymentField_0Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 321.336, + "computedY" : 116.123, + "placementX" : 321.336, + "placementY" : 116.123, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_0Layer[0]/PaymentField_0Holder[0]/PaymentField_0[0]/PaymentField_0Label[0]", + "entityName" : "PaymentField_0Label", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_0Layer[0]/PaymentField_0Holder[0]/PaymentField_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 321.336, + "computedY" : 116.51, + "placementX" : 321.336, + "placementY" : 116.51, + "placementWidth" : 22.857, + "placementHeight" : 8.184, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.857, + "contentHeight" : 8.184, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_0Layer[0]/PaymentField_0Holder[0]/PaymentField_0[0]/PaymentField_0Value[1]", + "entityName" : "PaymentField_0Value", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_0Layer[0]/PaymentField_0Holder[0]/PaymentField_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 405.972, + "computedY" : 116.123, + "placementX" : 405.972, + "placementY" : 116.123, + "placementWidth" : 64.461, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.461, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_1Layer[1]", + "entityName" : "PaymentField_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 321.336, + "computedY" : 103.315, + "placementX" : 321.336, + "placementY" : 103.315, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_1Layer[1]/PaymentField_1Holder[0]", + "entityName" : "PaymentField_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_1Layer[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 321.336, + "computedY" : 103.315, + "placementX" : 321.336, + "placementY" : 103.315, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_1Layer[1]/PaymentField_1Holder[0]/PaymentField_1[0]", + "entityName" : "PaymentField_1", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_1Layer[1]/PaymentField_1Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 321.336, + "computedY" : 103.315, + "placementX" : 321.336, + "placementY" : 103.315, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_1Layer[1]/PaymentField_1Holder[0]/PaymentField_1[0]/PaymentField_1Label[0]", + "entityName" : "PaymentField_1Label", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_1Layer[1]/PaymentField_1Holder[0]/PaymentField_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 321.336, + "computedY" : 103.702, + "placementX" : 321.336, + "placementY" : 103.702, + "placementWidth" : 35.411, + "placementHeight" : 8.184, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.411, + "contentHeight" : 8.184, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_1Layer[1]/PaymentField_1Holder[0]/PaymentField_1[0]/PaymentField_1Value[1]", + "entityName" : "PaymentField_1Value", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_1Layer[1]/PaymentField_1Holder[0]/PaymentField_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 405.972, + "computedY" : 103.315, + "placementX" : 405.972, + "placementY" : 103.315, + "placementWidth" : 38.123, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.123, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_2Layer[2]", + "entityName" : "PaymentField_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 321.336, + "computedY" : 90.506, + "placementX" : 321.336, + "placementY" : 90.506, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_2Layer[2]/PaymentField_2Holder[0]", + "entityName" : "PaymentField_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_2Layer[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 321.336, + "computedY" : 90.506, + "placementX" : 321.336, + "placementY" : 90.506, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_2Layer[2]/PaymentField_2Holder[0]/PaymentField_2[0]", + "entityName" : "PaymentField_2", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_2Layer[2]/PaymentField_2Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 321.336, + "computedY" : 90.506, + "placementX" : 321.336, + "placementY" : 90.506, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_2Layer[2]/PaymentField_2Holder[0]/PaymentField_2[0]/PaymentField_2Label[0]", + "entityName" : "PaymentField_2Label", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_2Layer[2]/PaymentField_2Holder[0]/PaymentField_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 321.336, + "computedY" : 90.893, + "placementX" : 321.336, + "placementY" : 90.893, + "placementWidth" : 60.29, + "placementHeight" : 8.184, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.29, + "contentHeight" : 8.184, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_2Layer[2]/PaymentField_2Holder[0]/PaymentField_2[0]/PaymentField_2Value[1]", + "entityName" : "PaymentField_2Value", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_2Layer[2]/PaymentField_2Holder[0]/PaymentField_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 405.972, + "computedY" : 90.506, + "placementX" : 405.972, + "placementY" : 90.506, + "placementWidth" : 38.123, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.123, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_3Layer[3]", + "entityName" : "PaymentField_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 321.336, + "computedY" : 77.698, + "placementX" : 321.336, + "placementY" : 77.698, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_3Layer[3]/PaymentField_3Holder[0]", + "entityName" : "PaymentField_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_3Layer[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 321.336, + "computedY" : 77.698, + "placementX" : 321.336, + "placementY" : 77.698, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_3Layer[3]/PaymentField_3Holder[0]/PaymentField_3[0]", + "entityName" : "PaymentField_3", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_3Layer[3]/PaymentField_3Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 321.336, + "computedY" : 77.698, + "placementX" : 321.336, + "placementY" : 77.698, + "placementWidth" : 233.314, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 233.314, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_3Layer[3]/PaymentField_3Holder[0]/PaymentField_3[0]/PaymentField_3Label[0]", + "entityName" : "PaymentField_3Label", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_3Layer[3]/PaymentField_3Holder[0]/PaymentField_3[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 321.336, + "computedY" : 78.085, + "placementX" : 321.336, + "placementY" : 78.085, + "placementWidth" : 37.932, + "placementHeight" : 8.184, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 37.932, + "contentHeight" : 8.184, + "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" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_3Layer[3]/PaymentField_3Holder[0]/PaymentField_3[0]/PaymentField_3Value[1]", + "entityName" : "PaymentField_3Value", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/InfoCardsRow[5]/PaymentCard[1]/PaymentFields[2]/PaymentField_3Layer[3]/PaymentField_3Holder[0]/PaymentField_3[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 405.972, + "computedY" : 77.698, + "placementX" : 405.972, + "placementY" : 77.698, + "placementWidth" : 61.247, + "placementHeight" : 8.571, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.247, + "contentHeight" : 8.571, + "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" : "ObsidianInvoice[0]/FooterDivider[6]", + "entityName" : "FooterDivider", + "entityKind" : "LineNode", + "parentPath" : "ObsidianInvoice[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 25.955, + "computedY" : 51.409, + "placementX" : 25.955, + "placementY" : 51.409, + "placementWidth" : 542.237, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 542.237, + "contentHeight" : 1.0, + "margin" : { + "top" : 12.978, + "right" : 0.0, + "bottom" : 9.438, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ObsidianInvoice[0]/ClosingBand[7]", + "entityName" : "ClosingBand", + "entityKind" : "RowNode", + "parentPath" : "ObsidianInvoice[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 25.955, + "computedY" : 16.015, + "placementX" : 25.955, + "placementY" : 16.015, + "placementWidth" : 542.237, + "placementHeight" : 25.955, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 542.237, + "contentHeight" : 25.955, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 3.385, + "bottom" : 0.0, + "left" : 2.821 + } + }, { + "path" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingDisc[0]", + "entityName" : "ClosingDisc", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/ClosingBand[7]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 28.776, + "computedY" : 16.015, + "placementX" : 28.776, + "placementY" : 16.015, + "placementWidth" : 25.955, + "placementHeight" : 25.955, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.955, + "contentHeight" : 25.955, + "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" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingDisc[0]/ClosingDiscShape[0]", + "entityName" : "ClosingDiscShape", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingDisc[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 28.776, + "computedY" : 16.015, + "placementX" : 28.776, + "placementY" : 16.015, + "placementWidth" : 25.955, + "placementHeight" : 25.955, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.955, + "contentHeight" : 25.955, + "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" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingDisc[0]/ClosingDiscShape[0]/ClosingDiscInitials[0]", + "entityName" : "ClosingDiscInitials", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingDisc[0]/ClosingDiscShape[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 28.776, + "computedY" : 24.79, + "placementX" : 28.776, + "placementY" : 24.79, + "placementWidth" : 25.955, + "placementHeight" : 8.405, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.955, + "contentHeight" : 8.405, + "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" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingText[1]", + "entityName" : "ClosingText", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/ClosingBand[7]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 69.966, + "computedY" : 16.015, + "placementX" : 69.966, + "placementY" : 16.015, + "placementWidth" : 152.247, + "placementHeight" : 22.511, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 152.247, + "contentHeight" : 22.511, + "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" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingText[1]/ClosingSignOff[0]", + "entityName" : "ClosingSignOff", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingText[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 69.966, + "computedY" : 30.121, + "placementX" : 69.966, + "placementY" : 30.121, + "placementWidth" : 114.778, + "placementHeight" : 8.405, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 114.778, + "contentHeight" : 8.405, + "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" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingText[1]/ClosingDue[1]", + "entityName" : "ClosingDue", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingText[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 69.966, + "computedY" : 16.015, + "placementX" : 69.966, + "placementY" : 16.015, + "placementWidth" : 152.247, + "placementHeight" : 8.405, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 152.247, + "contentHeight" : 8.405, + "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" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingContact[2]", + "entityName" : "ClosingContact", + "entityKind" : "SectionNode", + "parentPath" : "ObsidianInvoice[0]/ClosingBand[7]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 474.528, + "computedY" : 16.015, + "placementX" : 474.528, + "placementY" : 16.015, + "placementWidth" : 90.279, + "placementHeight" : 23.009, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.279, + "contentHeight" : 23.009, + "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" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingContact[2]/ClosingName[0]", + "entityName" : "ClosingName", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingContact[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 474.528, + "computedY" : 30.121, + "placementX" : 474.528, + "placementY" : 30.121, + "placementWidth" : 90.279, + "placementHeight" : 8.903, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.279, + "contentHeight" : 8.903, + "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" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingContact[2]/ClosingContact[1]", + "entityName" : "ClosingContact", + "entityKind" : "ParagraphNode", + "parentPath" : "ObsidianInvoice[0]/ClosingBand[7]/ClosingContact[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 474.528, + "computedY" : 16.015, + "placementX" : 474.528, + "placementY" : 16.015, + "placementWidth" : 90.279, + "placementHeight" : 8.903, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.279, + "contentHeight" : 8.903, + "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/invoice-v2-layered/obsidian_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/obsidian_invoice-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..4382c6c686d0abada2020c774d94ea99fd5d4376 GIT binary patch literal 78833 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 { + row.spacing(CARD_GUTTER) + .verticalAlign(RowVerticalAlign.TOP) + .margin(new DocumentInsets(px(15), 0, 0, 0)) + .weights(HALF, HALF); + row.addSection("NotesCard", cell -> renderNotes(cell, notes)); + row.addSection("PaymentCard", cell -> renderPayment(cell, payment)); + }); + } + + private static void renderNotes(SectionBuilder cell, InvoiceNotesBlock notes) { + chrome(cell, 1375 - 1331, CARD_BODY_SIZE); + head(cell, "Notes", ObsidianIcons.NOTES, notes.heading()); + cell.addSection("NotesBody", body -> { + body.spacing(0).padding(new DocumentInsets(0, 0, 0, CARD_ICON_COL - CARD_PAD_H)); + List paragraphs = notes.paragraphs(); + for (int i = 0; i < paragraphs.size(); i++) { + String prose = paragraphs.get(i); + int index = i; + double above = index == 0 + ? px(1222 - 1182) - CARD_ICON - topBearing(CARD_BODY_SIZE, false) + : capGap(1308 - 1267, CARD_BODY_SIZE, false, CARD_BODY_SIZE, false); + double gapAbove = Math.max(0, above); + body.addParagraph(p -> p + .name("NotesParagraph_" + index) + .text(prose) + .textStyle(plain(CARD_BODY_SIZE, MUTED)) + .lineSpacing(Math.max(0, px(22.5) - CARD_BODY_SIZE)) + .margin(new DocumentInsets(gapAbove, 0, 0, 0))); + } + }); + } + + private static void renderPayment(SectionBuilder cell, InvoicePaymentBlock payment) { + chrome(cell, 1375 - 1339, PAY_VALUE_SIZE); + head(cell, "Payment", ObsidianIcons.PAYMENT, payment.heading()); + if (!payment.instruction().isBlank()) { + cell.addParagraph(p -> p + .name("PaymentIntro") + .text(payment.instruction()) + .textStyle(plain(CARD_BODY_SIZE, MUTED)) + .lineSpacing(Math.max(0, px(19.4) - CARD_BODY_SIZE)) + .margin(new DocumentInsets(Math.max(0, px(1221 - 1182) - CARD_ICON + - topBearing(CARD_BODY_SIZE, false)), 0, 0, 0))); + } + cell.addSection("PaymentFields", fields -> { + fields.spacing(Math.max(0, px(22.7) - PAY_VALUE_SIZE)) + .margin(new DocumentInsets(Math.max(0, capGap( + 1271 - 1240, CARD_BODY_SIZE, false, PAY_LABEL_SIZE, false)), + 0, 0, 0)); + List entries = payment.fields(); + for (int i = 0; i < entries.size(); i++) { + InvoicePaymentBlock.Field field = entries.get(i); + int index = i; + String name = "PaymentField_" + index; + layeredRow(fields, name, row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(px(150)), + DocumentRowColumn.weight(1)); + row.addParagraph(p -> p + .name(name + "Label") + .text(field.label()) + .textStyle(plain(PAY_LABEL_SIZE, MUTED))); + row.addParagraph(p -> linked(p + .name(name + "Value") + .text(field.value()) + .textStyle(plain(PAY_VALUE_SIZE, INK)), + // A bank detail is a reference, not a destination — + // except an address, the one field a reader would act on. + field.value().contains("@") + ? InvoiceUri.mailLink(field.value()) + : null)); + }); + } + }); + } + + /** + * A card's fill, border and lower padding. + * + *

      The padding is solved from the last line's cap to the card's measured + * bottom, so a card with a different number of lines still closes the same + * distance under the last of them.

      + */ + private static void chrome(SectionBuilder cell, double lastCapToBottomPx, double lastSize) { + cell.spacing(0) + .fillColor(SURFACE) + .stroke(CARD_STROKE) + .cornerRadius(CARD_RADIUS) + .padding(new DocumentInsets(0, CARD_PAD_H, + Math.max(0, capGap(lastCapToBottomPx, lastSize, false, 0, false)), + CARD_PAD_H)) + .keepTogether(); + } + + private static void head(SectionBuilder cell, String prefix, String token, String heading) { + layeredRow(cell, prefix + "Head", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .margin(new DocumentInsets(px(1182 - 1157), 0, 0, 0)) + .columns(DocumentRowColumn.fixed(CARD_ICON_COL - CARD_PAD_H), + DocumentRowColumn.weight(1)); + row.addSection(prefix + "Icon", cell2 -> cell2 + .spacing(0) + .add(glyph(ObsidianIcons.icon(token), token, CARD_ICON, + HorizontalAlign.LEFT))); + row.addParagraph(p -> p + .name(prefix + "Heading") + .text(heading) + .textStyle(bold(CARD_HEAD_SIZE, ACCENT)) + .margin(capTop(1187 - 1182, CARD_HEAD_SIZE, true))); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianClosing.java new file mode 100644 index 000000000..6bc65adc2 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianClosing.java @@ -0,0 +1,141 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; + +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CLOSING_RIGHT_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CLOSING_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.DISC_CLOSING; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.plain; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.disc; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.initials; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.initialsDisc; + +/** + * The closing band: a disc, the sign-off and the due sentence beside it, and the + * issuer's own identity against the right margin. + */ +final class ObsidianClosing { + + private ObsidianClosing() { + } + + /** + * The band. + * + *

      Bottom-aligned, not centred. Measured, the disc and both text columns + * end on the same line — they sit on the disc's lower edge rather than on its + * middle, and centring them lifts every line a few pixels.

      + * + * @param page the page flow + * @param brand the issuer's brand, whose logo the disc carries + * @param supplier the issuer + * @param payment the sign-off and the due sentence + */ + static void render(PageFlowBuilder page, InvoiceBrand brand, + InvoiceContactBlock supplier, InvoicePaymentBlock payment) { + page.addRow("ClosingBand", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.BOTTOM) + .padding(new DocumentInsets(0, px(6), 0, px(5))) + .columns(DocumentRowColumn.fixed(px(73)), + DocumentRowColumn.weight(1), + DocumentRowColumn.fixed(px(160))); + row.addSection("ClosingDisc", cell -> cell.spacing(0).add(closingDisc(brand, supplier))); + row.addSection("ClosingText", text -> { + text.spacing(Math.max(0, px(1448 - 1423) - LINE_BOX * CLOSING_SIZE)); + if (!payment.signOff().isBlank()) { + text.addParagraph(p -> p + .name("ClosingSignOff") + .text(payment.signOff()) + .textStyle(bold(CLOSING_SIZE, INK))); + } + if (!payment.dueNotice().isBlank()) { + text.addParagraph(p -> { + p.name("ClosingDue"); + writeEmphasised(p, payment.dueNotice(), payment.dueNoticeEmphasis()); + }); + } + }); + row.addSection("ClosingContact", text -> { + text.spacing(Math.max(0, px(1448 - 1423) - LINE_BOX * CLOSING_RIGHT_SIZE)); + text.addParagraph(p -> p + .name("ClosingName") + .text(supplier.legalName()) + .textStyle(plain(CLOSING_RIGHT_SIZE, INK)) + .align(TextAlign.RIGHT)); + if (!supplier.email().isBlank()) { + text.addParagraph(p -> { + p.name("ClosingContact").align(TextAlign.RIGHT); + p.inlineText(supplier.email(), plain(CLOSING_RIGHT_SIZE, MUTED), + InvoiceUri.mailLink(supplier.email())); + }); + } + }); + }); + } + + /** The same mark the issuer's card carries, at the band's smaller size. */ + private static DocumentNode closingDisc(InvoiceBrand brand, InvoiceContactBlock supplier) { + double diameter = px(46); + if (brand.logo() != null) { + return disc("ClosingDiscShape", DISC_CLOSING, new ImageBuilder() + .name("ClosingDiscLogo") + .source(brand.logo()) + .width(px(21)) + .build(), diameter); + } + String monogram = (brand.monogramTop() + brand.monogramBottom()).trim(); + String letters = monogram.isBlank() + ? initials(brand.name().isBlank() ? supplier.legalName() : brand.name()) + : monogram; + return ObsidianWidgets.disc("ClosingDiscShape", DISC_CLOSING, + new com.demcha.compose.document.dsl.ParagraphBuilder() + .name("ClosingDiscInitials") + .text(letters) + .textStyle(bold(CLOSING_SIZE, INK)) + .align(TextAlign.CENTER) + .build(), + diameter); + } + + /** + * The due sentence, with the date inside it set in the accent. + * + *

      The design colours the date rather than breaking it out, so it is a run + * of the same sentence: the emphasis names a substring, the preset finds it, + * and the text around it stays as it was written. A sentence that does not + * contain the emphasis is written whole — the sheet still says what it + * says.

      + */ + private static void writeEmphasised(com.demcha.compose.document.dsl.ParagraphBuilder paragraph, + String prose, String emphasis) { + int at = emphasis.isBlank() ? -1 : prose.indexOf(emphasis); + if (at < 0) { + paragraph.inlineText(prose, plain(CLOSING_SIZE, MUTED)); + return; + } + if (at > 0) { + paragraph.inlineText(prose.substring(0, at), plain(CLOSING_SIZE, MUTED)); + } + paragraph.inlineText(emphasis, bold(CLOSING_SIZE, ACCENT)); + int after = at + emphasis.length(); + if (after < prose.length()) { + paragraph.inlineText(prose.substring(after), plain(CLOSING_SIZE, MUTED)); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianIcons.java new file mode 100644 index 000000000..acb2134ec --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianIcons.java @@ -0,0 +1,55 @@ +package com.demcha.compose.document.templates.invoice.presets; + +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; + +/** + * The two marks the Obsidian invoice packages, one for each of its information + * cards. Both are the preset's: which glyph opens the notes and which opens the + * payment details is a property of the design, not of the invoice. + * + *

      The party discs carry no packaged mark. The supplier's shows the caller's + * logo when there is one and the brand's initials otherwise; the billed party's + * shows initials taken from its name.

      + */ +final class ObsidianIcons { + + static final String NOTES = "notes"; + static final String PAYMENT = "payment"; + + private static final String ICON_ROOT = "/templates/invoice/obsidian/icons/"; + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private ObsidianIcons() { + } + + /** + * A packaged mark by name. + * + * @param token the mark's name + * @return the parsed icon + */ + static SvgIcon icon(String token) { + return CACHE.computeIfAbsent(token, ObsidianIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = ObsidianIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing obsidian invoice icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read obsidian invoice icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoice.java new file mode 100644 index 000000000..ead09b9b3 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianInvoice.java @@ -0,0 +1,187 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageMarginRule; +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.invoice.StructuredInvoiceData; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CONTINUATION_MARGIN; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.FACE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.META_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.PAGE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.PAGE_BG; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.PAGE_MARGIN; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.PAGE_NUMBER_BAND; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.PAGE_NUMBER_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.RULE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.blockGap; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.rule; + +/** + * Obsidian — a dark invoice built from rounded cards: a wordmark over the + * document's name against a ruled metadata stack, the issuer and the billed + * party on discs in cards of their own, a line-item table in a third, the totals + * in a fourth, the notes and payment details side by side in a fifth and sixth, + * and a closing band under a hairline. + * + *

      The sheet is dark, and it is the page that is dark

      + * + *

      The fill is set on the page rather than on the flow. A container's fill is + * bounded by its content height, so a continuation page carrying three line + * items would show two thirds of a white sheet under them; the page background + * covers the paper whatever the content does.

      + * + *

      Sizes are solved from ink, not from cap height

      + * + *

      The design's own face is not bundled, and matching a cap height alone would + * still set every string to the wrong width. Each size here is solved from the + * measured ink width of the string it sets, with the substitute's width ratio + * applied once — and every size is named, in the styles, by the string it came + * from. Vertical positions are cap tops rather than box edges, because ink is + * what the design can be measured on.

      + * + *

      Six columns inside one

      + * + *

      A cell's stroke draws all four of its edges, so a six-column table would + * draw five verticals this design does not have. The table is one column wide + * and each cell carries a composed row of six, with the rule under a row drawn + * inside that row's own content — which is what lets the last row leave the rule + * out and take the card's lower padding instead.

      + * + *

      The tax column is worked out, not asked for

      + * + *

      This design gives the tax its own money column where the model carries a + * rate. The figure is not a second thing to state: a line already gives the + * quantity, the unit price and the total it comes to, so the tax is the + * difference between what was charged and what the goods cost. Reading it off + * the line is also what keeps the column and the total consistent when either + * moves.

      + * + *

      The marks are the caller's, and there are two of them

      + * + *

      The issuer's disc — in its party card and again in the closing band — + * carries the logo from {@code InvoiceBrand} when there is one, the brand's own + * monogram when it states one, and initials taken from the name otherwise. The + * billed party's disc always shows initials taken from its name. The templates + * artifact carries no mark of its own; the masthead sets the brand's name as + * type, which is what this design does with it.

      + * + *

      The closing band is the design's tightest place

      + * + *

      Its right column is the design's own measured width, which holds an + * address of about twenty characters. A longer one wraps there rather than + * overflowing — correct, but it makes the band a line taller, and on a sheet + * whose content already reaches the foot that is enough to carry the band to a + * second page. The design leaves very little under it.

      + * + *

      Fonts

      + * + *

      The sheet is set in Gothic A1, which is the family every size above was + * solved against. The templates artifact carries no fonts — register it on the + * session, or the engine substitutes and every size is solved for type that is + * not there.

      + * + *

      Usage:

      + *
      {@code
      + * DocumentTemplate template = ObsidianInvoice.create();
      + * template.compose(session, invoice);
      + * }
      + * + * @since 2.4.0 + */ +public final class ObsidianInvoice { + + /** Stable identifier of this preset. */ + public static final String ID = "obsidian-invoice"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Obsidian Invoice"; + + private ObsidianInvoice() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link StructuredInvoiceData} + */ + 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, StructuredInvoiceData data) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(data, "data"); + + document.pageSize(PAGE); + document.margin(PAGE_MARGIN); + document.pageMargins(List.of(PageMarginRule.from(2, CONTINUATION_MARGIN))); + // Not a fill on the flow: a container's fill is bounded by content + // height, and a continuation page holding three line items would show + // two thirds of a white sheet under them. + document.pageBackground(PAGE_BG); + renderPageNumber(document); + + String currency = data.currencyCode(); + document.pageFlow(page -> { + page.name("ObsidianInvoice").padding(DocumentInsets.zero()).spacing(0); + ObsidianMasthead.render(page, data.brand(), data.masthead()); + page.addLine(line -> rule(line, "HeaderDivider", CONTENT_W, HAIRLINE) + .margin(new DocumentInsets( + Math.max(0, blockGap(28.5, META_VALUE_SIZE, 0)), 0, px(27), 0))); + ObsidianParties.render(page, data.brand(), data.supplier(), data.billTo()); + ObsidianLines.render(page, data.serviceLines(), currency); + ObsidianSettlement.render(page, data.totals(), currency); + ObsidianCards.render(page, data.notes(), data.payment()); + page.addLine(line -> rule(line, "FooterDivider", CONTENT_W, HAIRLINE) + .margin(new DocumentInsets(px(23), 0, + Math.max(0, px(1417 - 1398.5) - RULE_BOX), 0))); + ObsidianClosing.render(page, data.brand(), data.supplier(), data.payment()); + }); + } + + /** + * The enumeration. The design has none — it is one sheet — but the + * document flows, and a reader holding page 1 of 2 has to be able to tell + * that page 2 is missing. + * + *

      The face is stated because the zone's own default is the standard-14 + * one, which would leave the number the single line on the sheet in a + * family the design never uses.

      + */ + private static void renderPageNumber(DocumentSession document) { + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .centerText("Page {page} of {pages}") + .height((float) PAGE_NUMBER_BAND) + .fontName(FACE) + .fontSize((float) PAGE_NUMBER_SIZE) + .textColor(MUTED) + .showSeparator(false) + .build()); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianLines.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianLines.java new file mode 100644 index 000000000..72317d388 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianLines.java @@ -0,0 +1,203 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.RowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.table.DocumentTableCell; +import com.demcha.compose.document.table.DocumentTableColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CARD_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CARD_STROKE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CELL_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CELL_PAD_R; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CELL_STYLE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.COLUMN_SHARES; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.FIGURE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.HAIRLINE_STRONG; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.ITEM_SUB_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.ITEM_TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.RULE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TABLE_HEAD_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TABLE_INSET; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TABLE_W; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.capGap; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.capTop; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.plain; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.topBearing; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.rule; + +/** + * The line-item table, inside its own rounded card. + * + *

      Six columns inside one

      + * + *

      A cell's stroke draws all four of its edges, so a six-column table would + * draw five verticals this design does not have. The table is one column wide + * and each cell carries a composed row of six, with the rule under a row drawn + * inside that row's own content — which is also what lets the last row leave the + * rule out and take the card's lower padding instead.

      + */ +final class ObsidianLines { + + private ObsidianLines() { + } + + /** + * The table. + * + * @param page the page flow + * @param serviceLines the lines and their column captions + * @param currencyCode the code every figure carries as a mark + */ + static void render(PageFlowBuilder page, InvoiceServiceLines serviceLines, + String currencyCode) { + List lines = serviceLines.lines(); + page.addSection("LineItemsCard", card -> { + card.spacing(0) + .fillColor(SURFACE) + .stroke(CARD_STROKE) + .cornerRadius(CARD_RADIUS) + .padding(new DocumentInsets(0, TABLE_INSET, 0, TABLE_INSET)) + .margin(new DocumentInsets(px(28), 0, 0, 0)); + card.addTable(table -> { + table.name("LineItems") + .width(TABLE_W) + .columns(DocumentTableColumn.fixed(TABLE_W)) + .defaultCellStyle(CELL_STYLE); + renderHeader(table, serviceLines.columns()); + for (int i = 0; i < lines.size(); i++) { + table.rowCells(DocumentTableCell + .node(lineCell(lines.get(i), i, i == lines.size() - 1, currencyCode)) + .withStyle(CELL_STYLE)); + } + }); + }); + } + + private static void renderHeader(TableBuilder table, InvoiceServiceLines.Columns columns) { + SectionBuilder cell = new SectionBuilder(); + cell.name("LineItemsHeaderCell").spacing(0); + cell.addRow("LineItemsHeader", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .margin(capTop(596 - 573, TABLE_HEAD_SIZE, false)) + .columns(columnWidths()); + headCell(row, "HeadIndex", columns.index(), TextAlign.LEFT); + headCell(row, "HeadDescription", columns.description(), TextAlign.LEFT); + headCell(row, "HeadQuantity", columns.quantity(), TextAlign.CENTER); + headCell(row, "HeadUnitPrice", columns.unitPrice(), TextAlign.RIGHT); + headCell(row, "HeadTax", columns.vat(), TextAlign.RIGHT); + headCell(row, "HeadAmount", columns.amount(), TextAlign.RIGHT); + }); + cell.addLine(line -> rule(line, "LineItemsHeaderRule", TABLE_W, HAIRLINE_STRONG) + .margin(new DocumentInsets( + px(626 - 596) - LINE_BOX * TABLE_HEAD_SIZE + + topBearing(TABLE_HEAD_SIZE, false), + 0, 0, 0))); + table.headerCells(DocumentTableCell.node(cell.build()).withStyle(CELL_STYLE)) + .repeatHeader(); + } + + private static void headCell(RowBuilder row, String name, String label, TextAlign align) { + row.addParagraph(p -> p + .name(name) + .text(label) + .textStyle(plain(TABLE_HEAD_SIZE, MUTED)) + .align(align) + .margin(new DocumentInsets(0, + align == TextAlign.RIGHT ? CELL_PAD_R : 0, 0, + align == TextAlign.LEFT ? CELL_PAD_L : 0))); + } + + private static DocumentNode lineCell(InvoiceServiceLines.Line line, int index, boolean last, + String currencyCode) { + int number = line.lineNumber() > 0 ? line.lineNumber() : index + 1; + SectionBuilder cell = new SectionBuilder(); + cell.name("LineCell_" + index).spacing(0); + cell.addRow("Line_" + index, row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + // A row's title sits a measured distance below the rule above + // it every time, and the rule's own thickness is part of that. + .margin(new DocumentInsets( + px(18) - RULE_BOX - topBearing(ITEM_TITLE_SIZE, false), 0, 0, 0)) + .columns(columnWidths()); + row.addParagraph(p -> p + .name("LineIndex_" + index) + .text(Integer.toString(number)) + .textStyle(plain(ITEM_TITLE_SIZE, MUTED)) + .margin(new DocumentInsets(0, 0, 0, CELL_PAD_L))); + row.addSection("LineDescription_" + index, text -> { + text.spacing(0).padding(new DocumentInsets(0, 0, 0, CELL_PAD_L)); + text.addParagraph(p -> p + .name("LineTitle_" + index) + .text(line.title()) + .textStyle(plain(ITEM_TITLE_SIZE, INK))); + text.addParagraph(p -> p + .name("LineSubtitle_" + index) + .text(line.description()) + .textStyle(plain(ITEM_SUB_SIZE, MUTED)) + .margin(new DocumentInsets(Math.max(0, capGap( + 669 - 644, ITEM_TITLE_SIZE, false, ITEM_SUB_SIZE, false)), + 0, 0, 0))); + }); + valueCell(row, "LineQuantity_" + index, + ObsidianText.quantity(line.quantity()), TextAlign.CENTER); + valueCell(row, "LineUnitPrice_" + index, + ObsidianText.money(currencyCode, line.unitPrice()), TextAlign.RIGHT); + valueCell(row, "LineTax_" + index, + ObsidianText.lineTax(currencyCode, line.quantity(), line.unitPrice(), + line.amount()), + TextAlign.RIGHT); + valueCell(row, "LineAmount_" + index, + ObsidianText.money(currencyCode, line.amount()), TextAlign.RIGHT); + }); + if (last) { + cell.addSpacer(spacer -> spacer.height(px(983 - 967))); + } else { + cell.addLine(line2 -> rule(line2, "LineRule_" + index, TABLE_W, HAIRLINE) + .margin(new DocumentInsets( + Math.max(0, px(697.5 - 669) - LINE_BOX * ITEM_SUB_SIZE + + topBearing(ITEM_SUB_SIZE, false)), + 0, 0, 0))); + } + return cell.build(); + } + + private static void valueCell(RowBuilder row, String name, String value, TextAlign align) { + row.addParagraph(p -> p + .name(name) + .text(value) + .textStyle(plain(FIGURE_SIZE, INK)) + .align(align) + .margin(new DocumentInsets(0, align == TextAlign.RIGHT ? CELL_PAD_R : 0, 0, 0))); + } + + /** The six widths, with the last taking the remainder so they sum exactly. */ + private static DocumentRowColumn[] columnWidths() { + DocumentRowColumn[] columns = new DocumentRowColumn[COLUMN_SHARES.length]; + double assigned = 0; + for (int i = 0; i < COLUMN_SHARES.length - 1; i++) { + double width = TABLE_W * COLUMN_SHARES[i]; + assigned += width; + columns[i] = DocumentRowColumn.fixed(width); + } + columns[COLUMN_SHARES.length - 1] = DocumentRowColumn.fixed(TABLE_W - assigned); + return columns; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianMasthead.java new file mode 100644 index 000000000..a3bf240bb --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianMasthead.java @@ -0,0 +1,141 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.HALF; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.META_COL_W; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.META_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.META_NUMBER_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.META_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.RULE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.WORDMARK_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.capGap; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.capTop; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.plain; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.topBearing; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.layeredRow; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.rule; + +/** + * The head of the sheet: the wordmark over the document's name on the left, + * against a metadata stack on the right whose rows sit under their own rules. + */ +final class ObsidianMasthead { + + /** + * The first row's number stands alone above the ruled rows, so the stack has + * one more measured position than it has entries. Rule tops and row cap tops, + * both measured: the pitch is even to within a pixel, but stating each keeps + * them separable if one moves. + */ + private static final double[] RULE_AT = {117.5, 160.5, 199.5, 239.5}; + private static final double[] ROW_AT = {135, 175, 215, 255}; + + private ObsidianMasthead() { + } + + /** + * The masthead. + * + *

      The brand's name is the wordmark — set, not drawn, because the design + * sets it as type. A caller whose mark is a drawing puts it on the party disc + * below instead, which is where this design carries one.

      + */ + static void render(PageFlowBuilder page, InvoiceBrand brand, InvoiceMasthead masthead) { + page.addRow("Masthead", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .columns(DocumentRowColumn.weight(1), DocumentRowColumn.fixed(META_COL_W)); + row.addSection("BrandColumn", cell -> renderBrand(cell, brand, masthead)); + row.addSection("InvoiceMeta", cell -> renderMeta(cell, masthead)); + }); + } + + private static void renderBrand(SectionBuilder cell, InvoiceBrand brand, + InvoiceMasthead masthead) { + cell.spacing(0); + cell.addParagraph(p -> p + .name("BrandWordmark") + .text(brand.name()) + .textStyle(bold(WORDMARK_SIZE, INK)) + .margin(capTop(1, WORDMARK_SIZE, true))); + cell.addParagraph(p -> p + .name("InvoiceTitle") + .text(masthead.title()) + .textStyle(bold(TITLE_SIZE, INK)) + // Measured from the content box's top, less the wordmark's own + // line box, which is what the title is being placed under. + .margin(capTop(195 - 46, TITLE_SIZE, true, LINE_BOX * WORDMARK_SIZE))); + } + + /** + * The metadata stack. + * + *

      The first entry is the one the design sets apart: its label sits above + * its value in the accent and neither carries a rule, so an invoice whose + * first entry is its number reads as a heading for the stack rather than as + * its first row. The rest are ruled label/value pairs.

      + */ + private static void renderMeta(SectionBuilder cell, InvoiceMasthead masthead) { + List entries = masthead.entries(); + cell.spacing(0); + if (entries.isEmpty()) { + return; + } + InvoiceMasthead.Entry lead = entries.get(0); + cell.addParagraph(p -> p + .name("MetaNumberLabel") + .text(lead.label()) + .textStyle(plain(META_LABEL_SIZE, MUTED)) + .margin(capTop(52 - 46, META_LABEL_SIZE, false))); + cell.addParagraph(p -> p + .name("MetaNumber") + .text(lead.value()) + .textStyle(bold(META_NUMBER_SIZE, ACCENT)) + .margin(capTop(82 - 52, META_NUMBER_SIZE, false, LINE_BOX * META_LABEL_SIZE))); + + for (int i = 1; i < entries.size() && i <= RULE_AT.length; i++) { + InvoiceMasthead.Entry entry = entries.get(i); + int at = i - 1; + String name = "MetaRow_" + at; + double gapAboveRule = at == 0 + ? capGap(RULE_AT[0] - 82, META_NUMBER_SIZE, true, 0, false) + : capGap(RULE_AT[at] - ROW_AT[at - 1], META_VALUE_SIZE, false, 0, false); + cell.addLine(line -> rule(line, name + "Rule", META_COL_W, HAIRLINE) + .margin(new DocumentInsets(Math.max(0, gapAboveRule), 0, 0, 0))); + double gapBelowRule = + px(ROW_AT[at] - RULE_AT[at]) - RULE_BOX - topBearing(META_VALUE_SIZE, false); + layeredRow(cell, name, row -> { + row.spacing(0) + .margin(new DocumentInsets(Math.max(0, gapBelowRule), 0, 0, 0)) + .weights(HALF, HALF); + row.addParagraph(p -> p + .name(name + "Label") + .text(entry.label()) + .textStyle(plain(META_VALUE_SIZE, MUTED))); + row.addParagraph(p -> p + .name(name + "Value") + .text(entry.value()) + .textStyle(plain(META_VALUE_SIZE, entry.emphasized() ? ACCENT : INK)) + .align(TextAlign.RIGHT)); + }); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianParties.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianParties.java new file mode 100644 index 000000000..e7cbfff14 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianParties.java @@ -0,0 +1,165 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +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.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CARD_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CARD_PAD_H; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CARD_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CARD_STROKE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.DISC_CLIENT; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.DISC_SUPPLIER; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.HALF; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.PARTY_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.PARTY_NAME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.PARTY_TEXT_INDENT; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.capGap; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.capTop; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.plain; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.initials; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.initialsDisc; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.layeredRow; + +/** + * The two party cards: the issuer beside the billed party, each opening with a + * filled disc. + */ +final class ObsidianParties { + + /** The address lines' measured cap tops; the first is taken off the name. */ + private static final double[] LINE_AT = {420, 446, 471}; + + private ObsidianParties() { + } + + /** + * The parties row. + * + * @param page the page flow + * @param brand the issuer's brand, whose logo the supplier's disc carries + * @param supplier the issuer + * @param billTo the billed party + */ + static void render(PageFlowBuilder page, InvoiceBrand brand, + InvoiceContactBlock supplier, InvoiceRecipient billTo) { + page.addRow("PartiesRow", row -> { + row.spacing(CARD_GUTTER).verticalAlign(RowVerticalAlign.TOP).weights(HALF, HALF); + row.addSection("SupplierCard", cell -> renderCard(cell, "Supplier", "From", + supplierDisc(brand, supplier), supplier.legalName(), + supplier.addressLines(), supplier.email(), + InvoiceUri.mailLink(supplier.email()))); + row.addSection("BillToCard", cell -> renderCard(cell, "BillTo", billTo.heading(), + initialsDisc("BillToDisc", DISC_CLIENT, initials(billTo.name())), + billTo.name(), billTo.addressLines(), billTo.email(), + InvoiceUri.mailLink(billTo.email()))); + }); + } + + /** + * The issuer's disc: the caller's logo when there is one, the brand's own + * monogram when it states one, and initials taken from the name otherwise. + * + *

      This design carries the issuer's mark here rather than in the masthead, + * where it sets the name as type instead — so a caller with a drawing to show + * has exactly one place to put it.

      + */ + private static DocumentNode supplierDisc(InvoiceBrand brand, InvoiceContactBlock supplier) { + if (brand.logo() != null) { + return ObsidianWidgets.disc("SupplierDisc", DISC_SUPPLIER, + new ImageBuilder() + .name("SupplierDiscLogo") + .source(brand.logo()) + .width(ObsidianStyles.DISC_GLYPH) + .build(), + DISC_D); + } + String monogram = (brand.monogramTop() + brand.monogramBottom()).trim(); + String letters = monogram.isBlank() + ? initials(brand.name().isBlank() ? supplier.legalName() : brand.name()) + : monogram; + return initialsDisc("SupplierDisc", DISC_SUPPLIER, letters); + } + + private static void renderCard(SectionBuilder cell, String id, String label, + DocumentNode disc, String name, List addressLines, + String contact, DocumentLinkOptions link) { + cell.spacing(0) + .fillColor(SURFACE) + .stroke(CARD_STROKE) + .cornerRadius(CARD_RADIUS) + .padding(new DocumentInsets(0, CARD_PAD_H, px(26), CARD_PAD_H)) + .keepTogether(); + cell.addParagraph(p -> p + .name(id + "Label") + .text(label) + .textStyle(bold(PARTY_LABEL_SIZE, ACCENT)) + .margin(capTop(355 - 325, PARTY_LABEL_SIZE, true))); + layeredRow(cell, id + "Body", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.TOP) + .margin(new DocumentInsets( + capGap(388 - 355, PARTY_LABEL_SIZE, true, 0, false), 0, 0, 0)) + .columns(DocumentRowColumn.fixed(PARTY_TEXT_INDENT), + DocumentRowColumn.weight(1)); + row.addSection(id + "Disc", cell2 -> cell2.spacing(0).add(disc)); + row.addSection(id + "Text", text -> { + text.spacing(0); + text.addParagraph(p -> p + .name(id + "Name") + .text(name) + .textStyle(bold(PARTY_NAME_SIZE, INK)) + .margin(capTop(392 - 388, PARTY_NAME_SIZE, true))); + for (int i = 0; i < addressLines.size() && i < LINE_AT.length; i++) { + String line = addressLines.get(i); + int index = i; + double above = index == 0 + ? capGap(LINE_AT[0] - 392, PARTY_NAME_SIZE, true, BODY_SIZE, false) + : capGap(LINE_AT[index] - LINE_AT[index - 1], BODY_SIZE, false, + BODY_SIZE, false); + double gapAbove = Math.max(0, above); + text.addParagraph(p -> p + .name(id + "AddressLine_" + index) + .text(line) + .textStyle(plain(BODY_SIZE, MUTED)) + .margin(new DocumentInsets(gapAbove, 0, 0, 0))); + } + if (!contact.isBlank()) { + text.addParagraph(p -> { + p.name(id + "Contact").margin(new DocumentInsets(Math.max(0, + capGap(504 - 471, BODY_SIZE, false, BODY_SIZE, false)), 0, 0, 0)); + if (link == null) { + p.text(contact).textStyle(plain(BODY_SIZE, MUTED)); + } else { + p.inlineText(contact, plain(BODY_SIZE, MUTED), link); + } + }); + } + }); + }); + } + + /** The disc colour the issuer's card uses, for the closing band to match. */ + static DocumentColor supplierTone() { + return DISC_SUPPLIER; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianSettlement.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianSettlement.java new file mode 100644 index 000000000..ddd926bd3 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianSettlement.java @@ -0,0 +1,141 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CARD_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CARD_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CARD_STROKE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.HALF; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.RULE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTALS_CARD_BOTTOM; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTALS_CARD_TOP; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTALS_DUE_AT; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTALS_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTALS_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTALS_PAD_R; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTALS_ROW_AT; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTALS_RULE_AT; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTALS_RULE_OVERHANG; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTALS_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTAL_DUE_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.TOTAL_DUE_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.capGap; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.plain; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.topBearing; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.layeredRow; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianWidgets.rule; + +/** + * The totals card, on the right half of the sheet under the table. + */ +final class ObsidianSettlement { + + private ObsidianSettlement() { + } + + /** + * The totals row. + * + * @param page the page flow + * @param totals the summed rows and the grand total + * @param currencyCode the code every figure carries as a mark + */ + static void render(PageFlowBuilder page, InvoiceTotalsBlock totals, String currencyCode) { + page.addRow("TotalsRow", row -> { + row.spacing(CARD_GUTTER).verticalAlign(RowVerticalAlign.TOP).weights(HALF, HALF); + row.addSection("TotalsSpacer", cell -> cell.spacing(0)); + row.addSection("TotalsCard", cell -> renderCard(cell, totals, currencyCode)); + }); + } + + private static void renderCard(SectionBuilder cell, InvoiceTotalsBlock totals, + String currencyCode) { + cell.spacing(0) + .fillColor(SURFACE) + .stroke(CARD_STROKE) + .cornerRadius(CARD_RADIUS) + .padding(new DocumentInsets(0, TOTALS_PAD_R, + Math.max(0, capGap(TOTALS_CARD_BOTTOM - TOTALS_DUE_AT, + TOTAL_DUE_VALUE_SIZE, true, 0, false)), + TOTALS_PAD_L)) + .margin(new DocumentInsets(px(13), 0, 0, 0)) + .keepTogether(); + + List rows = totals.rows(); + for (int i = 0; i < rows.size(); i++) { + InvoiceTotalsBlock.Row entry = rows.get(i); + int index = i; + String name = "TotalsRow_" + index; + double above = index == 0 + ? px(TOTALS_ROW_AT[0] - TOTALS_CARD_TOP) + - topBearing(TOTALS_LABEL_SIZE, false) + : capGap(TOTALS_ROW_AT[1] - TOTALS_ROW_AT[0], + TOTALS_VALUE_SIZE, false, TOTALS_VALUE_SIZE, false); + double gapAbove = Math.max(0, above); + layeredRow(cell, name, row -> { + row.spacing(0) + .margin(new DocumentInsets(gapAbove, 0, 0, 0)) + .weights(HALF, HALF); + row.addParagraph(p -> p + .name(name + "Label") + .text(entry.label()) + .textStyle(plain(TOTALS_LABEL_SIZE, MUTED))); + row.addParagraph(p -> p + .name(name + "Value") + .text(ObsidianText.money(currencyCode, entry.amount())) + .textStyle(plain(TOTALS_VALUE_SIZE, INK)) + .align(TextAlign.RIGHT)); + }); + } + + // Wider than the text it separates, which is the design's own + // arrangement: the card is padded to the text, and the rule reaches back + // out to the card's inner edge on both sides. + cell.addLine(line -> rule(line, "TotalsRule", + innerWidth() + 2 * TOTALS_RULE_OVERHANG, HAIRLINE) + .margin(new DocumentInsets( + Math.max(0, capGap(TOTALS_RULE_AT - TOTALS_ROW_AT[1], + TOTALS_VALUE_SIZE, false, 0, false)), + -TOTALS_RULE_OVERHANG, 0, -TOTALS_RULE_OVERHANG))); + + layeredRow(cell, "TotalDue", row -> { + row.spacing(0) + // Centred, not baseline-aligned: the label's ink band and the + // larger value's share a centre line, measured. + .verticalAlign(RowVerticalAlign.CENTER) + .margin(new DocumentInsets( + Math.max(0, px(TOTALS_DUE_AT - TOTALS_RULE_AT) - RULE_BOX + - topBearing(TOTAL_DUE_VALUE_SIZE, true)), + 0, 0, 0)) + .weights(HALF, HALF); + row.addParagraph(p -> p + .name("TotalDueLabel") + .text(totals.totalLabel()) + .textStyle(bold(TOTAL_DUE_LABEL_SIZE, INK))); + row.addParagraph(p -> p + .name("TotalDueValue") + .text(ObsidianText.money(currencyCode, totals.totalAmount())) + .textStyle(bold(TOTAL_DUE_VALUE_SIZE, ACCENT)) + .align(TextAlign.RIGHT)); + }); + } + + private static double innerWidth() { + return (CONTENT_W - CARD_GUTTER) * HALF - TOTALS_PAD_L - TOTALS_PAD_R; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianStyles.java new file mode 100644 index 000000000..21b176ec9 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianStyles.java @@ -0,0 +1,250 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.font.FontName; + +/** + * Every measurement, colour and type size of the Obsidian invoice. + * + *

      Sizes are solved from ink, not from cap height

      + * + *

      The other presets in this family size their type from a measured cap + * height. This design's own face is not bundled, so a cap-height match would + * still set every string to the wrong width; here each size is solved from the + * measured ink width of the string it sets, and the substitute face's + * own width ratio is applied once. Every size below is named by the string it + * was solved from.

      + * + *

      Positions are cap tops, not box edges

      + * + *

      The design can be measured on where ink starts, and a text box begins above + * its cap band by the face's top bearing. {@link #capTop} and {@link #capGap} + * convert a measured cap position into the margin that puts it there, so the + * numbers in the preset stay the numbers that were measured.

      + */ +final class ObsidianStyles { + + private ObsidianStyles() { + } + + // ------------------------------------------------------------------ + // The page + // ------------------------------------------------------------------ + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + + private static final double PAGE_W = PAGE.width(); + private static final double DESIGN_PX_WIDTH = 1055.0; + private static final double PX = PAGE_W / DESIGN_PX_WIDTH; + + static double px(double designPixels) { + return designPixels * PX; + } + + static final double MARGIN_T = px(46); + static final double MARGIN_L = px(46); + static final double MARGIN_R = px(48); + static final double MARGIN_B_FIRST = px(24); + static final double MARGIN_B_LATER = px(58); + static final double PAGE_NUMBER_BAND = px(20); + + static final DocumentInsets PAGE_MARGIN = + new DocumentInsets(MARGIN_T, MARGIN_R, MARGIN_B_FIRST, MARGIN_L); + + /** + * A continuation page reserves more at the foot than the first, because the + * first page's last block is the closing band and a continuation page's is a + * table row, which would otherwise sit on the enumeration. + */ + static final DocumentInsets CONTINUATION_MARGIN = + new DocumentInsets(MARGIN_T, MARGIN_R, MARGIN_B_LATER, MARGIN_L); + + static final double CONTENT_W = PAGE_W - MARGIN_L - MARGIN_R; + static final double CARD_GUTTER = px(38); + static final double HALF = 0.5; + + // ------------------------------------------------------------------ + // Colour — a dark sheet + // ------------------------------------------------------------------ + + static final DocumentColor PAGE_BG = DocumentColor.rgb(22, 23, 26); + static final DocumentColor SURFACE = DocumentColor.rgb(27, 28, 32); + static final DocumentColor SURFACE_BORDER = DocumentColor.rgb(38, 39, 43); + static final DocumentColor HAIRLINE = DocumentColor.rgb(42, 43, 48); + static final DocumentColor HAIRLINE_STRONG = DocumentColor.rgb(88, 94, 102); + static final DocumentColor INK = DocumentColor.WHITE; + static final DocumentColor MUTED = DocumentColor.rgb(174, 178, 185); + static final DocumentColor ACCENT = DocumentColor.rgb(127, 140, 255); + static final DocumentColor DISC_SUPPLIER = DocumentColor.rgb(114, 80, 226); + static final DocumentColor DISC_CLIENT = DocumentColor.rgb(79, 105, 216); + static final DocumentColor DISC_CLOSING = DocumentColor.rgb(110, 120, 250); + + // ------------------------------------------------------------------ + // Type + // ------------------------------------------------------------------ + + /** + * The design's own face is not bundled. Gothic A1 is the family whose widths + * the sizes below are solved against; the templates artifact carries no fonts + * — register it on the session, or the engine substitutes and every size is + * solved for type that is not there. + */ + static final FontName FACE = FontName.GOTHIC_A1; + + /** The substitute's ink width against the design's, measured across the sheet. */ + private static final double FACE_WIDTH_SPLIT = 0.98; + + /** Gothic A1's line box, ascender, descender and cap heights, read off the TTFs. */ + static final double LINE_BOX = 1.0; + private static final double FACE_ASCENT = 0.7979; + private static final double FACE_DESCENT = 0.2021; + private static final double CAP_REGULAR = 0.7314; + private static final double CAP_BOLD = 0.7725; + private static final double TOP_BEARING_REGULAR = FACE_ASCENT - CAP_REGULAR; + private static final double TOP_BEARING_BOLD = FACE_ASCENT - CAP_BOLD; + + /** A size whose ink reproduces a string measured at {@code solvedDesignPx}. */ + static double sizeForInk(double solvedDesignPx) { + return px(solvedDesignPx * FACE_WIDTH_SPLIT); + } + + static double topBearing(double size, boolean bold) { + return (bold ? TOP_BEARING_BOLD : TOP_BEARING_REGULAR) * size; + } + + static double bottomBearing(double size) { + return FACE_DESCENT * size; + } + + /** The margin that puts a cap top at a measured design y. */ + static DocumentInsets capTop(double capPx, double size, boolean bold) { + return capTop(capPx, size, bold, 0); + } + + /** The same, under a box of a stated height. */ + static DocumentInsets capTop(double capPx, double size, boolean bold, + double precedingBoxHeight) { + return new DocumentInsets( + px(capPx) - topBearing(size, bold) - precedingBoxHeight, 0, 0, 0); + } + + /** The gap that puts the next cap top {@code deltaPx} below the previous one. */ + static double capGap(double deltaPx, double sizeAbove, boolean boldAbove, + double sizeBelow, boolean boldBelow) { + return px(deltaPx) - LINE_BOX * sizeAbove + topBearing(sizeAbove, boldAbove) + - topBearing(sizeBelow, boldBelow); + } + + /** The gap between two blocks, measured between their ink rather than their boxes. */ + static double blockGap(double inkGapPx, double sizeAbove, double sizeBelow) { + return px(inkGapPx) + - (sizeAbove > 0 ? bottomBearing(sizeAbove) : 0) + - (sizeBelow > 0 ? topBearing(sizeBelow, false) : 0); + } + + // Every size is named by the string it was solved from. + static final double WORDMARK_SIZE = sizeForInk(47.5); + static final double TITLE_SIZE = sizeForInk(74.7); + static final double META_LABEL_SIZE = sizeForInk(14.7); + static final double META_NUMBER_SIZE = px(19.9); + static final double META_VALUE_SIZE = sizeForInk(16.6); + static final double PARTY_LABEL_SIZE = sizeForInk(16.1); + static final double PARTY_NAME_SIZE = sizeForInk(17.4); + static final double BODY_SIZE = sizeForInk(17.2); + static final double TABLE_HEAD_SIZE = sizeForInk(16.0); + static final double ITEM_TITLE_SIZE = sizeForInk(16.7); + static final double ITEM_SUB_SIZE = sizeForInk(15.7); + static final double FIGURE_SIZE = sizeForInk(16.9); + static final double TOTALS_LABEL_SIZE = sizeForInk(16.0); + + /** The totals figures are measurably wider than the table's. */ + static final double TOTALS_VALUE_SIZE = sizeForInk(18.3); + + static final double TOTAL_DUE_LABEL_SIZE = sizeForInk(17.5); + static final double TOTAL_DUE_VALUE_SIZE = sizeForInk(32.2); + static final double CARD_HEAD_SIZE = sizeForInk(15.6); + static final double CARD_BODY_SIZE = sizeForInk(15.2); + static final double PAY_LABEL_SIZE = sizeForInk(14.8); + static final double PAY_VALUE_SIZE = sizeForInk(15.5); + static final double CLOSING_SIZE = sizeForInk(15.2); + static final double CLOSING_RIGHT_SIZE = sizeForInk(16.1); + static final double PAGE_NUMBER_SIZE = px(12); + + static DocumentTextStyle style(double size, DocumentColor color, + DocumentTextDecoration decoration) { + return DocumentTextStyle.builder() + .fontName(FACE) + .size(size) + .color(color) + .decoration(decoration) + .build(); + } + + static DocumentTextStyle plain(double size, DocumentColor color) { + return style(size, color, DocumentTextDecoration.DEFAULT); + } + + static DocumentTextStyle bold(double size, DocumentColor color) { + return style(size, color, DocumentTextDecoration.BOLD); + } + + // ------------------------------------------------------------------ + // Rules, cards and discs + // ------------------------------------------------------------------ + + static final double RULE_THIN = px(1.2); + + /** A rule asked for less than a point is laid out as one. */ + static final double RULE_BOX = 1.0; + + static final double CARD_RADIUS = px(12); + static final double CARD_PAD_H = px(24); + static final double CARD_BORDER = px(1.1); + static final DocumentStroke CARD_STROKE = DocumentStroke.of(SURFACE_BORDER, CARD_BORDER); + + static final double DISC_D = px(63); + static final double DISC_GLYPH = px(29); + static final double PARTY_TEXT_INDENT = px(111); + static final double META_COL_W = px(385); + + static final double TOTALS_CARD_TOP = 996; + static final double TOTALS_CARD_BOTTOM = 1142; + static final double[] TOTALS_ROW_AT = {1014, 1048}; + static final double TOTALS_RULE_AT = 1078.5; + static final double TOTALS_DUE_AT = 1097; + + /** The totals card is padded to its text, and the rule reaches back out past it. */ + static final double TOTALS_RULE_OVERHANG = px(7); + static final double TOTALS_PAD_L = px(17) + TOTALS_RULE_OVERHANG; + static final double TOTALS_PAD_R = px(23) + TOTALS_RULE_OVERHANG; + + static final double CARD_ICON_COL = px(117 - 46); + static final double CARD_ICON = px(25); + + // ------------------------------------------------------------------ + // The line-item table + // ------------------------------------------------------------------ + + static final double TABLE_INSET = px(22); + static final double TABLE_W = CONTENT_W - 2 * TABLE_INSET; + static final double[] COLUMN_SHARES = {0.0578, 0.4177, 0.0763, 0.1527, 0.1527, 0.1428}; + static final double CELL_PAD_L = px(2); + static final double CELL_PAD_R = px(10); + + /** + * The table's cells fill and stroke in the card's own surface colour, so the + * table reads as part of the card rather than as a grid drawn on it. The rules + * the design does show are drawn inside each row's own content. + */ + static final DocumentTableStyle CELL_STYLE = DocumentTableStyle.builder() + .fillColor(SURFACE) + .stroke(DocumentStroke.of(SURFACE, RULE_THIN)) + .padding(DocumentInsets.zero()) + .build(); +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianText.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianText.java new file mode 100644 index 000000000..50c01ee03 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianText.java @@ -0,0 +1,83 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.NumberFormat; +import java.util.Currency; +import java.util.Locale; + +/** + * How the Obsidian invoice writes its figures, and the one figure it works out + * for itself. + * + *

      Money is written with the currency's mark against the digits, so every + * figure names its own currency and no column states one. The locale is stated + * rather than inherited, so the same data renders the same sheet on any + * machine.

      + */ +final class ObsidianText { + + private ObsidianText() { + } + + /** + * An amount behind its currency mark. + * + * @param currencyCode the code the invoice is billed in + * @param value the amount + * @return the amount as the sheet prints it + */ + static String money(String currencyCode, BigDecimal value) { + return mark(currencyCode) + amount(value); + } + + /** + * The tax carried on one line. + * + *

      This design gives the tax its own money column, where the model carries + * a rate. The figure is not a second thing to state: a line already gives the + * quantity, the unit price and the total it comes to, so the tax is the + * difference between what was charged and what the goods cost. Reading it off + * the line rather than asking for it again is also what keeps the column and + * the total consistent when either moves.

      + * + * @param currencyCode the code the invoice is billed in + * @param quantity how much was delivered + * @param unitPrice the price per unit + * @param amount the line total + * @return the tax as the sheet prints it + */ + static String lineTax(String currencyCode, BigDecimal quantity, BigDecimal unitPrice, + BigDecimal amount) { + BigDecimal net = quantity.multiply(unitPrice); + BigDecimal tax = amount.subtract(net).max(BigDecimal.ZERO); + return money(currencyCode, tax.setScale(2, RoundingMode.HALF_UP)); + } + + /** A count, bare, with no fraction when it has none. */ + static String quantity(BigDecimal value) { + BigDecimal stripped = value.stripTrailingZeros(); + return stripped.scale() <= 0 + ? stripped.toBigInteger().toString() + : stripped.toPlainString(); + } + + private static String mark(String currencyCode) { + if (currencyCode == null || currencyCode.isBlank()) { + return ""; + } + try { + return Currency.getInstance(currencyCode.trim()).getSymbol(Locale.ENGLISH); + } catch (IllegalArgumentException notACurrency) { + return currencyCode.trim(); + } + } + + private static String amount(BigDecimal value) { + NumberFormat format = NumberFormat.getNumberInstance(Locale.ENGLISH); + format.setGroupingUsed(true); + format.setMinimumFractionDigits(2); + format.setMaximumFractionDigits(2); + return format.format(value); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianWidgets.java new file mode 100644 index 000000000..bdb9dd1af --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianWidgets.java @@ -0,0 +1,122 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.LineBuilder; +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.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +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.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.svg.SvgIcon; + +import java.util.Locale; +import java.util.function.Consumer; + +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.DISC_GLYPH; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.PARTY_NAME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.RULE_THIN; +import static com.demcha.compose.document.templates.invoice.presets.ObsidianStyles.bold; + +/** + * The shapes the Obsidian invoice repeats: a horizontal pair inside a column, a + * filled disc, a hairline, and the initials a party's disc falls back to. + */ +final class ObsidianWidgets { + + private ObsidianWidgets() { + } + + /** + * A row wrapped in a layer, so it can sit inside a row cell. + * + *

      A row nested in a row cell is refused by the layout compiler, and + * through a section too. A row wrapped in a LayerStack layer lays out + * horizontally there.

      + */ + static void layeredRow(SectionBuilder parent, String name, Consumer spec) { + SectionBuilder holder = new SectionBuilder(); + holder.name(name + "Holder"); + holder.addRow(name, spec); + DocumentNode node = holder.build(); + parent.addLayerStack(stack -> stack + .name(name + "Layer") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** A hairline of the sheet's own weight. */ + static LineBuilder rule(LineBuilder line, String name, double width, DocumentColor color) { + return line.name(name).horizontal(width).thickness(RULE_THIN).color(color); + } + + /** A packaged mark, boxed so it can sit in a row cell or inside a disc. */ + static DocumentNode glyph(SvgIcon icon, String name, double size, HorizontalAlign align) { + return new SectionBuilder() + .name("Glyph_" + name) + .spacing(0) + .addSvgIcon(icon, size, align) + .build(); + } + + /** A party's disc, carrying a mark. */ + static DocumentNode disc(String name, DocumentColor fill, DocumentNode content, double diameter) { + return new ShapeContainerBuilder() + .name(name) + .circle(diameter) + .fillColor(fill) + .center(content) + .build(); + } + + /** A party's disc, carrying initials. */ + static DocumentNode initialsDisc(String name, DocumentColor fill, String initials) { + return disc(name, fill, new ParagraphBuilder() + .name(name + "Initials") + .text(initials) + .textStyle(bold(PARTY_NAME_SIZE, INK)) + .align(TextAlign.CENTER) + .build(), DISC_D); + } + + /** A mark's disc at the party size. */ + static DocumentNode glyphDisc(String name, DocumentColor fill, SvgIcon icon) { + return disc(name, fill, glyph(icon, name, DISC_GLYPH, HorizontalAlign.CENTER), DISC_D); + } + + /** + * The initials a disc shows when there is no mark to show instead. + * + *

      The first letter of each of the first two words, which is what the + * design's own client disc is. A name of one word gives one letter, and a + * name of none gives nothing — the disc is still drawn, because it is the + * design's shape and not a container for the letters.

      + * + * @param name the party's name + * @return up to two upper-case letters + */ + static String initials(String name) { + if (name == null || name.isBlank()) { + return ""; + } + StringBuilder initials = new StringBuilder(); + for (String word : name.trim().split("\\s+")) { + if (!word.isEmpty() && Character.isLetter(word.charAt(0))) { + initials.append(Character.toUpperCase(word.charAt(0))); + } + if (initials.length() == 2) { + break; + } + } + return initials.toString().toUpperCase(Locale.ENGLISH); + } + + /** Gives a paragraph a target when there is one. */ + static ParagraphBuilder linked(ParagraphBuilder paragraph, DocumentLinkOptions link) { + return link == null ? paragraph : paragraph.link(link); + } +} diff --git a/templates/src/main/resources/templates/invoice/obsidian/icons/notes.svg b/templates/src/main/resources/templates/invoice/obsidian/icons/notes.svg new file mode 100644 index 000000000..bb98a3fd9 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/obsidian/icons/notes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/obsidian/icons/payment.svg b/templates/src/main/resources/templates/invoice/obsidian/icons/payment.svg new file mode 100644 index 000000000..f5c17f96b --- /dev/null +++ b/templates/src/main/resources/templates/invoice/obsidian/icons/payment.svg @@ -0,0 +1 @@ + \ No newline at end of file From 23cf2eb89569605185c821c5e2f87f414123bee3 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 20:50:30 +0100 Subject: [PATCH 40/85] feat(templates): add a commerce invoice preset (#651) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MerchantInvoice ports the rendered layout of a published standalone template onto the existing StructuredInvoiceData model: a lockup against the title over a short accent rule, the supplier's details beside the invoice's metadata, two addressed parties on filled discs, a line-item table whose rows are bordered boxes, a bank panel beside the totals and the due-by card, a closing note, and an identity band closing the sheet on a marked tile. Rendered against the frozen original with the same data the text layers are identical — all 225 words in the same place — and the sheet above the identity band carries no differing pixel. What differs is the two marks, both the caller's, the enumeration's face, and the social row below. The social row is deliberately not ported. The design closes with three discs carrying social-platform marks; those marks belong to their platforms, and the templates artifact does not redistribute other companies' trademarks, so neither they nor the rule that divided them off are drawn. The band keeps the tile and the issuer's identity, which is what identifies the sheet. Each table row is one cell. A cell's stroke draws all four of its edges, which is exactly what this design's rows are — a soft box round each and no interior verticals — so a row is a single cell spanning every column with the five columns composed inside it. The supplier's contact rows are the one block whose line box is not its type: an inline mark taller than the text sets the box, so a pitch measured from the text and solved against the text lands short by the difference. Those pitches are solved against the mark. A quantity of nothing prints the design's own dash rather than a zero, because a zero in a quantity column reads as none delivered rather than as not counted. Tests: a smoke test covering the dash, the unknown-mark data error, a line with no mark, an invoice that ships nowhere, where the currency is stated, addresses being reachable, and pagination; an exact layout snapshot; and a pixel baseline. One fixture feeds all three. Reactor gate green. --- CHANGELOG.md | 31 + knowledge/api/templates.json | 42 +- knowledge/api/templates.md | 6 +- .../presets/MerchantInvoiceFixtures.java | 109 + .../MerchantInvoiceLayoutSnapshotTest.java | 21 + .../presets/MerchantInvoiceSmokeTest.java | 191 + .../MerchantInvoiceVisualParityTest.java | 32 + .../invoice/merchant_invoice_layout.json | 5807 +++++++++++++++++ .../merchant_invoice-page-0.png | Bin 0 -> 86143 bytes .../invoice/presets/MerchantClosing.java | 257 + .../invoice/presets/MerchantIcons.java | 77 + .../invoice/presets/MerchantInvoice.java | 177 + .../invoice/presets/MerchantLines.java | 224 + .../invoice/presets/MerchantMasthead.java | 252 + .../invoice/presets/MerchantParties.java | 142 + .../invoice/presets/MerchantSettlement.java | 312 + .../invoice/presets/MerchantStyles.java | 358 + .../invoice/presets/MerchantText.java | 59 + .../templates/invoice/merchant/icons/bag.svg | 1 + .../templates/invoice/merchant/icons/bank.svg | 1 + .../invoice/merchant/icons/bill-to.svg | 1 + .../invoice/merchant/icons/calendar.svg | 1 + .../invoice/merchant/icons/email.svg | 1 + .../invoice/merchant/icons/globe.svg | 1 + .../templates/invoice/merchant/icons/info.svg | 1 + .../invoice/merchant/icons/phone.svg | 1 + .../invoice/merchant/icons/ship-to.svg | 1 + .../invoice/merchant/icons/support.svg | 1 + .../templates/invoice/merchant/icons/tag.svg | 1 + .../invoice/merchant/icons/website.svg | 1 + 30 files changed, 8104 insertions(+), 5 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/merchant_invoice_layout.json create mode 100644 qa/src/test/resources/visual-baselines/invoice-v2-layered/merchant_invoice-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoice.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantLines.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantParties.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantSettlement.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantText.java create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/bag.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/bank.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/bill-to.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/calendar.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/email.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/globe.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/info.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/phone.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/ship-to.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/support.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/tag.svg create mode 100644 templates/src/main/resources/templates/invoice/merchant/icons/website.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 54d5a8d23..29e37f08b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -168,6 +168,37 @@ follow semantic versioning; release dates are ISO 8601. recognisable; a number is not — dates, reference numbers and amounts all look like one — so only the structured contact field is linked. +- **A commerce invoice preset: `MerchantInvoice`.** A lockup against the title over a + short accent rule, the supplier's details beside the invoice's metadata, two addressed + parties on filled discs, a line-item table whose rows are bordered boxes, a bank panel + beside the totals and the due-by card, a closing note, and an identity band closing the + sheet on a marked tile. Ships as `invoice.presets.MerchantInvoice` on the existing + `StructuredInvoiceData` model, porting the rendered layout of a published standalone + template: rendered against the frozen original with the same data the text layers are + **identical, all 225 words in the same place**, and the sheet above the identity band + carries **no differing pixel**. What differs is the two marks — the masthead lockup and + the band's tile, both the caller's — the enumeration's face, and the social row below. +

      + **The social row is deliberately not ported.** The design closes with three discs + carrying social-platform marks. Those marks belong to their platforms, and the templates + artifact does not redistribute other companies' trademarks, so neither they nor the rule + that divided them off are drawn; the band keeps the tile and the issuer's identity, which + is what identifies the sheet. This is stated on the preset rather than left to be + noticed. +

      + Each table row is one cell. A cell's stroke draws all four of its edges, which is + exactly what this design's rows are — a soft box round each, no interior verticals — so + a row is a single cell spanning every column with the five columns composed inside it. +

      + The supplier's contact rows are the one block whose line box is not its type: an inline + mark taller than the text sets the box, so a pitch measured from the text and solved + against the text lands short by the difference. Those pitches are solved against the + mark. A quantity of nothing prints the design's own dash rather than a zero, because a + zero in a quantity column reads as none delivered rather than as not counted. Guarded by + a smoke test (including the dash, the unknown-mark data error, a line with no mark, an + invoice that ships nowhere, where the currency is stated, and pagination), an exact + layout snapshot, and a pixel baseline — all three fed by one fixture. + - **A dark invoice preset: `ObsidianInvoice`.** The first dark sheet in the library: a wordmark over the document's name against a ruled metadata stack, the issuer and the billed party on filled discs in cards of their own, a line-item table in a third, the diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index b6fd1866a..b410f00a7 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,10 +22,10 @@ "graph-compose-testing:sources" ], "counts": { - "types": 221, - "methods": 1231, - "constants": 172, - "generated": 655 + "types": 222, + "methods": 1232, + "constants": 174, + "generated": 657 }, "packages": [ { @@ -20882,6 +20882,40 @@ } ] }, + { + "name": "MerchantInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.MerchantInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "MeteredInvoice", "binaryName": "com.demcha.compose.document.templates.invoice.presets.MeteredInvoice", diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index f3c6ffb47..8c5449e55 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 221 · methods: 1231 · constants: 172 · compiler-generated members: 655 +Types: 222 · methods: 1232 · constants: 174 · compiler-generated members: 657 ## com.demcha.compose.document.templates.api @@ -1755,6 +1755,10 @@ Types: 221 · methods: 1231 · constants: 172 · compiler-generated members: 655 - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME` +### MerchantInvoice (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME` + ### MeteredInvoice (class) - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceFixtures.java new file mode 100644 index 000000000..adbe400e5 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceFixtures.java @@ -0,0 +1,109 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * The one invoice the Merchant preset's tests render. + * + *

      Both gates read it: the exact layout snapshot and the pixel baseline. One + * fixture behind both is what makes the two comparable — a shift the snapshot + * catches is a shift in the same document the baseline was recorded from.

      + * + *

      One of its lines counts nothing, because a fee charged as it falls rather + * than per unit is what the design's dash is for and a fixture without one would + * not exercise it.

      + */ +final class MerchantInvoiceFixtures { + + private MerchantInvoiceFixtures() { + } + + /** A month of commerce-platform subscription, billed to one merchant. */ + static StructuredInvoiceData invoice() { + return StructuredInvoiceData.builder() + .brand(new InvoiceBrand(null, "Coastline", "", "", "C", "")) + .supplier(new InvoiceContactBlock( + "Coastline Commerce Inc.", + List.of("150 Elgin Street, 8th Floor", "Ottawa, ON K2P 1L4", "Canada"), + "+1 613-555-0142", + "billing@coastline.example", + "www.coastline.example", + "", "", + "VAT ID:", "CA 813 9020 285 RT0001")) + .masthead(new InvoiceMasthead("INVOICE", List.of( + new InvoiceMasthead.Entry("Invoice Number:", "INV-2026-000789", true), + new InvoiceMasthead.Entry("Invoice Date:", "27 May 2026", false), + new InvoiceMasthead.Entry("Due Date:", "26 June 2026", false), + new InvoiceMasthead.Entry("Billing Period:", "01 May 2026 – 31 May 2026", false), + new InvoiceMasthead.Entry("Payment Terms:", "Net 30 Days", false), + new InvoiceMasthead.Entry("Currency:", "USD", false)))) + .billTo(new InvoiceRecipient("BILL TO", "Bright Future Ltd.", "", + List.of("45 King Street", "Manchester, M2 4WU", "United Kingdom"), + "", "", "VAT ID:", "GB 987 6543 21")) + .shipTo(new InvoiceRecipient("SHIP TO", "Bright Future Ltd.", "", + List.of("Warehouse 7", "North Industrial Estate", + "Manchester, M2 4WU", "United Kingdom"), + "", "", "", "")) + .serviceLines(new InvoiceServiceLines( + new InvoiceServiceLines.Columns("", "DESCRIPTION", "PLAN / SERVICE", + "QTY", "UNIT PRICE", "AMOUNT"), + lines())) + .totals(new InvoiceTotalsBlock(List.of( + new InvoiceTotalsBlock.Row("Subtotal", new BigDecimal("444.00")), + new InvoiceTotalsBlock.Row("Tax (0%)", new BigDecimal("0.00"))), + "TOTAL DUE", new BigDecimal("444.00"))) + .payment(new InvoicePaymentBlock("PAYMENT DETAILS", List.of( + new InvoicePaymentBlock.Field("Bank Name:", "Harbour Bank of Canada"), + new InvoicePaymentBlock.Field("Account Name:", "Coastline Commerce Inc."), + new InvoicePaymentBlock.Field("Account Number:", "1001-4267-153"), + new InvoicePaymentBlock.Field("SWIFT Code:", "HRBRCAT2"), + new InvoicePaymentBlock.Field("Institution Number:", "003"), + new InvoicePaymentBlock.Field("Transit Number:", "00016"), + new InvoicePaymentBlock.Field("Account Type:", "CAD Account"), + new InvoicePaymentBlock.Field("Remittance Email:", + "billing@coastline.example"), + new InvoicePaymentBlock.Field("Reference:", "INV-2026-000789")), + "Please include the invoice number\nin your payment reference.", + "PAYMENT DUE BY", "26 June 2026", "", "")) + .notes(new InvoiceNotesBlock("Thank you for choosing Coastline.", + List.of("If you have any questions about this invoice," + + " please contact us at billing@coastline.example."), + "billing@coastline.example", "")) + .currencyCode("USD") + .build(); + } + + private static List lines() { + List lines = new ArrayList<>(); + lines.add(line(1, "Coastline Advanced", "Monthly subscription", "Advanced Plan", + "1", "399.00", "399.00", "bag")); + // Charged as it falls rather than per unit, which is what the dash is for. + lines.add(line(2, "Payment Processing", "Transaction fee", "As per usage", + "0", "0.00", "0.00", "tag")); + lines.add(line(3, "Additional Staff Accounts", "Staff account", "Additional", + "3", "15.00", "45.00", "globe")); + lines.add(line(4, "Priority Support", "24/7 support", "Included", + "1", "0.00", "0.00", "support")); + return lines; + } + + private static InvoiceServiceLines.Line line(int number, String title, String subtitle, + String plan, String quantity, + String unitPrice, String amount, String icon) { + return new InvoiceServiceLines.Line(number, title, subtitle, plan, + new BigDecimal(quantity), "", new BigDecimal(unitPrice), + new BigDecimal(amount), "", icon, ""); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceLayoutSnapshotTest.java new file mode 100644 index 000000000..2514204b9 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceLayoutSnapshotTest.java @@ -0,0 +1,21 @@ +package com.demcha.compose.document.templates.invoice.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; + +class MerchantInvoiceLayoutSnapshotTest { + + @Test + void theInvoiceMatchesItsLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + MerchantInvoice.create().compose(session, MerchantInvoiceFixtures.invoice()); + assertThat(session.layoutSnapshot().totalPages()).as("total pages").isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "merchant_invoice_layout", "invoice"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceSmokeTest.java new file mode 100644 index 000000000..076c4b1d0 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceSmokeTest.java @@ -0,0 +1,191 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +class MerchantInvoiceSmokeTest { + + // -- what the sheet says ------------------------------------------- + + @Test + void theSheetCarriesTheIssuerTheCustomerAndEveryLine() throws Exception { + String text = textOf(render(MerchantInvoiceFixtures.invoice())); + assertThat(text) + .contains("Coastline Commerce Inc.") + .contains("Bright Future Ltd.") + .contains("Coastline Advanced") + .contains("Priority Support") + .contains("TOTAL DUE"); + } + + @Test + void theCurrencyIsStatedInEachMoneyCaptionAndOnceMoreOnTheTotal() throws Exception { + String text = textOf(render(MerchantInvoiceFixtures.invoice())); + assertThat(text).contains("UNIT PRICE (USD)").contains("AMOUNT (USD)"); + // The grand total stands under no caption, so it names its own currency. + assertThat(text).contains("USD 444.00"); + // The figures under the captions are bare. + assertThat(text).contains("399.00").doesNotContain("USD 399.00"); + } + + @Test + void aLineThatCountsNothingPrintsADashRatherThanAZero() throws Exception { + String text = textOf(render(MerchantInvoiceFixtures.invoice())); + // A zero in a quantity column reads as none delivered rather than as not + // counted, which is a different thing to tell a reader. + assertThat(text).contains("—"); + } + + // -- what a reader can act on -------------------------------------- + + @Test + void everyAddressTheSheetPrintsIsReachable() throws Exception { + List targets = linkTargets(render(MerchantInvoiceFixtures.invoice())); + assertThat(targets) + .contains("mailto:billing@coastline.example") + // A site printed without a scheme still needs one to open. + .contains("https://www.coastline.example") + .contains("tel:+16135550142"); + } + + @Test + void theClosingNoteLinksTheAddressInsideItsSentence() throws Exception { + byte[] pdf = render(MerchantInvoiceFixtures.invoice()); + assertThat(textOf(pdf)).contains("If you have any questions about this invoice"); + assertThat(linkTargets(pdf)) + .filteredOn(t -> t.equals("mailto:billing@coastline.example")) + // Once in the supplier block, once in the payment panel, once in + // the note. + .hasSizeGreaterThanOrEqualTo(3); + } + + // -- what the document chooses, and what it may not ---------------- + + @Test + void aLineThatNamesNoMarkStillRenders() throws Exception { + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + MerchantInvoiceFixtures.invoice().serviceLines().columns(), + List.of(line("Coastline Advanced", "")))); + assertThat(textOf(render(data))).contains("Coastline Advanced"); + } + + @Test + void anUnknownMarkIsReportedAsADataErrorNamingTheSet() { + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + MerchantInvoiceFixtures.invoice().serviceLines().columns(), + List.of(line("Coastline Advanced", "rocket")))); + assertThatThrownBy(() -> render(data)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("rocket") + .hasMessageContaining("bag"); + } + + @Test + void anInvoiceThatShipsNowhereLeavesTheColumnEmptyRatherThanFailing() throws Exception { + StructuredInvoiceData base = MerchantInvoiceFixtures.invoice(); + StructuredInvoiceData data = StructuredInvoiceData.builder() + .brand(base.brand()).supplier(base.supplier()).masthead(base.masthead()) + .billTo(base.billTo()) + .serviceLines(base.serviceLines()).totals(base.totals()) + .payment(base.payment()).notes(base.notes()) + .currencyCode(base.currencyCode()).build(); + String text = textOf(render(data)); + assertThat(text).contains("BILL TO").doesNotContain("SHIP TO"); + } + + // -- how it flows --------------------------------------------------- + + @Test + void theDesignsOwnLineCountIsOneSheet() throws Exception { + assertThat(pagesOf(MerchantInvoiceFixtures.invoice())).isEqualTo(1); + } + + @Test + void enoughLinesPaginateAndTheHeaderComesBackWithThem() throws Exception { + List many = new ArrayList<>(); + for (int i = 1; i <= 30; i++) { + many.add(line("Coastline Advanced " + i, "bag")); + } + StructuredInvoiceData data = withLines(new InvoiceServiceLines( + MerchantInvoiceFixtures.invoice().serviceLines().columns(), many)); + assertThat(pagesOf(data)).isGreaterThan(1); + + String text = textOf(render(data)); + // The caps header is repeated, so it appears once per page the table reaches. + assertThat(text.split("PLAN / SERVICE", -1).length - 1).isGreaterThan(1); + } + + // -- helpers --------------------------------------------------------- + + private static InvoiceServiceLines.Line line(String title, String icon) { + return new InvoiceServiceLines.Line(1, title, "Monthly subscription", "Advanced Plan", + BigDecimal.ONE, "", new BigDecimal("399.00"), + new BigDecimal("399.00"), "", icon, ""); + } + + private static byte[] render(StructuredInvoiceData data) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + MerchantInvoice.create().compose(session, data); + 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); + } + } + + private static int pagesOf(StructuredInvoiceData data) throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + MerchantInvoice.create().compose(session, data); + return session.layoutSnapshot().totalPages(); + } + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + private static StructuredInvoiceData withLines(InvoiceServiceLines lines) { + StructuredInvoiceData base = MerchantInvoiceFixtures.invoice(); + return StructuredInvoiceData.builder() + .brand(base.brand()).supplier(base.supplier()).masthead(base.masthead()) + .billTo(base.billTo()).shipTo(base.shipTo()) + .serviceLines(lines).totals(base.totals()) + .payment(base.payment()).notes(base.notes()) + .currencyCode(base.currencyCode()).build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceVisualParityTest.java new file mode 100644 index 000000000..7494319e8 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoiceVisualParityTest.java @@ -0,0 +1,32 @@ +package com.demcha.compose.document.templates.invoice.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; + +class MerchantInvoiceVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "invoice-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()) { + MerchantInvoice.create().compose(document, MerchantInvoiceFixtures.invoice()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("merchant_invoice", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/merchant_invoice_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/merchant_invoice_layout.json new file mode 100644 index 000000000..9b4d922d5 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/merchant_invoice_layout.json @@ -0,0 +1,5807 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 554.047, + "innerHeight" : 815.369, + "margin" : { + "top" : 23.135, + "right" : 21.462, + "bottom" : 3.386, + "left" : 19.767 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "MerchantInvoice[0]", + "entityName" : "MerchantInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 19.767, + "computedY" : 3.919, + "placementX" : 19.767, + "placementY" : 3.919, + "placementWidth" : 554.047, + "placementHeight" : 814.836, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 814.836, + "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" : "MerchantInvoice[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 19.767, + "computedY" : 778.507, + "placementX" : 19.767, + "placementY" : 778.507, + "placementWidth" : 554.047, + "placementHeight" : 40.248, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 40.248, + "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" : "MerchantInvoice[0]/Masthead[0]/BrandLockup[0]", + "entityName" : "BrandLockup", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 19.767, + "computedY" : 808.199, + "placementX" : 19.767, + "placementY" : 808.199, + "placementWidth" : 48.662, + "placementHeight" : 10.556, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.662, + "contentHeight" : 10.556, + "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" : "MerchantInvoice[0]/Masthead[0]/BrandLockup[0]/BrandWordmark[0]", + "entityName" : "BrandWordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Masthead[0]/BrandLockup[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 20.897, + "computedY" : 808.199, + "placementX" : 20.897, + "placementY" : 808.199, + "placementWidth" : 47.532, + "placementHeight" : 10.556, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.532, + "contentHeight" : 10.556, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 1.13 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/Masthead[0]/InvoiceTitle[1]", + "entityName" : "InvoiceTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 145.148, + "computedY" : 778.507, + "placementX" : 145.148, + "placementY" : 778.507, + "placementWidth" : 428.666, + "placementHeight" : 36.665, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 428.666, + "contentHeight" : 36.665, + "margin" : { + "top" : 3.583, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/TitleRule[1]", + "entityName" : "TitleRule", + "entityKind" : "LineNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 542.187, + "computedY" : 771.582, + "placementX" : 542.187, + "placementY" : 771.582, + "placementWidth" : 31.628, + "placementHeight" : 1.467, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.628, + "contentHeight" : 1.467, + "margin" : { + "top" : 5.458, + "right" : 0.0, + "bottom" : 0.0, + "left" : 522.419 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/IdentityRow[2]", + "entityName" : "IdentityRow", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 19.767, + "computedY" : 620.421, + "placementX" : 19.767, + "placementY" : 620.421, + "placementWidth" : 554.047, + "placementHeight" : 139.747, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 139.747, + "margin" : { + "top" : 11.414, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]", + "entityName" : "SupplierColumn", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 19.767, + "computedY" : 620.421, + "placementX" : 19.767, + "placementY" : 620.421, + "placementWidth" : 137.688, + "placementHeight" : 139.747, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 137.688, + "contentHeight" : 139.747, + "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" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierName[0]", + "entityName" : "SupplierName", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 19.767, + "computedY" : 744.238, + "placementX" : 19.767, + "placementY" : 744.238, + "placementWidth" : 125.919, + "placementHeight" : 10.556, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 125.919, + "contentHeight" : 10.556, + "margin" : { + "top" : 5.375, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierAddress[1]", + "entityName" : "SupplierAddress", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 19.767, + "computedY" : 699.983, + "placementX" : 19.767, + "placementY" : 699.983, + "placementWidth" : 104.653, + "placementHeight" : 37.075, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.653, + "contentHeight" : 37.075, + "margin" : { + "top" : 7.18, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierAddress[1]/SupplierAddress_0[0]", + "entityName" : "SupplierAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierAddress[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 19.767, + "computedY" : 728.197, + "placementX" : 19.767, + "placementY" : 728.197, + "placementWidth" : 104.653, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.653, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierAddress[1]/SupplierAddress_1[1]", + "entityName" : "SupplierAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierAddress[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 19.767, + "computedY" : 714.09, + "placementX" : 19.767, + "placementY" : 714.09, + "placementWidth" : 81.737, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 81.737, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierAddress[1]/SupplierAddress_2[2]", + "entityName" : "SupplierAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierAddress[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 19.767, + "computedY" : 699.983, + "placementX" : 19.767, + "placementY" : 699.983, + "placementWidth" : 30.474, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.474, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierContact[2]", + "entityName" : "SupplierContact", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 19.767, + "computedY" : 641.102, + "placementX" : 19.767, + "placementY" : 641.102, + "placementWidth" : 119.683, + "placementHeight" : 42.325, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.683, + "contentHeight" : 42.325, + "margin" : { + "top" : 16.556, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierContact[2]/SupplierContactWebsite[0]", + "entityName" : "SupplierContactWebsite", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierContact[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 19.767, + "computedY" : 673.266, + "placementX" : 19.767, + "placementY" : 673.266, + "placementWidth" : 109.543, + "placementHeight" : 10.161, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.543, + "contentHeight" : 10.161, + "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" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierContact[2]/SupplierContactEmail[1]", + "entityName" : "SupplierContactEmail", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierContact[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 19.767, + "computedY" : 657.184, + "placementX" : 19.767, + "placementY" : 657.184, + "placementWidth" : 119.683, + "placementHeight" : 10.161, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.683, + "contentHeight" : 10.161, + "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" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierContact[2]/SupplierContactPhone[2]", + "entityName" : "SupplierContactPhone", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierContact[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 19.767, + "computedY" : 641.102, + "placementX" : 19.767, + "placementY" : 641.102, + "placementWidth" : 87.149, + "placementHeight" : 10.161, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.149, + "contentHeight" : 10.161, + "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" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]/SupplierTaxId[3]", + "entityName" : "SupplierTaxId", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/SupplierColumn[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 19.767, + "computedY" : 620.421, + "placementX" : 19.767, + "placementY" : 620.421, + "placementWidth" : 137.688, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 137.688, + "contentHeight" : 8.861, + "margin" : { + "top" : 11.82, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/IdentityRow[2]/IdentityColumnDivider[1]", + "entityName" : "IdentityColumnDivider", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 297.073, + "computedY" : 620.793, + "placementX" : 297.073, + "placementY" : 620.793, + "placementWidth" : 1.13, + "placementHeight" : 139.375, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.13, + "contentHeight" : 139.375, + "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" : "MerchantInvoice[0]/IdentityRow[2]/IdentityColumnDivider[1]/IdentityColumnDivider[0]", + "entityName" : "IdentityColumnDivider", + "entityKind" : "LineNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/IdentityColumnDivider[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 297.073, + "computedY" : 620.793, + "placementX" : 297.073, + "placementY" : 620.793, + "placementWidth" : 1.13, + "placementHeight" : 139.375, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.13, + "contentHeight" : 139.375, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]", + "entityName" : "MetaColumn", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 298.203, + "computedY" : 630.014, + "placementX" : 298.203, + "placementY" : 630.014, + "placementWidth" : 275.611, + "placementHeight" : 123.972, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 275.611, + "contentHeight" : 123.972, + "margin" : { + "top" : 6.182, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 36.711 + } + }, { + "path" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_0Layer[0]", + "entityName" : "MetaRow_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 334.913, + "computedY" : 745.125, + "placementX" : 334.913, + "placementY" : 745.125, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]", + "entityName" : "MetaRow_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_0Layer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 334.913, + "computedY" : 745.125, + "placementX" : 334.913, + "placementY" : 745.125, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]/MetaRow_0[0]", + "entityName" : "MetaRow_0", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 334.913, + "computedY" : 745.125, + "placementX" : 334.913, + "placementY" : 745.125, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]/MetaRow_0[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]/MetaRow_0[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 334.913, + "computedY" : 745.125, + "placementX" : 334.913, + "placementY" : 745.125, + "placementWidth" : 65.734, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 65.734, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]/MetaRow_0[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_0Layer[0]/MetaRow_0Holder[0]/MetaRow_0[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 436.573, + "computedY" : 745.125, + "placementX" : 436.573, + "placementY" : 745.125, + "placementWidth" : 73.177, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 73.177, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_1Layer[1]", + "entityName" : "MetaRow_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 334.913, + "computedY" : 722.102, + "placementX" : 334.913, + "placementY" : 722.102, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]", + "entityName" : "MetaRow_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_1Layer[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 334.913, + "computedY" : 722.102, + "placementX" : 334.913, + "placementY" : 722.102, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]/MetaRow_1[0]", + "entityName" : "MetaRow_1", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 334.913, + "computedY" : 722.102, + "placementX" : 334.913, + "placementY" : 722.102, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]/MetaRow_1[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]/MetaRow_1[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 334.913, + "computedY" : 722.102, + "placementX" : 334.913, + "placementY" : 722.102, + "placementWidth" : 52.725, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.725, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]/MetaRow_1[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_1Layer[1]/MetaRow_1Holder[0]/MetaRow_1[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 436.573, + "computedY" : 722.102, + "placementX" : 436.573, + "placementY" : 722.102, + "placementWidth" : 50.838, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.838, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_2Layer[2]", + "entityName" : "MetaRow_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 334.913, + "computedY" : 699.08, + "placementX" : 334.913, + "placementY" : 699.08, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]", + "entityName" : "MetaRow_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_2Layer[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 334.913, + "computedY" : 699.08, + "placementX" : 334.913, + "placementY" : 699.08, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]/MetaRow_2[0]", + "entityName" : "MetaRow_2", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 334.913, + "computedY" : 699.08, + "placementX" : 334.913, + "placementY" : 699.08, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]/MetaRow_2[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]/MetaRow_2[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 334.913, + "computedY" : 699.08, + "placementX" : 334.913, + "placementY" : 699.08, + "placementWidth" : 40.124, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.124, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]/MetaRow_2[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_2Layer[2]/MetaRow_2Holder[0]/MetaRow_2[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 436.573, + "computedY" : 699.08, + "placementX" : 436.573, + "placementY" : 699.08, + "placementWidth" : 53.08, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 53.08, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_3Layer[3]", + "entityName" : "MetaRow_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 334.913, + "computedY" : 676.058, + "placementX" : 334.913, + "placementY" : 676.058, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]", + "entityName" : "MetaRow_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_3Layer[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 334.913, + "computedY" : 676.058, + "placementX" : 334.913, + "placementY" : 676.058, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]/MetaRow_3[0]", + "entityName" : "MetaRow_3", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 334.913, + "computedY" : 676.058, + "placementX" : 334.913, + "placementY" : 676.058, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]/MetaRow_3[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]/MetaRow_3[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 334.913, + "computedY" : 676.058, + "placementX" : 334.913, + "placementY" : 676.058, + "placementWidth" : 56.739, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.739, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]/MetaRow_3[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_3Layer[3]/MetaRow_3Holder[0]/MetaRow_3[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 436.573, + "computedY" : 676.058, + "placementX" : 436.573, + "placementY" : 676.058, + "placementWidth" : 110.528, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.528, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_4Layer[4]", + "entityName" : "MetaRow_4Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 334.913, + "computedY" : 653.036, + "placementX" : 334.913, + "placementY" : 653.036, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]", + "entityName" : "MetaRow_4Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_4Layer[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 334.913, + "computedY" : 653.036, + "placementX" : 334.913, + "placementY" : 653.036, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]/MetaRow_4[0]", + "entityName" : "MetaRow_4", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 334.913, + "computedY" : 653.036, + "placementX" : 334.913, + "placementY" : 653.036, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]/MetaRow_4[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]/MetaRow_4[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 334.913, + "computedY" : 653.036, + "placementX" : 334.913, + "placementY" : 653.036, + "placementWidth" : 65.202, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 65.202, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]/MetaRow_4[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_4Layer[4]/MetaRow_4Holder[0]/MetaRow_4[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 436.573, + "computedY" : 653.036, + "placementX" : 436.573, + "placementY" : 653.036, + "placementWidth" : 48.268, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.268, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_5Layer[5]", + "entityName" : "MetaRow_5Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 334.913, + "computedY" : 630.014, + "placementX" : 334.913, + "placementY" : 630.014, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]", + "entityName" : "MetaRow_5Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_5Layer[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 334.913, + "computedY" : 630.014, + "placementX" : 334.913, + "placementY" : 630.014, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]/MetaRow_5[0]", + "entityName" : "MetaRow_5", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 334.913, + "computedY" : 630.014, + "placementX" : 334.913, + "placementY" : 630.014, + "placementWidth" : 238.901, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 238.901, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]/MetaRow_5[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]/MetaRow_5[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 334.913, + "computedY" : 630.014, + "placementX" : 334.913, + "placementY" : 630.014, + "placementWidth" : 38.875, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.875, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]/MetaRow_5[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/IdentityRow[2]/MetaColumn[2]/MetaRow_5Layer[5]/MetaRow_5Holder[0]/MetaRow_5[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 436.573, + "computedY" : 630.014, + "placementX" : 436.573, + "placementY" : 630.014, + "placementWidth" : 17.785, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.785, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/IdentityRule[3]", + "entityName" : "IdentityRule", + "entityKind" : "LineNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 19.767, + "computedY" : 601.737, + "placementX" : 19.767, + "placementY" : 601.737, + "placementWidth" : 554.047, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 1.0, + "margin" : { + "top" : 17.684, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]", + "entityName" : "PartiesRow", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 19.767, + "computedY" : 480.29, + "placementX" : 19.767, + "placementY" : 480.29, + "placementWidth" : 554.047, + "placementHeight" : 106.647, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 106.647, + "margin" : { + "top" : 14.8, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]", + "entityName" : "BillToColumn", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 19.767, + "computedY" : 482.728, + "placementX" : 19.767, + "placementY" : 482.728, + "placementWidth" : 277.306, + "placementHeight" : 104.209, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 277.306, + "contentHeight" : 104.209, + "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.565 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]", + "entityName" : "BillToLabelLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 20.332, + "computedY" : 562.098, + "placementX" : 20.332, + "placementY" : 562.098, + "placementWidth" : 276.741, + "placementHeight" : 24.839, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 276.741, + "contentHeight" : 24.839, + "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" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]", + "entityName" : "BillToLabelHolder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 20.332, + "computedY" : 562.098, + "placementX" : 20.332, + "placementY" : 562.098, + "placementWidth" : 276.741, + "placementHeight" : 24.839, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 276.741, + "contentHeight" : 24.839, + "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" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]", + "entityName" : "BillToLabel", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 20.332, + "computedY" : 562.098, + "placementX" : 20.332, + "placementY" : 562.098, + "placementWidth" : 276.741, + "placementHeight" : 24.839, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 276.741, + "contentHeight" : 24.839, + "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" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToDisc[0]", + "entityName" : "BillToDisc", + "entityKind" : "ShapeContainerNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 20.332, + "computedY" : 562.098, + "placementX" : 20.332, + "placementY" : 562.098, + "placementWidth" : 24.839, + "placementHeight" : 24.839, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.839, + "contentHeight" : 24.839, + "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" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToDisc[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToDisc[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 26.259, + "computedY" : 568.026, + "placementX" : 26.259, + "placementY" : 568.026, + "placementWidth" : 12.984, + "placementHeight" : 12.984, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.984, + "contentHeight" : 12.984, + "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" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToDisc[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToDisc[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 26.259, + "computedY" : 568.026, + "placementX" : 26.259, + "placementY" : 568.026, + "placementWidth" : 12.984, + "placementHeight" : 12.984, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.984, + "contentHeight" : 12.984, + "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" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]/BillToLabelText[1]", + "entityName" : "BillToLabelText", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToLabelLayer[0]/BillToLabelHolder[0]/BillToLabel[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 55.348, + "computedY" : 570.05, + "placementX" : 55.348, + "placementY" : 570.05, + "placementWidth" : 33.327, + "placementHeight" : 8.935, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.327, + "contentHeight" : 8.935, + "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" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]", + "entityName" : "BillToBody", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 20.332, + "computedY" : 482.728, + "placementX" : 20.332, + "placementY" : 482.728, + "placementWidth" : 142.531, + "placementHeight" : 79.37, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 142.531, + "contentHeight" : 79.37, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 35.016 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]/BillToName[0]", + "entityName" : "BillToName", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 55.348, + "computedY" : 550.833, + "placementX" : 55.348, + "placementY" : 550.833, + "placementWidth" : 83.62, + "placementHeight" : 9.821, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.62, + "contentHeight" : 9.821, + "margin" : { + "top" : 1.443, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]", + "entityName" : "BillToAddress", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 55.348, + "computedY" : 508.685, + "placementX" : 55.348, + "placementY" : 508.685, + "placementWidth" : 86.363, + "placementHeight" : 35.946, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.363, + "contentHeight" : 35.946, + "margin" : { + "top" : 6.203, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]/BillToAddress_0[0]", + "entityName" : "BillToAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 55.348, + "computedY" : 535.769, + "placementX" : 55.348, + "placementY" : 535.769, + "placementWidth" : 56.917, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.917, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]/BillToAddress_1[1]", + "entityName" : "BillToAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 55.348, + "computedY" : 522.227, + "placementX" : 55.348, + "placementY" : 522.227, + "placementWidth" : 86.363, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.363, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]/BillToAddress_2[2]", + "entityName" : "BillToAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]/BillToAddress[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 55.348, + "computedY" : 508.685, + "placementX" : 55.348, + "placementY" : 508.685, + "placementWidth" : 64.555, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.555, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]/BillToRegistration[2]", + "entityName" : "BillToRegistration", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/BillToColumn[0]/BillToBody[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 55.348, + "computedY" : 482.728, + "placementX" : 55.348, + "placementY" : 482.728, + "placementWidth" : 107.515, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.515, + "contentHeight" : 8.861, + "margin" : { + "top" : 17.095, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/PartyColumnDivider[1]", + "entityName" : "PartyColumnDivider", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 297.073, + "computedY" : 480.29, + "placementX" : 297.073, + "placementY" : 480.29, + "placementWidth" : 1.13, + "placementHeight" : 106.647, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.13, + "contentHeight" : 106.647, + "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" : "MerchantInvoice[0]/PartiesRow[4]/PartyColumnDivider[1]/PartyColumnDivider[0]", + "entityName" : "PartyColumnDivider", + "entityKind" : "LineNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/PartyColumnDivider[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 297.073, + "computedY" : 480.29, + "placementX" : 297.073, + "placementY" : 480.29, + "placementWidth" : 1.13, + "placementHeight" : 106.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.13, + "contentHeight" : 106.083, + "margin" : { + "top" : 0.564, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]", + "entityName" : "ShipToColumn", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 298.203, + "computedY" : 495.142, + "placementX" : 298.203, + "placementY" : 495.142, + "placementWidth" : 275.611, + "placementHeight" : 91.795, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 275.611, + "contentHeight" : 91.795, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 18.073 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]", + "entityName" : "ShipToLabelLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 316.275, + "computedY" : 562.098, + "placementX" : 316.275, + "placementY" : 562.098, + "placementWidth" : 257.539, + "placementHeight" : 24.839, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 257.539, + "contentHeight" : 24.839, + "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" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]", + "entityName" : "ShipToLabelHolder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 316.275, + "computedY" : 562.098, + "placementX" : 316.275, + "placementY" : 562.098, + "placementWidth" : 257.539, + "placementHeight" : 24.839, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 257.539, + "contentHeight" : 24.839, + "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" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]", + "entityName" : "ShipToLabel", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 316.275, + "computedY" : 562.098, + "placementX" : 316.275, + "placementY" : 562.098, + "placementWidth" : 257.539, + "placementHeight" : 24.839, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 257.539, + "contentHeight" : 24.839, + "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" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]/ShipToDisc[0]", + "entityName" : "ShipToDisc", + "entityKind" : "ShapeContainerNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 316.275, + "computedY" : 562.098, + "placementX" : 316.275, + "placementY" : 562.098, + "placementWidth" : 24.839, + "placementHeight" : 24.839, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.839, + "contentHeight" : 24.839, + "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" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]/ShipToDisc[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]/ShipToDisc[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 322.203, + "computedY" : 568.026, + "placementX" : 322.203, + "placementY" : 568.026, + "placementWidth" : 12.984, + "placementHeight" : 12.984, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.984, + "contentHeight" : 12.984, + "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" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]/ShipToDisc[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]/ShipToDisc[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 322.203, + "computedY" : 568.026, + "placementX" : 322.203, + "placementY" : 568.026, + "placementWidth" : 12.984, + "placementHeight" : 12.984, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.984, + "contentHeight" : 12.984, + "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" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]/ShipToLabelText[1]", + "entityName" : "ShipToLabelText", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToLabelLayer[0]/ShipToLabelHolder[0]/ShipToLabel[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 351.292, + "computedY" : 570.05, + "placementX" : 351.292, + "placementY" : 570.05, + "placementWidth" : 35.239, + "placementHeight" : 8.935, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.239, + "contentHeight" : 8.935, + "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" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]", + "entityName" : "ShipToBody", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 316.275, + "computedY" : 495.142, + "placementX" : 316.275, + "placementY" : 495.142, + "placementWidth" : 125.677, + "placementHeight" : 66.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 125.677, + "contentHeight" : 66.956, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 35.016 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]/ShipToName[0]", + "entityName" : "ShipToName", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 351.292, + "computedY" : 550.833, + "placementX" : 351.292, + "placementY" : 550.833, + "placementWidth" : 83.62, + "placementHeight" : 9.821, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.62, + "contentHeight" : 9.821, + "margin" : { + "top" : 1.443, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]", + "entityName" : "ShipToAddress", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 351.292, + "computedY" : 495.142, + "placementX" : 351.292, + "placementY" : 495.142, + "placementWidth" : 90.661, + "placementHeight" : 49.489, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.661, + "contentHeight" : 49.489, + "margin" : { + "top" : 6.203, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]/ShipToAddress_0[0]", + "entityName" : "ShipToAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 351.292, + "computedY" : 535.769, + "placementX" : 351.292, + "placementY" : 535.769, + "placementWidth" : 51.75, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.75, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]/ShipToAddress_1[1]", + "entityName" : "ShipToAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 351.292, + "computedY" : 522.227, + "placementX" : 351.292, + "placementY" : 522.227, + "placementWidth" : 90.661, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.661, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]/ShipToAddress_2[2]", + "entityName" : "ShipToAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 351.292, + "computedY" : 508.685, + "placementX" : 351.292, + "placementY" : 508.685, + "placementWidth" : 86.363, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.363, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]/ShipToAddress_3[3]", + "entityName" : "ShipToAddress_3", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/PartiesRow[4]/ShipToColumn[2]/ShipToBody[1]/ShipToAddress[1]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 351.292, + "computedY" : 495.142, + "placementX" : 351.292, + "placementY" : 495.142, + "placementWidth" : 64.555, + "placementHeight" : 8.861, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.555, + "contentHeight" : 8.861, + "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" : "MerchantInvoice[0]/LineItems[5]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 19.767, + "computedY" : 291.824, + "placementX" : 19.767, + "placementY" : 291.824, + "placementWidth" : 554.047, + "placementHeight" : 173.231, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 173.231, + "margin" : { + "top" : 15.235, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]", + "entityName" : "Settlement", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 19.767, + "computedY" : 94.894, + "placementX" : 19.767, + "placementY" : 94.894, + "placementWidth" : 554.047, + "placementHeight" : 184.516, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 184.516, + "margin" : { + "top" : 12.414, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]", + "entityName" : "PaymentPanel", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 19.767, + "computedY" : 94.894, + "placementX" : 19.767, + "placementY" : 94.894, + "placementWidth" : 225.911, + "placementHeight" : 184.516, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.911, + "contentHeight" : 184.516, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]", + "entityName" : "PaymentHeadingLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 19.767, + "computedY" : 257.397, + "placementX" : 19.767, + "placementY" : 257.397, + "placementWidth" : 225.911, + "placementHeight" : 22.013, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.911, + "contentHeight" : 22.013, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]", + "entityName" : "PaymentHeadingHolder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 19.767, + "computedY" : 257.397, + "placementX" : 19.767, + "placementY" : 257.397, + "placementWidth" : 225.911, + "placementHeight" : 22.013, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.911, + "contentHeight" : 22.013, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]", + "entityName" : "PaymentHeading", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 19.767, + "computedY" : 257.397, + "placementX" : 19.767, + "placementY" : 257.397, + "placementWidth" : 225.911, + "placementHeight" : 22.013, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.911, + "contentHeight" : 22.013, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 7.336, + "right" : 0.0, + "bottom" : 0.0, + "left" : 11.296 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 31.063, + "computedY" : 257.397, + "placementX" : 31.063, + "placementY" : 257.397, + "placementWidth" : 14.678, + "placementHeight" : 14.678, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.678, + "contentHeight" : 14.678, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 31.063, + "computedY" : 257.397, + "placementX" : 31.063, + "placementY" : 257.397, + "placementWidth" : 14.678, + "placementHeight" : 14.678, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 14.678, + "contentHeight" : 14.678, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]/PaymentHeadingText[1]", + "entityName" : "PaymentHeadingText", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentHeadingLayer[0]/PaymentHeadingHolder[0]/PaymentHeading[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 57.043, + "computedY" : 260.424, + "placementX" : 57.043, + "placementY" : 260.424, + "placementWidth" : 80.196, + "placementHeight" : 8.624, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.196, + "contentHeight" : 8.624, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]", + "entityName" : "PaymentRows", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 19.767, + "computedY" : 141.377, + "placementX" : 19.767, + "placementY" : 141.377, + "placementWidth" : 225.911, + "placementHeight" : 109.199, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.911, + "contentHeight" : 109.199, + "margin" : { + "top" : 6.821, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 11.296, + "bottom" : 0.0, + "left" : 10.731 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]", + "entityName" : "PaymentRow_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.498, + "computedY" : 242.946, + "placementX" : 30.498, + "placementY" : 242.946, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]", + "entityName" : "PaymentRow_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 30.498, + "computedY" : 242.946, + "placementX" : 30.498, + "placementY" : 242.946, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]/PaymentRow_0[0]", + "entityName" : "PaymentRow_0", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 30.498, + "computedY" : 242.946, + "placementX" : 30.498, + "placementY" : 242.946, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]/PaymentRow_0[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]/PaymentRow_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 30.498, + "computedY" : 242.946, + "placementX" : 30.498, + "placementY" : 242.946, + "placementWidth" : 42.157, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.157, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]/PaymentRow_0[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_0Layer[0]/PaymentRow_0Holder[0]/PaymentRow_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 124.816, + "computedY" : 242.946, + "placementX" : 124.816, + "placementY" : 242.946, + "placementWidth" : 84.275, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 84.275, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]", + "entityName" : "PaymentRow_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 30.498, + "computedY" : 230.25, + "placementX" : 30.498, + "placementY" : 230.25, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]", + "entityName" : "PaymentRow_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 30.498, + "computedY" : 230.25, + "placementX" : 30.498, + "placementY" : 230.25, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]/PaymentRow_1[0]", + "entityName" : "PaymentRow_1", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 30.498, + "computedY" : 230.25, + "placementX" : 30.498, + "placementY" : 230.25, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]/PaymentRow_1[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]/PaymentRow_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 30.498, + "computedY" : 230.25, + "placementX" : 30.498, + "placementY" : 230.25, + "placementWidth" : 52.778, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.778, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]/PaymentRow_1[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_1Layer[1]/PaymentRow_1Holder[0]/PaymentRow_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 124.816, + "computedY" : 230.25, + "placementX" : 124.816, + "placementY" : 230.25, + "placementWidth" : 85.847, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.847, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]", + "entityName" : "PaymentRow_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 30.498, + "computedY" : 217.554, + "placementX" : 30.498, + "placementY" : 217.554, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]", + "entityName" : "PaymentRow_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 30.498, + "computedY" : 217.554, + "placementX" : 30.498, + "placementY" : 217.554, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]/PaymentRow_2[0]", + "entityName" : "PaymentRow_2", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 30.498, + "computedY" : 217.554, + "placementX" : 30.498, + "placementY" : 217.554, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]/PaymentRow_2[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]/PaymentRow_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 30.498, + "computedY" : 217.554, + "placementX" : 30.498, + "placementY" : 217.554, + "placementWidth" : 60.072, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.072, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]/PaymentRow_2[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_2Layer[2]/PaymentRow_2Holder[0]/PaymentRow_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 124.816, + "computedY" : 217.554, + "placementX" : 124.816, + "placementY" : 217.554, + "placementWidth" : 55.151, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 55.151, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]", + "entityName" : "PaymentRow_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 30.498, + "computedY" : 204.858, + "placementX" : 30.498, + "placementY" : 204.858, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]", + "entityName" : "PaymentRow_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 30.498, + "computedY" : 204.858, + "placementX" : 30.498, + "placementY" : 204.858, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]/PaymentRow_3[0]", + "entityName" : "PaymentRow_3", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 30.498, + "computedY" : 204.858, + "placementX" : 30.498, + "placementY" : 204.858, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]/PaymentRow_3[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]/PaymentRow_3[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 30.498, + "computedY" : 204.858, + "placementX" : 30.498, + "placementY" : 204.858, + "placementWidth" : 43.988, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 43.988, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]/PaymentRow_3[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_3Layer[3]/PaymentRow_3Holder[0]/PaymentRow_3[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 124.816, + "computedY" : 204.858, + "placementX" : 124.816, + "placementY" : 204.858, + "placementWidth" : 38.799, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.799, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]", + "entityName" : "PaymentRow_4Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 30.498, + "computedY" : 192.161, + "placementX" : 30.498, + "placementY" : 192.161, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]", + "entityName" : "PaymentRow_4Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 30.498, + "computedY" : 192.161, + "placementX" : 30.498, + "placementY" : 192.161, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]/PaymentRow_4[0]", + "entityName" : "PaymentRow_4", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 30.498, + "computedY" : 192.161, + "placementX" : 30.498, + "placementY" : 192.161, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]/PaymentRow_4[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]/PaymentRow_4[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 30.498, + "computedY" : 192.161, + "placementX" : 30.498, + "placementY" : 192.161, + "placementWidth" : 67.252, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.252, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]/PaymentRow_4[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_4Layer[4]/PaymentRow_4Holder[0]/PaymentRow_4[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 124.816, + "computedY" : 192.161, + "placementX" : 124.816, + "placementY" : 192.161, + "placementWidth" : 12.727, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.727, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]", + "entityName" : "PaymentRow_5Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 30.498, + "computedY" : 179.465, + "placementX" : 30.498, + "placementY" : 179.465, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]", + "entityName" : "PaymentRow_5Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 30.498, + "computedY" : 179.465, + "placementX" : 30.498, + "placementY" : 179.465, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]/PaymentRow_5[0]", + "entityName" : "PaymentRow_5", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 30.498, + "computedY" : 179.465, + "placementX" : 30.498, + "placementY" : 179.465, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]/PaymentRow_5[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]/PaymentRow_5[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 30.498, + "computedY" : 179.465, + "placementX" : 30.498, + "placementY" : 179.465, + "placementWidth" : 55.975, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 55.975, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]/PaymentRow_5[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_5Layer[5]/PaymentRow_5Holder[0]/PaymentRow_5[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 124.816, + "computedY" : 179.465, + "placementX" : 124.816, + "placementY" : 179.465, + "placementWidth" : 21.212, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.212, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]", + "entityName" : "PaymentRow_6Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 30.498, + "computedY" : 166.769, + "placementX" : 30.498, + "placementY" : 166.769, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]", + "entityName" : "PaymentRow_6Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 30.498, + "computedY" : 166.769, + "placementX" : 30.498, + "placementY" : 166.769, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]/PaymentRow_6[0]", + "entityName" : "PaymentRow_6", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 30.498, + "computedY" : 166.769, + "placementX" : 30.498, + "placementY" : 166.769, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]/PaymentRow_6[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]/PaymentRow_6[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 30.498, + "computedY" : 166.769, + "placementX" : 30.498, + "placementY" : 166.769, + "placementWidth" : 49.077, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.077, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]/PaymentRow_6[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_6Layer[6]/PaymentRow_6Holder[0]/PaymentRow_6[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 124.816, + "computedY" : 166.769, + "placementX" : 124.816, + "placementY" : 166.769, + "placementWidth" : 44.888, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.888, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]", + "entityName" : "PaymentRow_7Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 30.498, + "computedY" : 154.073, + "placementX" : 30.498, + "placementY" : 154.073, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]", + "entityName" : "PaymentRow_7Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 30.498, + "computedY" : 154.073, + "placementX" : 30.498, + "placementY" : 154.073, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]/PaymentRow_7[0]", + "entityName" : "PaymentRow_7", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 30.498, + "computedY" : 154.073, + "placementX" : 30.498, + "placementY" : 154.073, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]/PaymentRow_7[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]/PaymentRow_7[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 30.498, + "computedY" : 154.073, + "placementX" : 30.498, + "placementY" : 154.073, + "placementWidth" : 63.223, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.223, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]/PaymentRow_7[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_7Layer[7]/PaymentRow_7Holder[0]/PaymentRow_7[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 124.816, + "computedY" : 154.073, + "placementX" : 124.816, + "placementY" : 154.073, + "placementWidth" : 91.073, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.073, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_8Layer[8]", + "entityName" : "PaymentRow_8Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]", + "childIndex" : 8, + "depth" : 5, + "layer" : 5, + "computedX" : 30.498, + "computedY" : 141.377, + "placementX" : 30.498, + "placementY" : 141.377, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_8Layer[8]/PaymentRow_8Holder[0]", + "entityName" : "PaymentRow_8Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_8Layer[8]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 30.498, + "computedY" : 141.377, + "placementX" : 30.498, + "placementY" : 141.377, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_8Layer[8]/PaymentRow_8Holder[0]/PaymentRow_8[0]", + "entityName" : "PaymentRow_8", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_8Layer[8]/PaymentRow_8Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 30.498, + "computedY" : 141.377, + "placementX" : 30.498, + "placementY" : 141.377, + "placementWidth" : 203.885, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 203.885, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_8Layer[8]/PaymentRow_8Holder[0]/PaymentRow_8[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_8Layer[8]/PaymentRow_8Holder[0]/PaymentRow_8[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 30.498, + "computedY" : 141.377, + "placementX" : 30.498, + "placementY" : 141.377, + "placementWidth" : 37.99, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 37.99, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_8Layer[8]/PaymentRow_8Holder[0]/PaymentRow_8[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentRows[1]/PaymentRow_8Layer[8]/PaymentRow_8Holder[0]/PaymentRow_8[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 124.816, + "computedY" : 141.377, + "placementX" : 124.816, + "placementY" : 141.377, + "placementWidth" : 63.01, + "placementHeight" : 7.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.01, + "contentHeight" : 7.63, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentPanelRule[2]", + "entityName" : "PaymentPanelRule", + "entityKind" : "LineNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 25.98, + "computedY" : 132.829, + "placementX" : 25.98, + "placementY" : 132.829, + "placementWidth" : 210.097, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 210.097, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.548, + "right" : 0.0, + "bottom" : 0.0, + "left" : 6.213 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]", + "entityName" : "PaymentNoteLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 19.767, + "computedY" : 94.894, + "placementX" : 19.767, + "placementY" : 94.894, + "placementWidth" : 225.911, + "placementHeight" : 37.935, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.911, + "contentHeight" : 37.935, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]", + "entityName" : "PaymentNoteHolder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 19.767, + "computedY" : 94.894, + "placementX" : 19.767, + "placementY" : 94.894, + "placementWidth" : 225.911, + "placementHeight" : 37.935, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.911, + "contentHeight" : 37.935, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]", + "entityName" : "PaymentNote", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 19.767, + "computedY" : 94.894, + "placementX" : 19.767, + "placementY" : 94.894, + "placementWidth" : 225.911, + "placementHeight" : 37.935, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.911, + "contentHeight" : 37.935, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 6.374, + "right" : 0.0, + "bottom" : 8.983, + "left" : 10.731 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 30.498, + "computedY" : 112.906, + "placementX" : 30.498, + "placementY" : 112.906, + "placementWidth" : 13.549, + "placementHeight" : 13.549, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.549, + "contentHeight" : 13.549, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 30.498, + "computedY" : 112.906, + "placementX" : 30.498, + "placementY" : 112.906, + "placementWidth" : 13.549, + "placementHeight" : 13.549, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.549, + "contentHeight" : 13.549, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/PaymentNoteText[1]", + "entityName" : "PaymentNoteText", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 49.7, + "computedY" : 103.877, + "placementX" : 49.7, + "placementY" : 103.877, + "placementWidth" : 122.011, + "placementHeight" : 22.578, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.011, + "contentHeight" : 22.578, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/PaymentNoteText[1]/PaymentNoteLine_0[0]", + "entityName" : "PaymentNoteLine_0", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/PaymentNoteText[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 49.7, + "computedY" : 118.548, + "placementX" : 49.7, + "placementY" : 118.548, + "placementWidth" : 122.011, + "placementHeight" : 7.907, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.011, + "contentHeight" : 7.907, + "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" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/PaymentNoteText[1]/PaymentNoteLine_1[1]", + "entityName" : "PaymentNoteLine_1", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/PaymentPanel[0]/PaymentNoteLayer[3]/PaymentNoteHolder[0]/PaymentNote[0]/PaymentNoteText[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 49.7, + "computedY" : 103.877, + "placementX" : 49.7, + "placementY" : 103.877, + "placementWidth" : 96.021, + "placementHeight" : 7.907, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.021, + "contentHeight" : 7.907, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementGap[1]", + "entityName" : "SettlementGap", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 245.678, + "computedY" : 279.41, + "placementX" : 245.678, + "placementY" : 279.41, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]", + "entityName" : "SettlementRight", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 313.452, + "computedY" : 114.307, + "placementX" : 313.452, + "placementY" : 114.307, + "placementWidth" : 260.362, + "placementHeight" : 165.103, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 165.103, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]", + "entityName" : "Totals", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 313.452, + "computedY" : 193.741, + "placementX" : 313.452, + "placementY" : 193.741, + "placementWidth" : 260.362, + "placementHeight" : 73.826, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 73.826, + "margin" : { + "top" : 11.844, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]", + "entityName" : "TotalsRow_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 313.452, + "computedY" : 258.338, + "placementX" : 313.452, + "placementY" : 258.338, + "placementWidth" : 260.362, + "placementHeight" : 9.228, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 9.228, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]", + "entityName" : "TotalsRow_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 313.452, + "computedY" : 258.338, + "placementX" : 313.452, + "placementY" : 258.338, + "placementWidth" : 260.362, + "placementHeight" : 9.228, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 9.228, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "entityName" : "TotalsRow_0", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 313.452, + "computedY" : 258.338, + "placementX" : 313.452, + "placementY" : 258.338, + "placementWidth" : 260.362, + "placementHeight" : 9.228, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 9.228, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 19.767, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 313.452, + "computedY" : 258.993, + "placementX" : 313.452, + "placementY" : 258.993, + "placementWidth" : 32.759, + "placementHeight" : 8.573, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.759, + "contentHeight" : 8.573, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_0Layer[0]/TotalsRow_0Holder[0]/TotalsRow_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 433.749, + "computedY" : 258.338, + "placementX" : 433.749, + "placementY" : 258.338, + "placementWidth" : 120.298, + "placementHeight" : 9.228, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 120.298, + "contentHeight" : 9.228, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]", + "entityName" : "TotalsRow_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 313.452, + "computedY" : 237.46, + "placementX" : 313.452, + "placementY" : 237.46, + "placementWidth" : 260.362, + "placementHeight" : 20.878, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 20.878, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]", + "entityName" : "TotalsRow_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 313.452, + "computedY" : 237.46, + "placementX" : 313.452, + "placementY" : 237.46, + "placementWidth" : 260.362, + "placementHeight" : 20.878, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 20.878, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "entityName" : "TotalsRow_1", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 313.452, + "computedY" : 237.46, + "placementX" : 313.452, + "placementY" : 237.46, + "placementWidth" : 260.362, + "placementHeight" : 9.228, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 9.228, + "margin" : { + "top" : 11.649, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 19.767, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 313.452, + "computedY" : 238.115, + "placementX" : 313.452, + "placementY" : 238.115, + "placementWidth" : 36.248, + "placementHeight" : 8.573, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.248, + "contentHeight" : 8.573, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRow_1Layer[1]/TotalsRow_1Holder[0]/TotalsRow_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 433.749, + "computedY" : 237.46, + "placementX" : 433.749, + "placementY" : 237.46, + "placementWidth" : 120.298, + "placementHeight" : 9.228, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 120.298, + "contentHeight" : 9.228, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalsRule[2]", + "entityName" : "TotalsRule", + "entityKind" : "LineNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 313.452, + "computedY" : 222.871, + "placementX" : 313.452, + "placementY" : 222.871, + "placementWidth" : 243.419, + "placementHeight" : 1.241, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 243.419, + "contentHeight" : 1.241, + "margin" : { + "top" : 13.348, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]", + "entityName" : "TotalDueLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 313.452, + "computedY" : 193.741, + "placementX" : 313.452, + "placementY" : 193.741, + "placementWidth" : 260.362, + "placementHeight" : 29.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 29.13, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]", + "entityName" : "TotalDueHolder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 313.452, + "computedY" : 193.741, + "placementX" : 313.452, + "placementY" : 193.741, + "placementWidth" : 260.362, + "placementHeight" : 29.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 29.13, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "entityName" : "TotalDue", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 313.452, + "computedY" : 193.741, + "placementX" : 313.452, + "placementY" : 193.741, + "placementWidth" : 260.362, + "placementHeight" : 29.13, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 29.13, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 15.005, + "right" : 19.767, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]/TotalDueLabel[0]", + "entityName" : "TotalDueLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 313.452, + "computedY" : 195.393, + "placementX" : 313.452, + "placementY" : 195.393, + "placementWidth" : 59.873, + "placementHeight" : 10.821, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 59.873, + "contentHeight" : 10.821, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]/TotalDueValue[1]", + "entityName" : "TotalDueValue", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/Totals[0]/TotalDueLayer[3]/TotalDueHolder[0]/TotalDue[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 433.749, + "computedY" : 193.741, + "placementX" : 433.749, + "placementY" : 193.741, + "placementWidth" : 120.298, + "placementHeight" : 14.125, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 120.298, + "contentHeight" : 14.125, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]", + "entityName" : "DueDateCard", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 313.452, + "computedY" : 114.307, + "placementX" : 313.452, + "placementY" : 114.307, + "placementWidth" : 260.362, + "placementHeight" : 59.343, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 59.343, + "margin" : { + "top" : 20.09, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]", + "entityName" : "DueDateRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 313.452, + "computedY" : 114.307, + "placementX" : 313.452, + "placementY" : 114.307, + "placementWidth" : 260.362, + "placementHeight" : 59.343, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 59.343, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]", + "entityName" : "DueDateRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 313.452, + "computedY" : 114.307, + "placementX" : 313.452, + "placementY" : 114.307, + "placementWidth" : 260.362, + "placementHeight" : 59.343, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 59.343, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]", + "entityName" : "DueDateRow", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 313.452, + "computedY" : 114.307, + "placementX" : 313.452, + "placementY" : 114.307, + "placementWidth" : 260.362, + "placementHeight" : 59.343, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.362, + "contentHeight" : 59.343, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 16.364, + "right" : 0.0, + "bottom" : 16.917, + "left" : 14.119 + } + }, { + "path" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 327.571, + "computedY" : 131.554, + "placementX" : 327.571, + "placementY" : 131.554, + "placementWidth" : 25.404, + "placementHeight" : 25.404, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.404, + "contentHeight" : 25.404, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 327.571, + "computedY" : 131.554, + "placementX" : 327.571, + "placementY" : 131.554, + "placementWidth" : 25.404, + "placementHeight" : 25.404, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.404, + "contentHeight" : 25.404, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateText[1]", + "entityName" : "DueDateText", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 363.717, + "computedY" : 131.224, + "placementX" : 363.717, + "placementY" : 131.224, + "placementWidth" : 73.991, + "placementHeight" : 26.063, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 73.991, + "contentHeight" : 26.063, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateText[1]/DueDateLabel[0]", + "entityName" : "DueDateLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateText[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 363.717, + "computedY" : 148.911, + "placementX" : 363.717, + "placementY" : 148.911, + "placementWidth" : 73.991, + "placementHeight" : 8.376, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 73.991, + "contentHeight" : 8.376, + "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" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateText[1]/DueDateValue[1]", + "entityName" : "DueDateValue", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/Settlement[6]/SettlementRight[2]/DueDateCard[1]/DueDateRowLayer[0]/DueDateRowHolder[0]/DueDateRow[0]/DueDateText[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 363.717, + "computedY" : 131.224, + "placementX" : 363.717, + "placementY" : 131.224, + "placementWidth" : 72.311, + "placementHeight" : 11.471, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.311, + "contentHeight" : 11.471, + "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" : "MerchantInvoice[0]/ClosingNoteRule[7]", + "entityName" : "ClosingNoteRule", + "entityKind" : "LineNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 19.767, + "computedY" : 89.38, + "placementX" : 19.767, + "placementY" : 89.38, + "placementWidth" : 554.047, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 1.0, + "margin" : { + "top" : 4.514, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/ClosingNote[8]", + "entityName" : "ClosingNote", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 8, + "depth" : 2, + "layer" : 2, + "computedX" : 19.767, + "computedY" : 55.904, + "placementX" : 19.767, + "placementY" : 55.904, + "placementWidth" : 554.047, + "placementHeight" : 24.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 24.32, + "margin" : { + "top" : 9.157, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/ClosingNote[8]/ClosingNoteIcon[0]", + "entityName" : "ClosingNoteIcon", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/ClosingNote[8]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 19.767, + "computedY" : 63.288, + "placementX" : 19.767, + "placementY" : 63.288, + "placementWidth" : 16.936, + "placementHeight" : 16.936, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.936, + "contentHeight" : 16.936, + "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" : "MerchantInvoice[0]/ClosingNote[8]/ClosingNoteIcon[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "MerchantInvoice[0]/ClosingNote[8]/ClosingNoteIcon[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 19.767, + "computedY" : 63.288, + "placementX" : 19.767, + "placementY" : 63.288, + "placementWidth" : 16.936, + "placementHeight" : 16.936, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.936, + "contentHeight" : 16.936, + "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" : "MerchantInvoice[0]/ClosingNote[8]/ClosingNoteIcon[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "MerchantInvoice[0]/ClosingNote[8]/ClosingNoteIcon[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 19.767, + "computedY" : 63.288, + "placementX" : 19.767, + "placementY" : 63.288, + "placementWidth" : 16.936, + "placementHeight" : 16.936, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.936, + "contentHeight" : 16.936, + "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" : "MerchantInvoice[0]/ClosingNote[8]/ClosingNoteText[1]", + "entityName" : "ClosingNoteText", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/ClosingNote[8]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 45.182, + "computedY" : 55.904, + "placementX" : 45.182, + "placementY" : 55.904, + "placementWidth" : 330.687, + "placementHeight" : 20.013, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.687, + "contentHeight" : 20.013, + "margin" : { + "top" : 4.306, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/ClosingNote[8]/ClosingNoteText[1]/ClosingNoteLead[0]", + "entityName" : "ClosingNoteLead", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/ClosingNote[8]/ClosingNoteText[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 45.182, + "computedY" : 67.733, + "placementX" : 45.182, + "placementY" : 67.733, + "placementWidth" : 131.977, + "placementHeight" : 8.184, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.977, + "contentHeight" : 8.184, + "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" : "MerchantInvoice[0]/ClosingNote[8]/ClosingNoteText[1]/ClosingNoteProse_0[1]", + "entityName" : "ClosingNoteProse_0", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/ClosingNote[8]/ClosingNoteText[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 45.182, + "computedY" : 55.904, + "placementX" : 45.182, + "placementY" : 55.904, + "placementWidth" : 330.687, + "placementHeight" : 7.918, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 330.687, + "contentHeight" : 7.918, + "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" : "MerchantInvoice[0]/FooterRule[9]", + "entityName" : "FooterRule", + "entityKind" : "LineNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 9, + "depth" : 2, + "layer" : 2, + "computedX" : 19.767, + "computedY" : 43.674, + "placementX" : 19.767, + "placementY" : 43.674, + "placementWidth" : 554.047, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 1.0, + "margin" : { + "top" : 11.229, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/FooterIdentity[10]", + "entityName" : "FooterIdentity", + "entityKind" : "RowNode", + "parentPath" : "MerchantInvoice[0]", + "childIndex" : 10, + "depth" : 2, + "layer" : 2, + "computedX" : 19.767, + "computedY" : 3.919, + "placementX" : 19.767, + "placementY" : 3.919, + "placementWidth" : 554.047, + "placementHeight" : 39.756, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 554.047, + "contentHeight" : 39.756, + "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" : "MerchantInvoice[0]/FooterIdentity[10]/FooterTile[0]", + "entityName" : "FooterTile", + "entityKind" : "ShapeContainerNode", + "parentPath" : "MerchantInvoice[0]/FooterIdentity[10]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 19.767, + "computedY" : 3.919, + "placementX" : 19.767, + "placementY" : 3.919, + "placementWidth" : 40.099, + "placementHeight" : 39.756, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.099, + "contentHeight" : 39.756, + "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" : "MerchantInvoice[0]/FooterIdentity[10]/FooterTile[0]/FooterMonogram[0]", + "entityName" : "FooterMonogram", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/FooterIdentity[10]/FooterTile[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 19.767, + "computedY" : 19.964, + "placementX" : 19.767, + "placementY" : 19.964, + "placementWidth" : 40.099, + "placementHeight" : 7.664, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.099, + "contentHeight" : 7.664, + "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" : "MerchantInvoice[0]/FooterIdentity[10]/FooterText[1]", + "entityName" : "FooterText", + "entityKind" : "SectionNode", + "parentPath" : "MerchantInvoice[0]/FooterIdentity[10]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 59.866, + "computedY" : 6.353, + "placementX" : 59.866, + "placementY" : 6.353, + "placementWidth" : 213.432, + "placementHeight" : 37.321, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 213.432, + "contentHeight" : 37.321, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 14.684 + } + }, { + "path" : "MerchantInvoice[0]/FooterIdentity[10]/FooterText[1]/FooterName[0]", + "entityName" : "FooterName", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/FooterIdentity[10]/FooterText[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 74.551, + "computedY" : 29.305, + "placementX" : 74.551, + "placementY" : 29.305, + "placementWidth" : 91.424, + "placementHeight" : 7.664, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.424, + "contentHeight" : 7.664, + "margin" : { + "top" : 6.705, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/FooterIdentity[10]/FooterText[1]/FooterAddress[1]", + "entityName" : "FooterAddress", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/FooterIdentity[10]/FooterText[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 74.551, + "computedY" : 17.692, + "placementX" : 74.551, + "placementY" : 17.692, + "placementWidth" : 198.748, + "placementHeight" : 7.749, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 198.748, + "contentHeight" : 7.749, + "margin" : { + "top" : 3.865, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MerchantInvoice[0]/FooterIdentity[10]/FooterText[1]/FooterSite[2]", + "entityName" : "FooterSite", + "entityKind" : "ParagraphNode", + "parentPath" : "MerchantInvoice[0]/FooterIdentity[10]/FooterText[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 74.551, + "computedY" : 6.353, + "placementX" : 74.551, + "placementY" : 6.353, + "placementWidth" : 77.179, + "placementHeight" : 7.201, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.179, + "contentHeight" : 7.201, + "margin" : { + "top" : 4.137, + "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/invoice-v2-layered/merchant_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/merchant_invoice-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..2490fdd8675abd1b1099c0d8f13a4698271987ea GIT binary patch literal 86143 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 this port leaves out + * + *

      The design closes with a row of three discs carrying social-platform marks. + * Those marks belong to their platforms, and the templates artifact does not + * redistribute other companies' trademarks, so neither they nor the rule that + * divided them off are drawn. The band keeps the tile and the issuer's identity, + * which is what identifies the sheet.

      + */ +final class MerchantClosing { + + private MerchantClosing() { + } + + /** The rule above the closing note. */ + static void renderNoteRule(PageFlowBuilder page) { + page.addLine(line -> line + .name("ClosingNoteRule") + .horizontal(CONTENT_W) + .thickness(RULE_THIN) + .color(RULE_SOFT) + .margin(new DocumentInsets(py(1331 - PANEL_BOTTOM_Y), 0, 0, 0))); + } + + /** + * The closing note: a lead line and the prose under it, with any address the + * prose names made reachable. + */ + static void renderNote(PageFlowBuilder page, InvoiceNotesBlock notes, + InvoiceContactBlock supplier) { + if (notes.heading().isBlank() && notes.paragraphs().isEmpty()) { + return; + } + page.addRow("ClosingNote", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(NOTE_GUTTER), DocumentRowColumn.weight(1)) + .margin(new DocumentInsets(py(NOTE_TOP_Y - 1331) - RULE_BOX, 0, 0, 0)); + row.addSection("ClosingNoteIcon", gutter -> { + gutter.spacing(0); + gutter.addSvgIcon(MerchantIcons.icon(MerchantIcons.INFO), NOTE_ICON); + }); + row.addSection("ClosingNoteText", text -> { + text.spacing(capGap(NOTE_LINE2_CAP_Y - NOTE_LINE1_CAP_Y, + CLOSING_BOLD_SIZE, true, CLOSING_REG_SIZE, false)) + .keepWithNext() + .margin(capTop(NOTE_LINE1_CAP_Y - NOTE_TOP_Y, CLOSING_BOLD_SIZE, true)); + if (!notes.heading().isBlank()) { + text.addParagraph(p -> p + .name("ClosingNoteLead") + .text(notes.heading()) + .textStyle(bold(CLOSING_BOLD_SIZE, INK))); + } + List paragraphs = notes.paragraphs(); + for (int i = 0; i < paragraphs.size(); i++) { + String prose = paragraphs.get(i); + int index = i; + text.addParagraph(p -> { + p.name("ClosingNoteProse_" + index); + writeReachable(p, prose, notes, supplier); + }); + } + }); + }); + } + + /** The rule above the identity band. */ + static void renderIdentityRule(PageFlowBuilder page) { + page.addLine(line -> line + .name("FooterRule") + .horizontal(CONTENT_W) + .thickness(RULE_THIN) + .color(RULE_SOFT) + .margin(new DocumentInsets( + Math.max(0, py(FOOTER_RULE_Y - NOTE_TOP_Y) - CLOSING_NOTE_H), 0, 0, 0))); + } + + /** + * The identity band: the issuer's mark on a filled tile, and its name, + * address and site beside it. + */ + static void renderIdentity(PageFlowBuilder page, InvoiceBrand brand, + InvoiceContactBlock supplier) { + page.addRow("FooterIdentity", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(FOOTER_TILE_W), + DocumentRowColumn.weight(1)); + row.add(tile(brand)); + row.addSection("FooterText", text -> { + text.spacing(0).padding(new DocumentInsets(0, 0, 0, FOOTER_TEXT_PAD_L)); + text.addParagraph(p -> p + .name("FooterName") + .text(supplier.legalName()) + .textStyle(bold(FOOTER_NAME_SIZE, INK)) + .margin(new DocumentInsets( + py(FOOTER_NAME_CAP_Y) - FOOTER_ROW_TOP + - MerchantStyles.topBearing(FOOTER_NAME_SIZE, true), + 0, 0, 0))); + text.addParagraph(p -> p + .name("FooterAddress") + .text(String.join(", ", supplier.addressLines())) + .textStyle(style(FOOTER_ADDR_SIZE, INK)) + .margin(new DocumentInsets( + capGap(FOOTER_ADDR_CAP_Y - FOOTER_NAME_CAP_Y, + FOOTER_NAME_SIZE, true, FOOTER_ADDR_SIZE, false), + 0, 0, 0))); + if (!supplier.website().isBlank()) { + text.addParagraph(p -> { + p.name("FooterSite"); + p.text(supplier.website()); + p.textStyle(style(FOOTER_SITE_SIZE, ACCENT)); + p.link(InvoiceUri.webLink(supplier.website())); + p.margin(new DocumentInsets( + capGap(FOOTER_SITE_CAP_Y - FOOTER_ADDR_CAP_Y, + FOOTER_ADDR_SIZE, false, FOOTER_SITE_SIZE, false), + 0, 0, 0)); + }); + } + }); + }); + } + + /** + * The filled tile the issuer's mark sits on. + * + *

      The mark is the caller's: the tile carries the brand's logo when there + * is one and the brand's monogram otherwise. The templates artifact carries + * no mark of its own, and the tile is the design's shape rather than a + * container for a particular drawing.

      + */ + private static DocumentNode tile(InvoiceBrand brand) { + DocumentNode content = brand.logo() != null + ? new ImageBuilder() + .name("FooterMark") + .source(brand.logo()) + .width(FOOTER_MARK_W) + .build() + : new ParagraphBuilder() + .name("FooterMonogram") + .text(monogram(brand)) + .textStyle(bold(FOOTER_NAME_SIZE, ON_FILL)) + .align(TextAlign.CENTER) + .build(); + return new ShapeContainerBuilder() + .name("FooterTile") + .roundedRect(FOOTER_TILE_W, FOOTER_TILE_H, TILE_RADIUS) + .fillColor(INK) + .center(content) + .build(); + } + + private static String monogram(InvoiceBrand brand) { + String stated = (brand.monogramTop() + brand.monogramBottom()).trim(); + if (!stated.isBlank()) { + return stated; + } + String name = brand.name().trim(); + return name.isEmpty() ? "" : name.substring(0, 1).toUpperCase(java.util.Locale.ENGLISH); + } + + private static void writeReachable(ParagraphBuilder paragraph, String prose, + InvoiceNotesBlock notes, InvoiceContactBlock supplier) { + List found = new ArrayList<>(); + addIfPresent(found, prose, notes.contactEmail(), InvoiceUri.mailLink(notes.contactEmail())); + addIfPresent(found, prose, supplier.email(), InvoiceUri.mailLink(supplier.email())); + addIfPresent(found, prose, supplier.website(), InvoiceUri.webLink(supplier.website())); + found.sort(Comparator.comparingInt(Reachable::at)); + + int cursor = 0; + for (Reachable reachable : found) { + if (reachable.at() < cursor) { + continue; + } + if (reachable.at() > cursor) { + paragraph.inlineText(prose.substring(cursor, reachable.at()), + style(CLOSING_REG_SIZE, INK)); + } + paragraph.inlineText(reachable.text(), style(CLOSING_REG_SIZE, ACCENT), + reachable.link()); + cursor = reachable.at() + reachable.text().length(); + } + if (cursor < prose.length()) { + paragraph.inlineText(prose.substring(cursor), style(CLOSING_REG_SIZE, INK)); + } + } + + private static void addIfPresent(List found, String prose, String text, + DocumentLinkOptions link) { + if (text == null || text.isBlank() || link == null) { + return; + } + int at = prose.indexOf(text); + if (at >= 0) { + found.add(new Reachable(at, text, link)); + } + } + + private record Reachable(int at, String text, DocumentLinkOptions link) { + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantIcons.java new file mode 100644 index 000000000..c91e2904c --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantIcons.java @@ -0,0 +1,77 @@ +package com.demcha.compose.document.templates.invoice.presets; + +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.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * The marks the Merchant invoice packages. + * + *

      Seven the preset chooses itself — the two party discs, the bank panel, its + * note, the due-by card, the closing note, and the three contact channels. The + * other four are a vocabulary a document may name on a service line through + * {@code InvoiceServiceLines.Line.icon()}.

      + */ +final class MerchantIcons { + + static final String BILL_TO = "bill-to"; + static final String SHIP_TO = "ship-to"; + static final String BANK = "bank"; + static final String CALENDAR = "calendar"; + static final String INFO = "info"; + static final String WEBSITE = "website"; + static final String EMAIL = "email"; + static final String PHONE = "phone"; + + private static final String ICON_ROOT = "/templates/invoice/merchant/icons/"; + + /** The marks a document may name on a service line. */ + static final Set LINE_TOKENS = Set.of("bag", "tag", "globe", "support"); + + private static final Set TOKENS = Set.of( + BILL_TO, SHIP_TO, BANK, CALENDAR, INFO, WEBSITE, EMAIL, PHONE, + "bag", "tag", "globe", "support"); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private MerchantIcons() { + } + + /** + * The packaged mark a token names. + * + * @param token one of this preset's tokens + * @return the parsed icon + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, so + * a wrong one is a data error and not a missing resource + */ + static SvgIcon icon(String token) { + if (!TOKENS.contains(token)) { + throw new IllegalArgumentException( + "Unknown merchant invoice icon token '" + token + + "'. This preset packages " + LINE_TOKENS.stream().sorted().toList() + + " for a service line's mark."); + } + return CACHE.computeIfAbsent(token, MerchantIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = MerchantIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing merchant invoice icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read merchant invoice icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoice.java new file mode 100644 index 000000000..f1e0ac1a5 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantInvoice.java @@ -0,0 +1,177 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageMarginRule; +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.invoice.StructuredInvoiceData; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.FACE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.IDENTITY_H; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.MASTHEAD_H; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PAGE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PAGE_MARGIN_FIRST; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PAGE_MARGIN_LATER; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PAGE_NUMBER_BAND; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PAGE_NUMBER_SIZE; + +/** + * Merchant — a commerce invoice with a green accent: a lockup against the title + * over a short accent rule, the supplier's details beside the invoice's + * metadata, two addressed parties on filled discs, a line-item table whose rows + * are bordered boxes, a bank panel beside the totals and the due-by card, a + * closing note, and an identity band closing the sheet on a marked tile. + * + *

      Each table row is one cell

      + * + *

      A cell's stroke draws all four of its edges, which is exactly what this + * design's rows are: a soft box round each one and no interior verticals. So a + * row is a single cell spanning every column with the five columns composed + * inside it — stroking five real cells would draw four verticals the design does + * not have.

      + * + *

      An inline mark sets the line box

      + * + *

      The supplier's contact rows are the one block whose line box is not its + * type: a mark taller than the text sets the box, so a pitch measured from the + * text and solved against the text lands short by the difference. Those pitches + * are solved against the mark instead, which is measured rather than assumed — + * the first render asked for 28.5 design pixels and laid out 31.

      + * + *

      Two blocks disagree about where the page starts

      + * + *

      The lockup's ink and the title's box sit at different heights, so the flow + * opens at the earlier of the two and each carries the difference as its own + * margin. That is also why the rules under the masthead and the identity band + * are placed against those blocks' computed heights rather than against a + * guessed one.

      + * + *

      It flows

      + * + *

      The design shows four service lines and real billing brings dozens, so the + * table is the region that grows: its header repeats on every page it reaches, + * and a continuation page reserves the whole enumeration band where page one + * does not — page one ends in a footer band the design already leaves room + * under, while a continuation page ends in table rows, and a table row has no + * hole in its middle for a number to sit in.

      + * + *

      What this port leaves out

      + * + *

      The design closes with a row of three discs carrying social-platform marks. + * Those marks belong to their platforms, and the templates artifact does not + * redistribute other companies' trademarks, so neither they nor the rule that + * divided them off are drawn. The band keeps the tile and the issuer's identity, + * which is what identifies the sheet.

      + * + *

      Money and marks

      + * + *

      The currency is stated once in each money column's caption and the figures + * under it are written bare, with the code carried only on the grand total, + * which stands under no caption. A quantity of nothing — a fee charged as it + * falls rather than per unit — prints the design's own dash, because a zero in a + * quantity column reads as none delivered rather than as not counted. A service + * line names its own mark from this preset's vocabulary, and an unknown token is + * reported as a data error naming the set.

      + * + *

      Fonts

      + * + *

      The sheet is set in Gothic A1, which is the family every size was solved + * against. The templates artifact carries no fonts — register it on the session, + * or the engine substitutes and every size is solved for type that is not + * there.

      + * + *

      Usage:

      + *
      {@code
      + * DocumentTemplate template = MerchantInvoice.create();
      + * template.compose(session, invoice);
      + * }
      + * + * @since 2.4.0 + */ +public final class MerchantInvoice { + + /** Stable identifier of this preset. */ + public static final String ID = "merchant-invoice"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Merchant Invoice"; + + private MerchantInvoice() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link StructuredInvoiceData} + */ + 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, StructuredInvoiceData data) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(data, "data"); + + document.pageSize(PAGE); + document.margin(PAGE_MARGIN_FIRST); + document.pageMargins(List.of(PageMarginRule.from(2, PAGE_MARGIN_LATER))); + renderPageNumber(document); + + String currency = data.currencyCode(); + document.pageFlow(page -> { + page.name("MerchantInvoice").padding(DocumentInsets.zero()).spacing(0); + MerchantMasthead.renderBrandHeader(page, data.brand(), data.masthead()); + MerchantMasthead.renderTitleRule(page, MASTHEAD_H); + MerchantMasthead.renderIdentityRow(page, data.supplier(), data.masthead()); + MerchantMasthead.renderIdentityRule(page, IDENTITY_H); + MerchantParties.render(page, data.billTo(), data.shipTo()); + MerchantLines.render(page, data.serviceLines(), currency); + MerchantSettlement.render(page, data.payment(), data.totals(), currency); + MerchantClosing.renderNoteRule(page); + MerchantClosing.renderNote(page, data.notes(), data.supplier()); + MerchantClosing.renderIdentityRule(page); + MerchantClosing.renderIdentity(page, data.brand(), data.supplier()); + }); + } + + /** + * The enumeration. The design has none — it is one sheet — but the + * document flows, and a reader holding page 1 of 2 has to be able to tell + * that page 2 is missing. + * + *

      The face is stated because the zone's own default is the standard-14 + * one, which would leave the number the single line on the sheet in a + * family the design never uses.

      + */ + private static void renderPageNumber(DocumentSession document) { + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .height((float) PAGE_NUMBER_BAND) + .fontName(FACE) + .fontSize((float) PAGE_NUMBER_SIZE) + .textColor(INK) + .centerText("Page {page} of {pages}") + .showSeparator(false) + .build()); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantLines.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantLines.java new file mode 100644 index 000000000..4c6dafb21 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantLines.java @@ -0,0 +1,224 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +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.node.TextAlign; +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.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.invoice.InvoiceServiceLines; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CELL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.COLUMN_CENTRED; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.COLUMN_SHARES; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.ITEM_TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.ON_FILL; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PARTY_BLOCK_H; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_ROW; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_SOFT; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TABLE_HEADER_H; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TABLE_HEAD_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TABLE_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TABLE_ICON_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TABLE_PAD_CENTRED; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TABLE_PAD_EDGE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TABLE_PAD_HEAD; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TABLE_PAD_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TABLE_ROW_H; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.WHITE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.capGap; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.py; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.style; + +/** + * The line-item table: a dark caps header that repeats on every page it reaches, + * and one bordered row per service line. + * + *

      Each row is one cell

      + * + *

      A cell's stroke draws all four of its edges, which is exactly what this + * design's rows are — a soft box round each one, with no interior verticals. So + * a row is a single cell spanning every column, and the five columns are a + * composed row inside it. Stroking five real cells would draw four verticals the + * design does not have.

      + */ +final class MerchantLines { + + private MerchantLines() { + } + + /** + * The table. + * + * @param page the page flow + * @param serviceLines the lines and their column captions + * @param currencyCode the code the two money captions carry + */ + static void render(PageFlowBuilder page, InvoiceServiceLines serviceLines, + String currencyCode) { + List lines = serviceLines.lines(); + page.addTable(table -> { + table.name("LineItems").width(CONTENT_W); + table.margin(new DocumentInsets(py(667 - 451) - PARTY_BLOCK_H, 0, 0, 0)); + List columns = new ArrayList<>(); + for (double share : COLUMN_SHARES) { + columns.add(DocumentTableColumn.fixed(CONTENT_W * share)); + } + table.columns(columns.toArray(new DocumentTableColumn[0])); + renderHeader(table, serviceLines.columns(), currencyCode); + for (int i = 0; i < lines.size(); i++) { + table.rowCells(List.of(rowCell(lines.get(i), i, currencyCode))); + } + }); + } + + /** + * The captions, with the currency stated once in each money column. + * + *

      The design puts the code in the caption and writes the figures under it + * bare, which is why nothing in the table carries a currency of its own.

      + */ + private static List captions(InvoiceServiceLines.Columns columns, + String currencyCode) { + return List.of( + columns.description(), + columns.servicePeriod(), + columns.quantity(), + MerchantText.captionWithCurrency(columns.unitPrice(), currencyCode), + MerchantText.captionWithCurrency(columns.amount(), currencyCode)); + } + + private static void renderHeader(TableBuilder table, InvoiceServiceLines.Columns columns, + String currencyCode) { + List captions = captions(columns, currencyCode); + double pad = (TABLE_HEADER_H - LINE_BOX * TABLE_HEAD_SIZE) / 2.0; + List cells = new ArrayList<>(); + for (int i = 0; i < captions.size(); i++) { + DocumentInsets insets = COLUMN_CENTRED[i] + ? new DocumentInsets(pad, TABLE_PAD_CENTRED, pad, TABLE_PAD_CENTRED) + : new DocumentInsets(pad, TABLE_PAD_EDGE, pad, TABLE_PAD_HEAD); + DocumentTableStyle cellStyle = DocumentTableStyle.builder() + .padding(insets) + .fillColor(INK) + .stroke(DocumentStroke.of(INK, 0)) + .textStyle(bold(TABLE_HEAD_SIZE, ON_FILL)) + .textAnchor(COLUMN_CENTRED[i] + ? DocumentTableTextAnchor.CENTER + : DocumentTableTextAnchor.CENTER_LEFT) + .build(); + cells.add(new DocumentTableCell(List.of(captions.get(i)), cellStyle)); + } + table.headerCells(cells); + table.repeatHeader(); + } + + /** One service line: a bordered cell across every column, holding a row of five. */ + private static DocumentTableCell rowCell(InvoiceServiceLines.Line line, int index, + String currencyCode) { + double pad = (TABLE_ROW_H - descriptionHeight()) / 2.0; + DocumentTableStyle cellStyle = DocumentTableStyle.builder() + .padding(DocumentInsets.zero()) + .fillColor(WHITE) + .stroke(DocumentStroke.of(RULE_SOFT, RULE_ROW)) + .textStyle(style(CELL_SIZE, INK)) + .build(); + + SectionBuilder holder = new SectionBuilder(); + holder.name("LineRow_" + index + "Holder"); + holder.addRow("LineRow_" + index, row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .padding(new DocumentInsets(pad, 0, pad, 0)); + List widths = new ArrayList<>(); + for (double share : COLUMN_SHARES) { + widths.add(DocumentRowColumn.fixed(CONTENT_W * share)); + } + row.columns(widths.toArray(new DocumentRowColumn[0])); + row.add(descriptionCell(line, index)); + row.addParagraph(p -> p.name("LineService_" + index) + .text(line.servicePeriod()).textStyle(style(CELL_SIZE, INK)) + .align(TextAlign.CENTER)); + row.addParagraph(p -> p.name("LineQuantity_" + index) + .text(MerchantText.quantity(line.quantity())) + .textStyle(style(CELL_SIZE, INK)).align(TextAlign.CENTER)); + row.addParagraph(p -> p.name("LineUnitPrice_" + index) + .text(MerchantText.money(line.unitPrice())) + .textStyle(style(CELL_SIZE, INK)).align(TextAlign.CENTER)); + row.addParagraph(p -> p.name("LineAmount_" + index) + .text(MerchantText.money(line.amount())) + .textStyle(style(CELL_SIZE, INK)).align(TextAlign.CENTER)); + }); + return new DocumentTableCell(List.of(), cellStyle, COLUMN_SHARES.length, 1, + holder.build()); + } + + /** + * The mark and the two-line description beside it. + * + *

      The mark hangs in a fixed gutter and the text takes the rest, so a + * longer product name wraps under itself rather than under the mark. A line + * that names no mark keeps the gutter, so the text lanes stay on their axis + * down the column.

      + */ + private static DocumentNode descriptionCell(InvoiceServiceLines.Line line, int index) { + String token = line.icon(); + // The block is a row and it sits inside one, which the layout compiler + // refuses — so it goes through a LayerStack layer, the same way every + // other horizontal pair on this sheet does. + SectionBuilder inner = new SectionBuilder(); + inner.name("LineDescription_" + index + "Holder"); + inner.addRow("LineDescription_" + index, cell -> { + cell.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .padding(new DocumentInsets(0, 0, 0, TABLE_PAD_ICON)) + .columns(DocumentRowColumn.fixed(TABLE_ICON_GUTTER), + DocumentRowColumn.weight(1)); + cell.addSection("LineIcon_" + index, gutter -> { + gutter.spacing(0); + if (!token.isBlank()) { + gutter.addSvgIcon(MerchantIcons.icon(token), TABLE_ICON); + } + }); + cell.addSection("LineText_" + index, text -> { + text.spacing(capGap(24, ITEM_TITLE_SIZE, true, CELL_SIZE, false)); + text.addParagraph(p -> p + .name("LineTitle_" + index) + .text(line.title()) + .textStyle(bold(ITEM_TITLE_SIZE, INK))); + text.addParagraph(p -> p + .name("LineSubtitle_" + index) + .text(line.description()) + .textStyle(style(CELL_SIZE, INK))); + }); + }); + DocumentNode row = inner.build(); + SectionBuilder layered = new SectionBuilder(); + layered.name("LineDescription_" + index + "Layer"); + layered.addLayerStack(stack -> stack + .name("LineDescription_" + index + "Stack") + .layer(row, LayerAlign.TOP_LEFT, 0)); + return layered.build(); + } + + /** The tallest cell in a row, and therefore what its padding is solved against. */ + private static double descriptionHeight() { + return LINE_BOX * ITEM_TITLE_SIZE + + capGap(24, ITEM_TITLE_SIZE, true, CELL_SIZE, false) + + LINE_BOX * CELL_SIZE; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantMasthead.java new file mode 100644 index 000000000..b3f1d40ec --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantMasthead.java @@ -0,0 +1,252 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.RowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.InlineImageAlignment; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; + +import java.util.List; +import java.util.function.Consumer; + +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CONTACT_GAP_PX; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CONTACT_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CONTACT_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CONTENT_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.DIVIDER_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.LEFT_COLUMN_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.LOGO_MARGIN_T; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.LOGO_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.META_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.META_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_SOFT; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_STRONG; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_THIN; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.SUPPLIER_NAME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.SUPPLIER_TAX_GAP_PX; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TITLE_MARGIN_T; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TITLE_RULE_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TITLE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOP_BEARING_REGULAR; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.capGap; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.capTop; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.inkGapToImage; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.px; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.py; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.spaces; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.style; + +/** + * The head of the sheet: the lockup against the title over its accent rule, then + * the supplier's details beside the invoice's metadata, split by a hairline. + */ +final class MerchantMasthead { + + private MerchantMasthead() { + } + + /** + * The lockup and the title. + * + *

      The two disagree about where the page starts — the lockup's ink and the + * title's box sit at different heights — so the flow opens at the earlier of + * them and each carries the difference as its own margin. The mark is the + * caller's: the lockup draws the brand's logo at the design's measured width, + * or the brand's name when there is none.

      + */ + static void renderBrandHeader(PageFlowBuilder page, InvoiceBrand brand, + InvoiceMasthead masthead) { + page.addRow("Masthead", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(LOGO_W), DocumentRowColumn.weight(1)); + row.addSection("BrandLockup", cell -> { + cell.spacing(0); + if (brand.logo() != null) { + // The lockup's ink starts two pixels inside the content + // column's own left edge. + cell.add(new ImageBuilder() + .name("BrandLogo") + .source(brand.logo()) + .width(LOGO_W) + .margin(new DocumentInsets(LOGO_MARGIN_T, 0, 0, px(2))) + .build()); + } else if (!brand.name().isBlank()) { + cell.addParagraph(p -> p + .name("BrandWordmark") + .text(brand.name()) + .textStyle(bold(SUPPLIER_NAME_SIZE, INK)) + .margin(new DocumentInsets(LOGO_MARGIN_T, 0, 0, px(2)))); + } + }); + row.addParagraph(p -> p + .name("InvoiceTitle") + .text(masthead.title()) + .textStyle(bold(TITLE_SIZE, INK)) + .align(TextAlign.RIGHT) + .margin(new DocumentInsets(TITLE_MARGIN_T, 0, 0, 0))); + }); + } + + /** The short accent rule under the title, at the design's own inset from the right. */ + static void renderTitleRule(PageFlowBuilder page, double mastheadHeight) { + page.addLine(line -> line + .name("TitleRule") + .horizontal(TITLE_RULE_W) + .thickness(py(2.6)) + .color(ACCENT) + .margin(new DocumentInsets( + Math.max(0, py(122) - MerchantStyles.MARGIN_TOP - mastheadHeight), + 0, 0, CONTENT_W - TITLE_RULE_W))); + } + + /** The supplier's details against the invoice's metadata. */ + static void renderIdentityRow(PageFlowBuilder page, InvoiceContactBlock supplier, + InvoiceMasthead masthead) { + page.addRow("IdentityRow", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(LEFT_COLUMN_W), + DocumentRowColumn.fixed(DIVIDER_W), + DocumentRowColumn.weight(1)) + // The row's top is the divider's; the rule above it occupies a + // whole point whatever it paints. + .margin(new DocumentInsets( + py(144 - 122) - MerchantStyles.RULE_BOX, 0, 0, 0)); + row.addSection("SupplierColumn", column -> renderSupplier(column, supplier)); + row.addSection("IdentityColumnDivider", column -> { + column.spacing(0); + column.addLine(line -> line + .name("IdentityColumnDivider") + .vertical(py(391 - 144)) + .thickness(DIVIDER_W) + .color(RULE_SOFT)); + }); + row.addSection("MetaColumn", column -> renderMeta(column, masthead)); + }); + } + + /** The rule under both columns. */ + static void renderIdentityRule(PageFlowBuilder page, double identityHeight) { + page.addLine(line -> line + .name("IdentityRule") + .horizontal(CONTENT_W) + .thickness(RULE_THIN) + .color(RULE_STRONG) + .margin(new DocumentInsets( + Math.max(0, py(423 - 144) - identityHeight), 0, 0, 0))); + } + + private static void renderSupplier(SectionBuilder column, InvoiceContactBlock supplier) { + column.spacing(0); + column.addParagraph(p -> p + .name("SupplierName") + .text(supplier.legalName()) + .textStyle(bold(SUPPLIER_NAME_SIZE, INK)) + .margin(capTop(154 - 144, SUPPLIER_NAME_SIZE, true))); + + column.addSection("SupplierAddress", block -> { + block.spacing(capGap(25, BODY_SIZE, false, BODY_SIZE, false)) + .margin(new DocumentInsets( + capGap(186 - 154, SUPPLIER_NAME_SIZE, true, BODY_SIZE, false), + 0, 0, 0)); + List lines = supplier.addressLines(); + for (int i = 0; i < lines.size(); i++) { + String line = lines.get(i); + int index = i; + block.addParagraph(p -> p + .name("SupplierAddress_" + index) + .text(line) + .textStyle(style(BODY_SIZE, INK))); + } + }); + + // The three contact rows are the one block on this sheet whose line box + // is not the type: an inline mark taller than the text sets the box, so + // both the pitch and the block's own start are measured against the mark. + column.addSection("SupplierContact", block -> { + block.spacing(py(28.5) - CONTACT_ICON) + .margin(new DocumentInsets( + inkGapToImage(280 - 236, BODY_SIZE, false), 0, 0, 0)); + channel(block, "Website", MerchantIcons.WEBSITE, supplier.website(), + InvoiceUri.webLink(supplier.website())); + channel(block, "Email", MerchantIcons.EMAIL, supplier.email(), + InvoiceUri.mailLink(supplier.email())); + channel(block, "Phone", MerchantIcons.PHONE, supplier.phone(), + InvoiceUri.telLink(supplier.phone())); + }); + + if (!supplier.taxRegistrationNumber().isBlank()) { + column.addParagraph(p -> { + p.name("SupplierTaxId"); + p.inlineText(supplier.taxRegistrationLabel(), style(BODY_SIZE, INK)); + p.inlineText(spaces(SUPPLIER_TAX_GAP_PX, BODY_SIZE), style(BODY_SIZE, INK)); + p.inlineText(supplier.taxRegistrationNumber(), style(BODY_SIZE, INK)); + // Measured from the last contact mark, for the same reason: the + // block above ends at its mark's foot, not at a text box's. + p.margin(new DocumentInsets( + py(377 - 337) - CONTACT_ICON - TOP_BEARING_REGULAR * BODY_SIZE, + 0, 0, 0)); + }); + } + } + + private static void channel(SectionBuilder block, String name, String token, + String value, DocumentLinkOptions link) { + if (value.isBlank()) { + return; + } + block.addParagraph(p -> { + p.name("SupplierContact" + name); + p.inlineSvgIcon(MerchantIcons.icon(token), CONTACT_ICON, InlineImageAlignment.CENTER); + p.inlineText(spaces(CONTACT_GAP_PX, CONTACT_SIZE), style(CONTACT_SIZE, INK)); + if (link == null) { + p.inlineText(value, style(CONTACT_SIZE, INK)); + } else { + p.inlineText(value, style(CONTACT_SIZE, INK), link); + } + }); + } + + private static void renderMeta(SectionBuilder column, InvoiceMasthead masthead) { + column.spacing(capGap(40.8, BODY_SIZE, false, BODY_SIZE, false)) + .padding(new DocumentInsets(0, 0, 0, META_PAD_L)) + .margin(capTop(156 - 144, BODY_SIZE, false)); + List entries = masthead.entries(); + for (int i = 0; i < entries.size(); i++) { + InvoiceMasthead.Entry entry = entries.get(i); + int index = i; + layeredRow(column, "MetaRow_" + index, row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(META_LABEL_W), + DocumentRowColumn.weight(1)); + row.addParagraph(p -> p.text(entry.label()).textStyle(style(BODY_SIZE, INK))); + row.addParagraph(p -> p + .text(entry.value()) + .textStyle(style(BODY_SIZE, entry.emphasized() ? ACCENT : INK))); + }); + } + } + + /** A row wrapped in a layer, so it can sit inside a row cell. */ + static void layeredRow(SectionBuilder parent, String name, Consumer spec) { + SectionBuilder holder = new SectionBuilder(); + holder.name(name + "Holder"); + holder.addRow(name, spec); + DocumentNode node = holder.build(); + parent.addLayerStack(stack -> stack + .name(name + "Layer") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantParties.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantParties.java new file mode 100644 index 000000000..4bfbf33fe --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantParties.java @@ -0,0 +1,142 @@ +package com.demcha.compose.document.templates.invoice.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.RowVerticalAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.BILL_TO_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.DIVIDER_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.LEFT_COLUMN_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PARTY_DISC_D; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PARTY_DISC_GLYPH; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PARTY_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PARTY_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PARTY_NAME_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PARTY_TAX_GAP_PX; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_SOFT; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.SHIP_TO_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.capGap; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.capTop; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.py; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.spaces; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.style; +import static com.demcha.compose.document.templates.invoice.presets.MerchantMasthead.layeredRow; + +/** + * The two addressed parties, each under a heading opening with a filled disc. + */ +final class MerchantParties { + + private MerchantParties() { + } + + /** + * The parties row. + * + * @param page the page flow + * @param billTo the billed party + * @param shipTo the shipped-to party, or {@code null} when the invoice ships + * nowhere and the column stays empty + */ + static void render(PageFlowBuilder page, InvoiceRecipient billTo, InvoiceRecipient shipTo) { + page.addRow("PartiesRow", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(LEFT_COLUMN_W), + DocumentRowColumn.fixed(DIVIDER_W), + DocumentRowColumn.weight(1)) + // The row's top is the discs'; the rule above it occupies a + // whole point whatever it paints. + .margin(new DocumentInsets(py(451 - 423) - RULE_BOX, 0, 0, 0)); + row.addSection("BillToColumn", column -> + renderParty(column, "BillTo", billTo, MerchantIcons.BILL_TO, BILL_TO_PAD_L)); + row.addSection("PartyColumnDivider", column -> { + column.spacing(0); + // The divider outlasts both columns' text, which is why its own + // length is measured rather than taken from either of them. + column.addLine(line -> line + .name("PartyColumnDivider") + .vertical(py(640 - 452)) + .thickness(DIVIDER_W) + .color(RULE_SOFT) + .margin(new DocumentInsets(py(452 - 451), 0, 0, 0))); + }); + row.addSection("ShipToColumn", column -> { + if (shipTo != null) { + renderParty(column, "ShipTo", shipTo, MerchantIcons.SHIP_TO, SHIP_TO_PAD_L); + } else { + column.spacing(0); + } + }); + }); + } + + private static void renderParty(SectionBuilder column, String id, InvoiceRecipient party, + String token, double padLeft) { + column.spacing(0).padding(new DocumentInsets(0, 0, 0, padLeft)); + + layeredRow(column, id + "Label", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(PARTY_GUTTER), DocumentRowColumn.weight(1)); + row.add(new ShapeContainerBuilder() + .name(id + "Disc") + .circle(PARTY_DISC_D) + .fillColor(ACCENT) + .center(MerchantIcons.icon(token).node(PARTY_DISC_GLYPH)) + .build()); + row.addParagraph(p -> p + .name(id + "LabelText") + .text(party.heading()) + .textStyle(bold(PARTY_LABEL_SIZE, ACCENT))); + }); + + column.addSection(id + "Body", block -> { + block.spacing(0).padding(new DocumentInsets(0, 0, 0, PARTY_GUTTER)); + // The label row is as tall as the disc, so the party name is measured + // from the disc's foot rather than from the label's. + block.addParagraph(p -> p + .name(id + "Name") + .text(party.name()) + .textStyle(bold(PARTY_NAME_SIZE, INK)) + .margin(capTop(498 - 495, PARTY_NAME_SIZE, true))); + + block.addSection(id + "Address", lines -> { + lines.spacing(capGap(24, BODY_SIZE, false, BODY_SIZE, false)) + .margin(new DocumentInsets( + capGap(527 - 498, PARTY_NAME_SIZE, true, BODY_SIZE, false), + 0, 0, 0)); + List address = party.addressLines(); + for (int i = 0; i < address.size(); i++) { + String line = address.get(i); + int index = i; + lines.addParagraph(p -> p + .name(id + "Address_" + index) + .text(line) + .textStyle(style(BODY_SIZE, INK))); + } + }); + + if (!party.registrationNumber().isBlank()) { + block.addParagraph(p -> { + p.name(id + "Registration"); + p.inlineText(party.registrationLabel(), style(BODY_SIZE, INK)); + p.inlineText(spaces(PARTY_TAX_GAP_PX, BODY_SIZE), style(BODY_SIZE, INK)); + p.inlineText(party.registrationNumber(), style(BODY_SIZE, INK)); + p.margin(new DocumentInsets( + capGap(621 - 575, BODY_SIZE, false, BODY_SIZE, false), 0, 0, 0)); + }); + } + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantSettlement.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantSettlement.java new file mode 100644 index 000000000..7df328d32 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantSettlement.java @@ -0,0 +1,312 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +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.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.BORDER_SOFT; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CARD_BOTTOM_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CARD_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CARD_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CARD_ICON_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CARD_LABEL_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CARD_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CARD_TOP_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.CARD_VALUE_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.DUE_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.DUE_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.INK; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.LINE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_BOTTOM_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_HEAD_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_HEAD_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_ICON_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_ICON_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_LABEL_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_LAST_ROW_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_NOTE_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_NOTE_GUTTER; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_NOTE_ICON; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_NOTE_PITCH_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_NOTE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_PAD_R; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_RADIUS; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_ROW1_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_ROW_PITCH_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_ROW_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_RULE_PAD_L; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_RULE_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_RULE_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_TOP_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.PANEL_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_BOX; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_MEDIUM; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_SOFT; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_THIN; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.RULE_TOTALS; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.SUMMARY_GAP_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.SURFACE_SOFT; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOP_BEARING_BOLD; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOP_BEARING_REGULAR; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOTALS_DUE_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOTALS_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOTALS_ROW1_CAP_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOTALS_ROW_PITCH_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOTALS_RULE_W; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOTALS_RULE_Y; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOTALS_VALUE_PAD_R; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOTALS_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOTAL_DUE_LABEL_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.TOTAL_DUE_VALUE_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.bold; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.capGap; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.capTop; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.py; +import static com.demcha.compose.document.templates.invoice.presets.MerchantStyles.style; +import static com.demcha.compose.document.templates.invoice.presets.MerchantMasthead.layeredRow; + +/** + * The band under the table: the bank panel on the left, and on the right the + * totals over the card carrying the due date. + */ +final class MerchantSettlement { + + private MerchantSettlement() { + } + + /** + * The settlement row. + * + * @param page the page flow + * @param payment the bank details and the due notice + * @param totals the summed rows and the grand total + * @param currencyCode the code the grand total carries + */ + static void render(PageFlowBuilder page, InvoicePaymentBlock payment, + InvoiceTotalsBlock totals, String currencyCode) { + page.addRow("Settlement", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(PANEL_W), + DocumentRowColumn.fixed(SUMMARY_GAP_W), + DocumentRowColumn.weight(1)) + .margin(new DocumentInsets(py(PANEL_TOP_Y - 974), 0, 0, 0)); + row.addSection("PaymentPanel", column -> renderPanel(column, payment)); + row.addSection("SettlementGap", column -> column.spacing(0)); + row.addSection("SettlementRight", column -> { + column.spacing(0); + renderTotals(column, totals, currencyCode); + renderDueCard(column, payment); + }); + }); + } + + private static void renderPanel(SectionBuilder column, InvoicePaymentBlock payment) { + column.spacing(0) + .keepTogether() + .fillColor(SURFACE_SOFT) + .stroke(DocumentStroke.of(BORDER_SOFT, RULE_THIN)) + .cornerRadius(PANEL_RADIUS); + + layeredRow(column, "PaymentHeading", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(PANEL_HEAD_GUTTER), + DocumentRowColumn.weight(1)) + .padding(new DocumentInsets( + py(PANEL_ICON_Y - PANEL_TOP_Y), 0, 0, PANEL_ICON_PAD_L)); + row.add(MerchantIcons.icon(MerchantIcons.BANK).node(PANEL_ICON)); + row.addParagraph(p -> p + .name("PaymentHeadingText") + .text(payment.heading()) + .textStyle(bold(PANEL_HEAD_SIZE, ACCENT))); + }); + + column.addSection("PaymentRows", rows -> { + rows.spacing(capGap(PANEL_ROW_PITCH_Y, PANEL_ROW_SIZE, false, PANEL_ROW_SIZE, false)) + .padding(new DocumentInsets(0, PANEL_PAD_R, 0, PANEL_PAD_L)) + // Measured from the mark, because the heading layer's height + // is the mark's and not the label's line box. + .margin(new DocumentInsets( + py(PANEL_ROW1_CAP_Y - PANEL_ICON_Y) + - TOP_BEARING_REGULAR * PANEL_ROW_SIZE - PANEL_ICON, + 0, 0, 0)); + List fields = payment.fields(); + for (int i = 0; i < fields.size(); i++) { + InvoicePaymentBlock.Field field = fields.get(i); + int index = i; + layeredRow(rows, "PaymentRow_" + index, row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(PANEL_LABEL_W), + DocumentRowColumn.weight(1)); + row.addParagraph(p -> p.text(field.label()) + .textStyle(style(PANEL_ROW_SIZE, INK))); + row.addParagraph(p -> { + p.text(field.value()).textStyle(style(PANEL_ROW_SIZE, INK)); + // A bank detail is a reference, not a destination — except + // an address, the one field a reader would act on. + if (field.value().contains("@")) { + p.link(InvoiceUri.mailLink(field.value())); + } + }); + }); + } + }); + + if (payment.instruction().isBlank()) { + return; + } + column.addLine(line -> line + .name("PaymentPanelRule") + .horizontal(PANEL_RULE_W) + .thickness(RULE_THIN) + .color(RULE_SOFT) + .margin(new DocumentInsets( + py(PANEL_RULE_Y - PANEL_LAST_ROW_CAP_Y) + + TOP_BEARING_REGULAR * PANEL_ROW_SIZE + - LINE_BOX * PANEL_ROW_SIZE, + 0, 0, PANEL_RULE_PAD_L))); + layeredRow(column, "PaymentNote", row -> { + row.spacing(0) + .columns(DocumentRowColumn.fixed(PANEL_NOTE_GUTTER), + DocumentRowColumn.weight(1)) + .padding(new DocumentInsets( + py(PANEL_NOTE_CAP_Y - PANEL_RULE_Y) - RULE_BOX + - TOP_BEARING_REGULAR * PANEL_NOTE_SIZE, + 0, + py(PANEL_BOTTOM_Y - PANEL_NOTE_CAP_Y - PANEL_NOTE_PITCH_Y) + + TOP_BEARING_REGULAR * PANEL_NOTE_SIZE + - LINE_BOX * PANEL_NOTE_SIZE, + PANEL_PAD_L)); + row.add(MerchantIcons.icon(MerchantIcons.INFO).node(PANEL_NOTE_ICON)); + row.addSection("PaymentNoteText", text -> { + text.spacing(capGap(PANEL_NOTE_PITCH_Y, PANEL_NOTE_SIZE, false, + PANEL_NOTE_SIZE, false)); + String[] lines = payment.instruction().split("\n"); + for (int i = 0; i < lines.length; i++) { + String prose = lines[i]; + int index = i; + text.addParagraph(p -> p + .name("PaymentNoteLine_" + index) + .text(prose) + .textStyle(style(PANEL_NOTE_SIZE, INK))); + } + }); + }); + } + + private static void renderTotals(SectionBuilder column, InvoiceTotalsBlock totals, + String currencyCode) { + column.addSection("Totals", block -> { + block.spacing(0) + .keepTogether() + .margin(capTop(TOTALS_ROW1_CAP_Y - PANEL_TOP_Y, TOTALS_LABEL_SIZE, false)); + List rows = totals.rows(); + for (int i = 0; i < rows.size(); i++) { + InvoiceTotalsBlock.Row entry = rows.get(i); + boolean first = i == 0; + int index = i; + layeredRow(block, "TotalsRow_" + index, row -> { + row.spacing(0) + .padding(new DocumentInsets(0, TOTALS_VALUE_PAD_R, 0, 0)) + // The row's box is the value's, which is the taller of + // the two, so the pitch is solved against that and not + // against the label the pitch was measured on. + .margin(new DocumentInsets(first ? 0 + : py(TOTALS_ROW_PITCH_Y) + + TOP_BEARING_REGULAR * TOTALS_LABEL_SIZE + - LINE_BOX * TOTALS_VALUE_SIZE + - TOP_BEARING_REGULAR * TOTALS_LABEL_SIZE, + 0, 0, 0)) + .evenWeights(); + row.addParagraph(p -> p.text(entry.label()) + .textStyle(style(TOTALS_LABEL_SIZE, INK))); + row.addParagraph(p -> p + .text(MerchantText.money(entry.amount())) + .textStyle(style(TOTALS_VALUE_SIZE, INK)) + .align(TextAlign.RIGHT)); + }); + } + block.addLine(line -> line + .name("TotalsRule") + .horizontal(TOTALS_RULE_W) + .thickness(RULE_MEDIUM) + .color(RULE_TOTALS) + // Same correction: the box above this rule is the value's. + .margin(new DocumentInsets( + py(TOTALS_RULE_Y - TOTALS_ROW1_CAP_Y - TOTALS_ROW_PITCH_Y) + + TOP_BEARING_REGULAR * TOTALS_LABEL_SIZE + - LINE_BOX * TOTALS_VALUE_SIZE, + 0, 0, 0))); + layeredRow(block, "TotalDue", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .padding(new DocumentInsets( + py(TOTALS_DUE_CAP_Y - TOTALS_RULE_Y) - RULE_BOX + - TOP_BEARING_BOLD * TOTAL_DUE_VALUE_SIZE, + TOTALS_VALUE_PAD_R, 0, 0)) + .evenWeights(); + row.addParagraph(p -> p + .name("TotalDueLabel") + .text(totals.totalLabel()) + .textStyle(bold(TOTAL_DUE_LABEL_SIZE, INK))); + row.addParagraph(p -> p + .name("TotalDueValue") + .text(MerchantText.coded(currencyCode, totals.totalAmount())) + .textStyle(bold(TOTAL_DUE_VALUE_SIZE, ACCENT)) + .align(TextAlign.RIGHT)); + }); + }); + } + + private static void renderDueCard(SectionBuilder column, InvoicePaymentBlock payment) { + if (payment.dueNotice().isBlank() && payment.dueNoticeEmphasis().isBlank()) { + return; + } + column.addSection("DueDateCard", panel -> { + panel.spacing(0) + .keepTogether() + .fillColor(SURFACE_SOFT) + .cornerRadius(PANEL_RADIUS) + // Measured from the total's cap, which is what sits above it + // in this column. + .margin(new DocumentInsets( + py(CARD_TOP_Y - TOTALS_DUE_CAP_Y) + + TOP_BEARING_BOLD * TOTAL_DUE_VALUE_SIZE + - LINE_BOX * TOTAL_DUE_VALUE_SIZE, + 0, 0, 0)); + layeredRow(panel, "DueDateRow", row -> { + row.spacing(0) + .verticalAlign(RowVerticalAlign.CENTER) + .columns(DocumentRowColumn.fixed(CARD_GUTTER), + DocumentRowColumn.weight(1)) + .padding(new DocumentInsets( + py(CARD_ICON_Y - CARD_TOP_Y), 0, + py(CARD_BOTTOM_Y - CARD_ICON_Y) - CARD_ICON, CARD_PAD_L)); + row.add(MerchantIcons.icon(MerchantIcons.CALENDAR).node(CARD_ICON)); + row.addSection("DueDateText", text -> { + text.spacing(capGap(CARD_VALUE_CAP_Y - CARD_LABEL_CAP_Y, + DUE_LABEL_SIZE, true, DUE_VALUE_SIZE, true)); + text.addParagraph(p -> p + .name("DueDateLabel") + .text(payment.dueNotice()) + .textStyle(bold(DUE_LABEL_SIZE, INK))); + text.addParagraph(p -> p + .name("DueDateValue") + .text(payment.dueNoticeEmphasis()) + .textStyle(bold(DUE_VALUE_SIZE, INK))); + }); + }); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantStyles.java new file mode 100644 index 000000000..494f53885 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantStyles.java @@ -0,0 +1,358 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.font.FontName; + +/** + * Every measurement, colour and type size of the Merchant invoice. + * + *

      Two scales, and a third for squares

      + * + *

      The design's aspect is not A4's, so one conversion constant cannot serve + * both axes: {@link #px} is horizontal and carries widths and type sizes, + * {@link #py} is vertical and carries heights and pitches, and {@link #sq} is + * their mean for the marks and discs, which cannot match both.

      + * + *

      Sizes are solved from ink, positions from cap tops

      + * + *

      The design's own face is not bundled, so each size is solved from the + * measured ink width of the string it sets and is named here by that string. + * Vertical placement is by cap top rather than by box edge, because ink is what + * a design can be measured on.

      + */ +final class MerchantStyles { + + private MerchantStyles() { + } + + // ------------------------------------------------------------------ + // The page and its scales + // ------------------------------------------------------------------ + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + + static final double PAGE_W = PAGE.width(); + private static final double PAGE_H = PAGE.height(); + + private static final double REF_W = 1054.0; + private static final double REF_H = 1492.0; + + private static final double PX = PAGE_W / REF_W; + private static final double PY = PAGE_H / REF_H; + private static final double SQ = (PX + PY) / 2.0; + + static double px(double designPixels) { + return designPixels * PX; + } + + static double py(double designPixels) { + return designPixels * PY; + } + + static double sq(double designPixels) { + return designPixels * SQ; + } + + static final double MARGIN_L = px(35); + static final double MARGIN_R = px(38); + static final double MARGIN_B_FIRST = py(6); + + /** + * The enumeration's band, and the reason a continuation page reserves more + * than page one: page one ends in a footer band the design already leaves + * room under, where a continuation page ends in table rows, and a table row + * has no hole in its middle for a number to sit in. + */ + static final double PAGE_NUMBER_BAND = 10.0; + static final double MARGIN_B_LATER = PAGE_NUMBER_BAND + py(6); + + static final double CONTENT_W = PAGE_W - MARGIN_L - MARGIN_R; + + // ------------------------------------------------------------------ + // Type + // ------------------------------------------------------------------ + + /** + * The design's own face is not bundled. Gothic A1 is the family every size + * below was solved against; the templates artifact carries no fonts — + * register it on the session, or the engine substitutes and every size is + * solved for type that is not there. + */ + static final FontName FACE = FontName.GOTHIC_A1; + + private static final double FACE_ASCENT = 0.7979; + private static final double FACE_DESCENT = 0.2021; + private static final double CAP_REGULAR = 0.7314; + private static final double CAP_BOLD = 0.7725; + + static final double LINE_BOX = FACE_ASCENT + FACE_DESCENT; + static final double TOP_BEARING_REGULAR = FACE_ASCENT - CAP_REGULAR; + static final double TOP_BEARING_BOLD = FACE_ASCENT - CAP_BOLD; + + /** Gothic A1's space advance, for the two places the design sets a measured gap. */ + private static final double FACE_SPACE_ADVANCE = 0.2441; + + /** + * A size solved from a string's measured ink width. + * + *

      Width, not cap band, and deliberately: an ink width measured over 100 to + * 350 design pixels is good to about 1%, where a cap band measured over 12 is + * good to about 7%. Every size below names the string it was solved from.

      + */ + static double sizeForInk(double designPixelsPerEm) { + return px(designPixelsPerEm); + } + + static double topBearing(double size, boolean bold) { + return (bold ? TOP_BEARING_BOLD : TOP_BEARING_REGULAR) * size; + } + + /** The margin that puts a cap top at a measured design y. */ + static DocumentInsets capTop(double capPx, double size, boolean bold) { + return new DocumentInsets(py(capPx) - topBearing(size, bold), 0, 0, 0); + } + + /** The gap that puts the next cap top {@code deltaPx} below the previous one. */ + static double capGap(double deltaPx, double sizeAbove, boolean boldAbove, + double sizeBelow, boolean boldBelow) { + return py(deltaPx) - LINE_BOX * sizeAbove + topBearing(sizeAbove, boldAbove) + - topBearing(sizeBelow, boldBelow); + } + + /** + * The gap that puts an image's top a measured distance under the cap + * top of the text above it. + * + *

      {@link #capGap} removes a top bearing for the box below, because a text + * box starts above its own first cap. An image does not — its box top is its + * ink top — so that term is not there to remove.

      + */ + static double inkGapToImage(double deltaPx, double sizeAbove, boolean boldAbove) { + return Math.max(0, + py(deltaPx) - LINE_BOX * sizeAbove + topBearing(sizeAbove, boldAbove)); + } + + /** A run of spaces advancing a measured design width at a given size. */ + static String spaces(double widthPx, double size) { + int count = (int) Math.round(px(widthPx) / (FACE_SPACE_ADVANCE * size)); + return " ".repeat(Math.max(1, count)); + } + + // Every size is named by the string it was solved from. + static final double TITLE_SIZE = sizeForInk(64.92); + static final double SUPPLIER_NAME_SIZE = sizeForInk(18.69); + static final double BODY_SIZE = sizeForInk(15.69); + static final double PARTY_LABEL_SIZE = sizeForInk(15.82); + static final double CONTACT_SIZE = sizeForInk(14.74); + static final double PARTY_NAME_SIZE = sizeForInk(17.39); + static final double TABLE_HEAD_SIZE = sizeForInk(14.98); + static final double ITEM_TITLE_SIZE = sizeForInk(16.11); + static final double CELL_SIZE = sizeForInk(14.72); + static final double TOTALS_LABEL_SIZE = sizeForInk(15.18); + static final double TOTALS_VALUE_SIZE = sizeForInk(16.34); + static final double TOTAL_DUE_LABEL_SIZE = sizeForInk(19.16); + static final double TOTAL_DUE_VALUE_SIZE = sizeForInk(25.01); + static final double PANEL_HEAD_SIZE = sizeForInk(15.27); + static final double PANEL_ROW_SIZE = sizeForInk(13.51); + static final double PANEL_NOTE_SIZE = sizeForInk(14.00); + static final double DUE_LABEL_SIZE = sizeForInk(14.83); + static final double DUE_VALUE_SIZE = sizeForInk(20.31); + static final double CLOSING_BOLD_SIZE = sizeForInk(14.49); + static final double CLOSING_REG_SIZE = sizeForInk(14.02); + static final double FOOTER_NAME_SIZE = sizeForInk(13.57); + static final double FOOTER_ADDR_SIZE = sizeForInk(13.72); + static final double FOOTER_SITE_SIZE = sizeForInk(12.75); + static final double PAGE_NUMBER_SIZE = sizeForInk(10.0); + + static DocumentTextStyle style(double size, DocumentColor color) { + return DocumentTextStyle.builder() + .fontName(FACE).size(size).color(color) + .decoration(DocumentTextDecoration.DEFAULT).build(); + } + + static DocumentTextStyle bold(double size, DocumentColor color) { + return DocumentTextStyle.builder() + .fontName(FACE).size(size).color(color) + .decoration(DocumentTextDecoration.BOLD).build(); + } + + // ------------------------------------------------------------------ + // Colour + // ------------------------------------------------------------------ + + static final DocumentColor INK = DocumentColor.rgb(12, 27, 51); + static final DocumentColor ACCENT = DocumentColor.rgb(44, 125, 47); + static final DocumentColor SURFACE_SOFT = DocumentColor.rgb(247, 249, 246); + static final DocumentColor BORDER_SOFT = DocumentColor.rgb(228, 231, 230); + static final DocumentColor RULE_STRONG = DocumentColor.rgb(198, 200, 209); + static final DocumentColor RULE_SOFT = DocumentColor.rgb(221, 223, 228); + static final DocumentColor RULE_TOTALS = DocumentColor.rgb(145, 178, 130); + static final DocumentColor ON_FILL = DocumentColor.WHITE; + static final DocumentColor WHITE = DocumentColor.WHITE; + + // ------------------------------------------------------------------ + // The masthead's top, where two blocks disagree about where the page starts + // ------------------------------------------------------------------ + + /** The lockup's ink and the title's box start at different heights; the flow opens at the earlier. */ + static final double LOGO_INK_TOP = py(41); + static final double TITLE_BOX_TOP = py(49) - TOP_BEARING_BOLD * TITLE_SIZE; + static final double MARGIN_TOP = Math.min(LOGO_INK_TOP, TITLE_BOX_TOP); + static final double LOGO_MARGIN_T = LOGO_INK_TOP - MARGIN_TOP; + static final double TITLE_MARGIN_T = TITLE_BOX_TOP - MARGIN_TOP; + + static final DocumentInsets PAGE_MARGIN_FIRST = + new DocumentInsets(MARGIN_TOP, MARGIN_R, MARGIN_B_FIRST, MARGIN_L); + static final DocumentInsets PAGE_MARGIN_LATER = + new DocumentInsets(MARGIN_TOP, MARGIN_R, MARGIN_B_LATER, MARGIN_L); + + // ------------------------------------------------------------------ + // Rules, discs and blocks + // ------------------------------------------------------------------ + + /** A rule asked for less than a point is laid out as one. */ + static final double RULE_BOX = 1.0; + + static final double RULE_THIN = py(1.6); + static final double RULE_MEDIUM = py(2.2); + static final double RULE_ROW = py(0.8); + static final double DIVIDER_W = px(2); + static final double PANEL_RADIUS = px(10); + static final double TILE_RADIUS = sq(9); + static final double PARTY_DISC_D = sq(44); + static final double PARTY_DISC_GLYPH = sq(23); + + static final double LOGO_W = px(222); + static final double LOGO_H = px(64); + static final double TITLE_RULE_W = px(56); + static final double LEFT_COLUMN_W = px(526 - 35); + static final double CONTACT_ICON = sq(18); + static final double CONTACT_GAP_PX = 19.0; + static final double SUPPLIER_TAX_GAP_PX = 17.0; + static final double PARTY_TAX_GAP_PX = 26.0; + static final double META_PAD_L = px(593 - 528); + static final double META_LABEL_W = px(773 - 593); + static final double PARTY_GUTTER = px(97 - 35); + static final double BILL_TO_PAD_L = px(1); + static final double SHIP_TO_PAD_L = px(560 - 528); + static final double PARTY_BLOCK_H = py(640 - 451); + + // ------------------------------------------------------------------ + // The line-item table + // ------------------------------------------------------------------ + + static final double TABLE_ROW_PITCH_PX = (974 - 707) / 4.0; + static final double TABLE_HEADER_H = py(40); + static final double TABLE_ROW_H = py(TABLE_ROW_PITCH_PX); + static final double TABLE_PAD_HEAD = px(79); + static final double TABLE_PAD_ICON = px(19); + static final double TABLE_PAD_EDGE = px(8); + static final double TABLE_PAD_CENTRED = px(4); + static final double TABLE_ICON = sq(31); + static final double TABLE_ICON_GUTTER = px(110 - 54); + + /** The five columns, as shares of the content width, solved from the design. */ + static final double[] COLUMN_SHARES = {0.308359, 0.200306, 0.135576, 0.183486, 0.172273}; + + /** Only the description is left-aligned; the four columns after it are centred. */ + static final boolean[] COLUMN_CENTRED = {false, true, true, true, true}; + + // ------------------------------------------------------------------ + // Settlement + // ------------------------------------------------------------------ + + static final double PANEL_TOP_Y = 996; + static final double PANEL_ICON_Y = 1009; + static final double PANEL_ROW1_CAP_Y = 1048; + static final double PANEL_ROW_PITCH_Y = 22.5; + static final double PANEL_LAST_ROW_CAP_Y = 1228; + static final double PANEL_RULE_Y = 1254; + static final double PANEL_NOTE_CAP_Y = 1268; + static final double PANEL_NOTE_PITCH_Y = 26; + static final double PANEL_BOTTOM_Y = 1323; + + static final double TOTALS_ROW1_CAP_Y = 1018; + static final double TOTALS_ROW_PITCH_Y = 37; + static final double TOTALS_RULE_Y = 1094; + static final double TOTALS_DUE_CAP_Y = 1123; + + static final double CARD_TOP_Y = 1183; + static final double CARD_BOTTOM_Y = 1287; + static final double CARD_ICON_Y = 1212; + static final double CARD_LABEL_CAP_Y = 1214; + static final double CARD_VALUE_CAP_Y = 1240; + + static final double PANEL_W = px(435 - 35); + static final double SUMMARY_GAP_W = px(555 - 435); + static final double PANEL_PAD_L = px(54 - 35); + static final double PANEL_PAD_R = px(20); + static final double PANEL_ICON = sq(26); + static final double PANEL_HEAD_GUTTER = px(101 - 55); + static final double PANEL_ICON_PAD_L = px(55 - 35); + static final double PANEL_LABEL_W = px(221 - 54); + static final double PANEL_NOTE_ICON = sq(24); + static final double PANEL_NOTE_GUTTER = px(88 - 54); + static final double PANEL_RULE_W = px(418 - 46); + static final double PANEL_RULE_PAD_L = px(46 - 35); + + static final double TOTALS_VALUE_PAD_R = px(1016 - 981); + static final double TOTALS_RULE_W = px(986 - 555); + static final double CARD_ICON = sq(45); + static final double CARD_PAD_L = px(580 - 555); + static final double CARD_GUTTER = px(644 - 580); + + // ------------------------------------------------------------------ + // Closing note and footer + // ------------------------------------------------------------------ + + static final double NOTE_TOP_Y = 1349; + static final double NOTE_LINE1_CAP_Y = 1357; + static final double NOTE_LINE2_CAP_Y = 1379; + static final double NOTE_ICON = sq(30); + static final double NOTE_GUTTER = px(80 - 35); + + static final double FOOTER_RULE_Y = 1412; + static final double FOOTER_NAME_CAP_Y = 1426; + static final double FOOTER_ADDR_CAP_Y = 1447; + static final double FOOTER_SITE_CAP_Y = 1468; + static final double FOOTER_TILE_W = px(105 - 34); + static final double FOOTER_MARK_W = sq(47); + static final double FOOTER_TEXT_PAD_L = px(131 - 105); + /** Where the identity band's own top edge lands: immediately under its rule. */ + static final double FOOTER_ROW_TOP = py(FOOTER_RULE_Y) + RULE_BOX; + + /** A point of slack, so a block solved to the paper's edge still fits inside it. */ + private static final double FIT_TOLERANCE = 1.0; + + static final double FOOTER_TILE_H = + PAGE_H - MARGIN_B_FIRST - FOOTER_ROW_TOP - FIT_TOLERANCE; + + // ------------------------------------------------------------------ + // Block heights, for the rules that are placed under whole blocks + // ------------------------------------------------------------------ + + /** The masthead is as tall as the taller of the lockup and the title. */ + static final double MASTHEAD_H = Math.max( + LOGO_MARGIN_T + LOGO_H, TITLE_MARGIN_T + LINE_BOX * TITLE_SIZE); + + /** + * The identity block's laid-out height, measured from its own top. + * + *

      The supplier column ends with its tax line and the divider ends lower, + * and the two are within half a point of each other — so both are computed + * and the taller wins, rather than one being assumed to outlast the other.

      + */ + static final double IDENTITY_H = Math.max( + py(391 - 144), + py(377 - 144) - TOP_BEARING_REGULAR * BODY_SIZE + LINE_BOX * BODY_SIZE); + + /** The closing note's own height, from its top to the foot of its second line. */ + static final double CLOSING_NOTE_H = + py(NOTE_LINE2_CAP_Y - NOTE_TOP_Y) + - TOP_BEARING_REGULAR * CLOSING_REG_SIZE + + LINE_BOX * CLOSING_REG_SIZE; +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantText.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantText.java new file mode 100644 index 000000000..a6c89b713 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantText.java @@ -0,0 +1,59 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import java.math.BigDecimal; +import java.text.NumberFormat; +import java.util.Locale; + +/** + * How the Merchant invoice writes its figures. + * + *

      This design states its currency once in each money column's caption and + * writes the figures under it bare, carrying the code only on the grand total, + * which stands under no caption. The locale is stated rather than inherited, so + * the same data renders the same sheet on any machine.

      + */ +final class MerchantText { + + private MerchantText() { + } + + /** An amount, grouped and to two places, with no currency against it. */ + static String money(BigDecimal value) { + NumberFormat format = NumberFormat.getNumberInstance(Locale.ENGLISH); + format.setGroupingUsed(true); + format.setMinimumFractionDigits(2); + format.setMaximumFractionDigits(2); + return format.format(value); + } + + /** An amount behind its currency code, for the one figure that stands alone. */ + static String coded(String currencyCode, BigDecimal value) { + return currencyCode == null || currencyCode.isBlank() + ? money(value) + : currencyCode.trim() + " " + money(value); + } + + /** A caption with its currency stated once, the way this design labels a money column. */ + static String captionWithCurrency(String caption, String currencyCode) { + return currencyCode == null || currencyCode.isBlank() || caption.isBlank() + ? caption + : caption + " (" + currencyCode.trim() + ")"; + } + + /** + * A count, bare, with no fraction when it has none. + * + *

      A line that counts nothing — a fee charged as it falls rather than per + * unit — prints the design's own dash instead of a zero, because a zero in a + * quantity column reads as none delivered rather than as not counted.

      + */ + static String quantity(BigDecimal value) { + if (value.signum() == 0) { + return "—"; + } + BigDecimal stripped = value.stripTrailingZeros(); + return stripped.scale() <= 0 + ? stripped.toBigInteger().toString() + : stripped.toPlainString(); + } +} diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/bag.svg b/templates/src/main/resources/templates/invoice/merchant/icons/bag.svg new file mode 100644 index 000000000..67a16b0d8 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/bag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/bank.svg b/templates/src/main/resources/templates/invoice/merchant/icons/bank.svg new file mode 100644 index 000000000..09e80e610 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/bill-to.svg b/templates/src/main/resources/templates/invoice/merchant/icons/bill-to.svg new file mode 100644 index 000000000..a91fe98cf --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/bill-to.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/calendar.svg b/templates/src/main/resources/templates/invoice/merchant/icons/calendar.svg new file mode 100644 index 000000000..020559961 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/email.svg b/templates/src/main/resources/templates/invoice/merchant/icons/email.svg new file mode 100644 index 000000000..8bd3199e2 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/globe.svg b/templates/src/main/resources/templates/invoice/merchant/icons/globe.svg new file mode 100644 index 000000000..00462900f --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/info.svg b/templates/src/main/resources/templates/invoice/merchant/icons/info.svg new file mode 100644 index 000000000..78858ccc0 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/phone.svg b/templates/src/main/resources/templates/invoice/merchant/icons/phone.svg new file mode 100644 index 000000000..0c0e13e1f --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/ship-to.svg b/templates/src/main/resources/templates/invoice/merchant/icons/ship-to.svg new file mode 100644 index 000000000..924aa3b48 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/ship-to.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/support.svg b/templates/src/main/resources/templates/invoice/merchant/icons/support.svg new file mode 100644 index 000000000..77108f358 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/support.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/tag.svg b/templates/src/main/resources/templates/invoice/merchant/icons/tag.svg new file mode 100644 index 000000000..9d11afe54 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/tag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/merchant/icons/website.svg b/templates/src/main/resources/templates/invoice/merchant/icons/website.svg new file mode 100644 index 000000000..0c727ede9 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/merchant/icons/website.svg @@ -0,0 +1 @@ + \ No newline at end of file From f9f087ed9eaff28c7052cda3e4d4bf0796a310a0 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Tue, 1 Sep 2026 22:21:58 +0100 Subject: [PATCH 41/85] feat(templates): give a proposal the header a one-page sales proposal has (#652) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(templates): give a proposal the header a one-page sales proposal has The proposal model was shaped for a two-page consulting document: a running header naming three things by role, and a title of exactly three lines. A one-page sales proposal opens differently — an addressed organisation with its own address block, a named person at it with a role and two channels, a row of marked tiles whose captions are the document's own, a headline broken across however many lines the design breaks it across, and a foot carrying the legal entity rather than only a name. None of that had a home. Each of the seven designs measured for this needs the same five things, which is why they arrive together rather than one per preset: five separate additions to a published record would leave the model a patchwork of near-duplicates. ProposalRecipient, ProposalAttention and ProposalFooter are new; StructuredProposalData carries them and keeps its twelve-argument constructor explicitly, so existing calls compile and link unchanged. ProposalTitleLines gains eyebrow, lines and standfirst, with lines the canonical reading and lead/second/third its first three — one statement kept consistent by construction rather than by the caller, so a preset written against the three reads the same title a four-line document states. The list form is a factory rather than a second three-argument constructor, because one taking (String, List, List) beside one taking three strings is ambiguous for a caller passing nulls. ProposalMetaLine gains entries, and those do not derive from the trio in either direction: turning three roles into tiles would mean inventing their captions, and reading roles back out of arbitrary tiles would mean guessing which is which. A preset draws the one its design has. Tests: ProposalHeaderSpineTest, 14 cases, each written from one of the seven designs the spine was measured against — including the one that folds the addressed person's name into its caption and the one whose foot carries only a confidentiality line. Reactor gate green. * docs(templates): say what the title record does when a caller states both forms The compact constructor's note claimed the list and the three named lines could never contradict each other, because only one of them is ever the input. That is true of both convenience forms and false of the canonical constructor, which is public and takes both — a caller passing a trio and a non-empty list silently loses the trio. The note now says what happens and why: the list wins, because it is the one that can hold a title of any length, and reading the three back from it loses nothing the caller stated. A test pins it. --- CHANGELOG.md | 25 + knowledge/api/templates.json | 665 ++++++++++++++++-- knowledge/api/templates.md | 53 +- .../proposal/ProposalHeaderSpineTest.java | 176 +++++ .../data/proposal/ProposalAttention.java | 44 ++ .../data/proposal/ProposalFooter.java | 44 ++ .../data/proposal/ProposalMetaLine.java | 71 +- .../data/proposal/ProposalRecipient.java | 39 + .../data/proposal/ProposalTitleLines.java | 97 ++- .../data/proposal/StructuredProposalData.java | 84 ++- 10 files changed, 1228 insertions(+), 70 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/data/proposal/ProposalHeaderSpineTest.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalAttention.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalFooter.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalRecipient.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 29e37f08b..8e4447779 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,31 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **A proposal carries the header a one-page sales proposal has.** The proposal model was + shaped for a two-page consulting document: a running header naming three things by role, + and a title of exactly three lines. A one-page sales proposal opens differently — an + addressed organisation with its own address block, a named person at it with a role and + two channels, a row of marked tiles whose captions are the document's own, a headline + broken across however many lines the design breaks it across, and a foot carrying the + legal entity rather than only a name. None of that had a home, and each of the seven + designs measured for this needs the same five things, which is why they arrive together + rather than one per preset: five separate additions to a published record would leave + the model a patchwork of near-duplicates. +

      + `ProposalRecipient`, `ProposalAttention` and `ProposalFooter` are new; + `StructuredProposalData` carries them as `recipient`, `attention` and `footer`, and its + twelve-argument constructor is kept explicitly so existing calls compile and link + unchanged. `ProposalTitleLines` gains `eyebrow`, `lines` and `standfirst`, with `lines` + the canonical reading and `lead`/`second`/`third` its first three — one statement kept + consistent by construction rather than by the caller, so a preset written against the + three reads the same title a four-line document states. The list form is a factory, + `ProposalTitleLines.of`, because a second three-argument constructor taking + `(String, List, List)` is ambiguous for a caller passing nulls. + `ProposalMetaLine` gains `entries`, and those do not derive from the trio in + either direction: turning three roles into tiles would mean inventing their captions, + and reading roles back out of arbitrary tiles would mean guessing which is which. A + preset draws the one its design has. + - **An invoice line carries where it was delivered.** A design that bills the same service in more than one place — the same instance type in two datacentres, the same plan in two jurisdictions — prints where beside what, as its own column next to the diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index b410f00a7..80d9dfa34 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,10 +22,10 @@ "graph-compose-testing:sources" ], "counts": { - "types": 222, - "methods": 1232, + "types": 226, + "methods": 1269, "constants": 174, - "generated": 657 + "generated": 683 }, "packages": [ { @@ -15239,6 +15239,101 @@ } ] }, + { + "name": "ProposalAttention", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalAttention", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalAttention", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "isPresent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "role", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "email", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "phone", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, { "name": "ProposalBrand", "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalBrand", @@ -16491,6 +16586,88 @@ } ] }, + { + "name": "ProposalFooter", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalFooter", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalFooter", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "isPresent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "contacts", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "confidentiality", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, { "name": "ProposalGlance", "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalGlance", @@ -16950,6 +17127,46 @@ { "type": "String", "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ProposalMetaLine", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "preparedFor" + }, + { + "type": "String", + "name": "preparedBy" + }, + { + "type": "String", + "name": "date" + } + ] + }, + { + "kind": "constructor", + "name": "ProposalMetaLine", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": "entries" } ] }, @@ -16979,12 +17196,21 @@ "typeParameters": null, "returns": "String", "params": [] + }, + { + "kind": "method", + "name": "entries", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] } ] }, { - "name": "ProposalParty", - "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalParty", + "name": "ProposalMetaLine.Entry", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalMetaLine$Entry", "kind": "record", "modifiers": [ "final" @@ -16993,20 +17219,12 @@ "members": [ { "kind": "constructor", - "name": "ProposalParty", + "name": "Entry", "static": false, "origin": "generated", "typeParameters": null, "returns": null, "params": [ - { - "type": "String", - "name": null - }, - { - "type": "List", - "name": null - }, { "type": "String", "name": null @@ -17023,34 +17241,7 @@ }, { "kind": "method", - "name": "builder", - "static": true, - "origin": "source", - "typeParameters": null, - "returns": "ProposalParty.Builder", - "params": [] - }, - { - "kind": "method", - "name": "name", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "String", - "params": [] - }, - { - "kind": "method", - "name": "addressLines", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "List", - "params": [] - }, - { - "kind": "method", - "name": "email", + "name": "icon", "static": false, "origin": "generated", "typeParameters": null, @@ -17059,7 +17250,7 @@ }, { "kind": "method", - "name": "phone", + "name": "label", "static": false, "origin": "generated", "typeParameters": null, @@ -17068,7 +17259,102 @@ }, { "kind": "method", - "name": "website", + "name": "value", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalParty", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalParty", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalParty", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalParty.Builder", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "email", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "phone", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "website", "static": false, "origin": "generated", "typeParameters": null, @@ -17512,6 +17798,75 @@ } ] }, + { + "name": "ProposalRecipient", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalRecipient", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalRecipient", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "isPresent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, { "name": "ProposalScope", "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalScope", @@ -18043,6 +18398,62 @@ { "type": "String", "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ProposalTitleLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "lead" + }, + { + "type": "String", + "name": "second" + }, + { + "type": "String", + "name": "third" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalTitleLines", + "params": [ + { + "type": "String", + "name": "eyebrow" + }, + { + "type": "List", + "name": "lines" + }, + { + "type": "List", + "name": "standfirst" } ] }, @@ -18072,6 +18483,33 @@ "typeParameters": null, "returns": "String", "params": [] + }, + { + "kind": "method", + "name": "eyebrow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "lines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "standfirst", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] } ] }, @@ -18139,6 +18577,76 @@ { "type": "ProposalAcceptance", "name": null + }, + { + "type": "ProposalRecipient", + "name": null + }, + { + "type": "ProposalAttention", + "name": null + }, + { + "type": "ProposalFooter", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "StructuredProposalData", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ProposalBrand", + "name": "brand" + }, + { + "type": "ProposalTitleLines", + "name": "title" + }, + { + "type": "ProposalMetaLine", + "name": "meta" + }, + { + "type": "ProposalSummaryBlock", + "name": "executiveSummary" + }, + { + "type": "ProposalGlance", + "name": "glance" + }, + { + "type": "ProposalGoals", + "name": "goals" + }, + { + "type": "ProposalScope", + "name": "scope" + }, + { + "type": "ProposalDeliverables", + "name": "deliverables" + }, + { + "type": "ProposalPhaseGrid", + "name": "timeline" + }, + { + "type": "ProposalInvestment", + "name": "investment" + }, + { + "type": "ProposalTermsBlock", + "name": "terms" + }, + { + "type": "ProposalAcceptance", + "name": "acceptance" } ] }, @@ -18258,6 +18766,33 @@ "typeParameters": null, "returns": "ProposalAcceptance", "params": [] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ProposalRecipient", + "params": [] + }, + { + "kind": "method", + "name": "attention", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ProposalAttention", + "params": [] + }, + { + "kind": "method", + "name": "footer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ProposalFooter", + "params": [] } ] }, @@ -18438,6 +18973,48 @@ } ] }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredProposalData.Builder", + "params": [ + { + "type": "ProposalRecipient", + "name": "recipient" + } + ] + }, + { + "kind": "method", + "name": "attention", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredProposalData.Builder", + "params": [ + { + "type": "ProposalAttention", + "name": "attention" + } + ] + }, + { + "kind": "method", + "name": "footer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredProposalData.Builder", + "params": [ + { + "type": "ProposalFooter", + "name": "footer" + } + ] + }, { "kind": "method", "name": "build", diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index 8c5449e55..7a8fa5d5b 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 222 · methods: 1232 · constants: 174 · compiler-generated members: 657 +Types: 226 · methods: 1269 · constants: 174 · compiler-generated members: 683 ## com.demcha.compose.document.templates.api @@ -1278,6 +1278,15 @@ Types: 222 · methods: 1232 · constants: 174 · compiler-generated members: 657 - `String statement()` - `List fields()` +### ProposalAttention (record) +- `new ProposalAttention(String, String, String, String, String)` +- `boolean isPresent()` +- `String label()` +- `String name()` +- `String role()` +- `String email()` +- `String phone()` + ### ProposalBrand (record) - `new ProposalBrand(String, String, String, String, String, String)` - `String monogram()` @@ -1375,6 +1384,14 @@ Types: 222 · methods: 1232 · constants: 174 · compiler-generated members: 657 - `ProposalDocumentSpec.Builder footerNote(String footerNote)` - `ProposalDocumentSpec build()` +### ProposalFooter (record) +- `new ProposalFooter(String, List, List, String)` +- `boolean isPresent()` +- `String name()` +- `List addressLines()` +- `List contacts()` +- `String confidentiality()` + ### ProposalGlance (record) - `new ProposalGlance(String, List)` - `String heading()` @@ -1418,10 +1435,19 @@ Types: 222 · methods: 1232 · constants: 174 · compiler-generated members: 657 - `ProposalInvestment.Role role()` ### ProposalMetaLine (record) -- `new ProposalMetaLine(String, String, String)` +- `new ProposalMetaLine(String, String, String, List)` +- `new ProposalMetaLine(String preparedFor, String preparedBy, String date)` +- `new ProposalMetaLine(List entries)` - `String preparedFor()` - `String preparedBy()` - `String date()` +- `List entries()` + +### ProposalMetaLine.Entry (record) +- `new Entry(String, String, String)` +- `String icon()` +- `String label()` +- `String value()` ### ProposalParty (record) - `new ProposalParty(String, List, String, String, String)` @@ -1472,6 +1498,13 @@ Types: 222 · methods: 1232 · constants: 174 · compiler-generated members: 657 - `ProposalPricingRow.Builder emphasized(boolean emphasized)` - `ProposalPricingRow build()` +### ProposalRecipient (record) +- `new ProposalRecipient(String, String, List)` +- `boolean isPresent()` +- `String label()` +- `String name()` +- `List addressLines()` + ### ProposalScope (record) - `new ProposalScope(String, String, List)` - `String heading()` @@ -1523,13 +1556,19 @@ Types: 222 · methods: 1232 · constants: 174 · compiler-generated members: 657 - `ProposalTimelineItem build()` ### ProposalTitleLines (record) -- `new ProposalTitleLines(String, String, String)` +- `new ProposalTitleLines(String, String, String, String, List, List)` +- `new ProposalTitleLines(String lead, String second, String third)` +- `ProposalTitleLines of(String eyebrow, List lines, List standfirst)` - `String lead()` - `String second()` - `String third()` +- `String eyebrow()` +- `List lines()` +- `List standfirst()` ### StructuredProposalData (record) -- `new StructuredProposalData(ProposalBrand, ProposalTitleLines, ProposalMetaLine, ProposalSummaryBlock, ProposalGlance, ProposalGoals, ProposalScope, ProposalDeliverables, ProposalPhaseGrid, ProposalInvestment, ProposalTermsBlock, ProposalAcceptance)` +- `new StructuredProposalData(ProposalBrand, ProposalTitleLines, ProposalMetaLine, ProposalSummaryBlock, ProposalGlance, ProposalGoals, ProposalScope, ProposalDeliverables, ProposalPhaseGrid, ProposalInvestment, ProposalTermsBlock, ProposalAcceptance, ProposalRecipient, ProposalAttention, ProposalFooter)` +- `new StructuredProposalData(ProposalBrand brand, ProposalTitleLines title, ProposalMetaLine meta, ProposalSummaryBlock executiveSummary, ProposalGlance glance, ProposalGoals goals, ProposalScope scope, ProposalDeliverables deliverables, ProposalPhaseGrid timeline, ProposalInvestment investment, ProposalTermsBlock terms, ProposalAcceptance acceptance)` - `StructuredProposalData.Builder builder()` - `ProposalBrand brand()` - `ProposalTitleLines title()` @@ -1543,6 +1582,9 @@ Types: 222 · methods: 1232 · constants: 174 · compiler-generated members: 657 - `ProposalInvestment investment()` - `ProposalTermsBlock terms()` - `ProposalAcceptance acceptance()` +- `ProposalRecipient recipient()` +- `ProposalAttention attention()` +- `ProposalFooter footer()` ### StructuredProposalData.Builder (class) - `StructuredProposalData.Builder brand(ProposalBrand brand)` @@ -1557,6 +1599,9 @@ Types: 222 · methods: 1232 · constants: 174 · compiler-generated members: 657 - `StructuredProposalData.Builder investment(ProposalInvestment investment)` - `StructuredProposalData.Builder terms(ProposalTermsBlock terms)` - `StructuredProposalData.Builder acceptance(ProposalAcceptance acceptance)` +- `StructuredProposalData.Builder recipient(ProposalRecipient recipient)` +- `StructuredProposalData.Builder attention(ProposalAttention attention)` +- `StructuredProposalData.Builder footer(ProposalFooter footer)` - `StructuredProposalData build()` ### StructuredProposalDocumentSpec (record) diff --git a/qa/src/test/java/com/demcha/compose/document/templates/data/proposal/ProposalHeaderSpineTest.java b/qa/src/test/java/com/demcha/compose/document/templates/data/proposal/ProposalHeaderSpineTest.java new file mode 100644 index 000000000..8002ba2fb --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/data/proposal/ProposalHeaderSpineTest.java @@ -0,0 +1,176 @@ +package com.demcha.compose.document.templates.data.proposal; + +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * The header spine the one-page sales proposals share. + * + *

      Each case is one of the seven designs the spine was measured against, so a + * field that stops carrying what a design states fails here rather than in that + * design's own render.

      + */ +class ProposalHeaderSpineTest { + + // -- the addressed block -------------------------------------------- + + @Test + void aRecipientCarriesTheCaptionTheNameAndTheAddressSeparately() { + ProposalRecipient recipient = new ProposalRecipient("PREPARED FOR", "Bright Future Ltd.", + List.of("45 King Street", "Manchester, M2 4WU", "United Kingdom")); + assertThat(recipient.label()).isEqualTo("PREPARED FOR"); + assertThat(recipient.name()).isEqualTo("Bright Future Ltd."); + assertThat(recipient.addressLines()).hasSize(3); + assertThat(recipient.isPresent()).isTrue(); + } + + @Test + void aRecipientThatNamesNothingIsNotPresent() { + assertThat(new ProposalRecipient(null, null, null).isPresent()).isFalse(); + assertThat(new ProposalRecipient("PREPARED FOR", "", List.of()).isPresent()).isFalse(); + } + + // -- the attention line --------------------------------------------- + + @Test + void anAttentionLineCarriesTheRoleAndBothChannels() { + ProposalAttention attention = new ProposalAttention("ATTN", "A. Mitchell", "Founder", + "a@brightfuture.example", "+44 7700 900123"); + assertThat(attention.role()).isEqualTo("Founder"); + assertThat(attention.email()).isEqualTo("a@brightfuture.example"); + assertThat(attention.phone()).isEqualTo("+44 7700 900123"); + assertThat(attention.isPresent()).isTrue(); + } + + @Test + void aDesignThatFoldsTheNameIntoItsCaptionStillReads() { + // One of the seven prints "Attn: A. Mitchell" as the caption and gives + // the name no line of its own, which is why the caption is the design's + // own string rather than a fixed word. + ProposalAttention attention = new ProposalAttention("Attn: A. Mitchell", "", "Founder", + "a@brightfuture.example", "+44 7700 900123"); + assertThat(attention.label()).contains("A. Mitchell"); + assertThat(attention.name()).isEmpty(); + assertThat(attention.isPresent()).isTrue(); + } + + // -- the header tiles ----------------------------------------------- + + @Test + void theTilesAreAListBecauseEveryOneOfTheDesignsSetsFour() { + ProposalMetaLine meta = new ProposalMetaLine(List.of( + new ProposalMetaLine.Entry("date", "DATE", "27 May 2026"), + new ProposalMetaLine.Entry("id", "PROPOSAL ID", "REV-2026-0527-01"), + new ProposalMetaLine.Entry("valid", "VALID UNTIL", "26 June 2026"), + new ProposalMetaLine.Entry("by", "PREPARED BY", "The Business Team"))); + assertThat(meta.entries()).hasSize(4); + assertThat(meta.entries().get(1).label()).isEqualTo("PROPOSAL ID"); + // The running-header trio is a different statement, and stays empty. + assertThat(meta.preparedFor()).isEmpty(); + } + + @Test + void theRunningHeaderTrioIsUntouchedByTheTiles() { + ProposalMetaLine meta = new ProposalMetaLine("Bright Future Ltd.", "The Team", "27 May"); + assertThat(meta.preparedFor()).isEqualTo("Bright Future Ltd."); + assertThat(meta.entries()).isEmpty(); + } + + // -- the title ------------------------------------------------------- + + @Test + void aTitleOfFourLinesKeepsAllFourAndStillReadsAsThree() { + ProposalTitleLines title = ProposalTitleLines.of("", List.of( + "Proposal for", "Financial Infrastructure", + "& Embedded Finance", "Partnership"), List.of("Empowering your business.")); + assertThat(title.lines()).hasSize(4); + // The three named lines are the first three of the list, so a preset + // written against them reads the same title. + assertThat(title.lead()).isEqualTo("Proposal for"); + assertThat(title.second()).isEqualTo("Financial Infrastructure"); + assertThat(title.third()).isEqualTo("& Embedded Finance"); + assertThat(title.standfirst()).containsExactly("Empowering your business."); + } + + @Test + void aTitleStatedAsThreeLinesReadsBackAsAListOfThree() { + ProposalTitleLines title = new ProposalTitleLines("Proposal for", "Cloud Services", ""); + // The blank third line is not a line of the title. + assertThat(title.lines()).containsExactly("Proposal for", "Cloud Services"); + assertThat(title.eyebrow()).isEmpty(); + } + + @Test + void statingBothATrioAndAListReadsTheTitleFromTheList() { + // Only the canonical constructor allows both, and it resolves rather + // than throws: the list is the one that can hold a title of any length, + // so reading the three back from it loses nothing the caller stated. + ProposalTitleLines title = new ProposalTitleLines("discarded", "also discarded", "", + "", List.of("Proposal for", "Cloud Services", "& Support"), List.of()); + assertThat(title.lines()).containsExactly("Proposal for", "Cloud Services", "& Support"); + assertThat(title.lead()).isEqualTo("Proposal for"); + } + + @Test + void aTitleCarriesTheEyebrowSomeDesignsSetAboveIt() { + ProposalTitleLines title = ProposalTitleLines.of("Proposal for", + List.of("Payments", "& Financial Infrastructure"), List.of()); + assertThat(title.eyebrow()).isEqualTo("Proposal for"); + assertThat(title.lead()).isEqualTo("Payments"); + } + + // -- the foot -------------------------------------------------------- + + @Test + void aFooterCarriesTheEntityTheAddressTheChannelsAndTheNotice() { + ProposalFooter footer = new ProposalFooter("Northwind UK Limited", + List.of("110 Bishopsgate, London EC2N 4AY, United Kingdom"), + List.of("www.northwind.example", "+44 800 092 1223"), + "This proposal is confidential and valid for 30 days."); + assertThat(footer.name()).isEqualTo("Northwind UK Limited"); + assertThat(footer.contacts()).hasSize(2); + assertThat(footer.confidentiality()).contains("confidential"); + assertThat(footer.isPresent()).isTrue(); + } + + @Test + void aFootThatCarriesOnlyANoticeIsStillPresent() { + // One of the seven states nothing else in its foot. + ProposalFooter footer = new ProposalFooter(null, null, null, + "This proposal is confidential and valid for 30 days."); + assertThat(footer.name()).isEmpty(); + assertThat(footer.isPresent()).isTrue(); + } + + @Test + void aFootThatStatesNothingIsNotPresent() { + assertThat(new ProposalFooter(null, null, null, null).isPresent()).isFalse(); + } + + // -- the aggregate --------------------------------------------------- + + @Test + void theConstructorThatPredatesTheSpineLeavesItEmptyRatherThanNull() { + StructuredProposalData data = new StructuredProposalData( + null, null, null, null, null, null, null, null, null, null, null, null); + assertThat(data.recipient().isPresent()).isFalse(); + assertThat(data.attention().isPresent()).isFalse(); + assertThat(data.footer().isPresent()).isFalse(); + } + + @Test + void theBuilderCarriesTheSpineThrough() { + StructuredProposalData data = StructuredProposalData.builder() + .recipient(new ProposalRecipient("PREPARED FOR", "Bright Future Ltd.", + List.of("45 King Street"))) + .attention(new ProposalAttention("ATTN", "A. Mitchell", "Founder", "", "")) + .footer(new ProposalFooter("Northwind UK Limited", List.of(), List.of(), "")) + .build(); + assertThat(data.recipient().name()).isEqualTo("Bright Future Ltd."); + assertThat(data.attention().role()).isEqualTo("Founder"); + assertThat(data.footer().name()).isEqualTo("Northwind UK Limited"); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalAttention.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalAttention.java new file mode 100644 index 000000000..90bb27384 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalAttention.java @@ -0,0 +1,44 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.Objects; + +/** + * The person at the recipient a proposal is addressed to. + * + *

      A sales proposal names a company and then a person inside it, with the + * person's role and the two ways to reach them. Designs differ in how much of + * that they set apart — some print the name in the caption, some give the role, + * the address and the number their own lines — so each is carried separately and + * a preset draws the ones its design has.

      + * + * @param label the caption above the block, as the sheet prints it (e.g. + * {@code "ATTN"}); some designs fold the name into it, which is why + * this is the design's own string rather than a fixed word + * @param name the person addressed; blank when the label already names them + * @param role their role at the recipient; blank when the design omits it + * @param email their address, as the sheet prints it; blank when absent + * @param phone their number, as the sheet prints it; blank when absent + */ +public record ProposalAttention(String label, String name, String role, + String email, String phone) { + + /** + * Normalizes optional fields. + */ + public ProposalAttention { + label = Objects.requireNonNullElse(label, ""); + name = Objects.requireNonNullElse(name, ""); + role = Objects.requireNonNullElse(role, ""); + email = Objects.requireNonNullElse(email, ""); + phone = Objects.requireNonNullElse(phone, ""); + } + + /** + * Whether there is anything to draw. + * + * @return {@code true} when the block names a person or a way to reach them + */ + public boolean isPresent() { + return !name.isBlank() || !role.isBlank() || !email.isBlank() || !phone.isBlank(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalFooter.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalFooter.java new file mode 100644 index 000000000..ab1c8eab0 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalFooter.java @@ -0,0 +1,44 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The issuer's own identity, as the foot of a proposal states it. + * + *

      Distinct from {@link ProposalBrand#footerName()}, which is one name: a + * sales proposal's foot carries the legal entity, its registered address, the + * channels a reader can follow, and — where the jurisdiction or the deal asks + * for it — a confidentiality line. A design that prints only the name leaves the + * rest blank.

      + * + * @param name the legal entity the proposal is issued by + * @param addressLines its registered address, in the order it is printed + * @param contacts the channels the foot lists, as the sheet prints them — + * a site, a number, an address — in order + * @param confidentiality the confidentiality or validity line, when the design + * carries one; blank otherwise + */ +public record ProposalFooter(String name, List addressLines, + List contacts, String confidentiality) { + + /** + * Normalizes optional fields. + */ + public ProposalFooter { + name = Objects.requireNonNullElse(name, ""); + addressLines = List.copyOf(Objects.requireNonNullElse(addressLines, List.of())); + contacts = List.copyOf(Objects.requireNonNullElse(contacts, List.of())); + confidentiality = Objects.requireNonNullElse(confidentiality, ""); + } + + /** + * Whether there is anything to draw. + * + * @return {@code true} when the foot states any of its four parts + */ + public boolean isPresent() { + return !name.isBlank() || !addressLines.isEmpty() + || !contacts.isEmpty() || !confidentiality.isBlank(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalMetaLine.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalMetaLine.java index 307550619..4a2131ff1 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalMetaLine.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalMetaLine.java @@ -1,23 +1,80 @@ package com.demcha.compose.document.templates.data.proposal; +import java.util.List; import java.util.Objects; /** - * The prepared-for / prepared-by / date line under a structured proposal's - * title. + * A proposal's header facts. * - * @param preparedFor the client the proposal is prepared for - * @param preparedBy the sender the proposal is prepared by - * @param date the proposal date text + *

      Two designs' worth of shape, and they are not the same statement. A running + * header names three things by role — who it is for, who prepared it, when — and + * {@link #preparedFor()}, {@link #preparedBy()} and {@link #date()} carry those. + * A sales proposal instead sets a row of marked tiles whose captions are the + * document's own — a proposal number, a date, a validity, a team — and + * {@link #entries()} carries those.

      + * + *

      Neither derives from the other: turning three roles into tiles would mean + * inventing their captions, and reading roles back out of arbitrary tiles would + * mean guessing which is which. A preset draws the one its design has, and a + * document states the one it is written for.

      + * + * @param preparedFor who the proposal is for, as a running header states it + * @param preparedBy who prepared it + * @param date when it was prepared + * @param entries the marked tiles a sales proposal sets instead; empty when + * the design has none */ -public record ProposalMetaLine(String preparedFor, String preparedBy, String date) { +public record ProposalMetaLine(String preparedFor, String preparedBy, String date, + List entries) { /** - * Normalizes optional fields to empty strings. + * Normalizes optional fields. */ public ProposalMetaLine { preparedFor = Objects.requireNonNullElse(preparedFor, ""); preparedBy = Objects.requireNonNullElse(preparedBy, ""); date = Objects.requireNonNullElse(date, ""); + entries = List.copyOf(Objects.requireNonNullElse(entries, List.of())); + } + + /** + * Backward-compatible constructor for callers that predate the tiles. + * + * @param preparedFor who the proposal is for + * @param preparedBy who prepared it + * @param date when it was prepared + */ + public ProposalMetaLine(String preparedFor, String preparedBy, String date) { + this(preparedFor, preparedBy, date, List.of()); + } + + /** + * The tiles alone, for a design that sets no running header. + * + * @param entries the marked tiles, in order + */ + public ProposalMetaLine(List entries) { + this("", "", "", entries); + } + + /** + * One marked tile. + * + * @param icon the mark the tile opens with; the token means something only + * to the preset that packages it, and a preset that draws no + * marks ignores it. Blank when absent + * @param label the caption, as the sheet prints it + * @param value the fact itself + */ + public record Entry(String icon, String label, String value) { + + /** + * Normalizes optional fields. + */ + public Entry { + icon = Objects.requireNonNullElse(icon, ""); + label = Objects.requireNonNullElse(label, ""); + value = Objects.requireNonNullElse(value, ""); + } } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalRecipient.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalRecipient.java new file mode 100644 index 000000000..4b0a58e27 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalRecipient.java @@ -0,0 +1,39 @@ +package com.demcha.compose.document.templates.data.proposal; + +import java.util.List; +import java.util.Objects; + +/** + * The organisation a proposal is addressed to. + * + *

      Distinct from {@link ProposalMetaLine#preparedFor()}, which is one line of + * a header strip: this is the addressed block a sales proposal opens with — a + * caption, the company, and its address — and a design that prints it needs all + * three separately rather than as one string.

      + * + * @param label the caption above the block, as the sheet prints it + * (e.g. {@code "PREPARED FOR"}); blank when the design draws + * the block without one + * @param name the addressed organisation + * @param addressLines the address, in the order it is printed + */ +public record ProposalRecipient(String label, String name, List addressLines) { + + /** + * Normalizes optional fields. + */ + public ProposalRecipient { + label = Objects.requireNonNullElse(label, ""); + name = Objects.requireNonNullElse(name, ""); + addressLines = List.copyOf(Objects.requireNonNullElse(addressLines, List.of())); + } + + /** + * Whether there is anything to draw. + * + * @return {@code true} when the block names an organisation or an address + */ + public boolean isPresent() { + return !name.isBlank() || !addressLines.isEmpty(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTitleLines.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTitleLines.java index 6514d732d..69f3b2d18 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTitleLines.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalTitleLines.java @@ -1,27 +1,98 @@ package com.demcha.compose.document.templates.data.proposal; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; /** - * The display title of a structured proposal, as up to three authored lines. + * A proposal's title, as the sheet sets it. * - *

      The lines are separate fields rather than one string with newlines - * because presets are expected to set the lead line apart from the other - * two typographically — the split carries the emphasis and is part of the - * content, not of the layout.

      + *

      Designs break a title across a different number of lines — two, three or + * four — and some set a short phrase above it and a standfirst under it. The + * lines are therefore a list, and {@link #lead()}, {@link #second()} and + * {@link #third()} are the first three of that list: one statement, two ways of + * reading it, kept consistent by construction rather than by the caller.

      * - * @param lead the first title line - * @param second the second title line - * @param third the third title line + *

      A title breaks where the design breaks it. The lines are the document's, + * not a paragraph the engine wraps, because where a headline turns is a + * typographic decision and not a consequence of the column it happens to sit + * in.

      + * + * @param lead the first line, or blank when the title has none + * @param second the second line, or blank + * @param third the third line, or blank + * @param eyebrow the short phrase some designs set above the title (e.g. + * {@code "Proposal for"}); blank when the title carries it + * inside its own first line instead + * @param lines every line of the title, in order — the canonical reading + * @param standfirst the paragraph under the title, one entry per printed line; + * empty when the design sets none */ -public record ProposalTitleLines(String lead, String second, String third) { +public record ProposalTitleLines(String lead, String second, String third, + String eyebrow, List lines, + List standfirst) { /** - * Normalizes optional lines to empty strings. + * Normalizes optional fields and keeps the list and the first three lines + * saying the same thing. + * + *

      Given lines, the three are read from it. Given no lines, the lines are + * those of the three that are set. Given both — which only the canonical + * constructor allows, and which neither convenience form can produce — the + * list wins and the three are read from it, because the list is the one that + * can hold a title of any length and reading it back is the only resolution + * that loses nothing the caller stated.

      */ public ProposalTitleLines { - lead = Objects.requireNonNullElse(lead, ""); - second = Objects.requireNonNullElse(second, ""); - third = Objects.requireNonNullElse(third, ""); + eyebrow = Objects.requireNonNullElse(eyebrow, ""); + standfirst = List.copyOf(Objects.requireNonNullElse(standfirst, List.of())); + List stated = Objects.requireNonNullElse(lines, List.of()); + if (stated.isEmpty()) { + lead = Objects.requireNonNullElse(lead, ""); + second = Objects.requireNonNullElse(second, ""); + third = Objects.requireNonNullElse(third, ""); + List derived = new ArrayList<>(); + for (String line : List.of(lead, second, third)) { + if (!line.isBlank()) { + derived.add(line); + } + } + lines = List.copyOf(derived); + } else { + lines = List.copyOf(stated); + lead = lines.size() > 0 ? lines.get(0) : ""; + second = lines.size() > 1 ? lines.get(1) : ""; + third = lines.size() > 2 ? lines.get(2) : ""; + } + } + + /** + * A title of up to three lines. + * + * @param lead the first line + * @param second the second line + * @param third the third line + */ + public ProposalTitleLines(String lead, String second, String third) { + this(lead, second, third, "", List.of(), List.of()); + } + + /** + * A title of any number of lines, with the phrase above it and the paragraph + * under it. + * + *

      A factory rather than a second three-argument constructor: one taking + * {@code (String, List, List)} beside one taking three strings is ambiguous + * for a caller passing nulls, and a title is not the place to make someone + * cast an argument to find out which they meant.

      + * + * @param eyebrow the phrase above the title, or blank + * @param lines every line of the title, in order + * @param standfirst the paragraph under it, one entry per printed line + * @return the title + */ + public static ProposalTitleLines of(String eyebrow, List lines, + List standfirst) { + return new ProposalTitleLines("", "", "", eyebrow, lines, standfirst); } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalData.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalData.java index e1847c45c..4631e05ef 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalData.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/StructuredProposalData.java @@ -30,6 +30,13 @@ * @param investment the priced block * @param terms the bulleted terms block * @param acceptance the signing card + * @param recipient the addressed organisation, for the designs that open + * with one; blank when the design names it in its header + * line instead + * @param attention the person at the recipient the proposal is addressed + * to; blank when the design addresses no one + * @param footer the issuer's own identity as the foot states it; + * blank when the design's foot carries only a name */ public record StructuredProposalData( ProposalBrand brand, @@ -43,7 +50,10 @@ public record StructuredProposalData( ProposalPhaseGrid timeline, ProposalInvestment investment, ProposalTermsBlock terms, - ProposalAcceptance acceptance) { + ProposalAcceptance acceptance, + ProposalRecipient recipient, + ProposalAttention attention, + ProposalFooter footer) { /** * Normalizes absent components to their empty forms. @@ -73,6 +83,40 @@ public record StructuredProposalData( ? new ProposalTermsBlock(null, null, null) : terms; acceptance = acceptance == null ? new ProposalAcceptance(null, null, null, null) : acceptance; + recipient = recipient == null + ? new ProposalRecipient(null, null, null) : recipient; + attention = attention == null + ? new ProposalAttention(null, null, null, null, null) : attention; + footer = footer == null + ? new ProposalFooter(null, null, null, null) : footer; + } + + /** + * Backward-compatible constructor for callers that predate the addressed + * block, the attention line and the foot's own identity. + * + * @param brand the issuing brand + * @param title the proposal's title + * @param meta the header facts + * @param executiveSummary the summary block + * @param glance the at-a-glance facts + * @param goals the goals block + * @param scope the scope block + * @param deliverables the deliverables block + * @param timeline the phase grid + * @param investment the investment table + * @param terms the terms block + * @param acceptance the signing card + */ + public StructuredProposalData(ProposalBrand brand, ProposalTitleLines title, + ProposalMetaLine meta, + ProposalSummaryBlock executiveSummary, + ProposalGlance glance, ProposalGoals goals, + ProposalScope scope, ProposalDeliverables deliverables, + ProposalPhaseGrid timeline, ProposalInvestment investment, + ProposalTermsBlock terms, ProposalAcceptance acceptance) { + this(brand, title, meta, executiveSummary, glance, goals, scope, deliverables, + timeline, investment, terms, acceptance, null, null, null); } /** @@ -100,6 +144,9 @@ public static final class Builder { private ProposalInvestment investment; private ProposalTermsBlock terms; private ProposalAcceptance acceptance; + private ProposalRecipient recipient; + private ProposalAttention attention; + private ProposalFooter footer; private Builder() { } @@ -236,6 +283,39 @@ public Builder acceptance(ProposalAcceptance acceptance) { return this; } + /** + * Sets the addressed organisation. + * + * @param recipient the addressed organisation + * @return this builder + */ + public Builder recipient(ProposalRecipient recipient) { + this.recipient = recipient; + return this; + } + + /** + * Sets the person at the recipient the proposal is addressed to. + * + * @param attention the addressed person + * @return this builder + */ + public Builder attention(ProposalAttention attention) { + this.attention = attention; + return this; + } + + /** + * Sets the issuer's own identity, as the foot states it. + * + * @param footer the issuer's identity + * @return this builder + */ + public Builder footer(ProposalFooter footer) { + this.footer = footer; + return this; + } + /** * Builds the normalized structured proposal data. * @@ -244,7 +324,7 @@ public Builder acceptance(ProposalAcceptance acceptance) { public StructuredProposalData build() { return new StructuredProposalData(brand, title, meta, executiveSummary, glance, goals, scope, deliverables, timeline, investment, - terms, acceptance); + terms, acceptance, recipient, attention, footer); } } } From 1006bc3761fc6bcf4b5e678eb59ad4c0b105cb9c Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Wed, 2 Sep 2026 07:47:37 +0100 Subject: [PATCH 42/85] feat(templates): give a proposal block the paragraph that opens it (#653) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ProposalScope, ProposalGoals and ProposalGlance each set a heading and a list, and every one-page sales proposal measured for the header spine also sets a paragraph between the two. Five of the seven set two of them, once over the solution and once over the reasons to choose the issuer. The header survey counted five shared things and there are six. This is the sixth, and it arrives on its own rather than inside the first preset that needs it, for the same reason the other five did: a field added per preset as it turns up leaves the model a patchwork. All three records gain intro, a plain string blank when absent, and each keeps its previous constructor explicitly, so existing calls compile and link unchanged and every block built through them opens straight into its list as before. Tests: two cases on the spine suite — all three blocks carry the paragraph they are given, and the constructors that predate it leave it blank. 17/17. Reactor gate green. --- CHANGELOG.md | 10 ++ knowledge/api/templates.json | 105 +++++++++++++++++- knowledge/api/templates.md | 14 ++- .../proposal/ProposalHeaderSpineTest.java | 30 +++++ .../data/proposal/ProposalGlance.java | 18 ++- .../data/proposal/ProposalGoals.java | 20 +++- .../data/proposal/ProposalScope.java | 20 +++- 7 files changed, 208 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e4447779..d028bf518 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,16 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **A proposal block carries the paragraph that opens it.** `ProposalScope`, + `ProposalGoals` and `ProposalGlance` each set a heading and a list, and every one-page + sales proposal measured for the header spine also sets a paragraph between the two — + five of the seven set two of them, once over the solution and once over the reasons to + choose the issuer. The header survey missed it, so it arrives here rather than inside + the first preset that needs it. All three records gain `intro`, a plain string blank + when absent, and each keeps its previous constructor explicitly, so existing calls + compile and link unchanged and every block built through them opens straight into its + list as before. + - **A proposal carries the header a one-page sales proposal has.** The proposal model was shaped for a two-page consulting document: a running header naming three things by role, and a title of exactly three lines. A one-page sales proposal opens differently — an diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index 80d9dfa34..7c515a1ac 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -23,9 +23,9 @@ ], "counts": { "types": 226, - "methods": 1269, + "methods": 1275, "constants": 174, - "generated": 683 + "generated": 686 }, "packages": [ { @@ -16692,6 +16692,28 @@ { "type": "List", "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ProposalGlance", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "heading" + }, + { + "type": "List", + "name": "facts" } ] }, @@ -16712,6 +16734,15 @@ "typeParameters": null, "returns": "List", "params": [] + }, + { + "kind": "method", + "name": "intro", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] } ] }, @@ -16816,6 +16847,32 @@ { "type": "List", "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ProposalGoals", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "heading" + }, + { + "type": "String", + "name": "icon" + }, + { + "type": "List", + "name": "items" } ] }, @@ -16845,6 +16902,15 @@ "typeParameters": null, "returns": "List", "params": [] + }, + { + "kind": "method", + "name": "intro", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] } ] }, @@ -17895,6 +17961,32 @@ { "type": "List", "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ProposalScope", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "heading" + }, + { + "type": "String", + "name": "icon" + }, + { + "type": "List", + "name": "items" } ] }, @@ -17924,6 +18016,15 @@ "typeParameters": null, "returns": "List", "params": [] + }, + { + "kind": "method", + "name": "intro", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] } ] }, diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index 7a8fa5d5b..10752034f 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 226 · methods: 1269 · constants: 174 · compiler-generated members: 683 +Types: 226 · methods: 1275 · constants: 174 · compiler-generated members: 686 ## com.demcha.compose.document.templates.api @@ -1393,9 +1393,11 @@ Types: 226 · methods: 1269 · constants: 174 · compiler-generated members: 683 - `String confidentiality()` ### ProposalGlance (record) -- `new ProposalGlance(String, List)` +- `new ProposalGlance(String, List, String)` +- `new ProposalGlance(String heading, List facts)` - `String heading()` - `List facts()` +- `String intro()` ### ProposalGlance.Fact (record) - `new Fact(String, String, String, String)` @@ -1405,10 +1407,12 @@ Types: 226 · methods: 1269 · constants: 174 · compiler-generated members: 683 - `String note()` ### ProposalGoals (record) -- `new ProposalGoals(String, String, List)` +- `new ProposalGoals(String, String, List, String)` +- `new ProposalGoals(String heading, String icon, List items)` - `String heading()` - `String icon()` - `List items()` +- `String intro()` ### ProposalGoals.Goal (record) - `new Goal(String, String)` @@ -1506,10 +1510,12 @@ Types: 226 · methods: 1269 · constants: 174 · compiler-generated members: 683 - `List addressLines()` ### ProposalScope (record) -- `new ProposalScope(String, String, List)` +- `new ProposalScope(String, String, List, String)` +- `new ProposalScope(String heading, String icon, List items)` - `String heading()` - `String icon()` - `List items()` +- `String intro()` ### ProposalScope.Item (record) - `new Item(String, String, String)` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/data/proposal/ProposalHeaderSpineTest.java b/qa/src/test/java/com/demcha/compose/document/templates/data/proposal/ProposalHeaderSpineTest.java index 8002ba2fb..f0102e100 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/data/proposal/ProposalHeaderSpineTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/data/proposal/ProposalHeaderSpineTest.java @@ -150,6 +150,36 @@ void aFootThatStatesNothingIsNotPresent() { assertThat(new ProposalFooter(null, null, null, null).isPresent()).isFalse(); } + // -- the paragraph that opens a block -------------------------------- + + @Test + void aBlockCarriesTheParagraphThatOpensItAboveTheItems() { + // Every one of the seven sets one, and five of them set two — once over + // the solution and once over the reasons to choose the issuer. + ProposalScope scope = new ProposalScope("PROJECT OVERVIEW", "", + List.of(new ProposalScope.Item("01", "Multi-currency accounts", + "Hold, send, receive in 30+ currencies")), + "This proposal outlines a tailored solution."); + assertThat(scope.intro()).isEqualTo("This proposal outlines a tailored solution."); + assertThat(scope.items()).hasSize(1); + + ProposalGlance glance = new ProposalGlance("ABOUT", + List.of(new ProposalGlance.Fact("globe", "Global", "Scale", "")), + "Modern financial infrastructure for forward-thinking companies."); + assertThat(glance.intro()).contains("Modern financial infrastructure"); + + ProposalGoals goals = new ProposalGoals("WHY US", "", + List.of(new ProposalGoals.Goal("", "Fast")), "Because it is faster."); + assertThat(goals.intro()).isEqualTo("Because it is faster."); + } + + @Test + void theConstructorsThatPredateTheOpeningParagraphLeaveItBlank() { + assertThat(new ProposalScope("PROJECT OVERVIEW", "", List.of()).intro()).isEmpty(); + assertThat(new ProposalGoals("WHY US", "", List.of()).intro()).isEmpty(); + assertThat(new ProposalGlance("ABOUT", List.of()).intro()).isEmpty(); + } + // -- the aggregate --------------------------------------------------- @Test diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGlance.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGlance.java index 2d98f9741..4bd099b3c 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGlance.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGlance.java @@ -8,8 +8,12 @@ * * @param heading the card heading * @param facts the fact rows, in order + * @param intro the paragraph that opens the block, above its items; every + * one-page sales proposal measured for this sets one, most of + * them twice, and a block that opens straight into its list + * leaves it blank */ -public record ProposalGlance(String heading, List facts) { +public record ProposalGlance(String heading, List facts, String intro) { /** * Normalizes optional fields and freezes the fact list. @@ -17,6 +21,18 @@ public record ProposalGlance(String heading, List facts) { public ProposalGlance { heading = Objects.requireNonNullElse(heading, ""); facts = List.copyOf(Objects.requireNonNullElse(facts, List.of())); + intro = Objects.requireNonNullElse(intro, ""); + } + + /** + * Backward-compatible constructor for callers that predate the opening + * paragraph. + * + * @param heading the block's heading + * @param facts the facts the block sets + */ + public ProposalGlance(String heading, List facts) { + this(heading, facts, ""); } /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGoals.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGoals.java index f4513d142..7678f230c 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGoals.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalGoals.java @@ -10,8 +10,13 @@ * @param heading the section heading * @param icon the icon token of the section badge * @param items the goal cells, in order + * @param intro the paragraph that opens the block, above its items; every + * one-page sales proposal measured for this sets one, most of + * them twice, and a block that opens straight into its list + * leaves it blank */ -public record ProposalGoals(String heading, String icon, List items) { +public record ProposalGoals(String heading, String icon, List items, + String intro) { /** * Normalizes optional fields and freezes the goal list. @@ -20,6 +25,19 @@ public record ProposalGoals(String heading, String icon, List items) { heading = Objects.requireNonNullElse(heading, ""); icon = Objects.requireNonNullElse(icon, ""); items = List.copyOf(Objects.requireNonNullElse(items, List.of())); + intro = Objects.requireNonNullElse(intro, ""); + } + + /** + * Backward-compatible constructor for callers that predate the opening + * paragraph. + * + * @param heading the block's heading + * @param icon the mark the heading opens with + * @param items the block's items + */ + public ProposalGoals(String heading, String icon, List items) { + this(heading, icon, items, ""); } /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalScope.java b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalScope.java index 7b828bfd1..20e35f428 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalScope.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/proposal/ProposalScope.java @@ -13,8 +13,13 @@ * @param heading the section heading * @param icon the icon token of the section badge * @param items the numbered scope rows, in order + * @param intro the paragraph that opens the block, above its items; every + * one-page sales proposal measured for this sets one, most of + * them twice, and a block that opens straight into its list + * leaves it blank */ -public record ProposalScope(String heading, String icon, List items) { +public record ProposalScope(String heading, String icon, List items, + String intro) { /** * Normalizes optional fields and freezes the item list. @@ -23,6 +28,19 @@ public record ProposalScope(String heading, String icon, List items) { heading = Objects.requireNonNullElse(heading, ""); icon = Objects.requireNonNullElse(icon, ""); items = List.copyOf(Objects.requireNonNullElse(items, List.of())); + intro = Objects.requireNonNullElse(intro, ""); + } + + /** + * Backward-compatible constructor for callers that predate the opening + * paragraph. + * + * @param heading the block's heading + * @param icon the mark the heading opens with + * @param items the block's items + */ + public ProposalScope(String heading, String icon, List items) { + this(heading, icon, items, ""); } /** From 3c0eb8a2ce70bd4a7a050b30e29cf0b30e81164b Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Wed, 2 Sep 2026 10:50:54 +0100 Subject: [PATCH 43/85] feat(templates): add a one-page sales proposal preset (#654) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IndigoProposal ports the rendered layout of a published standalone template onto the existing StructuredProposalData model: a wordmark against the document's label over a full-width rule, the addressed organisation and the person to reply to beside a four-line headline and a row of marked discs, a tinted band bleeding to both paper edges carrying a paragraph about the issuer over four marked tiles, a numbered plan beside the priced rows and their total card, and a foot with the issuer's identity and the channels it answers on. Rendered against the frozen original with the same data the text layers are identical — all 262 words in the same place to 0.000 pt — and the head, the lower half, the closing rule and the foot's own lines carry no differing pixel at all. What differs is the two places the port does not fill. Two of the design's brand assets are deliberately not ported. The band's right is a product photograph carrying a payment network's mark, and the foot closes on the issuer's logotype; the templates artifact does not redistribute other companies' marks. Both places are kept rather than closed up — the band keeps the height and the column that give the copy beside it the measure it was solved against, and the foot keeps the column that sets where the name begins — and what fills them is the document's own: the foot sets whatever monogram the document names. The sheet is one vertical map of cap tops walked by a single cursor rather than a stack of gaps, so a block moves by changing one number. Every margin that cursor returns is floored at nothing, because a stated position and heavier content produce a negative one, and the engine honours a negative top margin by raising the block: a plan of six or seven steps still fits the page and would print the closing rule through its last step. Floored, it pushes what follows down and takes a second page when it has to. Sizes are solved from measured ink width rather than cap height, because the design's own face is not bundled and the substitute sets 10-20% wide at bold. A confidentiality line closes the foot's channels rather than opening a line of its own, since the design's last line already ends against the bottom margin — and it is set as prose, not as a channel: a notice is a sentence, and a sentence is not somewhere a reader can be sent. The two packaged mark sets are not interchangeable and the preset refuses rather than draws: the header's are in the accent for a pale disc, the band's in white for a near-black tile, so a band token on a header disc would render as nothing at all. Tests: a smoke test covering the one-page canonical render, the empty document, the overlap window at five, six, seven, eight and fourteen steps, a tile that names no mark, both unknown-token cases, a notice as a sentence and as a single word, and every contact being followable; an exact layout snapshot; and a pixel baseline. One fixture feeds all three. Reactor gate green. Co-authored-by: Claude Opus 5 --- CHANGELOG.md | 54 + knowledge/api/templates.json | 49 +- knowledge/api/templates.md | 6 +- .../presets/IndigoProposalFixtures.java | 112 + .../IndigoProposalLayoutSnapshotTest.java | 31 + .../presets/IndigoProposalSmokeTest.java | 279 + .../IndigoProposalVisualParityTest.java | 42 + .../proposal/indigo_proposal_layout.json | 5477 +++++++++++++++++ .../indigo_proposal-page-0.png | Bin 0 -> 94968 bytes .../proposal/presets/IndigoBand.java | 186 + .../proposal/presets/IndigoClosing.java | 185 + .../proposal/presets/IndigoFlow.java | 165 + .../proposal/presets/IndigoIcons.java | 96 + .../proposal/presets/IndigoLower.java | 386 ++ .../proposal/presets/IndigoMasthead.java | 345 ++ .../proposal/presets/IndigoProposal.java | 123 + .../proposal/presets/IndigoStyles.java | 290 + .../proposal/presets/IndigoWidgets.java | 81 + .../proposal/presets/ProposalUri.java | 118 + .../proposal/presets/package-info.java | 3 +- .../templates/proposal/indigo/icons/apis.svg | 1 + .../templates/proposal/indigo/icons/date.svg | 1 + .../proposal/indigo/icons/global.svg | 1 + .../proposal/indigo/icons/identifier.svg | 1 + .../proposal/indigo/icons/infrastructure.svg | 1 + .../proposal/indigo/icons/prepared-by.svg | 1 + .../proposal/indigo/icons/secure.svg | 1 + .../templates/proposal/indigo/icons/valid.svg | 1 + 28 files changed, 8030 insertions(+), 6 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/proposal/indigo_proposal_layout.json create mode 100644 qa/src/test/resources/visual-baselines/proposal-v2-layered/indigo_proposal-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoBand.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoFlow.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoLower.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposal.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoWidgets.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/ProposalUri.java create mode 100644 templates/src/main/resources/templates/proposal/indigo/icons/apis.svg create mode 100644 templates/src/main/resources/templates/proposal/indigo/icons/date.svg create mode 100644 templates/src/main/resources/templates/proposal/indigo/icons/global.svg create mode 100644 templates/src/main/resources/templates/proposal/indigo/icons/identifier.svg create mode 100644 templates/src/main/resources/templates/proposal/indigo/icons/infrastructure.svg create mode 100644 templates/src/main/resources/templates/proposal/indigo/icons/prepared-by.svg create mode 100644 templates/src/main/resources/templates/proposal/indigo/icons/secure.svg create mode 100644 templates/src/main/resources/templates/proposal/indigo/icons/valid.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index d028bf518..a9771799b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -814,6 +814,60 @@ follow semantic versioning; release dates are ISO 8601. phase-grid header-count contract), an exact two-page layout snapshot, and a pixel-parity gate; the examples showcase gains `proposal-northline-v2`. +- **A one-page sales proposal preset: `IndigoProposal`.** A wordmark against the + document's label over a full-width rule, the addressed organisation and the person to + reply to beside a four-line headline and a row of marked discs, a tinted band that + bleeds to both paper edges carrying a paragraph about the issuer over four marked + tiles, a numbered plan beside the priced rows and their total card, and a foot with the + issuer's identity and its channels. Ships as `proposal.presets.IndigoProposal` on the + structured proposal model, with its icon set packaged in the templates artifact, + porting the rendered layout of a published standalone template — and this one is exact: + rendered against the frozen original with the same data the text layers are + **identical, all 262 words in the same place to 0.000 pt**, and the head, the lower + half, the closing rule and the foot's own lines carry **no differing pixel at all**. +

      + **Two of the design's own brand assets are deliberately not ported.** The band's right + is a product photograph carrying a payment network's mark, and the foot closes on the + issuer's logotype. Those belong to their owners, and the templates artifact does not + redistribute other companies' marks. Both places are kept rather than closed up — the + band keeps the height and the column that give the copy beside it the measure it was + solved against, and the foot keeps the column that sets where the name begins — and + what fills them is the document's: the foot sets whatever monogram the document names, + and the band's column stays flat tint. This is stated on the preset rather than left to + be noticed. +

      + The sheet is one page by design and not by accident. Every block's position is a cap + top in one vertical map and a single cursor walks the page once, turning each cap top + into the margin that puts it there — so a block moves by changing one number rather + than by re-deriving the gaps around it. Four blocks state how many lines they wrap to, + because the engine cannot be asked at compose time; content heavier than the design's + own pushes what follows down and can carry the foot onto a second page, which the + preset says rather than capping what it is given. +

      + **No block is ever drawn over another.** A stated position and heavier-than-designed + content produce a negative margin, which the engine honours by *raising* the block — + so a plan of six or seven steps still fits the page and prints the closing rule + through its last step. Every margin the cursor returns is therefore floored at + nothing, and the counts either side of that window are gates: five steps is the + design's own, six and seven are where an unclamped margin overlaps silently, and + fourteen is where the foot has to take a second page. +

      + Sizes are solved from ink rather than from cap height: the design's own face is not + bundled, the substitute sets 10–20% wide at bold, and matching a cap height alone put + every bold block over its measure. A foot's confidentiality line, when a document + carries one, closes the channels line rather than opening one of its own — the + design's last line already ends against the bottom margin, so a fourth would carry the + whole foot onto a second page — and it is set as prose, not as a channel: a notice is + a sentence, and a sentence is not somewhere a reader can be sent. +

      + The two packaged mark sets are not interchangeable, and the preset says so by + refusing: the header's marks are drawn in the accent for a pale disc and the band's in + white for a near-black tile, so a band token named on a header disc would render as + nothing at all. It is a data error reported by name instead. Guarded by a smoke test + (including the empty document, a tile that names no mark, both unknown-token cases, + the notice, the overlap window and every contact being followable), an exact layout + snapshot, and a pixel baseline — all three fed by one fixture. + ### Tests - **The CodeQL scope guard can no longer be emptied by rewriting a deploy command.** diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index 7c515a1ac..daacbe0e2 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,10 +22,10 @@ "graph-compose-testing:sources" ], "counts": { - "types": 226, - "methods": 1275, - "constants": 174, - "generated": 686 + "types": 227, + "methods": 1276, + "constants": 177, + "generated": 689 }, "packages": [ { @@ -21899,6 +21899,47 @@ } ] }, + { + "name": "IndigoProposal", + "binaryName": "com.demcha.compose.document.templates.proposal.presets.IndigoProposal", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, { "name": "ModernProposal", "binaryName": "com.demcha.compose.document.templates.proposal.presets.ModernProposal", diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index 10752034f..047c1253f 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 226 · methods: 1275 · constants: 174 · compiler-generated members: 686 +Types: 227 · methods: 1276 · constants: 177 · compiler-generated members: 689 ## com.demcha.compose.document.templates.api @@ -1845,6 +1845,10 @@ Types: 226 · methods: 1275 · constants: 174 · compiler-generated members: 686 - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` +### IndigoProposal (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + ### ModernProposal (class) - `DocumentTemplate create()` - `DocumentTemplate create(BrandTheme theme)` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalFixtures.java new file mode 100644 index 000000000..1334e29b6 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalFixtures.java @@ -0,0 +1,112 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.templates.data.proposal.ProposalAttention; +import com.demcha.compose.document.templates.data.proposal.ProposalBrand; +import com.demcha.compose.document.templates.data.proposal.ProposalFooter; +import com.demcha.compose.document.templates.data.proposal.ProposalGlance; +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.ProposalRecipient; +import com.demcha.compose.document.templates.data.proposal.ProposalScope; +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 Indigo 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: an addressed head + * with a person to reply to, a four-line headline over a three-line standfirst, + * four header tiles, the tinted band with a four-line paragraph and four feature + * tiles, five numbered steps beside four priced rows and a total, three notes, + * and a foot with an address and three channels.

      + * + *

      The line counts are part of the fixture. The preset places + * every block at a stated position, and the blocks that wrap — the standfirst, + * the band's paragraph, the plan's opening and the notes list — declare how many + * lines they set in, because the engine cannot be asked at compose time. Editing + * one of them to a different line count moves everything below it, which both + * gates will report. Change the text and the map together, or keep the + * length.

      + */ +final class IndigoProposalFixtures { + + private IndigoProposalFixtures() { + } + + /** One page: a financial-infrastructure partnership offered to one customer. */ + static StructuredProposalDocumentSpec canonicalProposal() { + return StructuredProposalDocumentSpec.from(StructuredProposalData.builder() + .brand(new ProposalBrand("K", "Kestrel", "", "PROPOSAL", + "kestrel.example", "Kestrel Payments Ltd")) + .recipient(new ProposalRecipient("PREPARED FOR", "Bright Future Ltd.", + List.of("45 King Street", "Manchester, M2 4WU", "United Kingdom"))) + .attention(new ProposalAttention("ATTN", "Priya Raman", "Founder", + "priya@brightfuture.example", "+44 7700 900123")) + .title(ProposalTitleLines.of("", List.of( + "Proposal for", + "Financial Infrastructure", + "& Embedded Finance", + "Partnership"), + List.of("Empowering Bright Future Ltd. with modern financial" + + " infrastructure, global capabilities, and a seamless" + + " experience for your customers."))) + .meta(new ProposalMetaLine(List.of( + new ProposalMetaLine.Entry("date", "DATE", "27 May 2026"), + new ProposalMetaLine.Entry("identifier", "PROPOSAL ID", + "KES-2026-0527-01"), + new ProposalMetaLine.Entry("valid", "VALID UNTIL", "26 June 2026"), + new ProposalMetaLine.Entry("prepared-by", "PREPARED BY", + "Kestrel Business Team")))) + .glance(new ProposalGlance("ABOUT KESTREL BUSINESS", List.of( + new ProposalGlance.Fact("global", "Global", "Scale", ""), + new ProposalGlance.Fact("infrastructure", "Modern", + "Infrastructure", ""), + new ProposalGlance.Fact("secure", "Secure &", "Compliant", ""), + new ProposalGlance.Fact("apis", "Developer", "First APIs", "")), + "Kestrel Business provides modern financial infrastructure for" + + " forward-thinking companies. From multi-currency accounts" + + " and payments to cards, FX, and embedded finance APIs —" + + " all in one platform.")) + .scope(new ProposalScope("PROJECT OVERVIEW", "", List.of( + new ProposalScope.Item("01", "Multi-currency business accounts", + "Hold, send, receive in 30+ currencies"), + new ProposalScope.Item("02", "Corporate cards & expenses", + "Issue physical & virtual cards with smart controls"), + new ProposalScope.Item("03", "Payments & collections", + "Local & global payments, direct debits, card acquiring"), + new ProposalScope.Item("04", "Embedded finance APIs", + "Build financial products directly into your platform"), + new ProposalScope.Item("05", "Compliance & risk", + "KYC, AML, fraud monitoring and regulatory coverage")), + "This proposal outlines a tailored financial infrastructure solution" + + " to support Bright Future Ltd. in enabling fast, secure and" + + " scalable financial services for your business and your" + + " customers.")) + .investment(new ProposalInvestment("INVESTMENT SUMMARY", "", "", "", List.of( + new ProposalInvestment.Row("Implementation & Onboarding", + "£2,500", null), + new ProposalInvestment.Row("Platform Access & APIs", + "£3,000", null), + new ProposalInvestment.Row("Transaction Fees (est.)", "Variable", null), + new ProposalInvestment.Row("Support & Account Management", + "Included", null)), + "Estimated First Year Investment", "£5,500")) + .terms(new ProposalTermsBlock("NOTES", "", List.of( + "Pricing excludes applicable taxes.", + "Transaction fees are based on usage and volume.", + "This proposal is valid for 30 days from the date above."))) + .footer(new ProposalFooter("Kestrel Payments Ltd", + List.of("7 Harbour Circus, Canary Wharf, London E14 4HD," + + " United Kingdom"), + List.of("kestrel.example/business", "business@kestrel.example", + "+44 20 3322 8352"), + "")) + .build()); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalLayoutSnapshotTest.java new file mode 100644 index 000000000..78f1cb9bb --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalLayoutSnapshotTest.java @@ -0,0 +1,31 @@ +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 IndigoProposal} — freezes the resolved + * geometry of the one-page sheet, whose blocks are placed to a stated position + * rather than stacked, so a shift the pixel budget would absorb still shows up + * here as a moved node. + * + *

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

      + */ +class IndigoProposalLayoutSnapshotTest { + + @Test + void canonicalProposalMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + IndigoProposal.create().compose( + session, IndigoProposalFixtures.canonicalProposal()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "indigo_proposal_layout", "proposal"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalSmokeTest.java new file mode 100644 index 000000000..a4998105b --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalSmokeTest.java @@ -0,0 +1,279 @@ +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.snapshot.LayoutNodeSnapshot; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.data.proposal.ProposalFooter; +import com.demcha.compose.document.templates.data.proposal.ProposalGlance; +import com.demcha.compose.document.templates.data.proposal.ProposalMetaLine; +import com.demcha.compose.document.templates.data.proposal.ProposalScope; +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.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link IndigoProposal} — proves the preset renders a + * {@link StructuredProposalDocumentSpec} end-to-end with its packaged SVG icon + * set on one page, renders an empty document through its guards, makes the + * addressed person and the foot's channels followable, keeps a confidentiality + * line on the foot's own last line, and reports an unknown icon token by name. + */ +class IndigoProposalSmokeTest { + + /** A notice as one is actually written: a sentence, and not a URI. */ + private static final String NOTICE = + "Confidential — prepared for the addressee, not for onward circulation."; + + 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()) { + IndigoProposal.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); + } + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = IndigoProposal.create(); + assertThat(template.id()).isEqualTo(IndigoProposal.ID); + assertThat(template.displayName()).isEqualTo(IndigoProposal.DISPLAY_NAME); + } + + @Test + void rendersTheCanonicalProposalOnOnePage() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + IndigoProposal.create().compose( + session, IndigoProposalFixtures.canonicalProposal()); + // The design is a one-page sheet, and the fixture is sized for it. + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + } + } + + @Test + void rendersEmptyProposal() throws Exception { + // Exercises the guards: no monogram in the foot's mark, no channels, no + // feature tiles, no steps, no priced rows, no total card, no notes. + render(StructuredProposalDocumentSpec.from(StructuredProposalData.builder().build())); + } + + @Test + void canonicalRenderCarriesTheMoneyOnTheTextLayer() throws Exception { + // The priced rows are composed table cells, which emit no placed node + // of their own — the text layer is where their content is assertable. + String text = textOf(render(IndigoProposalFixtures.canonicalProposal())); + assertThat(text) + .contains("Implementation & Onboarding") + .contains("£2,500") + .contains("Estimated First Year Investment") + .contains("£5,500"); + } + + @Test + void theAddressedPersonAndTheFootsChannelsAreFollowable() throws Exception { + // A proposal names a person to reply to and the channels its issuer + // answers on; a reader's device needs the form it can act on, and the + // foot's channels say only how they are printed. + assertThat(linkTargets(render(IndigoProposalFixtures.canonicalProposal()))) + .contains("mailto:priya@brightfuture.example") + .contains("tel:+447700900123") + .contains("https://kestrel.example/business") + .contains("mailto:business@kestrel.example") + .contains("tel:+442033228352"); + } + + @Test + void aConfidentialityLineClosesTheFootWithoutOpeningAPage() throws Exception { + // The design's foot is three lines and its last one sits against the + // bottom margin, so the line closes the channels rather than opening a + // fourth line that would carry the whole foot onto a second page. + StructuredProposalData base = IndigoProposalFixtures.canonicalProposal().proposal(); + StructuredProposalDocumentSpec spec = StructuredProposalDocumentSpec.from( + StructuredProposalData.builder() + .brand(base.brand()) + .recipient(base.recipient()) + .attention(base.attention()) + .title(base.title()) + .meta(base.meta()) + .glance(base.glance()) + .scope(base.scope()) + .investment(base.investment()) + .terms(base.terms()) + .footer(new ProposalFooter(base.footer().name(), + base.footer().addressLines(), base.footer().contacts(), + NOTICE)) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + IndigoProposal.create().compose(session, spec); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + assertThat(textOf(session.toPdfBytes())).contains(NOTICE); + } + } + + @ParameterizedTest + @ValueSource(strings = {NOTICE, "Commercial-in-confidence"}) + void aNoticeIsSetAsProseAndNotAsSomewhereToBeSent(String notice) throws Exception { + // A confidentiality notice shares the foot's last line with the + // channels, and a channel is linked from the shape of what it prints. + // A notice is neither: the sentence would be a link target with spaces + // in it, and the single word — which is a perfectly good host name — + // would quietly become a site nobody meant to publish. + StructuredProposalData base = IndigoProposalFixtures.canonicalProposal().proposal(); + StructuredProposalDocumentSpec spec = StructuredProposalDocumentSpec.from( + StructuredProposalData.builder() + .brand(base.brand()) + .footer(new ProposalFooter(base.footer().name(), + base.footer().addressLines(), List.of(), notice)) + .build()); + byte[] pdfBytes = render(spec); + assertThat(textOf(pdfBytes)).contains(notice); + assertThat(linkTargets(pdfBytes)).isEmpty(); + } + + @ParameterizedTest + @ValueSource(ints = {5, 6, 7, 8, 14}) + void aPlanLongerThanTheDesignsNeverPrintsTheFootOverIt(int stepCount) throws Exception { + // Every block is placed to a stated position, so a plan that runs past + // where the map expects it would otherwise ask for a negative margin and + // draw the closing rule over the last steps. Six and seven are the + // counts that still fit the page — where an unclamped margin overlaps + // silently — and fourteen is where it has to take a second page. + StructuredProposalData base = IndigoProposalFixtures.canonicalProposal().proposal(); + List steps = new ArrayList<>(base.scope().items()); + for (int i = steps.size(); i < stepCount; i++) { + steps.add(new ProposalScope.Item(String.format("%02d", i + 1), + "Step " + (i + 1), "What the step covers")); + } + StructuredProposalDocumentSpec spec = StructuredProposalDocumentSpec.from( + withScope(base, new ProposalScope(base.scope().heading(), "", + steps.subList(0, stepCount), base.scope().intro()))); + try (DocumentSession session = GraphCompose.document().create()) { + IndigoProposal.create().compose(session, spec); + List nodes = session.layoutSnapshot().nodes(); + LayoutNodeSnapshot plan = node(nodes, "LowerRow"); + LayoutNodeSnapshot closing = node(nodes, "FooterRule"); + if (closing.startPage() == plan.startPage()) { + // y grows upward, so the rule's top edge must not reach above + // the plan's bottom edge. + assertThat(closing.computedY() + closing.placementHeight()) + .isLessThanOrEqualTo(plan.computedY() + 0.01); + } + assertThat(textOf(session.toPdfBytes())).contains("Kestrel Payments Ltd"); + } + } + + private static LayoutNodeSnapshot node(List nodes, String name) { + return nodes.stream() + .filter(n -> name.equals(n.entityName())) + .findFirst() + .orElseThrow(() -> new AssertionError("No node named " + name)); + } + + private static StructuredProposalData withScope(StructuredProposalData base, + ProposalScope scope) { + return StructuredProposalData.builder() + .brand(base.brand()) + .recipient(base.recipient()) + .attention(base.attention()) + .title(base.title()) + .meta(base.meta()) + .glance(base.glance()) + .scope(scope) + .investment(base.investment()) + .terms(base.terms()) + .footer(base.footer()) + .build(); + } + + @Test + void aTileThatNamesNoMarkIsStillTheTileTheDesignDraws() throws Exception { + // The shape is the design's and the mark inside it is the document's, + // so a fact naming none keeps its tile — and the row of tiles keeps the + // pitch the copy above it was measured against. Asserting the text would + // pass with the tile deleted, so the tile itself is what is asked for. + StructuredProposalDocumentSpec spec = StructuredProposalDocumentSpec.from( + StructuredProposalData.builder() + .glance(new ProposalGlance("ABOUT", List.of( + new ProposalGlance.Fact("", "Global", "Scale", "")), "")) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + IndigoProposal.create().compose(session, spec); + LayoutNodeSnapshot tile = node(session.layoutSnapshot().nodes(), "FeatureTile_0"); + assertThat(tile.placementWidth()).isGreaterThan(0); + assertThat(tile.placementHeight()).isGreaterThan(0); + assertThat(textOf(session.toPdfBytes())).contains("Global").contains("Scale"); + } + } + + @Test + void rejectsUnknownIconTokenByName() { + StructuredProposalDocumentSpec spec = StructuredProposalDocumentSpec.from( + StructuredProposalData.builder() + .glance(new ProposalGlance("ABOUT", List.of( + new ProposalGlance.Fact("no-such-icon", "Global", + "Scale", "")), "")) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + assertThatThrownBy(() -> IndigoProposal.create().compose(session, spec)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("no-such-icon"); + } + } + + @Test + void rejectsAMarkNamedOnTheBlockItWasNotCutFor() { + // The header's marks are drawn in the accent for a pale disc and the + // band's in white for a near-black tile, so a band token on a header + // disc would render as nothing at all. It is refused by name instead. + StructuredProposalDocumentSpec spec = StructuredProposalDocumentSpec.from( + StructuredProposalData.builder() + .meta(new ProposalMetaLine(List.of( + new ProposalMetaLine.Entry("global", "DATE", "27 May 2026")))) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + assertThatThrownBy(() -> IndigoProposal.create().compose(session, spec)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("global") + .hasMessageContaining("prepared-by"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalVisualParityTest.java new file mode 100644 index 000000000..fbd8ea50b --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposalVisualParityTest.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 IndigoProposal} — the canonical + * fixture's page against a checked-in baseline. + * + *

      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 IndigoProposalVisualParityTest { + + 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()) { + IndigoProposal.create().compose( + document, IndigoProposalFixtures.canonicalProposal()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("indigo_proposal", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/indigo_proposal_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/indigo_proposal_layout.json new file mode 100644 index 000000000..931929924 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/indigo_proposal_layout.json @@ -0,0 +1,5477 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 544.446, + "innerHeight" : 802.355, + "margin" : { + "top" : 25.98, + "right" : 23.156, + "bottom" : 13.555, + "left" : 27.674 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "Proposal[0]", + "entityName" : "Proposal", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 27.674, + "computedY" : 14.442, + "placementX" : 27.674, + "placementY" : 14.442, + "placementWidth" : 544.446, + "placementHeight" : 801.468, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.446, + "contentHeight" : 801.468, + "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" : "RowNode", + "parentPath" : "Proposal[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 27.674, + "computedY" : 785.505, + "placementX" : 27.674, + "placementY" : 785.505, + "placementWidth" : 544.446, + "placementHeight" : 28.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.446, + "contentHeight" : 28.3, + "margin" : { + "top" : 2.105, + "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]/Wordmark[0]", + "entityName" : "Wordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.674, + "computedY" : 785.505, + "placementX" : 27.674, + "placementY" : 785.505, + "placementWidth" : 97.267, + "placementHeight" : 28.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.267, + "contentHeight" : 28.3, + "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]/DocumentLabel[1]", + "entityName" : "DocumentLabel", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 299.897, + "computedY" : 789.166, + "placementX" : 299.897, + "placementY" : 789.166, + "placementWidth" : 272.223, + "placementHeight" : 24.638, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 272.223, + "contentHeight" : 24.638, + "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]/DocumentLabel[1]/DocumentLabelText[0]", + "entityName" : "DocumentLabelText", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Masthead[0]/DocumentLabel[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 299.897, + "computedY" : 799.905, + "placementX" : 299.897, + "placementY" : 799.905, + "placementWidth" : 272.223, + "placementHeight" : 13.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 272.223, + "contentHeight" : 13.9, + "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]/DocumentLabel[1]/DocumentLabelRule[1]", + "entityName" : "DocumentLabelRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Masthead[0]/DocumentLabel[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 539.927, + "computedY" : 789.166, + "placementX" : 539.927, + "placementY" : 789.166, + "placementWidth" : 32.192, + "placementHeight" : 1.694, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.192, + "contentHeight" : 1.694, + "margin" : { + "top" : 9.044, + "right" : 0.0, + "bottom" : 0.0, + "left" : 240.03 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MastheadRule[1]", + "entityName" : "MastheadRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 27.674, + "computedY" : 771.987, + "placementX" : 27.674, + "placementY" : 771.987, + "placementWidth" : 544.446, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.446, + "contentHeight" : 1.0, + "margin" : { + "top" : 12.518, + "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]/IntroRow[2]", + "entityName" : "IntroRow", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 27.674, + "computedY" : 475.902, + "placementX" : 27.674, + "placementY" : 475.902, + "placementWidth" : 544.446, + "placementHeight" : 267.769, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.446, + "contentHeight" : 267.769, + "margin" : { + "top" : 28.316, + "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]/IntroRow[2]/IntroLeft[0]", + "entityName" : "IntroLeft", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.674, + "computedY" : 553.804, + "placementX" : 27.674, + "placementY" : 553.804, + "placementWidth" : 154.184, + "placementHeight" : 189.867, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 154.184, + "contentHeight" : 189.867, + "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]/IntroRow[2]/IntroLeft[0]/RecipientLabel[0]", + "entityName" : "RecipientLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 735.571, + "placementX" : 27.674, + "placementY" : 735.571, + "placementWidth" : 62.564, + "placementHeight" : 8.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.564, + "contentHeight" : 8.1, + "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]/IntroRow[2]/IntroLeft[0]/RecipientName[1]", + "entityName" : "RecipientName", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 713.658, + "placementX" : 27.674, + "placementY" : 713.658, + "placementWidth" : 112.385, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.385, + "contentHeight" : 13.2, + "margin" : { + "top" : 8.714, + "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]/IntroRow[2]/IntroLeft[0]/RecipientAddress_0[2]", + "entityName" : "RecipientAddress_0", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 693.457, + "placementX" : 27.674, + "placementY" : 693.457, + "placementWidth" : 56.522, + "placementHeight" : 8.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.522, + "contentHeight" : 8.8, + "margin" : { + "top" : 11.4, + "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]/IntroRow[2]/IntroLeft[0]/RecipientAddress_1[3]", + "entityName" : "RecipientAddress_1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 681.032, + "placementX" : 27.674, + "placementY" : 681.032, + "placementWidth" : 85.765, + "placementHeight" : 8.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.765, + "contentHeight" : 8.8, + "margin" : { + "top" : 3.625, + "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]/IntroRow[2]/IntroLeft[0]/RecipientAddress_2[4]", + "entityName" : "RecipientAddress_2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 668.042, + "placementX" : 27.674, + "placementY" : 668.042, + "placementWidth" : 64.108, + "placementHeight" : 8.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.108, + "contentHeight" : 8.8, + "margin" : { + "top" : 4.19, + "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]/IntroRow[2]/IntroLeft[0]/RecipientDivider[5]", + "entityName" : "RecipientDivider", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 639.111, + "placementX" : 27.674, + "placementY" : 639.111, + "placementWidth" : 154.184, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 154.184, + "contentHeight" : 1.0, + "margin" : { + "top" : 27.931, + "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]/IntroRow[2]/IntroLeft[0]/AttentionLabel[6]", + "entityName" : "AttentionLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 614.556, + "placementX" : 27.674, + "placementY" : 614.556, + "placementWidth" : 21.263, + "placementHeight" : 8.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.263, + "contentHeight" : 8.1, + "margin" : { + "top" : 16.455, + "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]/IntroRow[2]/IntroLeft[0]/AttentionName[7]", + "entityName" : "AttentionName", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 595.586, + "placementX" : 27.674, + "placementY" : 595.586, + "placementWidth" : 57.888, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.888, + "contentHeight" : 9.6, + "margin" : { + "top" : 9.37, + "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]/IntroRow[2]/IntroLeft[0]/AttentionRole[8]", + "entityName" : "AttentionRole", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 8, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 580.256, + "placementX" : 27.674, + "placementY" : 580.256, + "placementWidth" : 33.268, + "placementHeight" : 8.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.268, + "contentHeight" : 8.9, + "margin" : { + "top" : 6.431, + "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]/IntroRow[2]/IntroLeft[0]/AttentionEmail[9]", + "entityName" : "AttentionEmail", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 9, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 566.794, + "placementX" : 27.674, + "placementY" : 566.794, + "placementWidth" : 112.42, + "placementHeight" : 8.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.42, + "contentHeight" : 8.8, + "margin" : { + "top" : 4.661, + "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]/IntroRow[2]/IntroLeft[0]/AttentionPhone[10]", + "entityName" : "AttentionPhone", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroLeft[0]", + "childIndex" : 10, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 553.804, + "placementX" : 27.674, + "placementY" : 553.804, + "placementWidth" : 67.901, + "placementHeight" : 8.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.901, + "contentHeight" : 8.8, + "margin" : { + "top" : 4.19, + "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]/IntroRow[2]/ColumnDividerUpper[1]", + "entityName" : "ColumnDividerUpper", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 227.041, + "computedY" : 476.891, + "placementX" : 227.041, + "placementY" : 476.891, + "placementWidth" : 1.0, + "placementHeight" : 266.781, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 266.781, + "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]/IntroRow[2]/ColumnDividerUpper[1]/ColumnDividerUpperRule[0]", + "entityName" : "ColumnDividerUpperRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/IntroRow[2]/ColumnDividerUpper[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 227.041, + "computedY" : 476.891, + "placementX" : 227.041, + "placementY" : 476.891, + "placementWidth" : 1.0, + "placementHeight" : 267.705, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 267.705, + "margin" : { + "top" : -0.924, + "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]/IntroRow[2]/IntroRight[2]", + "entityName" : "IntroRight", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 249.067, + "computedY" : 475.902, + "placementX" : 249.067, + "placementY" : 475.902, + "placementWidth" : 323.053, + "placementHeight" : 267.769, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 267.769, + "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]/IntroRow[2]/IntroRight[2]/HeadlineLine_0[0]", + "entityName" : "HeadlineLine_0", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 249.067, + "computedY" : 715.789, + "placementX" : 249.067, + "placementY" : 715.789, + "placementWidth" : 148.716, + "placementHeight" : 25.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 148.716, + "contentHeight" : 25.5, + "margin" : { + "top" : 2.382, + "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]/IntroRow[2]/IntroRight[2]/HeadlineLine_1[1]", + "entityName" : "HeadlineLine_1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 249.067, + "computedY" : 685.291, + "placementX" : 249.067, + "placementY" : 685.291, + "placementWidth" : 284.274, + "placementHeight" : 25.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 284.274, + "contentHeight" : 25.5, + "margin" : { + "top" : 4.998, + "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]/IntroRow[2]/IntroRight[2]/HeadlineLine_2[2]", + "entityName" : "HeadlineLine_2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 249.067, + "computedY" : 655.358, + "placementX" : 249.067, + "placementY" : 655.358, + "placementWidth" : 257.244, + "placementHeight" : 25.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 257.244, + "contentHeight" : 25.5, + "margin" : { + "top" : 4.433, + "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]/IntroRow[2]/IntroRight[2]/HeadlineLine_3[3]", + "entityName" : "HeadlineLine_3", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 249.067, + "computedY" : 624.86, + "placementX" : 249.067, + "placementY" : 624.86, + "placementWidth" : 143.106, + "placementHeight" : 25.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 143.106, + "contentHeight" : 25.5, + "margin" : { + "top" : 4.998, + "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]/IntroRow[2]/IntroRight[2]/HeadlineRule[4]", + "entityName" : "HeadlineRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 249.067, + "computedY" : 612.437, + "placementX" : 249.067, + "placementY" : 612.437, + "placementWidth" : 32.757, + "placementHeight" : 1.694, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.757, + "contentHeight" : 1.694, + "margin" : { + "top" : 10.729, + "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]/IntroRow[2]/IntroRight[2]/HeadlineStandfirst[5]", + "entityName" : "HeadlineStandfirst", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 249.067, + "computedY" : 559.33, + "placementX" : 249.067, + "placementY" : 559.33, + "placementWidth" : 231.141, + "placementHeight" : 36.809, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 231.141, + "contentHeight" : 36.809, + "margin" : { + "top" : 16.298, + "right" : 91.494, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]", + "entityName" : "MetaTilesLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 249.067, + "computedY" : 475.902, + "placementX" : 249.067, + "placementY" : 475.902, + "placementWidth" : 323.053, + "placementHeight" : 83.428, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 83.428, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]", + "entityName" : "MetaTilesHolder", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 249.067, + "computedY" : 475.902, + "placementX" : 249.067, + "placementY" : 475.902, + "placementWidth" : 323.053, + "placementHeight" : 83.428, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 83.428, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]", + "entityName" : "MetaTiles", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 249.067, + "computedY" : 475.902, + "placementX" : 249.067, + "placementY" : 475.902, + "placementWidth" : 323.053, + "placementHeight" : 56.417, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 56.417, + "margin" : { + "top" : 27.011, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]", + "entityName" : "MetaTile_0", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 249.067, + "computedY" : 475.902, + "placementX" : 249.067, + "placementY" : 475.902, + "placementWidth" : 44.749, + "placementHeight" : 56.417, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.749, + "contentHeight" : 56.417, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaCircle_0[0]", + "entityName" : "MetaCircle_0", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 249.067, + "computedY" : 507.469, + "placementX" : 249.067, + "placementY" : 507.469, + "placementWidth" : 24.85, + "placementHeight" : 24.85, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 24.85, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaCircle_0[0]/dateGlyph[0]", + "entityName" : "dateGlyph", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaCircle_0[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 249.067, + "computedY" : 514.246, + "placementX" : 249.067, + "placementY" : 514.246, + "placementWidth" : 24.85, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaCircle_0[0]/dateGlyph[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaCircle_0[0]/dateGlyph[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 249.067, + "computedY" : 514.246, + "placementX" : 249.067, + "placementY" : 514.246, + "placementWidth" : 24.85, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaCircle_0[0]/dateGlyph[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaCircle_0[0]/dateGlyph[0]/Align[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 255.844, + "computedY" : 514.246, + "placementX" : 255.844, + "placementY" : 514.246, + "placementWidth" : 11.296, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.296, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaCircle_0[0]/dateGlyph[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaCircle_0[0]/dateGlyph[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 255.844, + "computedY" : 514.246, + "placementX" : 255.844, + "placementY" : 514.246, + "placementWidth" : 11.296, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.296, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaLabel_0[1]", + "entityName" : "MetaLabel_0", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 249.067, + "computedY" : 489.261, + "placementX" : 249.067, + "placementY" : 489.261, + "placementWidth" : 16.796, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.796, + "contentHeight" : 6.8, + "margin" : { + "top" : 11.408, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]/MetaValue_0[2]", + "entityName" : "MetaValue_0", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_0[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 249.067, + "computedY" : 475.902, + "placementX" : 249.067, + "placementY" : 475.902, + "placementWidth" : 44.749, + "placementHeight" : 7.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.749, + "contentHeight" : 7.8, + "margin" : { + "top" : 5.559, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]", + "entityName" : "MetaTile_1", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 322.488, + "computedY" : 475.902, + "placementX" : 322.488, + "placementY" : 475.902, + "placementWidth" : 70.769, + "placementHeight" : 56.417, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.769, + "contentHeight" : 56.417, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaCircle_1[0]", + "entityName" : "MetaCircle_1", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 322.488, + "computedY" : 507.469, + "placementX" : 322.488, + "placementY" : 507.469, + "placementWidth" : 24.85, + "placementHeight" : 24.85, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 24.85, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaCircle_1[0]/identifierGlyph[0]", + "entityName" : "identifierGlyph", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaCircle_1[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 322.488, + "computedY" : 514.246, + "placementX" : 322.488, + "placementY" : 514.246, + "placementWidth" : 24.85, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaCircle_1[0]/identifierGlyph[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaCircle_1[0]/identifierGlyph[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 322.488, + "computedY" : 514.246, + "placementX" : 322.488, + "placementY" : 514.246, + "placementWidth" : 24.85, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaCircle_1[0]/identifierGlyph[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaCircle_1[0]/identifierGlyph[0]/Align[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 329.265, + "computedY" : 514.246, + "placementX" : 329.265, + "placementY" : 514.246, + "placementWidth" : 11.296, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.296, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaCircle_1[0]/identifierGlyph[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaCircle_1[0]/identifierGlyph[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 329.265, + "computedY" : 514.246, + "placementX" : 329.265, + "placementY" : 514.246, + "placementWidth" : 11.296, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.296, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaLabel_1[1]", + "entityName" : "MetaLabel_1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 322.488, + "computedY" : 489.261, + "placementX" : 322.488, + "placementY" : 489.261, + "placementWidth" : 43.214, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 43.214, + "contentHeight" : 6.8, + "margin" : { + "top" : 11.408, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]/MetaValue_1[2]", + "entityName" : "MetaValue_1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_1[1]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 322.488, + "computedY" : 475.902, + "placementX" : 322.488, + "placementY" : 475.902, + "placementWidth" : 70.769, + "placementHeight" : 7.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.769, + "contentHeight" : 7.8, + "margin" : { + "top" : 5.559, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]", + "entityName" : "MetaTile_2", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 402.122, + "computedY" : 475.902, + "placementX" : 402.122, + "placementY" : 475.902, + "placementWidth" : 46.722, + "placementHeight" : 56.417, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 46.722, + "contentHeight" : 56.417, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaCircle_2[0]", + "entityName" : "MetaCircle_2", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 402.122, + "computedY" : 507.469, + "placementX" : 402.122, + "placementY" : 507.469, + "placementWidth" : 24.85, + "placementHeight" : 24.85, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 24.85, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaCircle_2[0]/validGlyph[0]", + "entityName" : "validGlyph", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaCircle_2[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 402.122, + "computedY" : 514.246, + "placementX" : 402.122, + "placementY" : 514.246, + "placementWidth" : 24.85, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaCircle_2[0]/validGlyph[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaCircle_2[0]/validGlyph[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 402.122, + "computedY" : 514.246, + "placementX" : 402.122, + "placementY" : 514.246, + "placementWidth" : 24.85, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaCircle_2[0]/validGlyph[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaCircle_2[0]/validGlyph[0]/Align[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 408.899, + "computedY" : 514.246, + "placementX" : 408.899, + "placementY" : 514.246, + "placementWidth" : 11.296, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.296, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaCircle_2[0]/validGlyph[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaCircle_2[0]/validGlyph[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 408.899, + "computedY" : 514.246, + "placementX" : 408.899, + "placementY" : 514.246, + "placementWidth" : 11.296, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.296, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaLabel_2[1]", + "entityName" : "MetaLabel_2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 402.122, + "computedY" : 489.261, + "placementX" : 402.122, + "placementY" : 489.261, + "placementWidth" : 39.175, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 39.175, + "contentHeight" : 6.8, + "margin" : { + "top" : 11.408, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]/MetaValue_2[2]", + "entityName" : "MetaValue_2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_2[2]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 402.122, + "computedY" : 475.902, + "placementX" : 402.122, + "placementY" : 475.902, + "placementWidth" : 46.722, + "placementHeight" : 7.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 46.722, + "contentHeight" : 7.8, + "margin" : { + "top" : 5.559, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]", + "entityName" : "MetaTile_3", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]", + "childIndex" : 3, + "depth" : 7, + "layer" : 7, + "computedX" : 486.838, + "computedY" : 475.902, + "placementX" : 486.838, + "placementY" : 475.902, + "placementWidth" : 79.895, + "placementHeight" : 56.417, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 79.895, + "contentHeight" : 56.417, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaCircle_3[0]", + "entityName" : "MetaCircle_3", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 486.838, + "computedY" : 507.469, + "placementX" : 486.838, + "placementY" : 507.469, + "placementWidth" : 24.85, + "placementHeight" : 24.85, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 24.85, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaCircle_3[0]/prepared-byGlyph[0]", + "entityName" : "prepared-byGlyph", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaCircle_3[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 486.838, + "computedY" : 514.246, + "placementX" : 486.838, + "placementY" : 514.246, + "placementWidth" : 24.85, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaCircle_3[0]/prepared-byGlyph[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaCircle_3[0]/prepared-byGlyph[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 486.838, + "computedY" : 514.246, + "placementX" : 486.838, + "placementY" : 514.246, + "placementWidth" : 24.85, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.85, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaCircle_3[0]/prepared-byGlyph[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaCircle_3[0]/prepared-byGlyph[0]/Align[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 493.616, + "computedY" : 514.246, + "placementX" : 493.616, + "placementY" : 514.246, + "placementWidth" : 11.296, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.296, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaCircle_3[0]/prepared-byGlyph[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaCircle_3[0]/prepared-byGlyph[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 493.616, + "computedY" : 514.246, + "placementX" : 493.616, + "placementY" : 514.246, + "placementWidth" : 11.296, + "placementHeight" : 11.296, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.296, + "contentHeight" : 11.296, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaLabel_3[1]", + "entityName" : "MetaLabel_3", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 486.838, + "computedY" : 489.261, + "placementX" : 486.838, + "placementY" : 489.261, + "placementWidth" : 45.145, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.145, + "contentHeight" : 6.8, + "margin" : { + "top" : 11.408, + "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]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]/MetaValue_3[2]", + "entityName" : "MetaValue_3", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/IntroRow[2]/IntroRight[2]/MetaTilesLayer[6]/MetaTilesHolder[0]/MetaTiles[0]/MetaTile_3[3]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 486.838, + "computedY" : 475.902, + "placementX" : 486.838, + "placementY" : 475.902, + "placementWidth" : 79.895, + "placementHeight" : 7.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 79.895, + "contentHeight" : 7.8, + "margin" : { + "top" : 5.559, + "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]/AboutBand[3]", + "entityName" : "AboutBand", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 287.77, + "placementX" : 0.0, + "placementY" : 287.77, + "placementWidth" : 595.276, + "placementHeight" : 173.387, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 173.387, + "margin" : { + "top" : 14.745, + "right" : -23.156, + "bottom" : 0.0, + "left" : -27.674 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 27.674 + } + }, { + "path" : "Proposal[0]/AboutBand[3]/AboutRow[0]", + "entityName" : "AboutRow", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/AboutBand[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.674, + "computedY" : 287.77, + "placementX" : 27.674, + "placementY" : 287.77, + "placementWidth" : 567.602, + "placementHeight" : 173.387, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 567.602, + "contentHeight" : 173.387, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]", + "entityName" : "AboutLeft", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 307.459, + "placementX" : 27.674, + "placementY" : 307.459, + "placementWidth" : 237.771, + "placementHeight" : 153.698, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.771, + "contentHeight" : 153.698, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/AboutHeading[0]", + "entityName" : "AboutHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.674, + "computedY" : 432.931, + "placementX" : 27.674, + "placementY" : 432.931, + "placementWidth" : 108.872, + "placementHeight" : 8.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.872, + "contentHeight" : 8.1, + "margin" : { + "top" : 20.126, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/AboutBody[1]", + "entityName" : "AboutBody", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 27.674, + "computedY" : 381.584, + "placementX" : 27.674, + "placementY" : 381.584, + "placementWidth" : 213.556, + "placementHeight" : 41.687, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 213.556, + "contentHeight" : 41.687, + "margin" : { + "top" : 9.66, + "right" : 22.026, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]", + "entityName" : "FeatureTilesLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 27.674, + "computedY" : 307.459, + "placementX" : 27.674, + "placementY" : 307.459, + "placementWidth" : 237.771, + "placementHeight" : 74.125, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.771, + "contentHeight" : 74.125, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]", + "entityName" : "FeatureTilesHolder", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.674, + "computedY" : 307.459, + "placementX" : 27.674, + "placementY" : 307.459, + "placementWidth" : 237.771, + "placementHeight" : 74.125, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.771, + "contentHeight" : 74.125, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]", + "entityName" : "FeatureTiles", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.674, + "computedY" : 307.459, + "placementX" : 27.674, + "placementY" : 307.459, + "placementWidth" : 237.771, + "placementHeight" : 54.251, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 237.771, + "contentHeight" : 54.251, + "margin" : { + "top" : 19.874, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]", + "entityName" : "FeatureCell_0", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.674, + "computedY" : 307.459, + "placementX" : 27.674, + "placementY" : 307.459, + "placementWidth" : 27.109, + "placementHeight" : 54.251, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 54.251, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]", + "entityName" : "FeatureTile_0", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 27.674, + "computedY" : 334.601, + "placementX" : 27.674, + "placementY" : 334.601, + "placementWidth" : 27.109, + "placementHeight" : 27.109, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 27.109, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]/globalGlyph[0]", + "entityName" : "globalGlyph", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 27.674, + "computedY" : 341.378, + "placementX" : 27.674, + "placementY" : 341.378, + "placementWidth" : 27.109, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]/globalGlyph[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]/globalGlyph[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 27.674, + "computedY" : 341.378, + "placementX" : 27.674, + "placementY" : 341.378, + "placementWidth" : 27.109, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]/globalGlyph[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]/globalGlyph[0]/Align[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 34.451, + "computedY" : 341.378, + "placementX" : 34.451, + "placementY" : 341.378, + "placementWidth" : 13.555, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.555, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]/globalGlyph[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]/globalGlyph[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 34.451, + "computedY" : 341.378, + "placementX" : 34.451, + "placementY" : 341.378, + "placementWidth" : 13.555, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.555, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]/globalGlyph[0]/Align[0]/SvgIcon[0]/SvgLayer1[1]", + "entityName" : "SvgLayer1", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureTile_0[0]/globalGlyph[0]/Align[0]/SvgIcon[0]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 34.451, + "computedY" : 341.378, + "placementX" : 34.451, + "placementY" : 341.378, + "placementWidth" : 13.555, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.555, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureLine1_0[1]", + "entityName" : "FeatureLine1_0", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 27.674, + "computedY" : 318.19, + "placementX" : 27.674, + "placementY" : 318.19, + "placementWidth" : 22.973, + "placementHeight" : 7.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.973, + "contentHeight" : 7.9, + "margin" : { + "top" : 8.511, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]/FeatureLine2_0[2]", + "entityName" : "FeatureLine2_0", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_0[0]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 27.674, + "computedY" : 307.459, + "placementX" : 27.674, + "placementY" : 307.459, + "placementWidth" : 19.474, + "placementHeight" : 7.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.474, + "contentHeight" : 7.9, + "margin" : { + "top" : 2.831, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]", + "entityName" : "FeatureCell_1", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 90.195, + "computedY" : 307.459, + "placementX" : 90.195, + "placementY" : 307.459, + "placementWidth" : 48.941, + "placementHeight" : 54.251, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.941, + "contentHeight" : 54.251, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureTile_1[0]", + "entityName" : "FeatureTile_1", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 90.195, + "computedY" : 334.601, + "placementX" : 90.195, + "placementY" : 334.601, + "placementWidth" : 27.109, + "placementHeight" : 27.109, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 27.109, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureTile_1[0]/infrastructureGlyph[0]", + "entityName" : "infrastructureGlyph", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureTile_1[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 90.195, + "computedY" : 341.378, + "placementX" : 90.195, + "placementY" : 341.378, + "placementWidth" : 27.109, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureTile_1[0]/infrastructureGlyph[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureTile_1[0]/infrastructureGlyph[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 90.195, + "computedY" : 341.378, + "placementX" : 90.195, + "placementY" : 341.378, + "placementWidth" : 27.109, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureTile_1[0]/infrastructureGlyph[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureTile_1[0]/infrastructureGlyph[0]/Align[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 96.972, + "computedY" : 341.378, + "placementX" : 96.972, + "placementY" : 341.378, + "placementWidth" : 13.555, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.555, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureTile_1[0]/infrastructureGlyph[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureTile_1[0]/infrastructureGlyph[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 96.972, + "computedY" : 341.378, + "placementX" : 96.972, + "placementY" : 341.378, + "placementWidth" : 13.555, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.555, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureLine1_1[1]", + "entityName" : "FeatureLine1_1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 90.195, + "computedY" : 318.19, + "placementX" : 90.195, + "placementY" : 318.19, + "placementWidth" : 27.595, + "placementHeight" : 7.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.595, + "contentHeight" : 7.9, + "margin" : { + "top" : 8.511, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]/FeatureLine2_1[2]", + "entityName" : "FeatureLine2_1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_1[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 90.195, + "computedY" : 307.459, + "placementX" : 90.195, + "placementY" : 307.459, + "placementWidth" : 48.941, + "placementHeight" : 7.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.941, + "contentHeight" : 7.9, + "margin" : { + "top" : 2.831, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]", + "entityName" : "FeatureCell_2", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 152.716, + "computedY" : 307.459, + "placementX" : 152.716, + "placementY" : 307.459, + "placementWidth" : 36.395, + "placementHeight" : 54.251, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.395, + "contentHeight" : 54.251, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureTile_2[0]", + "entityName" : "FeatureTile_2", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 152.716, + "computedY" : 334.601, + "placementX" : 152.716, + "placementY" : 334.601, + "placementWidth" : 27.109, + "placementHeight" : 27.109, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 27.109, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureTile_2[0]/secureGlyph[0]", + "entityName" : "secureGlyph", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureTile_2[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 152.716, + "computedY" : 341.378, + "placementX" : 152.716, + "placementY" : 341.378, + "placementWidth" : 27.109, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureTile_2[0]/secureGlyph[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureTile_2[0]/secureGlyph[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 152.716, + "computedY" : 341.378, + "placementX" : 152.716, + "placementY" : 341.378, + "placementWidth" : 27.109, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureTile_2[0]/secureGlyph[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureTile_2[0]/secureGlyph[0]/Align[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 159.493, + "computedY" : 341.378, + "placementX" : 159.493, + "placementY" : 341.378, + "placementWidth" : 13.555, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.555, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureTile_2[0]/secureGlyph[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureTile_2[0]/secureGlyph[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 159.493, + "computedY" : 341.378, + "placementX" : 159.493, + "placementY" : 341.378, + "placementWidth" : 13.555, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.555, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureLine1_2[1]", + "entityName" : "FeatureLine1_2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 152.716, + "computedY" : 318.19, + "placementX" : 152.716, + "placementY" : 318.19, + "placementWidth" : 31.758, + "placementHeight" : 7.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.758, + "contentHeight" : 7.9, + "margin" : { + "top" : 8.511, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]/FeatureLine2_2[2]", + "entityName" : "FeatureLine2_2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_2[2]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 152.716, + "computedY" : 307.459, + "placementX" : 152.716, + "placementY" : 307.459, + "placementWidth" : 36.395, + "placementHeight" : 7.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.395, + "contentHeight" : 7.9, + "margin" : { + "top" : 2.831, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]", + "entityName" : "FeatureCell_3", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]", + "childIndex" : 3, + "depth" : 8, + "layer" : 8, + "computedX" : 215.237, + "computedY" : 307.459, + "placementX" : 215.237, + "placementY" : 307.459, + "placementWidth" : 36.332, + "placementHeight" : 54.251, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.332, + "contentHeight" : 54.251, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureTile_3[0]", + "entityName" : "FeatureTile_3", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 215.237, + "computedY" : 334.601, + "placementX" : 215.237, + "placementY" : 334.601, + "placementWidth" : 27.109, + "placementHeight" : 27.109, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 27.109, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureTile_3[0]/apisGlyph[0]", + "entityName" : "apisGlyph", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureTile_3[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 215.237, + "computedY" : 341.378, + "placementX" : 215.237, + "placementY" : 341.378, + "placementWidth" : 27.109, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureTile_3[0]/apisGlyph[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureTile_3[0]/apisGlyph[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 215.237, + "computedY" : 341.378, + "placementX" : 215.237, + "placementY" : 341.378, + "placementWidth" : 27.109, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.109, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureTile_3[0]/apisGlyph[0]/Align[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureTile_3[0]/apisGlyph[0]/Align[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 222.014, + "computedY" : 341.378, + "placementX" : 222.014, + "placementY" : 341.378, + "placementWidth" : 13.555, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.555, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureTile_3[0]/apisGlyph[0]/Align[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureTile_3[0]/apisGlyph[0]/Align[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 222.014, + "computedY" : 341.378, + "placementX" : 222.014, + "placementY" : 341.378, + "placementWidth" : 13.555, + "placementHeight" : 13.555, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.555, + "contentHeight" : 13.555, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureLine1_3[1]", + "entityName" : "FeatureLine1_3", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 215.237, + "computedY" : 318.19, + "placementX" : 215.237, + "placementY" : 318.19, + "placementWidth" : 36.332, + "placementHeight" : 7.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.332, + "contentHeight" : 7.9, + "margin" : { + "top" : 8.511, + "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]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]/FeatureLine2_3[2]", + "entityName" : "FeatureLine2_3", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutLeft[0]/FeatureTilesLayer[2]/FeatureTilesHolder[0]/FeatureTiles[0]/FeatureCell_3[3]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 215.237, + "computedY" : 307.459, + "placementX" : 215.237, + "placementY" : 307.459, + "placementWidth" : 34.231, + "placementHeight" : 7.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.231, + "contentHeight" : 7.9, + "margin" : { + "top" : 2.831, + "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]/AboutBand[3]/AboutRow[0]/AboutArtwork[1]", + "entityName" : "AboutArtwork", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 265.445, + "computedY" : 287.77, + "placementX" : 265.445, + "placementY" : 287.77, + "placementWidth" : 0.0, + "placementHeight" : 173.387, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 173.387, + "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]/AboutBand[3]/AboutRow[0]/AboutArtwork[1]/AboutArtworkSpace[0]", + "entityName" : "AboutArtworkSpace", + "entityKind" : "SpacerNode", + "parentPath" : "Proposal[0]/AboutBand[3]/AboutRow[0]/AboutArtwork[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 265.445, + "computedY" : 287.77, + "placementX" : 265.445, + "placementY" : 287.77, + "placementWidth" : 0.0, + "placementHeight" : 173.387, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 173.387, + "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]/LowerRow[4]", + "entityName" : "LowerRow", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 27.674, + "computedY" : 72.958, + "placementX" : 27.674, + "placementY" : 72.958, + "placementWidth" : 544.446, + "placementHeight" : 193.556, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.446, + "contentHeight" : 193.556, + "margin" : { + "top" : 21.256, + "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]/LowerRow[4]/LowerLeft[0]", + "entityName" : "LowerLeft", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.674, + "computedY" : 72.958, + "placementX" : 27.674, + "placementY" : 72.958, + "placementWidth" : 256.409, + "placementHeight" : 193.556, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 193.556, + "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]/LowerRow[4]/LowerLeft[0]/PlanHeading[0]", + "entityName" : "PlanHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 258.415, + "placementX" : 27.674, + "placementY" : 258.415, + "placementWidth" : 81.446, + "placementHeight" : 8.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 81.446, + "contentHeight" : 8.1, + "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]/LowerRow[4]/LowerLeft[0]/PlanIntro[1]", + "entityName" : "PlanIntro", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 218.644, + "placementX" : 27.674, + "placementY" : 218.644, + "placementWidth" : 224.648, + "placementHeight" : 30.091, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.648, + "contentHeight" : 30.091, + "margin" : { + "top" : 9.68, + "right" : 19.202, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]", + "entityName" : "Step_0Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 180.114, + "placementX" : 27.674, + "placementY" : 180.114, + "placementWidth" : 256.409, + "placementHeight" : 38.529, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 38.529, + "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]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]", + "entityName" : "Step_0Holder", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.674, + "computedY" : 180.114, + "placementX" : 27.674, + "placementY" : 180.114, + "placementWidth" : 256.409, + "placementHeight" : 38.529, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 38.529, + "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]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]", + "entityName" : "Step_0", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.674, + "computedY" : 180.114, + "placementX" : 27.674, + "placementY" : 180.114, + "placementWidth" : 256.409, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 27.956, + "margin" : { + "top" : 10.573, + "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]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepMark_0[0]", + "entityName" : "StepMark_0", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.674, + "computedY" : 180.114, + "placementX" : 27.674, + "placementY" : 180.114, + "placementWidth" : 21.462, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepMark_0[0]/StepCircle_0[0]", + "entityName" : "StepCircle_0", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepMark_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.674, + "computedY" : 186.609, + "placementX" : 27.674, + "placementY" : 186.609, + "placementWidth" : 21.462, + "placementHeight" : 21.462, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 21.462, + "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]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepMark_0[0]/StepCircle_0[0]/StepNumber_0[0]", + "entityName" : "StepNumber_0", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepMark_0[0]/StepCircle_0[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 27.674, + "computedY" : 193.34, + "placementX" : 27.674, + "placementY" : 193.34, + "placementWidth" : 21.462, + "placementHeight" : 8.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 8.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]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepMark_0[0]/StepConnector_0[1]", + "entityName" : "StepConnector_0", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepMark_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 37.84, + "computedY" : 180.114, + "placementX" : 37.84, + "placementY" : 180.114, + "placementWidth" : 1.13, + "placementHeight" : 6.495, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.13, + "contentHeight" : 6.495, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 10.166 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepText_0[1]", + "entityName" : "StepText_0", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 62.126, + "computedY" : 184.784, + "placementX" : 62.126, + "placementY" : 184.784, + "placementWidth" : 123.684, + "placementHeight" : 23.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.684, + "contentHeight" : 23.286, + "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]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepText_0[1]/StepTitle_0[0]", + "entityName" : "StepTitle_0", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepText_0[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 62.126, + "computedY" : 195.581, + "placementX" : 62.126, + "placementY" : 195.581, + "placementWidth" : 123.356, + "placementHeight" : 7.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.356, + "contentHeight" : 7.6, + "margin" : { + "top" : 4.89, + "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]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepText_0[1]/StepSubtitle_0[1]", + "entityName" : "StepSubtitle_0", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_0Layer[2]/Step_0Holder[0]/Step_0[0]/StepText_0[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 62.126, + "computedY" : 184.784, + "placementX" : 62.126, + "placementY" : 184.784, + "placementWidth" : 123.684, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.684, + "contentHeight" : 7.4, + "margin" : { + "top" : 3.396, + "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]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]", + "entityName" : "Step_1Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 152.158, + "placementX" : 27.674, + "placementY" : 152.158, + "placementWidth" : 256.409, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]", + "entityName" : "Step_1Holder", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.674, + "computedY" : 152.158, + "placementX" : 27.674, + "placementY" : 152.158, + "placementWidth" : 256.409, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]", + "entityName" : "Step_1", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.674, + "computedY" : 152.158, + "placementX" : 27.674, + "placementY" : 152.158, + "placementWidth" : 256.409, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepMark_1[0]", + "entityName" : "StepMark_1", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.674, + "computedY" : 152.158, + "placementX" : 27.674, + "placementY" : 152.158, + "placementWidth" : 21.462, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepMark_1[0]/StepCircle_1[0]", + "entityName" : "StepCircle_1", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepMark_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.674, + "computedY" : 158.653, + "placementX" : 27.674, + "placementY" : 158.653, + "placementWidth" : 21.462, + "placementHeight" : 21.462, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 21.462, + "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]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepMark_1[0]/StepCircle_1[0]/StepNumber_1[0]", + "entityName" : "StepNumber_1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepMark_1[0]/StepCircle_1[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 27.674, + "computedY" : 165.383, + "placementX" : 27.674, + "placementY" : 165.383, + "placementWidth" : 21.462, + "placementHeight" : 8.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 8.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]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepMark_1[0]/StepConnector_1[1]", + "entityName" : "StepConnector_1", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepMark_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 37.84, + "computedY" : 152.158, + "placementX" : 37.84, + "placementY" : 152.158, + "placementWidth" : 1.13, + "placementHeight" : 6.495, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.13, + "contentHeight" : 6.495, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 10.166 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepText_1[1]", + "entityName" : "StepText_1", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 62.126, + "computedY" : 156.828, + "placementX" : 62.126, + "placementY" : 156.828, + "placementWidth" : 162.001, + "placementHeight" : 23.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 162.001, + "contentHeight" : 23.286, + "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]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepText_1[1]/StepTitle_1[0]", + "entityName" : "StepTitle_1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepText_1[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 62.126, + "computedY" : 167.624, + "placementX" : 62.126, + "placementY" : 167.624, + "placementWidth" : 102.425, + "placementHeight" : 7.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.425, + "contentHeight" : 7.6, + "margin" : { + "top" : 4.89, + "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]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepText_1[1]/StepSubtitle_1[1]", + "entityName" : "StepSubtitle_1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_1Layer[3]/Step_1Holder[0]/Step_1[0]/StepText_1[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 62.126, + "computedY" : 156.828, + "placementX" : 62.126, + "placementY" : 156.828, + "placementWidth" : 162.001, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 162.001, + "contentHeight" : 7.4, + "margin" : { + "top" : 3.396, + "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]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]", + "entityName" : "Step_2Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 124.201, + "placementX" : 27.674, + "placementY" : 124.201, + "placementWidth" : 256.409, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]", + "entityName" : "Step_2Holder", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.674, + "computedY" : 124.201, + "placementX" : 27.674, + "placementY" : 124.201, + "placementWidth" : 256.409, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]", + "entityName" : "Step_2", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.674, + "computedY" : 124.201, + "placementX" : 27.674, + "placementY" : 124.201, + "placementWidth" : 256.409, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepMark_2[0]", + "entityName" : "StepMark_2", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.674, + "computedY" : 124.201, + "placementX" : 27.674, + "placementY" : 124.201, + "placementWidth" : 21.462, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepMark_2[0]/StepCircle_2[0]", + "entityName" : "StepCircle_2", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepMark_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.674, + "computedY" : 130.696, + "placementX" : 27.674, + "placementY" : 130.696, + "placementWidth" : 21.462, + "placementHeight" : 21.462, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 21.462, + "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]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepMark_2[0]/StepCircle_2[0]/StepNumber_2[0]", + "entityName" : "StepNumber_2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepMark_2[0]/StepCircle_2[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 27.674, + "computedY" : 137.427, + "placementX" : 27.674, + "placementY" : 137.427, + "placementWidth" : 21.462, + "placementHeight" : 8.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 8.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]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepMark_2[0]/StepConnector_2[1]", + "entityName" : "StepConnector_2", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepMark_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 37.84, + "computedY" : 124.201, + "placementX" : 37.84, + "placementY" : 124.201, + "placementWidth" : 1.13, + "placementHeight" : 6.495, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.13, + "contentHeight" : 6.495, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 10.166 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepText_2[1]", + "entityName" : "StepText_2", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 62.126, + "computedY" : 128.871, + "placementX" : 62.126, + "placementY" : 128.871, + "placementWidth" : 179.798, + "placementHeight" : 23.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 179.798, + "contentHeight" : 23.286, + "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]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepText_2[1]/StepTitle_2[0]", + "entityName" : "StepTitle_2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepText_2[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 62.126, + "computedY" : 139.668, + "placementX" : 62.126, + "placementY" : 139.668, + "placementWidth" : 84.656, + "placementHeight" : 7.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 84.656, + "contentHeight" : 7.6, + "margin" : { + "top" : 4.89, + "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]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepText_2[1]/StepSubtitle_2[1]", + "entityName" : "StepSubtitle_2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_2Layer[4]/Step_2Holder[0]/Step_2[0]/StepText_2[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 62.126, + "computedY" : 128.871, + "placementX" : 62.126, + "placementY" : 128.871, + "placementWidth" : 179.798, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 179.798, + "contentHeight" : 7.4, + "margin" : { + "top" : 3.396, + "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]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]", + "entityName" : "Step_3Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 96.245, + "placementX" : 27.674, + "placementY" : 96.245, + "placementWidth" : 256.409, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]", + "entityName" : "Step_3Holder", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.674, + "computedY" : 96.245, + "placementX" : 27.674, + "placementY" : 96.245, + "placementWidth" : 256.409, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]", + "entityName" : "Step_3", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.674, + "computedY" : 96.245, + "placementX" : 27.674, + "placementY" : 96.245, + "placementWidth" : 256.409, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepMark_3[0]", + "entityName" : "StepMark_3", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.674, + "computedY" : 96.245, + "placementX" : 27.674, + "placementY" : 96.245, + "placementWidth" : 21.462, + "placementHeight" : 27.956, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 27.956, + "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]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepMark_3[0]/StepCircle_3[0]", + "entityName" : "StepCircle_3", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepMark_3[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.674, + "computedY" : 102.74, + "placementX" : 27.674, + "placementY" : 102.74, + "placementWidth" : 21.462, + "placementHeight" : 21.462, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 21.462, + "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]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepMark_3[0]/StepCircle_3[0]/StepNumber_3[0]", + "entityName" : "StepNumber_3", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepMark_3[0]/StepCircle_3[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 27.674, + "computedY" : 109.47, + "placementX" : 27.674, + "placementY" : 109.47, + "placementWidth" : 21.462, + "placementHeight" : 8.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 8.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]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepMark_3[0]/StepConnector_3[1]", + "entityName" : "StepConnector_3", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepMark_3[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 37.84, + "computedY" : 96.245, + "placementX" : 37.84, + "placementY" : 96.245, + "placementWidth" : 1.13, + "placementHeight" : 6.495, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.13, + "contentHeight" : 6.495, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 10.166 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepText_3[1]", + "entityName" : "StepText_3", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 62.126, + "computedY" : 100.915, + "placementX" : 62.126, + "placementY" : 100.915, + "placementWidth" : 166.929, + "placementHeight" : 23.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.929, + "contentHeight" : 23.286, + "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]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepText_3[1]/StepTitle_3[0]", + "entityName" : "StepTitle_3", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepText_3[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 62.126, + "computedY" : 111.711, + "placementX" : 62.126, + "placementY" : 111.711, + "placementWidth" : 86.192, + "placementHeight" : 7.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.192, + "contentHeight" : 7.6, + "margin" : { + "top" : 4.89, + "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]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepText_3[1]/StepSubtitle_3[1]", + "entityName" : "StepSubtitle_3", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_3Layer[5]/Step_3Holder[0]/Step_3[0]/StepText_3[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 62.126, + "computedY" : 100.915, + "placementX" : 62.126, + "placementY" : 100.915, + "placementWidth" : 166.929, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.929, + "contentHeight" : 7.4, + "margin" : { + "top" : 3.396, + "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]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]", + "entityName" : "Step_4Layer", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 72.958, + "placementX" : 27.674, + "placementY" : 72.958, + "placementWidth" : 256.409, + "placementHeight" : 23.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 23.286, + "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]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]", + "entityName" : "Step_4Holder", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 27.674, + "computedY" : 72.958, + "placementX" : 27.674, + "placementY" : 72.958, + "placementWidth" : 256.409, + "placementHeight" : 23.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 23.286, + "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]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]", + "entityName" : "Step_4", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 27.674, + "computedY" : 72.958, + "placementX" : 27.674, + "placementY" : 72.958, + "placementWidth" : 256.409, + "placementHeight" : 23.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.409, + "contentHeight" : 23.286, + "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]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]/StepMark_4[0]", + "entityName" : "StepMark_4", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 27.674, + "computedY" : 74.783, + "placementX" : 27.674, + "placementY" : 74.783, + "placementWidth" : 21.462, + "placementHeight" : 21.462, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 21.462, + "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]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]/StepMark_4[0]/StepCircle_4[0]", + "entityName" : "StepCircle_4", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]/StepMark_4[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 27.674, + "computedY" : 74.783, + "placementX" : 27.674, + "placementY" : 74.783, + "placementWidth" : 21.462, + "placementHeight" : 21.462, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 21.462, + "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]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]/StepMark_4[0]/StepCircle_4[0]/StepNumber_4[0]", + "entityName" : "StepNumber_4", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]/StepMark_4[0]/StepCircle_4[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 27.674, + "computedY" : 81.514, + "placementX" : 27.674, + "placementY" : 81.514, + "placementWidth" : 21.462, + "placementHeight" : 8.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.462, + "contentHeight" : 8.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]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]/StepText_4[1]", + "entityName" : "StepText_4", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 62.126, + "computedY" : 72.958, + "placementX" : 62.126, + "placementY" : 72.958, + "placementWidth" : 176.216, + "placementHeight" : 23.286, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 176.216, + "contentHeight" : 23.286, + "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]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]/StepText_4[1]/StepTitle_4[0]", + "entityName" : "StepTitle_4", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]/StepText_4[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 62.126, + "computedY" : 83.755, + "placementX" : 62.126, + "placementY" : 83.755, + "placementWidth" : 65.14, + "placementHeight" : 7.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 65.14, + "contentHeight" : 7.6, + "margin" : { + "top" : 4.89, + "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]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]/StepText_4[1]/StepSubtitle_4[1]", + "entityName" : "StepSubtitle_4", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerLeft[0]/Step_4Layer[6]/Step_4Holder[0]/Step_4[0]/StepText_4[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 62.126, + "computedY" : 72.958, + "placementX" : 62.126, + "placementY" : 72.958, + "placementWidth" : 176.216, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 176.216, + "contentHeight" : 7.4, + "margin" : { + "top" : 3.396, + "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]/LowerRow[4]/ColumnDividerLower[1]", + "entityName" : "ColumnDividerLower", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 284.083, + "computedY" : 73.72, + "placementX" : 284.083, + "placementY" : 73.72, + "placementWidth" : 1.0, + "placementHeight" : 192.795, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 192.795, + "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]/LowerRow[4]/ColumnDividerLower[1]/ColumnDividerLowerRule[0]", + "entityName" : "ColumnDividerLowerRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/LowerRow[4]/ColumnDividerLower[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 284.083, + "computedY" : 73.72, + "placementX" : 284.083, + "placementY" : 73.72, + "placementWidth" : 1.0, + "placementHeight" : 192.589, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 192.589, + "margin" : { + "top" : 0.206, + "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]/LowerRow[4]/LowerRight[2]", + "entityName" : "LowerRight", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 303.85, + "computedY" : 73.131, + "placementX" : 303.85, + "placementY" : 73.131, + "placementWidth" : 268.269, + "placementHeight" : 193.384, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 268.269, + "contentHeight" : 193.384, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 9.601, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/LowerRow[4]/LowerRight[2]/Investment[0]", + "entityName" : "Investment", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 303.85, + "computedY" : 177.145, + "placementX" : 303.85, + "placementY" : 177.145, + "placementWidth" : 258.668, + "placementHeight" : 89.369, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 258.668, + "contentHeight" : 89.369, + "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]/LowerRow[4]/LowerRight[2]/Investment[0]/InvestmentHeading[0]", + "entityName" : "InvestmentHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]/Investment[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 303.85, + "computedY" : 258.415, + "placementX" : 303.85, + "placementY" : 258.415, + "placementWidth" : 96.333, + "placementHeight" : 8.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.333, + "contentHeight" : 8.1, + "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]/LowerRow[4]/LowerRight[2]/Investment[0]/InvestmentTable[1]", + "entityName" : "InvestmentTable", + "entityKind" : "TableNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]/Investment[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 303.85, + "computedY" : 177.145, + "placementX" : 303.85, + "placementY" : 177.145, + "placementWidth" : 258.668, + "placementHeight" : 66.513, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 258.668, + "contentHeight" : 66.513, + "margin" : { + "top" : 14.756, + "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]/LowerRow[4]/LowerRight[2]/TotalCard[1]", + "entityName" : "TotalCard", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 303.85, + "computedY" : 132.563, + "placementX" : 303.85, + "placementY" : 132.563, + "placementWidth" : 258.668, + "placementHeight" : 33.887, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 258.668, + "contentHeight" : 33.887, + "margin" : { + "top" : 10.696, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 11.86, + "bottom" : 8.597, + "left" : 10.731 + } + }, { + "path" : "Proposal[0]/LowerRow[4]/LowerRight[2]/TotalCard[1]/TotalRowLayer[0]", + "entityName" : "TotalRowLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]/TotalCard[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 314.581, + "computedY" : 141.16, + "placementX" : 314.581, + "placementY" : 141.16, + "placementWidth" : 236.077, + "placementHeight" : 25.29, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.077, + "contentHeight" : 25.29, + "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]/LowerRow[4]/LowerRight[2]/TotalCard[1]/TotalRowLayer[0]/TotalRowHolder[0]", + "entityName" : "TotalRowHolder", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]/TotalCard[1]/TotalRowLayer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 314.581, + "computedY" : 141.16, + "placementX" : 314.581, + "placementY" : 141.16, + "placementWidth" : 236.077, + "placementHeight" : 25.29, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.077, + "contentHeight" : 25.29, + "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]/LowerRow[4]/LowerRight[2]/TotalCard[1]/TotalRowLayer[0]/TotalRowHolder[0]/TotalRow[0]", + "entityName" : "TotalRow", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]/TotalCard[1]/TotalRowLayer[0]/TotalRowHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 314.581, + "computedY" : 141.16, + "placementX" : 314.581, + "placementY" : 141.16, + "placementWidth" : 236.077, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.077, + "contentHeight" : 13.2, + "margin" : { + "top" : 12.09, + "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]/LowerRow[4]/LowerRight[2]/TotalCard[1]/TotalRowLayer[0]/TotalRowHolder[0]/TotalRow[0]/TotalLabel[0]", + "entityName" : "TotalLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]/TotalCard[1]/TotalRowLayer[0]/TotalRowHolder[0]/TotalRow[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 314.581, + "computedY" : 144.21, + "placementX" : 314.581, + "placementY" : 144.21, + "placementWidth" : 102.609, + "placementHeight" : 7.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.609, + "contentHeight" : 7.1, + "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]/LowerRow[4]/LowerRight[2]/TotalCard[1]/TotalRowLayer[0]/TotalRowHolder[0]/TotalRow[0]/TotalFigure[1]", + "entityName" : "TotalFigure", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]/TotalCard[1]/TotalRowLayer[0]/TotalRowHolder[0]/TotalRow[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 432.62, + "computedY" : 141.16, + "placementX" : 432.62, + "placementY" : 141.16, + "placementWidth" : 118.039, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.039, + "contentHeight" : 13.2, + "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]/LowerRow[4]/LowerRight[2]/NotesHeading[2]", + "entityName" : "NotesHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 303.85, + "computedY" : 108.29, + "placementX" : 303.85, + "placementY" : 108.29, + "placementWidth" : 27.2, + "placementHeight" : 8.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.2, + "contentHeight" : 8.1, + "margin" : { + "top" : 16.173, + "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]/LowerRow[4]/LowerRight[2]/NotesList[3]", + "entityName" : "NotesList", + "entityKind" : "ListNode", + "parentPath" : "Proposal[0]/LowerRow[4]/LowerRight[2]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 303.85, + "computedY" : 73.131, + "placementX" : 303.85, + "placementY" : 73.131, + "placementWidth" : 185.511, + "placementHeight" : 28.297, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 185.511, + "contentHeight" : 28.297, + "margin" : { + "top" : 6.863, + "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]/FooterRule[5]", + "entityName" : "FooterRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 27.674, + "computedY" : 54.016, + "placementX" : 27.674, + "placementY" : 54.016, + "placementWidth" : 544.446, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.446, + "contentHeight" : 1.0, + "margin" : { + "top" : 17.942, + "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]/Footer[6]", + "entityName" : "Footer", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 27.674, + "computedY" : 14.442, + "placementX" : 27.674, + "placementY" : 14.442, + "placementWidth" : 544.446, + "placementHeight" : 28.741, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 544.446, + "contentHeight" : 28.741, + "margin" : { + "top" : 10.833, + "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]/Footer[6]/FooterMark[0]", + "entityName" : "FooterMark", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Footer[6]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 27.674, + "computedY" : 23.103, + "placementX" : 27.674, + "placementY" : 23.103, + "placementWidth" : 13.612, + "placementHeight" : 20.08, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.612, + "contentHeight" : 20.08, + "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]/Footer[6]/FooterMark[0]/FooterMonogram[0]", + "entityName" : "FooterMonogram", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Footer[6]/FooterMark[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 27.674, + "computedY" : 23.103, + "placementX" : 27.674, + "placementY" : 23.103, + "placementWidth" : 13.612, + "placementHeight" : 19.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.612, + "contentHeight" : 19.9, + "margin" : { + "top" : 0.18, + "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]/Footer[6]/FooterIdentity[1]", + "entityName" : "FooterIdentity", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Footer[6]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 60.996, + "computedY" : 14.442, + "placementX" : 60.996, + "placementY" : 14.442, + "placementWidth" : 245.854, + "placementHeight" : 28.741, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 245.854, + "contentHeight" : 28.741, + "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]/Footer[6]/FooterIdentity[1]/FooterName[0]", + "entityName" : "FooterName", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Footer[6]/FooterIdentity[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 60.996, + "computedY" : 36.083, + "placementX" : 60.996, + "placementY" : 36.083, + "placementWidth" : 72.825, + "placementHeight" : 7.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.825, + "contentHeight" : 7.1, + "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]/Footer[6]/FooterIdentity[1]/FooterAddress[1]", + "entityName" : "FooterAddress", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Footer[6]/FooterIdentity[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 60.996, + "computedY" : 25.737, + "placementX" : 60.996, + "placementY" : 25.737, + "placementWidth" : 211.505, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.505, + "contentHeight" : 7.0, + "margin" : { + "top" : 3.346, + "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]/Footer[6]/FooterIdentity[1]/FooterChannels[2]", + "entityName" : "FooterChannels", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Footer[6]/FooterIdentity[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 60.996, + "computedY" : 14.442, + "placementX" : 60.996, + "placementY" : 14.442, + "placementWidth" : 245.854, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 245.854, + "contentHeight" : 7.0, + "margin" : { + "top" : 4.296, + "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/indigo_proposal-page-0.png b/qa/src/test/resources/visual-baselines/proposal-v2-layered/indigo_proposal-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..612e1493458754f671442215f092085b12441387 GIT binary patch literal 94968 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 fe~a_~pNm8IU~adWhat this port leaves out + * + *

      The design fills the band's right with a product photograph carrying its + * own brand's mark. That is a brand asset, and the templates artifact carries + * none, so the place it occupies is kept — the copy keeps the measure the design + * solved it against, and the tiles keep their pitch — and left as flat tint.

      + */ +final class IndigoBand { + + private IndigoBand() { + } + + /** + * The band. + * + *

      {@code keepTogether} is a section's property and the band needs it: its + * fill is painted behind its own content, so a band that split across a page + * would leave its fill behind.

      + * + * @param page the page flow + * @param glance the paragraph and the marked facts the band carries + * @param flow the sheet's cursor + */ + static void render(PageFlowBuilder page, ProposalGlance glance, IndigoFlow flow) { + if (glance.heading().isBlank() && glance.intro().isBlank() + && glance.facts().isEmpty()) { + // A band of tint three hundred pixels tall with nothing in it is not + // a design decision; a document that says nothing about its issuer + // simply has no band. + return; + } + double top = flow.boxAt(BAND_TOP_PX, BAND_H_PX); + page.addSection("AboutBand", band -> { + band.spacing(0) + .keepTogether() + .fillColor(TINT) + // Negative on both sides, so the fill reaches both paper + // edges; the padding puts the content back inside the left + // margin, and the right stays open for the artwork the design + // runs off the page. + .margin(new DocumentInsets(top, -MARGIN_R, 0, -MARGIN_L)) + .padding(new DocumentInsets(0, 0, 0, MARGIN_L)); + band.addRow("AboutRow", row -> { + row.spacing(0) + .columns(DocumentRowColumn.weight(1), + DocumentRowColumn.fixed(BAND_ARTWORK_W)); + row.addSection("AboutLeft", left -> { + left.spacing(0); + IndigoFlow cell = new IndigoFlow(BAND_TOP_PX); + renderCopy(left, glance, cell); + renderFeatureTiles(left, glance.facts(), cell); + }); + // The artwork's place, kept so the copy beside it keeps its + // measure. The design's own picture is its brand's, but the + // height is the band's: the artwork is what makes the band as + // tall as it is, and without it the tint would close on the + // copy and everything below would ride up. + row.addSection("AboutArtwork", holder -> holder + .spacing(0) + .addSpacer(space -> space.name("AboutArtworkSpace") + .height(px(BAND_H_PX)))); + }); + }); + } + + private static void renderCopy(SectionBuilder left, ProposalGlance glance, IndigoFlow cell) { + if (!glance.heading().isBlank()) { + left.addParagraph(p -> p + .name("AboutHeading") + .text(glance.heading()) + .textStyle(bold(LABEL_SIZE, ACCENT)) + .margin(new DocumentInsets( + cell.capAt(ABOUT_HEADING_CAP, LABEL_SIZE, true), 0, 0, 0))); + } + if (glance.intro().isBlank()) { + return; + } + double measureInset = Math.max(0, BAND_LEFT_W - px(ABOUT_MEASURE_PX)); + double gap = cell.capAt(ABOUT_BODY_CAP, ABOUT_BODY_SIZE, false); + left.addParagraph(p -> p + .name("AboutBody") + .text(glance.intro()) + .textStyle(plain(ABOUT_BODY_SIZE, BODY)) + .lineSpacing(px(ABOUT_BODY_PITCH_PX) - ABOUT_BODY_SIZE) + .margin(new DocumentInsets(gap, measureInset, 0, 0))); + // The design sets it in four lines at this measure; the map states that + // rather than asking the engine afterwards. + cell.advanceTo(ABOUT_BODY_CAP + 3 * ABOUT_BODY_PITCH_PX + toPx(ABOUT_BODY_SIZE)); + } + + /** + * The row of marked tiles. + * + *

      The pitch is fixed for every tile but the last, which takes what is + * left: four full pitches are wider than the band's left column, and the last + * tile only ever needed its own width and its label's.

      + */ + private static void renderFeatureTiles(SectionBuilder left, List facts, + IndigoFlow cell) { + if (facts.isEmpty()) { + return; + } + double top = cell.boxAt(FEATURE_TILE_AT, + boxBottomPx(FEATURE_LINE2_CAP, FEATURE_SIZE, false) - FEATURE_TILE_AT); + layeredRow(left, "FeatureTiles", row -> { + row.spacing(0).margin(new DocumentInsets(top, 0, 0, 0)); + DocumentRowColumn[] columns = new DocumentRowColumn[facts.size()]; + for (int i = 0; i < facts.size(); i++) { + columns[i] = i == facts.size() - 1 + ? DocumentRowColumn.weight(1) + : DocumentRowColumn.fixed(px(FEATURE_PITCH_PX)); + } + row.columns(columns); + for (int i = 0; i < facts.size(); i++) { + ProposalGlance.Fact fact = facts.get(i); + int index = i; + row.addSection("FeatureCell_" + index, group -> { + group.spacing(0); + IndigoFlow stack = new IndigoFlow(FEATURE_TILE_AT); + group.add(IndigoWidgets.tile("FeatureTile_" + index, TILE_DARK, + fact.icon(), FEATURE_TILE, FEATURE_RADIUS, FEATURE_GLYPH)); + stack.boxAt(FEATURE_TILE_AT, FEATURE_TILE_PX); + group.addParagraph(p -> p + .name("FeatureLine1_" + index) + .text(fact.label()) + .textStyle(plain(FEATURE_SIZE, INK)) + .margin(new DocumentInsets( + stack.capAt(FEATURE_LINE1_CAP, FEATURE_SIZE, false), 0, 0, 0))); + group.addParagraph(p -> p + .name("FeatureLine2_" + index) + .text(fact.value()) + .textStyle(plain(FEATURE_SIZE, INK)) + .margin(new DocumentInsets( + stack.capAt(FEATURE_LINE2_CAP, FEATURE_SIZE, false), 0, 0, 0))); + }); + } + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoClosing.java new file mode 100644 index 000000000..54d57abec --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoClosing.java @@ -0,0 +1,185 @@ +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.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.data.proposal.ProposalBrand; +import com.demcha.compose.document.templates.data.proposal.ProposalFooter; + +import java.util.List; + +import static com.demcha.compose.document.templates.proposal.presets.IndigoFlow.rule; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.BODY; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.CONTENT_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.FOOTER_ADDRESS_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.FOOTER_BODY_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.FOOTER_CONTACT_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.FOOTER_MARK_AT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.FOOTER_MARK_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.FOOTER_NAME_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.FOOTER_NAME_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.FOOTER_RULE_AT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.FOOTER_TEXT_COL_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INK; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.RULE_STRONG; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.bold; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.boxBottomPx; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.plain; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.toPx; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.topBearing; + +/** + * What closes the sheet: a rule the width of the ink, then the issuer's mark, + * legal name, registered address and the channels a reader can follow. + * + *

      What this port leaves out

      + * + *

      The design closes with its own logotype. That is a brand asset and the + * templates artifact carries none, so the mark's place is kept and set with the + * monogram the document names, at the size the design's glyph reads at beside + * the name. A document naming no monogram leaves the place empty, and the name + * beside it does not move.

      + */ +final class IndigoClosing { + + /** + * The separator between two channels, spaced away from both. It is a run of + * its own so that only the channel either side of it is clickable, and so + * that it keeps the lighter colour the design gives it. + */ + private static final String SEPARATOR = " | "; + + private IndigoClosing() { + } + + /** The full-width rule the foot opens with. */ + static void renderFooterRule(PageFlowBuilder page, IndigoFlow flow) { + double top = flow.boxAt(FOOTER_RULE_AT, 1.5); + page.addLine(line -> rule(line, "FooterRule", CONTENT_W, RULE_STRONG) + .margin(new DocumentInsets(top, 0, 0, 0))); + } + + /** + * The foot itself. + * + * @param page the page flow + * @param brand the issuer's mark + * @param footer the issuer's identity as the foot states it + * @param flow the sheet's cursor + */ + static void renderFooter(PageFlowBuilder page, ProposalBrand brand, ProposalFooter footer, + IndigoFlow flow) { + if (!footer.isPresent() && brand.monogram().isBlank()) { + return; + } + // The row opens on the name's own box, not on the mark's: the name's + // box starts above its cap and above the mark, and a row opened on the + // mark would owe the name a negative margin. + double rowTopPx = FOOTER_NAME_CAP - toPx(topBearing(FOOTER_NAME_SIZE, true)); + double top = flow.boxAt(rowTopPx, + boxBottomPx(FOOTER_CONTACT_CAP, FOOTER_BODY_SIZE, false) - rowTopPx); + page.addRow("Footer", row -> { + row.spacing(0) + .margin(new DocumentInsets(top, 0, 0, 0)) + .columns(DocumentRowColumn.fixed(FOOTER_TEXT_COL_W), + DocumentRowColumn.weight(1)); + row.addSection("FooterMark", mark -> { + mark.spacing(0); + if (brand.monogram().isBlank()) { + return; + } + mark.addParagraph(p -> p + .name("FooterMonogram") + .text(brand.monogram()) + .textStyle(bold(FOOTER_MARK_SIZE, INK)) + .margin(new DocumentInsets(new IndigoFlow(rowTopPx) + .boxAt(FOOTER_MARK_AT, toPx(FOOTER_MARK_SIZE)), 0, 0, 0))); + }); + row.addSection("FooterIdentity", identity -> { + identity.spacing(0); + IndigoFlow cell = new IndigoFlow(rowTopPx); + renderName(identity, footer, cell); + renderAddress(identity, footer, cell); + renderChannels(identity, footer, cell); + }); + }); + } + + private static void renderName(SectionBuilder identity, ProposalFooter footer, + IndigoFlow cell) { + if (footer.name().isBlank()) { + return; + } + identity.addParagraph(p -> p + .name("FooterName") + .text(footer.name()) + .textStyle(bold(FOOTER_NAME_SIZE, INK)) + .margin(new DocumentInsets( + cell.capAt(FOOTER_NAME_CAP, FOOTER_NAME_SIZE, true), 0, 0, 0))); + } + + /** The registered address, which the design runs as one line however it is authored. */ + private static void renderAddress(SectionBuilder identity, ProposalFooter footer, + IndigoFlow cell) { + if (footer.addressLines().isEmpty()) { + return; + } + identity.addParagraph(p -> p + .name("FooterAddress") + .text(String.join(", ", footer.addressLines())) + .textStyle(plain(FOOTER_BODY_SIZE, BODY)) + .margin(new DocumentInsets( + cell.capAt(FOOTER_ADDRESS_CAP, FOOTER_BODY_SIZE, false), 0, 0, 0))); + } + + /** + * The channels, each linked, divided by the design's own separator. + * + *

      A confidentiality line closes the same line rather than opening one of + * its own: the design's last line already ends against the bottom margin, so + * a fourth line in the foot would carry the whole block onto a second page. + * It is set as prose and not as a channel — a notice is a sentence, and a + * sentence is not somewhere a reader can be sent.

      + */ + private static void renderChannels(SectionBuilder identity, ProposalFooter footer, + IndigoFlow cell) { + List contacts = footer.contacts(); + String notice = footer.confidentiality(); + if (contacts.isEmpty() && notice.isBlank()) { + return; + } + double top = cell.capAt(FOOTER_CONTACT_CAP, FOOTER_BODY_SIZE, false); + identity.addParagraph(p -> { + p.name("FooterChannels").margin(new DocumentInsets(top, 0, 0, 0)); + DocumentTextStyle body = plain(FOOTER_BODY_SIZE, BODY); + DocumentTextStyle divider = plain(FOOTER_BODY_SIZE, RULE_STRONG); + for (int i = 0; i < contacts.size(); i++) { + if (i > 0) { + p.inlineText(SEPARATOR, divider); + } + appendChannel(p, contacts.get(i), body); + } + if (!notice.isBlank()) { + if (!contacts.isEmpty()) { + p.inlineText(SEPARATOR, divider); + } + p.inlineText(notice, body); + } + }); + } + + /** A channel, made followable when its printed shape says what it is. */ + private static void appendChannel(ParagraphBuilder p, String contact, + DocumentTextStyle body) { + DocumentLinkOptions link = ProposalUri.channelLink(contact); + if (link == null) { + p.inlineText(contact, body); + } else { + p.inlineText(contact, body, link); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoFlow.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoFlow.java new file mode 100644 index 000000000..51032af3e --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoFlow.java @@ -0,0 +1,165 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.dsl.LineBuilder; +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.HorizontalAlign; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; + +import java.util.List; +import java.util.function.Consumer; + +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.RULE_SOFT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.RULE_THIN; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.px; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.toPx; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.topBearing; + +/** + * A running cursor down a column, and the small shapes the sheet repeats. + * + *

      The design is a map of cap tops rather than a stack of gaps. A cursor + * remembers how far down the column the layout has reached, and each block asks + * for the margin that puts its own cap top where the map says — so a block moves + * by changing one number in {@link IndigoStyles}, and the blocks around it do + * not have to be re-derived.

      + * + *

      A block whose content ran past where the map expected it leaves the cursor + * below the next block's stated position, and the margin that would put that + * block back where the map says is a negative one — which would draw it over + * what overran. Every margin is therefore floored at nothing: heavier content + * pushes what follows down, onto a second page if it comes to that, instead of + * printing on top of it.

      + */ +final class IndigoFlow { + + private double bottomPx; + + /** + * A cursor starting at a design y. + * + * @param originPx where the column begins, in design pixels + */ + IndigoFlow(double originPx) { + this.bottomPx = originPx; + } + + /** + * The top margin that puts a text box's caps at a design y. + * + *

      A text box starts above its own first cap by the face's top bearing, + * which is why a cap top and a box top are not the same number.

      + * + * @param capTopPx where the design puts the cap top + * @param size the type size + * @param bold whether the type is bold, which has its own bearing + * @return the margin to set on the block, never less than nothing + */ + double capAt(double capTopPx, double size, boolean bold) { + double boxTopPx = capTopPx - toPx(topBearing(size, bold)); + double margin = px(boxTopPx - bottomPx); + bottomPx = boxTopPx + toPx(size); + return Math.max(0, margin); + } + + /** + * The top margin for a box with no bearing: a rule, a tile, an image, or a + * nested block that measures its own height. + * + * @param topPx where the design puts the box's top + * @param heightPx how tall the box is, in design pixels + * @return the margin to set on the block, never less than nothing + */ + double boxAt(double topPx, double heightPx) { + double margin = px(topPx - bottomPx); + bottomPx = topPx + heightPx; + return Math.max(0, margin); + } + + /** + * Declares where a block that measured its own height has reached — a + * wrapped paragraph, whose line count the map states rather than the engine. + * + * @param reachedPx the design y the block ends at + */ + void advanceTo(double reachedPx) { + this.bottomPx = reachedPx; + } + + // ------------------------------------------------------------------ + // The shapes the sheet repeats + // ------------------------------------------------------------------ + + /** + * A row wrapped in a layer, so it can sit inside a row cell. + * + *

      A row nested in a row cell is refused by the layout compiler, and + * through a section too. A row wrapped in a LayerStack layer lays out + * horizontally there.

      + * + * @param parent the section the row belongs to + * @param name the row's name, which its holder and layer extend + * @param spec the row itself + */ + static void layeredRow(SectionBuilder parent, String name, Consumer spec) { + SectionBuilder holder = new SectionBuilder(); + holder.name(name + "Holder"); + holder.addRow(name, spec); + DocumentNode node = holder.build(); + parent.addLayerStack(stack -> stack + .name(name + "Layer") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** + * A horizontal rule of the sheet's own weight. + * + * @param line the line being built + * @param name the rule's name + * @param width how wide it runs + * @param color its colour + * @return the line, for chaining + */ + static LineBuilder rule(LineBuilder line, String name, double width, DocumentColor color) { + return line.name(name).horizontal(width).thickness(RULE_THIN).color(color); + } + + /** + * One of the two hairlines that split the sheet's halves. + * + * @param row the row the hairline is a cell of + * @param name the hairline's name + * @param offsetFromRowTopPx how far below the row's top it starts + * @param heightPx how far it runs + */ + static void columnDivider(RowBuilder row, String name, double offsetFromRowTopPx, + double heightPx) { + row.addSection(name, cell -> { + cell.spacing(0); + cell.addLine(line -> line + .name(name + "Rule") + .vertical(px(heightPx)) + .thickness(RULE_THIN) + .color(RULE_SOFT) + .margin(new DocumentInsets(px(offsetFromRowTopPx), 0, 0, 0))); + }); + } + + /** + * A packaged mark, boxed so it can be centred inside a disc or a tile. + * + * @param token the mark's token + * @param allowed the set the block draws from + * @param size how large to draw it + * @return the boxed mark + */ + static DocumentNode glyph(String token, List allowed, double size) { + SectionBuilder holder = new SectionBuilder(); + holder.name(token + "Glyph").spacing(0); + holder.addSvgIcon(IndigoIcons.icon(token, allowed), size, HorizontalAlign.CENTER); + return holder.build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoIcons.java new file mode 100644 index 000000000..4c65c8154 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoIcons.java @@ -0,0 +1,96 @@ +package com.demcha.compose.document.templates.proposal.presets; + +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.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Stream; + +/** + * The marks the Indigo proposal packages. + * + *

      Two sets of four, and they are not interchangeable: the header's marks are + * drawn in the accent for the pale disc they sit on, and the band's in white for + * the near-black tile. Naming a band mark on a header disc draws white on nearly + * white, so each set belongs to the block it was cut for. A tile that names no + * mark at all is still drawn — the disc and the tile are the design's shapes + * rather than containers for a particular drawing.

      + */ +final class IndigoIcons { + + /** The marks a document may name on a header disc. */ + static final List HEADER_TOKENS = List.of( + "date", "identifier", "valid", "prepared-by"); + + /** The marks a document may name on a band tile. */ + static final List BAND_TOKENS = List.of( + "global", "infrastructure", "secure", "apis"); + + /** Every mark this preset packages. */ + static final List TOKENS = + Stream.concat(HEADER_TOKENS.stream(), BAND_TOKENS.stream()).toList(); + + private static final String ICON_ROOT = "/templates/proposal/indigo/icons/"; + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private IndigoIcons() { + } + + /** + * The packaged mark a token names, if the block it was named on can carry + * it. + * + *

      The wrong set is refused rather than drawn: a band mark on a header + * disc is white on nearly white, which renders as nothing at all and reads + * as a bug in the preset rather than a token in the document.

      + * + * @param token one of this preset's tokens + * @param allowed the set the block draws from + * @return the parsed icon + * @throws IllegalArgumentException when the token names no mark this block + * can draw, listing the ones it can — an icon token is data, so a + * wrong one is a data error and not a missing resource + */ + static SvgIcon icon(String token, List allowed) { + if (!allowed.contains(token)) { + throw new IllegalArgumentException( + "Unknown indigo proposal icon token '" + token + + "'. This block draws " + allowed + "."); + } + return CACHE.computeIfAbsent(token, IndigoIcons::read); + } + + /** + * Whether the document named a mark at all, for a tile that may carry none. + * + *

      It asks whether one was named, not whether this preset packages it: a + * token naming nothing here is a data error, and + * {@link #icon(String, List)} reports it by name — which a silently empty + * tile would hide.

      + * + * @param token the token a document states + * @return {@code true} when the document named one + */ + static boolean has(String token) { + return token != null && !token.isBlank(); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = IndigoIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing indigo proposal icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read indigo proposal icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoLower.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoLower.java new file mode 100644 index 000000000..a70d28636 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoLower.java @@ -0,0 +1,386 @@ +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.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +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.table.DocumentTableCell; +import com.demcha.compose.document.table.DocumentTableColumn; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.document.templates.data.proposal.ProposalInvestment; +import com.demcha.compose.document.templates.data.proposal.ProposalScope; +import com.demcha.compose.document.templates.data.proposal.ProposalTermsBlock; + +import java.util.List; + +import static com.demcha.compose.document.templates.proposal.presets.IndigoFlow.columnDivider; +import static com.demcha.compose.document.templates.proposal.presets.IndigoFlow.layeredRow; +import static com.demcha.compose.document.templates.proposal.presets.IndigoFlow.rule; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.BODY; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.DIVIDER_LOWER_H_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.DIVIDER_LOWER_TOP_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.HALF; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INK; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INVEST_CELL_PAD_R; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INVEST_FIRST_ROW_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INVEST_HEADING_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INVEST_ROW_PITCH_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INVEST_RULE_OFFSET_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INVEST_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.LABEL_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.LOWER_GAP_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.LOWER_LEFT_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.LOWER_RIGHT_INSET; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.LOWER_RIGHT_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.NOTES_FIRST_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.NOTES_HEADING_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.NOTES_PITCH_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.NOTE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.OVERVIEW_HEADING_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.OVERVIEW_INTRO_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.OVERVIEW_INTRO_PITCH_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.OVERVIEW_MEASURE_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.OVERVIEW_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.RULE_SOFT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.RULE_THIN; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_CIRCLE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_CIRCLE_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_COL_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_CONNECTOR_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_FIRST_CIRCLE_AT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_NUM_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_PITCH_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_SUB_OFFSET_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_SUB_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_TITLE_OFFSET_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.STEP_TITLE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.TINT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.TOTAL_CARD_AT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.TOTAL_CARD_H_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.TOTAL_CARD_RADIUS; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.TOTAL_FIGURE_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.TOTAL_FIGURE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.TOTAL_LABEL_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.TOTAL_PAD_L; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.TOTAL_PAD_R; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.bold; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.boxBottomPx; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.plain; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.px; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.toPx; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.topBearing; + +/** + * The lower half of the sheet: the numbered plan at the left, the money at the + * right. + */ +final class IndigoLower { + + /** Every cell's stroke is white and weightless; the rules are lines inside them. */ + private static final DocumentTableStyle CELL_STYLE = DocumentTableStyle.builder() + .padding(new DocumentInsets(0, INVEST_CELL_PAD_R, 0, 0)) + .stroke(DocumentStroke.of(INK, 0)) + .build(); + + private IndigoLower() { + } + + /** + * The lower row. + * + * @param page the page flow + * @param scope the plan: a heading, an opening paragraph and numbered steps + * @param investment the money: a heading, its rows and the total + * @param terms the notes under the total + * @param flow the sheet's cursor + */ + static void render(PageFlowBuilder page, ProposalScope scope, ProposalInvestment investment, + ProposalTermsBlock terms, IndigoFlow flow) { + double rowTopPx = OVERVIEW_HEADING_CAP - toPx(topBearing(LABEL_SIZE, true)); + // How far the row reaches is the last step's, and a plan with no steps + // is measured as one: a count of nothing would put the row's foot above + // where its first step would have started. + int steps = Math.max(1, scope.items().size()); + double bottomPx = boxBottomPx(STEP_FIRST_CIRCLE_AT + (steps - 1) * STEP_PITCH_PX + + STEP_SUB_OFFSET_PX, STEP_SUB_SIZE, false); + double top = flow.boxAt(rowTopPx, bottomPx - rowTopPx); + page.addRow("LowerRow", row -> { + row.spacing(0) + .margin(new DocumentInsets(top, 0, 0, 0)) + .columns(DocumentRowColumn.fixed(LOWER_LEFT_W), + DocumentRowColumn.fixed(LOWER_GAP_W), + DocumentRowColumn.weight(1)); + row.addSection("LowerLeft", left -> { + left.spacing(0); + renderPlan(left, scope, new IndigoFlow(rowTopPx)); + }); + columnDivider(row, "ColumnDividerLower", + DIVIDER_LOWER_TOP_PX - rowTopPx, DIVIDER_LOWER_H_PX); + row.addSection("LowerRight", right -> { + right.spacing(0).padding(new DocumentInsets(0, LOWER_RIGHT_INSET, 0, 0)); + IndigoFlow cell = new IndigoFlow(rowTopPx); + renderInvestment(right, investment, cell); + renderTotal(right, investment, cell); + renderNotes(right, terms, cell); + }); + }); + } + + private static void renderPlan(SectionBuilder left, ProposalScope scope, IndigoFlow cell) { + if (!scope.heading().isBlank()) { + left.addParagraph(p -> p + .name("PlanHeading") + .text(scope.heading()) + .textStyle(bold(LABEL_SIZE, ACCENT)) + .margin(new DocumentInsets( + cell.capAt(OVERVIEW_HEADING_CAP, LABEL_SIZE, true), 0, 0, 0))); + } + if (!scope.intro().isBlank()) { + double measureInset = Math.max(0, LOWER_LEFT_W - px(OVERVIEW_MEASURE_PX)); + double gap = cell.capAt(OVERVIEW_INTRO_CAP, OVERVIEW_SIZE, false); + left.addParagraph(p -> p + .name("PlanIntro") + .text(scope.intro()) + .textStyle(plain(OVERVIEW_SIZE, BODY)) + .lineSpacing(px(OVERVIEW_INTRO_PITCH_PX) - OVERVIEW_SIZE) + .margin(new DocumentInsets(gap, measureInset, 0, 0))); + // Three lines at this measure, which the map states rather than the + // engine reporting afterwards. + cell.advanceTo(OVERVIEW_INTRO_CAP + 2 * OVERVIEW_INTRO_PITCH_PX + + toPx(OVERVIEW_SIZE)); + } + renderSteps(left, scope.items(), cell); + } + + private static void renderSteps(SectionBuilder left, List items, + IndigoFlow cell) { + for (int i = 0; i < items.size(); i++) { + ProposalScope.Item item = items.get(i); + int index = i; + boolean last = i == items.size() - 1; + double circleAt = STEP_FIRST_CIRCLE_AT + i * STEP_PITCH_PX; + double top = cell.boxAt(circleAt, last ? STEP_CIRCLE_PX : STEP_PITCH_PX); + layeredRow(left, "Step_" + index, row -> { + row.spacing(0) + .margin(new DocumentInsets(top, 0, 0, 0)) + .columns(DocumentRowColumn.fixed(STEP_COL_W), + DocumentRowColumn.weight(1)); + row.addSection("StepMark_" + index, mark -> { + mark.spacing(0); + mark.add(numberedDisc(index, item.number())); + if (!last) { + // The tick that joins this circle to the next. It is drawn + // per step rather than as one rail behind them all, + // because the design's gap is the shape's, not a rule's. + double gap = px(STEP_PITCH_PX - STEP_CIRCLE_PX); + double indent = (STEP_CIRCLE - STEP_CONNECTOR_W) * HALF; + mark.addLine(line -> line + .name("StepConnector_" + index) + .vertical(gap) + .thickness(STEP_CONNECTOR_W) + .color(TINT) + .margin(new DocumentInsets(0, 0, 0, indent))); + } + }); + row.addSection("StepText_" + index, text -> { + text.spacing(0); + IndigoFlow stack = new IndigoFlow(circleAt); + text.addParagraph(p -> p + .name("StepTitle_" + index) + .text(item.title()) + .textStyle(bold(STEP_TITLE_SIZE, INK)) + .margin(new DocumentInsets(stack.capAt( + circleAt + STEP_TITLE_OFFSET_PX, STEP_TITLE_SIZE, true), + 0, 0, 0))); + text.addParagraph(p -> p + .name("StepSubtitle_" + index) + .text(item.description()) + .textStyle(plain(STEP_SUB_SIZE, BODY)) + .margin(new DocumentInsets(stack.capAt( + circleAt + STEP_SUB_OFFSET_PX, STEP_SUB_SIZE, false), + 0, 0, 0))); + }); + }); + } + } + + /** + * A step's numbered disc. + * + *

      The number is the document's: a plan that continues one from elsewhere + * says so, and one that states none is numbered by its position.

      + */ + private static DocumentNode numberedDisc(int index, String stated) { + String number = stated.isBlank() ? String.format("%02d", index + 1) : stated; + return new ShapeContainerBuilder() + .name("StepCircle_" + index) + .circle(STEP_CIRCLE) + .fillColor(TINT) + .center(new ParagraphBuilder() + .name("StepNumber_" + index) + .text(number) + .textStyle(bold(STEP_NUM_SIZE, ACCENT)) + .align(TextAlign.CENTER) + .build()) + .build(); + } + + /** + * The money table. + * + *

      The heading travels with it. {@code keepWithNext} is a section's and a + * line's property and not a paragraph's, so rather than ask the label to + * hold on to what follows it, the label and the table are one kept-together + * section — a heading left alone at the foot of a page is what that + * prevents.

      + */ + private static void renderInvestment(SectionBuilder right, ProposalInvestment investment, + IndigoFlow cell) { + List rows = investment.rows(); + double headingTopPx = INVEST_HEADING_CAP - toPx(topBearing(LABEL_SIZE, true)); + double tableTopPx = INVEST_FIRST_ROW_CAP - toPx(topBearing(INVEST_SIZE, false)); + double tableBottomPx = boxBottomPx(INVEST_FIRST_ROW_CAP + + Math.max(0, rows.size() - 1) * INVEST_ROW_PITCH_PX, INVEST_SIZE, false); + double top = cell.boxAt(headingTopPx, tableBottomPx - headingTopPx); + right.addSection("Investment", group -> { + group.spacing(0) + .keepTogether() + .margin(new DocumentInsets(top, 0, 0, 0)); + IndigoFlow inner = new IndigoFlow(headingTopPx); + if (!investment.heading().isBlank()) { + group.addParagraph(p -> p + .name("InvestmentHeading") + .text(investment.heading()) + .textStyle(bold(LABEL_SIZE, ACCENT)) + .margin(new DocumentInsets( + inner.capAt(INVEST_HEADING_CAP, LABEL_SIZE, true), 0, 0, 0))); + } + if (rows.isEmpty()) { + return; + } + double tableTop = inner.boxAt(tableTopPx, tableBottomPx - tableTopPx); + group.addTable(table -> { + table.name("InvestmentTable") + .width(LOWER_RIGHT_W) + .columns(DocumentTableColumn.fixed(LOWER_RIGHT_W)) + // A cell's stroke draws all four edges and there is no + // per-edge control, so the default put a grid box round + // every row. The rules the design does draw are lines + // inside the cells. + .defaultCellStyle(CELL_STYLE) + .margin(new DocumentInsets(tableTop, 0, 0, 0)); + for (int i = 0; i < rows.size(); i++) { + table.rowCells(DocumentTableCell + .node(investmentRow(rows.get(i), i, i == rows.size() - 1))); + } + }); + }); + } + + private static DocumentNode investmentRow(ProposalInvestment.Row entry, int index, + boolean last) { + SectionBuilder cell = new SectionBuilder(); + cell.name("InvestmentCell_" + index).spacing(0); + cell.addRow("InvestmentRow_" + index, row -> { + row.spacing(0).weights(HALF, HALF); + row.addParagraph(p -> p + .name("InvestmentLabel_" + index) + .text(entry.label()) + .textStyle(plain(INVEST_SIZE, INK))); + row.addParagraph(p -> p + .name("InvestmentAmount_" + index) + .text(entry.amount()) + .textStyle(plain(INVEST_SIZE, INK)) + .align(TextAlign.RIGHT)); + }); + if (!last) { + double gap = px(INVEST_RULE_OFFSET_PX) - INVEST_SIZE + + topBearing(INVEST_SIZE, false); + cell.addLine(line -> rule(line, "InvestmentRule_" + index, LOWER_RIGHT_W, RULE_SOFT) + .margin(new DocumentInsets(Math.max(0, gap), 0, 0, 0))); + cell.addSpacer(spacer -> spacer.height(Math.max(0, + px(INVEST_ROW_PITCH_PX) - INVEST_SIZE - Math.max(0, gap) - RULE_THIN))); + } + return cell.build(); + } + + /** + * The total's card. + * + *

      The design's card is a fixed band, but its content is only the one row: + * without a bottom pad it closes early, and everything under it rides up by + * that much. The pad is the difference, computed rather than tuned.

      + */ + private static void renderTotal(SectionBuilder right, ProposalInvestment investment, + IndigoFlow cell) { + if (investment.totalLabel().isBlank() && investment.totalAmount().isBlank()) { + return; + } + double top = cell.boxAt(TOTAL_CARD_AT, TOTAL_CARD_H_PX); + double figureBoxTopPx = TOTAL_FIGURE_CAP - toPx(topBearing(TOTAL_FIGURE_SIZE, true)); + double contentBottomPx = figureBoxTopPx + toPx(TOTAL_FIGURE_SIZE); + double padBottom = Math.max(0, px(TOTAL_CARD_AT + TOTAL_CARD_H_PX - contentBottomPx)); + right.addSection("TotalCard", card -> { + card.spacing(0) + .keepTogether() + .fillColor(TINT) + .cornerRadius(TOTAL_CARD_RADIUS) + .padding(new DocumentInsets(0, TOTAL_PAD_R, padBottom, TOTAL_PAD_L)) + .margin(new DocumentInsets(top, 0, 0, 0)); + IndigoFlow inner = new IndigoFlow(TOTAL_CARD_AT); + double rowTop = inner.boxAt(figureBoxTopPx, TOTAL_CARD_H_PX); + layeredRow(card, "TotalRow", row -> { + row.spacing(0) + // The label's ink band and the larger figure's share a + // centre line, not a baseline. + .verticalAlign(RowVerticalAlign.CENTER) + .margin(new DocumentInsets(rowTop, 0, 0, 0)) + .weights(HALF, HALF); + row.addParagraph(p -> p + .name("TotalLabel") + .text(investment.totalLabel()) + .textStyle(plain(TOTAL_LABEL_SIZE, ACCENT))); + row.addParagraph(p -> p + .name("TotalFigure") + .text(investment.totalAmount()) + .textStyle(bold(TOTAL_FIGURE_SIZE, ACCENT)) + .align(TextAlign.RIGHT)); + }); + }); + } + + private static void renderNotes(SectionBuilder right, ProposalTermsBlock terms, + IndigoFlow cell) { + if (terms.heading().isBlank() && terms.items().isEmpty()) { + return; + } + if (!terms.heading().isBlank()) { + right.addParagraph(p -> p + .name("NotesHeading") + .text(terms.heading()) + .textStyle(bold(LABEL_SIZE, ACCENT)) + .margin(new DocumentInsets( + cell.capAt(NOTES_HEADING_CAP, LABEL_SIZE, true), 0, 0, 0))); + } + if (terms.items().isEmpty()) { + return; + } + double top = cell.capAt(NOTES_FIRST_CAP, NOTE_SIZE, false); + right.addList(list -> list + .name("NotesList") + .items(terms.items()) + .bullet() + .textStyle(plain(NOTE_SIZE, BODY)) + .itemSpacing(Math.max(0, px(NOTES_PITCH_PX) - NOTE_SIZE)) + .margin(new DocumentInsets(top, 0, 0, 0))); + cell.advanceTo(NOTES_FIRST_CAP + (terms.items().size() - 1) * NOTES_PITCH_PX + + toPx(NOTE_SIZE)); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoMasthead.java new file mode 100644 index 000000000..7e7ee9425 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoMasthead.java @@ -0,0 +1,345 @@ +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.node.DocumentLinkOptions; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.data.proposal.ProposalAttention; +import com.demcha.compose.document.templates.data.proposal.ProposalBrand; +import com.demcha.compose.document.templates.data.proposal.ProposalMetaLine; +import com.demcha.compose.document.templates.data.proposal.ProposalRecipient; +import com.demcha.compose.document.templates.data.proposal.ProposalTitleLines; + +import java.util.List; + +import static com.demcha.compose.document.templates.proposal.presets.IndigoFlow.columnDivider; +import static com.demcha.compose.document.templates.proposal.presets.IndigoFlow.layeredRow; +import static com.demcha.compose.document.templates.proposal.presets.IndigoFlow.rule; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ACCENT_RULE_AT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ACCENT_RULE_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ADDRESS_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ADDRESS_EXTRA_PITCH_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ATTN_EMAIL_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ATTN_LABEL_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ATTN_NAME_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ATTN_NAME_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ATTN_PHONE_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ATTN_ROLE_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.ATTN_ROLE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.BODY; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.COMPANY_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.COMPANY_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.CONTACT_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.CONTENT_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.DIVIDER_UPPER_H_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.DIVIDER_UPPER_TOP_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.HALF; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.HEADLINE_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.HEADLINE_EXTRA_PITCH_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.HEADLINE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.HERO_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INK; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INTRO_GAP_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.INTRO_LEFT_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.KICKER_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.KICKER_RULE_AT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.KICKER_RULE_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.KICKER_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.LABEL_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.LEFT_DIVIDER_AT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.LEFT_DIVIDER_W; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.MASTHEAD_RULE_AT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.META_CIRCLE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.META_CIRCLE_AT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.META_CIRCLE_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.META_GLYPH; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.META_LABEL_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.META_LABEL_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.META_PITCH_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.META_VALUE_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.META_VALUE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.PREPARED_LABEL_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.RULE_ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.RULE_SOFT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.RULE_STRONG; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.SUBTITLE_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.SUBTITLE_MEASURE_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.SUBTITLE_PITCH_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.TINT; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.WORDMARK_CAP; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.WORDMARK_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.bold; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.boxBottomPx; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.plain; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.px; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.toPx; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.topBearing; + +/** + * The head of the sheet: the wordmark against the document's label, a rule under + * both, then the addressed party at the left and the headline at the right. + */ +final class IndigoMasthead { + + private IndigoMasthead() { + } + + /** The wordmark on the left, the document's label and its accent rule on the right. */ + static void renderMasthead(PageFlowBuilder page, ProposalBrand brand, IndigoFlow flow) { + double top = flow.boxAt(WORDMARK_CAP - toPx(topBearing(WORDMARK_SIZE, true)), + toPx(WORDMARK_SIZE)); + page.addRow("Masthead", row -> { + row.spacing(0) + .margin(new DocumentInsets(top, 0, 0, 0)) + .columns(DocumentRowColumn.weight(1), DocumentRowColumn.weight(1)); + row.addParagraph(p -> p + .name("Wordmark") + .text(brand.nameLine1()) + .textStyle(bold(WORDMARK_SIZE, INK))); + row.addSection("DocumentLabel", cell -> { + cell.spacing(0); + IndigoFlow inner = new IndigoFlow( + KICKER_CAP - toPx(topBearing(KICKER_SIZE, true))); + cell.addParagraph(p -> p + .name("DocumentLabelText") + .text(brand.documentLabel()) + .textStyle(bold(KICKER_SIZE, INK)) + .align(TextAlign.RIGHT) + .margin(new DocumentInsets( + inner.capAt(KICKER_CAP, KICKER_SIZE, true), 0, 0, 0))); + // A line carries no alignment, so the rule is pushed right by the + // width its cell does not use — derived, not tuned. + double indent = (CONTENT_W * HALF) - KICKER_RULE_W; + cell.addLine(line -> rule(line, "DocumentLabelRule", KICKER_RULE_W, ACCENT) + .thickness(RULE_ACCENT) + .margin(new DocumentInsets( + inner.boxAt(KICKER_RULE_AT, 3), 0, 0, indent))); + }); + }); + } + + /** The full-width rule under the masthead. */ + static void renderMastheadRule(PageFlowBuilder page, IndigoFlow flow) { + double top = flow.boxAt(MASTHEAD_RULE_AT, 1.5); + page.addLine(line -> rule(line, "MastheadRule", CONTENT_W, RULE_STRONG) + .margin(new DocumentInsets(top, 0, 0, 0))); + } + + /** + * The upper half: the addressee and the person at it on the left, the + * headline and the header tiles on the right. + * + *

      Three columns, not two: the middle one is the design's own hairline + * between the two blocks.

      + */ + static void renderIntroRow(PageFlowBuilder page, ProposalRecipient recipient, + ProposalAttention attention, ProposalTitleLines title, + ProposalMetaLine meta, IndigoFlow flow) { + double rowTopPx = PREPARED_LABEL_CAP - toPx(topBearing(LABEL_SIZE, true)); + double top = flow.boxAt(rowTopPx, + boxBottomPx(META_VALUE_CAP, META_VALUE_SIZE, false) - rowTopPx); + page.addRow("IntroRow", row -> { + row.spacing(0) + .margin(new DocumentInsets(top, 0, 0, 0)) + .columns(DocumentRowColumn.fixed(INTRO_LEFT_W), + DocumentRowColumn.fixed(INTRO_GAP_W), + DocumentRowColumn.weight(1)); + row.addSection("IntroLeft", left -> { + left.spacing(0); + IndigoFlow cell = new IndigoFlow(rowTopPx); + renderRecipient(left, recipient, cell); + renderAttention(left, attention, cell); + }); + columnDivider(row, "ColumnDividerUpper", + DIVIDER_UPPER_TOP_PX - rowTopPx, DIVIDER_UPPER_H_PX); + row.addSection("IntroRight", right -> { + right.spacing(0); + IndigoFlow cell = new IndigoFlow(rowTopPx); + renderHeadline(right, title, cell); + renderMetaTiles(right, meta, cell); + }); + }); + } + + private static void renderRecipient(SectionBuilder left, ProposalRecipient recipient, + IndigoFlow cell) { + left.addParagraph(p -> p + .name("RecipientLabel") + .text(recipient.label()) + .textStyle(bold(LABEL_SIZE, ACCENT)) + .margin(new DocumentInsets( + cell.capAt(PREPARED_LABEL_CAP, LABEL_SIZE, true), 0, 0, 0))); + left.addParagraph(p -> p + .name("RecipientName") + .text(recipient.name()) + .textStyle(bold(COMPANY_SIZE, INK)) + .margin(new DocumentInsets( + cell.capAt(COMPANY_CAP, COMPANY_SIZE, true), 0, 0, 0))); + + List lines = recipient.addressLines(); + for (int i = 0; i < lines.size(); i++) { + String line = lines.get(i); + int index = i; + // The design maps three address lines; a fourth and beyond continue + // on the pitch the mapped ones establish. + double capPx = index < ADDRESS_CAP.length + ? ADDRESS_CAP[index] + : ADDRESS_CAP[ADDRESS_CAP.length - 1] + + (index - ADDRESS_CAP.length + 1) * ADDRESS_EXTRA_PITCH_PX; + double gap = cell.capAt(capPx, CONTACT_SIZE, false); + left.addParagraph(p -> p + .name("RecipientAddress_" + index) + .text(line) + .textStyle(plain(CONTACT_SIZE, BODY)) + .margin(new DocumentInsets(gap, 0, 0, 0))); + } + + left.addLine(line -> rule(line, "RecipientDivider", LEFT_DIVIDER_W, RULE_SOFT) + .margin(new DocumentInsets(cell.boxAt(LEFT_DIVIDER_AT, 1.5), 0, 0, 0))); + } + + private static void renderAttention(SectionBuilder left, ProposalAttention attention, + IndigoFlow cell) { + left.addParagraph(p -> p + .name("AttentionLabel") + .text(attention.label()) + .textStyle(bold(LABEL_SIZE, ACCENT)) + .margin(new DocumentInsets( + cell.capAt(ATTN_LABEL_CAP, LABEL_SIZE, true), 0, 0, 0))); + left.addParagraph(p -> p + .name("AttentionName") + .text(attention.name()) + .textStyle(bold(ATTN_NAME_SIZE, INK)) + .margin(new DocumentInsets( + cell.capAt(ATTN_NAME_CAP, ATTN_NAME_SIZE, true), 0, 0, 0))); + left.addParagraph(p -> p + .name("AttentionRole") + .text(attention.role()) + .textStyle(plain(ATTN_ROLE_SIZE, BODY)) + .margin(new DocumentInsets( + cell.capAt(ATTN_ROLE_CAP, ATTN_ROLE_SIZE, false), 0, 0, 0))); + reachable(left, "AttentionEmail", attention.email(), + ProposalUri.mailLink(attention.email()), cell, ATTN_EMAIL_CAP); + reachable(left, "AttentionPhone", attention.phone(), + ProposalUri.telLink(attention.phone()), cell, ATTN_PHONE_CAP); + } + + /** + * A contact line, made followable, at the design y the map gives it. + * + *

      The cursor is asked for its margin inside the guard rather than outside + * it. A line the document does not carry was never laid out, and a cursor + * advanced past it would place the next line from where the missing one + * would have ended instead of where the map puts it.

      + */ + private static void reachable(SectionBuilder parent, String name, String value, + DocumentLinkOptions link, IndigoFlow cell, double capPx) { + if (value.isBlank()) { + return; + } + double gap = cell.capAt(capPx, CONTACT_SIZE, false); + parent.addParagraph(p -> { + p.name(name).margin(new DocumentInsets(gap, 0, 0, 0)); + if (link == null) { + p.text(value).textStyle(plain(CONTACT_SIZE, BODY)); + } else { + p.inlineText(value, plain(CONTACT_SIZE, BODY), link); + } + }); + } + + /** + * The headline, its accent rule and the paragraph under it. + * + *

      The rag is a composition decision, so each designed line is its own + * paragraph. Wrapping one string would re-break it at the engine's measure + * rather than where the design breaks it.

      + */ + private static void renderHeadline(SectionBuilder right, ProposalTitleLines title, + IndigoFlow cell) { + List lines = title.lines(); + for (int i = 0; i < lines.size(); i++) { + String line = lines.get(i); + int index = i; + double capPx = index < HEADLINE_CAP.length + ? HEADLINE_CAP[index] + : HEADLINE_CAP[HEADLINE_CAP.length - 1] + + (index - HEADLINE_CAP.length + 1) * HEADLINE_EXTRA_PITCH_PX; + double gap = cell.capAt(capPx, HEADLINE_SIZE, true); + right.addParagraph(p -> p + .name("HeadlineLine_" + index) + .text(line) + .textStyle(bold(HEADLINE_SIZE, INK)) + .margin(new DocumentInsets(gap, 0, 0, 0))); + } + + right.addLine(line -> rule(line, "HeadlineRule", ACCENT_RULE_W, ACCENT) + .thickness(RULE_ACCENT) + .margin(new DocumentInsets(cell.boxAt(ACCENT_RULE_AT, 3), 0, 0, 0))); + + List standfirst = title.standfirst(); + if (standfirst.isEmpty()) { + return; + } + double measureInset = Math.max(0, HERO_W - px(SUBTITLE_MEASURE_PX)); + double gap = cell.capAt(SUBTITLE_CAP, BODY_SIZE, false); + right.addParagraph(p -> p + .name("HeadlineStandfirst") + .text(String.join(" ", standfirst)) + .textStyle(plain(BODY_SIZE, BODY)) + // Line spacing is additive points between lines, not a multiple. + .lineSpacing(px(SUBTITLE_PITCH_PX) - BODY_SIZE) + .margin(new DocumentInsets(gap, measureInset, 0, 0))); + // The design sets it in three lines at this measure; the map states that + // rather than asking the engine afterwards. + cell.advanceTo(SUBTITLE_CAP + 2 * SUBTITLE_PITCH_PX + toPx(BODY_SIZE)); + } + + /** The row of marked tiles under the headline. */ + private static void renderMetaTiles(SectionBuilder right, ProposalMetaLine meta, + IndigoFlow cell) { + List entries = meta.entries(); + if (entries.isEmpty()) { + return; + } + double top = cell.boxAt(META_CIRCLE_AT, + boxBottomPx(META_VALUE_CAP, META_VALUE_SIZE, false) - META_CIRCLE_AT); + layeredRow(right, "MetaTiles", row -> { + row.spacing(0).margin(new DocumentInsets(top, 0, 0, 0)); + DocumentRowColumn[] columns = new DocumentRowColumn[entries.size()]; + for (int i = 0; i < entries.size(); i++) { + columns[i] = i < META_PITCH_PX.length + ? DocumentRowColumn.fixed(px(META_PITCH_PX[i])) + : DocumentRowColumn.weight(1); + } + row.columns(columns); + for (int i = 0; i < entries.size(); i++) { + ProposalMetaLine.Entry entry = entries.get(i); + int index = i; + row.addSection("MetaTile_" + index, group -> { + group.spacing(0); + IndigoFlow stack = new IndigoFlow(META_CIRCLE_AT); + group.add(IndigoWidgets.disc("MetaCircle_" + index, TINT, + entry.icon(), META_CIRCLE, META_GLYPH)); + stack.boxAt(META_CIRCLE_AT, META_CIRCLE_PX); + group.addParagraph(p -> p + .name("MetaLabel_" + index) + .text(entry.label()) + .textStyle(plain(META_LABEL_SIZE, BODY)) + .margin(new DocumentInsets( + stack.capAt(META_LABEL_CAP, META_LABEL_SIZE, false), 0, 0, 0))); + group.addParagraph(p -> p + .name("MetaValue_" + index) + .text(entry.value()) + .textStyle(plain(META_VALUE_SIZE, INK)) + .margin(new DocumentInsets( + stack.capAt(META_VALUE_CAP, META_VALUE_SIZE, false), 0, 0, 0))); + }); + } + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposal.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposal.java new file mode 100644 index 000000000..897bd60f6 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoProposal.java @@ -0,0 +1,123 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalData; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalDocumentSpec; + +import java.util.Objects; + +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.FLOW_ORIGIN_PX; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.PAGE; +import static com.demcha.compose.document.templates.proposal.presets.IndigoStyles.PAGE_MARGIN; + +/** + * Indigo Proposal — a one-page sales proposal: an addressed head, a tinted band + * about the issuer, a numbered plan beside its price, and a foot that says who + * sent it. + * + *

      The sheet is a single page by design and not by accident: every block's + * position is a cap top in one vertical map ({@link IndigoStyles}), and the + * cursor that turns those into margins ({@link IndigoFlow}) walks the page once, + * top to bottom. Content heavier than the design's own — a sixth step, a fifth + * priced row, an address that wraps — pushes the blocks below it down and can + * carry the foot onto a second page. The preset does not cap what it is given: + * a document that overruns paginates rather than being truncated, and never + * prints one block over another.

      + * + *

      Two places the design fills with its own brand assets are kept as places + * rather than filled: the band's artwork column (see {@link IndigoBand}) and the + * foot's logotype (see {@link IndigoClosing}). The templates artifact carries no + * brand assets, so the copy keeps the measure it was solved against and the foot + * sets whatever monogram the document names.

      + * + *

      The preset consumes the structured proposal model + * ({@link StructuredProposalDocumentSpec}); the icon tokens the data carries + * resolve against the packaged Indigo set ({@link IndigoIcons}). It owns its + * page geometry — A4 and the design's own ink margins — so a session margin set + * by the caller is overwritten; see {@link #RECOMMENDED_MARGIN}.

      + * + *

      Fonts

      + * + *

      The sheet is set in Gothic A1, the family every size was solved against. + * The templates artifact carries no fonts: it arrives with + * {@code graph-compose-fonts} on the classpath, or a caller registers a family + * of that name on the session itself. With neither, the engine substitutes and + * every size is solved for type that is not there.

      + * + *

      Usage:

      + *
      {@code
      + * DocumentTemplate template = IndigoProposal.create();
      + * template.compose(session, spec);
      + * }
      + * + * @since 2.4.0 + */ +public final class IndigoProposal { + + /** + * Stable template identifier. + */ + public static final String ID = "proposal-indigo"; + + /** + * Human-readable display name. + */ + public static final String DISPLAY_NAME = "Indigo Proposal"; + + /** + * Recommended session margin (in points). The preset sets the design's own + * ink margins inside {@code compose}, so callers leave the session margin at + * zero and let the preset own the page frame. + */ + public static final double RECOMMENDED_MARGIN = 0.0; + + private IndigoProposal() { + } + + /** + * 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).margin(PAGE_MARGIN); + + document.pageFlow(page -> { + // spacing(0): every gap on this sheet is a margin the map + // solved, so a flow spacing would be added on top of all of + // them. + page.name("Proposal").spacing(0); + IndigoFlow flow = new IndigoFlow(FLOW_ORIGIN_PX); + IndigoMasthead.renderMasthead(page, data.brand(), flow); + IndigoMasthead.renderMastheadRule(page, flow); + IndigoMasthead.renderIntroRow(page, data.recipient(), data.attention(), + data.title(), data.meta(), flow); + IndigoBand.render(page, data.glance(), flow); + IndigoLower.render(page, data.scope(), data.investment(), data.terms(), flow); + IndigoClosing.renderFooterRule(page, flow); + IndigoClosing.renderFooter(page, data.brand(), data.footer(), flow); + }); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoStyles.java new file mode 100644 index 000000000..e431f9e84 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoStyles.java @@ -0,0 +1,290 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.font.FontName; + +/** + * Every measurement, colour and type size of the Indigo proposal. + * + *

      Sizes are solved by width, not by cap height

      + * + *

      The design's own face is not bundled. Gothic A1 matches it closely at + * regular weight and sets 10–20% wide at bold, so a cap-height solve alone put + * every bold block over its measure. Each size below is instead solved from the + * measured ink width of the string it sets.

      + * + *

      Positions are a map of cap tops

      + * + *

      The whole sheet is one vertical map: every text block's cap top in design + * pixels, in one place. {@link IndigoFlow} turns a cap top into the margin that + * puts it there, given where the flow has already reached — so a block moves by + * changing one number here rather than by re-deriving the gaps around it.

      + */ +final class IndigoStyles { + + private IndigoStyles() { + } + + // ------------------------------------------------------------------ + // The page, and the one scale everything derives from + // ------------------------------------------------------------------ + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + + private static final double PAGE_W = PAGE.width(); + private static final double DESIGN_PX_WIDTH = 1054.0; + private static final double PX = PAGE_W / DESIGN_PX_WIDTH; + + static double px(double designPixels) { + return designPixels * PX; + } + + /** Points back into design pixels, for the map's own arithmetic. */ + static double toPx(double points) { + return points / PX; + } + + /** Ink margins: the masthead and footer rules both run the same span. */ + private static final double MARGIN_T = px(46); + static final double MARGIN_R = px(41); + private static final double MARGIN_B = px(24); + static final double MARGIN_L = px(49); + + static final DocumentInsets PAGE_MARGIN = + new DocumentInsets(MARGIN_T, MARGIN_R, MARGIN_B, MARGIN_L); + + static final double CONTENT_W = PAGE_W - MARGIN_L - MARGIN_R; + + /** Where the flow's cursor starts, in design pixels. */ + static final double FLOW_ORIGIN_PX = 46; + + static final double HALF = 0.5; + + // ------------------------------------------------------------------ + // Columns + // ------------------------------------------------------------------ + + /** + * The two halves of the sheet divide at different x, which is a fact about + * the design and not a mistake: the upper hairline sits left of the lower + * one. + */ + private static final double DIVIDER_UPPER_X_PX = 402; + static final double DIVIDER_UPPER_TOP_PX = 172; + static final double DIVIDER_UPPER_H_PX = 646 - 172; + private static final double DIVIDER_LOWER_X_PX = 503; + static final double DIVIDER_LOWER_TOP_PX = 1020; + static final double DIVIDER_LOWER_H_PX = 1361 - 1020; + + private static final double INTRO_SPLIT_PX = 441; + private static final double LOWER_SPLIT_PX = 538; + private static final double CONTENT_RIGHT_PX = 1013; + + static final double INTRO_LEFT_W = px(DIVIDER_UPPER_X_PX - 49); + static final double INTRO_GAP_W = px(INTRO_SPLIT_PX - DIVIDER_UPPER_X_PX); + static final double LOWER_LEFT_W = px(DIVIDER_LOWER_X_PX - 49); + static final double LOWER_GAP_W = px(LOWER_SPLIT_PX - DIVIDER_LOWER_X_PX); + static final double LOWER_RIGHT_INSET = px(CONTENT_RIGHT_PX - 996); + static final double LOWER_RIGHT_W = px(996 - LOWER_SPLIT_PX); + + /** The hero's own measure, narrower than the column it sits in. */ + static final double HERO_W = CONTENT_W - px(INTRO_SPLIT_PX - 49); + static final double SUBTITLE_MEASURE_PX = 410; + static final double ABOUT_MEASURE_PX = 382; + static final double OVERVIEW_MEASURE_PX = 420; + + // ------------------------------------------------------------------ + // The band + // ------------------------------------------------------------------ + + static final double BAND_TOP_PX = 675; + static final double BAND_H_PX = 307; + + /** + * The design fills the band's right with a product photograph. That is a + * brand asset, and the templates artifact carries none, so the place it + * occupies is kept — the copy keeps the measure the design solved it against + * — and left as flat tint. + */ + static final double BAND_ARTWORK_W = px(584); + private static final double BAND_BLEED = MARGIN_R; + static final double BAND_LEFT_W = CONTENT_W + BAND_BLEED - BAND_ARTWORK_W; + + // ------------------------------------------------------------------ + // Colour, sampled from the design + // ------------------------------------------------------------------ + + static final DocumentColor INK = DocumentColor.rgb(0, 0, 0); + static final DocumentColor BODY = DocumentColor.rgb(124, 128, 138); + static final DocumentColor ACCENT = DocumentColor.rgb(61, 37, 173); + static final DocumentColor TINT = DocumentColor.rgb(241, 238, 251); + static final DocumentColor TILE_DARK = DocumentColor.rgb(20, 26, 37); + static final DocumentColor RULE_STRONG = DocumentColor.rgb(213, 216, 224); + static final DocumentColor RULE_SOFT = DocumentColor.rgb(231, 233, 235); + + // ------------------------------------------------------------------ + // Type + // ------------------------------------------------------------------ + + /** + * The family every size below was solved against. The templates artifact + * carries no fonts: Gothic A1 arrives with {@code graph-compose-fonts} on + * the classpath, or a caller registers a family of that name on the session + * itself. With neither, the engine substitutes and every size is solved for + * type that is not there. + */ + static final FontName FACE = FontName.GOTHIC_A1; + + private static final double FACE_ASCENT = 0.7979; + private static final double CAP_REGULAR = 0.7314; + private static final double CAP_BOLD = 0.7725; + private static final double TOP_BEARING_REGULAR = FACE_ASCENT - CAP_REGULAR; + private static final double TOP_BEARING_BOLD = FACE_ASCENT - CAP_BOLD; + + static double topBearing(double size, boolean bold) { + return (bold ? TOP_BEARING_BOLD : TOP_BEARING_REGULAR) * size; + } + + /** The design y a box of this size and cap top reaches down to. */ + static double boxBottomPx(double capTopPx, double size, boolean bold) { + return capTopPx - toPx(topBearing(size, bold)) + toPx(size); + } + + static final double WORDMARK_SIZE = 28.3; + static final double KICKER_SIZE = 13.9; + static final double LABEL_SIZE = 8.1; + static final double COMPANY_SIZE = 13.2; + static final double BODY_SIZE = 9.7; + static final double CONTACT_SIZE = 8.8; + static final double ATTN_NAME_SIZE = 9.6; + static final double ATTN_ROLE_SIZE = 8.9; + static final double HEADLINE_SIZE = 25.5; + static final double META_LABEL_SIZE = 6.8; + static final double META_VALUE_SIZE = 7.8; + static final double ABOUT_BODY_SIZE = 7.8; + static final double FEATURE_SIZE = 7.9; + static final double OVERVIEW_SIZE = 7.5; + static final double STEP_TITLE_SIZE = 7.6; + static final double STEP_SUB_SIZE = 7.4; + static final double STEP_NUM_SIZE = 8.0; + static final double INVEST_SIZE = 7.6; + static final double TOTAL_LABEL_SIZE = 7.1; + static final double TOTAL_FIGURE_SIZE = 13.2; + static final double NOTE_SIZE = 7.4; + static final double FOOTER_NAME_SIZE = 7.1; + static final double FOOTER_BODY_SIZE = 7.0; + + /** + * The foot's mark, solved from the design glyph's ink height rather than + * from a measured string: what stands in its place is a monogram, and what + * has to match is how large the mark reads beside the name. + */ + static final double FOOTER_MARK_SIZE = 19.9; + + static DocumentTextStyle style(double size, DocumentColor color, + DocumentTextDecoration decoration) { + return new DocumentTextStyle(FACE, size, decoration, color); + } + + static DocumentTextStyle plain(double size, DocumentColor color) { + return style(size, color, DocumentTextDecoration.DEFAULT); + } + + static DocumentTextStyle bold(double size, DocumentColor color) { + return style(size, color, DocumentTextDecoration.BOLD); + } + + // ------------------------------------------------------------------ + // Rules and shapes + // ------------------------------------------------------------------ + + static final double RULE_THIN = px(1.5); + static final double RULE_ACCENT = px(3); + static final double LEFT_DIVIDER_W = px(322 - 49); + static final double ACCENT_RULE_W = px(58); + static final double KICKER_RULE_W = px(57); + static final double META_CIRCLE = px(44); + static final double META_GLYPH = px(20); + static final double FEATURE_TILE = px(48); + static final double FEATURE_RADIUS = px(12); + static final double FEATURE_GLYPH = px(24); + static final double FEATURE_PITCH_PX = 110.7; + static final double STEP_CIRCLE = px(38); + static final double STEP_CIRCLE_PX = 38; + static final double STEP_PITCH_PX = 49.5; + static final double STEP_COL_W = px(110 - 49); + static final double STEP_CONNECTOR_W = px(2); + static final double TOTAL_CARD_RADIUS = px(14); + static final double TOTAL_CARD_H_PX = 60; + static final double TOTAL_PAD_R = px(996 - 975); + static final double TOTAL_PAD_L = px(557 - 538); + static final double INVEST_CELL_PAD_R = px(996 - 979); + static final double FOOTER_TEXT_COL_W = px(108 - 49); + + // ------------------------------------------------------------------ + // The vertical map, in design pixels: the cap top of every text block + // ------------------------------------------------------------------ + + static final double WORDMARK_CAP = 51; + static final double KICKER_CAP = 50; + static final double KICKER_RULE_AT = 90; + static final double MASTHEAD_RULE_AT = 122; + + static final double PREPARED_LABEL_CAP = 174; + static final double COMPANY_CAP = 204; + static final double[] ADDRESS_CAP = {248, 270, 293}; + static final double ADDRESS_EXTRA_PITCH_PX = 23; + static final double LEFT_DIVIDER_AT = 357; + static final double ATTN_LABEL_CAP = 388; + static final double ATTN_NAME_CAP = 419; + static final double ATTN_ROLE_CAP = 448; + static final double ATTN_EMAIL_CAP = 472; + static final double ATTN_PHONE_CAP = 495; + + static final double[] HEADLINE_CAP = {179, 233, 286, 340}; + static final double HEADLINE_EXTRA_PITCH_PX = 53.7; + static final double ACCENT_RULE_AT = 403; + static final double SUBTITLE_CAP = 436; + static final double SUBTITLE_PITCH_PX = 24; + + static final double[] META_PITCH_PX = {130, 141, 150}; + static final double META_CIRCLE_AT = 549; + static final double META_CIRCLE_PX = 44; + static final double META_LABEL_CAP = 614; + static final double META_VALUE_CAP = 636; + + static final double ABOUT_HEADING_CAP = 711; + static final double ABOUT_BODY_CAP = 743; + static final double ABOUT_BODY_PITCH_PX = 20; + static final double FEATURE_TILE_AT = 852; + static final double FEATURE_TILE_PX = 48; + static final double FEATURE_LINE1_CAP = 916; + static final double FEATURE_LINE2_CAP = 935; + + static final double OVERVIEW_HEADING_CAP = 1020; + static final double OVERVIEW_INTRO_CAP = 1052; + static final double OVERVIEW_INTRO_PITCH_PX = 20; + static final double STEP_FIRST_CIRCLE_AT = 1124; + static final double STEP_TITLE_OFFSET_PX = 1133 - 1124; + static final double STEP_SUB_OFFSET_PX = 1153 - 1124; + + static final double INVEST_HEADING_CAP = 1020; + static final double INVEST_FIRST_ROW_CAP = 1061; + static final double INVEST_ROW_PITCH_PX = 34.5; + static final double INVEST_RULE_OFFSET_PX = 1084 - 1061; + static final double TOTAL_CARD_AT = 1196; + static final double TOTAL_FIGURE_CAP = 1218; + static final double NOTES_HEADING_CAP = 1285; + static final double NOTES_FIRST_CAP = 1312; + static final double NOTES_PITCH_PX = 18.5; + + static final double FOOTER_RULE_AT = 1395; + static final double FOOTER_MARK_AT = 1416; + static final double FOOTER_NAME_CAP = 1416; + static final double FOOTER_ADDRESS_CAP = 1435; + static final double FOOTER_CONTACT_CAP = 1455; +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoWidgets.java new file mode 100644 index 000000000..b2aa60302 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoWidgets.java @@ -0,0 +1,81 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.dsl.SpacerBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.style.DocumentColor; + +import java.util.List; + +import static com.demcha.compose.document.templates.proposal.presets.IndigoFlow.glyph; + +/** + * The two filled shapes the Indigo proposal repeats: the disc a header tile + * opens with and the rounded tile a feature opens with. + * + *

      Both are drawn whether or not the document names a mark for them. The shape + * is the design's; the mark inside it is the document's, and a tile that names + * none is still the tile the design draws.

      + */ +final class IndigoWidgets { + + private IndigoWidgets() { + } + + /** + * A filled disc carrying one of the header's marks. + * + * @param name the disc's name + * @param fill the disc's colour + * @param token the mark's token, or blank for a disc that carries none + * @param diameter the disc's diameter + * @param markSize how large to draw the mark + * @return the disc + */ + static DocumentNode disc(String name, DocumentColor fill, String token, + double diameter, double markSize) { + return new ShapeContainerBuilder() + .name(name) + .circle(diameter) + .fillColor(fill) + .center(mark(name, token, IndigoIcons.HEADER_TOKENS, markSize)) + .build(); + } + + /** + * A filled rounded tile carrying one of the band's marks. + * + * @param name the tile's name + * @param fill the tile's colour + * @param token the mark's token, or blank for a tile that carries none + * @param size the tile's side + * @param radius the tile's corner radius + * @param markSize how large to draw the mark + * @return the tile + */ + static DocumentNode tile(String name, DocumentColor fill, String token, + double size, double radius, double markSize) { + return new ShapeContainerBuilder() + .name(name) + .roundedRect(size, size, radius) + .fillColor(fill) + .center(mark(name, token, IndigoIcons.BAND_TOKENS, markSize)) + .build(); + } + + /** + * What goes inside the shape: the mark the document names, or the space it + * would have taken. + * + *

      A shape with no layer at all is refused, so a shape that carries no + * mark is centred on the mark's own space instead — the design's shape is + * drawn either way, and a token this block cannot draw is still a data error + * reported by name rather than an empty tile.

      + */ + private static DocumentNode mark(String name, String token, List allowed, + double markSize) { + return IndigoIcons.has(token) + ? glyph(token, allowed, markSize) + : new SpacerBuilder().name(name + "Space").size(markSize, markSize).build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/ProposalUri.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/ProposalUri.java new file mode 100644 index 000000000..0b2989fb1 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/ProposalUri.java @@ -0,0 +1,118 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.node.DocumentLinkOptions; + +import java.util.regex.Pattern; + +/** + * Turns a printed contact detail into something a reader can act on. + * + *

      A proposal prints a number, an address and a site the way a person reads + * them, and a reader's device needs the form it can dial, mail or open. The + * conversion lives in one place rather than beside every block that needs it.

      + */ +final class ProposalUri { + + /** + * A trunk prefix in a printed number is for a domestic dialler and is not + * part of the international one — {@code +44 (0)20 7946 0832} dials + * {@code +442079460832}. Left in, the digits run together into a number that + * reaches nobody. A parenthesised area code is not a trunk prefix, + * which is why only an all-zero group goes. + */ + private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); + + private ProposalUri() { + } + + /** + * A printed telephone number as something a reader can dial. + * + * @param phone the number as the sheet prints it + * @return the link options, or {@code null} when the text carries no digits + */ + static DocumentLinkOptions telLink(String phone) { + if (phone == null || phone.isBlank()) { + return null; + } + String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : new DocumentLinkOptions( + "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits); + } + + /** + * An address as something a reader can write to. + * + * @param email the address as the sheet prints it + * @return the link options, or {@code null} when there is no address, or + * none that could be made from what was printed + */ + static DocumentLinkOptions mailLink(String email) { + if (email == null || email.isBlank()) { + return null; + } + try { + return new DocumentLinkOptions("mailto:" + email.trim()); + } catch (IllegalArgumentException notAUri) { + return null; + } + } + + /** + * A written site as something a reader can follow. A sheet prints + * {@code example.com}; a viewer needs a scheme in front of it. + * + *

      Not everything a document prints where a site would go is one, and a + * string that cannot be a URI is printed as it stands rather than refused: + * a link is an affordance, and losing it is not worth failing to render the + * page over.

      + * + * @param website the site as the sheet prints it + * @return the link options, or {@code null} when there is no site, or none + * that could be made from what was printed + */ + static DocumentLinkOptions webLink(String website) { + if (website == null || website.isBlank()) { + return null; + } + String trimmed = website.trim(); + String target = trimmed.startsWith("http://") || trimmed.startsWith("https://") + ? trimmed + : "https://" + trimmed; + try { + return new DocumentLinkOptions(target); + } catch (IllegalArgumentException notAUri) { + return null; + } + } + + /** + * The link a printed contact string wants, guessed from its own shape. + * + *

      A proposal's foot lists its channels as plain strings — a site, an + * address, a number — without saying which is which, because a reader can + * see it. This reads the same thing back: an address has an at-sign, a + * number starts with a plus or is mostly digits, and anything else is a + * site.

      + * + * @param contact the channel as the sheet prints it + * @return the link options, or {@code null} when nothing can be made of it + */ + static DocumentLinkOptions channelLink(String contact) { + if (contact == null || contact.isBlank()) { + return null; + } + String trimmed = contact.trim(); + if (trimmed.contains("@")) { + return mailLink(trimmed); + } + String digits = trimmed.replaceAll("[^0-9]", ""); + if (trimmed.startsWith("+") || digits.length() >= 9 && digits.length() >= trimmed.length() / 2) { + return telLink(trimmed); + } + return webLink(trimmed); + } +} 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 56bf35f33..afedd4563 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 @@ -18,7 +18,8 @@ * {@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}). + * family ({@code NorthlineProposal}, {@code EditorialProposal}, + * {@code IndigoProposal}). * * *

      Both shapes reuse the shared {@code templates.core.*} layer; the diff --git a/templates/src/main/resources/templates/proposal/indigo/icons/apis.svg b/templates/src/main/resources/templates/proposal/indigo/icons/apis.svg new file mode 100644 index 000000000..2851e9b6a --- /dev/null +++ b/templates/src/main/resources/templates/proposal/indigo/icons/apis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/indigo/icons/date.svg b/templates/src/main/resources/templates/proposal/indigo/icons/date.svg new file mode 100644 index 000000000..36b979ac0 --- /dev/null +++ b/templates/src/main/resources/templates/proposal/indigo/icons/date.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/indigo/icons/global.svg b/templates/src/main/resources/templates/proposal/indigo/icons/global.svg new file mode 100644 index 000000000..6cd57802e --- /dev/null +++ b/templates/src/main/resources/templates/proposal/indigo/icons/global.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/indigo/icons/identifier.svg b/templates/src/main/resources/templates/proposal/indigo/icons/identifier.svg new file mode 100644 index 000000000..c80ddb764 --- /dev/null +++ b/templates/src/main/resources/templates/proposal/indigo/icons/identifier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/indigo/icons/infrastructure.svg b/templates/src/main/resources/templates/proposal/indigo/icons/infrastructure.svg new file mode 100644 index 000000000..3ec227c9b --- /dev/null +++ b/templates/src/main/resources/templates/proposal/indigo/icons/infrastructure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/indigo/icons/prepared-by.svg b/templates/src/main/resources/templates/proposal/indigo/icons/prepared-by.svg new file mode 100644 index 000000000..e2edb44b9 --- /dev/null +++ b/templates/src/main/resources/templates/proposal/indigo/icons/prepared-by.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/indigo/icons/secure.svg b/templates/src/main/resources/templates/proposal/indigo/icons/secure.svg new file mode 100644 index 000000000..8af44e21c --- /dev/null +++ b/templates/src/main/resources/templates/proposal/indigo/icons/secure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/indigo/icons/valid.svg b/templates/src/main/resources/templates/proposal/indigo/icons/valid.svg new file mode 100644 index 000000000..998a38ca4 --- /dev/null +++ b/templates/src/main/resources/templates/proposal/indigo/icons/valid.svg @@ -0,0 +1 @@ + \ No newline at end of file From 36e0bd216c9aae00addb926530549f86c08bc8ef Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Wed, 2 Sep 2026 11:46:48 +0100 Subject: [PATCH 44/85] feat(templates): model a staff rota, and retire the roster model nothing rendered MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The library already shipped a weekly-roster model, templates.data.schedule, public since the templates module was extracted. Nothing ever rendered it, and the reason is that it is not shaped like a rota is drawn: its people are ordered by a token and grouped nowhere, so there are no staff bands; an assignment cannot say that one half of a split day is drawn more quietly than the other; a day heading is one string, which a design that raises the ordinal's suffix cannot split; and a category carries three java.awt.Colors, which puts a rendering decision in the document and stops two presets drawing the same rota in two palettes. templates.data.rota replaces it: StructuredRotaData — venue, week, day columns, legend, staff bands, footer — wrapped by StructuredRotaDocumentSpec, with RotaVenue, RotaWeek, RotaDay, RotaCovers, RotaLegend, RotaGroup, RotaStaff, RotaShift, RotaFooter and the ShiftStatus and ShiftEmphasis enumerations. The grid belongs to the document. days() is the columns and every RotaStaff.days() runs in that same order, so a cell is found by position and a rota of five days is as ordinary as one of seven — the span is a label the document carries, not a shape the model imposes. A person's day is a list of entries rather than one, which makes the two shapes a rota actually has — a blank cell and a split shift — ordinary rather than special cases a preset has to invent a representation for. RotaStaff.day(int) answers with nothing for a day the rota does not reach. What a cell means is separate from what it prints. ShiftStatus is the meaning a preset colours by and the text is the word a site uses for it, so a rota printing A/L and one printing HOL colour alike. There is deliberately no marked(text, status) factory that picks the emphasis: a design that halves a day draws the halves differently, sometimes quiet second and sometimes not, so strong(...) and soft(...) make the caller say which. Every type in templates.data.schedule is deprecated since 2.4.0, each naming its replacement. They still ship and still compile, and since nothing rendered them no output moves. The guidance page points a caller at the rota model instead. Tests: seventeen, covering the empty document, every builder setter reaching what it builds, both halves of every isPresent(), the deep freeze — mutating the caller's own lists after the build, including the inner day lists — a short row, a blank day, a split day, and meaning held apart from text. Reactor gate green, 1251 tests. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 44 + docs/templates/which-template-system.md | 2 +- knowledge/api/templates.json | 1113 ++++++++++++++++- knowledge/api/templates.md | 104 +- .../data/rota/StructuredRotaDataTest.java | 244 ++++ .../document/templates/data/package-info.java | 3 +- .../templates/data/rota/RotaCovers.java | 34 + .../document/templates/data/rota/RotaDay.java | 48 + .../templates/data/rota/RotaFooter.java | 29 + .../templates/data/rota/RotaGroup.java | 35 + .../templates/data/rota/RotaLegend.java | 73 ++ .../templates/data/rota/RotaShift.java | 69 + .../templates/data/rota/RotaStaff.java | 45 + .../templates/data/rota/RotaVenue.java | 33 + .../templates/data/rota/RotaWeek.java | 30 + .../templates/data/rota/ShiftEmphasis.java | 27 + .../templates/data/rota/ShiftStatus.java | 39 + .../data/rota/StructuredRotaData.java | 147 +++ .../data/rota/StructuredRotaDocumentSpec.java | 32 + .../templates/data/rota/package-info.java | 27 + .../data/schedule/ScheduleAssignment.java | 6 + .../data/schedule/ScheduleCategory.java | 7 + .../templates/data/schedule/ScheduleDay.java | 7 + .../data/schedule/ScheduleMetricRow.java | 6 + .../data/schedule/SchedulePerson.java | 6 + .../templates/data/schedule/ScheduleSlot.java | 6 + .../data/schedule/WeeklyScheduleData.java | 7 + .../schedule/WeeklyScheduleDocumentSpec.java | 6 + .../templates/data/schedule/package-info.java | 15 +- 29 files changed, 2236 insertions(+), 8 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/data/rota/StructuredRotaDataTest.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaCovers.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaDay.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaFooter.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaGroup.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaLegend.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaShift.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaStaff.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaVenue.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaWeek.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/ShiftEmphasis.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/ShiftStatus.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/StructuredRotaData.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/StructuredRotaDocumentSpec.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/data/rota/package-info.java diff --git a/CHANGELOG.md b/CHANGELOG.md index a9771799b..4f2d9b990 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -176,6 +176,50 @@ follow semantic versioning; release dates are ISO 8601. the model whose shape it renders. Every component normalizes `null` to its empty form and freezes its collections, matching the family's existing records. +- **A rota document model, replacing `data.schedule`.** The library already shipped a + weekly-roster model — `templates.data.schedule`, public since the templates module was + extracted — and nothing ever rendered it, because it is not shaped like a rota is + drawn: its people are ordered by a token and grouped nowhere, so there are no staff + bands; an assignment cannot say that one half of a split day is drawn more quietly + than the other; a day heading is one string, which a design that raises the ordinal's + suffix cannot split; and a category carries three `java.awt.Color`s, which puts the + rendering decision in the document and stops two presets drawing the same rota in two + palettes. `templates.data.rota` is the replacement — `StructuredRotaData` (venue, + week, day columns, legend, staff bands, footer) wrapped by + `StructuredRotaDocumentSpec`, with `RotaVenue` / `RotaWeek` / `RotaDay` / + `RotaCovers` / `RotaLegend` / `RotaGroup` / `RotaStaff` / `RotaShift` / `RotaFooter` + and the `ShiftStatus` / `ShiftEmphasis` enumerations. +

      + **The grid is the document's, not the preset's.** `days()` is the columns and every + `RotaStaff.days()` runs in that same order, so a cell is found by position and a rota + of five days is as ordinary as one of seven — the span is a label the document + carries, not a shape the model imposes. A person's day is a *list* of entries rather + than one, which makes the two shapes a rota actually has — a blank cell and a split + shift — ordinary rather than special cases a preset has to invent a representation + for. `RotaStaff.day(int)` answers with nothing for a day the rota does not reach, so a + short row is a short row and not a broken document. +

      + **What a cell means is separate from what it prints.** `ShiftStatus` is the meaning a + preset colours by; the text is the word a particular site uses for it, so a rota + printing `A/L` and one printing `HOL` colour alike, and a legend entry pairs the two. + `ShiftEmphasis` says how loudly an entry is drawn — the day someone is off is what a + reader scans for, the hours they work is what they read once they have found the + person. There is deliberately no `marked(text, status)` factory that picks the + emphasis: a design that halves a day draws the halves differently, sometimes quiet + second and sometimes not, so `RotaShift.strong(...)` and `RotaShift.soft(...)` make + the caller say which. Every component normalizes `null` to its empty form and freezes + its collections, the inner day lists included, matching the family's existing records. + +### Deprecated + +- **`templates.data.schedule` — every type.** `WeeklyScheduleData`, + `WeeklyScheduleDocumentSpec`, `ScheduleDay`, `ScheduleCategory`, `SchedulePerson`, + `ScheduleAssignment`, `ScheduleSlot` and `ScheduleMetricRow` are deprecated since + 2.4.0 in favour of `templates.data.rota`, each naming its replacement. They still + ship and still compile; nothing in the library ever rendered them, so no output moves. + `docs/templates/which-template-system.md` now points a caller at the rota model + instead. + ### Templates - **The invoice presets set their page number in their own face.** A header or footer diff --git a/docs/templates/which-template-system.md b/docs/templates/which-template-system.md index 327b60986..50ae32543 100644 --- a/docs/templates/which-template-system.md +++ b/docs/templates/which-template-system.md @@ -88,7 +88,7 @@ migration is the theme + data-record swap: |---|---| | `InvoiceTemplateV1` / `InvoiceTemplateV2` | `templates.invoice.presets.ModernInvoice` — `create()` or `create(BrandTheme)`, data record `InvoiceDocumentSpec`. | | `ProposalTemplateV1` / `ProposalTemplateV2` | `templates.proposal.presets.ModernProposal` — same shape, data record `ProposalDocumentSpec`. | -| `WeeklyScheduleTemplateV1` | No 2.0 template yet. The `templates.data.schedule` records still ship; author the rendering on the canonical DSL. | +| `WeeklyScheduleTemplateV1` | No template yet. Model the rota on `templates.data.rota` (`StructuredRotaDocumentSpec`) and author the rendering on the canonical DSL. The `templates.data.schedule` records still ship but are **deprecated since 2.4.0**: they hold their colours in the data, know nothing of staff bands, and nothing ever rendered them. | ### Legacy PDF API → canonical DSL diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index daacbe0e2..15eb9c73d 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,10 +22,10 @@ "graph-compose-testing:sources" ], "counts": { - "types": 227, - "methods": 1276, - "constants": 177, - "generated": 689 + "types": 242, + "methods": 1344, + "constants": 188, + "generated": 747 }, "packages": [ { @@ -19177,6 +19177,1111 @@ } ] }, + { + "name": "com.demcha.compose.document.templates.data.rota", + "types": [ + { + "name": "RotaCovers", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaCovers", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaCovers", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "isPresent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "lunch", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "dinner", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "RotaDay", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaDay", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaDay", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "RotaCovers", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "RotaDay", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "ordinal" + }, + { + "type": "String", + "name": "ordinalSuffix" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "ordinal", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "ordinalSuffix", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "note", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "covers", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "RotaCovers", + "params": [] + } + ] + }, + { + "name": "RotaFooter", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaFooter", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaFooter", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "isPresent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "note", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "RotaGroup", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaGroup", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaGroup", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "RotaGroup", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "List", + "name": "staff" + } + ] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "staff", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "RotaLegend", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaLegend", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaLegend", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "RotaLegend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "List", + "name": "entries" + } + ] + }, + { + "kind": "method", + "name": "isPresent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "coversLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "coversLunchLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "coversDinnerLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "entries", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "RotaLegend.Entry", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaLegend$Entry", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Entry", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "ShiftStatus", + "name": null + } + ] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "status", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ShiftStatus", + "params": [] + } + ] + }, + { + "name": "RotaShift", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaShift", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaShift", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "ShiftStatus", + "name": null + }, + { + "type": "ShiftEmphasis", + "name": null + } + ] + }, + { + "kind": "method", + "name": "hours", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "RotaShift", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "strong", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "RotaShift", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "ShiftStatus", + "name": "status" + } + ] + }, + { + "kind": "method", + "name": "soft", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "RotaShift", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "ShiftStatus", + "name": "status" + } + ] + }, + { + "kind": "method", + "name": "text", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "status", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ShiftStatus", + "params": [] + }, + { + "kind": "method", + "name": "emphasis", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ShiftEmphasis", + "params": [] + } + ] + }, + { + "name": "RotaStaff", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaStaff", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaStaff", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List>", + "name": null + } + ] + }, + { + "kind": "method", + "name": "day", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "int", + "name": "index" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "days", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List>", + "params": [] + } + ] + }, + { + "name": "RotaVenue", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaVenue", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaVenue", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "isPresent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "wordmark", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "wordmarkSub", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "footerName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "RotaWeek", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaWeek", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaWeek", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "isPresent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "rangeLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ShiftEmphasis", + "binaryName": "com.demcha.compose.document.templates.data.rota.ShiftEmphasis", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "STRONG", + "static": true, + "origin": "generated", + "type": "ShiftEmphasis" + }, + { + "kind": "constant", + "name": "SOFT", + "static": true, + "origin": "generated", + "type": "ShiftEmphasis" + }, + { + "kind": "constant", + "name": "PLAIN", + "static": true, + "origin": "generated", + "type": "ShiftEmphasis" + } + ] + }, + { + "name": "ShiftStatus", + "binaryName": "com.demcha.compose.document.templates.data.rota.ShiftStatus", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "REQUEST", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "OFF", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "HOLIDAY", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "STOCK", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "STANDBY", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "TRAINING", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "SUPPORT", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + } + ] + }, + { + "name": "StructuredRotaData", + "binaryName": "com.demcha.compose.document.templates.data.rota.StructuredRotaData", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "StructuredRotaData", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "RotaVenue", + "name": null + }, + { + "type": "RotaWeek", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "RotaLegend", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "RotaFooter", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData.Builder", + "params": [] + }, + { + "kind": "method", + "name": "venue", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "RotaVenue", + "params": [] + }, + { + "kind": "method", + "name": "week", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "RotaWeek", + "params": [] + }, + { + "kind": "method", + "name": "days", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "RotaLegend", + "params": [] + }, + { + "kind": "method", + "name": "groups", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "footer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "RotaFooter", + "params": [] + } + ] + }, + { + "name": "StructuredRotaData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.rota.StructuredRotaData$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "venue", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData.Builder", + "params": [ + { + "type": "RotaVenue", + "name": "venue" + } + ] + }, + { + "kind": "method", + "name": "week", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData.Builder", + "params": [ + { + "type": "RotaWeek", + "name": "week" + } + ] + }, + { + "kind": "method", + "name": "days", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData.Builder", + "params": [ + { + "type": "List", + "name": "days" + } + ] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData.Builder", + "params": [ + { + "type": "RotaLegend", + "name": "legend" + } + ] + }, + { + "kind": "method", + "name": "groups", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData.Builder", + "params": [ + { + "type": "List", + "name": "groups" + } + ] + }, + { + "kind": "method", + "name": "footer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData.Builder", + "params": [ + { + "type": "RotaFooter", + "name": "footer" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData", + "params": [] + } + ] + }, + { + "name": "StructuredRotaDocumentSpec", + "binaryName": "com.demcha.compose.document.templates.data.rota.StructuredRotaDocumentSpec", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "StructuredRotaDocumentSpec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "StructuredRotaData", + "name": null + } + ] + }, + { + "kind": "method", + "name": "from", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaDocumentSpec", + "params": [ + { + "type": "StructuredRotaData", + "name": "rota" + } + ] + }, + { + "kind": "method", + "name": "rota", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "StructuredRotaData", + "params": [] + } + ] + } + ] + }, { "name": "com.demcha.compose.document.templates.data.schedule", "types": [ diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index 047c1253f..db474bb92 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 227 · methods: 1276 · constants: 177 · compiler-generated members: 689 +Types: 242 · methods: 1344 · constants: 188 · compiler-generated members: 747 ## com.demcha.compose.document.templates.api @@ -1615,6 +1615,108 @@ Types: 227 · methods: 1276 · constants: 177 · compiler-generated members: 689 - `StructuredProposalDocumentSpec from(StructuredProposalData proposal)` - `StructuredProposalData proposal()` +## com.demcha.compose.document.templates.data.rota + +### RotaCovers (record) +- `new RotaCovers(String, String)` +- `boolean isPresent()` +- `String lunch()` +- `String dinner()` + +### RotaDay (record) +- `new RotaDay(String, String, String, String, RotaCovers)` +- `new RotaDay(String name, String ordinal, String ordinalSuffix)` +- `String name()` +- `String ordinal()` +- `String ordinalSuffix()` +- `String note()` +- `RotaCovers covers()` + +### RotaFooter (record) +- `new RotaFooter(String)` +- `boolean isPresent()` +- `String note()` + +### RotaGroup (record) +- `new RotaGroup(String, String, List)` +- `new RotaGroup(String label, List staff)` +- `String label()` +- `String icon()` +- `List staff()` + +### RotaLegend (record) +- `new RotaLegend(String, String, String, String, List)` +- `new RotaLegend(String label, List entries)` +- `boolean isPresent()` +- `String label()` +- `String coversLabel()` +- `String coversLunchLabel()` +- `String coversDinnerLabel()` +- `List entries()` + +### RotaLegend.Entry (record) +- `new Entry(String, ShiftStatus)` +- `String label()` +- `ShiftStatus status()` + +### RotaShift (record) +- `new RotaShift(String, ShiftStatus, ShiftEmphasis)` +- `RotaShift hours(String text)` +- `RotaShift strong(String text, ShiftStatus status)` +- `RotaShift soft(String text, ShiftStatus status)` +- `String text()` +- `ShiftStatus status()` +- `ShiftEmphasis emphasis()` + +### RotaStaff (record) +- `new RotaStaff(String, List>)` +- `List day(int index)` +- `String name()` +- `List> days()` + +### RotaVenue (record) +- `new RotaVenue(String, String, String)` +- `boolean isPresent()` +- `String wordmark()` +- `String wordmarkSub()` +- `String footerName()` + +### RotaWeek (record) +- `new RotaWeek(String, String)` +- `boolean isPresent()` +- `String title()` +- `String rangeLabel()` + +### ShiftEmphasis (enum) +- constants: `STRONG`, `SOFT`, `PLAIN` + +### ShiftStatus (enum) +- constants: `NONE`, `REQUEST`, `OFF`, `HOLIDAY`, `STOCK`, `STANDBY`, `TRAINING`, `SUPPORT` + +### StructuredRotaData (record) +- `new StructuredRotaData(RotaVenue, RotaWeek, List, RotaLegend, List, RotaFooter)` +- `StructuredRotaData.Builder builder()` +- `RotaVenue venue()` +- `RotaWeek week()` +- `List days()` +- `RotaLegend legend()` +- `List groups()` +- `RotaFooter footer()` + +### StructuredRotaData.Builder (class) +- `StructuredRotaData.Builder venue(RotaVenue venue)` +- `StructuredRotaData.Builder week(RotaWeek week)` +- `StructuredRotaData.Builder days(List days)` +- `StructuredRotaData.Builder legend(RotaLegend legend)` +- `StructuredRotaData.Builder groups(List groups)` +- `StructuredRotaData.Builder footer(RotaFooter footer)` +- `StructuredRotaData build()` + +### StructuredRotaDocumentSpec (record) +- `new StructuredRotaDocumentSpec(StructuredRotaData)` +- `StructuredRotaDocumentSpec from(StructuredRotaData rota)` +- `StructuredRotaData rota()` + ## com.demcha.compose.document.templates.data.schedule ### ScheduleAssignment (record) diff --git a/qa/src/test/java/com/demcha/compose/document/templates/data/rota/StructuredRotaDataTest.java b/qa/src/test/java/com/demcha/compose/document/templates/data/rota/StructuredRotaDataTest.java new file mode 100644 index 000000000..5f2e89c49 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/data/rota/StructuredRotaDataTest.java @@ -0,0 +1,244 @@ +package com.demcha.compose.document.templates.data.rota; + +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Pins the rota model's two contracts: a partial document composes without null + * checks in preset code, and nothing a caller keeps a reference to can change + * the document afterwards. + */ +class StructuredRotaDataTest { + + @Test + void anEmptyRotaHasEveryComponentRatherThanNulls() { + // A preset reads six components and drawing guards on each of them is + // six chances to forget one. The model is what makes that unnecessary. + StructuredRotaData rota = StructuredRotaData.builder().build(); + assertThat(rota.venue()).isNotNull(); + assertThat(rota.week()).isNotNull(); + assertThat(rota.days()).isEmpty(); + assertThat(rota.legend()).isNotNull(); + assertThat(rota.groups()).isEmpty(); + assertThat(rota.footer()).isNotNull(); + assertThat(rota.venue().isPresent()).isFalse(); + assertThat(rota.week().isPresent()).isFalse(); + assertThat(rota.legend().isPresent()).isFalse(); + assertThat(rota.footer().isPresent()).isFalse(); + assertThat(StructuredRotaDocumentSpec.from(null).rota()).isNotNull(); + } + + @Test + void everyBuilderSetterReachesTheDocumentItBuilds() { + // Without this, a setter that dropped its argument passes the suite: + // the empty-rota test above asserts only the absent half of each block. + RotaVenue venue = new RotaVenue("HARBOUR", "Quayside", "Harbour Quayside"); + RotaWeek week = new RotaWeek("WEEKLY ROTA", "31 Aug - 6 Sep"); + RotaLegend legend = new RotaLegend("STATUS", "COVERS", "L", "D", + List.of(new RotaLegend.Entry("OFF", ShiftStatus.OFF))); + RotaFooter footer = new RotaFooter("Swaps to the duty manager by Thursday."); + RotaDay day = new RotaDay("MONDAY", "31", "ST", "Pianist 18:30", + new RotaCovers("104", "50")); + RotaGroup group = new RotaGroup("BAR", "glass", + List.of(new RotaStaff("Priya", List.of(List.of(RotaShift.hours("09:00-17:00")))))); + + StructuredRotaData rota = StructuredRotaData.builder() + .venue(venue).week(week).days(List.of(day)) + .legend(legend).groups(List.of(group)).footer(footer) + .build(); + + assertThat(rota.venue()).isEqualTo(venue); + assertThat(rota.week()).isEqualTo(week); + assertThat(rota.days()).containsExactly(day); + assertThat(rota.legend()).isEqualTo(legend); + assertThat(rota.groups()).containsExactly(group); + assertThat(rota.footer()).isEqualTo(footer); + assertThat(StructuredRotaDocumentSpec.from(rota).rota()).isEqualTo(rota); + } + + @Test + void aStatedBlockReportsItselfPresent() { + // The other half of every isPresent(): all three would pass the empty + // case if they simply always answered false. + assertThat(new RotaVenue("HARBOUR", "", "").isPresent()).isTrue(); + assertThat(new RotaVenue("", "Quayside", "").isPresent()).isTrue(); + assertThat(new RotaVenue("", "", "Harbour Quayside").isPresent()).isTrue(); + assertThat(new RotaWeek("WEEKLY ROTA", "").isPresent()).isTrue(); + assertThat(new RotaWeek("", "31 Aug - 6 Sep").isPresent()).isTrue(); + assertThat(new RotaFooter("Swaps to the duty manager.").isPresent()).isTrue(); + assertThat(new RotaLegend("STATUS", List.of()).isPresent()).isTrue(); + assertThat(new RotaLegend("", List.of( + new RotaLegend.Entry("OFF", ShiftStatus.OFF))).isPresent()).isTrue(); + } + + @Test + void aDayCarriesItsNoteAndItsCovers() { + RotaDay day = new RotaDay("MONDAY", "31", "ST", "Pianist 18:30", + new RotaCovers("104", "50")); + assertThat(day.note()).isEqualTo("Pianist 18:30"); + assertThat(day.covers().lunch()).isEqualTo("104"); + assertThat(day.covers().dinner()).isEqualTo("50"); + } + + @Test + void theCoversRowCarriesItsOwnLabels() { + // The covers row is a label and two marks, and all three are the + // document's words rather than the preset's. + RotaLegend legend = new RotaLegend("STATUS LEGEND", "COVERS", "L", "D", List.of()); + assertThat(legend.coversLabel()).isEqualTo("COVERS"); + assertThat(legend.coversLunchLabel()).isEqualTo("L"); + assertThat(legend.coversDinnerLabel()).isEqualTo("D"); + } + + @Test + void aDayIsAListSoAnEmptyDayAndASplitDayAreBothOrdinary() { + // The reason days() is a list of lists: a blank cell and a split shift + // are the two shapes a rota actually has, and neither is an exception. + RotaStaff staff = new RotaStaff("Priya", List.of( + List.of(), + List.of(RotaShift.hours("09:00-18:00")), + List.of(RotaShift.hours("12:00-16:00"), + new RotaShift("16:00-22:00", ShiftStatus.NONE, ShiftEmphasis.SOFT)))); + assertThat(staff.day(0)).isEmpty(); + assertThat(staff.day(1)).hasSize(1); + assertThat(staff.day(2)).hasSize(2); + } + + @Test + void askingForADayTheRotaDoesNotReachIsNotAnError() { + // A preset walks the rota's own day columns, and a person listed with + // fewer days than the sheet has is a short row, not a broken document. + RotaStaff staff = new RotaStaff("Priya", List.of(List.of(RotaShift.hours("09:00-17:00")))); + assertThat(staff.day(6)).isEmpty(); + assertThat(staff.day(-1)).isEmpty(); + } + + @Test + void theInnerDayListsAreFrozenAndNotOnlyTheOuterOne() { + // A frozen outer list of mutable days is not a frozen rota: the cell a + // preset reads twice has to be the cell the caller handed over. + List monday = new ArrayList<>(List.of(RotaShift.hours("09:00-17:00"))); + List> days = new ArrayList<>(List.of(monday)); + RotaStaff staff = new RotaStaff("Priya", days); + + monday.add(RotaShift.strong("OFF", ShiftStatus.OFF)); + days.add(List.of()); + + assertThat(staff.days()).hasSize(1); + assertThat(staff.day(0)).hasSize(1); + assertThatThrownBy(() -> staff.day(0).add(RotaShift.hours("18:00-23:00"))) + .isInstanceOf(UnsupportedOperationException.class); + } + + @Test + void aShiftSaysWhatItMeansSeparatelyFromWhatItPrints() { + // Two sites print different words for the same thing; a preset colours + // by the meaning, so both colour alike. + RotaShift annualLeave = RotaShift.strong("A/L", ShiftStatus.HOLIDAY); + RotaShift holiday = RotaShift.strong("HOL", ShiftStatus.HOLIDAY); + assertThat(annualLeave.status()).isEqualTo(holiday.status()); + assertThat(annualLeave.text()).isNotEqualTo(holiday.text()); + assertThat(annualLeave.emphasis()).isEqualTo(ShiftEmphasis.STRONG); + } + + @Test + void anEntryStatesItsOwnEmphasisBecauseNoFactoryCanGuessIt() { + // A split day is drawn loud then quiet, and sometimes the other way, + // and sometimes loud twice — so there is no marked(text, status) that + // picks for the caller. Both halves are named. + assertThat(RotaShift.strong("09:00-16:00", ShiftStatus.STOCK).emphasis()) + .isEqualTo(ShiftEmphasis.STRONG); + assertThat(RotaShift.soft("16:00-22:00", ShiftStatus.STOCK).emphasis()) + .isEqualTo(ShiftEmphasis.SOFT); + assertThat(RotaShift.soft("16:00-22:00", ShiftStatus.STOCK).status()) + .isEqualTo(ShiftStatus.STOCK); + } + + @Test + void aShiftThatStatesNothingIsPlainAndUnmarked() { + RotaShift shift = new RotaShift(null, null, null); + assertThat(shift.text()).isEmpty(); + assertThat(shift.status()).isEqualTo(ShiftStatus.NONE); + assertThat(shift.emphasis()).isEqualTo(ShiftEmphasis.PLAIN); + assertThat(RotaShift.hours("09:00-17:00").emphasis()).isEqualTo(ShiftEmphasis.PLAIN); + } + + @Test + void aBandStatesItsOwnMarkOrNone() { + assertThat(new RotaGroup("MANAGEMENT", List.of()).icon()).isEmpty(); + assertThat(new RotaGroup("BAR", "glass", List.of()).icon()).isEqualTo("glass"); + } + + @Test + void aDaysDateIsThreeFieldsSoASuffixCanBeSetApart() { + // A design that raises the suffix cannot split a string that arrived + // joined, so the day never joins them itself. + RotaDay day = new RotaDay("MONDAY", "31", "ST"); + assertThat(day.name()).isEqualTo("MONDAY"); + assertThat(day.ordinal()).isEqualTo("31"); + assertThat(day.ordinalSuffix()).isEqualTo("ST"); + assertThat(day.note()).isEmpty(); + assertThat(day.covers().isPresent()).isFalse(); + } + + @Test + void coversAreTwoCountsBecauseOneStringLosesWhichIsWhich() { + RotaCovers covers = new RotaCovers("104", "50"); + assertThat(covers.isPresent()).isTrue(); + assertThat(covers.lunch()).isEqualTo("104"); + assertThat(covers.dinner()).isEqualTo("50"); + assertThat(new RotaCovers(null, null).isPresent()).isFalse(); + } + + @Test + void aLegendEntryPairsThePrintedWordWithTheStatusItStandsFor() { + RotaLegend legend = new RotaLegend("STATUS", List.of( + new RotaLegend.Entry("A/L", ShiftStatus.HOLIDAY), + new RotaLegend.Entry("OFF", ShiftStatus.OFF))); + assertThat(legend.isPresent()).isTrue(); + assertThat(legend.coversLabel()).isEmpty(); + assertThat(legend.entries()).extracting(RotaLegend.Entry::status) + .containsExactly(ShiftStatus.HOLIDAY, ShiftStatus.OFF); + assertThat(new RotaLegend.Entry("?", null).status()).isEqualTo(ShiftStatus.NONE); + } + + @Test + void theBuildersListsAreCopiedRatherThanKept() { + List days = new ArrayList<>(List.of(new RotaDay("MONDAY", "31", "st"))); + List groups = new ArrayList<>(List.of(new RotaGroup("BAR", List.of()))); + StructuredRotaData rota = StructuredRotaData.builder() + .days(days) + .groups(groups) + .build(); + + days.add(new RotaDay("TUESDAY", "1", "st")); + groups.add(new RotaGroup("KITCHEN", List.of())); + + assertThat(rota.days()).hasSize(1); + assertThat(rota.groups()).hasSize(1); + assertThatThrownBy(() -> rota.days().add(new RotaDay("TUESDAY", "1", "ST"))) + .isInstanceOf(UnsupportedOperationException.class); + assertThatThrownBy(() -> rota.groups().add(new RotaGroup("KITCHEN", List.of()))) + .isInstanceOf(UnsupportedOperationException.class); + } + + @Test + void staffAndTheirGroupsAreReadInTheOrderTheyArePrinted() { + StructuredRotaData rota = StructuredRotaData.builder() + .groups(List.of( + new RotaGroup("MANAGEMENT", List.of(new RotaStaff("Priya", List.of()))), + new RotaGroup("BAR", "glass", List.of( + new RotaStaff("Tomas", List.of()), + new RotaStaff("Lena", List.of()))))) + .build(); + assertThat(rota.groups()).extracting(RotaGroup::label) + .containsExactly("MANAGEMENT", "BAR"); + assertThat(rota.groups().get(1).staff()).extracting(RotaStaff::name) + .containsExactly("Tomas", "Lena"); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/data/package-info.java index bc0c92ede..fc84a62df 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/package-info.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/package-info.java @@ -3,6 +3,7 @@ * {@code document.templates} layer. * *

      Concrete public data types live in child packages such as - * {@code data.invoice}, {@code data.proposal}, and {@code data.schedule}.

      + * {@code data.invoice}, {@code data.proposal}, and {@code data.rota}. + * {@code data.schedule} is deprecated in favour of {@code data.rota}.

      */ package com.demcha.compose.document.templates.data; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaCovers.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaCovers.java new file mode 100644 index 000000000..116f815cd --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaCovers.java @@ -0,0 +1,34 @@ +package com.demcha.compose.document.templates.data.rota; + +import java.util.Objects; + +/** + * How many people a day is expecting, split across the two services. + * + *

      Two fields and not one string. The counts arrive from the booking system + * as a pair, and a rota that prints {@code "104 / 50"} leaves the reader to know + * from somewhere else which half is which. Split, the preset can label them.

      + * + * @param lunch the earlier service's count, as printed + * @param dinner the later service's count, as printed + * @since 2.4.0 + */ +public record RotaCovers(String lunch, String dinner) { + + /** + * Normalizes optional fields. + */ + public RotaCovers { + lunch = Objects.requireNonNullElse(lunch, ""); + dinner = Objects.requireNonNullElse(dinner, ""); + } + + /** + * Whether the day states either count. + * + * @return {@code true} when there is anything to print + */ + public boolean isPresent() { + return !lunch.isBlank() || !dinner.isBlank(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaDay.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaDay.java new file mode 100644 index 000000000..c7961df41 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaDay.java @@ -0,0 +1,48 @@ +package com.demcha.compose.document.templates.data.rota; + +import java.util.Objects; + +/** + * One day of the rota: its heading, whatever is happening on it, and how busy + * it is expected to be. + * + *

      The date is three fields rather than one because a heading sets them + * differently: {@code MONDAY} large, {@code 31} beside it, and {@code ST} + * smaller and raised. A preset that wants them joined can join them; one that + * wants the suffix raised cannot split a string that arrived joined.

      + * + * @param name the weekday, as printed + * @param ordinal the day of the month, as printed + * @param ordinalSuffix the ordinal's tail, cased as the sheet prints it — + * {@code ST}, {@code nd} — which a design may set apart; + * blank when it does not + * @param note what else is happening that day; blank when nothing is + * @param covers the day's expected covers; never {@code null} + * @since 2.4.0 + */ +public record RotaDay(String name, String ordinal, String ordinalSuffix, String note, + RotaCovers covers) { + + /** + * Normalizes optional fields. + */ + public RotaDay { + name = Objects.requireNonNullElse(name, ""); + ordinal = Objects.requireNonNullElse(ordinal, ""); + ordinalSuffix = Objects.requireNonNullElse(ordinalSuffix, ""); + note = Objects.requireNonNullElse(note, ""); + covers = covers == null ? new RotaCovers("", "") : covers; + } + + /** + * A day with a heading and nothing else stated. + * + * @param name the weekday + * @param ordinal the day of the month + * @param ordinalSuffix the ordinal's tail + */ + public RotaDay(String name, String ordinal, String ordinalSuffix) { + this(name, ordinal, ordinalSuffix, "", null); + } + +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaFooter.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaFooter.java new file mode 100644 index 000000000..e9803a857 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaFooter.java @@ -0,0 +1,29 @@ +package com.demcha.compose.document.templates.data.rota; + +import java.util.Objects; + +/** + * The standing note the rota closes with — the line about swaps, or notice, or + * who to tell. + * + * @param note the note, as printed; blank when the rota closes with none + * @since 2.4.0 + */ +public record RotaFooter(String note) { + + /** + * Normalizes optional fields. + */ + public RotaFooter { + note = Objects.requireNonNullElse(note, ""); + } + + /** + * Whether there is anything to draw. + * + * @return {@code true} when the foot states a note + */ + public boolean isPresent() { + return !note.isBlank(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaGroup.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaGroup.java new file mode 100644 index 000000000..73b772dff --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaGroup.java @@ -0,0 +1,35 @@ +package com.demcha.compose.document.templates.data.rota; + +import java.util.List; +import java.util.Objects; + +/** + * A band of the rota: the people who do one kind of job, under the name of it. + * + * @param label the band's name, as the rota prints it + * @param icon the mark the band opens with, from the preset's own vocabulary; + * blank for a band that opens with none + * @param staff the people in it, in the order they are listed + * @since 2.4.0 + */ +public record RotaGroup(String label, String icon, List staff) { + + /** + * Normalizes optional fields and freezes the staff list. + */ + public RotaGroup { + label = Objects.requireNonNullElse(label, ""); + icon = Objects.requireNonNullElse(icon, ""); + staff = List.copyOf(Objects.requireNonNullElse(staff, List.of())); + } + + /** + * A band that opens with no mark. + * + * @param label the band's name + * @param staff the people in it + */ + public RotaGroup(String label, List staff) { + this(label, "", staff); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaLegend.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaLegend.java new file mode 100644 index 000000000..0ae646c24 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaLegend.java @@ -0,0 +1,73 @@ +package com.demcha.compose.document.templates.data.rota; + +import java.util.List; +import java.util.Objects; + +/** + * The strip that tells a reader what the colours mean, and the labels on the + * covers row beneath it. + * + *

      The words are the document's and the colours are the preset's: an entry + * pairs the word a site uses with the {@link ShiftStatus} it stands for, so a + * rota that prints {@code A/L} and one that prints {@code HOL} both colour the + * same.

      + * + * @param label the strip's own label; blank for a strip that + * carries none + * @param coversLabel the label on the covers row + * @param coversLunchLabel the mark on the earlier service's count + * @param coversDinnerLabel the mark on the later service's count + * @param entries the statuses the rota documents, in order + * @since 2.4.0 + */ +public record RotaLegend(String label, String coversLabel, String coversLunchLabel, + String coversDinnerLabel, List entries) { + + /** + * Normalizes optional fields and freezes the entry list. + */ + public RotaLegend { + label = Objects.requireNonNullElse(label, ""); + coversLabel = Objects.requireNonNullElse(coversLabel, ""); + coversLunchLabel = Objects.requireNonNullElse(coversLunchLabel, ""); + coversDinnerLabel = Objects.requireNonNullElse(coversDinnerLabel, ""); + entries = List.copyOf(Objects.requireNonNullElse(entries, List.of())); + } + + /** + * A legend with entries and no covers row. + * + * @param label the strip's label + * @param entries the statuses it documents + */ + public RotaLegend(String label, List entries) { + this(label, "", "", "", entries); + } + + /** + * Whether there is anything to draw. + * + * @return {@code true} when the legend states a label or any entry + */ + public boolean isPresent() { + return !label.isBlank() || !entries.isEmpty(); + } + + /** + * One swatch: the word a site prints, and the status whose colour it shows. + * + * @param label the word, as printed + * @param status the status it stands for; {@code null} normalizes to + * {@link ShiftStatus#NONE} + */ + public record Entry(String label, ShiftStatus status) { + + /** + * Normalizes optional fields. + */ + public Entry { + label = Objects.requireNonNullElse(label, ""); + status = Objects.requireNonNullElse(status, ShiftStatus.NONE); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaShift.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaShift.java new file mode 100644 index 000000000..9bdeabee7 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaShift.java @@ -0,0 +1,69 @@ +package com.demcha.compose.document.templates.data.rota; + +import java.util.Objects; + +/** + * One entry in one cell of a rota: what it says, what it means, and how loudly + * it says it. + * + *

      The text is what the reader sees — a span of hours where the day is + * worked, or the word for the status where it is not. Text and status are kept + * apart because they answer different questions: two sites may print + * {@code "A/L"} and {@code "HOL"} for the same {@link ShiftStatus#HOLIDAY}, and + * a preset that colours by status keeps working for both.

      + * + * @param text what the cell prints + * @param status what the entry means; {@code null} normalizes to + * {@link ShiftStatus#NONE} + * @param emphasis how much of a mark it makes; {@code null} normalizes to + * {@link ShiftEmphasis#PLAIN} + * @since 2.4.0 + */ +public record RotaShift(String text, ShiftStatus status, ShiftEmphasis emphasis) { + + /** + * Normalizes optional fields. + */ + public RotaShift { + text = Objects.requireNonNullElse(text, ""); + status = Objects.requireNonNullElse(status, ShiftStatus.NONE); + emphasis = Objects.requireNonNullElse(emphasis, ShiftEmphasis.PLAIN); + } + + /** + * A worked span of hours, printed as it stands and marked in no way. + * + * @param text the hours as the rota prints them + * @return the shift + */ + public static RotaShift hours(String text) { + return new RotaShift(text, ShiftStatus.NONE, ShiftEmphasis.PLAIN); + } + + /** + * An entry that carries a status, drawn as loudly as the preset draws one. + * + * @param text what the cell prints + * @param status what the entry means + * @return the shift + */ + public static RotaShift strong(String text, ShiftStatus status) { + return new RotaShift(text, status, ShiftEmphasis.STRONG); + } + + /** + * The same entry, drawn quietly. + * + *

      There is no single {@code marked(text, status)} factory that picks the + * emphasis for you: a design that halves a day draws the two halves + * differently, and a factory that chose {@link ShiftEmphasis#STRONG} for + * both would be wrong in a way only a pixel diff catches.

      + * + * @param text what the cell prints + * @param status what the entry means + * @return the shift + */ + public static RotaShift soft(String text, ShiftStatus status) { + return new RotaShift(text, status, ShiftEmphasis.SOFT); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaStaff.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaStaff.java new file mode 100644 index 000000000..ea2480f04 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaStaff.java @@ -0,0 +1,45 @@ +package com.demcha.compose.document.templates.data.rota; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * One person, and what they are down for on each day of the rota. + * + *

      {@code days} is a list of days, and each day is a list of what that person + * does on it — which is not the same as one shift each. A day with nothing in it + * is a legal blank cell rather than a hole in the data, and a day with two + * entries is a split shift. Modelling a day as a single shift would make the + * split the exception a preset has to invent a representation for.

      + * + * @param name the person, as the rota prints them + * @param days one list of entries per day, in the order the rota's days run + * @since 2.4.0 + */ +public record RotaStaff(String name, List> days) { + + /** + * Normalizes optional fields and freezes the day lists, including the inner + * ones — a frozen outer list of mutable days is not a frozen rota. + */ + public RotaStaff { + name = Objects.requireNonNullElse(name, ""); + List> stated = Objects.requireNonNullElse(days, List.of()); + List> copied = new ArrayList<>(stated.size()); + for (List day : stated) { + copied.add(List.copyOf(Objects.requireNonNullElse(day, List.of()))); + } + days = List.copyOf(copied); + } + + /** + * What this person is down for on one day. + * + * @param index the day's position in the rota's own day list + * @return the entries, or nothing when the rota does not reach that day + */ + public List day(int index) { + return index >= 0 && index < days.size() ? days.get(index) : List.of(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaVenue.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaVenue.java new file mode 100644 index 000000000..efdbdf71b --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaVenue.java @@ -0,0 +1,33 @@ +package com.demcha.compose.document.templates.data.rota; + +import java.util.Objects; + +/** + * Who the rota is for: the mark it opens with and the name it signs off with. + * + * @param wordmark the name as the lockup sets it + * @param wordmarkSub the line under it — a site, a branch, a department; blank + * when the lockup is one line + * @param footerName the name the foot repeats; blank when the foot names none + * @since 2.4.0 + */ +public record RotaVenue(String wordmark, String wordmarkSub, String footerName) { + + /** + * Normalizes optional fields. + */ + public RotaVenue { + wordmark = Objects.requireNonNullElse(wordmark, ""); + wordmarkSub = Objects.requireNonNullElse(wordmarkSub, ""); + footerName = Objects.requireNonNullElse(footerName, ""); + } + + /** + * Whether there is anything to draw. + * + * @return {@code true} when the venue states any of its three parts + */ + public boolean isPresent() { + return !wordmark.isBlank() || !wordmarkSub.isBlank() || !footerName.isBlank(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaWeek.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaWeek.java new file mode 100644 index 000000000..3a82fb0b1 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/RotaWeek.java @@ -0,0 +1,30 @@ +package com.demcha.compose.document.templates.data.rota; + +import java.util.Objects; + +/** + * Which week the rota covers. + * + * @param title the sheet's own title; blank when the design carries none + * @param rangeLabel the span the week runs, as printed + * @since 2.4.0 + */ +public record RotaWeek(String title, String rangeLabel) { + + /** + * Normalizes optional fields. + */ + public RotaWeek { + title = Objects.requireNonNullElse(title, ""); + rangeLabel = Objects.requireNonNullElse(rangeLabel, ""); + } + + /** + * Whether there is anything to draw. + * + * @return {@code true} when the week states a title or a range + */ + public boolean isPresent() { + return !title.isBlank() || !rangeLabel.isBlank(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/ShiftEmphasis.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/ShiftEmphasis.java new file mode 100644 index 000000000..19dd649b5 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/ShiftEmphasis.java @@ -0,0 +1,27 @@ +package com.demcha.compose.document.templates.data.rota; + +/** + * How much of a mark a shift makes on the cell it sits in. + * + *

      A rota is read across a row at a glance, so not every entry can shout. The + * document says which ones should: the day someone is off is the thing a reader + * scans for, the hours they work are the thing they read once they have found + * the person.

      + * + * @since 2.4.0 + */ +public enum ShiftEmphasis { + + /** The loudest form the preset has — a solid mark in the status's colour. */ + STRONG, + + /** + * A quieter form of the same mark. Which entry gets it is the document's + * decision and not its position: a split day is often loud then quiet, but + * the reverse happens too, and so does loud twice. + */ + SOFT, + + /** No mark at all: the text alone, on the cell. */ + PLAIN +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/ShiftStatus.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/ShiftStatus.java new file mode 100644 index 000000000..8d74c1b1e --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/ShiftStatus.java @@ -0,0 +1,39 @@ +package com.demcha.compose.document.templates.data.rota; + +/** + * What a cell on a rota says about the shift in it. + * + *

      A status is a meaning, not a colour: the document says a day is holiday + * and the preset decides what holiday looks like. That is why the statuses are + * an enumeration rather than the colour strings a spreadsheet would carry — two + * presets can render the same rota in two palettes, and a status a preset does + * not style still says what it means to a reader of the legend.

      + * + * @since 2.4.0 + */ +public enum ShiftStatus { + + /** A worked shift, printed as the hours themselves and carrying no status. */ + NONE, + + /** Time the person has asked for and which is not yet granted. */ + REQUEST, + + /** A day not worked. */ + OFF, + + /** Booked leave. */ + HOLIDAY, + + /** A shift spent on stock rather than on the floor. */ + STOCK, + + /** On call: not rostered, but reachable. */ + STANDBY, + + /** A shift spent training or being trained. */ + TRAINING, + + /** Covering another team or another site. */ + SUPPORT +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/StructuredRotaData.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/StructuredRotaData.java new file mode 100644 index 000000000..f4895a641 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/StructuredRotaData.java @@ -0,0 +1,147 @@ +package com.demcha.compose.document.templates.data.rota; + +import java.util.List; + +/** + * Display-oriented input for a staff rota: who works when, over one span of + * days. + * + *

      The shape is a grid the document owns rather than one the preset infers. + * {@link #days()} is the columns — the sheet's days, in order — and every + * {@link RotaStaff#days()} runs in that same order, so a cell is found by + * position and a rota of five days is as ordinary as one of seven. Nothing here + * says a week.

      + * + *

      Every component normalizes {@code null} to its empty form and freezes its + * collections, so a partial rota composes without null checks in preset code. + * The section records construct positionally; this builder is where a document + * is assembled.

      + * + * @param venue who the rota is for + * @param week which span it covers + * @param days the day columns, in the order they are printed + * @param legend what the marks mean, and the labels on the covers row + * @param groups the bands of staff, in the order they are printed + * @param footer the standing note the sheet closes with + * @since 2.4.0 + */ +public record StructuredRotaData( + RotaVenue venue, + RotaWeek week, + List days, + RotaLegend legend, + List groups, + RotaFooter footer) { + + /** + * Normalizes absent components to their empty forms and freezes the lists. + */ + public StructuredRotaData { + venue = venue == null ? new RotaVenue(null, null, null) : venue; + week = week == null ? new RotaWeek(null, null) : week; + days = List.copyOf(days == null ? List.of() : days); + legend = legend == null ? new RotaLegend(null, null, null, null, null) : legend; + groups = List.copyOf(groups == null ? List.of() : groups); + footer = footer == null ? new RotaFooter(null) : footer; + } + + /** + * Starts a fluent rota data builder. + * + * @return rota data builder + */ + public static Builder builder() { + return new Builder(); + } + + /** + * Fluent builder for complete rota content. + */ + public static final class Builder { + + private RotaVenue venue; + private RotaWeek week; + private List days = List.of(); + private RotaLegend legend; + private List groups = List.of(); + private RotaFooter footer; + + private Builder() { + } + + /** + * Sets who the rota is for. + * + * @param venue the venue block + * @return this builder + */ + public Builder venue(RotaVenue venue) { + this.venue = venue; + return this; + } + + /** + * Sets which span the rota covers. + * + * @param week the week block + * @return this builder + */ + public Builder week(RotaWeek week) { + this.week = week; + return this; + } + + /** + * Sets the day columns. + * + * @param days the days, in the order they are printed + * @return this builder + */ + public Builder days(List days) { + this.days = days; + return this; + } + + /** + * Sets what the marks mean. + * + * @param legend the legend block + * @return this builder + */ + public Builder legend(RotaLegend legend) { + this.legend = legend; + return this; + } + + /** + * Sets the bands of staff. + * + * @param groups the bands, in the order they are printed + * @return this builder + */ + public Builder groups(List groups) { + this.groups = groups; + return this; + } + + /** + * Sets the standing note the sheet closes with. + * + * @param footer the footer block + * @return this builder + */ + public Builder footer(RotaFooter footer) { + this.footer = footer; + return this; + } + + /** + * Builds normalized rota data. + * + * @return rota data + */ + public StructuredRotaData build() { + return new StructuredRotaData(venue, week, days, legend, groups, footer); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/StructuredRotaDocumentSpec.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/StructuredRotaDocumentSpec.java new file mode 100644 index 000000000..bda90d6e1 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/StructuredRotaDocumentSpec.java @@ -0,0 +1,32 @@ +package com.demcha.compose.document.templates.data.rota; + +/** + * Public compose-first input for rota templates. + * + *

      Authoring role: the document-level object rota presets are + * parameterised on, the way structured invoice presets are parameterised on + * {@code StructuredInvoiceDocumentSpec}.

      + * + * @param rota normalized rota content + * @since 2.4.0 + */ +public record StructuredRotaDocumentSpec(StructuredRotaData rota) { + + /** + * Creates a normalized rota document spec. + */ + public StructuredRotaDocumentSpec { + rota = rota == null ? StructuredRotaData.builder().build() : rota; + } + + /** + * Wraps existing rota data in the document-level spec expected by rota + * templates. + * + * @param rota rota data + * @return document spec + */ + public static StructuredRotaDocumentSpec from(StructuredRotaData rota) { + return new StructuredRotaDocumentSpec(rota); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/rota/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/package-info.java new file mode 100644 index 000000000..a21b8912d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/rota/package-info.java @@ -0,0 +1,27 @@ +/** + * Shared, render-neutral rota document specs and supporting data records, + * consumed by the layered {@code rota.presets} presets. + * + *

      A rota is a grid the document owns rather than one a preset infers: + * {@link com.demcha.compose.document.templates.data.rota.StructuredRotaData#days()} + * is the columns and every + * {@link com.demcha.compose.document.templates.data.rota.RotaStaff#days()} + * runs in that same order, so a cell is found by position. A day holds a list + * of entries rather than one, which makes an empty day and a split day ordinary + * rather than special cases.

      + * + *

      This package supersedes {@code templates.data.schedule}, which modelled + * the same document and which nothing ever rendered. The three differences are + * the reasons: staff belong to bands rather than being ordered by a token, + * an entry states how loudly it is drawn, and colour stays out of the document + * — a schedule category carried three {@link java.awt.Color}s, which stops two + * presets drawing the same rota in two palettes.

      + * + *

      What a cell means and what it prints are separate: + * {@link com.demcha.compose.document.templates.data.rota.ShiftStatus} is the + * meaning a preset colours by, and the text is the word a particular site uses + * for it. Two rotas that print {@code A/L} and {@code HOL} colour alike.

      + * + * @since 2.4.0 + */ +package com.demcha.compose.document.templates.data.rota; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleAssignment.java b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleAssignment.java index 592e7ab28..f32294d64 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleAssignment.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleAssignment.java @@ -13,7 +13,13 @@ * @param categoryId category identifier * @param slots shift/time slots * @param note optional assignment note + * + * @deprecated superseded by + * {@link com.demcha.compose.document.templates.data.rota.RotaShift}, + * which a person's own day list holds directly rather than an + * assignment referring to both by identifier. */ +@Deprecated(since = "2.4.0") public record ScheduleAssignment( String personId, String dayId, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleCategory.java b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleCategory.java index 0dff636af..f36f2dc58 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleCategory.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleCategory.java @@ -11,7 +11,14 @@ * @param fillColor category fill color * @param textColor category text color * @param borderColor category border color + * + * @deprecated superseded by + * {@link com.demcha.compose.document.templates.data.rota.ShiftStatus} + * and a legend entry that names it. A category here carries three + * colours, which is a rendering decision living in the data layer: + * two presets cannot draw the same rota in two palettes. */ +@Deprecated(since = "2.4.0") public record ScheduleCategory( String id, String label, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleDay.java b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleDay.java index 05dab5492..b185fc22c 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleDay.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleDay.java @@ -9,7 +9,14 @@ * @param label display day label * @param headerNote optional header note * @param headerCategoryId optional category shown in the header + * + * @deprecated superseded by + * {@link com.demcha.compose.document.templates.data.rota.RotaDay}, + * which keeps the weekday, the ordinal and its tail apart so a + * design can set the suffix apart, and carries the day's expected + * covers. */ +@Deprecated(since = "2.4.0") public record ScheduleDay( String id, String label, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleMetricRow.java b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleMetricRow.java index 848e097c4..c869250b3 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleMetricRow.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleMetricRow.java @@ -10,7 +10,13 @@ * * @param label metric label * @param dayValues values aligned to days in display order + * + * @deprecated superseded by + * {@link com.demcha.compose.document.templates.data.rota.RotaCovers}, + * which the day itself carries rather than a parallel row whose + * values are aligned to the days by position alone. */ +@Deprecated(since = "2.4.0") public record ScheduleMetricRow( String label, List dayValues diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/SchedulePerson.java b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/SchedulePerson.java index 75a566820..6b822c58b 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/SchedulePerson.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/SchedulePerson.java @@ -8,7 +8,13 @@ * @param id stable person identifier * @param displayName display name * @param sortOrder ordering token for roster display + * + * @deprecated superseded by + * {@link com.demcha.compose.document.templates.data.rota.RotaStaff}, + * which holds its own days and sits inside the band it belongs to + * rather than being ordered by a token and grouped nowhere. */ +@Deprecated(since = "2.4.0") public record SchedulePerson( String id, String displayName, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleSlot.java b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleSlot.java index 0cda177df..72038c66f 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleSlot.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/ScheduleSlot.java @@ -7,7 +7,13 @@ * * @param start start time/label * @param end end time/label + * + * @deprecated superseded by + * {@link com.demcha.compose.document.templates.data.rota.RotaShift}, + * whose text is whatever the cell prints — a span of hours, or the + * word for a day not worked, which a start/end pair cannot carry. */ +@Deprecated(since = "2.4.0") public record ScheduleSlot( String start, String end diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleData.java b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleData.java index 3666fc840..2e30187f9 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleData.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleData.java @@ -18,7 +18,14 @@ * @param people people rows in the schedule matrix * @param assignments person/day assignments * @param footerNotes footer notes rendered after the matrix + * + * @deprecated superseded by + * {@link com.demcha.compose.document.templates.data.rota.StructuredRotaData}, + * which carries the staff bands and the per-entry emphasis a rota is + * actually drawn with, and leaves colour to the preset rather than + * holding it in the document. No preset ever rendered this model. */ +@Deprecated(since = "2.4.0") public record WeeklyScheduleData( String title, String weekLabel, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDocumentSpec.java b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDocumentSpec.java index 8589d8797..70c4eaeb0 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDocumentSpec.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDocumentSpec.java @@ -13,7 +13,13 @@ * * @param schedule normalized weekly schedule content rendered by templates * @author Artem Demchyshyn + * + * @deprecated superseded by + * {@link com.demcha.compose.document.templates.data.rota.StructuredRotaDocumentSpec}, + * which is the spec rota presets are parameterised on. No preset + * ever consumed this one. */ +@Deprecated(since = "2.4.0") public record WeeklyScheduleDocumentSpec(WeeklyScheduleData schedule) { /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/package-info.java index da9ec5959..7eda93070 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/package-info.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/schedule/package-info.java @@ -1,4 +1,17 @@ /** - * Weekly schedule document specs and supporting data records for canonical templates. + * Weekly schedule document specs and supporting data records for canonical + * templates. + * + *

      Superseded. Every type here is deprecated in favour of + * {@link com.demcha.compose.document.templates.data.rota}, which models the + * same document — who works when, over a span of days — and models it as the + * sheet is actually drawn: staff in bands, an entry that states how loudly it + * is drawn, and a day heading whose suffix a design can set apart. It also + * keeps colour out of the document, which this package does not: a category + * here carries three {@link java.awt.Color}s, so two presets cannot draw the + * same schedule in two palettes. Nothing in the library ever rendered these + * records.

      + * + * @see com.demcha.compose.document.templates.data.rota */ package com.demcha.compose.document.templates.data.schedule; From 5ef01bfe4b96c1780f196ac326ee51de939a5b71 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Wed, 2 Sep 2026 15:08:21 +0100 Subject: [PATCH 45/85] feat(templates): add a staff rota preset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CobaltRota is the library's first rota: a landscape sheet of who works when, read across a row rather than down a page. The label column carries the venue's mark over the staff names; the day columns carry a heading, whatever else is happening that day, a strip of swatches saying what the colours mean, the covers each service is expecting, and then the people in bands, each band opening with a navy strip and its own mark. It ports the rendered layout of a published standalone template onto the new StructuredRotaData model. Rendered at 150 dpi against the frozen original, driven by the original's own data file so nothing was transcribed by hand, every pixel of the sheet is identical — the grid, all eighty-four cells, the legend, the covers, the bands and the foot's own line. The one region that differs is the foot's left slot, which the original leaves empty and this fills with the note the document states. The whole sheet is one table. Everything from the masthead rule to the last person is rows of it, which is what keeps the columns aligned; a masthead above or a legend beside would be a second structure to keep in step. The four header rows are declared repeating with their count, because repeatHeader() with no argument repeats one row and a longer rota would carry a stray rule onto the next page instead of its day headings. The grid follows the document rather than the design. The sheet has as many day columns as the rota has days and every person's entries are read by position against that list, so a five-day rota makes five wider columns; nothing here says a week. A legend documenting more statuses than there are days runs onto a second strip rather than losing its tail, and one documenting fewer is closed off with empty cells. A rota that states no legend and no covers carries neither row. A day cell is a block of a stated height rather than whatever its chips come to, because a table cell places a node child at its top — textAnchor seats text, not a node — so a short chip in a row made tall by a neighbour would otherwise hang with all the slack beneath it. An unmarked entry is drawn as a chip with no fill and no outline rather than as bare text, so it occupies exactly the height a marked one does. The row's tint is threaded by hand into every cell and on into those chips rather than left to the table's striping, which would stripe the header, the legend, the covers and the bands too. Tests: a smoke test covering the empty rota, a five-day rota, a split day, a band naming no mark, the unknown-token data error, a legend longer and shorter than the week, a rota stating neither legend nor covers, and one long enough to need a second page; an exact layout snapshot; and a pixel baseline. One fixture feeds all three. The gates say what they can see. A composed cell emits fragments rather than a placed node, so the snapshot holds two nodes for eighty-four shift cells — it pins the page and the table, and nothing inside. The pixel baseline is the only gate that sees the sheet, and one chip is under two thousand of the page's half-million pixels, so its budget is a fraction of the sibling presets' and a third test counts the ink of each status colour directly. Removing a chip's fill turns that one red by name. Reactor gate green, 1266 tests. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 54 ++ knowledge/api/templates.json | 54 +- knowledge/api/templates.md | 8 +- .../rota/presets/CobaltRotaFixtures.java | 233 ++++++++ .../presets/CobaltRotaLayoutSnapshotTest.java | 35 ++ .../rota/presets/CobaltRotaSmokeTest.java | 324 +++++++++++ .../presets/CobaltRotaVisualParityTest.java | 57 ++ .../rota/cobalt_rota_layout.json | 77 +++ .../rota/cobalt_rota-page-0.png | Bin 0 -> 112593 bytes .../templates/rota/presets/CobaltChips.java | 99 ++++ .../templates/rota/presets/CobaltHeader.java | 210 ++++++++ .../templates/rota/presets/CobaltIcons.java | 78 +++ .../templates/rota/presets/CobaltRota.java | 203 +++++++ .../templates/rota/presets/CobaltRows.java | 300 +++++++++++ .../templates/rota/presets/CobaltStyles.java | 502 ++++++++++++++++++ .../templates/rota/presets/package-info.java | 21 + .../templates/rota/cobalt/icons/barbacks.svg | 1 + .../rota/cobalt/icons/bartenders.svg | 1 + .../rota/cobalt/icons/management.svg | 1 + 19 files changed, 2253 insertions(+), 5 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/rota/cobalt_rota_layout.json create mode 100644 qa/src/test/resources/visual-baselines/rota/cobalt_rota-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltChips.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltHeader.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltRota.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltRows.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/rota/presets/package-info.java create mode 100644 templates/src/main/resources/templates/rota/cobalt/icons/barbacks.svg create mode 100644 templates/src/main/resources/templates/rota/cobalt/icons/bartenders.svg create mode 100644 templates/src/main/resources/templates/rota/cobalt/icons/management.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f2d9b990..eb5161fdd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -912,6 +912,60 @@ follow semantic versioning; release dates are ISO 8601. the notice, the overlap window and every contact being followable), an exact layout snapshot, and a pixel baseline — all three fed by one fixture. +- **The first rota preset: `CobaltRota`.** A staff rota on one landscape sheet — a + navy-ruled grid of who works when, read across a row rather than down a page. The + label column carries the venue's mark over the staff names; the day columns carry a + heading, whatever else is happening that day, a strip of swatches saying what the + colours mean, the covers each service is expecting, and then the people in bands, each + band opening with a navy strip and its own mark. Ships as `rota.presets.CobaltRota` on + the new `StructuredRotaData` model, with its icon set packaged in the templates + artifact, porting the rendered layout of a published standalone template: rendered at + 150 dpi against the frozen original driven by the original's own data file, **every + pixel of the sheet is identical** — the grid, all eighty-four cells, the legend, the + covers, the bands and the foot's own line. The one region that differs is the foot's + left slot, which the original leaves empty and the port fills with the note the + document states. +

      + **The whole sheet is one table.** Everything from the masthead rule to the last person + is rows of it — that is what keeps the columns aligned, where a masthead above or a + legend beside would be a second structure to keep in step. The four header rows are + declared repeating with their count, because `repeatHeader()` with no argument repeats + one row and a rota longer than a page would carry a stray rule onto the next one + instead of its day headings. +

      + **The grid follows the document, not the design.** The sheet has as many day columns + as the rota has days and every person's entries are read by position against that + list, so a five-day rota makes five wider columns; nothing in the preset says a week. + A legend documenting more statuses than there are days runs onto a second strip rather + than losing its tail — a status a reader cannot look up is worse than an extra row — + and one documenting fewer is closed off with empty cells, so the table stays square + either way. The label column keeps its own padding whatever the day count, so the + wordmark does not resize with the number of days. A rota that states no legend and no + covers carries neither row: an empty navy bar over empty boxes is two rows of a sheet + that is short of rows already. +

      + A day cell is a block of a stated height rather than whatever its chips come to, + because a table cell places a node child at its *top* — `textAnchor` seats text, not a + node — so a short chip in a row made tall by a neighbour would otherwise hang with all + the slack beneath it. An unmarked entry is drawn as a chip with no fill and no outline + rather than as bare text, so it occupies exactly the height a marked one does. The + row's tint is threaded by hand into every cell and on into those chips rather than + left to the table's own striping, which would stripe the header, the legend, the + covers and the bands too. Guarded by a smoke test (including the empty rota, a + five-day rota, a split day, a band naming no mark, the unknown-token data error, a + legend longer and shorter than the week, a rota stating neither legend nor covers, and + one long enough to need a second page), an exact layout snapshot, and a pixel baseline + — all three fed by one fixture. +

      + **The gates say what they can see.** The sheet is composed table cells almost end to + end, and a composed cell emits fragments rather than a placed node, so the snapshot + holds two nodes for eighty-four shift cells: it pins the page and the table that + carries them, and nothing inside. The pixel baseline is the only gate that sees the + sheet, and one chip is under two thousand of the page's half-million pixels — a budget + wide enough for a renderer's antialiasing is wide enough to hide several chips — so + its budget is a fraction of the sibling presets', and a third test counts the ink of + each status colour directly. Removing a chip's fill turns that one red by name. + ### Tests - **The CodeQL scope guard can no longer be emptied by rewriting a deploy command.** diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index 15eb9c73d..df9254d9f 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,10 +22,10 @@ "graph-compose-testing:sources" ], "counts": { - "types": 242, - "methods": 1344, - "constants": 188, - "generated": 747 + "types": 243, + "methods": 1345, + "constants": 191, + "generated": 750 }, "packages": [ { @@ -23142,6 +23142,52 @@ ] } ] + }, + { + "name": "com.demcha.compose.document.templates.rota.presets", + "types": [ + { + "name": "CobaltRota", + "binaryName": "com.demcha.compose.document.templates.rota.presets.CobaltRota", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + } + ] } ] } diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index db474bb92..12a963e4f 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 242 · methods: 1344 · constants: 188 · compiler-generated members: 747 +Types: 243 · methods: 1345 · constants: 191 · compiler-generated members: 750 ## com.demcha.compose.document.templates.api @@ -1959,3 +1959,9 @@ Types: 242 · methods: 1344 · constants: 188 · compiler-generated members: 747 ### NorthlineProposal (class) - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +## com.demcha.compose.document.templates.rota.presets + +### CobaltRota (class) +- `DocumentTemplate create()` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaFixtures.java new file mode 100644 index 000000000..fcdf1f1f7 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaFixtures.java @@ -0,0 +1,233 @@ +package com.demcha.compose.document.templates.rota.presets; + +import com.demcha.compose.document.templates.data.rota.RotaCovers; +import com.demcha.compose.document.templates.data.rota.RotaDay; +import com.demcha.compose.document.templates.data.rota.RotaFooter; +import com.demcha.compose.document.templates.data.rota.RotaGroup; +import com.demcha.compose.document.templates.data.rota.RotaLegend; +import com.demcha.compose.document.templates.data.rota.RotaShift; +import com.demcha.compose.document.templates.data.rota.RotaStaff; +import com.demcha.compose.document.templates.data.rota.RotaVenue; +import com.demcha.compose.document.templates.data.rota.RotaWeek; +import com.demcha.compose.document.templates.data.rota.ShiftStatus; +import com.demcha.compose.document.templates.data.rota.StructuredRotaData; +import com.demcha.compose.document.templates.data.rota.StructuredRotaDocumentSpec; + +import java.util.List; + +/** + * Shared fixture data for the Cobalt rota 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 bar's week — + * seven days with their notes and covers, seven documented statuses, and twelve + * people in three bands, whose cells between them cover every shape a rota cell + * has: a plain span of hours, a marked day, a stacked pair of two marked halves, + * a marked half beside a plain one, and a day left blank.

      + * + *

      Twelve people is the page. The sheet holds this many on + * one landscape page and no more; a thirteenth takes a second page, which is the + * preset's own behaviour and not a fault. Growing the fixture therefore changes + * what both gates are measuring.

      + * + *

      Every name here — the venue, the people, what is on each night — is + * invented. The shape is a real week's, because that is what the gates have to + * measure against; the content is not anyone's.

      + */ +final class CobaltRotaFixtures { + + private CobaltRotaFixtures() { + } + + /** One week of a bar's rota. */ + static StructuredRotaDocumentSpec canonicalRota() { + return StructuredRotaDocumentSpec.from(StructuredRotaData.builder() + // A short wordmark on purpose: the lockup is sized by a fixed + // fraction of its column, so a long name wraps rather than + // shrinking to fit. + .venue(new RotaVenue("QUAY", "QUAYSIDE BAR", "Quayside Bar")) + .week(new RotaWeek("WEEK COMMENCING 31 AUGUST 2026", "31 Aug - 6 Sep 2026")) + .days(List.of( + day("MONDAY", "31", "ST", "/Clean Crushed Ice Machine & Area", + "104", "50"), + day("TUESDAY", "1", "ST", "Pianist 18:30 / Clean Crushed Ice Machine " + + "& Area", "33", "57"), + day("WEDNESDAY", "2", "ND", "Private dinner 44 pax / Soul GF / " + + "Pianist 18:30", "32", "76"), + day("THURSDAY", "3", "RD", "Pianist 18:30 / Partner meeting 3:30pm", + "22", "48"), + day("FRIDAY", "4", "TH", "Pianist 19:00", "65", "112"), + day("SATURDAY", "5", "TH", "MC 10 pax / Pianist 19:00", "73", "112"), + day("SUNDAY", "6", "TH", "MC 2 pax // 60 pax dinner / FF ex hire / " + + "Clean Cubed Ice Machine & Area", "72", "83"))) + .legend(new RotaLegend("STATUS LEGEND", "COVERS", "L", "D", List.of( + new RotaLegend.Entry("REQUEST", ShiftStatus.REQUEST), + new RotaLegend.Entry("OFF", ShiftStatus.OFF), + new RotaLegend.Entry("HOL", ShiftStatus.HOLIDAY), + new RotaLegend.Entry("STOCK", ShiftStatus.STOCK), + new RotaLegend.Entry("Standby", ShiftStatus.STANDBY), + new RotaLegend.Entry("Training", ShiftStatus.TRAINING), + new RotaLegend.Entry("SUPPORT", ShiftStatus.SUPPORT)))) + .groups(List.of( + new RotaGroup("MANAGEMENT", "management", List.of( + staff("ROSA", + one(RotaShift.strong("09:00-18:00", ShiftStatus.STOCK)), + one(off()), + one(hours("16:00-01:00")), + one(hours("16:00-01:00")), + one(off()), + one(RotaShift.strong("08:00-18:00", ShiftStatus.STOCK)), + split(RotaShift.strong("08:00-16:00", ShiftStatus.STOCK), + RotaShift.soft("16:00-21:00", + ShiftStatus.STOCK))), + staff("TOMAS", + one(hours("16:00-00:00")), + one(hours("16:00-00:00")), + one(off()), + one(off()), + split(hours("11:00-16:00"), hours("16:00-01:00")), + one(hours("16:00-01:00")), + one(hours("16:00-01:00"))))), + new RotaGroup("BARTENDERS", "bartenders", List.of( + staff("NADIA", + split(RotaShift.strong("09:00-16:00", ShiftStatus.STOCK), + RotaShift.soft("16:00-22:00", + ShiftStatus.STOCK)), + one(off()), + one(hours("16:00-00:00")), + one(off()), + one(RotaShift.strong("09:00-18:00", ShiftStatus.STOCK)), + one(off()), + one(RotaShift.strong("09:00-18:00", ShiftStatus.STOCK))), + staff("ELIAS", + one(off()), + one(RotaShift.strong("09:00-17:00", ShiftStatus.STOCK)), + one(hours("16:00-00:00")), + one(hours("16:00-00:00")), + split(RotaShift.strong("12:00-16:00", + ShiftStatus.TRAINING), + RotaShift.soft("16:00-22:00", + ShiftStatus.TRAINING)), + split(RotaShift.strong("09:00-16:00", ShiftStatus.STOCK), + RotaShift.soft("16:00-22:00", + ShiftStatus.STOCK)), + one(off())), + staff("MIRELA", + one(off()), + split(RotaShift.strong("09:00-16:00", ShiftStatus.STOCK), + RotaShift.soft("16:00-22:00", + ShiftStatus.STOCK)), + split(RotaShift.strong("09:00-16:00", ShiftStatus.STOCK), + RotaShift.soft("16:00-22:00", + ShiftStatus.STOCK)), + one(hours("12:00-18:00")), + one(hours("16:00-01:00")), + one(RotaShift.strong("16:00-01:00", + ShiftStatus.TRAINING)), + one(off())), + staff("SOFIA", + split(hours("12:00-16:00"), hours("16:00-00:00")), + one(holiday()), + one(holiday()), + one(holiday()), + one(holiday()), + one(holiday()), + one(holiday())), + staff("KAROL", + one(holiday()), + one(off()), + one(hours("12:00-18:00")), + one(RotaShift.strong("09:00-18:00", ShiftStatus.STOCK)), + one(hours("16:00-01:00")), + none(), + none()), + staff("HENRIK", + one(holiday()), + one(hours("16:00-00:00")), + one(off()), + one(hours("16:00-01:00")), + one(off()), + split(RotaShift.strong("08:00-16:00", ShiftStatus.STOCK), + RotaShift.soft("16:00-21:00", + ShiftStatus.STOCK)), + split(hours("12:00-16:00"), hours("16:00-00:00"))), + staff("LUCIA", + one(off()), + one(off()), + one(off()), + one(RotaShift.strong("16:00-01:00", + ShiftStatus.TRAINING)), + one(RotaShift.strong("16:00-01:00", + ShiftStatus.TRAINING)), + one(RotaShift.strong("16:00-01:00", + ShiftStatus.TRAINING)), + one(hours("16:00-00:00"))))), + new RotaGroup("BARBACKS", "barbacks", List.of( + staff("OSKAR", + one(holiday()), + one(holiday()), + one(holiday()), + one(off()), + split(hours("12:00-16:00"), hours("16:00-01:00")), + split(hours("12:00-16:00"), hours("16:00-01:00")), + split(hours("12:00-16:00"), hours("16:00-01:00"))), + staff("TEODOR", + one(holiday()), + one(off()), + one(hours("16:00-00:00")), + one(off()), + one(hours("16:00-01:00")), + split(hours("12:00-16:00"), hours("16:00-01:00")), + split(hours("12:00-16:00"), hours("16:00-01:00"))), + staff("VESNA", + split(hours("12:00-16:00"), hours("16:00-00:00")), + one(hours("16:00-00:00")), + one(hours("16:00-00:00")), + split(hours("12:00-16:00"), + RotaShift.strong("16:00-00:00", + ShiftStatus.TRAINING)), + one(holiday()), + one(holiday()), + one(holiday())))))) + .footer(new RotaFooter( + "Times shown in 24-hour format. Shift colours follow the status " + + "legend above.")) + .build()); + } + + private static RotaDay day(String name, String ordinal, String suffix, String note, + String lunch, String dinner) { + return new RotaDay(name, ordinal, suffix, note, new RotaCovers(lunch, dinner)); + } + + @SafeVarargs + private static RotaStaff staff(String name, List... days) { + return new RotaStaff(name, List.of(days)); + } + + private static List one(RotaShift shift) { + return List.of(shift); + } + + private static List split(RotaShift first, RotaShift second) { + return List.of(first, second); + } + + /** A day nobody is down for, which is a blank cell and not a missing one. */ + private static List none() { + return List.of(); + } + + private static RotaShift hours(String text) { + return RotaShift.hours(text); + } + + private static RotaShift off() { + return RotaShift.strong("OFF", ShiftStatus.OFF); + } + + private static RotaShift holiday() { + return RotaShift.strong("HOL", ShiftStatus.HOLIDAY); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaLayoutSnapshotTest.java new file mode 100644 index 000000000..904dab383 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaLayoutSnapshotTest.java @@ -0,0 +1,35 @@ +package com.demcha.compose.document.templates.rota.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 CobaltRota} — freezes the page frame and + * the table's own box. + * + *

      What this gate can and cannot see. The sheet is composed + * table cells almost end to end, and a composed cell emits fragments rather than + * a placed node, so the snapshot holds two nodes for eighty-four shift cells. It + * pins the page and the table that carries them — which is what would move if + * the margins, the column widths or the orientation changed — and the pixel + * baseline is what pins their contents. Neither gate is sufficient alone here, + * which is why both are fed by one fixture.

      + * + *

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

      + */ +class CobaltRotaLayoutSnapshotTest { + + @Test + void canonicalRotaMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + CobaltRota.create().compose(session, CobaltRotaFixtures.canonicalRota()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot(session, "cobalt_rota_layout", "rota"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaSmokeTest.java new file mode 100644 index 000000000..02f40ae74 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaSmokeTest.java @@ -0,0 +1,324 @@ +package com.demcha.compose.document.templates.rota.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.rota.RotaCovers; +import com.demcha.compose.document.templates.data.rota.RotaDay; +import com.demcha.compose.document.templates.data.rota.RotaGroup; +import com.demcha.compose.document.templates.data.rota.RotaLegend; +import com.demcha.compose.document.templates.data.rota.RotaShift; +import com.demcha.compose.document.templates.data.rota.RotaStaff; +import com.demcha.compose.document.templates.data.rota.ShiftStatus; +import com.demcha.compose.document.templates.data.rota.StructuredRotaData; +import com.demcha.compose.document.templates.data.rota.StructuredRotaDocumentSpec; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.rendering.PDFRenderer; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.awt.image.BufferedImage; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.Assertions.within; + +/** + * Smoke test for {@link CobaltRota} — proves the preset renders a + * {@link StructuredRotaDocumentSpec} end-to-end with its packaged icons on one + * landscape page, renders an empty rota through its guards, follows the + * document's own day count rather than assuming a week, keeps a short or long + * legend square with the sheet, and reports an unknown icon token by name. + * + *

      The sheet is composed table cells almost end to end, which emit no placed + * node of their own — the layout snapshot sees two nodes for eighty-four cells — + * so what a cell contains is asserted here, on the text layer.

      + */ +class CobaltRotaSmokeTest { + + private static byte[] render(StructuredRotaDocumentSpec spec) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + CobaltRota.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 = CobaltRota.create(); + assertThat(template.id()).isEqualTo(CobaltRota.ID); + assertThat(template.displayName()).isEqualTo(CobaltRota.DISPLAY_NAME); + } + + @Test + void rendersTheCanonicalRotaOnOneLandscapePage() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + CobaltRota.create().compose(session, CobaltRotaFixtures.canonicalRota()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + } + } + + @Test + void rendersEmptyRota() throws Exception { + // Exercises the guards: no lockup, no days, no legend, no bands, no + // staff, and a footer with nothing to sign off with. + render(StructuredRotaDocumentSpec.from(StructuredRotaData.builder().build())); + } + + @Test + void canonicalRenderCarriesEveryRegionOnTheTextLayer() throws Exception { + // Eighty-four composed cells emit no placed node, so this is where their + // content is assertable at all. + String text = textOf(render(CobaltRotaFixtures.canonicalRota())); + assertThat(text) + .contains("QUAY").contains("QUAYSIDE BAR") + .contains("MONDAY").contains("SUNDAY") + .contains("STATUS LEGEND").contains("Standby") + .contains("COVERS").contains("104") + .contains("MANAGEMENT").contains("BARBACKS") + .contains("VESNA") + .contains("09:00-18:00").contains("HOL") + .contains("Quayside Bar"); + } + + @Test + void everyStatusIsDrawnInItsOwnColourAndCoversTheAreaItShould() throws Exception { + // What neither other gate can see. The snapshot holds two nodes for the + // whole sheet, and a pixel budget large enough to survive a font's + // antialiasing is large enough for a couple of dozen chips to lose their + // fill inside it. This counts the ink of each status directly: a chip + // drawn in the wrong colour, or drawn plain when it should be filled, + // moves two of these counts at once. + byte[] pdfBytes = render(CobaltRotaFixtures.canonicalRota()); + BufferedImage page; + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + page = new PDFRenderer(document).renderImage(0, 1.0f); + } + assertArea(page, "REQUEST", 176, 176, 192, 1_278); + assertArea(page, "OFF", 208, 16, 16, 30_528); + assertArea(page, "HOLIDAY", 255, 192, 32, 22_712); + assertArea(page, "STOCK", 16, 160, 80, 13_455); + assertArea(page, "STANDBY", 192, 144, 224, 1_321); + assertArea(page, "TRAINING", 240, 80, 16, 7_475); + assertArea(page, "SUPPORT", 208, 216, 240, 1_290); + // The bands, the covers label and the rules; and the stripe under every + // other person, which is what a reader follows across the columns. + assertArea(page, "navy", 16, 32, 80, 55_857); + assertArea(page, "zebra", 228, 235, 248, 54_983); + } + + /** + * How much of the page one exact colour covers, against what it covered when + * the sheet was known good. + * + *

      A tenth either way: a solid fill has no antialiasing in its middle, so + * these counts move with the shapes and not with the renderer. Losing one + * chip of a colour is about a sixth of the smallest count here.

      + */ + private static void assertArea(BufferedImage page, String what, + int red, int green, int blue, int expected) { + int rgb = (red << 16) | (green << 8) | blue; + int found = 0; + for (int y = 0; y < page.getHeight(); y++) { + for (int x = 0; x < page.getWidth(); x++) { + if ((page.getRGB(x, y) & 0xFFFFFF) == rgb) { + found++; + } + } + } + assertThat(found) + .describedAs("area drawn in %s", what) + .isBetween((int) (expected * 0.9), (int) (expected * 1.1)); + } + + @Test + void aSplitDayPrintsBothOfItsHalves() throws Exception { + // The shape the model exists for: a day holding two entries draws two + // chips, not one that wins. + StructuredRotaDocumentSpec spec = StructuredRotaDocumentSpec.from( + StructuredRotaData.builder() + .days(List.of(new RotaDay("MONDAY", "31", "ST"))) + .groups(List.of(new RotaGroup("BAR", List.of( + new RotaStaff("PRIYA", List.of(List.of( + RotaShift.strong("09:00-16:00", ShiftStatus.STOCK), + RotaShift.soft("16:00-22:00", ShiftStatus.STOCK)))))))) + .build()); + assertThat(textOf(render(spec))).contains("09:00-16:00").contains("16:00-22:00"); + } + + @Test + void theSheetHasAsManyDayColumnsAsTheDocumentHasDays() throws Exception { + // Nothing in the preset says a week: a five-day rota is as ordinary as a + // seven-day one, and a person's entries are read by position against the + // document's own day list. + StructuredRotaDocumentSpec spec = StructuredRotaDocumentSpec.from( + StructuredRotaData.builder() + .days(List.of( + new RotaDay("MONDAY", "31", "ST"), + new RotaDay("TUESDAY", "1", "ST"), + new RotaDay("WEDNESDAY", "2", "ND"), + new RotaDay("THURSDAY", "3", "RD"), + new RotaDay("FRIDAY", "4", "TH"))) + .groups(List.of(new RotaGroup("BAR", List.of( + new RotaStaff("PRIYA", List.of( + List.of(RotaShift.hours("09:00-17:00")), + List.of(), + List.of(RotaShift.strong("OFF", ShiftStatus.OFF)))))))) + .build()); + String text = textOf(render(spec)); + assertThat(text).contains("FRIDAY").contains("09:00-17:00").contains("OFF"); + assertThat(text).doesNotContain("SATURDAY"); + } + + @Test + void aLegendLongerThanTheWeekRunsOnRatherThanLosingItsTail() throws Exception { + // A status a reader cannot look up is worse than a second strip. Twelve + // statuses across seven columns are two strips, and every one of the + // twelve is on the sheet — asserting only the first would pass with the + // tail silently dropped. + List entries = new ArrayList<>(); + for (int i = 0; i < 12; i++) { + entries.add(new RotaLegend.Entry("S" + i, ShiftStatus.OFF)); + } + StructuredRotaData base = CobaltRotaFixtures.canonicalRota().rota(); + StructuredRotaDocumentSpec spec = StructuredRotaDocumentSpec.from( + StructuredRotaData.builder() + .venue(base.venue()).days(base.days()) + .legend(new RotaLegend("STATUS", "COVERS", "L", "D", entries)) + .build()); + String text = textOf(render(spec)); + for (int i = 0; i < 12; i++) { + assertThat(text).describedAs("legend entry S%d", i).contains("S" + i); + } + } + + @Test + void aLegendShorterThanTheWeekStillFillsTheSheetsWidth() throws Exception { + // The other side of the same seam: a short strip is closed off with + // empty cells so the table stays square. Two statuses under a seven-day + // week is one strip, and the sheet is as wide as it was. + StructuredRotaData base = CobaltRotaFixtures.canonicalRota().rota(); + StructuredRotaDocumentSpec spec = StructuredRotaDocumentSpec.from( + StructuredRotaData.builder() + .venue(base.venue()).days(base.days()) + .legend(new RotaLegend("STATUS", "COVERS", "L", "D", List.of( + new RotaLegend.Entry("S0", ShiftStatus.OFF), + new RotaLegend.Entry("S1", ShiftStatus.STOCK)))) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + CobaltRota.create().compose(session, spec); + assertThat(tableWidth(session)).isEqualTo(tableWidth(canonical()), within(0.01)); + assertThat(textOf(session.toPdfBytes())).contains("S0").contains("S1"); + } + } + + private static DocumentSession canonical() { + DocumentSession session = GraphCompose.document().create(); + CobaltRota.create().compose(session, CobaltRotaFixtures.canonicalRota()); + return session; + } + + /** The table's own placed width, which a ragged row would change. */ + private static double tableWidth(DocumentSession session) { + return session.layoutSnapshot().nodes().stream() + .filter(node -> "Schedule".equals(node.entityName())) + .findFirst() + .orElseThrow(() -> new AssertionError("no Schedule node")) + .placementWidth(); + } + + @Test + void aRotaThatStatesNoLegendOrCoversSpendsNoRowsOnThem() throws Exception { + // An empty navy bar over seven empty boxes is two rows of a sheet that + // is short of rows already. A rota that says nothing about either simply + // does not carry them. + StructuredRotaData base = CobaltRotaFixtures.canonicalRota().rota(); + StructuredRotaDocumentSpec spec = StructuredRotaDocumentSpec.from( + StructuredRotaData.builder() + .venue(base.venue()).week(base.week()).days(base.days()) + .groups(base.groups()).footer(base.footer()) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + CobaltRota.create().compose(session, spec); + assertThat(textOf(session.toPdfBytes())) + .doesNotContain("STATUS LEGEND").doesNotContain("COVERS"); + // Two rows lighter than the canonical sheet, which is the whole point. + assertThat(tableHeight(session)).isLessThan(tableHeight(canonical())); + } + } + + private static double tableHeight(DocumentSession session) { + return session.layoutSnapshot().nodes().stream() + .filter(node -> "Schedule".equals(node.entityName())) + .findFirst() + .orElseThrow(() -> new AssertionError("no Schedule node")) + .placementHeight(); + } + + @Test + void aBandThatNamesNoMarkIsStillTheBand() throws Exception { + // The strip and its label are the design's; the mark before them is the + // document's, and a band naming none simply opens with its label. + StructuredRotaDocumentSpec spec = StructuredRotaDocumentSpec.from( + StructuredRotaData.builder() + .days(List.of(new RotaDay("MONDAY", "31", "ST"))) + .groups(List.of(new RotaGroup("KITCHEN", List.of( + new RotaStaff("PRIYA", List.of(List.of())))))) + .build()); + assertThat(textOf(render(spec))).contains("KITCHEN").contains("PRIYA"); + } + + @Test + void rejectsUnknownIconTokenByName() { + StructuredRotaDocumentSpec spec = StructuredRotaDocumentSpec.from( + StructuredRotaData.builder() + .days(List.of(new RotaDay("MONDAY", "31", "ST"))) + .groups(List.of(new RotaGroup("KITCHEN", "no-such-icon", List.of()))) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + assertThatThrownBy(() -> CobaltRota.create().compose(session, spec)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("no-such-icon") + .hasMessageContaining("bartenders"); + } + } + + @Test + void aRotaTooLongForOnePageTakesASecondRatherThanLosingAnyone() throws Exception { + // The sheet holds twelve on a page. A thirteenth is not a fault and is + // certainly not dropped: the header repeats and the rota continues. + StructuredRotaData base = CobaltRotaFixtures.canonicalRota().rota(); + List crowd = new ArrayList<>(); + for (int i = 0; i < 40; i++) { + crowd.add(new RotaStaff("PERSON " + i, List.of())); + } + StructuredRotaDocumentSpec spec = StructuredRotaDocumentSpec.from( + StructuredRotaData.builder() + .venue(base.venue()).week(base.week()).days(base.days()) + .legend(base.legend()).footer(base.footer()) + .groups(List.of(new RotaGroup("BAR", "bartenders", crowd))) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + CobaltRota.create().compose(session, spec); + assertThat(session.layoutSnapshot().totalPages()).isGreaterThan(1); + String text = textOf(session.toPdfBytes()); + assertThat(text).contains("PERSON 0").contains("PERSON 39"); + // The header repeats, so the second page is not seven unlabelled + // columns: repeatHeader carries all four of its rows. + assertThat(text.split("MONDAY", -1).length - 1).isGreaterThan(1); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaVisualParityTest.java new file mode 100644 index 000000000..323fa0f99 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/rota/presets/CobaltRotaVisualParityTest.java @@ -0,0 +1,57 @@ +package com.demcha.compose.document.templates.rota.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 CobaltRota} — the canonical + * fixture's page against a checked-in baseline. + * + *

      What this gate does and does not hold. The sheet is + * composed table cells almost end to end and the layout snapshot sees two nodes + * for the whole of it, so this baseline is the only thing that sees the sheet at + * all. It is not, on its own, enough: the page is about half a million pixels + * and one chip is under two thousand of them, so a budget wide enough to absorb + * a renderer's antialiasing is wide enough to hide several chips. The budget + * below is therefore a fraction of the sibling presets', and what pins the chips + * themselves is + * {@code CobaltRotaSmokeTest.everyStatusIsDrawnInItsOwnColourAndCoversTheAreaItShould}, + * which counts each status's ink directly.

      + * + *

      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/rota/}.

      + */ +class CobaltRotaVisualParityTest { + + private static final Path BASELINE_ROOT = + Path.of("src", "test", "resources", "visual-baselines", "rota"); + + /** + * Tight, because the sheet is one deterministic table of solid fills and + * type: what varies between platforms is the antialiasing of the glyph edges + * and nothing else. Two thousand pixels is about one chip. + */ + private static final long PIXEL_DIFF_BUDGET = 2_000L; + private static final int PER_PIXEL_TOLERANCE = 8; + + @Test + void rendersWithinPixelDiffBudget() throws Exception { + byte[] pdfBytes; + try (DocumentSession document = GraphCompose.document().create()) { + CobaltRota.create().compose(document, CobaltRotaFixtures.canonicalRota()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("cobalt_rota", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/rota/cobalt_rota_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/rota/cobalt_rota_layout.json new file mode 100644 index 000000000..86d1fb88a --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/rota/cobalt_rota_layout.json @@ -0,0 +1,77 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 841.89, + "pageHeight" : 595.276, + "innerWidth" : 817.054, + "innerHeight" : 545.749, + "margin" : { + "top" : 10.596, + "right" : 12.418, + "bottom" : 38.931, + "left" : 12.418 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "CobaltRota[0]", + "entityName" : "CobaltRota", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 12.418, + "computedY" : 81.405, + "placementX" : 12.418, + "placementY" : 81.405, + "placementWidth" : 817.054, + "placementHeight" : 503.275, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 817.054, + "contentHeight" : 503.275, + "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" : "CobaltRota[0]/Schedule[0]", + "entityName" : "Schedule", + "entityKind" : "TableNode", + "parentPath" : "CobaltRota[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 12.418, + "computedY" : 81.405, + "placementX" : 12.418, + "placementY" : 81.405, + "placementWidth" : 817.054, + "placementHeight" : 503.275, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 817.054, + "contentHeight" : 503.275, + "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/rota/cobalt_rota-page-0.png b/qa/src/test/resources/visual-baselines/rota/cobalt_rota-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..28cfb9812f043ac527b90f7019e613f3591d27d4 GIT binary patch literal 112593 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 aJ!y6)r~|%V9i1QVFW;-dPQq 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
      m@YV%1>2|K5yAR- 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 forms, and the third is the reason this is a shape at all. + * {@link ShiftEmphasis#STRONG} fills with the status's colour and labels it in + * that status's own contrast colour; {@link ShiftEmphasis#SOFT} keeps the paper + * and hairlines it in the same colour; {@link ShiftEmphasis#PLAIN} draws + * neither and is the same box carrying only text. A box rather than a bare + * paragraph, so an unmarked entry occupies exactly the height a chip does and + * the two seat alike in a row that mixes them.

      + */ +final class CobaltChips { + + private CobaltChips() { + } + + /** + * One chip. + * + * @param text what the chip prints + * @param status what the entry means, which decides the colour + * @param emphasis how loudly it is drawn + * @param width how wide its column leaves it + * @param height how tall to draw it — a lone entry is taller than one of a + * stacked pair + * @param lone whether it is the only entry in its cell, which decides the + * face: a pair keeps the smaller one, because two chips and a + * gap have to fit the block a single chip fills + * @param rowFill the row's own background, which a plain chip takes + * @return the chip + */ + static DocumentNode chip(String text, ShiftStatus status, ShiftEmphasis emphasis, + double width, double height, boolean lone, + DocumentColor rowFill) { + boolean filled = emphasis == ShiftEmphasis.STRONG; + boolean plain = emphasis == ShiftEmphasis.PLAIN; + DocumentColor colour = colorFor(status); + DocumentTextStyle label = filled + ? labelOnFillFor(status, lone) + : (lone ? CHIP_SINGLE_ON_LIGHT : CHIP_ON_LIGHT); + + // A plain entry is the absence of a chip, so it takes the row's own + // background; a soft one keeps the paper, because a white box hairlined + // in its status colour is what it is. + ShapeContainerBuilder chip = new ShapeContainerBuilder() + .name("Chip") + .roundedRect(width, height, CHIP_CORNER_RADIUS) + .fillColor(filled ? colour : (plain ? rowFill : PAPER)); + if (!filled && !plain) { + chip.stroke(DocumentStroke.of(colour, CHIP_OUTLINE_WIDTH)); + } + return chip.center(label(text, label, width)).build(); + } + + /** + * A chip's label, inset inside the box. + * + *

      The inset is not decoration: a shape container clamps rather than + * centres a child wider than itself, so a label kept narrower than its chip + * is what makes a long one centre instead of sitting against the left + * edge.

      + * + * @param text what the label prints + * @param style the face it is set in + * @param chipWidth the chip it has to fit inside + * @return the label + */ + static DocumentNode label(String text, DocumentTextStyle style, double chipWidth) { + return new ParagraphBuilder() + .name("ChipLabel") + .text(text) + .textStyle(style) + .align(TextAlign.CENTER) + .lineSpacing(0) + .margin(new DocumentInsets(0, chipWidth * 0.04, 0, chipWidth * 0.04)) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltHeader.java b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltHeader.java new file mode 100644 index 000000000..f4cef47e7 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltHeader.java @@ -0,0 +1,210 @@ +package com.demcha.compose.document.templates.rota.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +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.DocumentTableStyle; +import com.demcha.compose.document.table.DocumentTableTextAnchor; +import com.demcha.compose.document.templates.data.rota.RotaDay; +import com.demcha.compose.document.templates.data.rota.RotaVenue; +import com.demcha.compose.document.templates.data.rota.StructuredRotaData; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.BODY_TOP_RULE_TEXT; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.DAY_NAME; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.DAY_NAME_PAD_BOTTOM; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.DAY_NAME_PAD_TOP; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.DAY_NOTE; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.DAY_NOTE_PAD_BOTTOM; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.DAY_NOTE_PAD_TOP; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.DAY_ORDINAL_SUFFIX; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.GRID_LINE; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.GRID_RULE; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.HEADER_ROW_COUNT; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.LOCKUP_LINE_SPACING; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.MASTHEAD_RULE_TEXT; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.NAVY; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.NAVY_RULE; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.PAPER; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.WORDMARK; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.WORDMARK_SUB; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.labelHeaderStyle; + +/** + * The four rows that open the sheet: a navy rule, the lockup beside the day + * names, whatever is happening on each day, and the rule that closes the header + * and opens the body. + * + *

      Four real table rows and not one row with nested tables in it: a nested + * table in a header cell draws its own rules at its own heights, and the day + * columns, holding notes of one, two and three lines, would then close with a + * rule drawn at three different heights.

      + */ +final class CobaltHeader { + + private CobaltHeader() { + } + + /** + * The header, declared as repeating. + * + *

      The count is not optional. {@code repeatHeader()} with no argument + * repeats one row, which on a four-row header leaves a continuation page + * carrying unlabelled day columns under a stray rule.

      + * + * @param table the sheet's one table + * @param rota the document + * @param grid the sheet's geometry + */ + static void render(TableBuilder table, StructuredRotaData rota, CobaltStyles.Grid grid) { + table.headerCells(ruleCells(NAVY, NAVY_RULE, MASTHEAD_RULE_TEXT, grid)); + table.headerCells(dayNameCells(rota, grid)); + table.headerCells(dayNoteCells(rota, grid)); + table.headerCells(ruleCells(GRID_LINE, GRID_RULE, BODY_TOP_RULE_TEXT, grid)); + table.repeatHeader(HEADER_ROW_COUNT); + } + + /** + * A row that is only a rule. + * + *

      An empty cell is as tall as its own font, so the rule's thickness is + * carried by the text style rather than by a height nobody can set. Every + * column is filled, including the label column: the rule runs the width of + * the sheet.

      + */ + private static List ruleCells(DocumentColor fill, DocumentStroke stroke, + DocumentTextStyle thickness, + CobaltStyles.Grid grid) { + DocumentTableStyle rule = DocumentTableStyle.builder() + .padding(DocumentInsets.zero()) + .fillColor(fill) + .stroke(stroke) + .textStyle(thickness) + .textAnchor(DocumentTableTextAnchor.CENTER) + .lineSpacing(0) + .build(); + List cells = new ArrayList<>(grid.columnCount()); + for (int column = 0; column < grid.columnCount(); column++) { + cells.add(DocumentTableCell.text("").withStyle(rule)); + } + return cells; + } + + /** The lockup in the label column, then one heading per day. */ + private static List dayNameCells(StructuredRotaData rota, + CobaltStyles.Grid grid) { + DocumentTableStyle style = DocumentTableStyle.builder() + .padding(new DocumentInsets( + DAY_NAME_PAD_TOP, grid.cellPadX(), DAY_NAME_PAD_BOTTOM, grid.cellPadX())) + .fillColor(PAPER) + .stroke(GRID_RULE) + .textStyle(DAY_NAME) + .textAnchor(DocumentTableTextAnchor.CENTER) + .lineSpacing(0) + .build(); + List cells = new ArrayList<>(grid.columnCount()); + cells.add(DocumentTableCell.node(lockupNode(rota.venue())).withStyle(labelHeaderStyle())); + for (RotaDay day : rota.days()) { + cells.add(DocumentTableCell.node(dayNameNode(day)).withStyle(style)); + } + return cells; + } + + /** + * The venue's mark, which sits in the label column's header rather than in a + * masthead of its own — the sheet is one table, and a masthead above it + * would be a second structure to keep aligned with the first. + */ + private static DocumentNode lockupNode(RotaVenue venue) { + SectionBuilder lockup = new SectionBuilder(); + lockup.name("BrandLockup").spacing(0); + boolean named = !venue.wordmark().isBlank(); + if (named) { + lockup.addParagraph(p -> p + .name("Wordmark") + .text(venue.wordmark()) + .textStyle(WORDMARK) + .align(TextAlign.LEFT) + .lineSpacing(0)); + } + if (!venue.wordmarkSub().isBlank()) { + // The negative margin closes up the gap under the wordmark's own + // line box. With no wordmark there is no gap to close, and applying + // it anyway would pull the subtitle up through the cell's padding + // and into the rule above it. + double closeUp = named ? LOCKUP_LINE_SPACING : 0; + lockup.addParagraph(p -> p + .name("WordmarkSub") + .text(venue.wordmarkSub()) + .textStyle(WORDMARK_SUB) + .align(TextAlign.LEFT) + .lineSpacing(0) + .margin(new DocumentInsets(closeUp, 0, 0, 0))); + } + return lockup.build(); + } + + /** + * One day's heading: the weekday and the date, with the ordinal's tail set + * smaller. + * + *

      Two runs of one paragraph rather than two paragraphs, because the tail + * belongs on the same line as what it follows.

      + */ + private static DocumentNode dayNameNode(RotaDay day) { + ParagraphBuilder paragraph = new ParagraphBuilder() + .name("DayName") + .textStyle(DAY_NAME) + .align(TextAlign.CENTER) + .lineSpacing(0); + paragraph.rich(rich -> rich + .style(day.name() + " " + day.ordinal(), DAY_NAME) + .style(day.ordinalSuffix(), DAY_ORDINAL_SUFFIX)); + return paragraph.build(); + } + + /** What else is happening that day, under its heading. */ + private static List dayNoteCells(StructuredRotaData rota, + CobaltStyles.Grid grid) { + DocumentTableStyle style = DocumentTableStyle.builder() + .padding(new DocumentInsets( + DAY_NOTE_PAD_TOP, grid.cellPadX(), DAY_NOTE_PAD_BOTTOM, grid.cellPadX())) + .fillColor(PAPER) + .stroke(GRID_RULE) + .textStyle(DAY_NOTE) + .textAnchor(DocumentTableTextAnchor.TOP_LEFT) + .lineSpacing(1.5) + .build(); + List cells = new ArrayList<>(grid.columnCount()); + cells.add(DocumentTableCell.text("").withStyle(labelHeaderStyle())); + for (RotaDay day : rota.days()) { + cells.add(DocumentTableCell.node(dayNoteNode(day)).withStyle(style)); + } + return cells; + } + + /** + * A note as a paragraph node rather than as cell text: a text cell asks its + * fixed column for its natural width, and a note long enough to need two + * lines then overflows instead of wrapping. + */ + private static DocumentNode dayNoteNode(RotaDay day) { + return new ParagraphBuilder() + .name("DayNote") + .text(day.note()) + .textStyle(DAY_NOTE) + .align(TextAlign.CENTER) + .lineSpacing(1.5) + .margin(DocumentInsets.zero()) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltIcons.java new file mode 100644 index 000000000..ea07f5573 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltIcons.java @@ -0,0 +1,78 @@ +package com.demcha.compose.document.templates.rota.presets; + +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.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * The marks the Cobalt rota packages, one per band of staff. + * + *

      A band may name one or name none: the band is the navy strip and its + * label, and the mark before it is the document's. A token this preset does not + * package is a data error reported by name, because an unnamed mark and a + * misspelt one are different mistakes and only one of them is silent.

      + */ +final class CobaltIcons { + + /** The marks a document may name on a band. */ + static final List TOKENS = List.of("management", "bartenders", "barbacks"); + + private static final String ICON_ROOT = "/templates/rota/cobalt/icons/"; + + /** + * Keyed on the token and not on a file path: the marks are classpath + * resources of this artifact, so the cache is as long-lived as the class + * and the same across every document. Concurrent because two render threads + * must not meet inside a plain map. + */ + private static final Map CACHE = new ConcurrentHashMap<>(); + + private CobaltIcons() { + } + + /** + * The packaged mark a token names. + * + * @param token one of this preset's tokens + * @return the parsed icon + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error and not a missing resource + */ + static SvgIcon icon(String token) { + if (!TOKENS.contains(token)) { + throw new IllegalArgumentException( + "Unknown cobalt rota icon token '" + token + + "'. This preset packages " + TOKENS + "."); + } + return CACHE.computeIfAbsent(token, CobaltIcons::read); + } + + /** + * Whether the document named a mark at all, for a band that may carry none. + * + * @param token the token a document states + * @return {@code true} when the document named one + */ + static boolean has(String token) { + return token != null && !token.isBlank(); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = CobaltIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing cobalt rota icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException("Failed to read cobalt rota icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltRota.java b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltRota.java new file mode 100644 index 000000000..82875a63a --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltRota.java @@ -0,0 +1,203 @@ +package com.demcha.compose.document.templates.rota.presets; + +import com.demcha.compose.document.api.DocumentSession; +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.table.DocumentTableColumn; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.data.rota.RotaGroup; +import com.demcha.compose.document.templates.data.rota.RotaStaff; +import com.demcha.compose.document.templates.data.rota.StructuredRotaData; +import com.demcha.compose.document.templates.data.rota.StructuredRotaDocumentSpec; + +import java.util.Objects; + +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.FOOTER_RULE_WIDTH; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.FOOTER_SIZE; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.LABEL_COLUMN_WIDTH; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.MARGIN_BOTTOM; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.NAVY; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.PAGE; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.PAGE_MARGIN; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.PAPER; + +/** + * Cobalt Rota — a staff rota on one landscape sheet: a navy-ruled grid of who + * works when, read across a row. + * + *

      The label column carries the venue's mark over the staff names; the day + * columns carry a heading, whatever else is happening that day, a strip of + * swatches saying what the colours mean, the covers each service is expecting, + * and then the people — in bands, each band opening with a navy strip and its + * own mark. A day's cell holds nothing, one entry, or a stack of them — two is + * what a split shift comes to and what the row's height is measured for; more + * than two fits, but stands taller than the row around it.

      + * + *

      One table, not a stack of them

      + * + *

      Everything from the masthead rule to the last person is rows of a single + * table. That is what keeps the columns aligned down the sheet: a masthead above + * the table, or a legend beside it, would be a second structure to keep in step + * with the first. It is also why the four header rows are declared repeating — a + * rota longer than a page carries its day headings onto the next one rather than + * leaving a page of unlabelled columns.

      + * + *

      The grid is the document's own shape

      + * + *

      The sheet has as many day columns as the document has days, and every + * person's entries are read by position against that list. Seven is the common + * case and nothing here requires it. A legend documenting more statuses than + * there are days is closed off at the sheet's width, and one documenting fewer + * is padded out, so the table stays square either way.

      + * + *

      The wordmark is sized to its column, not to itself

      + * + *

      The lockup sits in the label column and is set at a fixed fraction of it, + * which is what keeps it on one line at the size the design draws it. It does + * not shrink to fit: a venue whose name runs long wraps instead, so a long name + * belongs in {@code wordmarkSub} with a short form above it.

      + * + *

      Fonts

      + * + *

      The sheet is set in Carlito, with the wordmark in Spectral. The templates + * artifact carries no fonts: both arrive with {@code graph-compose-fonts} on + * the classpath, or a caller registers families of those names on the session + * itself. With neither, the engine substitutes and every size is solved for + * type that is not there.

      + * + *

      Usage:

      + *
      {@code
      + * DocumentTemplate template = CobaltRota.create();
      + * template.compose(session, spec);
      + * }
      + * + * @since 2.4.0 + */ +public final class CobaltRota { + + /** + * Stable template identifier. + */ + public static final String ID = "rota-cobalt"; + + /** + * Human-readable display name. + */ + public static final String DISPLAY_NAME = "Cobalt Rota"; + + /** + * Recommended session margin (in points). The preset sets its own page + * geometry — landscape A4 and the design's own margins — inside + * {@code compose}, so callers leave the session margin at zero and let the + * preset own the page frame. + */ + public static final double RECOMMENDED_MARGIN = 0.0; + + private CobaltRota() { + } + + /** + * 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, StructuredRotaDocumentSpec spec) { + Objects.requireNonNull(document, "document"); + StructuredRotaData rota = Objects.requireNonNull(spec, "spec").rota(); + + renderChrome(document, rota); + + document.pageFlow(page -> { + // spacing(0): the sheet is one table and the flow holds nothing + // else, so a flow spacing would only push it off its margin. + page.name("CobaltRota").spacing(0); + CobaltStyles.Grid grid = CobaltStyles.Grid.of(rota.days().size()); + page.addTable(table -> { + table.name("Schedule") + .columns(columns(grid)) + .padding(DocumentInsets.zero()) + .margin(DocumentInsets.zero()); + CobaltHeader.render(table, rota, grid); + CobaltRows.renderLegend(table, rota.legend(), grid); + CobaltRows.renderCovers(table, rota, grid); + for (RotaGroup group : rota.groups()) { + CobaltRows.renderBand(table, group, grid); + int row = 0; + for (RotaStaff staff : group.staff()) { + CobaltRows.renderStaff(table, staff, grid, row++ % 2 == 1); + } + } + }); + }); + } + + /** + * The page and the line that closes it. + * + *

      The footer is chrome rather than a last row of the table, because + * it repeats on a continuation page and the table's rows do not. Its + * rule is deliberately lighter than the grid's: the zone fixes the gap + * between rule and text, so a heavier one crowds the text against + * it.

      + */ + private static void renderChrome(DocumentSession document, StructuredRotaData rota) { + document.pageSize(PAGE) + .margin(PAGE_MARGIN) + .pageBackground(PAPER); + + String name = rota.venue().footerName(); + String range = rota.week().rangeLabel(); + String signature = name.isBlank() || range.isBlank() + ? name + range + : name + " | " + range; + + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + // The zone's depth is what places the footer: the separator + // draws at its top and the text just beneath. + .height((float) (MARGIN_BOTTOM * 0.90)) + .leftText(rota.footer().note()) + .rightText(signature) + .fontSize((float) FOOTER_SIZE) + .textColor(NAVY) + .showSeparator(true) + .separatorColor(NAVY) + .separatorThickness((float) FOOTER_RULE_WIDTH) + .build()); + } + + /** + * The label column and one column per day, all fixed. + * + *

      Fixed and not weighted: a weight is a share of what is left, and a + * table's own weights would have to be restated on every one of the + * rows, where a width is stated once for the sheet.

      + */ + private static DocumentTableColumn[] columns(CobaltStyles.Grid grid) { + DocumentTableColumn[] columns = new DocumentTableColumn[grid.columnCount()]; + columns[0] = DocumentTableColumn.fixed(LABEL_COLUMN_WIDTH); + for (int day = 1; day < grid.columnCount(); day++) { + columns[day] = DocumentTableColumn.fixed(grid.dayWidth()); + } + return columns; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltRows.java b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltRows.java new file mode 100644 index 000000000..9460fcb07 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltRows.java @@ -0,0 +1,300 @@ +package com.demcha.compose.document.templates.rota.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.RowBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +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.rota.RotaDay; +import com.demcha.compose.document.templates.data.rota.RotaGroup; +import com.demcha.compose.document.templates.data.rota.RotaLegend; +import com.demcha.compose.document.templates.data.rota.RotaShift; +import com.demcha.compose.document.templates.data.rota.RotaStaff; +import com.demcha.compose.document.templates.data.rota.ShiftEmphasis; +import com.demcha.compose.document.templates.data.rota.ShiftStatus; +import com.demcha.compose.document.templates.data.rota.StructuredRotaData; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.BAND_ICON_SIZE; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.BAND_PAD_X; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.BAND_PAD_Y; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.CELL_PAD_Y; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.CHIP_CORNER_RADIUS; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.CHIP_HEIGHT; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.CHIP_STACK_GAP; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.CHIP_STACK_HEIGHT; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.COVERS_LABEL; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.COVERS_PAD_Y; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.COVERS_TAG; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.COVERS_VALUE; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.GRID_RULE; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.GROUP_LABEL; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.LABEL_PAD_X; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.LEGEND_CHIP_HEIGHT; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.LEGEND_LABEL; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.LEGEND_PAD_Y; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.NAVY; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.NAVY_RULE; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.PAPER; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.SINGLE_SLOT_PAD_Y; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.STAFF_NAME; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.ZEBRA_TINT; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.chipCellStyle; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.colorFor; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.labelOnFillFor; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.slotStyle; +import static com.demcha.compose.document.templates.rota.presets.CobaltStyles.textCellStyle; + +/** + * Every row of the sheet below the header: what the colours mean, how busy each + * day is, and then the bands of staff and their days. + */ +final class CobaltRows { + + private CobaltRows() { + } + + /** + * The strip of swatches that says what the colours mean. + * + *

      As many strips as it takes. A site documents as many statuses as it + * uses and the sheet has as many columns as it has days; where the first + * outruns the second the legend runs onto another row rather than losing + * its tail — a status a reader cannot look up is worse than a second + * strip.

      + */ + static void renderLegend(TableBuilder table, RotaLegend legend, CobaltStyles.Grid grid) { + if (!legend.isPresent()) { + return; + } + List entries = legend.entries(); + int perRow = Math.max(1, grid.days()); + int strips = Math.max(1, (entries.size() + perRow - 1) / perRow); + for (int strip = 0; strip < strips; strip++) { + List cells = new ArrayList<>(grid.columnCount()); + // Only the first strip is labelled; the ones under it continue it. + cells.add(DocumentTableCell.text(strip == 0 ? legend.label() : "") + .withStyle(textCellStyle(LEGEND_LABEL, DocumentTableTextAnchor.CENTER, + LEGEND_PAD_Y, LABEL_PAD_X, GRID_RULE, PAPER))); + int from = strip * perRow; + int to = Math.min(entries.size(), from + perRow); + for (int i = from; i < to; i++) { + cells.add(DocumentTableCell.node(swatchNode(entries.get(i), grid)) + .withStyle(chipCellStyle(grid.legendInset(), LEGEND_PAD_Y, + GRID_RULE, PAPER))); + } + squareOff(cells, grid, GRID_RULE, PAPER, LEGEND_PAD_Y); + table.rowCells(cells); + } + } + + private static DocumentNode swatchNode(RotaLegend.Entry entry, CobaltStyles.Grid grid) { + return new ShapeContainerBuilder() + .name("LegendSwatch") + .roundedRect(grid.legendWidth(), LEGEND_CHIP_HEIGHT, CHIP_CORNER_RADIUS) + .fillColor(colorFor(entry.status())) + .center(CobaltChips.label(entry.label(), + labelOnFillFor(entry.status(), false), grid.legendWidth())) + .build(); + } + + /** + * How many each day is expecting, split across the two services. + * + *

      Drawn only when the rota says. A navy bar with a blank label over seven + * empty boxes is two rows of a twelve-person sheet spent on nothing, and the + * sheet is short of rows as it is.

      + */ + static void renderCovers(TableBuilder table, StructuredRotaData rota, + CobaltStyles.Grid grid) { + RotaLegend legend = rota.legend(); + boolean stated = !legend.coversLabel().isBlank() + || rota.days().stream().anyMatch(day -> day.covers().isPresent()); + if (!stated) { + return; + } + DocumentTableStyle value = DocumentTableStyle.builder() + .padding(new DocumentInsets( + COVERS_PAD_Y, grid.cellPadX(), COVERS_PAD_Y, grid.cellPadX())) + .fillColor(PAPER) + .stroke(NAVY_RULE) + .textStyle(COVERS_VALUE) + .textAnchor(DocumentTableTextAnchor.CENTER) + .lineSpacing(0) + .build(); + List cells = new ArrayList<>(grid.columnCount()); + cells.add(DocumentTableCell.text(legend.coversLabel()) + .withStyle(DocumentTableStyle.builder() + .padding(new DocumentInsets( + COVERS_PAD_Y, LABEL_PAD_X, COVERS_PAD_Y, LABEL_PAD_X)) + .fillColor(NAVY) + .stroke(NAVY_RULE) + .textStyle(COVERS_LABEL) + .textAnchor(DocumentTableTextAnchor.CENTER) + .lineSpacing(0) + .build())); + for (RotaDay day : rota.days()) { + cells.add(DocumentTableCell.node(coversNode(day, legend)).withStyle(value)); + } + squareOff(cells, grid, NAVY_RULE, PAPER, COVERS_PAD_Y); + table.rowCells(cells); + } + + /** + * The two counts on one line, each behind its own mark. + * + *

      Five runs and not one string: the marks are set smaller and paler than + * the figures, which is what stops a reader having to know from elsewhere + * which count is which.

      + */ + private static DocumentNode coversNode(RotaDay day, RotaLegend legend) { + ParagraphBuilder paragraph = new ParagraphBuilder() + .name("CoversValue") + .textStyle(COVERS_VALUE) + .align(TextAlign.CENTER) + .lineSpacing(0) + .margin(DocumentInsets.zero()); + paragraph.rich(rich -> rich + .style(legend.coversLunchLabel() + " ", COVERS_TAG) + .style(day.covers().lunch(), COVERS_VALUE) + .style(" / ", COVERS_TAG) + .style(legend.coversDinnerLabel() + " ", COVERS_TAG) + .style(day.covers().dinner(), COVERS_VALUE)); + return paragraph.build(); + } + + /** The navy strip that opens a band of staff. */ + static void renderBand(TableBuilder table, RotaGroup group, CobaltStyles.Grid grid) { + RowBuilder band = new RowBuilder() + .name("GroupBand") + .verticalAlign(RowVerticalAlign.CENTER); + if (CobaltIcons.has(group.icon())) { + band.weights(BAND_ICON_SIZE, CONTENT_WIDTH - BAND_ICON_SIZE) + .add(CobaltIcons.icon(group.icon()).node(BAND_ICON_SIZE)); + } + band.addParagraph(p -> p + .name("GroupLabel") + .text(group.label()) + .textStyle(GROUP_LABEL) + .align(TextAlign.LEFT) + .lineSpacing(0)); + table.rowCells(DocumentTableCell.node(band.build()) + .withStyle(DocumentTableStyle.builder() + .padding(new DocumentInsets(BAND_PAD_Y, BAND_PAD_X, BAND_PAD_Y, BAND_PAD_X)) + .fillColor(NAVY) + .stroke(NAVY_RULE) + .textStyle(GROUP_LABEL) + .textAnchor(DocumentTableTextAnchor.CENTER_LEFT) + .lineSpacing(0) + .build()) + .colSpan(grid.columnCount())); + } + + /** + * One person and their days. + * + *

      The row's fill is threaded by hand into every cell and on into the + * plain chips inside them, rather than left to the table's own striping: a + * stripe set on the table would also stripe the header, the legend, the + * covers and the bands, and each of those otherwise paints its own paper + * over it.

      + * + * @param table the sheet's one table + * @param staff the person + * @param grid the sheet's geometry, which says how many days to walk + * @param stripe whether this row takes the tint + */ + static void renderStaff(TableBuilder table, RotaStaff staff, CobaltStyles.Grid grid, + boolean stripe) { + DocumentColor rowFill = stripe ? ZEBRA_TINT : PAPER; + List cells = new ArrayList<>(grid.columnCount()); + cells.add(DocumentTableCell.text(staff.name()) + .withStyle(textCellStyle(STAFF_NAME, DocumentTableTextAnchor.CENTER, + CELL_PAD_Y, LABEL_PAD_X, GRID_RULE, rowFill))); + for (int day = 0; day < grid.days(); day++) { + cells.add(shiftCell(staff.day(day), grid, rowFill)); + } + table.rowCells(cells); + } + + /** + * One day of one person: a block of the sheet's own height, holding none, + * one, or a stacked pair of chips. + * + *

      The block is a nested one-column table because a cell places a node + * child at its top: without a block of a stated height a short chip in a row + * made tall by a neighbour would hang with all the slack beneath it.

      + */ + private static DocumentTableCell shiftCell(List shifts, CobaltStyles.Grid grid, + DocumentColor rowFill) { + return DocumentTableCell.node(shiftBlock(shifts, grid, rowFill)) + .withStyle(chipCellStyle(grid.chipInsetX(), CELL_PAD_Y * 0.6, GRID_RULE, rowFill)); + } + + private static DocumentNode shiftBlock(List shifts, CobaltStyles.Grid grid, + DocumentColor rowFill) { + double width = grid.chipWidth(); + TableBuilder block = new TableBuilder() + .name("ShiftBlock") + .columns(DocumentTableColumn.fixed(width)) + .padding(DocumentInsets.zero()) + .margin(DocumentInsets.zero()); + if (shifts.isEmpty()) { + // An empty day is still a block of the same height, so the row it + // sits in does not collapse around it. + block.rowCells(DocumentTableCell.node(CobaltChips.chip( + "", ShiftStatus.NONE, ShiftEmphasis.PLAIN, width, CHIP_HEIGHT, + false, rowFill)) + .withStyle(slotStyle(SINGLE_SLOT_PAD_Y, rowFill))); + return block.build(); + } + if (shifts.size() == 1) { + RotaShift only = shifts.get(0); + block.rowCells(DocumentTableCell.node(CobaltChips.chip( + only.text(), only.status(), only.emphasis(), width, CHIP_HEIGHT, + true, rowFill)) + .withStyle(slotStyle(SINGLE_SLOT_PAD_Y, rowFill))); + return block.build(); + } + for (RotaShift shift : shifts) { + block.rowCells(DocumentTableCell.node(CobaltChips.chip( + shift.text(), shift.status(), shift.emphasis(), width, + CHIP_STACK_HEIGHT, false, rowFill)) + .withStyle(slotStyle(CHIP_STACK_GAP / 2, rowFill))); + } + return block.build(); + } + + /** + * Makes a row exactly as wide as the sheet. + * + *

      The legend documents as many statuses as a site uses and the sheet has + * as many columns as it has days; the two are not the same number. A short + * row is closed with empty cells carrying its own rule, and a long one is + * cut — either way the table stays square, which a ragged row would + * not.

      + */ + private static void squareOff(List cells, CobaltStyles.Grid grid, + DocumentStroke rule, DocumentColor fill, double padY) { + while (cells.size() < grid.columnCount()) { + cells.add(DocumentTableCell.text("") + .withStyle(textCellStyle(LEGEND_LABEL, DocumentTableTextAnchor.CENTER, + padY, grid.cellPadX(), rule, fill))); + } + while (cells.size() > grid.columnCount()) { + cells.remove(cells.size() - 1); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltStyles.java new file mode 100644 index 000000000..c4b96388f --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/CobaltStyles.java @@ -0,0 +1,502 @@ +package com.demcha.compose.document.templates.rota.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.document.table.DocumentTableTextAnchor; +import com.demcha.compose.document.templates.data.rota.ShiftStatus; +import com.demcha.compose.font.FontName; + +/** + * Every colour, size and measurement of the Cobalt rota. + * + *

      Two roots, and everything derives from them

      + * + *

      Horizontal geometry derives from the page: the label column takes a + * measured share of the content width and the day columns divide what is + * left. Type derives from {@link #BODY_SIZE}: every face is a ratio of it. Two + * numbers move the sheet, and the rest follows.

      + * + *

      One rule width, many colours

      + * + *

      Every cell edge in the table is drawn at {@link #GRID_LINE_WIDTH}; only the + * colour changes. A cell's stroke is centred on its box and so reaches half its + * width outside it — mix widths, or leave a neighbour unstroked, and the shared + * edge lands in a different place on each side and the grid steps.

      + */ +final class CobaltStyles { + + private CobaltStyles() { + } + + // ------------------------------------------------------------------ + // The page + // ------------------------------------------------------------------ + + /** A rota is read across its days, not down them, so the page turns on its side. */ + static final DocumentPageSize PAGE = DocumentPageSize.A4.landscape(); + + static final double MARGIN_X = PAGE.width() * 0.01475; + static final double MARGIN_TOP = PAGE.height() * 0.0178; + + /** + * Deep enough to hold the footer chrome. The separator draws at the top of + * the footer zone and the text just beneath it, so the zone's depth is what + * places the footer. + */ + static final double MARGIN_BOTTOM = PAGE.height() * 0.0654; + + static final DocumentInsets PAGE_MARGIN = + new DocumentInsets(MARGIN_TOP, MARGIN_X, MARGIN_BOTTOM, MARGIN_X); + + static final double CONTENT_WIDTH = PAGE.width() - 2 * MARGIN_X; + + // ------------------------------------------------------------------ + // The grid + // ------------------------------------------------------------------ + + /** + * The share of the content width the staff-name column takes. Every other + * horizontal dimension derives from it: the day columns are what is left, + * divided evenly. Change this one number and the grid moves together. + */ + static final double LABEL_COLUMN_WEIGHT = 0.1253; + + static final double LABEL_COLUMN_WIDTH = CONTENT_WIDTH * LABEL_COLUMN_WEIGHT; + + /** + * The horizontal geometry of one sheet, which is a property of the document + * rather than of the design: the day columns divide what the label column + * leaves, so a rota of five days makes five wider columns and one of seven + * makes seven narrower ones. Everything that sits inside a day column — its + * padding, its chips, its legend swatch — is a fraction of that width, so + * all of it moves together. + * + * @param days how many day columns the sheet has + * @param dayWidth the width of one of them + * @param cellPadX a body cell's horizontal padding + * @param chipInsetX the gap between a chip and its column's edge + * @param chipWidth what is left for the chip itself + * @param legendInset the same gap for a legend swatch, which sits closer + * @param legendWidth what is left for the swatch + */ + record Grid(int days, double dayWidth, double cellPadX, double chipInsetX, + double chipWidth, double legendInset, double legendWidth) { + + /** + * Rejects a grid whose parts do not belong to one another. + * + *

      Six of the seven components derive from the first, so the only way + * to build a grid is {@link #of(int)} — the check is here so that stays + * true rather than depending on nobody calling the constructor.

      + */ + Grid { + if (days < 0) { + throw new IllegalArgumentException("A rota cannot have " + days + " days."); + } + if (dayWidth <= 0 || chipWidth <= 0 || legendWidth <= 0) { + throw new IllegalArgumentException( + "Every width of a rota grid must be positive; got day " + dayWidth + + ", chip " + chipWidth + ", legend " + legendWidth + "."); + } + } + + /** + * The grid a rota of this many days is drawn on. + * + * @param days the document's own day count + * @return the geometry + */ + static Grid of(int days) { + // A rota with no days still has its label column, and a width is + // still asked for: one column's worth keeps the arithmetic finite + // and nothing is drawn in it. + double width = CONTENT_WIDTH * (1 - LABEL_COLUMN_WEIGHT) / Math.max(1, days); + double chipInset = width * 0.035; + double legendInset = width * 0.012; + return new Grid(days, width, width * 0.03, chipInset, width - 2 * chipInset, + legendInset, width - 2 * legendInset); + } + + /** The label column plus one per day. */ + int columnCount() { + return days + 1; + } + } + + /** + * The masthead rule, the day names, the day notes and the rule that closes + * the header — four rows, all repeating on a continuation page. + */ + static final int HEADER_ROW_COUNT = 4; + + static final double STAFF_ROW_HEIGHT = PAGE.height() * 0.0417; + static final double BAND_HEIGHT = PAGE.height() * 0.0332; + static final double BAND_ICON_SIZE = BAND_HEIGHT * 0.52; + + // ------------------------------------------------------------------ + // Rules: one hierarchy, one base + // ------------------------------------------------------------------ + + /** + * The hairline the body grid is drawn with, and the unit every heavier rule + * is a multiple of. + * + *

      Not half a point, which is what a design measures and what a rota + * pinned to a wall cannot use: below about a point the grid falls under a + * device pixel the moment the page is viewed at less than full size, and the + * sheet reads as floating text with no table under it. Raising this one + * number raises the whole hierarchy with it, so the rules keep their order + * rather than flattening into each other.

      + */ + static final double GRID_LINE_WIDTH = 0.9; + + /** The outline chip's hairline: a foreground detail, just above the grid. */ + static final double CHIP_OUTLINE_WIDTH = GRID_LINE_WIDTH * 1.22; + + /** The rule closing the header, heavier so the two read as different things. */ + static final double BODY_TOP_RULE_THICKNESS = GRID_LINE_WIDTH * 1.78; + + /** The masthead's rule, the heaviest line on the sheet. */ + static final double MASTHEAD_RULE_THICKNESS = GRID_LINE_WIDTH * 2.1; + + /** + * The footer's rule, which is chrome and not part of the table's grid, and + * so is deliberately not tied to the hierarchy above. + * + *

      {@code DocumentHeaderFooter} fixes the gap between that rule and the + * footer text, so a heavier rule crowds the text against it.

      + */ + static final double FOOTER_RULE_WIDTH = 0.5; + + // ------------------------------------------------------------------ + // Chips + // ------------------------------------------------------------------ + + /** A lone entry fills its cell: about seven tenths of the row. */ + static final double CHIP_HEIGHT = STAFF_ROW_HEIGHT * 0.705; + + /** One of a stacked pair is shorter, so two and a gap fit the same block. */ + static final double CHIP_STACK_HEIGHT = STAFF_ROW_HEIGHT * 0.37; + + static final double CHIP_STACK_GAP = 1.2; + static final double CHIP_CORNER_RADIUS = CHIP_HEIGHT * 0.23; + + /** + * The height every day cell's content occupies, whatever it holds. + * + *

      This is what makes a chip sit centred. A table cell places a node child + * at its top — {@code textAnchor} seats text, not a node — so a + * short chip in a row made tall by a neighbouring cell would hang with all + * the slack beneath it. Giving every day cell the same content height leaves + * no slack to hang in: a stacked pair fills this exactly, and a lone chip is + * centred in it by {@link #SINGLE_SLOT_PAD_Y}, which is the difference + * halved rather than a number nudged until it looked right.

      + */ + static final double CELL_BLOCK_HEIGHT = 2 * CHIP_STACK_HEIGHT + 2 * CHIP_STACK_GAP; + + /** Half the room a lone chip does not use, so it lands in the middle. */ + static final double SINGLE_SLOT_PAD_Y = (CELL_BLOCK_HEIGHT - CHIP_HEIGHT) / 2; + + /** The legend's swatches sit closer to their column's edges than a shift does. */ + static final double LEGEND_CHIP_HEIGHT = STAFF_ROW_HEIGHT * 0.62; + + // ------------------------------------------------------------------ + // Padding + // ------------------------------------------------------------------ + + static final double CELL_PAD_Y = STAFF_ROW_HEIGHT * 0.12; + + /** + * The legend and covers rows are taller than a staff row and own their own + * padding: one constant for two different rows would make shrinking the + * staff rows shorten these with them. + */ + static final double LEGEND_PAD_Y = STAFF_ROW_HEIGHT * 0.214; + static final double COVERS_PAD_Y = STAFF_ROW_HEIGHT * 0.270; + + static final double DAY_NAME_PAD_TOP = PAGE.height() * 0.010; + static final double DAY_NAME_PAD_BOTTOM = PAGE.height() * 0.018; + static final double DAY_NOTE_PAD_TOP = PAGE.height() * 0.012; + static final double DAY_NOTE_PAD_BOTTOM = PAGE.height() * 0.018; + + /** + * Barely any vertical padding: this cell sets the header row's height, and + * the day-name cell's generous insets here cost enough page to push a + * twelve-person sheet onto a second one. + */ + static final double LABEL_HEADER_PAD_Y = CELL_PAD_Y * 0.4; + + static final double BAND_PAD_X = CONTENT_WIDTH * 0.008; + static final double BAND_PAD_Y = BAND_HEIGHT * 0.22; + + // ------------------------------------------------------------------ + // Type + // ------------------------------------------------------------------ + + /** + * The face the sheet is set in. The templates artifact carries no fonts: + * Carlito and Spectral arrive with {@code graph-compose-fonts} on the + * classpath, or a caller registers families of those names on the session + * itself. With neither, the engine substitutes and every size is solved for + * type that is not there. + */ + static final FontName SANS = FontName.CARLITO; + + /** The wordmark's face, and the only serif on the sheet. */ + static final FontName SERIF = FontName.SPECTRAL; + + /** The body face every other size is a ratio of. */ + static final double BODY_SIZE = 10.4; + + /** + * The label column's own horizontal padding. + * + *

      Taken once from a seven-day grid and then held there. The label + * column's width does not change with the day count and the mark in it + * should not either: derived live, a five-day rota would set its wordmark at + * a different size from a seven-day one for no reason a reader could see. + * The seven is the design's own, and the number it produces is the padding + * the design gives this column.

      + */ + static final double LABEL_PAD_X = Grid.of(7).cellPadX(); + + /** + * The width the lockup gets: its column less the padding holding it off the + * rule that boxes the cell. Stated on its own because it is the constraint + * the wordmark is sized against. + */ + static final double LOCKUP_WIDTH = LABEL_COLUMN_WIDTH - 2 * LABEL_PAD_X; + + /** + * Sized by the width it has to fit rather than by the body scale: the lockup + * sits in the label column beside the day names, and this fraction is what + * keeps the wordmark on one line. + */ + static final double WORDMARK_SIZE = LOCKUP_WIDTH * 0.22; + static final double WORDMARK_SUB_SIZE = WORDMARK_SIZE * 0.4766; + + /** + * The lockup's two lines, closed up. + * + *

      Negative because it corrects a gap nothing asked for: the section + * stacks its children with no spacing and the wordmark's own line box still + * leaves about a third of its size between the lines. It would belong on the + * section, which owns the distance between its children, but {@code spacing} + * refuses a negative value — so it is a top margin on the one child it + * applies to. It is a fraction of the wordmark because the gap it corrects is + * that face's line box, so the two move together.

      + */ + static final double LOCKUP_LINE_SPACING = -WORDMARK_SIZE * 0.3076; + + static final double DAY_NAME_SIZE = BODY_SIZE * 0.87; + static final double DAY_ORDINAL_SUFFIX_SIZE = DAY_NAME_SIZE * 0.68; + static final double DAY_NOTE_SIZE = BODY_SIZE * 0.82; + static final double GROUP_LABEL_SIZE = BODY_SIZE * 0.95; + static final double STAFF_NAME_SIZE = BODY_SIZE * 1.03; + static final double LEGEND_LABEL_SIZE = BODY_SIZE * 0.79; + static final double COVERS_LABEL_SIZE = BODY_SIZE * 0.96; + static final double COVERS_VALUE_SIZE = BODY_SIZE; + static final double COVERS_TAG_SIZE = BODY_SIZE * 0.64; + static final double FOOTER_SIZE = BODY_SIZE * 0.70; + + /** + * The one face a box constrains rather than the scale: a chip in a stacked + * pair has only {@link #CHIP_STACK_HEIGHT} to sit in, so its size is a + * fraction of that slot. Tie it to the body scale and the pair stops fitting + * the block a single chip fills. + */ + static final double CHIP_SIZE = CHIP_STACK_HEIGHT * 0.89; + + /** A lone entry carries the body face; a stacked one keeps the smaller. */ + static final double CHIP_SINGLE_SIZE = BODY_SIZE; + + // ------------------------------------------------------------------ + // Colour + // ------------------------------------------------------------------ + + static final DocumentColor NAVY = DocumentColor.rgb(16, 32, 80); + static final DocumentColor GOLD = DocumentColor.rgb(166, 138, 66); + static final DocumentColor PAPER = DocumentColor.rgb(255, 255, 255); + static final DocumentColor GRID_LINE = DocumentColor.rgb(208, 208, 224); + + /** + * The tint on alternate staff rows: pale enough that the grid drawn over it + * stays the darker of the two, and that navy text and every status colour + * keep their contrast. Its job is to give the eye a rail to follow across + * the columns, not to be seen. + */ + static final DocumentColor ZEBRA_TINT = DocumentColor.rgb(228, 235, 248); + + /** Navy at half strength: enough to read the tag, not enough to compete. */ + static final DocumentColor COVERS_TAG_INK = DocumentColor.rgb(120, 132, 168); + + static final DocumentColor STATUS_REQUEST = DocumentColor.rgb(176, 176, 192); + static final DocumentColor STATUS_OFF = DocumentColor.rgb(208, 16, 16); + static final DocumentColor STATUS_HOLIDAY = DocumentColor.rgb(255, 192, 32); + static final DocumentColor STATUS_STOCK = DocumentColor.rgb(16, 160, 80); + static final DocumentColor STATUS_STANDBY = DocumentColor.rgb(192, 144, 224); + static final DocumentColor STATUS_TRAINING = DocumentColor.rgb(240, 80, 16); + static final DocumentColor STATUS_SUPPORT = DocumentColor.rgb(208, 216, 240); + + static final DocumentStroke NAVY_RULE = DocumentStroke.of(NAVY, GRID_LINE_WIDTH); + static final DocumentStroke GRID_RULE = DocumentStroke.of(GRID_LINE, GRID_LINE_WIDTH); + + // ------------------------------------------------------------------ + // Text styles + // ------------------------------------------------------------------ + + static DocumentTextStyle sans(double size, DocumentTextDecoration decoration, + DocumentColor color) { + return DocumentTextStyle.builder() + .fontName(SANS).size(size).decoration(decoration).color(color).build(); + } + + static DocumentTextStyle serif(double size, DocumentTextDecoration decoration, + DocumentColor color) { + return DocumentTextStyle.builder() + .fontName(SERIF).size(size).decoration(decoration).color(color).build(); + } + + static final DocumentTextStyle WORDMARK = + serif(WORDMARK_SIZE, DocumentTextDecoration.DEFAULT, GOLD); + static final DocumentTextStyle WORDMARK_SUB = + sans(WORDMARK_SUB_SIZE, DocumentTextDecoration.DEFAULT, GOLD); + static final DocumentTextStyle DAY_NAME = + sans(DAY_NAME_SIZE, DocumentTextDecoration.BOLD, NAVY); + static final DocumentTextStyle DAY_ORDINAL_SUFFIX = + sans(DAY_ORDINAL_SUFFIX_SIZE, DocumentTextDecoration.BOLD, NAVY); + static final DocumentTextStyle DAY_NOTE = + sans(DAY_NOTE_SIZE, DocumentTextDecoration.BOLD, NAVY); + static final DocumentTextStyle GROUP_LABEL = + sans(GROUP_LABEL_SIZE, DocumentTextDecoration.BOLD, PAPER); + static final DocumentTextStyle STAFF_NAME = + sans(STAFF_NAME_SIZE, DocumentTextDecoration.BOLD, NAVY); + static final DocumentTextStyle LEGEND_LABEL = + sans(LEGEND_LABEL_SIZE, DocumentTextDecoration.BOLD, NAVY); + static final DocumentTextStyle COVERS_LABEL = + sans(COVERS_LABEL_SIZE, DocumentTextDecoration.BOLD, PAPER); + static final DocumentTextStyle COVERS_VALUE = + sans(COVERS_VALUE_SIZE, DocumentTextDecoration.BOLD, NAVY); + static final DocumentTextStyle COVERS_TAG = + sans(COVERS_TAG_SIZE, DocumentTextDecoration.BOLD, COVERS_TAG_INK); + static final DocumentTextStyle CHIP_ON_LIGHT = + sans(CHIP_SIZE, DocumentTextDecoration.BOLD, NAVY); + static final DocumentTextStyle CHIP_ON_DARK = + sans(CHIP_SIZE, DocumentTextDecoration.BOLD, PAPER); + static final DocumentTextStyle CHIP_SINGLE_ON_LIGHT = + sans(CHIP_SINGLE_SIZE, DocumentTextDecoration.BOLD, NAVY); + static final DocumentTextStyle CHIP_SINGLE_ON_DARK = + sans(CHIP_SINGLE_SIZE, DocumentTextDecoration.BOLD, PAPER); + + /** + * A rule row is an empty cell, and an empty cell is as tall as its own font, + * so the rule's thickness is set as a type size. + */ + static final DocumentTextStyle MASTHEAD_RULE_TEXT = + sans(MASTHEAD_RULE_THICKNESS, DocumentTextDecoration.DEFAULT, NAVY); + static final DocumentTextStyle BODY_TOP_RULE_TEXT = + sans(BODY_TOP_RULE_THICKNESS, DocumentTextDecoration.DEFAULT, GRID_LINE); + + // ------------------------------------------------------------------ + // Cell styles + // ------------------------------------------------------------------ + + /** The colour a status is drawn in. */ + static DocumentColor colorFor(ShiftStatus status) { + return switch (status) { + case REQUEST -> STATUS_REQUEST; + case OFF -> STATUS_OFF; + case HOLIDAY -> STATUS_HOLIDAY; + case STOCK -> STATUS_STOCK; + case STANDBY -> STATUS_STANDBY; + case TRAINING -> STATUS_TRAINING; + case SUPPORT -> STATUS_SUPPORT; + case NONE -> PAPER; + }; + } + + /** + * The label colour a filled chip needs, which is a property of the status + * rather than of the chip: the pale fills carry navy labels and the + * saturated ones carry white. One white constant would make every holiday + * cell unreadable. + * + * @param status what the entry means + * @param lone whether it is the only entry in its cell, and so larger + * @return the style for its label + */ + static DocumentTextStyle labelOnFillFor(ShiftStatus status, boolean lone) { + boolean onDark = switch (status) { + case HOLIDAY, STANDBY, SUPPORT, NONE -> false; + case REQUEST, OFF, STOCK, TRAINING -> true; + }; + if (onDark) { + return lone ? CHIP_SINGLE_ON_DARK : CHIP_ON_DARK; + } + return lone ? CHIP_SINGLE_ON_LIGHT : CHIP_ON_LIGHT; + } + + /** One slot of a shift block; the padding is what seats the chip in it. */ + static DocumentTableStyle slotStyle(double padY, DocumentColor rowFill) { + return DocumentTableStyle.builder() + .padding(new DocumentInsets(padY, 0, padY, 0)) + .fillColor(rowFill) + .stroke(DocumentStroke.of(rowFill, 0)) + .textStyle(CHIP_ON_LIGHT) + .textAnchor(DocumentTableTextAnchor.CENTER) + .lineSpacing(0) + .build(); + } + + /** A cell whose content is a chip: the inset is its horizontal padding. */ + static DocumentTableStyle chipCellStyle(double insetX, double padY, + DocumentStroke rule, DocumentColor fill) { + return DocumentTableStyle.builder() + .padding(new DocumentInsets(padY, insetX, padY, insetX)) + .fillColor(fill) + .stroke(rule) + .textStyle(CHIP_ON_LIGHT) + .textAnchor(DocumentTableTextAnchor.CENTER) + .lineSpacing(0) + .build(); + } + + /** A plain text cell with the body padding and a named rule. */ + static DocumentTableStyle textCellStyle(DocumentTextStyle text, + DocumentTableTextAnchor anchor, double padY, + double padX, DocumentStroke rule, + DocumentColor fill) { + return DocumentTableStyle.builder() + .padding(new DocumentInsets(padY, padX, padY, padX)) + .fillColor(fill) + .stroke(rule) + .textStyle(text) + .textAnchor(anchor) + .lineSpacing(0) + .build(); + } + + /** + * The label column's own header cells — the lockup and the cell under it. + * + *

      Stroked, so the column is closed into the same grid as the day + * columns beside it. Left unstroked it reads as an open margin with a mark + * floating in it rather than as the first column of the sheet.

      + */ + static DocumentTableStyle labelHeaderStyle() { + return DocumentTableStyle.builder() + .padding(new DocumentInsets( + LABEL_HEADER_PAD_Y, LABEL_PAD_X, LABEL_HEADER_PAD_Y, LABEL_PAD_X)) + .fillColor(PAPER) + .stroke(GRID_RULE) + .textStyle(DAY_NAME) + .textAnchor(DocumentTableTextAnchor.CENTER) + .lineSpacing(0) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/package-info.java new file mode 100644 index 000000000..d8ae02be6 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/rota/presets/package-info.java @@ -0,0 +1,21 @@ +/** + * Layered rota presets — thin orchestrators that compose a staff rota on the + * canonical DSL. + * + *

      Each preset is a {@code final} class whose {@code create} factory returns a + * {@link com.demcha.compose.document.templates.api.DocumentTemplate} + * parameterised on + * {@link com.demcha.compose.document.templates.data.rota.StructuredRotaDocumentSpec}, + * carrying its measured geometry and palette as preset-local tokens because it + * reproduces one designed look rather than a themeable family + * ({@code CobaltRota}).

      + * + *

      A rota is read across a row rather than down a page, so a preset here is + * built on one table whose columns are the document's own days. Colour belongs + * to the preset and meaning to the document: the model states a + * {@link com.demcha.compose.document.templates.data.rota.ShiftStatus} and the + * preset decides what that status looks like.

      + * + * @since 2.4.0 + */ +package com.demcha.compose.document.templates.rota.presets; diff --git a/templates/src/main/resources/templates/rota/cobalt/icons/barbacks.svg b/templates/src/main/resources/templates/rota/cobalt/icons/barbacks.svg new file mode 100644 index 000000000..15f1e345b --- /dev/null +++ b/templates/src/main/resources/templates/rota/cobalt/icons/barbacks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/rota/cobalt/icons/bartenders.svg b/templates/src/main/resources/templates/rota/cobalt/icons/bartenders.svg new file mode 100644 index 000000000..b37422ee8 --- /dev/null +++ b/templates/src/main/resources/templates/rota/cobalt/icons/bartenders.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/rota/cobalt/icons/management.svg b/templates/src/main/resources/templates/rota/cobalt/icons/management.svg new file mode 100644 index 000000000..98e94c3ac --- /dev/null +++ b/templates/src/main/resources/templates/rota/cobalt/icons/management.svg @@ -0,0 +1 @@ + \ No newline at end of file From f41d58daf8d7c25a02499d9d04f727bbb533648b Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Thu, 3 Sep 2026 00:00:33 +0100 Subject: [PATCH 46/85] test(templates): invent the schedule fixtures' people and venue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The weekly-schedule test fixture and the example data factory were written from a real bar's rota and kept what was in it: eleven people by their own names, the venue's name in the document title, and two third parties named in the day notes. Fixture content should be invented, and none of that was. Eleven invented names replace them, id and display name together so the assignments still resolve; the venue becomes Quayside; the notes name no one. The shape is untouched — eleven people, seven days, the same categories, the same assignments, the same metric rows — so every assertion that read this fixture reads the same thing, and the two schedule tests pass unchanged. assets/readme/examples/weekly-schedule.pdf is re-rendered, which the drift gate asked for: the preview prints two of the note strings. Nothing else in it moves, because that example carries its own already-invented cast. Reactor gate green, 1234 tests; examples module green, 77 tests. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 9 ++ assets/readme/examples/weekly-schedule.pdf | Bin 8336 -> 8334 bytes .../examples/support/ExampleDataFactory.java | 112 ++++++++-------- .../schedule/WeeklyScheduleFileExample.java | 4 +- .../WeeklyScheduleDataBuilderTest.java | 12 +- .../WeeklyScheduleDocumentSpecTest.java | 6 +- .../mock/WeeklyScheduleDataFixtures.java | 120 +++++++++--------- 7 files changed, 136 insertions(+), 127 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9771799b..8c9f9b199 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -870,6 +870,15 @@ follow semantic versioning; release dates are ISO 8601. ### Tests +- **The schedule fixtures no longer carry a real venue's staff.** The weekly-schedule + test fixture and the example data factory were written from a real bar's rota and kept + its people's names, its venue name, and two third parties named in the day notes. + Fixture content should be invented, and this is now: eleven invented names, an + invented venue, and generic notes. The shape — eleven people, seven days, the same + categories and the same assignments — is unchanged, so every assertion that read it + reads the same thing. `assets/readme/examples/weekly-schedule.pdf` is re-rendered for + the two note strings it prints; nothing else in it moves. + - **The CodeQL scope guard can no longer be emptied by rewriting a deploy command.** `CodeQlScopeGuardTest` asks whether every module a release publishes is inside the security scan, and it read the answer's left-hand side out of the publish workflows by diff --git a/assets/readme/examples/weekly-schedule.pdf b/assets/readme/examples/weekly-schedule.pdf index 8c43e6531881f29ea867655d282a6f15c0068d1d..82bc8c0aa4b8295e6452059e67cfd7317bb6d63a 100644 GIT binary patch delta 7303 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 LF)&CeOQZb{>f7x2 diff --git a/examples/src/main/java/com/demcha/examples/support/ExampleDataFactory.java b/examples/src/main/java/com/demcha/examples/support/ExampleDataFactory.java index 4ab8455be..6b881b27f 100644 --- a/examples/src/main/java/com/demcha/examples/support/ExampleDataFactory.java +++ b/examples/src/main/java/com/demcha/examples/support/ExampleDataFactory.java @@ -98,12 +98,12 @@ public static ProposalDocumentSpec sampleProposal() { public static WeeklyScheduleDocumentSpec sampleWeeklySchedule() { return WeeklyScheduleDocumentSpec.builder() - .title("Scott's Weekly Floor Schedule") + .title("Quayside Weekly Floor Schedule") .weekLabel("Week Of 30 Mar - 05 Apr 2026") .day("mon", "Monday\n30th", "Clean crushed ice\nMachine & area", "request") .day("tue", "Tuesday\n31st", "Pianist 18:30\nClean ice machine", "off") - .day("wed", "Wednesday\n1st", "Motown GF\nPianist FF", "hol") - .day("thu", "Thursday\n2nd", "Ex hire terrace\ndinner\nMGM meeting\n3:30pm", "stock") + .day("wed", "Wednesday\n1st", "Soul GF\nPianist FF", "hol") + .day("thu", "Thursday\n2nd", "Ex hire terrace\ndinner\nPartner meeting\n3:30pm", "stock") .day("fri", "Friday\n3rd", "Good Friday\nPianist 19:00", "standby") .day("sat", "Saturday\n4th", "Masterclass 2x2PAX\nPianist 19:00", "training") .day("sun", "Sunday\n5th", "Easter Sunday\nFull stock take", "bar-back") @@ -115,62 +115,62 @@ public static WeeklyScheduleDocumentSpec sampleWeeklySchedule() { .category("training", "TRAINING", new Color(245, 131, 24), new Color(183, 82, 0)) .category("bar-back", "BAR BACK", new Color(176, 132, 76), new Color(120, 88, 44)) .headerMetric("COVERS", "27 / 37", "41 / 36", "30 / 29", "57 / 63", "46 / 71", "73 / 97", "155 / 26") - .headerMetric("TEAM FOCUS", "Alex floor", "Glass count", "Vee lab", "Sergii lab", "Pianist", "Alex floor", "Sergii floor") - .person("sergii", "SERGII", 10) - .person("mark", "MARK", 20) - .person("alex", "ALEX", 30) - .person("bianca", "BIANCA", 40) + .headerMetric("TEAM FOCUS", "Iva floor", "Glass count", "Nils lab", "Rowan lab", "Pianist", "Iva floor", "Rowan floor") + .person("rowan", "ROWAN", 10) + .person("nils", "NILS", 20) + .person("iva", "IVA", 30) + .person("pilar", "PILAR", 40) .person("sam", "SAM", 50) .person("kira", "KIRA", 60) - .person("daria", "DARIA", 70) - .person("violetta", "VIOLETTA", 80) - .person("peter", "PETER", 90) + .person("freya", "FREYA", 70) + .person("noor", "NOOR", 80) + .person("bowen", "BOWEN", 90) .person("den", "DEN", 100) - .person("daniel", "DANIEL", 110) - .assignment("sergii", "mon", "stock", slot("09:00", "18:00")) - .assignment("sergii", "thu", "request", slot("09:00", "18:00")) - .assignment("sergii", "fri", "training", slot("08:00", "16:00"), slot("16:00", "22:00")) - .assignment("sergii", "sun", "standby", slot("12:00", "16:00"), slot("16:00", "22:00")) - .assignment("mark", "mon", "request", slot("16:00", "00:00")) - .assignment("mark", "tue", "off", slot("12:00", "18:00")) - .assignment("mark", "wed", "request", slot("16:00", "00:00")) - .assignment("mark", "fri", "standby", slot("16:00", "01:00")) - .assignment("mark", "sun", "bar-back", slot("17:00", "03:00")) - .assignment("alex", "tue", "off", slot("16:00", "00:00")) - .assignment("alex", "wed", "request", slot("16:00", "00:00")) - .assignment("alex", "thu", "request", slot("16:00", "00:00")) - .assignment("alex", "fri", "standby", slot("16:00", "22:00")) - .assignment("alex", "sat", "training", slot("12:00", "16:00"), slot("17:00", "01:00")) - .assignment("bianca", "thu", "standby", slot("16:00", "00:00")) - .assignment("bianca", "fri", "standby", slot("17:00", "01:00")) - .assignment("bianca", "sat", "training", slot("12:00", "16:00"), slot("17:00", "01:00")) - .assignment("bianca", "sun", "request", slot("12:00", "16:00"), slot("17:00", "00:00")) - .assignment("artem", "tue", "off", slot("17:00", "00:00")) - .assignment("artem", "wed", "request", slot("17:00", "00:00")) - .assignment("artem", "thu", "request", slot("17:00", "00:00")) - .assignment("artem", "fri", "standby", slot("16:00", "01:00")) - .assignment("artem", "sat", "training", slot("12:00", "16:00"), slot("17:00", "01:00")) - .assignment("kharren", "wed", "request", slot("09:00", "17:00")) - .assignment("kharren", "thu", "request", slot("09:00", "17:00")) - .assignment("kharren", "fri", "standby", slot("09:00", "17:00")) - .assignment("kharren", "sat", "training", slot("16:00", "22:00")) - .assignment("kharren", "sun", "request", slot("09:00", "16:00"), slot("17:00", "22:00")) - .assignment("daria", "sat", "training", slot("16:00", "01:00")) - .assignment("daria", "sun", "request", slot("12:00", "16:00"), slot("17:00", "00:00")) - .assignment("violetta", "tue", "request", slot("09:00", "17:00")) - .assignment("violetta", "wed", "request", slot("09:00", "18:00")) - .assignment("violetta", "fri", "standby", slot("16:00", "22:00")) - .assignment("violetta", "sat", "request", slot("09:00", "17:00")) - .assignment("peter", "fri", "standby", slot("16:00", "01:00")) - .assignment("peter", "sat", "training", slot("12:00", "16:00"), slot("17:00", "01:00")) - .assignment("dmytro", "mon", "request", slot("17:00", "00:00")) - .assignment("dmytro", "sat", "training", slot("12:00", "16:00"), slot("17:00", "01:00")) - .assignment("dmytro", "sun", "request", slot("12:00", "16:00"), slot("17:00", "00:00")) - .assignment("daniel", "tue", "request", slot("17:00", "00:00")) - .assignment("daniel", "wed", "request", slot("17:00", "00:00")) - .assignment("daniel", "thu", "standby", slot("17:00", "00:00")) - .assignment("daniel", "fri", "standby", slot("17:00", "01:00")) - .assignment("daniel", "sun", "request", slot("12:00", "16:00"), slot("17:00", "00:00")) + .person("hugo", "HUGO", 110) + .assignment("rowan", "mon", "stock", slot("09:00", "18:00")) + .assignment("rowan", "thu", "request", slot("09:00", "18:00")) + .assignment("rowan", "fri", "training", slot("08:00", "16:00"), slot("16:00", "22:00")) + .assignment("rowan", "sun", "standby", slot("12:00", "16:00"), slot("16:00", "22:00")) + .assignment("nils", "mon", "request", slot("16:00", "00:00")) + .assignment("nils", "tue", "off", slot("12:00", "18:00")) + .assignment("nils", "wed", "request", slot("16:00", "00:00")) + .assignment("nils", "fri", "standby", slot("16:00", "01:00")) + .assignment("nils", "sun", "bar-back", slot("17:00", "03:00")) + .assignment("iva", "tue", "off", slot("16:00", "00:00")) + .assignment("iva", "wed", "request", slot("16:00", "00:00")) + .assignment("iva", "thu", "request", slot("16:00", "00:00")) + .assignment("iva", "fri", "standby", slot("16:00", "22:00")) + .assignment("iva", "sat", "training", slot("12:00", "16:00"), slot("17:00", "01:00")) + .assignment("pilar", "thu", "standby", slot("16:00", "00:00")) + .assignment("pilar", "fri", "standby", slot("17:00", "01:00")) + .assignment("pilar", "sat", "training", slot("12:00", "16:00"), slot("17:00", "01:00")) + .assignment("pilar", "sun", "request", slot("12:00", "16:00"), slot("17:00", "00:00")) + .assignment("omar", "tue", "off", slot("17:00", "00:00")) + .assignment("omar", "wed", "request", slot("17:00", "00:00")) + .assignment("omar", "thu", "request", slot("17:00", "00:00")) + .assignment("omar", "fri", "standby", slot("16:00", "01:00")) + .assignment("omar", "sat", "training", slot("12:00", "16:00"), slot("17:00", "01:00")) + .assignment("lena", "wed", "request", slot("09:00", "17:00")) + .assignment("lena", "thu", "request", slot("09:00", "17:00")) + .assignment("lena", "fri", "standby", slot("09:00", "17:00")) + .assignment("lena", "sat", "training", slot("16:00", "22:00")) + .assignment("lena", "sun", "request", slot("09:00", "16:00"), slot("17:00", "22:00")) + .assignment("freya", "sat", "training", slot("16:00", "01:00")) + .assignment("freya", "sun", "request", slot("12:00", "16:00"), slot("17:00", "00:00")) + .assignment("noor", "tue", "request", slot("09:00", "17:00")) + .assignment("noor", "wed", "request", slot("09:00", "18:00")) + .assignment("noor", "fri", "standby", slot("16:00", "22:00")) + .assignment("noor", "sat", "request", slot("09:00", "17:00")) + .assignment("bowen", "fri", "standby", slot("16:00", "01:00")) + .assignment("bowen", "sat", "training", slot("12:00", "16:00"), slot("17:00", "01:00")) + .assignment("sasha", "mon", "request", slot("17:00", "00:00")) + .assignment("sasha", "sat", "training", slot("12:00", "16:00"), slot("17:00", "01:00")) + .assignment("sasha", "sun", "request", slot("12:00", "16:00"), slot("17:00", "00:00")) + .assignment("hugo", "tue", "request", slot("17:00", "00:00")) + .assignment("hugo", "wed", "request", slot("17:00", "00:00")) + .assignment("hugo", "thu", "standby", slot("17:00", "00:00")) + .assignment("hugo", "fri", "standby", slot("17:00", "01:00")) + .assignment("hugo", "sun", "request", slot("12:00", "16:00"), slot("17:00", "00:00")) .footerNote("Add or remove people by editing only the people and assignments lists.") .footerNote("Category colours and labels are driven entirely from the shared category catalog.") .build(); diff --git a/examples/src/main/java/com/demcha/examples/templates/schedule/WeeklyScheduleFileExample.java b/examples/src/main/java/com/demcha/examples/templates/schedule/WeeklyScheduleFileExample.java index 834f33377..e3eb621da 100644 --- a/examples/src/main/java/com/demcha/examples/templates/schedule/WeeklyScheduleFileExample.java +++ b/examples/src/main/java/com/demcha/examples/templates/schedule/WeeklyScheduleFileExample.java @@ -63,8 +63,8 @@ public final class WeeklyScheduleFileExample { private static final List WEEK = List.of( new DayPlan("Bank Holiday Monday / Clean Crushed Ice Machine & Area", 163, 35), new DayPlan("Pianist 18:30 / Clean Crushed Ice Machine & Area", 21, 63), - new DayPlan("TEAM DAY OUT / Motown GF / Pianist 18:30", 52, 74), - new DayPlan("Ex Hire Terrace Dinner 13PAX / Pianist 18:30 / MGM meeting 3:30pm", 35, 75), + new DayPlan("TEAM DAY OUT / Soul GF / Pianist 18:30", 52, 74), + new DayPlan("Ex Hire Terrace Dinner 13PAX / Pianist 18:30 / Partner meeting 3:30pm", 35, 75), new DayPlan("Pianist 19:00", 82, 78), new DayPlan("Ex Hire FF Lunch 44PAX / Pianist 19:00", 131, 149), new DayPlan("Masterclass 4PAX (2x2) / Line Check / Clean Cubed Ice Machine & Area", 130, 36) diff --git a/templates/src/test/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDataBuilderTest.java b/templates/src/test/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDataBuilderTest.java index f08bffc67..49006000c 100644 --- a/templates/src/test/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDataBuilderTest.java +++ b/templates/src/test/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDataBuilderTest.java @@ -31,14 +31,14 @@ void builderShouldCreateScheduleWithDaysCategoriesMetricsPeopleAssignmentsAndFoo .headerMetric(metric -> metric .label("FOCUS") .dayValues(List.of("API", "Regression"))) - .person("artem", "ARTEM", 10) + .person("omar", "OMAR", 10) .person(person -> person - .id("alex") - .displayName("ALEX") + .id("iva") + .displayName("IVA") .sortOrder(20)) - .assignment("artem", "mon", "delivery", ScheduleSlot.of("09:00", "17:00")) + .assignment("omar", "mon", "delivery", ScheduleSlot.of("09:00", "17:00")) .assignment(assignment -> assignment - .personId("alex") + .personId("iva") .dayId("tue") .categoryId("qa") .slot("10:00", "18:00") @@ -51,7 +51,7 @@ void builderShouldCreateScheduleWithDaysCategoriesMetricsPeopleAssignmentsAndFoo assertThat(schedule.days()).extracting(ScheduleDay::id).containsExactly("mon", "tue"); assertThat(schedule.categories()).extracting(ScheduleCategory::id).containsExactly("delivery", "qa"); assertThat(schedule.headerMetrics()).extracting(ScheduleMetricRow::label).containsExactly("CAPACITY", "FOCUS"); - assertThat(schedule.people()).extracting(SchedulePerson::id).containsExactly("artem", "alex"); + assertThat(schedule.people()).extracting(SchedulePerson::id).containsExactly("omar", "iva"); assertThat(schedule.assignments()).hasSize(2); assertThat(schedule.assignments().get(0).slots().get(0).displayText()).isEqualTo("09:00 17:00"); assertThat(schedule.assignments().get(1).note()).isEqualTo("Regression owner"); diff --git a/templates/src/test/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDocumentSpecTest.java b/templates/src/test/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDocumentSpecTest.java index b9442e7d5..1d3fc5746 100644 --- a/templates/src/test/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDocumentSpecTest.java +++ b/templates/src/test/java/com/demcha/compose/document/templates/data/schedule/WeeklyScheduleDocumentSpecTest.java @@ -16,8 +16,8 @@ void builderShouldCreateDocumentLevelWeeklyScheduleSpec() { .day("mon", "Monday", "Release prep", "delivery") .category("delivery", "DELIVERY", new Color(0, 173, 76), new Color(0, 110, 49)) .headerMetric("CAPACITY", "4 engineers") - .person("artem", "ARTEM", 10) - .assignment("artem", "mon", "delivery", ScheduleSlot.of("09:00", "17:00")) + .person("omar", "OMAR", 10) + .assignment("omar", "mon", "delivery", ScheduleSlot.of("09:00", "17:00")) .footerNote("Keep assignments data-driven.") .build(); @@ -34,7 +34,7 @@ void builderShouldCreateDocumentLevelWeeklyScheduleSpec() { .isEqualTo("CAPACITY"); assertThat(spec.schedule().people()).singleElement() .extracting(SchedulePerson::id) - .isEqualTo("artem"); + .isEqualTo("omar"); assertThat(spec.schedule().assignments()).singleElement() .satisfies(assignment -> assertThat(assignment.slots()).singleElement() .extracting(ScheduleSlot::displayText) diff --git a/templates/src/test/java/com/demcha/mock/WeeklyScheduleDataFixtures.java b/templates/src/test/java/com/demcha/mock/WeeklyScheduleDataFixtures.java index 9c2946be7..4cc69637e 100644 --- a/templates/src/test/java/com/demcha/mock/WeeklyScheduleDataFixtures.java +++ b/templates/src/test/java/com/demcha/mock/WeeklyScheduleDataFixtures.java @@ -19,32 +19,32 @@ private WeeklyScheduleDataFixtures() { public static WeeklyScheduleData standardSchedule() { return new WeeklyScheduleData( - "Scott's Weekly Floor Schedule", + "Quayside Weekly Floor Schedule", "Week Of 30 Mar - 05 Apr 2026", List.of( new ScheduleDay("mon", "Monday\n30th", "Clean crushed ice\nMachine & area", "request"), new ScheduleDay("tue", "Tuesday\n31st", "Pianist 18:30\nClean ice machine", "off"), - new ScheduleDay("wed", "Wednesday\n1st", "Motown GF\nPianist FF", "hol"), - new ScheduleDay("thu", "Thursday\n2nd", "Terrace\ndinner\nMGM meeting\n3:30pm", "stock"), + new ScheduleDay("wed", "Wednesday\n1st", "Soul GF\nPianist FF", "hol"), + new ScheduleDay("thu", "Thursday\n2nd", "Terrace\ndinner\nPartner meeting\n3:30pm", "stock"), new ScheduleDay("fri", "Friday\n3rd", "Good Friday\nPianist 19:00", "standby"), new ScheduleDay("sat", "Saturday\n4th", "Masterclass 2x2PAX\nPianist 19:00", "training"), new ScheduleDay("sun", "Sunday\n5th", "Easter Sunday\nFull stock take", "bar-back")), baseCategories(), List.of( new ScheduleMetricRow("COVERS", List.of("27 / 37", "41 / 36", "30 / 29", "57 / 63", "46 / 71", "73 / 97", "155 / 26")), - new ScheduleMetricRow("TEAM FOCUS", List.of("Alex floor", "Glass count", "Vee lab", "Sergii lab", "Pianist", "Alex floor", "Sergii floor"))), + new ScheduleMetricRow("TEAM FOCUS", List.of("Iva floor", "Glass count", "Nils lab", "Rowan lab", "Pianist", "Iva floor", "Rowan floor"))), List.of( - new SchedulePerson("sergii", "SERGII", 10), - new SchedulePerson("mark", "MARK", 20), - new SchedulePerson("alex", "ALEX", 30), - new SchedulePerson("bianca", "BIANCA", 40), - new SchedulePerson("artem", "ARTEM", 50), - new SchedulePerson("kharren", "KHARREN", 60), - new SchedulePerson("daria", "DARIA", 70), - new SchedulePerson("violetta", "VIOLETTA", 80), - new SchedulePerson("peter", "PETER", 90), - new SchedulePerson("dmytro", "DMYTRO", 100), - new SchedulePerson("daniel", "DANIEL", 110)), + new SchedulePerson("rowan", "ROWAN", 10), + new SchedulePerson("nils", "NILS", 20), + new SchedulePerson("iva", "IVA", 30), + new SchedulePerson("pilar", "PILAR", 40), + new SchedulePerson("omar", "OMAR", 50), + new SchedulePerson("lena", "LENA", 60), + new SchedulePerson("freya", "FREYA", 70), + new SchedulePerson("noor", "NOOR", 80), + new SchedulePerson("bowen", "BOWEN", 90), + new SchedulePerson("sasha", "SASHA", 100), + new SchedulePerson("hugo", "HUGO", 110)), baseAssignments(), List.of( "Add or remove people by editing only the people and assignments lists.", @@ -99,7 +99,7 @@ public static WeeklyScheduleData withAddedAndRemovedCategory() { categories.add(new ScheduleCategory("masterclass", "MASTERCLASS", new Color(255, 227, 163), Color.BLACK, new Color(196, 145, 16))); List assignments = new ArrayList<>(base.assignments()); - assignments.add(new ScheduleAssignment("alex", "sun", "masterclass", List.of(slot("18:00", "23:00")), "Guest setup")); + assignments.add(new ScheduleAssignment("iva", "sun", "masterclass", List.of(slot("18:00", "23:00")), "Guest setup")); return new WeeklyScheduleData( base.title(), @@ -126,50 +126,50 @@ private static List baseCategories() { private static List baseAssignments() { return List.of( - new ScheduleAssignment("sergii", "mon", "stock", List.of(slot("09:00", "18:00")), ""), - new ScheduleAssignment("sergii", "thu", "request", List.of(slot("09:00", "18:00")), ""), - new ScheduleAssignment("sergii", "fri", "training", List.of(slot("08:00", "16:00"), slot("16:00", "22:00")), ""), - new ScheduleAssignment("sergii", "sun", "standby", List.of(slot("12:00", "16:00"), slot("16:00", "22:00")), ""), - new ScheduleAssignment("mark", "mon", "request", List.of(slot("16:00", "00:00")), ""), - new ScheduleAssignment("mark", "tue", "off", List.of(slot("12:00", "18:00")), ""), - new ScheduleAssignment("mark", "wed", "request", List.of(slot("16:00", "00:00")), ""), - new ScheduleAssignment("mark", "fri", "standby", List.of(slot("16:00", "01:00")), ""), - new ScheduleAssignment("mark", "sun", "bar-back", List.of(slot("17:00", "03:00")), ""), - new ScheduleAssignment("alex", "tue", "off", List.of(slot("16:00", "00:00")), ""), - new ScheduleAssignment("alex", "wed", "request", List.of(slot("16:00", "00:00")), ""), - new ScheduleAssignment("alex", "thu", "request", List.of(slot("16:00", "00:00")), ""), - new ScheduleAssignment("alex", "fri", "standby", List.of(slot("16:00", "22:00")), ""), - new ScheduleAssignment("alex", "sat", "training", List.of(slot("12:00", "16:00"), slot("17:00", "01:00")), ""), - new ScheduleAssignment("bianca", "thu", "standby", List.of(slot("16:00", "00:00")), ""), - new ScheduleAssignment("bianca", "fri", "standby", List.of(slot("17:00", "01:00")), ""), - new ScheduleAssignment("bianca", "sat", "training", List.of(slot("12:00", "16:00"), slot("17:00", "01:00")), ""), - new ScheduleAssignment("bianca", "sun", "request", List.of(slot("12:00", "16:00"), slot("17:00", "00:00")), ""), - new ScheduleAssignment("artem", "tue", "off", List.of(slot("17:00", "00:00")), ""), - new ScheduleAssignment("artem", "wed", "request", List.of(slot("17:00", "00:00")), ""), - new ScheduleAssignment("artem", "thu", "request", List.of(slot("17:00", "00:00")), ""), - new ScheduleAssignment("artem", "fri", "standby", List.of(slot("17:00", "01:00")), ""), - new ScheduleAssignment("artem", "sat", "training", List.of(slot("12:00", "16:00"), slot("17:00", "01:00")), ""), - new ScheduleAssignment("kharren", "wed", "request", List.of(slot("09:00", "17:00")), ""), - new ScheduleAssignment("kharren", "thu", "request", List.of(slot("09:00", "17:00")), ""), - new ScheduleAssignment("kharren", "fri", "standby", List.of(slot("09:00", "17:00")), ""), - new ScheduleAssignment("kharren", "sat", "training", List.of(slot("16:00", "22:00")), ""), - new ScheduleAssignment("kharren", "sun", "request", List.of(slot("09:00", "16:00"), slot("17:00", "22:00")), ""), - new ScheduleAssignment("daria", "sat", "training", List.of(slot("16:00", "01:00")), ""), - new ScheduleAssignment("daria", "sun", "request", List.of(slot("12:00", "16:00"), slot("17:00", "00:00")), ""), - new ScheduleAssignment("violetta", "tue", "request", List.of(slot("09:00", "17:00")), ""), - new ScheduleAssignment("violetta", "wed", "request", List.of(slot("09:00", "18:00")), ""), - new ScheduleAssignment("violetta", "fri", "standby", List.of(slot("16:00", "22:00")), ""), - new ScheduleAssignment("violetta", "sat", "request", List.of(slot("09:00", "17:00")), ""), - new ScheduleAssignment("peter", "fri", "standby", List.of(slot("16:00", "01:00")), ""), - new ScheduleAssignment("peter", "sat", "training", List.of(slot("12:00", "16:00"), slot("17:00", "01:00")), ""), - new ScheduleAssignment("dmytro", "mon", "request", List.of(slot("17:00", "00:00")), ""), - new ScheduleAssignment("dmytro", "sat", "training", List.of(slot("12:00", "16:00"), slot("17:00", "01:00")), ""), - new ScheduleAssignment("dmytro", "sun", "request", List.of(slot("12:00", "16:00"), slot("17:00", "00:00")), ""), - new ScheduleAssignment("daniel", "tue", "request", List.of(slot("17:00", "00:00")), ""), - new ScheduleAssignment("daniel", "wed", "request", List.of(slot("17:00", "00:00")), ""), - new ScheduleAssignment("daniel", "thu", "standby", List.of(slot("17:00", "00:00")), ""), - new ScheduleAssignment("daniel", "fri", "standby", List.of(slot("17:00", "01:00")), ""), - new ScheduleAssignment("daniel", "sun", "request", List.of(slot("12:00", "16:00"), slot("17:00", "00:00")), "")); + new ScheduleAssignment("rowan", "mon", "stock", List.of(slot("09:00", "18:00")), ""), + new ScheduleAssignment("rowan", "thu", "request", List.of(slot("09:00", "18:00")), ""), + new ScheduleAssignment("rowan", "fri", "training", List.of(slot("08:00", "16:00"), slot("16:00", "22:00")), ""), + new ScheduleAssignment("rowan", "sun", "standby", List.of(slot("12:00", "16:00"), slot("16:00", "22:00")), ""), + new ScheduleAssignment("nils", "mon", "request", List.of(slot("16:00", "00:00")), ""), + new ScheduleAssignment("nils", "tue", "off", List.of(slot("12:00", "18:00")), ""), + new ScheduleAssignment("nils", "wed", "request", List.of(slot("16:00", "00:00")), ""), + new ScheduleAssignment("nils", "fri", "standby", List.of(slot("16:00", "01:00")), ""), + new ScheduleAssignment("nils", "sun", "bar-back", List.of(slot("17:00", "03:00")), ""), + new ScheduleAssignment("iva", "tue", "off", List.of(slot("16:00", "00:00")), ""), + new ScheduleAssignment("iva", "wed", "request", List.of(slot("16:00", "00:00")), ""), + new ScheduleAssignment("iva", "thu", "request", List.of(slot("16:00", "00:00")), ""), + new ScheduleAssignment("iva", "fri", "standby", List.of(slot("16:00", "22:00")), ""), + new ScheduleAssignment("iva", "sat", "training", List.of(slot("12:00", "16:00"), slot("17:00", "01:00")), ""), + new ScheduleAssignment("pilar", "thu", "standby", List.of(slot("16:00", "00:00")), ""), + new ScheduleAssignment("pilar", "fri", "standby", List.of(slot("17:00", "01:00")), ""), + new ScheduleAssignment("pilar", "sat", "training", List.of(slot("12:00", "16:00"), slot("17:00", "01:00")), ""), + new ScheduleAssignment("pilar", "sun", "request", List.of(slot("12:00", "16:00"), slot("17:00", "00:00")), ""), + new ScheduleAssignment("omar", "tue", "off", List.of(slot("17:00", "00:00")), ""), + new ScheduleAssignment("omar", "wed", "request", List.of(slot("17:00", "00:00")), ""), + new ScheduleAssignment("omar", "thu", "request", List.of(slot("17:00", "00:00")), ""), + new ScheduleAssignment("omar", "fri", "standby", List.of(slot("17:00", "01:00")), ""), + new ScheduleAssignment("omar", "sat", "training", List.of(slot("12:00", "16:00"), slot("17:00", "01:00")), ""), + new ScheduleAssignment("lena", "wed", "request", List.of(slot("09:00", "17:00")), ""), + new ScheduleAssignment("lena", "thu", "request", List.of(slot("09:00", "17:00")), ""), + new ScheduleAssignment("lena", "fri", "standby", List.of(slot("09:00", "17:00")), ""), + new ScheduleAssignment("lena", "sat", "training", List.of(slot("16:00", "22:00")), ""), + new ScheduleAssignment("lena", "sun", "request", List.of(slot("09:00", "16:00"), slot("17:00", "22:00")), ""), + new ScheduleAssignment("freya", "sat", "training", List.of(slot("16:00", "01:00")), ""), + new ScheduleAssignment("freya", "sun", "request", List.of(slot("12:00", "16:00"), slot("17:00", "00:00")), ""), + new ScheduleAssignment("noor", "tue", "request", List.of(slot("09:00", "17:00")), ""), + new ScheduleAssignment("noor", "wed", "request", List.of(slot("09:00", "18:00")), ""), + new ScheduleAssignment("noor", "fri", "standby", List.of(slot("16:00", "22:00")), ""), + new ScheduleAssignment("noor", "sat", "request", List.of(slot("09:00", "17:00")), ""), + new ScheduleAssignment("bowen", "fri", "standby", List.of(slot("16:00", "01:00")), ""), + new ScheduleAssignment("bowen", "sat", "training", List.of(slot("12:00", "16:00"), slot("17:00", "01:00")), ""), + new ScheduleAssignment("sasha", "mon", "request", List.of(slot("17:00", "00:00")), ""), + new ScheduleAssignment("sasha", "sat", "training", List.of(slot("12:00", "16:00"), slot("17:00", "01:00")), ""), + new ScheduleAssignment("sasha", "sun", "request", List.of(slot("12:00", "16:00"), slot("17:00", "00:00")), ""), + new ScheduleAssignment("hugo", "tue", "request", List.of(slot("17:00", "00:00")), ""), + new ScheduleAssignment("hugo", "wed", "request", List.of(slot("17:00", "00:00")), ""), + new ScheduleAssignment("hugo", "thu", "standby", List.of(slot("17:00", "00:00")), ""), + new ScheduleAssignment("hugo", "fri", "standby", List.of(slot("17:00", "01:00")), ""), + new ScheduleAssignment("hugo", "sun", "request", List.of(slot("12:00", "16:00"), slot("17:00", "00:00")), "")); } private static ScheduleSlot slot(String start, String end) { From 77283a531aff28e3025a3c457fc45a379a9a069a Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Thu, 3 Sep 2026 08:18:11 +0100 Subject: [PATCH 47/85] refactor(templates): one place turns a printed contact into a followable one MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rule that a printed telephone number and the number a device dials are different strings was written three times — ContactUri in the CV presets, InvoiceUri in the invoice presets, ProposalUri in the proposal presets — and where the three overlapped they were byte-identical, down to the regex and its comment. They are now one helper, core.identity.ContactUri, beside the contact-block and link records it serves: tel, telLink, mailLink, webLink, channelLink. Twenty-three preset files call it and the three copies are gone. It is public because the three families are three packages and a helper shared between them cannot be package-private. It is not marked experimental, because the shape is not a guess: three independent implementations had already agreed on it. Every method answers null rather than throwing, which the proposal copy had already learned and the other two had not: a notice, a name or a line of prose can reach a channel field, DocumentLinkOptions refuses a string that is not a URI, and a contact line is not the place to find that out. Nothing renders differently. A link annotation is not ink, so every pixel baseline in the suite passes untouched — the reactor gate ran the visual tests and moved no baseline. Tests: the CV suite's ContactUriTest moves to the shared package and gains what the other two copies contributed — an address, a site with and without a scheme, a channel read from its own shape, a site carrying digits that is not mistaken for a number, and prose in a channel field losing its link rather than the page. Ten cases. Reactor gate green, 1238 tests. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 17 +++ knowledge/api/templates.json | 85 ++++++++++- knowledge/api/templates.md | 9 +- .../core/identity/ContactUriTest.java | 97 ++++++++++++ .../templates/cv/presets/ContactUriTest.java | 53 ------- .../templates/core/identity/ContactUri.java | 144 ++++++++++++++++++ .../templates/core/identity/package-info.java | 3 + .../templates/cv/presets/ContactUri.java | 56 ------- .../cv/presets/EngineeringResume.java | 2 + .../templates/cv/presets/Executive.java | 2 + .../templates/cv/presets/MintEditorial.java | 2 + .../templates/cv/presets/MonogramSidebar.java | 2 + .../document/templates/cv/presets/Panel.java | 2 + .../templates/cv/presets/SidebarPortrait.java | 2 + .../templates/cv/presets/TimelineMinimal.java | 2 + .../templates/invoice/presets/InvoiceUri.java | 87 ----------- .../invoice/presets/MerchantClosing.java | 9 +- .../invoice/presets/MerchantMasthead.java | 7 +- .../invoice/presets/MerchantSettlement.java | 3 +- .../invoice/presets/MeteredClosing.java | 9 +- .../invoice/presets/MeteredMasthead.java | 7 +- .../invoice/presets/MeteredSettlement.java | 3 +- .../invoice/presets/ObsidianCards.java | 3 +- .../invoice/presets/ObsidianClosing.java | 3 +- .../invoice/presets/ObsidianParties.java | 5 +- .../invoice/presets/PlatformClosing.java | 9 +- .../invoice/presets/PlatformMasthead.java | 7 +- .../invoice/presets/PlatformSettlement.java | 3 +- .../invoice/presets/SubscriptionClosing.java | 7 +- .../invoice/presets/SubscriptionMasthead.java | 5 +- .../proposal/presets/IndigoClosing.java | 3 +- .../proposal/presets/IndigoMasthead.java | 5 +- .../proposal/presets/ProposalUri.java | 118 -------------- 33 files changed, 418 insertions(+), 353 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/core/identity/ContactUriTest.java delete mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ContactUriTest.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/core/identity/ContactUri.java delete mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ContactUri.java delete mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/InvoiceUri.java delete mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/ProposalUri.java diff --git a/CHANGELOG.md b/CHANGELOG.md index a9771799b..298b16e9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -176,6 +176,23 @@ follow semantic versioning; release dates are ISO 8601. the model whose shape it renders. Every component normalizes `null` to its empty form and freezes its collections, matching the family's existing records. +- **One place turns a printed contact into a followable one: + `core.identity.ContactUri`.** The rule that a printed telephone number and the number + a device dials are different strings was written three times — once in the CV presets, + once in the invoice presets, once in the proposal presets — and the three copies were + byte-identical where they overlapped. They are now one helper in the family-neutral + identity layer, beside the contact-block and link records it serves, with `tel` / + `telLink` / `mailLink` / `webLink` / `channelLink`. +

      + It is public because the three families are three packages and a helper shared between + them cannot be package-private; it is not marked experimental because the shape is not + a guess — three independent implementations had already agreed on it. Every method + answers `null` rather than throwing, including where the string cannot be a URI at + all: a notice, a name or a line of prose can reach a channel field, and losing the + affordance is not worth failing to compose the page over. Twenty-three preset files + now call it and nothing renders differently — a link annotation is not ink, and every + pixel baseline in the suite passes untouched. + ### Templates - **The invoice presets set their page number in their own face.** A header or footer diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index daacbe0e2..dd6b77f0d 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -22,8 +22,8 @@ "graph-compose-testing:sources" ], "counts": { - "types": 227, - "methods": 1276, + "types": 228, + "methods": 1281, "constants": 177, "generated": 689 }, @@ -427,6 +427,87 @@ } ] }, + { + "name": "ContactUri", + "binaryName": "com.demcha.compose.document.templates.core.identity.ContactUri", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "tel", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "String", + "name": "phone" + } + ] + }, + { + "kind": "method", + "name": "telLink", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentLinkOptions", + "params": [ + { + "type": "String", + "name": "phone" + } + ] + }, + { + "kind": "method", + "name": "mailLink", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentLinkOptions", + "params": [ + { + "type": "String", + "name": "email" + } + ] + }, + { + "kind": "method", + "name": "webLink", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentLinkOptions", + "params": [ + { + "type": "String", + "name": "website" + } + ] + }, + { + "kind": "method", + "name": "channelLink", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentLinkOptions", + "params": [ + { + "type": "String", + "name": "contact" + } + ] + } + ] + }, { "name": "Headline", "binaryName": "com.demcha.compose.document.templates.core.identity.Headline", diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index 047c1253f..d1dd8b7a9 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 227 · methods: 1276 · constants: 177 · compiler-generated members: 689 +Types: 228 · methods: 1281 · constants: 177 · compiler-generated members: 689 ## com.demcha.compose.document.templates.api @@ -59,6 +59,13 @@ Types: 227 · methods: 1276 · constants: 177 · compiler-generated members: 689 ### ContactLine.Order (enum) - constants: `PHONE_FIRST`, `ADDRESS_FIRST` +### ContactUri (class) +- `String tel(String phone)` +- `DocumentLinkOptions telLink(String phone)` +- `DocumentLinkOptions mailLink(String email)` +- `DocumentLinkOptions webLink(String website)` +- `DocumentLinkOptions channelLink(String contact)` + ### Headline (class) - `void spacedCentered(SectionBuilder host, String name, BrandTheme theme)` - `void uppercaseCentered(SectionBuilder host, String name, BrandTheme theme)` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/core/identity/ContactUriTest.java b/qa/src/test/java/com/demcha/compose/document/templates/core/identity/ContactUriTest.java new file mode 100644 index 000000000..abc2fa454 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/core/identity/ContactUriTest.java @@ -0,0 +1,97 @@ +package com.demcha.compose.document.templates.core.identity; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Pins the rules {@link ContactUri} exists for, starting with the one it was + * written for: a printed number and the number a device dials are not the same + * string. + * + *

      Every preset in every family that draws a contact routes through it, so + * the rules are asserted here once rather than through each of their renders.

      + */ +class ContactUriTest { + + @Test + void aTrunkPrefixIsDroppedBecauseAnInternationalCallerOmitsIt() { + assertThat(ContactUri.tel("+44 (0)20 7946 0832")).isEqualTo("tel:+442079460832"); + assertThat(ContactUri.tel("+44 (0) 20 3966 1900")).isEqualTo("tel:+442039661900"); + } + + @Test + void aParenthesisedAreaCodeIsNotATrunkPrefixAndStays() { + // Only an all-zero group goes. A US area code in brackets is part of + // the number, and dropping it would dial somewhere else entirely. + assertThat(ContactUri.tel("+1 (415) 555 7842")).isEqualTo("tel:+14155557842"); + } + + @Test + void aNumberWithoutAPlusKeepsItsLocalForm() { + assertThat(ContactUri.tel("020 7946 0832")).isEqualTo("tel:02079460832"); + } + + @Test + void separatorsAndSpacingDoNotReachTheTarget() { + assertThat(ContactUri.tel("+61 402-938-209")).isEqualTo("tel:+61402938209"); + } + + @Test + void textWithNoDigitsIsNotDialable() { + assertThat(ContactUri.tel("ask reception")).isNull(); + assertThat(ContactUri.tel("")).isNull(); + assertThat(ContactUri.tel(" ")).isNull(); + assertThat(ContactUri.tel(null)).isNull(); + } + + @Test + void theLinkFormMirrorsTheTargetForm() { + assertThat(ContactUri.telLink("+44 (0)20 7946 0832")).isNotNull(); + assertThat(ContactUri.telLink("ask reception")).isNull(); + assertThat(ContactUri.telLink(null)).isNull(); + } + + @Test + void anAddressIsMailedAndASiteIsOpened() { + assertThat(ContactUri.mailLink(" billing@example.com ").uri()) + .isEqualTo("mailto:billing@example.com"); + assertThat(ContactUri.webLink("example.com/business").uri()) + .isEqualTo("https://example.com/business"); + assertThat(ContactUri.webLink("http://example.com").uri()) + .isEqualTo("http://example.com"); + assertThat(ContactUri.mailLink(" ")).isNull(); + assertThat(ContactUri.webLink(null)).isNull(); + } + + @Test + void aChannelIsReadFromTheShapeOfWhatItPrints() { + // A foot lists its channels without saying which is which, because a + // reader can see it. This reads the same thing back. + assertThat(ContactUri.channelLink("business@example.com").uri()) + .isEqualTo("mailto:business@example.com"); + assertThat(ContactUri.channelLink("+44 20 3322 8352").uri()) + .isEqualTo("tel:+442033228352"); + assertThat(ContactUri.channelLink("example.com/business").uri()) + .isEqualTo("https://example.com/business"); + assertThat(ContactUri.channelLink(" ")).isNull(); + } + + @Test + void aSiteCarryingDigitsIsStillASite() { + // The dialable test asks for nine digits AND a mostly-numeric string, + // so a domain with a year in it does not become a phone number. + assertThat(ContactUri.channelLink("example2026.com").uri()) + .isEqualTo("https://example2026.com"); + } + + @Test + void proseWhereAChannelWasExpectedLosesItsLinkRatherThanThePage() { + // A notice, a name, a line of prose can all reach a channel field. + // DocumentLinkOptions refuses a string that is not a URI, and a contact + // line is not the place to find that out. + assertThat(ContactUri.channelLink("Confidential — for the addressee only")).isNull(); + assertThat(ContactUri.webLink("ask at the bar")).isNull(); + assertThat(ContactUri.mailLink("Jane Doe ")).isNull(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ContactUriTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ContactUriTest.java deleted file mode 100644 index 16d0b49e7..000000000 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ContactUriTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.demcha.compose.document.templates.cv.presets; - -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Pins the one rule {@link ContactUri} exists for: a printed number and the - * number a device dials are not the same string. - * - *

      Every preset that draws a telephone number now routes through it, so the - * rule is asserted here once rather than through each of their renders.

      - */ -class ContactUriTest { - - @Test - void aTrunkPrefixIsDroppedBecauseAnInternationalCallerOmitsIt() { - assertThat(ContactUri.tel("+44 (0)20 7946 0832")).isEqualTo("tel:+442079460832"); - assertThat(ContactUri.tel("+44 (0) 20 3966 1900")).isEqualTo("tel:+442039661900"); - } - - @Test - void aParenthesisedAreaCodeIsNotATrunkPrefixAndStays() { - // Only an all-zero group goes. A US area code in brackets is part of - // the number, and dropping it would dial somewhere else entirely. - assertThat(ContactUri.tel("+1 (415) 555 7842")).isEqualTo("tel:+14155557842"); - } - - @Test - void aNumberWithoutAPlusKeepsItsLocalForm() { - assertThat(ContactUri.tel("020 7946 0832")).isEqualTo("tel:02079460832"); - } - - @Test - void separatorsAndSpacingDoNotReachTheTarget() { - assertThat(ContactUri.tel("+61 402-938-209")).isEqualTo("tel:+61402938209"); - } - - @Test - void textWithNoDigitsIsNotDialable() { - assertThat(ContactUri.tel("ask reception")).isNull(); - assertThat(ContactUri.tel("")).isNull(); - assertThat(ContactUri.tel(" ")).isNull(); - assertThat(ContactUri.tel(null)).isNull(); - } - - @Test - void theLinkFormMirrorsTheTargetForm() { - assertThat(ContactUri.telLink("+44 (0)20 7946 0832")).isNotNull(); - assertThat(ContactUri.telLink("ask reception")).isNull(); - assertThat(ContactUri.telLink(null)).isNull(); - } -} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/core/identity/ContactUri.java b/templates/src/main/java/com/demcha/compose/document/templates/core/identity/ContactUri.java new file mode 100644 index 000000000..82bf82ca1 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/core/identity/ContactUri.java @@ -0,0 +1,144 @@ +package com.demcha.compose.document.templates.core.identity; + +import com.demcha.compose.document.node.DocumentLinkOptions; + +import java.util.regex.Pattern; + +/** + * Turns a printed contact detail into something a reader can act on. + * + *

      A document prints a number, an address and a site the way a person reads + * them; a reader's device needs the form it can dial, mail or open. Every + * template family needs that conversion and they all need the same one, so it + * lives beside the rest of the neutral identity layer rather than three times + * over in three families' presets.

      + * + *

      A missing link is never a failed render

      + * + *

      Every method here answers {@code null} rather than throwing: not + * everything a document prints where a contact would go is one, and losing the + * affordance is not worth failing to compose the page over. A caller passes the + * result straight to a component that takes a link or nothing.

      + * + * @author Artem Demchyshyn + * @since 2.4.0 + */ +public final class ContactUri { + + /** + * A trunk prefix in a printed number is for a domestic dialler and is not + * part of the international one — {@code +44 (0)20 7946 0832} dials + * {@code +442079460832}. Left in, the digits run together into a number that + * reaches nobody. A parenthesised area code is not a trunk prefix, + * which is why only an all-zero group goes. + */ + private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); + + private ContactUri() { + } + + /** + * A printed telephone number as a {@code tel:} target. + * + * @param phone the number as the sheet prints it + * @return the target, or {@code null} when the text carries no digits to + * dial + */ + public static String tel(String phone) { + if (phone == null || phone.isBlank()) { + return null; + } + String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + /** + * The same, ready to hand to a component that takes a link or nothing. + * + * @param phone the number as the sheet prints it + * @return the link options, or {@code null} when there is nothing to dial + */ + public static DocumentLinkOptions telLink(String phone) { + return options(tel(phone)); + } + + /** + * An address as something a reader can write to. + * + * @param email the address as the sheet prints it + * @return the link options, or {@code null} when there is no address, or + * none that could be made from what was printed + */ + public static DocumentLinkOptions mailLink(String email) { + return email == null || email.isBlank() + ? null + : options("mailto:" + email.trim()); + } + + /** + * A written site as something a reader can follow. A sheet prints + * {@code example.com}; a viewer needs a scheme in front of it. + * + * @param website the site as the sheet prints it + * @return the link options, or {@code null} when there is no site, or none + * that could be made from what was printed + */ + public static DocumentLinkOptions webLink(String website) { + if (website == null || website.isBlank()) { + return null; + } + String trimmed = website.trim(); + return options(trimmed.startsWith("http://") || trimmed.startsWith("https://") + ? trimmed + : "https://" + trimmed); + } + + /** + * The link a printed contact string wants, guessed from its own shape. + * + *

      A document's foot often lists its channels as plain strings — a site, + * an address, a number — without saying which is which, because a reader can + * see it. This reads the same thing back: an address has an at-sign, a + * number starts with a plus or is mostly digits, and anything else is a + * site.

      + * + *

      Reach for this only where the document really does not say. Where a + * field is known to hold a number or an address, name it: a heuristic that + * is right almost always is worse than a fact.

      + * + * @param contact the channel as the sheet prints it + * @return the link options, or {@code null} when nothing can be made of it + */ + public static DocumentLinkOptions channelLink(String contact) { + if (contact == null || contact.isBlank()) { + return null; + } + String trimmed = contact.trim(); + if (trimmed.contains("@")) { + return mailLink(trimmed); + } + String digits = trimmed.replaceAll("[^0-9]", ""); + boolean dialable = trimmed.startsWith("+") + || digits.length() >= 9 && digits.length() >= trimmed.length() / 2; + return dialable ? telLink(trimmed) : webLink(trimmed); + } + + /** + * The link a target makes, or nothing when it makes none. + * + *

      {@link DocumentLinkOptions} refuses a string that is not a URI, and a + * contact line is not the place to find that out: a notice, a name, a line + * of prose can all reach a channel field, and none of them should stop the + * page composing.

      + */ + private static DocumentLinkOptions options(String target) { + try { + return new DocumentLinkOptions(target); + } catch (IllegalArgumentException notAUri) { + return null; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/core/identity/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/core/identity/package-info.java index b46b1fc05..646ec3a86 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/core/identity/package-info.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/core/identity/package-info.java @@ -20,6 +20,9 @@ * — the header widgets that render a {@code PartyIdentity}. *
    1. {@link com.demcha.compose.document.templates.core.identity.SvgGlyph} * — a small inline-SVG glyph helper used by the header widgets.
    2. + *
    3. {@link com.demcha.compose.document.templates.core.identity.ContactUri} + * — turns a printed number, address or site into the target a reader's + * device can act on.
    4. * */ package com.demcha.compose.document.templates.core.identity; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ContactUri.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ContactUri.java deleted file mode 100644 index 3c08c581a..000000000 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ContactUri.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.demcha.compose.document.templates.cv.presets; - -import com.demcha.compose.document.node.DocumentLinkOptions; - -import java.util.regex.Pattern; - -/** - * Turns a printed contact detail into something a reader can act on. - * - *

      A sheet prints a number the way a person reads it and a reader's device - * dials the digits, and the two are not the same string — so the conversion - * belongs in one place rather than beside every contact block that needs it.

      - */ -final class ContactUri { - - /** - * A trunk prefix in a printed number is for a domestic dialler and is not - * part of the international one — {@code +44 (0)20 7946 0832} dials - * {@code +442079460832}. Left in, the digits run together into a number - * that reaches nobody. A parenthesised area code is not a trunk - * prefix, which is why only an all-zero group goes. - */ - private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); - - private ContactUri() { - } - - /** - * A printed telephone number as something a reader can dial. - * - * @param phone the number as the sheet prints it - * @return a {@code tel:} target, or {@code null} when the text carries no - * digits to dial - */ - static String tel(String phone) { - if (phone == null || phone.isBlank()) { - return null; - } - String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - - /** - * The same, ready to hand to a component that takes a link or nothing. - * - * @param phone the number as the sheet prints it - * @return the link options, or {@code null} when there is nothing to dial - */ - static DocumentLinkOptions telLink(String phone) { - String uri = tel(phone); - return uri == null ? null : new DocumentLinkOptions(uri); - } -} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/EngineeringResume.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/EngineeringResume.java index 195edbda9..07987b4cc 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/EngineeringResume.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/EngineeringResume.java @@ -16,6 +16,8 @@ import com.demcha.compose.document.templates.cv.data.*; import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.core.identity.ContactUri; + import java.util.ArrayList; import java.util.List; import java.util.Locale; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Executive.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Executive.java index 626dc63a9..57b98d90a 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Executive.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Executive.java @@ -20,6 +20,8 @@ import com.demcha.compose.document.templates.cv.widgets.SectionHeader; import com.demcha.compose.font.FontName; +import com.demcha.compose.document.templates.core.identity.ContactUri; + import java.util.List; import java.util.Locale; import java.util.Objects; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MintEditorial.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MintEditorial.java index c4307cfd3..0660232d7 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MintEditorial.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MintEditorial.java @@ -29,6 +29,8 @@ import com.demcha.compose.document.templates.core.identity.SvgGlyph; import com.demcha.compose.document.svg.SvgIcon; +import com.demcha.compose.document.templates.core.identity.ContactUri; + import java.io.IOException; import java.io.InputStream; import java.io.UncheckedIOException; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebar.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebar.java index 777245f32..3cf12270b 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebar.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebar.java @@ -21,6 +21,8 @@ import com.demcha.compose.document.templates.core.identity.SvgGlyph; import com.demcha.compose.font.FontName; +import com.demcha.compose.document.templates.core.identity.ContactUri; + import java.util.*; /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Panel.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Panel.java index 9677693a3..e6bbb129a 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Panel.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/Panel.java @@ -17,6 +17,8 @@ import com.demcha.compose.document.templates.core.widgets.CardWidget; import com.demcha.compose.font.FontName; +import com.demcha.compose.document.templates.core.identity.ContactUri; + import java.util.List; import java.util.Locale; import java.util.Objects; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SidebarPortrait.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SidebarPortrait.java index 7ebb8cae1..d9472ea84 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SidebarPortrait.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SidebarPortrait.java @@ -22,6 +22,8 @@ import com.demcha.compose.document.templates.core.theme.BrandTheme; import com.demcha.compose.document.templates.core.identity.SvgGlyph; +import com.demcha.compose.document.templates.core.identity.ContactUri; + import java.io.IOException; import java.io.InputStream; import java.io.UncheckedIOException; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java index 15b33e7fb..ee5e62639 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java @@ -24,6 +24,8 @@ import com.demcha.compose.document.templates.core.identity.SvgGlyph; import com.demcha.compose.document.templates.core.widgets.TimelineAxisWidget; +import com.demcha.compose.document.templates.core.identity.ContactUri; + import java.util.*; /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/InvoiceUri.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/InvoiceUri.java deleted file mode 100644 index c801a9046..000000000 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/InvoiceUri.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.demcha.compose.document.templates.invoice.presets; - -import com.demcha.compose.document.node.DocumentLinkOptions; - -import java.util.regex.Pattern; - -/** - * Turns a printed contact detail into something a reader can act on. - * - *

      A sheet prints a number, an address and a site the way a person reads - * them, and a reader's device needs the form it can dial, mail or open. The two - * are not the same string, so the conversion lives in one place rather than - * beside every block on every invoice preset that needs it.

      - */ -final class InvoiceUri { - - /** - * A trunk prefix in a printed number is for a domestic dialler and is not - * part of the international one — {@code +44 (0)20 7946 0832} dials - * {@code +442079460832}. Left in, the digits run together into a number that - * reaches nobody. A parenthesised area code is not a trunk prefix, - * which is why only an all-zero group goes. - */ - private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); - - private InvoiceUri() { - } - - /** - * A printed telephone number as something a reader can dial. - * - * @param phone the number as the sheet prints it - * @return a {@code tel:} target, or {@code null} when the text carries no - * digits to dial - */ - private static String tel(String phone) { - if (phone == null || phone.isBlank()) { - return null; - } - String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - - /** - * The same, ready to hand to a component that takes a link or nothing. - * - * @param phone the number as the sheet prints it - * @return the link options, or {@code null} when there is nothing to dial - */ - static DocumentLinkOptions telLink(String phone) { - String uri = tel(phone); - return uri == null ? null : new DocumentLinkOptions(uri); - } - - /** - * An address as something a reader can write to. - * - * @param email the address as the sheet prints it - * @return the link options, or {@code null} when there is no address - */ - static DocumentLinkOptions mailLink(String email) { - return email == null || email.isBlank() - ? null - : new DocumentLinkOptions("mailto:" + email.trim()); - } - - /** - * A written site as something a reader can follow. A sheet prints - * {@code example.com}; a viewer needs a scheme in front of it. - * - * @param website the site as the sheet prints it - * @return the link options, or {@code null} when there is no site - */ - static DocumentLinkOptions webLink(String website) { - if (website == null || website.isBlank()) { - return null; - } - String trimmed = website.trim(); - return new DocumentLinkOptions( - trimmed.startsWith("http://") || trimmed.startsWith("https://") - ? trimmed - : "https://" + trimmed); - } -} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantClosing.java index 663c0f6fe..4ff97c111 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantClosing.java @@ -9,6 +9,7 @@ import com.demcha.compose.document.node.TextAlign; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; @@ -166,7 +167,7 @@ static void renderIdentity(PageFlowBuilder page, InvoiceBrand brand, p.name("FooterSite"); p.text(supplier.website()); p.textStyle(style(FOOTER_SITE_SIZE, ACCENT)); - p.link(InvoiceUri.webLink(supplier.website())); + p.link(ContactUri.webLink(supplier.website())); p.margin(new DocumentInsets( capGap(FOOTER_SITE_CAP_Y - FOOTER_ADDR_CAP_Y, FOOTER_ADDR_SIZE, false, FOOTER_SITE_SIZE, false), @@ -218,9 +219,9 @@ private static String monogram(InvoiceBrand brand) { private static void writeReachable(ParagraphBuilder paragraph, String prose, InvoiceNotesBlock notes, InvoiceContactBlock supplier) { List found = new ArrayList<>(); - addIfPresent(found, prose, notes.contactEmail(), InvoiceUri.mailLink(notes.contactEmail())); - addIfPresent(found, prose, supplier.email(), InvoiceUri.mailLink(supplier.email())); - addIfPresent(found, prose, supplier.website(), InvoiceUri.webLink(supplier.website())); + addIfPresent(found, prose, notes.contactEmail(), ContactUri.mailLink(notes.contactEmail())); + addIfPresent(found, prose, supplier.email(), ContactUri.mailLink(supplier.email())); + addIfPresent(found, prose, supplier.website(), ContactUri.webLink(supplier.website())); found.sort(Comparator.comparingInt(Reachable::at)); int cursor = 0; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantMasthead.java index b3f1d40ec..5e8f2c0a1 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantMasthead.java @@ -11,6 +11,7 @@ import com.demcha.compose.document.node.TextAlign; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; @@ -180,11 +181,11 @@ private static void renderSupplier(SectionBuilder column, InvoiceContactBlock su .margin(new DocumentInsets( inkGapToImage(280 - 236, BODY_SIZE, false), 0, 0, 0)); channel(block, "Website", MerchantIcons.WEBSITE, supplier.website(), - InvoiceUri.webLink(supplier.website())); + ContactUri.webLink(supplier.website())); channel(block, "Email", MerchantIcons.EMAIL, supplier.email(), - InvoiceUri.mailLink(supplier.email())); + ContactUri.mailLink(supplier.email())); channel(block, "Phone", MerchantIcons.PHONE, supplier.phone(), - InvoiceUri.telLink(supplier.phone())); + ContactUri.telLink(supplier.phone())); }); if (!supplier.taxRegistrationNumber().isBlank()) { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantSettlement.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantSettlement.java index 7df328d32..850808f03 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantSettlement.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MerchantSettlement.java @@ -7,6 +7,7 @@ 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.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; @@ -156,7 +157,7 @@ private static void renderPanel(SectionBuilder column, InvoicePaymentBlock payme // A bank detail is a reference, not a destination — except // an address, the one field a reader would act on. if (field.value().contains("@")) { - p.link(InvoiceUri.mailLink(field.value())); + p.link(ContactUri.mailLink(field.value())); } }); }); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredClosing.java index 4a9c61012..9a01eddb1 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredClosing.java @@ -5,6 +5,7 @@ import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; @@ -93,10 +94,10 @@ static void render(SectionBuilder body, InvoiceNotesBlock notes, private static void writeReachable(ParagraphBuilder paragraph, String prose, InvoiceNotesBlock notes, InvoiceContactBlock supplier) { List found = new ArrayList<>(); - addIfPresent(found, prose, notes.contactEmail(), InvoiceUri.mailLink(notes.contactEmail())); - addIfPresent(found, prose, supplier.email(), InvoiceUri.mailLink(supplier.email())); - addIfPresent(found, prose, notes.contactPhone(), InvoiceUri.telLink(notes.contactPhone())); - addIfPresent(found, prose, supplier.website(), InvoiceUri.webLink(supplier.website())); + addIfPresent(found, prose, notes.contactEmail(), ContactUri.mailLink(notes.contactEmail())); + addIfPresent(found, prose, supplier.email(), ContactUri.mailLink(supplier.email())); + addIfPresent(found, prose, notes.contactPhone(), ContactUri.telLink(notes.contactPhone())); + addIfPresent(found, prose, supplier.website(), ContactUri.webLink(supplier.website())); found.sort(Comparator.comparingInt(Reachable::at)); int cursor = 0; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredMasthead.java index 263bcbcc3..745311583 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredMasthead.java @@ -10,6 +10,7 @@ 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.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; @@ -165,17 +166,17 @@ private static void renderSupplierBlock(SectionBuilder column, InvoiceContactBlo if (!supplier.phone().isBlank()) { labelledRow(contacts, "SupplierContact_" + index++, "Phone:", supplier.phone(), - SUPPLIER_LABEL_W, BODY, BODY, InvoiceUri.telLink(supplier.phone())); + SUPPLIER_LABEL_W, BODY, BODY, ContactUri.telLink(supplier.phone())); } if (!supplier.email().isBlank()) { labelledRow(contacts, "SupplierContact_" + index++, "Email:", supplier.email(), SUPPLIER_LABEL_W, BODY, BODY, - InvoiceUri.mailLink(supplier.email())); + ContactUri.mailLink(supplier.email())); } if (!supplier.website().isBlank()) { labelledRow(contacts, "SupplierContact_" + index, "Website:", supplier.website(), SUPPLIER_LABEL_W, BODY, BODY, - InvoiceUri.webLink(supplier.website())); + ContactUri.webLink(supplier.website())); } }); }); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredSettlement.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredSettlement.java index 1ea27a35c..1c917343b 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredSettlement.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/MeteredSettlement.java @@ -8,6 +8,7 @@ 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.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; @@ -145,7 +146,7 @@ private static void renderPaymentDetails(SectionBuilder column, InvoicePaymentBl * address, which is the one field on the panel a reader would act on. */ private static DocumentLinkOptions linkFor(String value) { - return value.contains("@") ? InvoiceUri.mailLink(value) : null; + return value.contains("@") ? ContactUri.mailLink(value) : null; } private static void renderDueBy(SectionBuilder column, InvoicePaymentBlock payment) { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianCards.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianCards.java index 60ad278be..904dd049e 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianCards.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianCards.java @@ -6,6 +6,7 @@ import com.demcha.compose.document.node.RowVerticalAlign; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; @@ -124,7 +125,7 @@ private static void renderPayment(SectionBuilder cell, InvoicePaymentBlock payme // A bank detail is a reference, not a destination — // except an address, the one field a reader would act on. field.value().contains("@") - ? InvoiceUri.mailLink(field.value()) + ? ContactUri.mailLink(field.value()) : null)); }); } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianClosing.java index 6bc65adc2..4aa7a5d96 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianClosing.java @@ -7,6 +7,7 @@ import com.demcha.compose.document.node.TextAlign; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; @@ -82,7 +83,7 @@ static void render(PageFlowBuilder page, InvoiceBrand brand, text.addParagraph(p -> { p.name("ClosingContact").align(TextAlign.RIGHT); p.inlineText(supplier.email(), plain(CLOSING_RIGHT_SIZE, MUTED), - InvoiceUri.mailLink(supplier.email())); + ContactUri.mailLink(supplier.email())); }); } }); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianParties.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianParties.java index e7cbfff14..5861cb58e 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianParties.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ObsidianParties.java @@ -9,6 +9,7 @@ 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.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; @@ -67,11 +68,11 @@ static void render(PageFlowBuilder page, InvoiceBrand brand, row.addSection("SupplierCard", cell -> renderCard(cell, "Supplier", "From", supplierDisc(brand, supplier), supplier.legalName(), supplier.addressLines(), supplier.email(), - InvoiceUri.mailLink(supplier.email()))); + ContactUri.mailLink(supplier.email()))); row.addSection("BillToCard", cell -> renderCard(cell, "BillTo", billTo.heading(), initialsDisc("BillToDisc", DISC_CLIENT, initials(billTo.name())), billTo.name(), billTo.addressLines(), billTo.email(), - InvoiceUri.mailLink(billTo.email()))); + ContactUri.mailLink(billTo.email()))); }); } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformClosing.java index ca2bfb270..3cf1d3674 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformClosing.java @@ -7,6 +7,7 @@ import com.demcha.compose.document.node.TextAlign; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; @@ -157,10 +158,10 @@ static void renderIdentity(PageFlowBuilder page, InvoiceBrand brand, private static void writeReachable(ParagraphBuilder paragraph, String prose, InvoiceNotesBlock notes, InvoiceContactBlock supplier) { List found = new ArrayList<>(); - addIfPresent(found, prose, notes.contactEmail(), InvoiceUri.mailLink(notes.contactEmail())); - addIfPresent(found, prose, supplier.email(), InvoiceUri.mailLink(supplier.email())); - addIfPresent(found, prose, supplier.website(), InvoiceUri.webLink(supplier.website())); - addIfPresent(found, prose, notes.contactPhone(), InvoiceUri.telLink(notes.contactPhone())); + addIfPresent(found, prose, notes.contactEmail(), ContactUri.mailLink(notes.contactEmail())); + addIfPresent(found, prose, supplier.email(), ContactUri.mailLink(supplier.email())); + addIfPresent(found, prose, supplier.website(), ContactUri.webLink(supplier.website())); + addIfPresent(found, prose, notes.contactPhone(), ContactUri.telLink(notes.contactPhone())); found.sort(Comparator.comparingInt(Reachable::at)); int cursor = 0; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformMasthead.java index 33ce330c2..84f4b894d 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformMasthead.java @@ -8,6 +8,7 @@ import com.demcha.compose.document.node.TextAlign; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; @@ -155,11 +156,11 @@ private static void renderSupplier(SectionBuilder column, InvoiceContactBlock su block.spacing(capPitch(28, BODY_SIZE)) .margin(new DocumentInsets(capPitch(46, BODY_SIZE), 0, 0, 0)); channel(block, "Website", PlatformIcons.WEBSITE, supplier.website(), - InvoiceUri.webLink(supplier.website())); + ContactUri.webLink(supplier.website())); channel(block, "Email", PlatformIcons.EMAIL, supplier.email(), - InvoiceUri.mailLink(supplier.email())); + ContactUri.mailLink(supplier.email())); channel(block, "Phone", PlatformIcons.PHONE, supplier.phone(), - InvoiceUri.telLink(supplier.phone())); + ContactUri.telLink(supplier.phone())); }); if (!supplier.taxRegistrationNumber().isBlank()) { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformSettlement.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformSettlement.java index d9ab639c3..d5ed49de9 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformSettlement.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PlatformSettlement.java @@ -7,6 +7,7 @@ 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.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; @@ -142,7 +143,7 @@ private static void renderPaymentPanel(SectionBuilder column, InvoicePaymentBloc // except the remittance address, the one field on the // panel a reader would act on. if (field.value().contains("@")) { - p.link(InvoiceUri.mailLink(field.value())); + p.link(ContactUri.mailLink(field.value())); } }); }); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionClosing.java index fa43a8c09..7d0405bc4 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionClosing.java @@ -11,6 +11,7 @@ import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentRowColumn; import com.demcha.compose.document.svg.SvgIcon; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; @@ -265,9 +266,9 @@ static void renderBand(PageFlowBuilder page, InvoicePaymentBlock payment, private static void writeReachable(ParagraphBuilder paragraph, String prose, InvoiceContactBlock supplier) { List found = new ArrayList<>(); - addIfPresent(found, prose, supplier.email(), InvoiceUri.mailLink(supplier.email())); - addIfPresent(found, prose, supplier.website(), InvoiceUri.webLink(supplier.website())); - addIfPresent(found, prose, supplier.phone(), InvoiceUri.telLink(supplier.phone())); + addIfPresent(found, prose, supplier.email(), ContactUri.mailLink(supplier.email())); + addIfPresent(found, prose, supplier.website(), ContactUri.webLink(supplier.website())); + addIfPresent(found, prose, supplier.phone(), ContactUri.telLink(supplier.phone())); found.sort(Comparator.comparingInt(Reachable::at)); int cursor = 0; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionMasthead.java index fdc0f16d6..7c9d7fc90 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/SubscriptionMasthead.java @@ -9,6 +9,7 @@ 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.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; @@ -143,9 +144,9 @@ private static void renderSupplier(SectionBuilder cell, InvoiceContactBlock supp block.margin(new DocumentInsets(baselineGap(48.9, BODY_SIZE, BODY_SIZE), 0, 0, 0)); block.spacing(px(30) - 1.2 * BODY_SIZE); contact(block, "Email", "E", supplier.email(), - InvoiceUri.mailLink(supplier.email())); + ContactUri.mailLink(supplier.email())); contact(block, "Website", "W", supplier.website(), - InvoiceUri.webLink(supplier.website())); + ContactUri.webLink(supplier.website())); contact(block, "Registration", supplier.taxRegistrationLabel(), supplier.taxRegistrationNumber(), null); }); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoClosing.java index 54d57abec..3481b773c 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoClosing.java @@ -7,6 +7,7 @@ import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentRowColumn; import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.proposal.ProposalBrand; import com.demcha.compose.document.templates.data.proposal.ProposalFooter; @@ -175,7 +176,7 @@ private static void renderChannels(SectionBuilder identity, ProposalFooter foote /** A channel, made followable when its printed shape says what it is. */ private static void appendChannel(ParagraphBuilder p, String contact, DocumentTextStyle body) { - DocumentLinkOptions link = ProposalUri.channelLink(contact); + DocumentLinkOptions link = ContactUri.channelLink(contact); if (link == null) { p.inlineText(contact, body); } else { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoMasthead.java index 7e7ee9425..5b5f01b47 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/IndigoMasthead.java @@ -6,6 +6,7 @@ import com.demcha.compose.document.node.TextAlign; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.proposal.ProposalAttention; import com.demcha.compose.document.templates.data.proposal.ProposalBrand; import com.demcha.compose.document.templates.data.proposal.ProposalMetaLine; @@ -223,9 +224,9 @@ private static void renderAttention(SectionBuilder left, ProposalAttention atten .margin(new DocumentInsets( cell.capAt(ATTN_ROLE_CAP, ATTN_ROLE_SIZE, false), 0, 0, 0))); reachable(left, "AttentionEmail", attention.email(), - ProposalUri.mailLink(attention.email()), cell, ATTN_EMAIL_CAP); + ContactUri.mailLink(attention.email()), cell, ATTN_EMAIL_CAP); reachable(left, "AttentionPhone", attention.phone(), - ProposalUri.telLink(attention.phone()), cell, ATTN_PHONE_CAP); + ContactUri.telLink(attention.phone()), cell, ATTN_PHONE_CAP); } /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/ProposalUri.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/ProposalUri.java deleted file mode 100644 index 0b2989fb1..000000000 --- a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/ProposalUri.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.demcha.compose.document.templates.proposal.presets; - -import com.demcha.compose.document.node.DocumentLinkOptions; - -import java.util.regex.Pattern; - -/** - * Turns a printed contact detail into something a reader can act on. - * - *

      A proposal prints a number, an address and a site the way a person reads - * them, and a reader's device needs the form it can dial, mail or open. The - * conversion lives in one place rather than beside every block that needs it.

      - */ -final class ProposalUri { - - /** - * A trunk prefix in a printed number is for a domestic dialler and is not - * part of the international one — {@code +44 (0)20 7946 0832} dials - * {@code +442079460832}. Left in, the digits run together into a number that - * reaches nobody. A parenthesised area code is not a trunk prefix, - * which is why only an all-zero group goes. - */ - private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); - - private ProposalUri() { - } - - /** - * A printed telephone number as something a reader can dial. - * - * @param phone the number as the sheet prints it - * @return the link options, or {@code null} when the text carries no digits - */ - static DocumentLinkOptions telLink(String phone) { - if (phone == null || phone.isBlank()) { - return null; - } - String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : new DocumentLinkOptions( - "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits); - } - - /** - * An address as something a reader can write to. - * - * @param email the address as the sheet prints it - * @return the link options, or {@code null} when there is no address, or - * none that could be made from what was printed - */ - static DocumentLinkOptions mailLink(String email) { - if (email == null || email.isBlank()) { - return null; - } - try { - return new DocumentLinkOptions("mailto:" + email.trim()); - } catch (IllegalArgumentException notAUri) { - return null; - } - } - - /** - * A written site as something a reader can follow. A sheet prints - * {@code example.com}; a viewer needs a scheme in front of it. - * - *

      Not everything a document prints where a site would go is one, and a - * string that cannot be a URI is printed as it stands rather than refused: - * a link is an affordance, and losing it is not worth failing to render the - * page over.

      - * - * @param website the site as the sheet prints it - * @return the link options, or {@code null} when there is no site, or none - * that could be made from what was printed - */ - static DocumentLinkOptions webLink(String website) { - if (website == null || website.isBlank()) { - return null; - } - String trimmed = website.trim(); - String target = trimmed.startsWith("http://") || trimmed.startsWith("https://") - ? trimmed - : "https://" + trimmed; - try { - return new DocumentLinkOptions(target); - } catch (IllegalArgumentException notAUri) { - return null; - } - } - - /** - * The link a printed contact string wants, guessed from its own shape. - * - *

      A proposal's foot lists its channels as plain strings — a site, an - * address, a number — without saying which is which, because a reader can - * see it. This reads the same thing back: an address has an at-sign, a - * number starts with a plus or is mostly digits, and anything else is a - * site.

      - * - * @param contact the channel as the sheet prints it - * @return the link options, or {@code null} when nothing can be made of it - */ - static DocumentLinkOptions channelLink(String contact) { - if (contact == null || contact.isBlank()) { - return null; - } - String trimmed = contact.trim(); - if (trimmed.contains("@")) { - return mailLink(trimmed); - } - String digits = trimmed.replaceAll("[^0-9]", ""); - if (trimmed.startsWith("+") || digits.length() >= 9 && digits.length() >= trimmed.length() / 2) { - return telLink(trimmed); - } - return webLink(trimmed); - } -} From 6366afc0792e53150d703f2472d201c4ad5e89f8 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Thu, 3 Sep 2026 22:53:13 +0100 Subject: [PATCH 48/85] fix(templates): dial the number the sheet printed, not one like it A printed telephone number and the number a device dials are different strings. That conversion had been given one home, core.identity.ContactUri, but thirteen presets still carried their own private copy of it, written inline rather than named, and five of the copies did not drop the parenthesised trunk prefix. A sheet printing +44 (0)20 7946 0832 linked tel:+4402079460832 -- a number that reaches nobody from abroad -- in CharcoalGold, NavySidebar, ProfessionalSidebar and SerifHeadline, and ConsultingInvoice was further out still: its copy removed spaces and nothing else, so the printed brackets went into the target and the link was not a dialable number at all. All thirteen are gone. The other eight were already producing the right target, in eight separate places -- four spelling the regex out inline and four naming a constant for it -- and that duplication is as much what this removes as the five that got it wrong. The same sweep removes three copies of the scheme-prefixing rule for a printed website, which ContactUri gains as web: the target form of webLink, the way tel is of telLink. The Consulting closing moves to telLink at the same time. It hands its phone field straight to a link constructor, and a contact line reading "ask reception" carries no digits: the old copy made a junk target out of it, the target form answers null, and only the link form turns that into no link rather than a page that refuses to compose. Nothing on any page moves. A link annotation is not ink, and no fixture prints a trunk prefix, so no pixel baseline and no layout snapshot changes; what changes is where the link goes when a caller's own number carries one. Tests: CvPresetDialTargetTest asks all ten promoted CV designs the same question -- render a contact block whose number carries a trunk prefix, read the tel: targets back out of the file. This is the check the private copies never had: two designs had a test naming a trunk prefix and both handled one, while the other eight asserted their dial target with a number carrying none, so every copy agreed with its own test and four still built a target no caller could reach. Proved fails-closed by removing the trunk-prefix rule from ContactUri and watching all ten go red. ConsultingInvoiceSmokeTest asks the same of the invoice design, giving the masthead and the closing prose different numbers so neither site can answer for the other. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 58 +++++++-- knowledge/api/templates.json | 16 ++- knowledge/api/templates.md | 3 +- .../cv/presets/CvPresetDialTargetTest.java | 116 ++++++++++++++++++ .../presets/ConsultingInvoiceSmokeTest.java | 66 ++++++++++ .../templates/core/identity/ContactUri.java | 31 +++-- .../cv/presets/CharcoalGoldAside.java | 14 +-- .../cv/presets/MidnightNavyAside.java | 18 +-- .../cv/presets/NavySidebarAside.java | 14 +-- .../cv/presets/OrangeOpsMasthead.java | 20 +-- .../cv/presets/ProfessionalSidebarAside.java | 14 +-- .../cv/presets/SerifHeadlineMasthead.java | 14 +-- .../cv/presets/SlateOrangeMasthead.java | 16 +-- .../cv/presets/TealPulseMasthead.java | 16 +-- .../cv/presets/TerracottaRailAside.java | 17 +-- .../cv/presets/VioletGridMasthead.java | 16 +-- .../invoice/presets/ConsultingClosing.java | 4 +- .../invoice/presets/ConsultingMasthead.java | 7 +- .../invoice/presets/ConsultingText.java | 23 ---- .../invoice/presets/LumaStudioMasthead.java | 34 +---- .../invoice/presets/PaymentsClosing.java | 18 +-- .../invoice/presets/WorkspaceClosing.java | 11 +- 22 files changed, 302 insertions(+), 244 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvPresetDialTargetTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 298b16e9d..c308b50c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -178,20 +178,45 @@ follow semantic versioning; release dates are ISO 8601. - **One place turns a printed contact into a followable one: `core.identity.ContactUri`.** The rule that a printed telephone number and the number - a device dials are different strings was written three times — once in the CV presets, - once in the invoice presets, once in the proposal presets — and the three copies were - byte-identical where they overlapped. They are now one helper in the family-neutral - identity layer, beside the contact-block and link records it serves, with `tel` / - `telLink` / `mailLink` / `webLink` / `channelLink`. + a device dials are different strings had three named homes — one in the CV presets, one + in the invoice presets, one in the proposal presets — byte-identical where they + overlapped. They are now one helper in the family-neutral identity layer, beside the + contact-block and link records it serves, with `tel` / `telLink` / `mailLink` / + `web` / `webLink` / `channelLink`. Thirteen further copies of the same rule, written + inline inside the presets rather than named, are swept onto it under *Fixed* below.

      It is public because the three families are three packages and a helper shared between them cannot be package-private; it is not marked experimental because the shape is not - a guess — three independent implementations had already agreed on it. Every method - answers `null` rather than throwing, including where the string cannot be a URI at - all: a notice, a name or a line of prose can reach a channel field, and losing the - affordance is not worth failing to compose the page over. Twenty-three preset files - now call it and nothing renders differently — a link annotation is not ink, and every - pixel baseline in the suite passes untouched. + a guess — sixteen independent implementations had already agreed on it. The link forms + answer `null` rather than throwing, including where the string cannot be a URI at all: + a notice, a name or a line of prose can reach a channel field, and losing the + affordance is not worth failing to compose the page over. `tel` and `web` are the + target forms behind `telLink` and `webLink`, for the call sites that take a plain + string; a target is not yet a link, so it is the link forms that carry that guarantee. + Nothing renders differently — a link annotation is not ink, and every pixel baseline in + the suite passes untouched. + +### Fixed + +- **Five designs dialled a number they had not printed.** A printed telephone number and + the number a device dials are different strings, and the conversion between them lived + in thirteen private copies — one per design. Eight of them dropped the parenthesised + trunk prefix and five did not, so a sheet printing `+44 (0)20 7946 0832` linked + `tel:+4402079460832`, a number that reaches nobody from abroad. `ConsultingInvoice` was + further out still: its copy removed spaces and nothing else, so the printed brackets + went into the target and the link was not a dialable number at all. The five are + `CharcoalGold`, `NavySidebar`, `ProfessionalSidebar` and `SerifHeadline` on the CV + side, and `ConsultingInvoice` on the invoice side. +

      + All thirteen copies are gone and every design routes through `ContactUri` — which is + what eight of them were already doing, in eight separate places: four spelling the + regex out inline and four naming a constant for it. That duplication is as much the + cost being removed as the five that got it wrong. The same sweep removes three copies + of the scheme-prefixing rule for a printed website, which `ContactUri` gains as `web`. +

      + Nothing on any page moves: a link annotation is not ink, and no fixture prints a trunk + prefix, so no pixel baseline and no layout snapshot changes — what changes is where the + link goes when a caller's own number carries one. ### Templates @@ -914,6 +939,17 @@ follow semantic versioning; release dates are ISO 8601. a wrapped one close to twice that — and the two sample addresses were shortened to fit. +- **Every promoted CV design is asked the same question about its telephone link.** + `CvPresetDialTargetTest` renders all ten with a contact block whose number carries a + trunk prefix and reads the `tel:` targets back out of the file. This is the check the + thirteen private copies never had: two designs had a test naming a trunk prefix and + both handled one, while the other eight asserted their dial target with a number + carrying none — so every copy agreed with its own test, and four of them still built a + target no caller could reach. Proved fails-closed by removing the trunk-prefix rule + from `ContactUri` and watching all ten go red. `ConsultingInvoiceSmokeTest` asks the + same of the invoice design that was furthest out, giving the masthead and the closing + prose different numbers so that neither site can answer for the other. + ## v2.3.0 — 2026-08-31 ### Public API diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index dd6b77f0d..9eaeb5e5f 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -23,7 +23,7 @@ ], "counts": { "types": 228, - "methods": 1281, + "methods": 1282, "constants": 177, "generated": 689 }, @@ -478,6 +478,20 @@ } ] }, + { + "kind": "method", + "name": "web", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "String", + "name": "website" + } + ] + }, { "kind": "method", "name": "webLink", diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index d1dd8b7a9..33fe812f2 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 228 · methods: 1281 · constants: 177 · compiler-generated members: 689 +Types: 228 · methods: 1282 · constants: 177 · compiler-generated members: 689 ## com.demcha.compose.document.templates.api @@ -63,6 +63,7 @@ Types: 228 · methods: 1281 · constants: 177 · compiler-generated members: 689 - `String tel(String phone)` - `DocumentLinkOptions telLink(String phone)` - `DocumentLinkOptions mailLink(String email)` +- `String web(String website)` - `DocumentLinkOptions webLink(String website)` - `DocumentLinkOptions channelLink(String contact)` diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvPresetDialTargetTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvPresetDialTargetTest.java new file mode 100644 index 000000000..962f9294b --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvPresetDialTargetTest.java @@ -0,0 +1,116 @@ +package com.demcha.compose.document.templates.cv.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.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.ContactUri; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.function.Supplier; +import java.util.stream.Stream; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * A sheet prints a number the way a person reads it and links the number a + * device dials, and the two are not the same string: a UK sheet prints + * {@code +44 (0)20 7946 0832}, and a caller reaching that line from abroad + * dials {@code +442079460832} — the trunk prefix is for a domestic dialler + * and belongs to neither the printed nor the international form. + * + *

      Every design here drew that conversion from its own copy, and most of the + * copies did not know about the trunk prefix, so one printed number became a + * different target — an unreachable one — depending on which design its owner + * had chosen. They all route through {@link ContactUri} now, and asking each + * of them the same question is what keeps them there: a preset that writes its + * own converter again fails here rather than at a reader's phone.

      + */ +class CvPresetDialTargetTest { + + /** The printed form: what a reader sees on the page. */ + private static final String PRINTED = "+44 (0)20 7946 0832"; + + /** The dialled form: what the link under it has to carry. */ + private static final String DIALLED = "tel:+442079460832"; + + @ParameterizedTest(name = "{0}") + @MethodSource("presets") + void theNumberOnThePageIsNotTheNumberInTheLink( + String slug, Supplier> factory) throws Exception { + + byte[] pdf = render(factory.get()); + + assertThat(dialTargets(pdf)) + .describedAs("%s prints %s for a reader, so its link has to carry %s", + slug, PRINTED, DIALLED) + .containsExactly(DIALLED); + } + + /** + * A contact block and nothing else: the phone link is what is under test, + * and an empty CV renders in every one of these designs. + */ + private static byte[] render(DocumentTemplate template) throws Exception { + CvIdentity identity = new CvIdentity(CvName.of("Ada", "Lovelace"), "Analyst", + new Contact(PRINTED, "ada@example.test", "London, UK"), + List.of(), Optional.empty()); + try (DocumentSession session = GraphCompose.document().create()) { + // One design names a display family nothing bundles, so the caller + // supplies it. Registering it for all of them costs the rest nothing. + OrangeOpsTestFont.register(session); + template.compose(session, new CvDocument(identity, List.of())); + return session.toPdfBytes(); + } + } + + /** + * The {@code tel:} targets the file carries. A run that wraps at a space + * carries one annotation per piece, all pointing at the same place, so it + * is the set of targets that is asserted rather than their number. + */ + private static Set dialTargets(byte[] pdfBytes) throws Exception { + Set targets = new LinkedHashSet<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri + && uri.getURI().startsWith("tel:")) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + private static Stream presets() { + return Stream.of( + Arguments.of("charcoal_gold", (Supplier>) CharcoalGold::create), + Arguments.of("midnight_navy", (Supplier>) MidnightNavy::create), + Arguments.of("navy_sidebar", (Supplier>) NavySidebar::create), + Arguments.of("orange_ops", (Supplier>) OrangeOps::create), + Arguments.of("professional_sidebar", (Supplier>) ProfessionalSidebar::create), + Arguments.of("serif_headline", (Supplier>) SerifHeadline::create), + Arguments.of("slate_orange", (Supplier>) SlateOrange::create), + Arguments.of("teal_pulse", (Supplier>) TealPulse::create), + Arguments.of("terracotta_rail", (Supplier>) TerracottaRail::create), + Arguments.of("violet_grid", (Supplier>) VioletGrid::create)); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceSmokeTest.java index ed319022b..b6a841bef 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceSmokeTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceSmokeTest.java @@ -5,16 +5,23 @@ import com.demcha.compose.document.templates.api.DocumentTemplate; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec; import org.apache.pdfbox.Loader; import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; import org.apache.pdfbox.text.PDFTextStripper; import org.junit.jupiter.api.Test; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; @@ -154,6 +161,65 @@ private static StructuredInvoiceData.Builder rebuild(StructuredInvoiceData data) .currencyCode(data.currencyCode()); } + @Test + void aTrunkPrefixIsPrintedAndNotDialled() throws Exception { + // The sheet prints the number a reader at home would dial and links the + // one a caller abroad has to. The trunk prefix belongs to the first and + // not the second, and this preset used to hand the printed form's + // brackets straight to the link. + // + // The sheet dials in two places from two fields — the supplier in the + // masthead and the contact in the closing prose — so each is given its + // own number and both targets are named. One number would let either + // site alone satisfy the assertion. + StructuredInvoiceData canonical = ConsultingInvoiceFixtures.canonicalInvoice().invoice(); + InvoiceContactBlock supplier = canonical.supplier(); + InvoiceNotesBlock notes = canonical.notes(); + String inTheMasthead = "+44 (0)20 7946 0832"; + String inTheProse = "+44 (0)161 555 2200"; + + StructuredInvoiceData printed = rebuild(canonical) + .supplier(new InvoiceContactBlock(supplier.legalName(), supplier.addressLines(), + inTheMasthead, supplier.email(), supplier.website(), + supplier.registrationLabel(), supplier.registrationNumber(), + supplier.taxRegistrationLabel(), supplier.taxRegistrationNumber(), + supplier.legalFootnote())) + // The closing links the number where it finds it in its own + // prose, so the sentence has to carry the new one too. + .notes(new InvoiceNotesBlock(notes.heading(), + notes.paragraphs().stream() + .map(line -> line.replace(notes.contactPhone(), inTheProse)) + .toList(), + notes.contactEmail(), inTheProse)) + .build(); + + byte[] pdfBytes = render(StructuredInvoiceDocumentSpec.from(printed)); + assertThat(textOf(pdfBytes)).contains(inTheMasthead).contains(inTheProse); + assertThat(dialTargets(pdfBytes)) + .containsExactlyInAnyOrder("tel:+442079460832", "tel:+441615552200"); + } + + /** + * The {@code tel:} targets the file carries. A run that wraps at a space + * carries one annotation per piece, all pointing at the same place, so it + * is the set of targets that is asserted rather than their number. + */ + private static Set dialTargets(byte[] pdfBytes) throws Exception { + Set targets = new LinkedHashSet<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri + && uri.getURI().startsWith("tel:")) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + @Test void overflowInvoiceRepeatsTheTableHeaderOnTheSecondPage() throws Exception { byte[] pdfBytes = render(ConsultingInvoiceFixtures.overflowInvoice()); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/core/identity/ContactUri.java b/templates/src/main/java/com/demcha/compose/document/templates/core/identity/ContactUri.java index 82bf82ca1..94ad76583 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/core/identity/ContactUri.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/core/identity/ContactUri.java @@ -79,21 +79,38 @@ public static DocumentLinkOptions mailLink(String email) { } /** - * A written site as something a reader can follow. A sheet prints - * {@code example.com}; a viewer needs a scheme in front of it. + * A written site as a browsable target. A sheet prints {@code example.com}; + * a viewer needs a scheme in front of it. + * + *

      A target is not yet a link. Giving a scheme to something that is not an + * address — {@code ask at the bar} becomes {@code https://ask at the bar} — + * produces a string {@link DocumentLinkOptions} refuses, so this is for a + * component that takes a plain target. Where a link is being made, reach for + * {@link #webLink(String)}: that is where the refusal becomes no link rather + * than a page that does not compose.

      * * @param website the site as the sheet prints it - * @return the link options, or {@code null} when there is no site, or none - * that could be made from what was printed + * @return the target, or {@code null} when there is no site */ - public static DocumentLinkOptions webLink(String website) { + public static String web(String website) { if (website == null || website.isBlank()) { return null; } String trimmed = website.trim(); - return options(trimmed.startsWith("http://") || trimmed.startsWith("https://") + return trimmed.startsWith("http://") || trimmed.startsWith("https://") ? trimmed - : "https://" + trimmed); + : "https://" + trimmed; + } + + /** + * The same, ready to hand to a component that takes a link or nothing. + * + * @param website the site as the sheet prints it + * @return the link options, or {@code null} when there is no site, or none + * that could be made from what was printed + */ + public static DocumentLinkOptions webLink(String website) { + return options(web(website)); } /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldAside.java index b2d71ce73..6932d2ce3 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldAside.java @@ -16,6 +16,7 @@ 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.core.identity.ContactUri; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.components.SectionLookup; import com.demcha.compose.document.templates.cv.data.CvEntry; @@ -186,7 +187,7 @@ private static void renderContact(SectionBuilder side, CvIdentity identity, private static List channels(CvIdentity identity) { List channels = new ArrayList<>(); String phone = identity.contact().phone(); - channels.add(new Channel(CharcoalGoldIcons.PHONE, phone, telUri(phone))); + channels.add(new Channel(CharcoalGoldIcons.PHONE, phone, ContactUri.tel(phone))); String email = identity.contact().email(); channels.add(new Channel(CharcoalGoldIcons.EMAIL, email, "mailto:" + email)); channels.add(new Channel(CharcoalGoldIcons.LOCATION, @@ -197,17 +198,6 @@ private static List channels(CvIdentity identity) { return channels; } - /** - * The dial target for a phone number: its digits, keeping a leading - * {@code +} so an international number stays international. - */ - private static String telUri(String phone) { - String digits = phone.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - /** * The mark for a link: the network's own when it names one, the globe * otherwise. diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyAside.java index 9c9ec4c9d..c059b9849 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyAside.java @@ -16,6 +16,7 @@ import com.demcha.compose.document.style.DocumentStroke; import com.demcha.compose.document.style.DocumentTextDecoration; import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.components.SectionLookup; import com.demcha.compose.document.templates.cv.data.CvEntry; @@ -29,7 +30,6 @@ import java.util.List; import java.util.Locale; import java.util.OptionalDouble; -import java.util.regex.Pattern; import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_CONTENT_PAD; import static com.demcha.compose.document.templates.cv.presets.MidnightNavyStyles.ASIDE_DIM; @@ -89,12 +89,6 @@ final class MidnightNavyAside { /** The heading the design gives the contact block, which no section carries. */ static final String CONTACT_HEADING = "CONTACT"; - /** - * A trunk prefix in a printed number is for a domestic dialler and is not - * part of the international one, so it is dropped from the dialled form. - */ - private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); - private MidnightNavyAside() { } @@ -186,7 +180,7 @@ private static void renderContact(SectionBuilder column, CvIdentity identity) { Contact contact = identity.contact(); List channels = new ArrayList<>(); channels.add(new Channel(MidnightNavyIcons.PHONE, contact.phone(), - telUri(contact.phone()))); + ContactUri.tel(contact.phone()))); channels.add(new Channel(MidnightNavyIcons.EMAIL, contact.email(), "mailto:" + contact.email())); channels.add(new Channel(MidnightNavyIcons.LOCATION, contact.address(), null)); @@ -400,14 +394,6 @@ private static String markFor(Link link) { : MidnightNavyIcons.WEBSITE; } - /** A printed number as something a reader can dial, or {@code null}. */ - private static String telUri(String phone) { - String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - /** One contact row: its mark, what it reads, and where it points. */ private record Channel(String token, String label, String href) { } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java index 0b546131a..07513dd65 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java @@ -13,6 +13,7 @@ import com.demcha.compose.document.style.ClipPolicy; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.components.SectionLookup; import com.demcha.compose.document.templates.cv.data.CvEntry; @@ -185,7 +186,7 @@ private static void renderChannel(SectionBuilder section, Channel channel) { private static List channels(CvIdentity identity) { List channels = new ArrayList<>(); String phone = identity.contact().phone(); - channels.add(new Channel(NavySidebarIcons.PHONE, phone, telUri(phone))); + channels.add(new Channel(NavySidebarIcons.PHONE, phone, ContactUri.tel(phone))); String email = identity.contact().email(); channels.add(new Channel(NavySidebarIcons.EMAIL, email, "mailto:" + email)); channels.add(new Channel(NavySidebarIcons.LOCATION, @@ -196,17 +197,6 @@ private static List channels(CvIdentity identity) { return channels; } - /** - * The dial target for a phone number: its digits, keeping a leading - * {@code +} so an international number stays international. - */ - private static String telUri(String phone) { - String digits = phone.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - /** * A contact row. The packaged set has one network mark, so every link * takes it — this design ships no globe. diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMasthead.java index 1bc677f89..c8a11ec73 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsMasthead.java @@ -14,6 +14,7 @@ import com.demcha.compose.document.style.DocumentRowColumn; import com.demcha.compose.document.svg.SvgPath; import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.data.CvIdentity; import com.demcha.compose.document.templates.cv.data.CvName; @@ -21,7 +22,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -import java.util.regex.Pattern; import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.ACCENT; import static com.demcha.compose.document.templates.cv.presets.OrangeOpsStyles.BAR_TO_CONTACT; @@ -69,14 +69,6 @@ */ final class OrangeOpsMasthead { - /** - * A trunk prefix in a printed number is for a domestic dialler and is not - * part of the international one — {@code +44 (0)20 7946 0832} dials - * {@code +442079460832}. Left in, the digits would run together into a - * number that reaches nobody. - */ - private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); - private OrangeOpsMasthead() { } @@ -205,7 +197,7 @@ private static String slash(double topLeftPx, double widthPx) { private static void renderContactStrip(PageFlowBuilder page, CvIdentity identity) { Contact contact = identity.contact(); List channels = new ArrayList<>(); - channels.add(new Channel(OrangeOpsIcons.PHONE, contact.phone(), telUri(contact.phone()))); + channels.add(new Channel(OrangeOpsIcons.PHONE, contact.phone(), ContactUri.tel(contact.phone()))); channels.add(new Channel(OrangeOpsIcons.EMAIL, contact.email(), "mailto:" + contact.email())); channels.add(new Channel(OrangeOpsIcons.LOCATION, contact.address(), null)); @@ -259,14 +251,6 @@ private static String markFor(Link link) { : OrangeOpsIcons.WEBSITE; } - /** A printed number as something a reader can dial, or {@code null}. */ - private static String telUri(String phone) { - String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - /** One item of the strip: its mark, what it reads, and where it points. */ private record Channel(String token, String label, String href) { } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java index a22ae816d..9782fe9f3 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java @@ -17,6 +17,7 @@ import com.demcha.compose.document.style.DocumentStroke; import com.demcha.compose.document.style.DocumentTextDecoration; import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.components.SectionLookup; import com.demcha.compose.document.templates.cv.data.CvEntry; @@ -224,7 +225,7 @@ private static void renderChannel(SectionBuilder section, Channel channel, private static List channels(CvIdentity identity) { List channels = new ArrayList<>(); String phone = identity.contact().phone(); - channels.add(new Channel(ProfessionalSidebarIcons.PHONE, phone, telUri(phone))); + channels.add(new Channel(ProfessionalSidebarIcons.PHONE, phone, ContactUri.tel(phone))); String email = identity.contact().email(); channels.add(new Channel(ProfessionalSidebarIcons.EMAIL, email, "mailto:" + email)); channels.add(new Channel(ProfessionalSidebarIcons.LOCATION, @@ -235,17 +236,6 @@ private static List channels(CvIdentity identity) { return channels; } - /** - * The dial target for a phone number: its digits, keeping a leading - * {@code +} so an international number stays international. - */ - private static String telUri(String phone) { - String digits = phone.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - /** * The mark for a link. The packaged set names one network; everything * else is a site, which is what the globe stands for. diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMasthead.java index f9bffd2e0..309f4971d 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMasthead.java @@ -13,6 +13,7 @@ import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentTextDecoration; import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.core.text.TextStyles; import com.demcha.compose.document.templates.cv.components.SectionLookup; @@ -176,7 +177,7 @@ private static void renderChannel(SectionBuilder section, Channel channel) { private static List channels(CvIdentity identity) { List channels = new ArrayList<>(); String phone = identity.contact().phone(); - channels.add(new Channel(SerifHeadlineIcons.PHONE, phone, telUri(phone))); + channels.add(new Channel(SerifHeadlineIcons.PHONE, phone, ContactUri.tel(phone))); String email = identity.contact().email(); channels.add(new Channel(SerifHeadlineIcons.EMAIL, email, "mailto:" + email)); channels.add(new Channel(SerifHeadlineIcons.LOCATION, @@ -187,17 +188,6 @@ private static List channels(CvIdentity identity) { return channels; } - /** - * The dial target for a phone number: its digits, keeping a leading - * {@code +} so an international number stays international. - */ - private static String telUri(String phone) { - String digits = phone.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - /** * The mark for a link. This design packages the two networks it shows; * anything else takes the LinkedIn mark, because there is no globe in diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMasthead.java index 84395f8f9..dedcceb18 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMasthead.java @@ -11,6 +11,7 @@ import com.demcha.compose.document.style.DocumentRowColumn; import com.demcha.compose.document.style.DocumentTextStyle; import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.data.CvIdentity; import com.demcha.compose.document.templates.cv.data.ParagraphSection; @@ -279,7 +280,7 @@ private static List channels(CvIdentity identity) { Contact contact = identity.contact(); List channels = new ArrayList<>(); channels.add(new Channel(SlateOrangeIcons.PHONE, contact.phone(), - telUri(contact.phone()))); + ContactUri.tel(contact.phone()))); channels.add(new Channel(SlateOrangeIcons.EMAIL, contact.email(), "mailto:" + contact.email())); for (Link link : identity.links()) { @@ -288,17 +289,4 @@ private static List channels(CvIdentity identity) { channels.add(new Channel(SlateOrangeIcons.LOCATION, contact.address(), null)); return channels; } - - /** - * The dial target for a phone number: its digits, keeping a leading - * {@code +} so an international number stays international, and dropping a - * parenthesised trunk prefix the way a caller dialling from abroad does. - */ - private static String telUri(String phone) { - String dialled = phone.replaceAll("\\(0+\\)", ""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseMasthead.java index d83774d96..091ae5f02 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseMasthead.java @@ -23,6 +23,7 @@ import com.demcha.compose.document.style.DocumentTextStyle; import com.demcha.compose.document.svg.SvgPath; import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.data.CvIdentity; @@ -204,7 +205,7 @@ private static List channels(CvIdentity identity) { channels.add(new Channel(TealPulseIcons.LOCATION, contact.address(), null)); channels.add(new Channel(TealPulseIcons.EMAIL, contact.email(), "mailto:" + contact.email())); - channels.add(new Channel(TealPulseIcons.PHONE, contact.phone(), telUri(contact.phone()))); + channels.add(new Channel(TealPulseIcons.PHONE, contact.phone(), ContactUri.tel(contact.phone()))); for (Link link : identity.links()) { channels.add(new Channel(TealPulseIcons.LINKEDIN, link.label(), link.url())); } @@ -248,17 +249,4 @@ private static void separator(RowBuilder row, int index) { .color(SEPARATOR) .margin(DocumentInsets.zero())); } - - /** - * The dial target for a phone number: its digits, keeping a leading - * {@code +} so an international number stays international, and dropping a - * parenthesised trunk prefix the way a caller dialling from abroad does. - */ - private static String telUri(String phone) { - String dialled = phone.replaceAll("\\(0+\\)", ""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java index 50e82e123..e72a7b111 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java @@ -4,6 +4,7 @@ import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.data.CvEntry; import com.demcha.compose.document.templates.cv.data.CvIdentity; @@ -142,7 +143,7 @@ private static void renderContact(SectionBuilder side, CvIdentity identity) { channel(block, 0, TerracottaRailIcons.EMAIL, contact.email(), "mailto:" + contact.email()); channel(block, 1, TerracottaRailIcons.PHONE, contact.phone(), - telUri(contact.phone())); + ContactUri.tel(contact.phone())); channel(block, 2, TerracottaRailIcons.LOCATION, contact.address(), null); int index = 3; for (Link link : identity.links()) { @@ -175,20 +176,6 @@ private static String markFor(Link link) { : TerracottaRailIcons.GLOBE; } - /** - * The dial target for a phone number: its digits, keeping a leading - * {@code +} so an international number stays international, and dropping - * a parenthesised trunk prefix the way a caller dialling from abroad - * drops it. - */ - private static String telUri(String phone) { - String dialled = phone.replaceAll("\\(0+\\)", ""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - // -- the lists --------------------------------------------------------- /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridMasthead.java index 7ae5ce376..e7f0dcbf0 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridMasthead.java @@ -6,6 +6,7 @@ import com.demcha.compose.document.style.DocumentRowColumn; import com.demcha.compose.document.style.DocumentTextStyle; import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.data.CvIdentity; import com.demcha.compose.document.templates.cv.data.ParagraphSection; @@ -155,7 +156,7 @@ private static List channels(CvIdentity identity) { channels.add(new Channel(VioletGridIcons.EMAIL, contact.email(), "mailto:" + contact.email())); channels.add(new Channel(VioletGridIcons.PHONE, contact.phone(), - telUri(contact.phone()))); + ContactUri.tel(contact.phone()))); channels.add(new Channel(VioletGridIcons.LOCATION, contact.address(), null)); for (Link link : identity.links()) { channels.add(new Channel(markFor(link), link.label(), link.url())); @@ -169,19 +170,6 @@ private static String markFor(Link link) { return target.contains("linkedin") ? VioletGridIcons.LINKEDIN : VioletGridIcons.WEBSITE; } - /** - * The dial target for a phone number: its digits, keeping a leading - * {@code +} so an international number stays international, and dropping a - * parenthesised trunk prefix the way a caller dialling from abroad does. - */ - private static String telUri(String phone) { - String dialled = phone.replaceAll("\\(0+\\)", ""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - // -- the opening lines ------------------------------------------------- /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingClosing.java index 854e856fa..a92bc52d4 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingClosing.java @@ -8,6 +8,7 @@ import com.demcha.compose.document.style.ClipPolicy; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; @@ -26,7 +27,6 @@ import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SMALL_ITALIC; import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.link; import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.nonBreakingPhone; -import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.telUri; /** * The closing band of the Consulting Invoice: where the money goes on the @@ -132,7 +132,7 @@ private static void renderNoteParagraph(ParagraphBuilder paragraph, .with(notes.contactEmail(), BODY_LINK, link("mailto:" + notes.contactEmail())) .style(between, BODY) .with(nonBreakingPhone(notes.contactPhone()), BODY, - link(telUri(notes.contactPhone()))) + ContactUri.telLink(notes.contactPhone())) .style(after, BODY)); } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingMasthead.java index 5699f990c..96ef659ae 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingMasthead.java @@ -10,6 +10,7 @@ import com.demcha.compose.document.style.ClipPolicy; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; @@ -32,9 +33,7 @@ import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SMALL_BOLD; import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SUPPLIER_WIDTH; import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.link; -import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.telUri; import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.tracked; -import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.websiteUri; /** * The masthead of the Consulting Invoice: the sender's lockup and contact @@ -70,7 +69,7 @@ static void renderSupplier(SectionBuilder section, StructuredInvoiceData data) { } if (!supplier.phone().isBlank()) { contactBand(section, ConsultingIcons.PHONE, 9.2, supplier.phone(), - CONTACT_ROW_HEIGHT, telUri(supplier.phone())); + CONTACT_ROW_HEIGHT, ContactUri.tel(supplier.phone())); } if (!supplier.email().isBlank()) { contactBand(section, ConsultingIcons.EMAIL, 9.2, supplier.email(), @@ -78,7 +77,7 @@ static void renderSupplier(SectionBuilder section, StructuredInvoiceData data) { } if (!supplier.website().isBlank()) { contactBand(section, ConsultingIcons.WEBSITE, 9.4, supplier.website(), - CONTACT_ROW_HEIGHT, websiteUri(supplier.website())); + CONTACT_ROW_HEIGHT, ContactUri.web(supplier.website())); } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingText.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingText.java index 6e873e2ad..be22cabac 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingText.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingText.java @@ -134,29 +134,6 @@ static DocumentLinkOptions link(String uri) { return new DocumentLinkOptions(uri); } - /** - * Builds the {@code tel:} URI of a printed phone number. - * - * @param phone the printed number - * @return the dial URI - */ - static String telUri(String phone) { - return "tel:" + phone.replace(" ", ""); - } - - /** - * Builds the browsable URI of a printed website, adding the scheme when - * the printed form omits it. - * - * @param website the printed website - * @return the browsable URI - */ - static String websiteUri(String website) { - return website.startsWith("http://") || website.startsWith("https://") - ? website - : "https://" + website; - } - /** * Keeps a printed phone number on one line. * diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioMasthead.java index c1dfb32d0..ab75a03b0 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioMasthead.java @@ -7,13 +7,13 @@ import com.demcha.compose.document.node.TextVerticalAlign; import com.demcha.compose.document.style.ClipPolicy; import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; import java.util.ArrayList; import java.util.List; -import java.util.regex.Pattern; import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ACCENT; import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BODY; @@ -59,9 +59,6 @@ final class LumaStudioMasthead { /** The break this sheet stacks address lines on. */ private static final String NEWLINE = String.valueOf((char) 10); - /** A parenthesised trunk prefix, which an international dial target drops. */ - private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); - private LumaStudioMasthead() { } @@ -97,11 +94,11 @@ static void renderSupplier(SectionBuilder section, InvoiceContactBlock supplier) .spacing(0) .margin(new DocumentInsets(LINE_PITCH * 0.79, 0, 0, 0)); contactRow(contacts, LumaStudioIcons.PHONE, supplier.phone(), - telUri(supplier.phone())); + ContactUri.tel(supplier.phone())); contactRow(contacts, LumaStudioIcons.EMAIL, supplier.email(), supplier.email().isBlank() ? null : "mailto:" + supplier.email()); contactRow(contacts, LumaStudioIcons.WEBSITE, supplier.website(), - webUri(supplier.website())); + ContactUri.web(supplier.website())); section.add(contacts.build()); section.addParagraph(p -> p @@ -143,31 +140,6 @@ private static String pair(String label, String value) { return label.isBlank() ? value : label + " " + value; } - /** - * The dial target for a phone number: its digits, keeping a leading - * {@code +} so an international number stays international. - * - *

      A parenthesised trunk prefix — the {@code (0)} in - * {@code +44 (0)20 7946 0832} — is the digit a caller drops when dialling - * from abroad, so it is dropped here too. A parenthesised area code is - * not, which is why only an all-zero group goes.

      - */ - private static String telUri(String phone) { - String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() - ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } - - /** A website target: what the document wrote, given a scheme if it has none. */ - private static String webUri(String website) { - if (website.isBlank()) { - return null; - } - return website.startsWith("http") ? website : "https://" + website; - } - // -- title and metadata ---------------------------------------------- /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsClosing.java index 03b3ca8ba..545f76b00 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/PaymentsClosing.java @@ -10,11 +10,11 @@ import com.demcha.compose.document.style.DocumentRowColumn; import com.demcha.compose.document.style.DocumentStroke; import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; import java.util.Locale; -import java.util.regex.Pattern; import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.ACCENT; import static com.demcha.compose.document.templates.invoice.presets.PaymentsStyles.BODY; @@ -63,12 +63,6 @@ */ final class PaymentsClosing { - /** - * A trunk prefix in a printed number is for a domestic dialler and is not - * part of the international one, so it is dropped from the dialled form. - */ - private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); - private PaymentsClosing() { } @@ -260,7 +254,7 @@ private static void renderSupport(SectionBuilder cell, InvoiceNotesBlock notes, p.inlineText(" | ", style(FOOTER_SUB_SIZE, MUTED, DocumentTextDecoration.DEFAULT)); } - String dialled = telUri(notes.contactPhone()); + String dialled = ContactUri.tel(notes.contactPhone()); if (dialled == null) { p.inlineText(notes.contactPhone(), style(FOOTER_SUB_SIZE, BODY, DocumentTextDecoration.DEFAULT)); @@ -278,12 +272,4 @@ private static void renderSupport(SectionBuilder cell, InvoiceNotesBlock notes, }); }); } - - /** A printed number as something a reader can dial, or {@code null}. */ - private static String telUri(String phone) { - String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); - String digits = dialled.replaceAll("[^0-9]", ""); - return digits.isEmpty() ? null - : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; - } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceClosing.java index 8a3af95f4..d2411fee2 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/WorkspaceClosing.java @@ -9,6 +9,7 @@ import com.demcha.compose.document.style.DocumentRowColumn; import com.demcha.compose.document.style.DocumentTextDecoration; import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.identity.ContactUri; import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; @@ -154,19 +155,11 @@ private static void renderBand(PageFlowBuilder page, InvoiceBrand brand, if (website.isBlank()) { p.text(""); } else { - p.inlineText(website, linkStyle, new DocumentLinkOptions(uri(website))); + p.inlineText(website, linkStyle, ContactUri.webLink(website)); } p.align(TextAlign.RIGHT); p.margin(new DocumentInsets(0, px(3), 0, 0)); }); }); } - - /** A written address as something a reader can follow. */ - private static String uri(String website) { - String trimmed = website.trim(); - return trimmed.startsWith("http://") || trimmed.startsWith("https://") - ? trimmed - : "https://" + trimmed; - } } From 75cec890016acde3b5ce625e444fe8f2447b2f9f Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 7 Sep 2026 09:05:42 +0100 Subject: [PATCH 49/85] fix(examples): foot the schedule board at the bottom, on the centre line The rule, its seal and the build line were the last three nodes in the flow, so they were drawn wherever the board happened to end rather than against the bottom margin -- forty points above it on the sample week. They are now a page zone, which is what they had always been describing. The build line stays against the left margin, where the board's own first column starts -- it is a credit, not part of the device above it. A zone is measured from the foot of the sheet, not from the margin, so the band has to reserve the margin as well as the furniture: at the furniture's own height the build line printed within three millimetres of the paper edge, inside the dead zone of most office printers, and this board is meant to be printed. What made the old foot look off centre was the artwork, not the seal. The seal had always been within a five-thousandth of a point of the centre line, because equal weights centre its slot whatever is drawn beside it. The rules were the problem: pinned at 292pt inside slots of 382pt, and a shape narrower than its slot is drawn at the slot's left edge, so the seal carried 98 points of air on one side and 8 on the other while the right rule stopped 90 points short of the margin. The rule width now comes off the page -- printable width less the seal and its two gaps, halved -- so both rules reach the seal and the right one ends on the margin. The rules also sat 2.45pt below the middle of a 13.7pt seal; they now share its centre line exactly. The seal's letter rode high in its pill. A line box is tall enough for a descender and a capital has none, so centring the box centres the empty space under the letter along with it. The pill's padding now carries that half descent, computed from the Times-Bold metrics rather than nudged, and the ink sits within 0.07pt of the pill's centre. The letter is no longer a hardcoded S. It is the board's own initial, read as a code point so a brand opening outside the basic plane is not sealed with half a character, and a blank brand is rejected rather than sealed with nothing. Being a zone rather than flow content, the foot is drawn on every page instead of once at the end, and reserves its height on every page. The sample week is far enough inside that reservation that its table does not move; a rota long enough to run over now carries its foot on both pages. Tests: the examples module verifies green, 77 tests, CommittedAssetDrift included -- the committed preview under assets/readme is regenerated here, because the foot of it moved. Every measurement above is read out of the rendered file, not out of the source. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 33 ++++ assets/readme/examples/weekly-schedule.pdf | Bin 8334 -> 8325 bytes .../support/WeeklyScheduleRenderer.java | 186 ++++++++++++++---- 3 files changed, 183 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15b0428ff..7c8a36a10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -242,6 +242,39 @@ follow semantic versioning; release dates are ISO 8601. ### Fixed +- **The weekly-schedule board's foot is a footer.** The rule, its seal and the build + line were the last three nodes in the flow, so they were drawn wherever the board + happened to end — on the sample week, forty points above the bottom margin. They are + now a page zone, which is what they had always been describing. A zone is measured + from the foot of the sheet rather than from the margin, so the band reserves the + margin too: without that the build line printed within three millimetres of the paper + edge, inside the dead zone of most office printers, and this board is meant to be + printed. The line itself stays against the left margin, where the board's own first + column starts — it is a credit, not part of the device above it. +

      + What made the old foot look off centre was the artwork, not the seal — the seal had + always been within a five-thousandth of a point of the centre line, because equal + weights centre its slot whatever is drawn beside it. The rules were the problem: fixed + at 292pt inside slots of 382pt, and a shape narrower than its slot is drawn at the + slot's left edge, so the seal carried 98 points of air on one side and 8 on the other + while the right rule stopped 90 points short of the margin. The rule width now comes + off the page — printable width less the seal and its two gaps, halved — so both rules + reach the seal and the right one ends on the margin. The rules also sat below the + seal's middle by 2.45pt of its 13.7; they now share its centre line exactly. +

      + The seal's letter rode high in its pill, because a line box is tall enough for a + descender and a capital has none, so centring the box centres the unused space with + it. The pill's padding now carries that half descent, computed from the Times-Bold + metrics, and the letter's ink sits within 0.07pt of the pill's centre. The letter + itself is no longer the hardcoded `S`: it is the board's own initial, so a schedule + printed for one venue is not sealed with another's, and a blank brand is now rejected + rather than sealed with nothing. +

      + Being a zone rather than flow content, the foot is drawn on every page instead of once + at the end, and reserves its height on every page. The sample week is a page shorter + than that reservation, so its table is untouched; a rota long enough to run over now + carries its foot on both pages. + - **Five designs dialled a number they had not printed.** A printed telephone number and the number a device dials are different strings, and the conversion between them lived in thirteen private copies — one per design. Eight of them dropped the parenthesised diff --git a/assets/readme/examples/weekly-schedule.pdf b/assets/readme/examples/weekly-schedule.pdf index 82bc8c0aa4b8295e6452059e67cfd7317bb6d63a..e80469d6f45fe9514f741747107ab6248550742e 100644 GIT binary patch delta 7733 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 delta 7741 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 diff --git a/examples/src/main/java/com/demcha/examples/support/WeeklyScheduleRenderer.java b/examples/src/main/java/com/demcha/examples/support/WeeklyScheduleRenderer.java index 236c4a298..bd9910d3e 100644 --- a/examples/src/main/java/com/demcha/examples/support/WeeklyScheduleRenderer.java +++ b/examples/src/main/java/com/demcha/examples/support/WeeklyScheduleRenderer.java @@ -5,6 +5,7 @@ import com.demcha.compose.document.api.DocumentSession; import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.output.DocumentPageZone; import com.demcha.compose.document.style.DocumentColor; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentStroke; @@ -336,13 +337,33 @@ public static Layout landscape() { double dayColumn = 105.5; return new Layout( DocumentPageSize.of(PAGE_WIDTH, 472), - new DocumentInsets(14, SIDE_MARGIN, 14, SIDE_MARGIN), + new DocumentInsets(BOTTOM_MARGIN, SIDE_MARGIN, BOTTOM_MARGIN, SIDE_MARGIN), Math.floor((printable - DAYS_IN_WEEK * dayColumn) * 100) / 100, dayColumn); } public double subColWidth() { return dayColWidth / 4.0; } public int totalColumns() { return 1 + DAYS_IN_WEEK * 4; } + + /** What the footer has to lay itself out inside. */ + public double printableWidth() { + return pageSize.width() - margin.left() - margin.right(); + } + + /** + * Half the footer rule: the printable width less the seal and the gap + * on either side of it. + * + *

      Equal weights already put the seal's slot on the centre + * line — that part needs no arithmetic. What this buys is that the + * rules fill the slots they are given: a shape narrower than its slot + * is drawn at the slot's left edge, so a fixed width leaves the drawn + * rule short on one side of the seal and short of the margin on the + * other, and the foot reads as lopsided however centred the seal is.

      + */ + public double footerRuleWidth() { + return (printableWidth() - SEAL_WIDTH - 2 * SEAL_GAP) / 2; + } } // ───────────────────────── Constants ───────────────────────────── @@ -354,6 +375,68 @@ public static Layout landscape() { /** Left and right margin; the columns divide what is left. */ private static final double SIDE_MARGIN = 8; + + /** Top and bottom margin; the footer zone has to clear the bottom one. */ + private static final double BOTTOM_MARGIN = 14; + + /** The seal that breaks the footer rule, and the air on either side of it. */ + private static final double SEAL_WIDTH = 44; + private static final double SEAL_GAP = 8; + + /** Times-Bold, as the seal is set: the metrics the seal's geometry reads. */ + private static final double TIMES_BOLD_ASCENT = 0.683; + private static final double TIMES_BOLD_DESCENT = 0.217; + private static final double TIMES_BOLD_CAP_HEIGHT = 0.676; + + /** The seal's letter, and the point of air the pill keeps above and below it. */ + private static final double SEAL_LETTER_SIZE = 13; + private static final double SEAL_PADDING_Y = 1; + + /** + * How far the seal's letter drops to sit level in its pill. + * + *

      A line box is tall enough for a descender and a capital has none, so + * centring the box centres the unused space along with the letter and the + * letter rides high. Dropping the box by half that unused space — the cap + * height against what the ascent and descent leave — puts the ink on the + * pill's centre line. It scales with the letter, but not with the font: + * set the seal in something other than Times-Bold and these three metrics + * have to change with it.

      + */ + private static final double SEAL_LETTER_DROP = SEAL_LETTER_SIZE + * (TIMES_BOLD_CAP_HEIGHT - (TIMES_BOLD_ASCENT - TIMES_BOLD_DESCENT)) / 2; + + /** The pill: the letter's line box, plus its point of air top and bottom. */ + private static final double SEAL_HEIGHT = + SEAL_LETTER_SIZE * (TIMES_BOLD_ASCENT + TIMES_BOLD_DESCENT) + 2 * SEAL_PADDING_Y; + + /** The hairline the seal breaks, and the drop that lands it on the seal's centre line. */ + private static final double FOOTER_RULE_THICKNESS = 0.6; + private static final double FOOTER_RULE_DROP = (SEAL_HEIGHT - FOOTER_RULE_THICKNESS) / 2; + + /** + * The build line under the rule, set in Courier, and the air between the + * two. The depth reserved for it is the font's box rather than its metric + * descent, because it is ink, not the line box, that has to stay out of + * the margin, and a descender reaches past the line it is measured by. + */ + private static final double COURIER_ASCENT = 0.629; + private static final double COURIER_BOX_DESCENT = 0.250; + private static final double BUILD_LINE_SIZE = 7.5; + private static final double FOOTER_GAP_Y = 6; + + /** + * Height reserved at the foot of every page. + * + *

      A footer zone is measured from the foot of the sheet, not + * from the bottom margin, and its content is laid out from the top of the + * band down. So the band has to be the furniture plus the margin it must + * not print into: at 34 — the furniture alone — the build line came within + * three millimetres of the paper edge, inside the dead zone of most office + * printers, and this board is printed.

      + */ + private static final double FOOTER_ZONE_HEIGHT = SEAL_HEIGHT + FOOTER_GAP_Y + + BUILD_LINE_SIZE * (COURIER_ASCENT + COURIER_BOX_DESCENT) + BOTTOM_MARGIN; private static final DayShift[] EMPTY_WEEK = { DayShift.NONE, DayShift.NONE, DayShift.NONE, DayShift.NONE, DayShift.NONE, DayShift.NONE, DayShift.NONE @@ -404,6 +487,11 @@ public static void renderTo(Path outputFile, Layout layout) throws Exception { Objects.requireNonNull(outputFile, "outputFile"); Objects.requireNonNull(brandName, "brandName"); + // The brand heads the board and its initial seals the foot, so a blank + // one is a board with nobody's name on it rather than a default. + if (brandName.isBlank()) { + throw new IllegalArgumentException("brandName must not be blank"); + } Objects.requireNonNull(weekStart, "weekStart"); Objects.requireNonNull(staff, "staff"); Objects.requireNonNull(week, "week"); @@ -431,6 +519,55 @@ public static void renderTo(Path outputFile, .margin(layout.margin()) .create()) { + // The rule, its seal and the build line are page furniture, not + // the last thing on the board: as a zone they are drawn against + // the bottom margin, so a week that fills the sheet and a week + // that half fills it both foot the same way. + document.chrome().zone(DocumentPageZone.footer(FOOTER_ZONE_HEIGHT, page -> new SectionBuilder() + .name("FooterZone") + .spacing(6) + .addRow("FooterRule", row -> row + .spacing(SEAL_GAP) + // Equal weights on the two rules are what put the + // seal in the middle; the shapes then have to fill + // the slots the weights hand them. + .weights(layout.footerRuleWidth(), SEAL_WIDTH, layout.footerRuleWidth()) + .addSection("LeftRule", section -> section + .padding(new DocumentInsets(FOOTER_RULE_DROP, 0, 0, 0)) + .addShape(shape -> shape.size(layout.footerRuleWidth(), FOOTER_RULE_THICKNESS) + .fillColor(theme.brandAccent()).margin(DocumentInsets.zero()))) + .addSection("Seal", section -> section + .stroke(DocumentStroke.of(theme.brandAccent(), 0.5)) + .cornerRadius(9) + .padding(new DocumentInsets(SEAL_PADDING_Y + SEAL_LETTER_DROP, 0, + SEAL_PADDING_Y - SEAL_LETTER_DROP, 0)) + .addParagraph(p -> p + .text(sealLetter(brandName)) + .align(TextAlign.CENTER) + .textStyle(DocumentTextStyle.builder() + .fontName(FontName.TIMES_ROMAN) + .decoration(DocumentTextDecoration.BOLD) + .size(SEAL_LETTER_SIZE) + .color(theme.brandAccent()) + .build()) + .margin(DocumentInsets.zero()))) + .addSection("RightRule", section -> section + .padding(new DocumentInsets(FOOTER_RULE_DROP, 0, 0, 0)) + .addShape(shape -> shape.size(layout.footerRuleWidth(), FOOTER_RULE_THICKNESS) + .fillColor(theme.brandAccent()).margin(DocumentInsets.zero())))) + // Left, against the same margin the board's first column + // starts on: it is a credit, not part of the device above + // it, and centring gave it a weight it should not carry. + .addParagraph(p -> p + .text("Composed with GraphCompose — examples/.../WeeklyScheduleRenderer.java") + .textStyle(DocumentTextStyle.builder() + .fontName(FontName.COURIER) + .size(7.5) + .color(theme.muted()) + .build()) + .margin(DocumentInsets.zero())) + .build())); + document.pageFlow() .name("WeeklyShiftSchedule") .spacing(3) @@ -509,47 +646,24 @@ public static void renderTo(Path outputFile, } }) - // Footer rule + seal. - .addRow("FooterRule", row -> row - .spacing(8) - .weights(1, 0.12, 1) - .addSection("LeftRule", section -> section - .padding(new DocumentInsets(10, 0, 0, 0)) - .addShape(shape -> shape.size(292, 0.6).fillColor(theme.brandAccent()).margin(DocumentInsets.zero()))) - .addSection("Seal", section -> section - .stroke(DocumentStroke.of(theme.brandAccent(), 0.5)) - .cornerRadius(9) - .padding(new DocumentInsets(1, 0, 1, 0)) - .addParagraph(p -> p - .text("S") - .align(TextAlign.CENTER) - .textStyle(DocumentTextStyle.builder() - .fontName(FontName.TIMES_ROMAN) - .decoration(DocumentTextDecoration.BOLD) - .size(13) - .color(theme.brandAccent()) - .build()) - .margin(DocumentInsets.zero()))) - .addSection("RightRule", section -> section - .padding(new DocumentInsets(10, 0, 0, 0)) - .addShape(shape -> shape.size(292, 0.6).fillColor(theme.brandAccent()).margin(DocumentInsets.zero())))) - - .addSection("BuildFooter", section -> section - .padding(new DocumentInsets(6, 0, 0, 0)) - .addParagraph(p -> p - .text("Composed with GraphCompose — examples/.../WeeklyScheduleRenderer.java") - .textStyle(DocumentTextStyle.builder() - .fontName(FontName.COURIER) - .size(7.5) - .color(theme.muted()) - .build()) - .margin(DocumentInsets.zero()))) .build(); document.buildPdf(); } } + /** + * The letter the footer seal carries: the board's own initial, so a + * schedule printed for one venue is not sealed with another's. + * + *

      Read as a code point rather than a {@code char} so a brand opening on + * a character outside the basic plane is not sealed with half of it.

      + */ + private static String sealLetter(String brandName) { + String trimmed = brandName.strip(); + return String.valueOf(Character.toChars(trimmed.codePointAt(0))).toUpperCase(Locale.ROOT); + } + /** * Split a day note like {@code "Bank Holiday Monday / Clean Crushed * Ice Machine & Area"} into its slash-separated fragments so each From c587a17e7080638b134407b32758a6c311e009a5 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Fri, 11 Sep 2026 13:27:01 +0100 Subject: [PATCH 50/85] chore(templates): ship the receipt family as 2.4.0 work, not 2.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The receipt family was written against 2.2.0-SNAPSHOT and reached this branch unchanged through the merge of feat/templates-payment-receipt, so four things in it still described that release and that engine: - its CHANGELOG entry landed, by context, under the released v2.2.0 heading; it now opens the Templates section of v2.4.0 — Planned, the release that will carry it; - `SvgGlyph.fromFile(Path)` said `@since 2.1.2`, a version that never shipped; it first ships in 2.4.0; - `knowledge/api/templates.{json,md}` did not list the family, so the surface check would fail here. Regenerated from the reactor: 22 new types, every one of them in `templates.data.receipt` or `templates.receipt.*`, plus the `receiptModern()` theme factories and `SvgGlyph.fromFile`; - `assets/readme/examples/receipt-modern.pdf` was rendered by the August engine, and `CommittedAssetDriftTest` named it as the one preview that no longer matches what its example renders. Re-rendered on this branch with the suite's pinned display version and render date. Verified on this branch: templates 118 tests, qa 1315 tests (the five receipt suites and the receipt pixel baseline included), examples 77 tests, the ten CI architecture and documentation guards, and all five knowledge-pack checks. --- CHANGELOG.md | 58 +- assets/readme/examples/receipt-modern.pdf | Bin 5385 -> 5368 bytes knowledge/api/templates.json | 5692 +++++++++++------ knowledge/api/templates.md | 180 +- .../templates/core/identity/SvgGlyph.java | 2 +- 5 files changed, 4104 insertions(+), 1828 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9060ebd0e..20760a430 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -297,6 +297,35 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **New `receipt` family — payment confirmations.** The fifth family on the layered + architecture, for the document a bank sends after money moves: a transfer + confirmation, a direct debit advice, a card receipt. `ReceiptDocumentSpec` carries + the amount, the two parties, titled groups of label/value rows, the steps the + payment went through, and the footer small print; `ModernReceipt` sequences them + over `BrandTheme.receiptModern()`. + + It is laid out as a receipt rather than as an invoice without line items. The + amount is set larger than the document title, because on a receipt the amount is + the headline; the status carries a chip coloured by tone — settled green, failed + red — in every theme, so a reader checking whether money arrived does not have to + learn a colour scheme per issuer; the two parties share one panel with a direction + arrow instead of sitting in two tables the reader has to relate; detail rows are + joined by a dotted leader, the same construction the table-of-contents builder + uses, because across a full page width a bare label and a bare value read as two + unrelated columns. The verification QR code and the small print are seated on the + bottom margin: the engine has no vertical flex, so the preset measures what the + body left on the last page and spends it — and only when the receipt owns the + session, since the measurement costs a second composition pass. + + The theme carries no brand colour at all. An issuer's mark and accent arrive per + document through `ModernReceipt.Options`, so one preset and one theme render every + institution rather than one theme per institution. + +- **`SvgGlyph.fromFile(Path)`.** The classpath variant covers glyphs a template ships + with; this covers the glyph a template is given — a receipt's issuer mark, a + report's client logo — which arrives as a file beside the running application + rather than repackaged into its jar. + - **The invoice presets set their page number in their own face.** A header or footer zone draws in the standard-14 face unless a document says otherwise, and until the zone gained `fontName` there was no way to say otherwise — so `PaymentsInvoice` and @@ -1840,35 +1869,6 @@ follow semantic versioning; release dates are ISO 8601. ### Templates -- **New `receipt` family — payment confirmations.** The fifth family on the layered - architecture, for the document a bank sends after money moves: a transfer - confirmation, a direct debit advice, a card receipt. `ReceiptDocumentSpec` carries - the amount, the two parties, titled groups of label/value rows, the steps the - payment went through, and the footer small print; `ModernReceipt` sequences them - over `BrandTheme.receiptModern()`. - - It is laid out as a receipt rather than as an invoice without line items. The - amount is set larger than the document title, because on a receipt the amount is - the headline; the status carries a chip coloured by tone — settled green, failed - red — in every theme, so a reader checking whether money arrived does not have to - learn a colour scheme per issuer; the two parties share one panel with a direction - arrow instead of sitting in two tables the reader has to relate; detail rows are - joined by a dotted leader, the same construction the table-of-contents builder - uses, because across a full page width a bare label and a bare value read as two - unrelated columns. The verification QR code and the small print are seated on the - bottom margin: the engine has no vertical flex, so the preset measures what the - body left on the last page and spends it — and only when the receipt owns the - session, since the measurement costs a second composition pass. - - The theme carries no brand colour at all. An issuer's mark and accent arrive per - document through `ModernReceipt.Options`, so one preset and one theme render every - institution rather than one theme per institution. - -- **`SvgGlyph.fromFile(Path)`.** The classpath variant covers glyphs a template ships - with; this covers the glyph a template is given — a receipt's issuer mark, a - report's client logo — which arrives as a file beside the running application - rather than repackaged into its jar. - - **Timeline Minimal renders the whole CV.** The preset used to drop content three ways, none of them visible in the output. Per-module caps kept the first few lines of each block and discarded the rest, so a fourth degree or a third employer simply diff --git a/assets/readme/examples/receipt-modern.pdf b/assets/readme/examples/receipt-modern.pdf index bfc5e817fd8a60180ea3047e81827086593d2133..f5dd1485f00991680288f1375a00bd38747d880b 100644 GIT binary patch delta 721 zcmeCw`k}eu4Y%(^Rqrj5_PS~M2}(S@hk8DLo@E|{)wv?)CO;GrW->II?8h^k z-&nywA&5&q*f+5_Tfxv|^A8>)7DkiF+JY}8YY7UA8CjTc>4#Jnq$=q9CuIefSSC;IgyhDlREXP0Z!xs+co3@U|DTp~#=9KN)AAj+@mQRM71z zxG}_W;g1b>c~vj@o>J5P^?hDS_jL7x?JVccoa8Z{_~66@?sH566bA56F@ z-MN30-_9!2 z@Vr&O@BaQ*W&ukq=2Z%AR;|)a-k1MsnY!OUhGiU{6K#8bPdLWGwPDxCs-$&aKl-v? zHcJTKRyubh`v&!7{k7)C@dx&^=x3F``4_g<_k*0)SV z=w_!ttPzqp&6w;jBF1OVrSF-Sl3JkePD2we KRaIAiH!c8yWg8p- delta 801 zcmeyN*{QYR4R=zCs`r*-{@pjZXK*+#KGE~}^Q`RwH;;ekDx7Q8;e4_JO#=J=BN>SvJ)yj-byDa9p4sfoED zR(?_zm!a`wKc3nACJF`$L0tO5zKO-z3WlbefAAQwOcoXro@^_4ZSr(sVKF01b1wam z%7Rn{egCAa;F4S}eLn@u$#H_>^=_F(#U%=+rd)P*ToA)~xhm$Y4T|+XY#{Pi`#Jv( z6ZyA663o^zT^-3>d~N)((r&5VZj-zIRp(!Nczm*goywDW#YKAU)vQJy8jP%Q1y3F< zbzxMrtYBMcV$m+5YT;>dk!zKX!R(F4zfWe2zFPhGVBYR)$=WA#deb+w)=TFw9IyEo z%vqLxYu&m#(%WvTINMat^gm*vud?Nl@LF$K*|5_56HY4b+sy9q);iC(xqpdCO9zub0)A@qfE=)BE*q{|EkU;!~}+{D1drcj8sn{YHNe z$@-r=b~9sEkpJVHrq_IthJu+Xmwr%weu;u1B&s}J6rycRT+LnUjVw(aja^L*EG^6}ja=eLeP-29NT`VkRLWwK&IWmpk z{k4!k%n", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "ReceiptParty", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "ReceiptParty", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, { "type": "String", "name": null @@ -19304,7 +19426,7 @@ }, { "kind": "method", - "name": "isPresent", + "name": "hasPayer", "static": false, "origin": "source", "typeParameters": null, @@ -19313,7 +19435,25 @@ }, { "kind": "method", - "name": "lunch", + "name": "hasBeneficiary", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptData.Builder", + "params": [] + }, + { + "kind": "method", + "name": "documentTitle", "static": false, "origin": "generated", "typeParameters": null, @@ -19322,79 +19462,34 @@ }, { "kind": "method", - "name": "dinner", + "name": "issuerName", "static": false, "origin": "generated", "typeParameters": null, "returns": "String", "params": [] - } - ] - }, - { - "name": "RotaDay", - "binaryName": "com.demcha.compose.document.templates.data.rota.RotaDay", - "kind": "record", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ + }, { - "kind": "constructor", - "name": "RotaDay", + "kind": "method", + "name": "generatedOn", "static": false, "origin": "generated", "typeParameters": null, - "returns": null, - "params": [ - { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "RotaCovers", - "name": null - } - ] + "returns": "String", + "params": [] }, { - "kind": "constructor", - "name": "RotaDay", + "kind": "method", + "name": "reference", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": null, - "params": [ - { - "type": "String", - "name": "name" - }, - { - "type": "String", - "name": "ordinal" - }, - { - "type": "String", - "name": "ordinalSuffix" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "name", + "name": "amountLabel", "static": false, "origin": "generated", "typeParameters": null, @@ -19403,7 +19498,7 @@ }, { "kind": "method", - "name": "ordinal", + "name": "amount", "static": false, "origin": "generated", "typeParameters": null, @@ -19412,7 +19507,7 @@ }, { "kind": "method", - "name": "ordinalSuffix", + "name": "amountCaption", "static": false, "origin": "generated", "typeParameters": null, @@ -19421,119 +19516,88 @@ }, { "kind": "method", - "name": "note", + "name": "status", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "ReceiptStatus", "params": [] }, { "kind": "method", - "name": "covers", + "name": "summaryFields", "static": false, "origin": "generated", "typeParameters": null, - "returns": "RotaCovers", + "returns": "List", "params": [] - } - ] - }, - { - "name": "RotaFooter", - "binaryName": "com.demcha.compose.document.templates.data.rota.RotaFooter", - "kind": "record", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ + }, { - "kind": "constructor", - "name": "RotaFooter", + "kind": "method", + "name": "payerLabel", "static": false, "origin": "generated", "typeParameters": null, - "returns": null, - "params": [ - { - "type": "String", - "name": null - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "isPresent", + "name": "payer", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "boolean", + "returns": "ReceiptParty", "params": [] }, { "kind": "method", - "name": "note", + "name": "beneficiaryLabel", "static": false, "origin": "generated", "typeParameters": null, "returns": "String", "params": [] - } - ] - }, - { - "name": "RotaGroup", - "binaryName": "com.demcha.compose.document.templates.data.rota.RotaGroup", - "kind": "record", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ + }, { - "kind": "constructor", - "name": "RotaGroup", + "kind": "method", + "name": "beneficiary", "static": false, "origin": "generated", "typeParameters": null, - "returns": null, - "params": [ - { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "List", - "name": null - } - ] + "returns": "ReceiptParty", + "params": [] }, { - "kind": "constructor", - "name": "RotaGroup", + "kind": "method", + "name": "detailGroups", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": null, - "params": [ - { - "type": "String", - "name": "label" - }, - { - "type": "List", - "name": "staff" - } - ] + "returns": "List", + "params": [] }, { "kind": "method", - "name": "label", + "name": "timeline", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "notes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "verificationUrl", "static": false, "origin": "generated", "typeParameters": null, @@ -19542,7 +19606,7 @@ }, { "kind": "method", - "name": "icon", + "name": "verificationText", "static": false, "origin": "generated", "typeParameters": null, @@ -19551,288 +19615,335 @@ }, { "kind": "method", - "name": "staff", + "name": "supportLines", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "legalNote", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", "params": [] } ] }, { - "name": "RotaLegend", - "binaryName": "com.demcha.compose.document.templates.data.rota.RotaLegend", - "kind": "record", + "name": "ReceiptData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.receipt.ReceiptData$Builder", + "kind": "class", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "constructor", - "name": "RotaLegend", + "kind": "method", + "name": "documentTitle", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": null, + "returns": "ReceiptData.Builder", "params": [ { "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "List", - "name": null + "name": "documentTitle" } ] }, { - "kind": "constructor", - "name": "RotaLegend", + "kind": "method", + "name": "issuerName", "static": false, "origin": "source", "typeParameters": null, - "returns": null, + "returns": "ReceiptData.Builder", "params": [ { "type": "String", - "name": "label" - }, - { - "type": "List", - "name": "entries" + "name": "issuerName" } ] }, { "kind": "method", - "name": "isPresent", + "name": "generatedOn", "static": false, "origin": "source", "typeParameters": null, - "returns": "boolean", - "params": [] + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "String", + "name": "generatedOn" + } + ] }, { "kind": "method", - "name": "label", + "name": "reference", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "String", - "params": [] + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "String", + "name": "reference" + } + ] }, { "kind": "method", - "name": "coversLabel", + "name": "amount", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "String", - "params": [] + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "amount" + } + ] }, { "kind": "method", - "name": "coversLunchLabel", + "name": "amountCaption", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "String", - "params": [] + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "String", + "name": "amountCaption" + } + ] }, { "kind": "method", - "name": "coversDinnerLabel", + "name": "status", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "String", - "params": [] + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "ReceiptStatus", + "name": "status" + } + ] }, { "kind": "method", - "name": "entries", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "List", - "params": [] - } - ] - }, - { - "name": "RotaLegend.Entry", - "binaryName": "com.demcha.compose.document.templates.data.rota.RotaLegend$Entry", - "kind": "record", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ - { - "kind": "constructor", - "name": "Entry", + "name": "status", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": null, + "returns": "ReceiptData.Builder", "params": [ { "type": "String", - "name": null + "name": "label" }, { - "type": "ShiftStatus", - "name": null + "type": "ReceiptStatusTone", + "name": "tone" } ] }, { "kind": "method", - "name": "label", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "String", - "params": [] - }, - { - "kind": "method", - "name": "status", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "ShiftStatus", - "params": [] - } - ] - }, - { - "name": "RotaShift", - "binaryName": "com.demcha.compose.document.templates.data.rota.RotaShift", - "kind": "record", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ - { - "kind": "constructor", - "name": "RotaShift", + "name": "summaryField", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": null, + "returns": "ReceiptData.Builder", "params": [ { "type": "String", - "name": null - }, - { - "type": "ShiftStatus", - "name": null + "name": "label" }, { - "type": "ShiftEmphasis", - "name": null + "type": "String", + "name": "value" } ] }, { "kind": "method", - "name": "hours", - "static": true, + "name": "payer", + "static": false, "origin": "source", "typeParameters": null, - "returns": "RotaShift", + "returns": "ReceiptData.Builder", "params": [ { "type": "String", - "name": "text" + "name": "label" + }, + { + "type": "Consumer", + "name": "spec" } ] }, { "kind": "method", - "name": "strong", - "static": true, + "name": "beneficiary", + "static": false, "origin": "source", "typeParameters": null, - "returns": "RotaShift", + "returns": "ReceiptData.Builder", "params": [ { "type": "String", - "name": "text" + "name": "label" }, { - "type": "ShiftStatus", - "name": "status" + "type": "Consumer", + "name": "spec" } ] }, { "kind": "method", - "name": "soft", - "static": true, + "name": "detailGroup", + "static": false, "origin": "source", "typeParameters": null, - "returns": "RotaShift", + "returns": "ReceiptData.Builder", "params": [ { "type": "String", - "name": "text" + "name": "title" }, { - "type": "ShiftStatus", - "name": "status" + "type": "Consumer", + "name": "spec" } ] }, { "kind": "method", - "name": "text", + "name": "addDetailGroup", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "String", - "params": [] - }, + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "ReceiptFieldGroup", + "name": "group" + } + ] + }, { "kind": "method", - "name": "status", + "name": "event", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "ShiftStatus", - "params": [] + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "timestamp" + }, + { + "type": "String", + "name": "detail" + } + ] }, { "kind": "method", - "name": "emphasis", + "name": "note", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "ShiftEmphasis", + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "String", + "name": "note" + } + ] + }, + { + "kind": "method", + "name": "verification", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "String", + "name": "url" + }, + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "supportLine", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "String", + "name": "line" + } + ] + }, + { + "kind": "method", + "name": "legalNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptData.Builder", + "params": [ + { + "type": "String", + "name": "legalNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptData", "params": [] } ] }, { - "name": "RotaStaff", - "binaryName": "com.demcha.compose.document.templates.data.rota.RotaStaff", + "name": "ReceiptDocumentSpec", + "binaryName": "com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec", "kind": "record", "modifiers": [ "final" @@ -19841,59 +19952,60 @@ "members": [ { "kind": "constructor", - "name": "RotaStaff", + "name": "ReceiptDocumentSpec", "static": false, "origin": "generated", "typeParameters": null, "returns": null, "params": [ { - "type": "String", - "name": null - }, - { - "type": "List>", + "type": "ReceiptData", "name": null } ] }, { "kind": "method", - "name": "day", - "static": false, + "name": "from", + "static": true, "origin": "source", "typeParameters": null, - "returns": "List", + "returns": "ReceiptDocumentSpec", "params": [ { - "type": "int", - "name": "index" + "type": "ReceiptData", + "name": "receipt" } ] }, { "kind": "method", - "name": "name", - "static": false, - "origin": "generated", + "name": "of", + "static": true, + "origin": "source", "typeParameters": null, - "returns": "String", - "params": [] + "returns": "ReceiptDocumentSpec", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] }, { "kind": "method", - "name": "days", + "name": "receipt", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List>", + "returns": "ReceiptData", "params": [] } ] }, { - "name": "RotaVenue", - "binaryName": "com.demcha.compose.document.templates.data.rota.RotaVenue", + "name": "ReceiptEvent", + "binaryName": "com.demcha.compose.document.templates.data.receipt.ReceiptEvent", "kind": "record", "modifiers": [ "final" @@ -19902,7 +20014,7 @@ "members": [ { "kind": "constructor", - "name": "RotaVenue", + "name": "ReceiptEvent", "static": false, "origin": "generated", "typeParameters": null, @@ -19924,16 +20036,25 @@ }, { "kind": "method", - "name": "isPresent", - "static": false, + "name": "of", + "static": true, "origin": "source", "typeParameters": null, - "returns": "boolean", - "params": [] + "returns": "ReceiptEvent", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "timestamp" + } + ] }, { "kind": "method", - "name": "wordmark", + "name": "label", "static": false, "origin": "generated", "typeParameters": null, @@ -19942,7 +20063,7 @@ }, { "kind": "method", - "name": "wordmarkSub", + "name": "timestamp", "static": false, "origin": "generated", "typeParameters": null, @@ -19951,7 +20072,7 @@ }, { "kind": "method", - "name": "footerName", + "name": "detail", "static": false, "origin": "generated", "typeParameters": null, @@ -19961,8 +20082,8 @@ ] }, { - "name": "RotaWeek", - "binaryName": "com.demcha.compose.document.templates.data.rota.RotaWeek", + "name": "ReceiptField", + "binaryName": "com.demcha.compose.document.templates.data.receipt.ReceiptField", "kind": "record", "modifiers": [ "final" @@ -19971,7 +20092,7 @@ "members": [ { "kind": "constructor", - "name": "RotaWeek", + "name": "ReceiptField", "static": false, "origin": "generated", "typeParameters": null, @@ -19984,21 +20105,52 @@ { "type": "String", "name": null + }, + { + "type": "boolean", + "name": null } ] }, { "kind": "method", - "name": "isPresent", - "static": false, + "name": "of", + "static": true, "origin": "source", "typeParameters": null, - "returns": "boolean", - "params": [] + "returns": "ReceiptField", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "value" + } + ] }, { "kind": "method", - "name": "title", + "name": "emphasized", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptField", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "label", "static": false, "origin": "generated", "typeParameters": null, @@ -20007,117 +20159,158 @@ }, { "kind": "method", - "name": "rangeLabel", + "name": "value", "static": false, "origin": "generated", "typeParameters": null, "returns": "String", "params": [] + }, + { + "kind": "method", + "name": "emphasized", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] } ] }, { - "name": "ShiftEmphasis", - "binaryName": "com.demcha.compose.document.templates.data.rota.ShiftEmphasis", - "kind": "enum", + "name": "ReceiptFieldGroup", + "binaryName": "com.demcha.compose.document.templates.data.receipt.ReceiptFieldGroup", + "kind": "record", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "constant", - "name": "STRONG", - "static": true, + "kind": "constructor", + "name": "ReceiptFieldGroup", + "static": false, "origin": "generated", - "type": "ShiftEmphasis" + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] }, { - "kind": "constant", - "name": "SOFT", + "kind": "method", + "name": "builder", "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptFieldGroup.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "title", + "static": false, "origin": "generated", - "type": "ShiftEmphasis" + "typeParameters": null, + "returns": "String", + "params": [] }, { - "kind": "constant", - "name": "PLAIN", - "static": true, + "kind": "method", + "name": "fields", + "static": false, "origin": "generated", - "type": "ShiftEmphasis" + "typeParameters": null, + "returns": "List", + "params": [] } ] }, { - "name": "ShiftStatus", - "binaryName": "com.demcha.compose.document.templates.data.rota.ShiftStatus", - "kind": "enum", + "name": "ReceiptFieldGroup.Builder", + "binaryName": "com.demcha.compose.document.templates.data.receipt.ReceiptFieldGroup$Builder", + "kind": "class", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "constant", - "name": "NONE", - "static": true, - "origin": "generated", - "type": "ShiftStatus" - }, - { - "kind": "constant", - "name": "REQUEST", - "static": true, - "origin": "generated", - "type": "ShiftStatus" - }, - { - "kind": "constant", - "name": "OFF", - "static": true, - "origin": "generated", - "type": "ShiftStatus" - }, - { - "kind": "constant", - "name": "HOLIDAY", - "static": true, - "origin": "generated", - "type": "ShiftStatus" - }, - { - "kind": "constant", - "name": "STOCK", - "static": true, - "origin": "generated", - "type": "ShiftStatus" + "kind": "method", + "name": "field", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptFieldGroup.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "value" + } + ] }, { - "kind": "constant", - "name": "STANDBY", - "static": true, - "origin": "generated", - "type": "ShiftStatus" + "kind": "method", + "name": "emphasized", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptFieldGroup.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "value" + } + ] }, { - "kind": "constant", - "name": "TRAINING", - "static": true, - "origin": "generated", - "type": "ShiftStatus" + "kind": "method", + "name": "add", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptFieldGroup.Builder", + "params": [ + { + "type": "ReceiptField", + "name": "field" + } + ] }, { - "kind": "constant", - "name": "SUPPORT", - "static": true, - "origin": "generated", - "type": "ShiftStatus" + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptFieldGroup", + "params": [] } ] }, { - "name": "StructuredRotaData", - "binaryName": "com.demcha.compose.document.templates.data.rota.StructuredRotaData", + "name": "ReceiptParty", + "binaryName": "com.demcha.compose.document.templates.data.receipt.ReceiptParty", "kind": "record", "modifiers": [ "final" @@ -20126,34 +20319,22 @@ "members": [ { "kind": "constructor", - "name": "StructuredRotaData", + "name": "ReceiptParty", "static": false, "origin": "generated", "typeParameters": null, "returns": null, "params": [ { - "type": "RotaVenue", - "name": null - }, - { - "type": "RotaWeek", - "name": null - }, - { - "type": "List", - "name": null - }, - { - "type": "RotaLegend", + "type": "String", "name": null }, { - "type": "List", + "type": "List", "name": null }, { - "type": "RotaFooter", + "type": "List", "name": null } ] @@ -20164,68 +20345,41 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "StructuredRotaData.Builder", - "params": [] - }, - { - "kind": "method", - "name": "venue", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "RotaVenue", - "params": [] - }, - { - "kind": "method", - "name": "week", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "RotaWeek", - "params": [] - }, - { - "kind": "method", - "name": "days", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "List", + "returns": "ReceiptParty.Builder", "params": [] }, { "kind": "method", - "name": "legend", + "name": "name", "static": false, "origin": "generated", "typeParameters": null, - "returns": "RotaLegend", + "returns": "String", "params": [] }, { "kind": "method", - "name": "groups", + "name": "addressLines", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "List", "params": [] }, { "kind": "method", - "name": "footer", + "name": "fields", "static": false, "origin": "generated", "typeParameters": null, - "returns": "RotaFooter", + "returns": "List", "params": [] } ] }, { - "name": "StructuredRotaData.Builder", - "binaryName": "com.demcha.compose.document.templates.data.rota.StructuredRotaData$Builder", + "name": "ReceiptParty.Builder", + "binaryName": "com.demcha.compose.document.templates.data.receipt.ReceiptParty$Builder", "kind": "class", "modifiers": [ "final" @@ -20234,85 +20388,47 @@ "members": [ { "kind": "method", - "name": "venue", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "StructuredRotaData.Builder", - "params": [ - { - "type": "RotaVenue", - "name": "venue" - } - ] - }, - { - "kind": "method", - "name": "week", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "StructuredRotaData.Builder", - "params": [ - { - "type": "RotaWeek", - "name": "week" - } - ] - }, - { - "kind": "method", - "name": "days", + "name": "name", "static": false, "origin": "source", "typeParameters": null, - "returns": "StructuredRotaData.Builder", + "returns": "ReceiptParty.Builder", "params": [ { - "type": "List", - "name": "days" + "type": "String", + "name": "name" } ] }, { "kind": "method", - "name": "legend", + "name": "addressLines", "static": false, "origin": "source", "typeParameters": null, - "returns": "StructuredRotaData.Builder", + "returns": "ReceiptParty.Builder", "params": [ { - "type": "RotaLegend", - "name": "legend" + "type": "String...", + "name": "lines" } ] }, { "kind": "method", - "name": "groups", + "name": "field", "static": false, "origin": "source", "typeParameters": null, - "returns": "StructuredRotaData.Builder", + "returns": "ReceiptParty.Builder", "params": [ { - "type": "List", - "name": "groups" - } - ] - }, - { - "kind": "method", - "name": "footer", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "StructuredRotaData.Builder", - "params": [ + "type": "String", + "name": "label" + }, { - "type": "RotaFooter", - "name": "footer" + "type": "String", + "name": "value" } ] }, @@ -20322,14 +20438,14 @@ "static": false, "origin": "source", "typeParameters": null, - "returns": "StructuredRotaData", + "returns": "ReceiptParty", "params": [] } ] }, { - "name": "StructuredRotaDocumentSpec", - "binaryName": "com.demcha.compose.document.templates.data.rota.StructuredRotaDocumentSpec", + "name": "ReceiptStatus", + "binaryName": "com.demcha.compose.document.templates.data.receipt.ReceiptStatus", "kind": "record", "modifiers": [ "final" @@ -20338,52 +20454,127 @@ "members": [ { "kind": "constructor", - "name": "StructuredRotaDocumentSpec", + "name": "ReceiptStatus", "static": false, "origin": "generated", "typeParameters": null, "returns": null, "params": [ { - "type": "StructuredRotaData", + "type": "String", + "name": null + }, + { + "type": "ReceiptStatusTone", "name": null } ] }, { "kind": "method", - "name": "from", + "name": "settled", "static": true, "origin": "source", "typeParameters": null, - "returns": "StructuredRotaDocumentSpec", + "returns": "ReceiptStatus", "params": [ { - "type": "StructuredRotaData", - "name": "rota" + "type": "String", + "name": "label" } ] }, { "kind": "method", - "name": "rota", + "name": "inProgress", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ReceiptStatus", + "params": [ + { + "type": "String", + "name": "label" + } + ] + }, + { + "kind": "method", + "name": "hasLabel", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "label", "static": false, "origin": "generated", "typeParameters": null, - "returns": "StructuredRotaData", + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "tone", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ReceiptStatusTone", "params": [] } ] - } - ] - }, - { - "name": "com.demcha.compose.document.templates.data.schedule", - "types": [ + }, { - "name": "ScheduleAssignment", - "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleAssignment", - "kind": "record", + "name": "ReceiptStatusTone", + "binaryName": "com.demcha.compose.document.templates.data.receipt.ReceiptStatusTone", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "SETTLED", + "static": true, + "origin": "generated", + "type": "ReceiptStatusTone" + }, + { + "kind": "constant", + "name": "IN_PROGRESS", + "static": true, + "origin": "generated", + "type": "ReceiptStatusTone" + }, + { + "kind": "constant", + "name": "ATTENTION", + "static": true, + "origin": "generated", + "type": "ReceiptStatusTone" + }, + { + "kind": "constant", + "name": "FAILED", + "static": true, + "origin": "generated", + "type": "ReceiptStatusTone" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.data.rota", + "types": [ + { + "name": "RotaCovers", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaCovers", + "kind": "record", "modifiers": [ "final" ], @@ -20391,7 +20582,7 @@ "members": [ { "kind": "constructor", - "name": "ScheduleAssignment", + "name": "RotaCovers", "static": false, "origin": "generated", "typeParameters": null, @@ -20401,18 +20592,6 @@ "type": "String", "name": null }, - { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "List", - "name": null - }, { "type": "String", "name": null @@ -20421,34 +20600,16 @@ }, { "kind": "method", - "name": "builder", - "static": true, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleAssignment.Builder", - "params": [] - }, - { - "kind": "method", - "name": "personId", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "String", - "params": [] - }, - { - "kind": "method", - "name": "dayId", + "name": "isPresent", "static": false, - "origin": "generated", + "origin": "source", "typeParameters": null, - "returns": "String", + "returns": "boolean", "params": [] }, { "kind": "method", - "name": "categoryId", + "name": "lunch", "static": false, "origin": "generated", "typeParameters": null, @@ -20457,16 +20618,7 @@ }, { "kind": "method", - "name": "slots", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "List", - "params": [] - }, - { - "kind": "method", - "name": "note", + "name": "dinner", "static": false, "origin": "generated", "typeParameters": null, @@ -20476,144 +20628,159 @@ ] }, { - "name": "ScheduleAssignment.Builder", - "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleAssignment$Builder", - "kind": "class", + "name": "RotaDay", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaDay", + "kind": "record", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "method", - "name": "personId", + "kind": "constructor", + "name": "RotaDay", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleAssignment.Builder", + "returns": null, "params": [ { "type": "String", - "name": "personId" + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "RotaCovers", + "name": null } ] }, { - "kind": "method", - "name": "dayId", + "kind": "constructor", + "name": "RotaDay", "static": false, "origin": "source", "typeParameters": null, - "returns": "ScheduleAssignment.Builder", + "returns": null, "params": [ { "type": "String", - "name": "dayId" + "name": "name" + }, + { + "type": "String", + "name": "ordinal" + }, + { + "type": "String", + "name": "ordinalSuffix" } ] }, { "kind": "method", - "name": "categoryId", + "name": "name", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleAssignment.Builder", - "params": [ - { - "type": "String", - "name": "categoryId" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "slots", + "name": "ordinal", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleAssignment.Builder", - "params": [ - { - "type": "List", - "name": "slots" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "slots", + "name": "ordinalSuffix", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleAssignment.Builder", - "params": [ - { - "type": "ScheduleSlot...", - "name": "slots" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "addSlot", + "name": "note", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleAssignment.Builder", - "params": [ - { - "type": "ScheduleSlot", - "name": "slot" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "slot", + "name": "covers", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleAssignment.Builder", + "returns": "RotaCovers", + "params": [] + } + ] + }, + { + "name": "RotaFooter", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaFooter", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaFooter", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, "params": [ { "type": "String", - "name": "start" - }, - { - "type": "String", - "name": "end" + "name": null } ] }, { "kind": "method", - "name": "note", + "name": "isPresent", "static": false, "origin": "source", "typeParameters": null, - "returns": "ScheduleAssignment.Builder", - "params": [ - { - "type": "String", - "name": "note" - } - ] + "returns": "boolean", + "params": [] }, { "kind": "method", - "name": "build", + "name": "note", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleAssignment", + "returns": "String", "params": [] } ] }, { - "name": "ScheduleCategory", - "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleCategory", + "name": "RotaGroup", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaGroup", "kind": "record", "modifiers": [ "final" @@ -20622,7 +20789,7 @@ "members": [ { "kind": "constructor", - "name": "ScheduleCategory", + "name": "RotaGroup", "static": false, "origin": "generated", "typeParameters": null, @@ -20637,87 +20804,127 @@ "name": null }, { - "type": "Color", - "name": null - }, - { - "type": "Color", - "name": null - }, - { - "type": "Color", + "type": "List", "name": null } ] }, { - "kind": "method", - "name": "of", - "static": true, - "origin": "source", + "kind": "constructor", + "name": "RotaGroup", + "static": false, + "origin": "source", "typeParameters": null, - "returns": "ScheduleCategory", + "returns": null, "params": [ - { - "type": "String", - "name": "id" - }, { "type": "String", "name": "label" }, { - "type": "Color", - "name": "fillColor" - }, - { - "type": "Color", - "name": "borderColor" + "type": "List", + "name": "staff" } ] }, { "kind": "method", - "name": "of", - "static": true, - "origin": "source", + "name": "label", + "static": false, + "origin": "generated", "typeParameters": null, - "returns": "ScheduleCategory", + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "staff", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "RotaLegend", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaLegend", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaLegend", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, "params": [ { "type": "String", - "name": "id" + "name": null }, { "type": "String", - "name": "label" + "name": null }, { - "type": "Color", - "name": "fillColor" + "type": "String", + "name": null }, { - "type": "Color", - "name": "textColor" + "type": "String", + "name": null }, { - "type": "Color", - "name": "borderColor" + "type": "List", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "RotaLegend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "List", + "name": "entries" } ] }, { "kind": "method", - "name": "builder", - "static": true, + "name": "isPresent", + "static": false, "origin": "source", "typeParameters": null, - "returns": "ScheduleCategory.Builder", + "returns": "boolean", "params": [] }, { "kind": "method", - "name": "id", + "name": "label", "static": false, "origin": "generated", "typeParameters": null, @@ -20726,7 +20933,7 @@ }, { "kind": "method", - "name": "label", + "name": "coversLabel", "static": false, "origin": "generated", "typeParameters": null, @@ -20735,53 +20942,57 @@ }, { "kind": "method", - "name": "fillColor", + "name": "coversLunchLabel", "static": false, "origin": "generated", "typeParameters": null, - "returns": "Color", + "returns": "String", "params": [] }, { "kind": "method", - "name": "textColor", + "name": "coversDinnerLabel", "static": false, "origin": "generated", "typeParameters": null, - "returns": "Color", + "returns": "String", "params": [] }, { "kind": "method", - "name": "borderColor", + "name": "entries", "static": false, "origin": "generated", "typeParameters": null, - "returns": "Color", + "returns": "List", "params": [] } ] }, { - "name": "ScheduleCategory.Builder", - "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleCategory$Builder", - "kind": "class", + "name": "RotaLegend.Entry", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaLegend$Entry", + "kind": "record", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "method", - "name": "id", + "kind": "constructor", + "name": "Entry", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleCategory.Builder", + "returns": null, "params": [ { "type": "String", - "name": "id" + "name": null + }, + { + "type": "ShiftStatus", + "name": null } ] }, @@ -20789,72 +21000,135 @@ "kind": "method", "name": "label", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleCategory.Builder", + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "status", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ShiftStatus", + "params": [] + } + ] + }, + { + "name": "RotaShift", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaShift", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RotaShift", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, "params": [ { "type": "String", - "name": "label" + "name": null + }, + { + "type": "ShiftStatus", + "name": null + }, + { + "type": "ShiftEmphasis", + "name": null } ] }, { "kind": "method", - "name": "fillColor", - "static": false, + "name": "hours", + "static": true, "origin": "source", "typeParameters": null, - "returns": "ScheduleCategory.Builder", + "returns": "RotaShift", "params": [ { - "type": "Color", - "name": "fillColor" + "type": "String", + "name": "text" } ] }, { "kind": "method", - "name": "textColor", - "static": false, + "name": "strong", + "static": true, "origin": "source", "typeParameters": null, - "returns": "ScheduleCategory.Builder", + "returns": "RotaShift", "params": [ { - "type": "Color", - "name": "textColor" + "type": "String", + "name": "text" + }, + { + "type": "ShiftStatus", + "name": "status" } ] }, { "kind": "method", - "name": "borderColor", - "static": false, + "name": "soft", + "static": true, "origin": "source", "typeParameters": null, - "returns": "ScheduleCategory.Builder", + "returns": "RotaShift", "params": [ { - "type": "Color", - "name": "borderColor" + "type": "String", + "name": "text" + }, + { + "type": "ShiftStatus", + "name": "status" } ] }, { "kind": "method", - "name": "build", + "name": "text", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleCategory", + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "status", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ShiftStatus", + "params": [] + }, + { + "kind": "method", + "name": "emphasis", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ShiftEmphasis", "params": [] } ] }, { - "name": "ScheduleDay", - "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleDay", + "name": "RotaStaff", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaStaff", "kind": "record", "modifiers": [ "final" @@ -20863,7 +21137,7 @@ "members": [ { "kind": "constructor", - "name": "ScheduleDay", + "name": "RotaStaff", "static": false, "origin": "generated", "typeParameters": null, @@ -20874,75 +21148,28 @@ "name": null }, { - "type": "String", - "name": null - }, - { - "type": "String", - "name": null - }, - { - "type": "String", + "type": "List>", "name": null } ] }, { "kind": "method", - "name": "of", - "static": true, + "name": "day", + "static": false, "origin": "source", "typeParameters": null, - "returns": "ScheduleDay", + "returns": "List", "params": [ { - "type": "String", - "name": "id" - }, - { - "type": "String", - "name": "label" - }, - { - "type": "String", - "name": "headerNote" - }, - { - "type": "String", - "name": "headerCategoryId" + "type": "int", + "name": "index" } ] }, { "kind": "method", - "name": "builder", - "static": true, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleDay.Builder", - "params": [] - }, - { - "kind": "method", - "name": "id", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "String", - "params": [] - }, - { - "kind": "method", - "name": "label", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "String", - "params": [] - }, - { - "kind": "method", - "name": "headerNote", + "name": "name", "static": false, "origin": "generated", "typeParameters": null, @@ -20951,94 +21178,87 @@ }, { "kind": "method", - "name": "headerCategoryId", + "name": "days", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "List>", "params": [] } ] }, { - "name": "ScheduleDay.Builder", - "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleDay$Builder", - "kind": "class", + "name": "RotaVenue", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaVenue", + "kind": "record", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "method", - "name": "id", + "kind": "constructor", + "name": "RotaVenue", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleDay.Builder", + "returns": null, "params": [ { "type": "String", - "name": "id" + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null } ] }, { "kind": "method", - "name": "label", + "name": "isPresent", "static": false, "origin": "source", "typeParameters": null, - "returns": "ScheduleDay.Builder", - "params": [ - { - "type": "String", - "name": "label" - } - ] + "returns": "boolean", + "params": [] }, { "kind": "method", - "name": "headerNote", + "name": "wordmark", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleDay.Builder", - "params": [ - { - "type": "String", - "name": "headerNote" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "headerCategoryId", + "name": "wordmarkSub", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleDay.Builder", - "params": [ - { - "type": "String", - "name": "headerCategoryId" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "build", + "name": "footerName", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "ScheduleDay", + "returns": "String", "params": [] } ] }, { - "name": "ScheduleMetricRow", - "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleMetricRow", + "name": "RotaWeek", + "binaryName": "com.demcha.compose.document.templates.data.rota.RotaWeek", "kind": "record", "modifiers": [ "final" @@ -21047,7 +21267,7 @@ "members": [ { "kind": "constructor", - "name": "ScheduleMetricRow", + "name": "RotaWeek", "static": false, "origin": "generated", "typeParameters": null, @@ -21057,42 +21277,24 @@ "type": "String", "name": null }, - { - "type": "List", - "name": null - } - ] - }, - { - "kind": "method", - "name": "of", - "static": true, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleMetricRow", - "params": [ { "type": "String", - "name": "label" - }, - { - "type": "String...", - "name": "dayValues" + "name": null } ] }, { "kind": "method", - "name": "builder", - "static": true, + "name": "isPresent", + "static": false, "origin": "source", "typeParameters": null, - "returns": "ScheduleMetricRow.Builder", + "returns": "boolean", "params": [] }, { "kind": "method", - "name": "label", + "name": "title", "static": false, "origin": "generated", "typeParameters": null, @@ -21101,141 +21303,154 @@ }, { "kind": "method", - "name": "dayValues", + "name": "rangeLabel", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "String", "params": [] } ] }, { - "name": "ScheduleMetricRow.Builder", - "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleMetricRow$Builder", - "kind": "class", + "name": "ShiftEmphasis", + "binaryName": "com.demcha.compose.document.templates.data.rota.ShiftEmphasis", + "kind": "enum", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "method", - "name": "label", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleMetricRow.Builder", - "params": [ - { - "type": "String", - "name": "label" - } - ] - }, - { - "kind": "method", - "name": "dayValues", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleMetricRow.Builder", - "params": [ - { - "type": "List", - "name": "dayValues" - } - ] - }, - { - "kind": "method", - "name": "dayValues", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleMetricRow.Builder", - "params": [ - { - "type": "String...", - "name": "dayValues" - } - ] + "kind": "constant", + "name": "STRONG", + "static": true, + "origin": "generated", + "type": "ShiftEmphasis" }, { - "kind": "method", - "name": "addDayValue", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleMetricRow.Builder", - "params": [ - { - "type": "String", - "name": "dayValue" - } - ] + "kind": "constant", + "name": "SOFT", + "static": true, + "origin": "generated", + "type": "ShiftEmphasis" }, { - "kind": "method", - "name": "build", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleMetricRow", - "params": [] + "kind": "constant", + "name": "PLAIN", + "static": true, + "origin": "generated", + "type": "ShiftEmphasis" } ] }, { - "name": "SchedulePerson", - "binaryName": "com.demcha.compose.document.templates.data.schedule.SchedulePerson", - "kind": "record", + "name": "ShiftStatus", + "binaryName": "com.demcha.compose.document.templates.data.rota.ShiftStatus", + "kind": "enum", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ { - "kind": "constructor", - "name": "SchedulePerson", - "static": false, - "origin": "generated", - "typeParameters": null, + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "REQUEST", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "OFF", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "HOLIDAY", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "STOCK", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "STANDBY", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "TRAINING", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + }, + { + "kind": "constant", + "name": "SUPPORT", + "static": true, + "origin": "generated", + "type": "ShiftStatus" + } + ] + }, + { + "name": "StructuredRotaData", + "binaryName": "com.demcha.compose.document.templates.data.rota.StructuredRotaData", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "StructuredRotaData", + "static": false, + "origin": "generated", + "typeParameters": null, "returns": null, "params": [ { - "type": "String", + "type": "RotaVenue", "name": null }, { - "type": "String", + "type": "RotaWeek", "name": null }, { - "type": "int", + "type": "List", "name": null - } - ] - }, - { - "kind": "method", - "name": "of", - "static": true, - "origin": "source", - "typeParameters": null, - "returns": "SchedulePerson", - "params": [ + }, { - "type": "String", - "name": "id" + "type": "RotaLegend", + "name": null }, { - "type": "String", - "name": "displayName" + "type": "List", + "name": null }, { - "type": "int", - "name": "sortOrder" + "type": "RotaFooter", + "name": null } ] }, @@ -21245,41 +21460,68 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "SchedulePerson.Builder", + "returns": "StructuredRotaData.Builder", "params": [] }, { "kind": "method", - "name": "id", + "name": "venue", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "RotaVenue", "params": [] }, { "kind": "method", - "name": "displayName", + "name": "week", "static": false, "origin": "generated", "typeParameters": null, - "returns": "String", + "returns": "RotaWeek", "params": [] }, { "kind": "method", - "name": "sortOrder", + "name": "days", "static": false, "origin": "generated", "typeParameters": null, - "returns": "int", + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "RotaLegend", + "params": [] + }, + { + "kind": "method", + "name": "groups", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "footer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "RotaFooter", "params": [] } ] }, { - "name": "SchedulePerson.Builder", - "binaryName": "com.demcha.compose.document.templates.data.schedule.SchedulePerson$Builder", + "name": "StructuredRotaData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.rota.StructuredRotaData$Builder", "kind": "class", "modifiers": [ "final" @@ -21288,43 +21530,85 @@ "members": [ { "kind": "method", - "name": "id", + "name": "venue", "static": false, "origin": "source", "typeParameters": null, - "returns": "SchedulePerson.Builder", + "returns": "StructuredRotaData.Builder", "params": [ { - "type": "String", - "name": "id" + "type": "RotaVenue", + "name": "venue" } ] }, { "kind": "method", - "name": "displayName", + "name": "week", "static": false, "origin": "source", "typeParameters": null, - "returns": "SchedulePerson.Builder", + "returns": "StructuredRotaData.Builder", "params": [ { - "type": "String", - "name": "displayName" + "type": "RotaWeek", + "name": "week" } ] }, { "kind": "method", - "name": "sortOrder", + "name": "days", "static": false, "origin": "source", "typeParameters": null, - "returns": "SchedulePerson.Builder", + "returns": "StructuredRotaData.Builder", "params": [ { - "type": "int", - "name": "sortOrder" + "type": "List", + "name": "days" + } + ] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData.Builder", + "params": [ + { + "type": "RotaLegend", + "name": "legend" + } + ] + }, + { + "kind": "method", + "name": "groups", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData.Builder", + "params": [ + { + "type": "List", + "name": "groups" + } + ] + }, + { + "kind": "method", + "name": "footer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "StructuredRotaData.Builder", + "params": [ + { + "type": "RotaFooter", + "name": "footer" } ] }, @@ -21334,14 +21618,14 @@ "static": false, "origin": "source", "typeParameters": null, - "returns": "SchedulePerson", + "returns": "StructuredRotaData", "params": [] } ] }, { - "name": "ScheduleSlot", - "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleSlot", + "name": "StructuredRotaDocumentSpec", + "binaryName": "com.demcha.compose.document.templates.data.rota.StructuredRotaDocumentSpec", "kind": "record", "modifiers": [ "final" @@ -21350,129 +21634,51 @@ "members": [ { "kind": "constructor", - "name": "ScheduleSlot", + "name": "StructuredRotaDocumentSpec", "static": false, "origin": "generated", "typeParameters": null, "returns": null, "params": [ { - "type": "String", - "name": null - }, - { - "type": "String", + "type": "StructuredRotaData", "name": null } ] }, { "kind": "method", - "name": "of", + "name": "from", "static": true, "origin": "source", "typeParameters": null, - "returns": "ScheduleSlot", + "returns": "StructuredRotaDocumentSpec", "params": [ { - "type": "String", - "name": "start" - }, - { - "type": "String", - "name": "end" + "type": "StructuredRotaData", + "name": "rota" } ] }, { "kind": "method", - "name": "builder", - "static": true, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleSlot.Builder", - "params": [] - }, - { - "kind": "method", - "name": "displayText", + "name": "rota", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "String", - "params": [] - }, - { - "kind": "method", - "name": "start", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "String", - "params": [] - }, - { - "kind": "method", - "name": "end", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "String", - "params": [] - } - ] - }, - { - "name": "ScheduleSlot.Builder", - "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleSlot$Builder", - "kind": "class", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ - { - "kind": "method", - "name": "start", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleSlot.Builder", - "params": [ - { - "type": "String", - "name": "start" - } - ] - }, - { - "kind": "method", - "name": "end", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleSlot.Builder", - "params": [ - { - "type": "String", - "name": "end" - } - ] - }, - { - "kind": "method", - "name": "build", - "static": false, - "origin": "source", - "typeParameters": null, - "returns": "ScheduleSlot", + "returns": "StructuredRotaData", "params": [] } ] - }, + } + ] + }, + { + "name": "com.demcha.compose.document.templates.data.schedule", + "types": [ { - "name": "WeeklyScheduleData", - "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleData", + "name": "ScheduleAssignment", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleAssignment", "kind": "record", "modifiers": [ "final" @@ -21481,7 +21687,7 @@ "members": [ { "kind": "constructor", - "name": "WeeklyScheduleData", + "name": "ScheduleAssignment", "static": false, "origin": "generated", "typeParameters": null, @@ -21496,27 +21702,15 @@ "name": null }, { - "type": "List", - "name": null - }, - { - "type": "List", - "name": null - }, - { - "type": "List", - "name": null - }, - { - "type": "List", + "type": "String", "name": null }, { - "type": "List", + "type": "List", "name": null }, { - "type": "List", + "type": "String", "name": null } ] @@ -21527,12 +21721,12 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleAssignment.Builder", "params": [] }, { "kind": "method", - "name": "title", + "name": "personId", "static": false, "origin": "generated", "typeParameters": null, @@ -21541,7 +21735,7 @@ }, { "kind": "method", - "name": "weekLabel", + "name": "dayId", "static": false, "origin": "generated", "typeParameters": null, @@ -21550,63 +21744,36 @@ }, { "kind": "method", - "name": "days", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "List", - "params": [] - }, - { - "kind": "method", - "name": "categories", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "List", - "params": [] - }, - { - "kind": "method", - "name": "headerMetrics", - "static": false, - "origin": "generated", - "typeParameters": null, - "returns": "List", - "params": [] - }, - { - "kind": "method", - "name": "people", + "name": "categoryId", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "String", "params": [] }, { "kind": "method", - "name": "assignments", + "name": "slots", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "List", "params": [] }, { "kind": "method", - "name": "footerNotes", + "name": "note", "static": false, "origin": "generated", "typeParameters": null, - "returns": "List", + "returns": "String", "params": [] } ] }, { - "name": "WeeklyScheduleData.Builder", - "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleData$Builder", + "name": "ScheduleAssignment.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleAssignment$Builder", "kind": "class", "modifiers": [ "final" @@ -21615,175 +21782,177 @@ "members": [ { "kind": "method", - "name": "title", + "name": "personId", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleAssignment.Builder", "params": [ { "type": "String", - "name": "title" + "name": "personId" } ] }, { "kind": "method", - "name": "weekLabel", + "name": "dayId", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleAssignment.Builder", "params": [ { "type": "String", - "name": "weekLabel" + "name": "dayId" } ] }, { "kind": "method", - "name": "days", + "name": "categoryId", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleAssignment.Builder", "params": [ { - "type": "List", - "name": "days" + "type": "String", + "name": "categoryId" } ] }, { "kind": "method", - "name": "addDay", + "name": "slots", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleAssignment.Builder", "params": [ { - "type": "ScheduleDay", - "name": "day" + "type": "List", + "name": "slots" } ] }, { "kind": "method", - "name": "day", + "name": "slots", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleAssignment.Builder", "params": [ { - "type": "Consumer", - "name": "spec" + "type": "ScheduleSlot...", + "name": "slots" } ] }, { "kind": "method", - "name": "day", + "name": "addSlot", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleAssignment.Builder", "params": [ { - "type": "String", - "name": "id" - }, - { - "type": "String", - "name": "label" - }, - { - "type": "String", - "name": "headerNote" - }, - { - "type": "String", - "name": "headerCategoryId" + "type": "ScheduleSlot", + "name": "slot" } ] }, { "kind": "method", - "name": "categories", + "name": "slot", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleAssignment.Builder", "params": [ { - "type": "List", - "name": "categories" + "type": "String", + "name": "start" + }, + { + "type": "String", + "name": "end" } ] }, { "kind": "method", - "name": "addCategory", + "name": "note", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleAssignment.Builder", "params": [ { - "type": "ScheduleCategory", - "name": "category" + "type": "String", + "name": "note" } ] }, { "kind": "method", - "name": "category", + "name": "build", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] - }, + "returns": "ScheduleAssignment", + "params": [] + } + ] + }, + { + "name": "ScheduleCategory", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleCategory", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { - "kind": "method", - "name": "category", + "kind": "constructor", + "name": "ScheduleCategory", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": null, "params": [ { "type": "String", - "name": "id" + "name": null }, { "type": "String", - "name": "label" + "name": null }, { "type": "Color", - "name": "fillColor" + "name": null }, { "type": "Color", - "name": "borderColor" + "name": null + }, + { + "type": "Color", + "name": null } ] }, { "kind": "method", - "name": "category", - "static": false, + "name": "of", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleCategory", "params": [ { "type": "String", @@ -21797,10 +21966,6 @@ "type": "Color", "name": "fillColor" }, - { - "type": "Color", - "name": "textColor" - }, { "type": "Color", "name": "borderColor" @@ -21809,269 +21974,350 @@ }, { "kind": "method", - "name": "headerMetrics", - "static": false, + "name": "of", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleCategory", "params": [ { - "type": "List", - "name": "headerMetrics" + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "textColor" + }, + { + "type": "Color", + "name": "borderColor" } ] }, { "kind": "method", - "name": "addHeaderMetric", - "static": false, + "name": "builder", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", - "params": [ - { - "type": "ScheduleMetricRow", - "name": "headerMetric" - } - ] + "returns": "ScheduleCategory.Builder", + "params": [] }, { "kind": "method", - "name": "headerMetric", + "name": "id", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "headerMetric", + "name": "label", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", - "params": [ - { - "type": "String", - "name": "label" - }, - { - "type": "List", - "name": "dayValues" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "headerMetric", + "name": "fillColor", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", - "params": [ - { - "type": "String", - "name": "label" - }, - { - "type": "String...", - "name": "dayValues" - } - ] + "returns": "Color", + "params": [] }, { "kind": "method", - "name": "people", + "name": "textColor", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", - "params": [ - { - "type": "List", - "name": "people" - } - ] + "returns": "Color", + "params": [] }, { "kind": "method", - "name": "addPerson", + "name": "borderColor", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", - "params": [ - { - "type": "SchedulePerson", - "name": "person" - } - ] - }, + "returns": "Color", + "params": [] + } + ] + }, + { + "name": "ScheduleCategory.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleCategory$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { "kind": "method", - "name": "person", + "name": "id", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleCategory.Builder", "params": [ { - "type": "Consumer", - "name": "spec" + "type": "String", + "name": "id" } ] }, { "kind": "method", - "name": "person", + "name": "label", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleCategory.Builder", "params": [ { "type": "String", - "name": "id" - }, - { - "type": "String", - "name": "displayName" - }, - { - "type": "int", - "name": "sortOrder" + "name": "label" } ] }, { "kind": "method", - "name": "assignments", + "name": "fillColor", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleCategory.Builder", "params": [ { - "type": "List", - "name": "assignments" + "type": "Color", + "name": "fillColor" } ] }, { "kind": "method", - "name": "addAssignment", + "name": "textColor", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleCategory.Builder", "params": [ { - "type": "ScheduleAssignment", - "name": "assignment" + "type": "Color", + "name": "textColor" } ] }, { "kind": "method", - "name": "assignment", + "name": "borderColor", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleCategory.Builder", "params": [ { - "type": "Consumer", - "name": "spec" + "type": "Color", + "name": "borderColor" } ] }, { "kind": "method", - "name": "assignment", + "name": "build", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleCategory", + "params": [] + } + ] + }, + { + "name": "ScheduleDay", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleDay", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ScheduleDay", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, "params": [ { "type": "String", - "name": "personId" + "name": null }, { "type": "String", - "name": "dayId" + "name": null }, { "type": "String", - "name": "categoryId" + "name": null }, { - "type": "ScheduleSlot...", - "name": "slots" + "type": "String", + "name": null } ] }, { "kind": "method", - "name": "assignment", - "static": false, + "name": "of", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleDay", "params": [ { "type": "String", - "name": "personId" + "name": "id" }, { "type": "String", - "name": "dayId" + "name": "label" }, { "type": "String", - "name": "categoryId" - }, - { - "type": "List", - "name": "slots" + "name": "headerNote" }, { "type": "String", - "name": "note" + "name": "headerCategoryId" } ] }, { "kind": "method", - "name": "footerNotes", - "static": false, + "name": "builder", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", - "params": [ - { - "type": "List", - "name": "footerNotes" - } - ] + "returns": "ScheduleDay.Builder", + "params": [] }, { "kind": "method", - "name": "footerNote", + "name": "id", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "headerNote", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "headerCategoryId", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ScheduleDay.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleDay$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "id", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData.Builder", + "returns": "ScheduleDay.Builder", "params": [ { "type": "String", - "name": "footerNote" + "name": "id" + } + ] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleDay.Builder", + "params": [ + { + "type": "String", + "name": "label" + } + ] + }, + { + "kind": "method", + "name": "headerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleDay.Builder", + "params": [ + { + "type": "String", + "name": "headerNote" + } + ] + }, + { + "kind": "method", + "name": "headerCategoryId", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleDay.Builder", + "params": [ + { + "type": "String", + "name": "headerCategoryId" } ] }, @@ -22081,14 +22327,14 @@ "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleData", + "returns": "ScheduleDay", "params": [] } ] }, { - "name": "WeeklyScheduleDocumentSpec", - "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleDocumentSpec", + "name": "ScheduleMetricRow", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleMetricRow", "kind": "record", "modifiers": [ "final" @@ -22097,29 +22343,37 @@ "members": [ { "kind": "constructor", - "name": "WeeklyScheduleDocumentSpec", + "name": "ScheduleMetricRow", "static": false, "origin": "generated", "typeParameters": null, "returns": null, "params": [ { - "type": "WeeklyScheduleData", + "type": "String", + "name": null + }, + { + "type": "List", "name": null } ] }, { "kind": "method", - "name": "from", + "name": "of", "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec", + "returns": "ScheduleMetricRow", "params": [ { - "type": "WeeklyScheduleData", - "name": "schedule" + "type": "String", + "name": "label" + }, + { + "type": "String...", + "name": "dayValues" } ] }, @@ -22129,23 +22383,32 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "ScheduleMetricRow.Builder", "params": [] }, { "kind": "method", - "name": "schedule", + "name": "label", "static": false, "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleData", + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "dayValues", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", "params": [] } ] }, { - "name": "WeeklyScheduleDocumentSpec.Builder", - "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleDocumentSpec$Builder", + "name": "ScheduleMetricRow.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleMetricRow$Builder", "kind": "class", "modifiers": [ "final" @@ -22154,485 +22417,2028 @@ "members": [ { "kind": "method", - "name": "title", + "name": "label", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "ScheduleMetricRow.Builder", "params": [ { "type": "String", - "name": "title" + "name": "label" } ] }, { "kind": "method", - "name": "weekLabel", + "name": "dayValues", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "ScheduleMetricRow.Builder", "params": [ { - "type": "String", - "name": "weekLabel" + "type": "List", + "name": "dayValues" } ] }, { "kind": "method", - "name": "days", + "name": "dayValues", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "ScheduleMetricRow.Builder", "params": [ { - "type": "List", - "name": "days" + "type": "String...", + "name": "dayValues" } ] }, { "kind": "method", - "name": "addDay", + "name": "addDayValue", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "ScheduleMetricRow.Builder", "params": [ { - "type": "ScheduleDay", - "name": "day" + "type": "String", + "name": "dayValue" } ] }, { "kind": "method", - "name": "day", + "name": "build", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] - }, + "returns": "ScheduleMetricRow", + "params": [] + } + ] + }, + { + "name": "SchedulePerson", + "binaryName": "com.demcha.compose.document.templates.data.schedule.SchedulePerson", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { - "kind": "method", - "name": "day", + "kind": "constructor", + "name": "SchedulePerson", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": null, "params": [ { "type": "String", - "name": "id" - }, - { - "type": "String", - "name": "label" + "name": null }, { "type": "String", - "name": "headerNote" + "name": null }, { - "type": "String", - "name": "headerCategoryId" + "type": "int", + "name": null } ] }, { "kind": "method", - "name": "categories", - "static": false, + "name": "of", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "SchedulePerson", "params": [ { - "type": "List", - "name": "categories" + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "displayName" + }, + { + "type": "int", + "name": "sortOrder" } ] }, { "kind": "method", - "name": "addCategory", - "static": false, + "name": "builder", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "ScheduleCategory", - "name": "category" - } - ] + "returns": "SchedulePerson.Builder", + "params": [] }, { "kind": "method", - "name": "category", + "name": "id", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "category", + "name": "displayName", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "String", - "name": "id" - }, - { - "type": "String", - "name": "label" - }, - { - "type": "Color", - "name": "fillColor" - }, - { - "type": "Color", - "name": "borderColor" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "category", + "name": "sortOrder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "SchedulePerson.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.SchedulePerson$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "id", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "SchedulePerson.Builder", "params": [ { "type": "String", "name": "id" - }, - { - "type": "String", - "name": "label" - }, - { - "type": "Color", - "name": "fillColor" - }, - { - "type": "Color", - "name": "textColor" - }, - { - "type": "Color", - "name": "borderColor" } ] }, { "kind": "method", - "name": "headerMetrics", + "name": "displayName", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "SchedulePerson.Builder", "params": [ { - "type": "List", - "name": "headerMetrics" + "type": "String", + "name": "displayName" } ] }, { "kind": "method", - "name": "addHeaderMetric", + "name": "sortOrder", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "SchedulePerson.Builder", "params": [ { - "type": "ScheduleMetricRow", - "name": "headerMetric" + "type": "int", + "name": "sortOrder" } ] }, { "kind": "method", - "name": "headerMetric", + "name": "build", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] - }, + "returns": "SchedulePerson", + "params": [] + } + ] + }, + { + "name": "ScheduleSlot", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleSlot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { - "kind": "method", - "name": "headerMetric", + "kind": "constructor", + "name": "ScheduleSlot", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": null, "params": [ { "type": "String", - "name": "label" + "name": null }, { - "type": "List", - "name": "dayValues" + "type": "String", + "name": null } ] }, { "kind": "method", - "name": "headerMetric", - "static": false, + "name": "of", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "ScheduleSlot", "params": [ { "type": "String", - "name": "label" + "name": "start" }, { - "type": "String...", - "name": "dayValues" + "type": "String", + "name": "end" } ] }, { "kind": "method", - "name": "people", - "static": false, + "name": "builder", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "List", - "name": "people" - } - ] + "returns": "ScheduleSlot.Builder", + "params": [] }, { "kind": "method", - "name": "addPerson", + "name": "displayText", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "SchedulePerson", - "name": "person" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "person", + "name": "start", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] + "returns": "String", + "params": [] }, { "kind": "method", - "name": "person", + "name": "end", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "String", - "name": "id" - }, - { - "type": "String", - "name": "displayName" - }, - { - "type": "int", - "name": "sortOrder" - } - ] - }, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ScheduleSlot.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleSlot$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { "kind": "method", - "name": "assignments", + "name": "start", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "ScheduleSlot.Builder", "params": [ { - "type": "List", - "name": "assignments" + "type": "String", + "name": "start" } ] }, { "kind": "method", - "name": "addAssignment", + "name": "end", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "ScheduleSlot.Builder", "params": [ { - "type": "ScheduleAssignment", - "name": "assignment" + "type": "String", + "name": "end" } ] }, { "kind": "method", - "name": "assignment", + "name": "build", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", - "params": [ - { - "type": "Consumer", - "name": "spec" - } - ] - }, + "returns": "ScheduleSlot", + "params": [] + } + ] + }, + { + "name": "WeeklyScheduleData", + "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleData", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { - "kind": "method", - "name": "assignment", + "kind": "constructor", + "name": "WeeklyScheduleData", "static": false, - "origin": "source", + "origin": "generated", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": null, "params": [ { "type": "String", - "name": "personId" + "name": null }, { "type": "String", - "name": "dayId" + "name": null }, { - "type": "String", - "name": "categoryId" + "type": "List", + "name": null }, { - "type": "ScheduleSlot...", - "name": "slots" + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null } ] }, { "kind": "method", - "name": "assignment", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "weekLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "days", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "categories", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "headerMetrics", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "people", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "assignments", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "footerNotes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "WeeklyScheduleData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleData$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "WeeklyScheduleData.Builder", "params": [ { "type": "String", - "name": "personId" - }, + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "weekLabel", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ { "type": "String", - "name": "dayId" + "name": "weekLabel" + } + ] + }, + { + "kind": "method", + "name": "days", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "days" + } + ] + }, + { + "kind": "method", + "name": "addDay", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "ScheduleDay", + "name": "day" + } + ] + }, + { + "kind": "method", + "name": "day", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "day", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "id" }, { "type": "String", - "name": "categoryId" + "name": "label" }, { - "type": "List", - "name": "slots" + "type": "String", + "name": "headerNote" }, { "type": "String", - "name": "note" + "name": "headerCategoryId" } ] }, { "kind": "method", - "name": "footerNotes", + "name": "categories", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "WeeklyScheduleData.Builder", "params": [ { - "type": "List", - "name": "footerNotes" + "type": "List", + "name": "categories" } ] }, { "kind": "method", - "name": "footerNote", + "name": "addCategory", "static": false, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec.Builder", + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "ScheduleCategory", + "name": "category" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", "params": [ { "type": "String", - "name": "footerNote" + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "borderColor" } ] }, { "kind": "method", - "name": "build", - "static": false, + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "textColor" + }, + { + "type": "Color", + "name": "borderColor" + } + ] + }, + { + "kind": "method", + "name": "headerMetrics", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "headerMetrics" + } + ] + }, + { + "kind": "method", + "name": "addHeaderMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "ScheduleMetricRow", + "name": "headerMetric" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "List", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String...", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "people", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "people" + } + ] + }, + { + "kind": "method", + "name": "addPerson", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "SchedulePerson", + "name": "person" + } + ] + }, + { + "kind": "method", + "name": "person", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "person", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "displayName" + }, + { + "type": "int", + "name": "sortOrder" + } + ] + }, + { + "kind": "method", + "name": "assignments", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "assignments" + } + ] + }, + { + "kind": "method", + "name": "addAssignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "ScheduleAssignment", + "name": "assignment" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "personId" + }, + { + "type": "String", + "name": "dayId" + }, + { + "type": "String", + "name": "categoryId" + }, + { + "type": "ScheduleSlot...", + "name": "slots" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "personId" + }, + { + "type": "String", + "name": "dayId" + }, + { + "type": "String", + "name": "categoryId" + }, + { + "type": "List", + "name": "slots" + }, + { + "type": "String", + "name": "note" + } + ] + }, + { + "kind": "method", + "name": "footerNotes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "footerNotes" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData", + "params": [] + } + ] + }, + { + "name": "WeeklyScheduleDocumentSpec", + "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleDocumentSpec", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "WeeklyScheduleDocumentSpec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "WeeklyScheduleData", + "name": null + } + ] + }, + { + "kind": "method", + "name": "from", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec", + "params": [ + { + "type": "WeeklyScheduleData", + "name": "schedule" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [] + }, + { + "kind": "method", + "name": "schedule", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "WeeklyScheduleData", + "params": [] + } + ] + }, + { + "name": "WeeklyScheduleDocumentSpec.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleDocumentSpec$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "weekLabel", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "weekLabel" + } + ] + }, + { + "kind": "method", + "name": "days", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "days" + } + ] + }, + { + "kind": "method", + "name": "addDay", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "ScheduleDay", + "name": "day" + } + ] + }, + { + "kind": "method", + "name": "day", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "day", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "headerNote" + }, + { + "type": "String", + "name": "headerCategoryId" + } + ] + }, + { + "kind": "method", + "name": "categories", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "categories" + } + ] + }, + { + "kind": "method", + "name": "addCategory", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "ScheduleCategory", + "name": "category" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "borderColor" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "textColor" + }, + { + "type": "Color", + "name": "borderColor" + } + ] + }, + { + "kind": "method", + "name": "headerMetrics", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "headerMetrics" + } + ] + }, + { + "kind": "method", + "name": "addHeaderMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "ScheduleMetricRow", + "name": "headerMetric" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "List", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String...", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "people", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "people" + } + ] + }, + { + "kind": "method", + "name": "addPerson", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "SchedulePerson", + "name": "person" + } + ] + }, + { + "kind": "method", + "name": "person", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "person", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "displayName" + }, + { + "type": "int", + "name": "sortOrder" + } + ] + }, + { + "kind": "method", + "name": "assignments", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "assignments" + } + ] + }, + { + "kind": "method", + "name": "addAssignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "ScheduleAssignment", + "name": "assignment" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "personId" + }, + { + "type": "String", + "name": "dayId" + }, + { + "type": "String", + "name": "categoryId" + }, + { + "type": "ScheduleSlot...", + "name": "slots" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "personId" + }, + { + "type": "String", + "name": "dayId" + }, + { + "type": "String", + "name": "categoryId" + }, + { + "type": "List", + "name": "slots" + }, + { + "type": "String", + "name": "note" + } + ] + }, + { + "kind": "method", + "name": "footerNotes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "footerNotes" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.invoice.presets", + "types": [ + { + "name": "ClassicInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.ClassicInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "ConsultingInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.ConsultingInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "LumaStudioInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.LumaStudioInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "MerchantInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.MerchantInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "MeteredInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.MeteredInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "ModernInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.ModernInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "ObsidianInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.ObsidianInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "PaymentsInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.PaymentsInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "PlatformInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.PlatformInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "SubscriptionInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.SubscriptionInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "WorkspaceInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.WorkspaceInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.proposal.presets", + "types": [ + { + "name": "EditorialProposal", + "binaryName": "com.demcha.compose.document.templates.proposal.presets.EditorialProposal", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + } + ] + }, + { + "name": "IndigoProposal", + "binaryName": "com.demcha.compose.document.templates.proposal.presets.IndigoProposal", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, "origin": "source", "typeParameters": null, - "returns": "WeeklyScheduleDocumentSpec", + "returns": "DocumentTemplate", "params": [] } ] - } - ] - }, - { - "name": "com.demcha.compose.document.templates.invoice.presets", - "types": [ + }, { - "name": "ClassicInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.ClassicInvoice", + "name": "ModernProposal", + "binaryName": "com.demcha.compose.document.templates.proposal.presets.ModernProposal", "kind": "class", "modifiers": [ "final" @@ -22666,7 +24472,7 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", + "returns": "DocumentTemplate", "params": [] }, { @@ -22675,7 +24481,7 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", + "returns": "DocumentTemplate", "params": [ { "type": "BrandTheme", @@ -22686,8 +24492,8 @@ ] }, { - "name": "ConsultingInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.ConsultingInvoice", + "name": "NorthlineProposal", + "binaryName": "com.demcha.compose.document.templates.proposal.presets.NorthlineProposal", "kind": "class", "modifiers": [ "final" @@ -22721,14 +24527,19 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", + "returns": "DocumentTemplate", "params": [] } ] - }, + } + ] + }, + { + "name": "com.demcha.compose.document.templates.receipt.components", + "types": [ { - "name": "LumaStudioInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.LumaStudioInvoice", + "name": "FieldRowRenderer", + "binaryName": "com.demcha.compose.document.templates.receipt.components.FieldRowRenderer", "kind": "class", "modifiers": [ "final" @@ -22736,33 +24547,80 @@ "artifact": "graph-compose-templates", "members": [ { - "kind": "constant", - "name": "ID", + "kind": "method", + "name": "renderAll", "static": true, - "origin": "generated", - "type": "String" + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "List", + "name": "fields" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] }, { - "kind": "constant", - "name": "DISPLAY_NAME", + "kind": "method", + "name": "renderInline", "static": true, - "origin": "generated", - "type": "String" + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "List", + "name": "fields" + }, + { + "type": "TextAlign", + "name": "align" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] }, { "kind": "method", - "name": "create", + "name": "render", "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", - "params": [] + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "ReceiptField", + "name": "field" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] } ] }, { - "name": "MerchantInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.MerchantInvoice", + "name": "ReceiptStyles", + "binaryName": "com.demcha.compose.document.templates.receipt.components.ReceiptStyles", "kind": "class", "modifiers": [ "final" @@ -22770,67 +24628,228 @@ "artifact": "graph-compose-templates", "members": [ { - "kind": "constant", - "name": "ID", + "kind": "method", + "name": "eyebrow", "static": true, - "origin": "generated", - "type": "String" + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] }, { - "kind": "constant", - "name": "DISPLAY_NAME", + "kind": "method", + "name": "groupTitle", "static": true, - "origin": "generated", - "type": "String" + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] }, { "kind": "method", - "name": "create", + "name": "title", "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", - "params": [] + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "caption", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "label", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "value", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "valueStrong", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "amount", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "partyName", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "body", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "smallPrint", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "pill", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] } ] }, { - "name": "MeteredInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.MeteredInvoice", + "name": "StatusPill", + "binaryName": "com.demcha.compose.document.templates.receipt.components.StatusPill", "kind": "class", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ - { - "kind": "constant", - "name": "ID", - "static": true, - "origin": "generated", - "type": "String" - }, - { - "kind": "constant", - "name": "DISPLAY_NAME", - "static": true, - "origin": "generated", - "type": "String" - }, { "kind": "method", - "name": "create", + "name": "render", "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", - "params": [] + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "ReceiptStatus", + "name": "status" + }, + { + "type": "DocumentColor", + "name": "accent" + }, + { + "type": "TextAlign", + "name": "align" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] } ] - }, + } + ] + }, + { + "name": "com.demcha.compose.document.templates.receipt.presets", + "types": [ { - "name": "ModernInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.ModernInvoice", + "name": "ModernReceipt", + "binaryName": "com.demcha.compose.document.templates.receipt.presets.ModernReceipt", "kind": "class", "modifiers": [ "final" @@ -22864,7 +24883,7 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", + "returns": "DocumentTemplate", "params": [] }, { @@ -22873,38 +24892,13 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", + "returns": "DocumentTemplate", "params": [ { "type": "BrandTheme", "name": "theme" } ] - } - ] - }, - { - "name": "ObsidianInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.ObsidianInvoice", - "kind": "class", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ - { - "kind": "constant", - "name": "ID", - "static": true, - "origin": "generated", - "type": "String" - }, - { - "kind": "constant", - "name": "DISPLAY_NAME", - "static": true, - "origin": "generated", - "type": "String" }, { "kind": "method", @@ -22912,15 +24906,24 @@ "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", - "params": [] + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "ModernReceipt.Options", + "name": "options" + } + ] } ] }, { - "name": "PaymentsInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.PaymentsInvoice", - "kind": "class", + "name": "ModernReceipt.Options", + "binaryName": "com.demcha.compose.document.templates.receipt.presets.ModernReceipt$Options", + "kind": "record", "modifiers": [ "final" ], @@ -22928,127 +24931,160 @@ "members": [ { "kind": "constant", - "name": "ID", + "name": "DEFAULT_LOGO_WIDTH", "static": true, "origin": "generated", - "type": "String" + "type": "double" }, { "kind": "constant", - "name": "DISPLAY_NAME", + "name": "DEFAULT_TIMELINE_TITLE", "static": true, "origin": "generated", "type": "String" }, + { + "kind": "constructor", + "name": "Options", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "SvgGlyph", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, { "kind": "method", - "name": "create", + "name": "defaults", "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", + "returns": "ModernReceipt.Options", "params": [] - } - ] - }, - { - "name": "PlatformInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.PlatformInvoice", - "kind": "class", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ + }, { - "kind": "constant", - "name": "ID", + "kind": "method", + "name": "branded", "static": true, - "origin": "generated", - "type": "String" + "origin": "source", + "typeParameters": null, + "returns": "ModernReceipt.Options", + "params": [ + { + "type": "SvgGlyph", + "name": "logo" + }, + { + "type": "DocumentColor", + "name": "accent" + } + ] }, { - "kind": "constant", - "name": "DISPLAY_NAME", - "static": true, - "origin": "generated", - "type": "String" + "kind": "method", + "name": "withLogoWidth", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModernReceipt.Options", + "params": [ + { + "type": "double", + "name": "width" + } + ] }, { "kind": "method", - "name": "create", - "static": true, + "name": "withLogoColor", + "static": false, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", - "params": [] - } - ] - }, - { - "name": "SubscriptionInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.SubscriptionInvoice", - "kind": "class", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ + "returns": "ModernReceipt.Options", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, { - "kind": "constant", - "name": "ID", - "static": true, - "origin": "generated", - "type": "String" + "kind": "method", + "name": "withTimelineTitle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModernReceipt.Options", + "params": [ + { + "type": "String", + "name": "title" + } + ] }, { - "kind": "constant", - "name": "DISPLAY_NAME", - "static": true, + "kind": "method", + "name": "logo", + "static": false, "origin": "generated", - "type": "String" + "typeParameters": null, + "returns": "SvgGlyph", + "params": [] }, { "kind": "method", - "name": "create", - "static": true, - "origin": "source", + "name": "logoWidth", + "static": false, + "origin": "generated", "typeParameters": null, - "returns": "DocumentTemplate", + "returns": "double", "params": [] - } - ] - }, - { - "name": "WorkspaceInvoice", - "binaryName": "com.demcha.compose.document.templates.invoice.presets.WorkspaceInvoice", - "kind": "class", - "modifiers": [ - "final" - ], - "artifact": "graph-compose-templates", - "members": [ + }, { - "kind": "constant", - "name": "ID", - "static": true, + "kind": "method", + "name": "logoColor", + "static": false, "origin": "generated", - "type": "String" + "typeParameters": null, + "returns": "DocumentColor", + "params": [] }, { - "kind": "constant", - "name": "DISPLAY_NAME", - "static": true, + "kind": "method", + "name": "accent", + "static": false, "origin": "generated", - "type": "String" + "typeParameters": null, + "returns": "DocumentColor", + "params": [] }, { "kind": "method", - "name": "create", - "static": true, - "origin": "source", + "name": "timelineTitle", + "static": false, + "origin": "generated", "typeParameters": null, - "returns": "DocumentTemplate", + "returns": "String", "params": [] } ] @@ -23056,93 +25092,81 @@ ] }, { - "name": "com.demcha.compose.document.templates.proposal.presets", + "name": "com.demcha.compose.document.templates.receipt.widgets", "types": [ { - "name": "EditorialProposal", - "binaryName": "com.demcha.compose.document.templates.proposal.presets.EditorialProposal", + "name": "AmountHero", + "binaryName": "com.demcha.compose.document.templates.receipt.widgets.AmountHero", "kind": "class", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ - { - "kind": "constant", - "name": "ID", - "static": true, - "origin": "generated", - "type": "String" - }, - { - "kind": "constant", - "name": "DISPLAY_NAME", - "static": true, - "origin": "generated", - "type": "String" - }, - { - "kind": "constant", - "name": "RECOMMENDED_MARGIN", - "static": true, - "origin": "generated", - "type": "double" - }, { "kind": "method", - "name": "create", + "name": "render", "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", - "params": [] + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "ReceiptData", + "name": "data" + }, + { + "type": "DocumentColor", + "name": "accent" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] } ] }, { - "name": "IndigoProposal", - "binaryName": "com.demcha.compose.document.templates.proposal.presets.IndigoProposal", + "name": "DetailGroup", + "binaryName": "com.demcha.compose.document.templates.receipt.widgets.DetailGroup", "kind": "class", "modifiers": [ "final" ], "artifact": "graph-compose-templates", "members": [ - { - "kind": "constant", - "name": "ID", - "static": true, - "origin": "generated", - "type": "String" - }, - { - "kind": "constant", - "name": "DISPLAY_NAME", - "static": true, - "origin": "generated", - "type": "String" - }, - { - "kind": "constant", - "name": "RECOMMENDED_MARGIN", - "static": true, - "origin": "generated", - "type": "double" - }, { "kind": "method", - "name": "create", + "name": "render", "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", - "params": [] + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "ReceiptFieldGroup", + "name": "group" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] } ] }, { - "name": "ModernProposal", - "binaryName": "com.demcha.compose.document.templates.proposal.presets.ModernProposal", + "name": "PartyPair", + "binaryName": "com.demcha.compose.document.templates.receipt.widgets.PartyPair", "kind": "class", "modifiers": [ "final" @@ -23150,43 +25174,72 @@ "artifact": "graph-compose-templates", "members": [ { - "kind": "constant", - "name": "ID", - "static": true, - "origin": "generated", - "type": "String" - }, - { - "kind": "constant", - "name": "DISPLAY_NAME", - "static": true, - "origin": "generated", - "type": "String" - }, - { - "kind": "constant", - "name": "RECOMMENDED_MARGIN", + "kind": "method", + "name": "render", "static": true, - "origin": "generated", - "type": "double" - }, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "ReceiptData", + "name": "data" + }, + { + "type": "DocumentColor", + "name": "accent" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "ReceiptFooter", + "binaryName": "com.demcha.compose.document.templates.receipt.widgets.ReceiptFooter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { "kind": "method", - "name": "create", + "name": "hasContent", "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", - "params": [] + "returns": "boolean", + "params": [ + { + "type": "ReceiptData", + "name": "data" + } + ] }, { "kind": "method", - "name": "create", + "name": "render", "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", + "returns": "void", "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "ReceiptData", + "name": "data" + }, { "type": "BrandTheme", "name": "theme" @@ -23196,8 +25249,8 @@ ] }, { - "name": "NorthlineProposal", - "binaryName": "com.demcha.compose.document.templates.proposal.presets.NorthlineProposal", + "name": "ReceiptMasthead", + "binaryName": "com.demcha.compose.document.templates.receipt.widgets.ReceiptMasthead", "kind": "class", "modifiers": [ "final" @@ -23205,34 +25258,79 @@ "artifact": "graph-compose-templates", "members": [ { - "kind": "constant", - "name": "ID", - "static": true, - "origin": "generated", - "type": "String" - }, - { - "kind": "constant", - "name": "DISPLAY_NAME", - "static": true, - "origin": "generated", - "type": "String" - }, - { - "kind": "constant", - "name": "RECOMMENDED_MARGIN", + "kind": "method", + "name": "render", "static": true, - "origin": "generated", - "type": "double" - }, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "ReceiptData", + "name": "data" + }, + { + "type": "SvgGlyph", + "name": "logo" + }, + { + "type": "double", + "name": "logoWidth" + }, + { + "type": "DocumentColor", + "name": "logoColor" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "StatusTrail", + "binaryName": "com.demcha.compose.document.templates.receipt.widgets.StatusTrail", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ { "kind": "method", - "name": "create", + "name": "render", "static": true, "origin": "source", "typeParameters": null, - "returns": "DocumentTemplate", - "params": [] + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "List", + "name": "events" + }, + { + "type": "DocumentColor", + "name": "accent" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] } ] } diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index 6b4ca08fe..8fa70e487 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 244 · methods: 1351 · constants: 191 · compiler-generated members: 750 +Types: 266 · methods: 1474 · constants: 200 · compiler-generated members: 806 ## com.demcha.compose.document.templates.api @@ -120,6 +120,7 @@ Types: 244 · methods: 1351 · constants: 191 · compiler-generated members: 750 ### SvgGlyph (class) - `SvgGlyph fromResource(String resourcePath)` +- `SvgGlyph fromFile(Path file)` - `ShapeOutline outline(double width)` - `double aspectRatio()` @@ -170,6 +171,7 @@ Types: 244 · methods: 1351 · constants: 191 · compiler-generated members: 750 - `BrandTheme mintEditorial()` - `BrandTheme invoiceModern()` - `BrandTheme proposalModern()` +- `BrandTheme receiptModern()` - `DocumentTextStyle headlineStyle()` - `DocumentTextStyle bannerStyle()` - `DocumentTextStyle contactStyle()` @@ -211,6 +213,7 @@ Types: 244 · methods: 1351 · constants: 191 · compiler-generated members: 750 - `Palette executive()` - `Palette mintEditorial()` - `Palette invoiceModern()` +- `Palette receiptModern()` - `DocumentColor ink()` - `DocumentColor muted()` - `DocumentColor rule()` @@ -236,6 +239,7 @@ Types: 244 · methods: 1351 · constants: 191 · compiler-generated members: 750 - `Spacing executive()` - `Spacing mintEditorial()` - `Spacing invoiceModern()` +- `Spacing receiptModern()` - `double pageFlowSpacing()` - `double sectionBodySpacing()` - `DocumentInsets sectionBodyPadding()` @@ -270,6 +274,7 @@ Types: 244 · methods: 1351 · constants: 191 · compiler-generated members: 750 - `Typography mintEditorial()` - `Typography invoiceModern()` - `Typography proposalModern()` +- `Typography receiptModern()` - `FontName headlineFont()` - `FontName bodyFont()` - `double sizeHeadline()` @@ -1623,6 +1628,112 @@ Types: 244 · methods: 1351 · constants: 191 · compiler-generated members: 750 - `StructuredProposalDocumentSpec from(StructuredProposalData proposal)` - `StructuredProposalData proposal()` +## com.demcha.compose.document.templates.data.receipt + +### ReceiptData (record) +- `new ReceiptData(String, String, String, String, String, String, String, ReceiptStatus, List, String, ReceiptParty, String, ReceiptParty, List, List, List, String, String, List, String)` +- `boolean hasPayer()` +- `boolean hasBeneficiary()` +- `ReceiptData.Builder builder()` +- `String documentTitle()` +- `String issuerName()` +- `String generatedOn()` +- `String reference()` +- `String amountLabel()` +- `String amount()` +- `String amountCaption()` +- `ReceiptStatus status()` +- `List summaryFields()` +- `String payerLabel()` +- `ReceiptParty payer()` +- `String beneficiaryLabel()` +- `ReceiptParty beneficiary()` +- `List detailGroups()` +- `List timeline()` +- `List notes()` +- `String verificationUrl()` +- `String verificationText()` +- `List supportLines()` +- `String legalNote()` + +### ReceiptData.Builder (class) +- `ReceiptData.Builder documentTitle(String documentTitle)` +- `ReceiptData.Builder issuerName(String issuerName)` +- `ReceiptData.Builder generatedOn(String generatedOn)` +- `ReceiptData.Builder reference(String reference)` +- `ReceiptData.Builder amount(String label, String amount)` +- `ReceiptData.Builder amountCaption(String amountCaption)` +- `ReceiptData.Builder status(ReceiptStatus status)` +- `ReceiptData.Builder status(String label, ReceiptStatusTone tone)` +- `ReceiptData.Builder summaryField(String label, String value)` +- `ReceiptData.Builder payer(String label, Consumer spec)` +- `ReceiptData.Builder beneficiary(String label, Consumer spec)` +- `ReceiptData.Builder detailGroup(String title, Consumer spec)` +- `ReceiptData.Builder addDetailGroup(ReceiptFieldGroup group)` +- `ReceiptData.Builder event(String label, String timestamp, String detail)` +- `ReceiptData.Builder note(String note)` +- `ReceiptData.Builder verification(String url, String text)` +- `ReceiptData.Builder supportLine(String line)` +- `ReceiptData.Builder legalNote(String legalNote)` +- `ReceiptData build()` + +### ReceiptDocumentSpec (record) +- `new ReceiptDocumentSpec(ReceiptData)` +- `ReceiptDocumentSpec from(ReceiptData receipt)` +- `ReceiptDocumentSpec of(Consumer spec)` +- `ReceiptData receipt()` + +### ReceiptEvent (record) +- `new ReceiptEvent(String, String, String)` +- `ReceiptEvent of(String label, String timestamp)` +- `String label()` +- `String timestamp()` +- `String detail()` + +### ReceiptField (record) +- `new ReceiptField(String, String, boolean)` +- `ReceiptField of(String label, String value)` +- `ReceiptField emphasized(String label, String value)` +- `String label()` +- `String value()` +- `boolean emphasized()` + +### ReceiptFieldGroup (record) +- `new ReceiptFieldGroup(String, List)` +- `ReceiptFieldGroup.Builder builder(String title)` +- `String title()` +- `List fields()` + +### ReceiptFieldGroup.Builder (class) +- `ReceiptFieldGroup.Builder field(String label, String value)` +- `ReceiptFieldGroup.Builder emphasized(String label, String value)` +- `ReceiptFieldGroup.Builder add(ReceiptField field)` +- `ReceiptFieldGroup build()` + +### ReceiptParty (record) +- `new ReceiptParty(String, List, List)` +- `ReceiptParty.Builder builder()` +- `String name()` +- `List addressLines()` +- `List fields()` + +### ReceiptParty.Builder (class) +- `ReceiptParty.Builder name(String name)` +- `ReceiptParty.Builder addressLines(String... lines)` +- `ReceiptParty.Builder field(String label, String value)` +- `ReceiptParty build()` + +### ReceiptStatus (record) +- `new ReceiptStatus(String, ReceiptStatusTone)` +- `ReceiptStatus settled(String label)` +- `ReceiptStatus inProgress(String label)` +- `boolean hasLabel()` +- `String label()` +- `ReceiptStatusTone tone()` + +### ReceiptStatusTone (enum) +- constants: `SETTLED`, `IN_PROGRESS`, `ATTENTION`, `FAILED` + ## com.demcha.compose.document.templates.data.rota ### RotaCovers (record) @@ -1968,6 +2079,73 @@ Types: 244 · methods: 1351 · constants: 191 · compiler-generated members: 750 - `DocumentTemplate create()` - constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` +## com.demcha.compose.document.templates.receipt.components + +### FieldRowRenderer (class) +- `void renderAll(SectionBuilder host, List fields, BrandTheme theme)` +- `void renderInline(SectionBuilder host, List fields, TextAlign align, BrandTheme theme)` +- `void render(SectionBuilder host, ReceiptField field, BrandTheme theme)` + +### ReceiptStyles (class) +- `DocumentTextStyle eyebrow(BrandTheme theme)` +- `DocumentTextStyle groupTitle(BrandTheme theme)` +- `DocumentTextStyle title(BrandTheme theme)` +- `DocumentTextStyle caption(BrandTheme theme)` +- `DocumentTextStyle label(BrandTheme theme)` +- `DocumentTextStyle value(BrandTheme theme)` +- `DocumentTextStyle valueStrong(BrandTheme theme)` +- `DocumentTextStyle amount(BrandTheme theme)` +- `DocumentTextStyle partyName(BrandTheme theme)` +- `DocumentTextStyle body(BrandTheme theme)` +- `DocumentTextStyle smallPrint(BrandTheme theme)` +- `DocumentTextStyle pill(BrandTheme theme, DocumentColor color)` + +### StatusPill (class) +- `void render(SectionBuilder host, ReceiptStatus status, DocumentColor accent, TextAlign align, BrandTheme theme)` + +## com.demcha.compose.document.templates.receipt.presets + +### ModernReceipt (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- `DocumentTemplate create(BrandTheme theme, ModernReceipt.Options options)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### ModernReceipt.Options (record) +- `new Options(SvgGlyph, double, DocumentColor, DocumentColor, String)` +- `ModernReceipt.Options defaults()` +- `ModernReceipt.Options branded(SvgGlyph logo, DocumentColor accent)` +- `ModernReceipt.Options withLogoWidth(double width)` +- `ModernReceipt.Options withLogoColor(DocumentColor color)` +- `ModernReceipt.Options withTimelineTitle(String title)` +- `SvgGlyph logo()` +- `double logoWidth()` +- `DocumentColor logoColor()` +- `DocumentColor accent()` +- `String timelineTitle()` +- constants: `DEFAULT_LOGO_WIDTH`, `DEFAULT_TIMELINE_TITLE` + +## com.demcha.compose.document.templates.receipt.widgets + +### AmountHero (class) +- `void render(SectionBuilder host, ReceiptData data, DocumentColor accent, BrandTheme theme)` + +### DetailGroup (class) +- `void render(SectionBuilder host, ReceiptFieldGroup group, BrandTheme theme)` + +### PartyPair (class) +- `void render(SectionBuilder host, ReceiptData data, DocumentColor accent, BrandTheme theme)` + +### ReceiptFooter (class) +- `boolean hasContent(ReceiptData data)` +- `void render(SectionBuilder host, ReceiptData data, BrandTheme theme)` + +### ReceiptMasthead (class) +- `void render(SectionBuilder host, ReceiptData data, SvgGlyph logo, double logoWidth, DocumentColor logoColor, BrandTheme theme)` + +### StatusTrail (class) +- `void render(SectionBuilder host, String title, List events, DocumentColor accent, BrandTheme theme)` + ## com.demcha.compose.document.templates.rota.presets ### CobaltRota (class) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/core/identity/SvgGlyph.java b/templates/src/main/java/com/demcha/compose/document/templates/core/identity/SvgGlyph.java index 2a0023343..0efcd3ce9 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/core/identity/SvgGlyph.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/core/identity/SvgGlyph.java @@ -95,7 +95,7 @@ public static SvgGlyph fromResource(String resourcePath) { * @return the recolorable glyph * @throws IllegalStateException if the file does not exist * @throws UncheckedIOException if the file cannot be read - * @since 2.1.2 + * @since 2.4.0 */ public static SvgGlyph fromFile(Path file) { Objects.requireNonNull(file, "file"); From dfcfe069a029ae027b0682e12067b5b4b58db6ec Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 09:20:14 +0100 Subject: [PATCH 51/85] test(receipt): hold the receipt geometry, not only its pixels The receipt family shipped with a pixel gate alone. A 50k-pixel budget on a Helvetica render cannot say where a box went: it absorbs a small shift and reports the same number for a moved hairline as for a recoloured one, and the receipt is built from measured text - a status chip sized to its label, spaced-caps group titles, a hero amount, and the rail of the status trail. ModernReceiptLayoutSnapshotTest freezes the resolved geometry of the canonical receipt - 130 nodes on one page - and asserts the page count, so a pagination change cannot pass quietly. The canonical spec moves out of the pixel test into ReceiptFixtures, so both gates describe one document rather than two copies free to drift apart. --- .../ModernReceiptLayoutSnapshotTest.java | 50 + .../receipt/presets/ReceiptFixtures.java | 73 + .../presets/ReceiptVisualParityTest.java | 56 +- .../receipt/modern_receipt_layout.json | 3917 +++++++++++++++++ 4 files changed, 4041 insertions(+), 55 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptFixtures.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/receipt/modern_receipt_layout.json diff --git a/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptLayoutSnapshotTest.java new file mode 100644 index 000000000..3b96ea3e1 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptLayoutSnapshotTest.java @@ -0,0 +1,50 @@ +package com.demcha.compose.document.templates.receipt.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.templates.TemplateTestSupport; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.theme.BrandTheme; +import com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Exact layout snapshot gate for {@link ModernReceipt} — freezes the resolved geometry of + * the canonical receipt. + * + *

      The receipt family shipped with a pixel gate only, and a pixel budget cannot say where + * a box went: it absorbs a small shift and reports the same number for a moved hairline as + * for a recoloured one. The receipt is built from measured text — a status chip sized to its + * label, spaced-caps group titles, a hero amount, and the rail of the status trail — so the + * geometry is the part that has to hold.

      + * + *

      Composed onto the same page size, margin and branded factory as + * {@link ReceiptVisualParityTest}, from the same {@link ReceiptFixtures} spec, so the two + * gates describe one document rather than two that may drift apart.

      + * + *

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

      + */ +class ModernReceiptLayoutSnapshotTest { + + @Test + void canonicalReceiptMatchesLayoutSnapshot() throws Exception { + float margin = (float) ModernReceipt.RECOMMENDED_MARGIN; + DocumentTemplate template = ModernReceipt.create( + BrandTheme.receiptModern(), + ModernReceipt.Options.branded(null, DocumentColor.rgb(23, 92, 211))); + try (DocumentSession session = GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(margin, margin, margin, margin) + .create()) { + template.compose(session, ReceiptFixtures.canonicalReceipt()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "modern_receipt_layout", "receipt"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptFixtures.java new file mode 100644 index 000000000..b43ff1516 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptFixtures.java @@ -0,0 +1,73 @@ +package com.demcha.compose.document.templates.receipt.presets; + +import com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec; +import com.demcha.compose.document.templates.data.receipt.ReceiptStatus; + +/** + * Shared fixture data for the receipt gates — the SAME spec feeds the pixel gate and the + * exact layout snapshot, so a geometry shift the 50k pixel budget absorbs still trips the + * snapshot, and a colour change the snapshot cannot see still trips the pixels. + * + *

      Kept in the test tree and built only from main code, so the gates depend on the + * templates module and not on the examples module.

      + */ +final class ReceiptFixtures { + + private ReceiptFixtures() { + } + + /** + * Canonical sample receipt — exercises the masthead, the hero with its status chip and + * summary fields, both party sides, two detail groups, the status trail, the notes + * block, and the footer with its QR code. + * + * @return the canonical receipt spec shared by every receipt gate + */ + static ReceiptDocumentSpec canonicalReceipt() { + return ReceiptDocumentSpec.of(receipt -> receipt + .documentTitle("Transfer confirmation") + .issuerName("Northwind Pay") + .generatedOn("09 August 2026") + .reference("NWP-4821-0067") + .amount("Amount collected", "£66.62") + .amountCaption("Direct Debit collected by Harbour Finance Ltd") + .status(ReceiptStatus.settled("Completed")) + .summaryField("Value date", "07 Jul 2026") + .summaryField("Operation date", "07 Jul 2026") + .summaryField("Scheme", "Bacs Direct Debit") + .payer("Paid from", party -> party + .name("Alex Sample") + .addressLines("12 Example Way", "Brentford TW0 0AA", "United Kingdom") + .field("Account", "•••• 4396") + .field("Sort code", "00-00-00")) + .beneficiary("Paid to", party -> party + .name("Harbour Finance Ltd") + .addressLines("1 Sample Quay", "Manchester M0 0AA") + .field("Account", "•••• 5604") + .field("Sort code", "00-00-11")) + .detailGroup("Transfer details", group -> group + .field("Mandate reference", "MND-0110-8054-5652") + .field("Transaction ID", "b71f0c2e-9a44-4f18-bd30-51c7a2e9d840") + .field("Payment scheme", "Bacs Direct Debit") + .field("Statement description", "HARBOUR FIN 4821")) + .detailGroup("Amount breakdown", group -> group + .field("Amount", "£66.62") + .field("Transfer fee", "£0.00") + .field("Exchange rate", "1.00 GBP / GBP") + .emphasized("Total debited", "£66.62")) + .event("Instructed", "07 Jul 2026, 08:12 BST", + "Collection request submitted to the scheme.") + .event("In clearing", "08 Jul 2026, 09:00 BST", + "Three-working-day Bacs cycle.") + .event("Settled", "09 Jul 2026, 06:30 BST", + "Funds debited and confirmed by the receiving bank.") + .note("Keep this confirmation for your records. It is not a tax invoice.") + .verification("https://example.com/verify/NWP-4821-0067", + "Scan to check this confirmation against the issuing records.") + .supportLine("Support +44 20 0000 0000") + .supportLine("help@northwind-pay.example") + .legalNote("Northwind Pay is a fictional institution used in GraphCompose " + + "examples; every name, account, and reference on this page is " + + "invented.")); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptVisualParityTest.java index 296442178..ffbec969a 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptVisualParityTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ReceiptVisualParityTest.java @@ -7,7 +7,6 @@ import com.demcha.compose.document.templates.api.DocumentTemplate; import com.demcha.compose.document.templates.core.theme.BrandTheme; import com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec; -import com.demcha.compose.document.templates.data.receipt.ReceiptStatus; import com.demcha.compose.testing.visual.PdfVisualRegression; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -55,7 +54,7 @@ void rendersWithinPixelDiffBudget(String slug, .pageSize(DocumentPageSize.A4) .margin(m, m, m, m) .create()) { - template.compose(document, canonicalReceipt()); + template.compose(document, ReceiptFixtures.canonicalReceipt()); pdfBytes = document.toPdfBytes(); } @@ -85,57 +84,4 @@ private static DocumentTemplate brandedModernReceipt() { ModernReceipt.Options.branded(null, DocumentColor.rgb(23, 92, 211))); } - /** - * Canonical sample receipt — exercises the masthead, the hero with its - * status chip and summary fields, both party sides, two detail groups, - * the status trail, the notes block, and the footer with its QR code. - * Kept inline so the test depends only on main code. - */ - private static ReceiptDocumentSpec canonicalReceipt() { - return ReceiptDocumentSpec.of(receipt -> receipt - .documentTitle("Transfer confirmation") - .issuerName("Northwind Pay") - .generatedOn("09 August 2026") - .reference("NWP-4821-0067") - .amount("Amount collected", "£66.62") - .amountCaption("Direct Debit collected by Harbour Finance Ltd") - .status(ReceiptStatus.settled("Completed")) - .summaryField("Value date", "07 Jul 2026") - .summaryField("Operation date", "07 Jul 2026") - .summaryField("Scheme", "Bacs Direct Debit") - .payer("Paid from", party -> party - .name("Alex Sample") - .addressLines("12 Example Way", "Brentford TW0 0AA", "United Kingdom") - .field("Account", "•••• 4396") - .field("Sort code", "00-00-00")) - .beneficiary("Paid to", party -> party - .name("Harbour Finance Ltd") - .addressLines("1 Sample Quay", "Manchester M0 0AA") - .field("Account", "•••• 5604") - .field("Sort code", "00-00-11")) - .detailGroup("Transfer details", group -> group - .field("Mandate reference", "MND-0110-8054-5652") - .field("Transaction ID", "b71f0c2e-9a44-4f18-bd30-51c7a2e9d840") - .field("Payment scheme", "Bacs Direct Debit") - .field("Statement description", "HARBOUR FIN 4821")) - .detailGroup("Amount breakdown", group -> group - .field("Amount", "£66.62") - .field("Transfer fee", "£0.00") - .field("Exchange rate", "1.00 GBP / GBP") - .emphasized("Total debited", "£66.62")) - .event("Instructed", "07 Jul 2026, 08:12 BST", - "Collection request submitted to the scheme.") - .event("In clearing", "08 Jul 2026, 09:00 BST", - "Three-working-day Bacs cycle.") - .event("Settled", "09 Jul 2026, 06:30 BST", - "Funds debited and confirmed by the receiving bank.") - .note("Keep this confirmation for your records. It is not a tax invoice.") - .verification("https://example.com/verify/NWP-4821-0067", - "Scan to check this confirmation against the issuing records.") - .supportLine("Support +44 20 0000 0000") - .supportLine("help@northwind-pay.example") - .legalNote("Northwind Pay is a fictional institution used in GraphCompose " - + "examples; every name, account, and reference on this page is " - + "invented.")); - } } diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/receipt/modern_receipt_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/receipt/modern_receipt_layout.json new file mode 100644 index 000000000..073787e6a --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/receipt/modern_receipt_layout.json @@ -0,0 +1,3917 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 527.276, + "innerHeight" : 773.89, + "margin" : { + "top" : 34.0, + "right" : 34.0, + "bottom" : 34.0, + "left" : 34.0 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "ReceiptModernRoot[0]", + "entityName" : "ReceiptModernRoot", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 34.0, + "computedY" : 34.5, + "placementX" : 34.0, + "placementY" : 34.5, + "placementWidth" : 527.276, + "placementHeight" : 773.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 773.39, + "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" : "ReceiptModernRoot[0]/ReceiptMasthead[0]", + "entityName" : "ReceiptMasthead", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 34.0, + "computedY" : 763.66, + "placementX" : 34.0, + "placementY" : 763.66, + "placementWidth" : 527.276, + "placementHeight" : 44.23, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 44.23, + "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" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]", + "entityName" : "ReceiptMastheadRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptMasthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 774.66, + "placementX" : 34.0, + "placementY" : 774.66, + "placementWidth" : 527.276, + "placementHeight" : 33.23, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 33.23, + "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" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]/ReceiptIssuer[0]", + "entityName" : "ReceiptIssuer", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 784.8, + "placementX" : 34.0, + "placementY" : 784.8, + "placementWidth" : 166.474, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.474, + "contentHeight" : 12.95, + "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" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]/ReceiptIssuer[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]/ReceiptIssuer[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 784.8, + "placementX" : 34.0, + "placementY" : 784.8, + "placementWidth" : 166.474, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.474, + "contentHeight" : 12.95, + "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" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]/ReceiptDocumentTitle[1]", + "entityName" : "ReceiptDocumentTitle", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 306.638, + "computedY" : 774.66, + "placementX" : 306.638, + "placementY" : 774.66, + "placementWidth" : 254.638, + "placementHeight" : 33.23, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 254.638, + "contentHeight" : 33.23, + "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" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]/ReceiptDocumentTitle[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]/ReceiptDocumentTitle[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 306.638, + "computedY" : 794.94, + "placementX" : 306.638, + "placementY" : 794.94, + "placementWidth" : 254.638, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 254.638, + "contentHeight" : 12.95, + "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" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]/ReceiptDocumentTitle[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]/ReceiptDocumentTitle[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 306.638, + "computedY" : 784.8, + "placementX" : 306.638, + "placementY" : 784.8, + "placementWidth" : 254.638, + "placementHeight" : 8.14, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 254.638, + "contentHeight" : 8.14, + "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" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]/ReceiptDocumentTitle[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/ReceiptMastheadRow[0]/ReceiptDocumentTitle[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 306.638, + "computedY" : 774.66, + "placementX" : 306.638, + "placementY" : 774.66, + "placementWidth" : 254.638, + "placementHeight" : 8.14, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 254.638, + "contentHeight" : 8.14, + "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" : "ReceiptModernRoot[0]/ReceiptMasthead[0]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptMasthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 763.66, + "placementX" : 34.0, + "placementY" : 763.66, + "placementWidth" : 527.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 10.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptHero[1]", + "entityName" : "ReceiptHero", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 34.0, + "computedY" : 665.51, + "placementX" : 34.0, + "placementY" : 665.51, + "placementWidth" : 527.276, + "placementHeight" : 82.15, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 82.15, + "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" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]", + "entityName" : "ReceiptAmountHero", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 665.51, + "placementX" : 34.0, + "placementY" : 665.51, + "placementWidth" : 527.276, + "placementHeight" : 82.15, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 82.15, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 16.0, + "right" : 16.0, + "bottom" : 16.0, + "left" : 16.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]", + "entityName" : "ReceiptAmountRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 50.0, + "computedY" : 681.51, + "placementX" : 50.0, + "placementY" : 681.51, + "placementWidth" : 495.276, + "placementHeight" : 50.15, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 495.276, + "contentHeight" : 50.15, + "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" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptAmountColumn[0]", + "entityName" : "ReceiptAmountColumn", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 50.0, + "computedY" : 682.37, + "placementX" : 50.0, + "placementY" : 682.37, + "placementWidth" : 177.531, + "placementHeight" : 49.29, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 177.531, + "contentHeight" : 49.29, + "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" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptAmountColumn[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptAmountColumn[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 50.0, + "computedY" : 724.26, + "placementX" : 50.0, + "placementY" : 724.26, + "placementWidth" : 118.256, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.256, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptAmountColumn[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptAmountColumn[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 50.0, + "computedY" : 693.51, + "placementX" : 50.0, + "placementY" : 693.51, + "placementWidth" : 91.74, + "placementHeight" : 27.75, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.74, + "contentHeight" : 27.75, + "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" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptAmountColumn[0]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptAmountColumn[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 50.0, + "computedY" : 682.37, + "placementX" : 50.0, + "placementY" : 682.37, + "placementWidth" : 177.531, + "placementHeight" : 8.14, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 177.531, + "contentHeight" : 8.14, + "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" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptStatusColumn[1]", + "entityName" : "ReceiptStatusColumn", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 343.031, + "computedY" : 681.51, + "placementX" : 343.031, + "placementY" : 681.51, + "placementWidth" : 202.245, + "placementHeight" : 50.15, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 202.245, + "contentHeight" : 50.15, + "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" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptStatusColumn[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptStatusColumn[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 343.031, + "computedY" : 724.26, + "placementX" : 343.031, + "placementY" : 724.26, + "placementWidth" : 202.245, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 202.245, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptStatusColumn[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptStatusColumn[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 343.031, + "computedY" : 710.01, + "placementX" : 343.031, + "placementY" : 710.01, + "placementWidth" : 202.245, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 202.245, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptStatusColumn[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptStatusColumn[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 343.031, + "computedY" : 695.76, + "placementX" : 343.031, + "placementY" : 695.76, + "placementWidth" : 202.245, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 202.245, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptStatusColumn[1]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptHero[1]/ReceiptAmountHero[0]/ReceiptAmountRow[0]/ReceiptStatusColumn[1]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 343.031, + "computedY" : 681.51, + "placementX" : 343.031, + "placementY" : 681.51, + "placementWidth" : 202.245, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 202.245, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]", + "entityName" : "ReceiptParties", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 34.0, + "computedY" : 535.61, + "placementX" : 34.0, + "placementY" : 535.61, + "placementWidth" : 527.276, + "placementHeight" : 113.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 113.9, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]", + "entityName" : "ReceiptPartyPanel", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 535.61, + "placementX" : 34.0, + "placementY" : 535.61, + "placementWidth" : 527.276, + "placementHeight" : 113.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 113.9, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 16.0, + "right" : 16.0, + "bottom" : 16.0, + "left" : 16.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]", + "entityName" : "ReceiptPartyRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 50.0, + "computedY" : 551.61, + "placementX" : 50.0, + "placementY" : 551.61, + "placementWidth" : 495.276, + "placementHeight" : 81.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 495.276, + "contentHeight" : 81.9, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]", + "entityName" : "ReceiptPayer", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 50.0, + "computedY" : 551.61, + "placementX" : 50.0, + "placementY" : 551.61, + "placementWidth" : 88.38, + "placementHeight" : 81.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.38, + "contentHeight" : 81.9, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 50.0, + "computedY" : 626.11, + "placementX" : 50.0, + "placementY" : 626.11, + "placementWidth" : 62.24, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.24, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 50.0, + "computedY" : 612.23, + "placementX" : 50.0, + "placementY" : 612.23, + "placementWidth" : 57.091, + "placementHeight" : 8.88, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.091, + "contentHeight" : 8.88, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 50.0, + "computedY" : 580.11, + "placementX" : 50.0, + "placementY" : 580.11, + "placementWidth" : 76.296, + "placementHeight" : 27.12, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.296, + "contentHeight" : 27.12, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 50.0, + "computedY" : 565.86, + "placementX" : 50.0, + "placementY" : 565.86, + "placementWidth" : 80.71, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.71, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]/ParagraphNode[4]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptPayer[0]", + "childIndex" : 4, + "depth" : 6, + "layer" : 6, + "computedX" : 50.0, + "computedY" : 551.61, + "placementX" : 50.0, + "placementY" : 551.61, + "placementWidth" : 88.38, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.38, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptDirection[1]", + "entityName" : "ReceiptDirection", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 284.187, + "computedY" : 586.085, + "placementX" : 284.187, + "placementY" : 586.085, + "placementWidth" : 26.902, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.902, + "contentHeight" : 12.95, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptDirection[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptDirection[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 284.187, + "computedY" : 586.085, + "placementX" : 284.187, + "placementY" : 586.085, + "placementWidth" : 26.902, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.902, + "contentHeight" : 12.95, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]", + "entityName" : "ReceiptBeneficiary", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 321.089, + "computedY" : 556.355, + "placementX" : 321.089, + "placementY" : 556.355, + "placementWidth" : 93.878, + "placementHeight" : 72.41, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 93.878, + "contentHeight" : 72.41, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 321.089, + "computedY" : 621.365, + "placementX" : 321.089, + "placementY" : 621.365, + "placementWidth" : 45.352, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.352, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 321.089, + "computedY" : 607.485, + "placementX" : 321.089, + "placementY" : 607.485, + "placementWidth" : 93.878, + "placementHeight" : 8.88, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 93.878, + "contentHeight" : 8.88, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 321.089, + "computedY" : 584.855, + "placementX" : 321.089, + "placementY" : 584.855, + "placementWidth" : 79.719, + "placementHeight" : 17.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 79.719, + "contentHeight" : 17.63, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 321.089, + "computedY" : 570.605, + "placementX" : 321.089, + "placementY" : 570.605, + "placementWidth" : 80.71, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.71, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]/ParagraphNode[4]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptParties[2]/ReceiptPartyPanel[0]/ReceiptPartyRow[0]/ReceiptBeneficiary[2]", + "childIndex" : 4, + "depth" : 6, + "layer" : 6, + "computedX" : 321.089, + "computedY" : 556.355, + "placementX" : 321.089, + "placementY" : 556.355, + "placementWidth" : 88.38, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.38, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[3]", + "entityName" : "ReceiptDetails", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 34.0, + "computedY" : 452.21, + "placementX" : 34.0, + "placementY" : 452.21, + "placementWidth" : 527.276, + "placementHeight" : 67.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 67.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" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]", + "entityName" : "ReceiptDetailGroup", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 452.21, + "placementX" : 34.0, + "placementY" : 452.21, + "placementWidth" : 527.276, + "placementHeight" : 67.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 67.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" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 512.21, + "placementX" : 34.0, + "placementY" : 512.21, + "placementWidth" : 113.36, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 113.36, + "contentHeight" : 7.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]", + "entityName" : "ReceiptFieldRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 491.96, + "placementX" : 34.0, + "placementY" : 491.96, + "placementWidth" : 527.276, + "placementHeight" : 13.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 13.25, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 495.96, + "placementX" : 34.0, + "placementY" : 495.96, + "placementWidth" : 83.93, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.93, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 123.93, + "computedY" : 497.96, + "placementX" : 123.93, + "placementY" : 497.96, + "placementWidth" : 331.866, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 331.866, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 461.796, + "computedY" : 495.96, + "placementX" : 461.796, + "placementY" : 495.96, + "placementWidth" : 99.48, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.48, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]", + "entityName" : "ReceiptFieldRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 478.71, + "placementX" : 34.0, + "placementY" : 478.71, + "placementWidth" : 527.276, + "placementHeight" : 13.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 13.25, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 482.71, + "placementX" : 34.0, + "placementY" : 482.71, + "placementWidth" : 65.02, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 65.02, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 105.02, + "computedY" : 484.71, + "placementX" : 105.02, + "placementY" : 484.71, + "placementWidth" : 265.696, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 265.696, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 376.716, + "computedY" : 482.71, + "placementX" : 376.716, + "placementY" : 482.71, + "placementWidth" : 184.56, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 184.56, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]", + "entityName" : "ReceiptFieldRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 465.46, + "placementX" : 34.0, + "placementY" : 465.46, + "placementWidth" : 527.276, + "placementHeight" : 13.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 13.25, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 469.46, + "placementX" : 34.0, + "placementY" : 469.46, + "placementWidth" : 77.25, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.25, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 117.25, + "computedY" : 471.46, + "placementX" : 117.25, + "placementY" : 471.46, + "placementWidth" : 360.786, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 360.786, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 484.036, + "computedY" : 469.46, + "placementX" : 484.036, + "placementY" : 469.46, + "placementWidth" : 77.24, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.24, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]", + "entityName" : "ReceiptFieldRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 452.21, + "placementX" : 34.0, + "placementY" : 452.21, + "placementWidth" : 527.276, + "placementHeight" : 13.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 13.25, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 456.21, + "placementX" : 34.0, + "placementY" : 456.21, + "placementWidth" : 96.71, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.71, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 136.71, + "computedY" : 458.21, + "placementX" : 136.71, + "placementY" : 458.21, + "placementWidth" : 324.656, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 324.656, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[3]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 467.366, + "computedY" : 456.21, + "placementX" : 467.366, + "placementY" : 456.21, + "placementWidth" : 93.91, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 93.91, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[4]", + "entityName" : "ReceiptDetails", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 34.0, + "computedY" : 368.81, + "placementX" : 34.0, + "placementY" : 368.81, + "placementWidth" : 527.276, + "placementHeight" : 67.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 67.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" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]", + "entityName" : "ReceiptDetailGroup", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 368.81, + "placementX" : 34.0, + "placementY" : 368.81, + "placementWidth" : 527.276, + "placementHeight" : 67.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 67.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" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 428.81, + "placementX" : 34.0, + "placementY" : 428.81, + "placementWidth" : 124.456, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 124.456, + "contentHeight" : 7.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]", + "entityName" : "ReceiptFieldRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 408.56, + "placementX" : 34.0, + "placementY" : 408.56, + "placementWidth" : 527.276, + "placementHeight" : 13.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 13.25, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 412.56, + "placementX" : 34.0, + "placementY" : 412.56, + "placementWidth" : 34.46, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.46, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 74.46, + "computedY" : 414.56, + "placementX" : 74.46, + "placementY" : 414.56, + "placementWidth" : 450.236, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 450.236, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 530.696, + "computedY" : 412.56, + "placementX" : 530.696, + "placementY" : 412.56, + "placementWidth" : 30.58, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.58, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]", + "entityName" : "ReceiptFieldRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 395.31, + "placementX" : 34.0, + "placementY" : 395.31, + "placementWidth" : 527.276, + "placementHeight" : 13.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 13.25, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 399.31, + "placementX" : 34.0, + "placementY" : 399.31, + "placementWidth" : 53.91, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 53.91, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 93.91, + "computedY" : 401.31, + "placementX" : 93.91, + "placementY" : 401.31, + "placementWidth" : 436.346, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 436.346, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 536.256, + "computedY" : 399.31, + "placementX" : 536.256, + "placementY" : 399.31, + "placementWidth" : 25.02, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.02, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]", + "entityName" : "ReceiptFieldRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 382.06, + "placementX" : 34.0, + "placementY" : 382.06, + "placementWidth" : 527.276, + "placementHeight" : 13.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 13.25, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 386.06, + "placementX" : 34.0, + "placementY" : 386.06, + "placementWidth" : 64.48, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.48, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 104.48, + "computedY" : 388.06, + "placementX" : 104.48, + "placementY" : 388.06, + "placementWidth" : 377.976, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 377.976, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[3]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 488.456, + "computedY" : 386.06, + "placementX" : 488.456, + "placementY" : 386.06, + "placementWidth" : 72.82, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.82, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]", + "entityName" : "ReceiptFieldRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 368.81, + "placementX" : 34.0, + "placementY" : 368.81, + "placementWidth" : 527.276, + "placementHeight" : 13.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 13.25, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 372.81, + "placementX" : 34.0, + "placementY" : 372.81, + "placementWidth" : 57.81, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.81, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 97.81, + "computedY" : 374.81, + "placementX" : 97.81, + "placementY" : 374.81, + "placementWidth" : 426.886, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 426.886, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptDetails[4]/ReceiptDetailGroup[0]/ReceiptFieldRow[4]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 530.696, + "computedY" : 372.81, + "placementX" : 530.696, + "placementY" : 372.81, + "placementWidth" : 30.58, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.58, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]", + "entityName" : "ReceiptTrail", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 34.0, + "computedY" : 267.24, + "placementX" : 34.0, + "placementY" : 267.24, + "placementWidth" : 527.276, + "placementHeight" : 85.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 85.57, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]", + "entityName" : "ReceiptStatusTrail", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 267.24, + "placementX" : 34.0, + "placementY" : 267.24, + "placementWidth" : 527.276, + "placementHeight" : 85.57, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 85.57, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 345.41, + "placementX" : 34.0, + "placementY" : 345.41, + "placementWidth" : 120.04, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 120.04, + "contentHeight" : 7.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 267.24, + "placementX" : 34.0, + "placementY" : 267.24, + "placementWidth" : 527.276, + "placementHeight" : 70.17, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 70.17, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 312.02, + "placementX" : 34.0, + "placementY" : 312.02, + "placementWidth" : 527.276, + "placementHeight" : 25.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 25.39, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 34.0, + "computedY" : 312.02, + "placementX" : 34.0, + "placementY" : 312.02, + "placementWidth" : 527.276, + "placementHeight" : 25.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 25.39, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 6.0, + "left" : 12.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 46.0, + "computedY" : 318.02, + "placementX" : 46.0, + "placementY" : 318.02, + "placementWidth" : 515.276, + "placementHeight" : 19.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 515.276, + "contentHeight" : 19.39, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 46.0, + "computedY" : 330.41, + "placementX" : 46.0, + "placementY" : 330.41, + "placementWidth" : 10.941, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.941, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 46.0, + "computedY" : 330.41, + "placementX" : 46.0, + "placementY" : 330.41, + "placementWidth" : 10.941, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.941, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 46.0, + "computedY" : 330.41, + "placementX" : 46.0, + "placementY" : 330.41, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 46.0, + "computedY" : 330.41, + "placementX" : 46.0, + "placementY" : 330.41, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 46.0, + "computedY" : 330.41, + "placementX" : 46.0, + "placementY" : 330.41, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EllipseNode[0]", + "entityName" : null, + "entityKind" : "EllipseNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 46.0, + "computedY" : 330.41, + "placementX" : 46.0, + "placementY" : 330.41, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 63.941, + "computedY" : 318.02, + "placementX" : 63.941, + "placementY" : 318.02, + "placementWidth" : 275.387, + "placementHeight" : 19.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 275.387, + "contentHeight" : 19.39, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 63.941, + "computedY" : 328.16, + "placementX" : 63.941, + "placementY" : 328.16, + "placementWidth" : 48.34, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.34, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 63.941, + "computedY" : 318.02, + "placementX" : 63.941, + "placementY" : 318.02, + "placementWidth" : 275.387, + "placementHeight" : 8.14, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 275.387, + "contentHeight" : 8.14, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 286.63, + "placementX" : 34.0, + "placementY" : 286.63, + "placementWidth" : 527.276, + "placementHeight" : 25.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 25.39, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 34.0, + "computedY" : 286.63, + "placementX" : 34.0, + "placementY" : 286.63, + "placementWidth" : 527.276, + "placementHeight" : 25.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 25.39, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 6.0, + "left" : 12.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 46.0, + "computedY" : 292.63, + "placementX" : 46.0, + "placementY" : 292.63, + "placementWidth" : 515.276, + "placementHeight" : 19.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 515.276, + "contentHeight" : 19.39, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 46.0, + "computedY" : 305.02, + "placementX" : 46.0, + "placementY" : 305.02, + "placementWidth" : 10.941, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.941, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 46.0, + "computedY" : 305.02, + "placementX" : 46.0, + "placementY" : 305.02, + "placementWidth" : 10.941, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.941, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 46.0, + "computedY" : 305.02, + "placementX" : 46.0, + "placementY" : 305.02, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 46.0, + "computedY" : 305.02, + "placementX" : 46.0, + "placementY" : 305.02, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 46.0, + "computedY" : 305.02, + "placementX" : 46.0, + "placementY" : 305.02, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EllipseNode[0]", + "entityName" : null, + "entityKind" : "EllipseNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 46.0, + "computedY" : 305.02, + "placementX" : 46.0, + "placementY" : 305.02, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 63.941, + "computedY" : 292.63, + "placementX" : 63.941, + "placementY" : 292.63, + "placementWidth" : 224.497, + "placementHeight" : 19.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.497, + "contentHeight" : 19.39, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 63.941, + "computedY" : 302.77, + "placementX" : 63.941, + "placementY" : 302.77, + "placementWidth" : 50.02, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.02, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 63.941, + "computedY" : 292.63, + "placementX" : 63.941, + "placementY" : 292.63, + "placementWidth" : 224.497, + "placementHeight" : 8.14, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.497, + "contentHeight" : 8.14, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 267.24, + "placementX" : 34.0, + "placementY" : 267.24, + "placementWidth" : 527.276, + "placementHeight" : 19.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 19.39, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 34.0, + "computedY" : 267.24, + "placementX" : 34.0, + "placementY" : 267.24, + "placementWidth" : 527.276, + "placementHeight" : 19.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 19.39, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 12.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 46.0, + "computedY" : 267.24, + "placementX" : 46.0, + "placementY" : 267.24, + "placementWidth" : 515.276, + "placementHeight" : 19.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 515.276, + "contentHeight" : 19.39, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 46.0, + "computedY" : 279.63, + "placementX" : 46.0, + "placementY" : 279.63, + "placementWidth" : 10.941, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.941, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 46.0, + "computedY" : 279.63, + "placementX" : 46.0, + "placementY" : 279.63, + "placementWidth" : 10.941, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.941, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 46.0, + "computedY" : 279.63, + "placementX" : 46.0, + "placementY" : 279.63, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 46.0, + "computedY" : 279.63, + "placementX" : 46.0, + "placementY" : 279.63, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 46.0, + "computedY" : 279.63, + "placementX" : 46.0, + "placementY" : 279.63, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EllipseNode[0]", + "entityName" : null, + "entityKind" : "EllipseNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 46.0, + "computedY" : 279.63, + "placementX" : 46.0, + "placementY" : 279.63, + "placementWidth" : 7.0, + "placementHeight" : 7.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.0, + "contentHeight" : 7.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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 63.941, + "computedY" : 267.24, + "placementX" : 63.941, + "placementY" : 267.24, + "placementWidth" : 306.214, + "placementHeight" : 19.39, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 306.214, + "contentHeight" : 19.39, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 63.941, + "computedY" : 277.38, + "placementX" : 63.941, + "placementY" : 277.38, + "placementWidth" : 33.34, + "placementHeight" : 9.25, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.34, + "contentHeight" : 9.25, + "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" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptTrail[5]/ReceiptStatusTrail[0]/SectionNode[1]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 63.941, + "computedY" : 267.24, + "placementX" : 63.941, + "placementY" : 267.24, + "placementWidth" : 306.214, + "placementHeight" : 8.14, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 306.214, + "contentHeight" : 8.14, + "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" : "ReceiptModernRoot[0]/ReceiptNotes[6]", + "entityName" : "ReceiptNotes", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 34.0, + "computedY" : 223.96, + "placementX" : 34.0, + "placementY" : 223.96, + "placementWidth" : 259.843, + "placementHeight" : 27.28, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.843, + "contentHeight" : 27.28, + "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" : "ReceiptModernRoot[0]/ReceiptNotes[6]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptNotes[6]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 243.84, + "placementX" : 34.0, + "placementY" : 243.84, + "placementWidth" : 36.456, + "placementHeight" : 7.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.456, + "contentHeight" : 7.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 6.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptNotes[6]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptNotes[6]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 223.96, + "placementX" : 34.0, + "placementY" : 223.96, + "placementWidth" : 259.843, + "placementHeight" : 8.88, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.843, + "contentHeight" : 8.88, + "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" : "ReceiptModernRoot[0]/ReceiptFooterPin[7]", + "entityName" : "ReceiptFooterPin", + "entityKind" : "SpacerNode", + "parentPath" : "ReceiptModernRoot[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 34.0, + "computedY" : 115.5, + "placementX" : 34.0, + "placementY" : 115.5, + "placementWidth" : 0.0, + "placementHeight" : 92.46, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 92.46, + "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" : "ReceiptModernRoot[0]/ReceiptFooter[8]", + "entityName" : "ReceiptFooter", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]", + "childIndex" : 8, + "depth" : 2, + "layer" : 2, + "computedX" : 34.0, + "computedY" : 34.5, + "placementX" : 34.0, + "placementY" : 34.5, + "placementWidth" : 527.276, + "placementHeight" : 65.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 65.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" : "ReceiptModernRoot[0]/ReceiptFooter[8]/LineNode[0]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptFooter[8]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 92.5, + "placementX" : 34.0, + "placementY" : 92.5, + "placementWidth" : 527.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 6.0, + "right" : 0.0, + "bottom" : 6.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]", + "entityName" : "ReceiptFooterRow", + "entityKind" : "RowNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptFooter[8]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 34.0, + "computedY" : 34.5, + "placementX" : 34.0, + "placementY" : 34.5, + "placementWidth" : 527.276, + "placementHeight" : 52.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 527.276, + "contentHeight" : 52.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" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]/ReceiptVerificationCode[0]", + "entityName" : "ReceiptVerificationCode", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 34.0, + "computedY" : 34.5, + "placementX" : 34.0, + "placementY" : 34.5, + "placementWidth" : 52.0, + "placementHeight" : 52.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.0, + "contentHeight" : 52.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" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]/ReceiptVerificationCode[0]/BarcodeNode[0]", + "entityName" : null, + "entityKind" : "BarcodeNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]/ReceiptVerificationCode[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 34.0, + "computedY" : 34.5, + "placementX" : 34.0, + "placementY" : 34.5, + "placementWidth" : 52.0, + "placementHeight" : 52.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.0, + "contentHeight" : 52.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" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]/ReceiptFooterText[1]", + "entityName" : "ReceiptFooterText", + "entityKind" : "SectionNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 118.797, + "computedY" : 36.06, + "placementX" : 118.797, + "placementY" : 36.06, + "placementWidth" : 441.528, + "placementHeight" : 50.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 441.528, + "contentHeight" : 50.44, + "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" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]/ReceiptFooterText[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]/ReceiptFooterText[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 118.797, + "computedY" : 78.36, + "placementX" : 118.797, + "placementY" : 78.36, + "placementWidth" : 231.343, + "placementHeight" : 8.14, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 231.343, + "contentHeight" : 8.14, + "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" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]/ReceiptFooterText[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]/ReceiptFooterText[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 118.797, + "computedY" : 57.21, + "placementX" : 118.797, + "placementY" : 57.21, + "placementWidth" : 105.936, + "placementHeight" : 16.15, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.936, + "contentHeight" : 16.15, + "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" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]/ReceiptFooterText[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ReceiptModernRoot[0]/ReceiptFooter[8]/ReceiptFooterRow[1]/ReceiptFooterText[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 118.797, + "computedY" : 36.06, + "placementX" : 118.797, + "placementY" : 36.06, + "placementWidth" : 441.528, + "placementHeight" : 16.15, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 441.528, + "contentHeight" : 16.15, + "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 + } + } ] +} From 81c8134bda8112188964dfca68875f600d6c3294 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 09:44:28 +0100 Subject: [PATCH 52/85] refactor(templates): put Midnight Navy's roles on a real timeline The roles were a timeline built out of parts: a left accent per entry standing in for the rail, and the marker positioned into a layer stack by walking back across the gutter and half its own width. The class javadoc gave two reasons a timeline could not hold them - no slot for a date on the far side of the rail, and a marker that cannot centre on it. markerOnRail and leadingColumn have since made both false, and this preset never needed the second: its date sits in the header row, not beside the rail. addTimeline carries it now. ENTRY_BOUNDS spans the entries own boxes, so consecutive segments meet and nothing trails past the last marker - what the per-entry accents did. The axis column centres the rail, so the timeline starts half an axis to the left and the rail lands back on the column edge the heading rule shares. The marker keeps its drop by declaring a box px(3.1) taller than the disc: a declared box is what the timeline reserves and derives the rail from, so the offset rides inside the marker instead of being positioned against the header. Geometry is unchanged. 237 of the 240 nodes keep their name, kind, x, y, width, height and page ownership; the three that go are the ExperienceEntry sections that carried the accent. Content columns stay at x=230.429 w=323.053, markers at x=212.639 y=634.019/464.368/321.488, one page, and the rail moves 0.0005pt - the marker centre against the old section edge. The pixel gate passes against the baseline it already had, so no PNG was re-approved. The timeline is wrapped in a layer because a row nested in a row cell is refused and both columns of this sheet are row cells - the wrapper every other horizontal pair in this preset already goes through. --- .../cv-v2/midnight_navy_layout.json | 1772 +++++++++++++---- .../cv/presets/MidnightNavyMain.java | 196 +- 2 files changed, 1446 insertions(+), 522 deletions(-) diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/midnight_navy_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/midnight_navy_layout.json index 42166acb3..859b69735 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/midnight_navy_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/midnight_navy_layout.json @@ -4574,23 +4574,23 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]", - "entityName" : "ExperienceEntry", - "entityKind" : "SectionNode", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]", + "entityName" : "ExperienceRail", + "entityKind" : "LayerStackNode", "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]", "childIndex" : 2, "depth" : 5, "layer" : 5, "computedX" : 215.18, - "computedY" : 471.202, + "computedY" : 238.191, "placementX" : 215.18, - "placementY" : 471.202, + "placementY" : 238.191, "placementWidth" : 338.302, - "placementHeight" : 169.651, + "placementHeight" : 402.662, "startPage" : 0, "endPage" : 0, "contentWidth" : 338.302, - "contentHeight" : 169.651, + "contentHeight" : 402.662, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4600,21 +4600,1071 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 25.98, - "left" : 15.249 + "bottom" : 0.0, + "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]", - "entityName" : "EntryHeaderLayer", - "entityKind" : "LayerStackNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]", + "entityName" : "ExperienceRailHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]", "childIndex" : 0, "depth" : 6, "layer" : 6, + "computedX" : 212.639, + "computedY" : 238.191, + "placementX" : 212.639, + "placementY" : 238.191, + "placementWidth" : 340.843, + "placementHeight" : 402.662, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.843, + "contentHeight" : 402.662, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : -2.541 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 212.639, + "computedY" : 238.191, + "placementX" : 212.639, + "placementY" : 238.191, + "placementWidth" : 340.843, + "placementHeight" : 402.662, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.843, + "contentHeight" : 402.662, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 212.639, + "computedY" : 471.202, + "placementX" : 212.639, + "placementY" : 471.202, + "placementWidth" : 340.843, + "placementHeight" : 169.651, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.843, + "contentHeight" : 169.651, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 212.639, + "computedY" : 471.202, + "placementX" : 212.639, + "placementY" : 471.202, + "placementWidth" : 340.843, + "placementHeight" : 169.651, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.843, + "contentHeight" : 169.651, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 25.98, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 212.639, + "computedY" : 497.182, + "placementX" : 212.639, + "placementY" : 497.182, + "placementWidth" : 340.843, + "placementHeight" : 143.671, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.843, + "contentHeight" : 143.671, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 212.639, + "computedY" : 497.182, + "placementX" : 212.639, + "placementY" : 497.182, + "placementWidth" : 340.843, + "placementHeight" : 143.671, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.843, + "contentHeight" : 143.671, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 212.639, + "computedY" : 634.019, + "placementX" : 212.639, + "placementY" : 634.019, + "placementWidth" : 5.083, + "placementHeight" : 6.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 6.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 212.639, + "computedY" : 634.019, + "placementX" : 212.639, + "placementY" : 634.019, + "placementWidth" : 5.083, + "placementHeight" : 6.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 6.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 212.639, + "computedY" : 634.019, + "placementX" : 212.639, + "placementY" : 634.019, + "placementWidth" : 5.083, + "placementHeight" : 6.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 6.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 212.639, + "computedY" : 634.019, + "placementX" : 212.639, + "placementY" : 634.019, + "placementWidth" : 5.083, + "placementHeight" : 6.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 6.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 212.639, + "computedY" : 634.019, + "placementX" : 212.639, + "placementY" : 634.019, + "placementWidth" : 5.083, + "placementHeight" : 6.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 6.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EntryMarker[0]", + "entityName" : "EntryMarker", + "entityKind" : "EllipseNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 212.639, + "computedY" : 634.019, + "placementX" : 212.639, + "placementY" : 634.019, + "placementWidth" : 5.083, + "placementHeight" : 5.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 5.083, + "margin" : { + "top" : 1.751, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 230.429, + "computedY" : 497.182, + "placementX" : 230.429, + "placementY" : 497.182, + "placementWidth" : 323.053, + "placementHeight" : 143.671, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 143.671, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]", + "entityName" : "EntryHeaderLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 230.429, + "computedY" : 629.235, + "placementX" : 230.429, + "placementY" : 629.235, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "entityName" : "EntryHeaderHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 230.429, + "computedY" : 629.235, + "placementX" : 230.429, + "placementY" : 629.235, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "entityName" : "EntryHeader", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 230.429, + "computedY" : 629.235, + "placementX" : 230.429, + "placementY" : 629.235, + "placementWidth" : 323.053, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryTitle[0]", + "entityName" : "EntryTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 230.429, + "computedY" : 629.235, + "placementX" : 230.429, + "placementY" : 629.235, + "placementWidth" : 97.468, + "placementHeight" : 11.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.468, + "contentHeight" : 11.618, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryPeriod[1]", + "entityName" : "EntryPeriod", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "childIndex" : 1, + "depth" : 16, + "layer" : 16, + "computedX" : 430.722, + "computedY" : 630.203, + "placementX" : 430.722, + "placementY" : 630.203, + "placementWidth" : 122.76, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.76, + "contentHeight" : 10.65, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]", + "entityName" : "EntrySubheaderLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 230.429, + "computedY" : 615.535, + "placementX" : 230.429, + "placementY" : 615.535, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "entityName" : "EntrySubheaderHolder", + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 230.429, + "computedY" : 615.535, + "placementX" : 230.429, + "placementY" : 615.535, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "entityName" : "EntrySubheader", + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 230.429, + "computedY" : 615.535, + "placementX" : 230.429, + "placementY" : 615.535, + "placementWidth" : 323.053, + "placementHeight" : 13.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 13.7, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryCompany[0]", + "entityName" : "EntryCompany", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 230.429, + "computedY" : 615.535, + "placementX" : 230.429, + "placementY" : 615.535, + "placementWidth" : 72.43, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.43, + "contentHeight" : 10.65, + "margin" : { + "top" : 3.05, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryLocation[1]", + "entityName" : "EntryLocation", + "entityKind" : "ParagraphNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "childIndex" : 1, + "depth" : 16, + "layer" : 16, + "computedX" : 430.722, + "computedY" : 615.535, + "placementX" : 430.722, + "placementY" : 615.535, + "placementWidth" : 122.76, + "placementHeight" : 10.65, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.76, + "contentHeight" : 10.65, + "margin" : { + "top" : 3.05, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryBullets[2]", + "entityName" : "EntryBullets", + "entityKind" : "ListNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 230.429, + "computedY" : 497.182, + "placementX" : 230.429, + "placementY" : 497.182, + "placementWidth" : 318.296, + "placementHeight" : 104.347, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 318.296, + "contentHeight" : 104.347, + "margin" : { + "top" : 14.006, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 212.639, + "computedY" : 328.321, + "placementX" : 212.639, + "placementY" : 328.321, + "placementWidth" : 340.843, + "placementHeight" : 142.881, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.843, + "contentHeight" : 142.881, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 212.639, + "computedY" : 328.321, + "placementX" : 212.639, + "placementY" : 328.321, + "placementWidth" : 340.843, + "placementHeight" : 142.881, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.843, + "contentHeight" : 142.881, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 25.98, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 212.639, + "computedY" : 354.301, + "placementX" : 212.639, + "placementY" : 354.301, + "placementWidth" : 340.843, + "placementHeight" : 116.901, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.843, + "contentHeight" : 116.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 212.639, + "computedY" : 354.301, + "placementX" : 212.639, + "placementY" : 354.301, + "placementWidth" : 340.843, + "placementHeight" : 116.901, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 340.843, + "contentHeight" : 116.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 212.639, + "computedY" : 464.368, + "placementX" : 212.639, + "placementY" : 464.368, + "placementWidth" : 5.083, + "placementHeight" : 6.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 6.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 212.639, + "computedY" : 464.368, + "placementX" : 212.639, + "placementY" : 464.368, + "placementWidth" : 5.083, + "placementHeight" : 6.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 6.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 212.639, + "computedY" : 464.368, + "placementX" : 212.639, + "placementY" : 464.368, + "placementWidth" : 5.083, + "placementHeight" : 6.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 6.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 212.639, + "computedY" : 464.368, + "placementX" : 212.639, + "placementY" : 464.368, + "placementWidth" : 5.083, + "placementHeight" : 6.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 6.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 212.639, + "computedY" : 464.368, + "placementX" : 212.639, + "placementY" : 464.368, + "placementWidth" : 5.083, + "placementHeight" : 6.834, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 6.834, + "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EntryMarker[0]", + "entityName" : "EntryMarker", + "entityKind" : "EllipseNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 212.639, + "computedY" : 464.368, + "placementX" : 212.639, + "placementY" : 464.368, + "placementWidth" : 5.083, + "placementHeight" : 5.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.083, + "contentHeight" : 5.083, + "margin" : { + "top" : 1.751, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 230.429, + "computedY" : 354.301, + "placementX" : 230.429, + "placementY" : 354.301, + "placementWidth" : 323.053, + "placementHeight" : 116.901, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.053, + "contentHeight" : 116.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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]", + "entityName" : "EntryHeaderLayer", + "entityKind" : "LayerStackNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, "computedX" : 230.429, - "computedY" : 629.235, + "computedY" : 459.584, "placementX" : 230.429, - "placementY" : 629.235, + "placementY" : 459.584, "placementWidth" : 323.053, "placementHeight" : 11.618, "startPage" : 0, @@ -4634,17 +5684,17 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", "entityName" : "EntryHeaderHolder", "entityKind" : "SectionNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, + "depth" : 14, + "layer" : 14, "computedX" : 230.429, - "computedY" : 629.235, + "computedY" : 459.584, "placementX" : 230.429, - "placementY" : 629.235, + "placementY" : 459.584, "placementWidth" : 323.053, "placementHeight" : 11.618, "startPage" : 0, @@ -4664,17 +5714,17 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", "entityName" : "EntryHeader", "entityKind" : "RowNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, + "depth" : 15, + "layer" : 15, "computedX" : 230.429, - "computedY" : 629.235, + "computedY" : 459.584, "placementX" : 230.429, - "placementY" : 629.235, + "placementY" : 459.584, "placementWidth" : 323.053, "placementHeight" : 11.618, "startPage" : 0, @@ -4694,22 +5744,22 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryTitle[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryTitle[0]", "entityName" : "EntryTitle", "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, + "depth" : 16, + "layer" : 16, "computedX" : 230.429, - "computedY" : 629.235, + "computedY" : 459.584, "placementX" : 230.429, - "placementY" : 629.235, - "placementWidth" : 97.468, + "placementY" : 459.584, + "placementWidth" : 139.516, "placementHeight" : 11.618, "startPage" : 0, "endPage" : 0, - "contentWidth" : 97.468, + "contentWidth" : 139.516, "contentHeight" : 11.618, "margin" : { "top" : 0.0, @@ -4724,17 +5774,17 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryPeriod[1]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryPeriod[1]", "entityName" : "EntryPeriod", "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", "childIndex" : 1, - "depth" : 9, - "layer" : 9, + "depth" : 16, + "layer" : 16, "computedX" : 430.722, - "computedY" : 630.203, + "computedY" : 460.552, "placementX" : 430.722, - "placementY" : 630.203, + "placementY" : 460.552, "placementWidth" : 122.76, "placementHeight" : 10.65, "startPage" : 0, @@ -4754,47 +5804,17 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]/EntryMarker[1]", - "entityName" : "EntryMarker", - "entityKind" : "EllipseNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryHeaderLayer[0]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, - "computedX" : 212.639, - "computedY" : 634.019, - "placementX" : 212.639, - "placementY" : 634.019, - "placementWidth" : 5.083, - "placementHeight" : 5.083, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 5.083, - "contentHeight" : 5.083, - "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]", "entityName" : "EntrySubheaderLayer", "entityKind" : "LayerStackNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 1, - "depth" : 6, - "layer" : 6, + "depth" : 13, + "layer" : 13, "computedX" : 230.429, - "computedY" : 615.535, + "computedY" : 445.884, "placementX" : 230.429, - "placementY" : 615.535, + "placementY" : 445.884, "placementWidth" : 323.053, "placementHeight" : 13.7, "startPage" : 0, @@ -4814,17 +5834,17 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", "entityName" : "EntrySubheaderHolder", "entityKind" : "SectionNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, + "depth" : 14, + "layer" : 14, "computedX" : 230.429, - "computedY" : 615.535, + "computedY" : 445.884, "placementX" : 230.429, - "placementY" : 615.535, + "placementY" : 445.884, "placementWidth" : 323.053, "placementHeight" : 13.7, "startPage" : 0, @@ -4844,17 +5864,17 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", "entityName" : "EntrySubheader", "entityKind" : "RowNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, + "depth" : 15, + "layer" : 15, "computedX" : 230.429, - "computedY" : 615.535, + "computedY" : 445.884, "placementX" : 230.429, - "placementY" : 615.535, + "placementY" : 445.884, "placementWidth" : 323.053, "placementHeight" : 13.7, "startPage" : 0, @@ -4874,22 +5894,22 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryCompany[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryCompany[0]", "entityName" : "EntryCompany", "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, + "depth" : 16, + "layer" : 16, "computedX" : 230.429, - "computedY" : 615.535, + "computedY" : 445.884, "placementX" : 230.429, - "placementY" : 615.535, - "placementWidth" : 72.43, + "placementY" : 445.884, + "placementWidth" : 91.307, "placementHeight" : 10.65, "startPage" : 0, "endPage" : 0, - "contentWidth" : 72.43, + "contentWidth" : 91.307, "contentHeight" : 10.65, "margin" : { "top" : 3.05, @@ -4904,17 +5924,17 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryLocation[1]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryLocation[1]", "entityName" : "EntryLocation", "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", "childIndex" : 1, - "depth" : 9, - "layer" : 9, + "depth" : 16, + "layer" : 16, "computedX" : 430.722, - "computedY" : 615.535, + "computedY" : 445.884, "placementX" : 430.722, - "placementY" : 615.535, + "placementY" : 445.884, "placementWidth" : 122.76, "placementHeight" : 10.65, "startPage" : 0, @@ -4934,23 +5954,23 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]/EntryBullets[2]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryBullets[2]", "entityName" : "EntryBullets", "entityKind" : "ListNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[2]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 2, - "depth" : 6, - "layer" : 6, + "depth" : 13, + "layer" : 13, "computedX" : 230.429, - "computedY" : 497.182, + "computedY" : 354.301, "placementX" : 230.429, - "placementY" : 497.182, - "placementWidth" : 318.296, - "placementHeight" : 104.347, + "placementY" : 354.301, + "placementWidth" : 310.574, + "placementHeight" : 77.576, "startPage" : 0, "endPage" : 0, - "contentWidth" : 318.296, - "contentHeight" : 104.347, + "contentWidth" : 310.574, + "contentHeight" : 77.576, "margin" : { "top" : 14.006, "right" : 0.0, @@ -4964,113 +5984,23 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]", - "entityName" : "ExperienceEntry", - "entityKind" : "SectionNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]", - "childIndex" : 3, - "depth" : 5, - "layer" : 5, - "computedX" : 215.18, - "computedY" : 328.321, - "placementX" : 215.18, - "placementY" : 328.321, - "placementWidth" : 338.302, - "placementHeight" : 142.881, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 338.302, - "contentHeight" : 142.881, - "margin" : { - "top" : 0.0, - "right" : 0.0, - "bottom" : 0.0, - "left" : 0.0 - }, - "padding" : { - "top" : 0.0, - "right" : 0.0, - "bottom" : 25.98, - "left" : 15.249 - } - }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]", - "entityName" : "EntryHeaderLayer", - "entityKind" : "LayerStackNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]", - "childIndex" : 0, - "depth" : 6, - "layer" : 6, - "computedX" : 230.429, - "computedY" : 459.584, - "placementX" : 230.429, - "placementY" : 459.584, - "placementWidth" : 323.053, - "placementHeight" : 11.618, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 323.053, - "contentHeight" : 11.618, - "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", - "entityName" : "EntryHeaderHolder", - "entityKind" : "SectionNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]", - "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 230.429, - "computedY" : 459.584, - "placementX" : 230.429, - "placementY" : 459.584, - "placementWidth" : 323.053, - "placementHeight" : 11.618, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 323.053, - "contentHeight" : 11.618, - "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", - "entityName" : "EntryHeader", - "entityKind" : "RowNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", - "childIndex" : 0, + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 2, "depth" : 8, "layer" : 8, - "computedX" : 230.429, - "computedY" : 459.584, - "placementX" : 230.429, - "placementY" : 459.584, - "placementWidth" : 323.053, - "placementHeight" : 11.618, + "computedX" : 212.639, + "computedY" : 238.191, + "placementX" : 212.639, + "placementY" : 238.191, + "placementWidth" : 340.843, + "placementHeight" : 90.13, "startPage" : 0, "endPage" : 0, - "contentWidth" : 323.053, - "contentHeight" : 11.618, + "contentWidth" : 340.843, + "contentHeight" : 90.13, "margin" : { "top" : 0.0, "right" : 0.0, @@ -5084,23 +6014,23 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryTitle[0]", - "entityName" : "EntryTitle", - "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", "childIndex" : 0, "depth" : 9, "layer" : 9, - "computedX" : 230.429, - "computedY" : 459.584, - "placementX" : 230.429, - "placementY" : 459.584, - "placementWidth" : 139.516, - "placementHeight" : 11.618, + "computedX" : 212.639, + "computedY" : 238.191, + "placementX" : 212.639, + "placementY" : 238.191, + "placementWidth" : 340.843, + "placementHeight" : 90.13, "startPage" : 0, "endPage" : 0, - "contentWidth" : 139.516, - "contentHeight" : 11.618, + "contentWidth" : 340.843, + "contentHeight" : 90.13, "margin" : { "top" : 0.0, "right" : 0.0, @@ -5109,28 +6039,28 @@ }, "padding" : { "top" : 0.0, - "right" : 0.0, - "bottom" : 0.0, - "left" : 0.0 - } - }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryPeriod[1]", - "entityName" : "EntryPeriod", - "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", - "childIndex" : 1, - "depth" : 9, - "layer" : 9, - "computedX" : 430.722, - "computedY" : 460.552, - "placementX" : 430.722, - "placementY" : 460.552, - "placementWidth" : 122.76, - "placementHeight" : 10.65, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 212.639, + "computedY" : 238.191, + "placementX" : 212.639, + "placementY" : 238.191, + "placementWidth" : 340.843, + "placementHeight" : 90.13, "startPage" : 0, "endPage" : 0, - "contentWidth" : 122.76, - "contentHeight" : 10.65, + "contentWidth" : 340.843, + "contentHeight" : 90.13, "margin" : { "top" : 0.0, "right" : 0.0, @@ -5144,23 +6074,23 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]/EntryMarker[1]", - "entityName" : "EntryMarker", - "entityKind" : "EllipseNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryHeaderLayer[0]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, "computedX" : 212.639, - "computedY" : 464.368, + "computedY" : 238.191, "placementX" : 212.639, - "placementY" : 464.368, - "placementWidth" : 5.083, - "placementHeight" : 5.083, + "placementY" : 238.191, + "placementWidth" : 340.843, + "placementHeight" : 90.13, "startPage" : 0, "endPage" : 0, - "contentWidth" : 5.083, - "contentHeight" : 5.083, + "contentWidth" : 340.843, + "contentHeight" : 90.13, "margin" : { "top" : 0.0, "right" : 0.0, @@ -5174,23 +6104,23 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]", - "entityName" : "EntrySubheaderLayer", - "entityKind" : "LayerStackNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]", - "childIndex" : 1, - "depth" : 6, - "layer" : 6, - "computedX" : 230.429, - "computedY" : 445.884, - "placementX" : 230.429, - "placementY" : 445.884, - "placementWidth" : 323.053, - "placementHeight" : 13.7, + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 212.639, + "computedY" : 321.488, + "placementX" : 212.639, + "placementY" : 321.488, + "placementWidth" : 5.083, + "placementHeight" : 6.834, "startPage" : 0, "endPage" : 0, - "contentWidth" : 323.053, - "contentHeight" : 13.7, + "contentWidth" : 5.083, + "contentHeight" : 6.834, "margin" : { "top" : 0.0, "right" : 0.0, @@ -5204,23 +6134,23 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", - "entityName" : "EntrySubheaderHolder", - "entityKind" : "SectionNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 230.429, - "computedY" : 445.884, - "placementX" : 230.429, - "placementY" : 445.884, - "placementWidth" : 323.053, - "placementHeight" : 13.7, + "depth" : 13, + "layer" : 13, + "computedX" : 212.639, + "computedY" : 321.488, + "placementX" : 212.639, + "placementY" : 321.488, + "placementWidth" : 5.083, + "placementHeight" : 6.834, "startPage" : 0, "endPage" : 0, - "contentWidth" : 323.053, - "contentHeight" : 13.7, + "contentWidth" : 5.083, + "contentHeight" : 6.834, "margin" : { "top" : 0.0, "right" : 0.0, @@ -5234,23 +6164,23 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", - "entityName" : "EntrySubheader", - "entityKind" : "RowNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, - "computedX" : 230.429, - "computedY" : 445.884, - "placementX" : 230.429, - "placementY" : 445.884, - "placementWidth" : 323.053, - "placementHeight" : 13.7, + "depth" : 14, + "layer" : 14, + "computedX" : 212.639, + "computedY" : 321.488, + "placementX" : 212.639, + "placementY" : 321.488, + "placementWidth" : 5.083, + "placementHeight" : 6.834, "startPage" : 0, "endPage" : 0, - "contentWidth" : 323.053, - "contentHeight" : 13.7, + "contentWidth" : 5.083, + "contentHeight" : 6.834, "margin" : { "top" : 0.0, "right" : 0.0, @@ -5264,25 +6194,25 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryCompany[0]", - "entityName" : "EntryCompany", - "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, - "computedX" : 230.429, - "computedY" : 445.884, - "placementX" : 230.429, - "placementY" : 445.884, - "placementWidth" : 91.307, - "placementHeight" : 10.65, + "depth" : 15, + "layer" : 15, + "computedX" : 212.639, + "computedY" : 321.488, + "placementX" : 212.639, + "placementY" : 321.488, + "placementWidth" : 5.083, + "placementHeight" : 6.834, "startPage" : 0, "endPage" : 0, - "contentWidth" : 91.307, - "contentHeight" : 10.65, + "contentWidth" : 5.083, + "contentHeight" : 6.834, "margin" : { - "top" : 3.05, + "top" : 0.0, "right" : 0.0, "bottom" : 0.0, "left" : 0.0 @@ -5294,25 +6224,25 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryLocation[1]", - "entityName" : "EntryLocation", - "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", - "childIndex" : 1, - "depth" : 9, - "layer" : 9, - "computedX" : 430.722, - "computedY" : 445.884, - "placementX" : 430.722, - "placementY" : 445.884, - "placementWidth" : 122.76, - "placementHeight" : 10.65, + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 212.639, + "computedY" : 321.488, + "placementX" : 212.639, + "placementY" : 321.488, + "placementWidth" : 5.083, + "placementHeight" : 6.834, "startPage" : 0, "endPage" : 0, - "contentWidth" : 122.76, - "contentHeight" : 10.65, + "contentWidth" : 5.083, + "contentHeight" : 6.834, "margin" : { - "top" : 3.05, + "top" : 0.0, "right" : 0.0, "bottom" : 0.0, "left" : 0.0 @@ -5324,25 +6254,25 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]/EntryBullets[2]", - "entityName" : "EntryBullets", - "entityKind" : "ListNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[3]", - "childIndex" : 2, - "depth" : 6, - "layer" : 6, - "computedX" : 230.429, - "computedY" : 354.301, - "placementX" : 230.429, - "placementY" : 354.301, - "placementWidth" : 310.574, - "placementHeight" : 77.576, + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EntryMarker[0]", + "entityName" : "EntryMarker", + "entityKind" : "EllipseNode", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 212.639, + "computedY" : 321.488, + "placementX" : 212.639, + "placementY" : 321.488, + "placementWidth" : 5.083, + "placementHeight" : 5.083, "startPage" : 0, "endPage" : 0, - "contentWidth" : 310.574, - "contentHeight" : 77.576, + "contentWidth" : 5.083, + "contentHeight" : 5.083, "margin" : { - "top" : 14.006, + "top" : 1.751, "right" : 0.0, "bottom" : 0.0, "left" : 0.0 @@ -5354,22 +6284,22 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]", - "entityName" : "ExperienceEntry", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]", - "childIndex" : 4, - "depth" : 5, - "layer" : 5, - "computedX" : 215.18, + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 230.429, "computedY" : 238.191, - "placementX" : 215.18, + "placementX" : 230.429, "placementY" : 238.191, - "placementWidth" : 338.302, + "placementWidth" : 323.053, "placementHeight" : 90.13, "startPage" : 0, "endPage" : 0, - "contentWidth" : 338.302, + "contentWidth" : 323.053, "contentHeight" : 90.13, "margin" : { "top" : 0.0, @@ -5381,16 +6311,16 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 15.249 + "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]", "entityName" : "EntryHeaderLayer", "entityKind" : "LayerStackNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, + "depth" : 13, + "layer" : 13, "computedX" : 230.429, "computedY" : 316.703, "placementX" : 230.429, @@ -5414,13 +6344,13 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", "entityName" : "EntryHeaderHolder", "entityKind" : "SectionNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, + "depth" : 14, + "layer" : 14, "computedX" : 230.429, "computedY" : 316.703, "placementX" : 230.429, @@ -5444,13 +6374,13 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", "entityName" : "EntryHeader", "entityKind" : "RowNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, + "depth" : 15, + "layer" : 15, "computedX" : 230.429, "computedY" : 316.703, "placementX" : 230.429, @@ -5474,13 +6404,13 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryTitle[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryTitle[0]", "entityName" : "EntryTitle", "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, + "depth" : 16, + "layer" : 16, "computedX" : 230.429, "computedY" : 316.703, "placementX" : 230.429, @@ -5504,13 +6434,13 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryPeriod[1]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]/EntryPeriod[1]", "entityName" : "EntryPeriod", "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHeaderLayer[0]/EntryHeaderHolder[0]/EntryHeader[0]", "childIndex" : 1, - "depth" : 9, - "layer" : 9, + "depth" : 16, + "layer" : 16, "computedX" : 430.722, "computedY" : 317.671, "placementX" : 430.722, @@ -5534,43 +6464,13 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]/EntryMarker[1]", - "entityName" : "EntryMarker", - "entityKind" : "EllipseNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryHeaderLayer[0]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, - "computedX" : 212.639, - "computedY" : 321.488, - "placementX" : 212.639, - "placementY" : 321.488, - "placementWidth" : 5.083, - "placementHeight" : 5.083, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 5.083, - "contentHeight" : 5.083, - "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" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]", "entityName" : "EntrySubheaderLayer", "entityKind" : "LayerStackNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 1, - "depth" : 6, - "layer" : 6, + "depth" : 13, + "layer" : 13, "computedX" : 230.429, "computedY" : 303.003, "placementX" : 230.429, @@ -5594,13 +6494,13 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", "entityName" : "EntrySubheaderHolder", "entityKind" : "SectionNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, + "depth" : 14, + "layer" : 14, "computedX" : 230.429, "computedY" : 303.003, "placementX" : 230.429, @@ -5624,13 +6524,13 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", "entityName" : "EntrySubheader", "entityKind" : "RowNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, + "depth" : 15, + "layer" : 15, "computedX" : 230.429, "computedY" : 303.003, "placementX" : 230.429, @@ -5654,13 +6554,13 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryCompany[0]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryCompany[0]", "entityName" : "EntryCompany", "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, + "depth" : 16, + "layer" : 16, "computedX" : 230.429, "computedY" : 303.003, "placementX" : 230.429, @@ -5684,13 +6584,13 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryLocation[1]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]/EntryLocation[1]", "entityName" : "EntryLocation", "entityKind" : "ParagraphNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySubheaderLayer[1]/EntrySubheaderHolder[0]/EntrySubheader[0]", "childIndex" : 1, - "depth" : 9, - "layer" : 9, + "depth" : 16, + "layer" : 16, "computedX" : 430.722, "computedY" : 303.003, "placementX" : 430.722, @@ -5714,13 +6614,13 @@ "left" : 0.0 } }, { - "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]/EntryBullets[2]", + "path" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryBullets[2]", "entityName" : "EntryBullets", "entityKind" : "ListNode", - "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceEntry[4]", + "parentPath" : "MidnightNavyCv[0]/PageGrid[0]/Main[1]/Experience[1]/ExperienceRail[2]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 2, - "depth" : 6, - "layer" : 6, + "depth" : 13, + "layer" : 13, "computedX" : 230.429, "computedY" : 238.191, "placementX" : 230.429, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java index 48cbf0284..15dc03a05 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java @@ -1,8 +1,9 @@ package com.demcha.compose.document.templates.cv.presets; -import com.demcha.compose.document.dsl.EllipseBuilder; import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TimelineMarker; import com.demcha.compose.document.node.DocumentLinkOptions; +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.node.TextAlign; @@ -47,20 +48,20 @@ * The paper column: the summary, the roles held on a rail, the achievement * discs and the certifications. * - *

      Why the rail is an accent and not a timeline

      + *

      The rail

      * - *

      A timeline builder has no slot for a date on the far side of its rail and - * discards a negative gutter, so its marker cannot centre on the rail. Here the - * rail is instead the left accent of the entry section, so its height derives - * from the entry it belongs to, and the gap between entries is bottom padding - * inside the border — which is what makes consecutive rails meet - * rather than leaving a break between roles.

      + *

      The roles are a timeline: one rail, one marker per role, sitting on it. It was built + * from a per-entry left accent with the marker positioned into a layer stack, because a + * timeline could not then put a marker on its rail. It can — {@code markerOnRail()} anchors + * the rail through the marker's centre — so the rail is the timeline's, and the layer stack + * and its offsets are gone.

      * - *

      An accent is drawn centred on the edge it belongs to, so the section's - * left edge already is the rail's axis: a marker reaches it by walking - * back across the gutter and half its own width, and nothing else. Correcting - * by half the rail's thickness on top of that lands every marker a rail width - * to the right of the line it is meant to sit on.

      + *

      Two things keep the drawing where it was. The rail's ends come from + * {@code ENTRY_BOUNDS}, which spans the entries' own boxes: the gap between roles is padding + * inside an entry's box and the last entry carries none, so consecutive segments meet and + * nothing trails past the final marker, exactly as the accents did. And the axis column + * centres the rail on itself, so the timeline starts half an axis to the left and the rail + * lands back on the column edge the heading rule shares.

      */ final class MidnightNavyMain { @@ -110,87 +111,110 @@ private static void renderExperience(SectionBuilder column, EntriesSection exper column.addSection("Experience", block -> { block.spacing(0); MidnightNavyWidgets.mainHeading(block, experience.title(), MAIN_RULE_THICKNESS, px(23)); - List entries = experience.entries(); - for (int i = 0; i < entries.size(); i++) { - renderExperienceEntry(block, entries.get(i), i == entries.size() - 1); - } + renderExperienceTimeline(block, experience.entries()); }); } - private static void renderExperienceEntry(SectionBuilder block, CvEntry entry, boolean last) { - block.addSection("ExperienceEntry", section -> { - section.spacing(0) - .keepTogether() - .accentLeft(HAIRLINE, RAIL_WIDTH) - .padding(new DocumentInsets(0, 0, last ? 0 : ENTRY_GAP, RAIL_GUTTER)); - - // The header row and the marker share one layer stack: the row needs - // the wrapper anyway, and the marker then rides the row it is level - // with rather than being placed against the section. - SectionBuilder header = new SectionBuilder(); - header.name("EntryHeaderHolder"); - header.addRow("EntryHeader", row -> { - row.spacing(0).weights(0.62, 0.38); - row.addParagraph(p -> { - p.name("EntryTitle"); - p.textStyle(style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)); - if (entry.link().isBlank()) { - p.inlineText(entry.title(), - style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)); - } else { - p.inlineText(entry.title(), - style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD), - new DocumentLinkOptions(entry.link())); - } - }); - row.addParagraph(p -> p - .name("EntryPeriod") - .text(entry.date()) - .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.DEFAULT)) - .align(TextAlign.RIGHT)); - }); - section.addLayerStack(stack -> { - stack.name("EntryHeaderLayer"); - stack.layer(header.build(), LayerAlign.TOP_LEFT, 0); - // The accent is drawn centred on the section's left edge, so - // that edge already IS the rail's axis and the marker only has - // to walk back across the gutter and half its own width. - // Adding half the rail's thickness on top corrects in the - // direction the marker is already offset and lands it a rail - // width to the right of the line it is meant to sit on. - stack.position(new EllipseBuilder() - .name("EntryMarker") - .circle(MARKER_DIAMETER) - .fillColor(NAVY) - .build(), - -RAIL_GUTTER - MARKER_DIAMETER / 2.0, - px(3.1), LayerAlign.TOP_LEFT, 1); + /** + * The roles, on one rail. + * + *

      The axis column centres the rail on itself, so the timeline starts half an axis + * left of the column the heading rule sits on and the rail lands back on that edge — + * where the per-entry accent drew it before. The rail's ends come from + * {@code ENTRY_BOUNDS}: the gap between roles is padding inside an entry's own box and + * the last entry carries none, which is what made consecutive accents meet.

      + */ + private static void renderExperienceTimeline(SectionBuilder block, List entries) { + SectionBuilder holder = new SectionBuilder(); + holder.name("ExperienceRailHolder"); + { + SectionBuilder host = holder; + host.spacing(0) + .margin(new DocumentInsets(0, 0, 0, -MARKER_DIAMETER / 2.0)); + host.addTimeline(timeline -> { + timeline.markerOnRail() + .connector(HAIRLINE, RAIL_WIDTH) + .axisWidth(MARKER_DIAMETER) + .markerGap(RAIL_GUTTER - MARKER_DIAMETER / 2.0) + .gutter(0) + .spacing(ENTRY_GAP) + .keepEntriesTogether(); + for (CvEntry entry : entries) { + timeline.entry(entryMarker(), + e -> e.content(section -> renderExperienceEntry(section, entry))); + } }); + } + DocumentNode node = holder.build(); + block.addLayerStack(stack -> stack + .name("ExperienceRail") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** + * The navy disc, in a box tall enough to carry the drop that sets it on the title's cap + * height. A marker's declared box is what the timeline reserves and derives the rail + * from, so the drop rides inside the marker rather than being positioned against the + * header row. + */ + private static TimelineMarker entryMarker() { + return TimelineMarker.custom(MARKER_DIAMETER, MARKER_DIAMETER + px(3.1), + column -> column.addEllipse(ellipse -> ellipse + .name("EntryMarker") + .circle(MARKER_DIAMETER) + .fillColor(NAVY) + .margin(new DocumentInsets(px(3.1), 0, 0, 0)))); + } - MidnightNavyWidgets.layeredRow(section, "EntrySubheader", row -> { - row.spacing(0).weights(0.62, 0.38); - row.addParagraph(p -> p - .name("EntryCompany") - .text(entry.subtitle()) - .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.ITALIC)) - .margin(new DocumentInsets(px(5.4), 0, 0, 0))); - row.addParagraph(p -> p - .name("EntryLocation") - .text(entry.place()) - .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.DEFAULT)) - .align(TextAlign.RIGHT) - .margin(new DocumentInsets(px(5.4), 0, 0, 0))); + private static void renderExperienceEntry(SectionBuilder section, CvEntry entry) { + section.spacing(0); + // A row nested directly in a row cell is refused, and a timeline entry lays its + // content out in one — so the header goes through the same wrapper as every other + // horizontal pair in this sheet. + MidnightNavyWidgets.layeredRow(section, "EntryHeader", row -> { + row.spacing(0).weights(0.62, 0.38); + row.addParagraph(p -> { + p.name("EntryTitle"); + p.textStyle(style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)); + if (entry.link().isBlank()) { + p.inlineText(entry.title(), + style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)); + } else { + p.inlineText(entry.title(), + style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD), + new DocumentLinkOptions(entry.link())); + } }); + row.addParagraph(p -> p + .name("EntryPeriod") + .text(entry.date()) + .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.DEFAULT)) + .align(TextAlign.RIGHT)); + }); - section.addList(list -> list - .name("EntryBullets") - .marker("·") - .items(MidnightNavyWidgets.lines(entry.body())) - .textStyle(style(BODY_SIZE, BODY, DocumentTextDecoration.DEFAULT)) - .lineSpacing(leading(23.7, BODY_SIZE)) - .itemSpacing(leading(23.7, BODY_SIZE)) - .margin(new DocumentInsets(px(24.8), 0, 0, 0))); + MidnightNavyWidgets.layeredRow(section, "EntrySubheader", row -> { + row.spacing(0).weights(0.62, 0.38); + row.addParagraph(p -> p + .name("EntryCompany") + .text(entry.subtitle()) + .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.ITALIC)) + .margin(new DocumentInsets(px(5.4), 0, 0, 0))); + row.addParagraph(p -> p + .name("EntryLocation") + .text(entry.place()) + .textStyle(style(BODY_SIZE, MUTED, DocumentTextDecoration.DEFAULT)) + .align(TextAlign.RIGHT) + .margin(new DocumentInsets(px(5.4), 0, 0, 0))); }); + + section.addList(list -> list + .name("EntryBullets") + .marker("·") + .items(MidnightNavyWidgets.lines(entry.body())) + .textStyle(style(BODY_SIZE, BODY, DocumentTextDecoration.DEFAULT)) + .lineSpacing(leading(23.7, BODY_SIZE)) + .itemSpacing(leading(23.7, BODY_SIZE)) + .margin(new DocumentInsets(px(24.8), 0, 0, 0))); } /** From 85f43d8d0c821607ee1de14618fa57d3f809b53d Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 09:55:12 +0100 Subject: [PATCH 53/85] refactor(templates): put Charcoal Gold's roles on a real timeline The row had two cells where the design has three. The comment said why: a marker in its own column would sit in a different node from the rail, "leaving the rail free to paint straight through it", so the date cell carried the marker width and the body border stood in for the rail. A timeline resolves that - markerOnRail runs the rail through the marker centre, so the marker owns a column and nothing paints through it. The leading column is the old date cell less ENTRY_INDENT, because a row spaces every pair of columns: the gap is paid once before the axis and once after it, and the second payment is the indent the body padding used to provide. The ring keeps its node name by declaring its box rather than being drawn through TimelineMarker.circle. Geometry is unchanged. 230 of the 248 nodes keep name, kind, x, y, width, height and page ownership; the 18 that go are the scaffolding - ExperienceEntry_NStack, its Layer and RowNode, EntryBody_N, MarkerCap_N and RoleLayer_N. MarkerRing_N stays at x=285.488 (rail 288.588, unmoved), Role_N and Employer_N at x=304.588, Highlights_N at 304.588, Period_N at 214.01, one page, same page ownership. The pixel gate passes against the baseline it already had, so no PNG was re-approved. --- .../cv-v2/charcoal_gold_layout.json | 1218 ++++++++++++----- .../cv/presets/CharcoalGoldMain.java | 98 +- .../cv/presets/CharcoalGoldWidgets.java | 22 +- 3 files changed, 945 insertions(+), 393 deletions(-) diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json index 6377e83ba..ca2f1a473 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json @@ -3974,25 +3974,25 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]", - "entityName" : "ExperienceEntry_0Stack", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]", + "entityName" : "ExperienceRail", "entityKind" : "LayerStackNode", "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]", "childIndex" : 1, "depth" : 5, "layer" : 5, "computedX" : 214.01, - "computedY" : 455.41, + "computedY" : 274.21, "placementX" : 214.01, - "placementY" : 455.41, + "placementY" : 274.21, "placementWidth" : 352.466, - "placementHeight" : 111.18, + "placementHeight" : 311.38, "startPage" : 0, "endPage" : 0, "contentWidth" : 352.466, - "contentHeight" : 111.18, + "contentHeight" : 311.38, "margin" : { - "top" : 19.0, + "top" : 0.0, "right" : 0.0, "bottom" : 0.0, "left" : 0.0 @@ -4004,25 +4004,25 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]", - "entityName" : "ExperienceEntry_0Layer", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]", + "entityName" : "ExperienceRailHolder", "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]", "childIndex" : 0, "depth" : 6, "layer" : 6, "computedX" : 214.01, - "computedY" : 455.41, + "computedY" : 274.21, "placementX" : 214.01, - "placementY" : 455.41, + "placementY" : 274.21, "placementWidth" : 352.466, - "placementHeight" : 111.18, + "placementHeight" : 292.38, "startPage" : 0, "endPage" : 0, "contentWidth" : 352.466, - "contentHeight" : 111.18, + "contentHeight" : 292.38, "margin" : { - "top" : 0.0, + "top" : 19.0, "right" : 0.0, "bottom" : 0.0, "left" : 0.0 @@ -4034,23 +4034,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]", - "entityName" : "ExperienceEntry_0", - "entityKind" : "RowNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]", "childIndex" : 0, "depth" : 7, "layer" : 7, "computedX" : 214.01, - "computedY" : 455.41, + "computedY" : 274.21, "placementX" : 214.01, - "placementY" : 455.41, + "placementY" : 274.21, "placementWidth" : 352.466, - "placementHeight" : 111.18, + "placementHeight" : 292.38, "startPage" : 0, "endPage" : 0, "contentWidth" : 352.466, - "contentHeight" : 111.18, + "contentHeight" : 292.38, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4064,23 +4064,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/Period_0[0]", - "entityName" : "Period_0", - "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", "childIndex" : 0, "depth" : 8, "layer" : 8, "computedX" : 214.01, - "computedY" : 557.23, + "computedY" : 455.41, "placementX" : 214.01, - "placementY" : 557.23, - "placementWidth" : 52.907, - "placementHeight" : 9.36, + "placementY" : 455.41, + "placementWidth" : 352.466, + "placementHeight" : 111.18, "startPage" : 0, "endPage" : 0, - "contentWidth" : 52.907, - "contentHeight" : 9.36, + "contentWidth" : 352.466, + "contentHeight" : 111.18, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4094,22 +4094,22 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]", - "entityName" : "EntryBody_0", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]", - "childIndex" : 1, - "depth" : 8, - "layer" : 8, - "computedX" : 288.588, + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 214.01, "computedY" : 455.41, - "placementX" : 288.588, + "placementX" : 214.01, "placementY" : 455.41, - "placementWidth" : 252.368, + "placementWidth" : 352.466, "placementHeight" : 111.18, "startPage" : 0, "endPage" : 0, - "contentWidth" : 252.368, + "contentWidth" : 352.466, "contentHeight" : 111.18, "margin" : { "top" : 0.0, @@ -4121,30 +4121,60 @@ "top" : 0.0, "right" : 0.0, "bottom" : 19.6, - "left" : 16.0 + "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]", - "entityName" : "MarkerCap_0", - "entityKind" : "LayerStackNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, - "computedX" : 304.588, - "computedY" : 553.99, - "placementX" : 304.588, - "placementY" : 553.99, - "placementWidth" : 110.292, - "placementHeight" : 12.6, + "depth" : 10, + "layer" : 10, + "computedX" : 214.01, + "computedY" : 475.01, + "placementX" : 214.01, + "placementY" : 475.01, + "placementWidth" : 352.466, + "placementHeight" : 91.58, "startPage" : 0, "endPage" : 0, - "contentWidth" : 110.292, - "contentHeight" : 12.6, + "contentWidth" : 352.466, + "contentHeight" : 91.58, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 3.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 214.01, + "computedY" : 475.01, + "placementX" : 214.01, + "placementY" : 475.01, + "placementWidth" : 352.466, + "placementHeight" : 91.58, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 91.58, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -4154,23 +4184,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]/RoleLayer_0[0]", - "entityName" : "RoleLayer_0", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 0, - "depth" : 10, - "layer" : 10, - "computedX" : 304.588, - "computedY" : 553.99, - "placementX" : 304.588, - "placementY" : 553.99, - "placementWidth" : 110.292, - "placementHeight" : 12.6, + "depth" : 12, + "layer" : 12, + "computedX" : 214.01, + "computedY" : 557.23, + "placementX" : 214.01, + "placementY" : 557.23, + "placementWidth" : 52.907, + "placementHeight" : 9.36, "startPage" : 0, "endPage" : 0, - "contentWidth" : 110.292, - "contentHeight" : 12.6, + "contentWidth" : 52.907, + "contentHeight" : 9.36, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4184,23 +4214,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]/RoleLayer_0[0]/Role_0[0]", - "entityName" : "Role_0", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Period_0[0]", + "entityName" : "Period_0", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]/RoleLayer_0[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 11, - "layer" : 11, - "computedX" : 304.588, - "computedY" : 553.99, - "placementX" : 304.588, - "placementY" : 553.99, - "placementWidth" : 110.292, - "placementHeight" : 12.6, + "depth" : 13, + "layer" : 13, + "computedX" : 214.01, + "computedY" : 557.23, + "placementX" : 214.01, + "placementY" : 557.23, + "placementWidth" : 52.907, + "placementHeight" : 9.36, "startPage" : 0, "endPage" : 0, - "contentWidth" : 110.292, - "contentHeight" : 12.6, + "contentWidth" : 52.907, + "contentHeight" : 9.36, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4214,13 +4244,13 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]/MarkerRing_0[1]", - "entityName" : "MarkerRing_0", - "entityKind" : "EllipseNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 1, - "depth" : 10, - "layer" : 10, + "depth" : 12, + "layer" : 12, "computedX" : 285.488, "computedY" : 560.39, "placementX" : 285.488, @@ -4244,27 +4274,27 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/Employer_0[1]", - "entityName" : "Employer_0", - "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]", - "childIndex" : 1, - "depth" : 9, - "layer" : 9, - "computedX" : 304.588, - "computedY" : 542.71, - "placementX" : 304.588, - "placementY" : 542.71, - "placementWidth" : 137.903, - "placementHeight" : 8.28, + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 285.488, + "computedY" : 560.39, + "placementX" : 285.488, + "placementY" : 560.39, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 137.903, - "contentHeight" : 8.28, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 7.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -4274,23 +4304,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/Highlights_0[2]", - "entityName" : "Highlights_0", - "entityKind" : "ListNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]", - "childIndex" : 2, - "depth" : 9, - "layer" : 9, - "computedX" : 304.588, - "computedY" : 475.01, - "placementX" : 304.588, - "placementY" : 475.01, - "placementWidth" : 236.368, - "placementHeight" : 60.7, + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 285.488, + "computedY" : 560.39, + "placementX" : 285.488, + "placementY" : 560.39, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 236.368, - "contentHeight" : 60.7, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4304,23 +4334,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]", - "entityName" : "ExperienceEntry_1Stack", - "entityKind" : "LayerStackNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]", - "childIndex" : 2, - "depth" : 5, - "layer" : 5, - "computedX" : 214.01, - "computedY" : 355.01, - "placementX" : 214.01, - "placementY" : 355.01, - "placementWidth" : 352.466, - "placementHeight" : 100.4, + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 285.488, + "computedY" : 560.39, + "placementX" : 285.488, + "placementY" : 560.39, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 352.466, - "contentHeight" : 100.4, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4334,23 +4364,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]", - "entityName" : "ExperienceEntry_1Layer", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, - "computedX" : 214.01, - "computedY" : 355.01, - "placementX" : 214.01, - "placementY" : 355.01, - "placementWidth" : 352.466, - "placementHeight" : 100.4, + "depth" : 16, + "layer" : 16, + "computedX" : 285.488, + "computedY" : 560.39, + "placementX" : 285.488, + "placementY" : 560.39, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 352.466, - "contentHeight" : 100.4, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4364,19 +4394,199 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]", - "entityName" : "ExperienceEntry_1", - "entityKind" : "RowNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/MarkerRing_0[0]", + "entityName" : "MarkerRing_0", + "entityKind" : "EllipseNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 214.01, - "computedY" : 355.01, - "placementX" : 214.01, - "placementY" : 355.01, - "placementWidth" : 352.466, - "placementHeight" : 100.4, + "depth" : 17, + "layer" : 17, + "computedX" : 285.488, + "computedY" : 560.39, + "placementX" : 285.488, + "placementY" : 560.39, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 12, + "layer" : 12, + "computedX" : 304.588, + "computedY" : 475.01, + "placementX" : 304.588, + "placementY" : 475.01, + "placementWidth" : 236.368, + "placementHeight" : 91.58, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.368, + "contentHeight" : 91.58, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Role_0[0]", + "entityName" : "Role_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 304.588, + "computedY" : 553.99, + "placementX" : 304.588, + "placementY" : 553.99, + "placementWidth" : 110.292, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.292, + "contentHeight" : 12.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Employer_0[1]", + "entityName" : "Employer_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 304.588, + "computedY" : 542.71, + "placementX" : 304.588, + "placementY" : 542.71, + "placementWidth" : 137.903, + "placementHeight" : 8.28, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 137.903, + "contentHeight" : 8.28, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Highlights_0[2]", + "entityName" : "Highlights_0", + "entityKind" : "ListNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 304.588, + "computedY" : 475.01, + "placementX" : 304.588, + "placementY" : 475.01, + "placementWidth" : 236.368, + "placementHeight" : 60.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.368, + "contentHeight" : 60.7, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 214.01, + "computedY" : 355.01, + "placementX" : 214.01, + "placementY" : 355.01, + "placementWidth" : 352.466, + "placementHeight" : 100.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 100.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 214.01, + "computedY" : 355.01, + "placementX" : 214.01, + "placementY" : 355.01, + "placementWidth" : 352.466, + "placementHeight" : 100.4, "startPage" : 0, "endPage" : 0, "contentWidth" : 352.466, @@ -4387,6 +4597,96 @@ "bottom" : 0.0, "left" : 0.0 }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 19.6, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 214.01, + "computedY" : 374.61, + "placementX" : 214.01, + "placementY" : 374.61, + "placementWidth" : 352.466, + "placementHeight" : 80.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 80.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 214.01, + "computedY" : 374.61, + "placementX" : 214.01, + "placementY" : 374.61, + "placementWidth" : 352.466, + "placementHeight" : 80.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 80.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 214.01, + "computedY" : 446.05, + "placementX" : 214.01, + "placementY" : 446.05, + "placementWidth" : 44.71, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.71, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, "padding" : { "top" : 0.0, "right" : 0.0, @@ -4394,13 +4694,13 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/Period_1[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Period_1[0]", "entityName" : "Period_1", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, + "depth" : 13, + "layer" : 13, "computedX" : 214.01, "computedY" : 446.05, "placementX" : 214.01, @@ -4424,23 +4724,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]", - "entityName" : "EntryBody_1", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 1, - "depth" : 8, - "layer" : 8, - "computedX" : 288.588, - "computedY" : 355.01, - "placementX" : 288.588, - "placementY" : 355.01, - "placementWidth" : 236.671, - "placementHeight" : 100.4, + "depth" : 12, + "layer" : 12, + "computedX" : 285.488, + "computedY" : 449.21, + "placementX" : 285.488, + "placementY" : 449.21, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 236.671, - "contentHeight" : 100.4, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4450,31 +4750,31 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 19.6, - "left" : 16.0 + "bottom" : 0.0, + "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]", - "entityName" : "MarkerCap_1", - "entityKind" : "LayerStackNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, - "computedX" : 304.588, - "computedY" : 442.81, - "placementX" : 304.588, - "placementY" : 442.81, - "placementWidth" : 77.826, - "placementHeight" : 12.6, + "depth" : 13, + "layer" : 13, + "computedX" : 285.488, + "computedY" : 449.21, + "placementX" : 285.488, + "placementY" : 449.21, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 77.826, - "contentHeight" : 12.6, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 3.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -4484,23 +4784,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]/RoleLayer_1[0]", - "entityName" : "RoleLayer_1", - "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", "childIndex" : 0, - "depth" : 10, - "layer" : 10, - "computedX" : 304.588, - "computedY" : 442.81, - "placementX" : 304.588, - "placementY" : 442.81, - "placementWidth" : 77.826, - "placementHeight" : 12.6, + "depth" : 14, + "layer" : 14, + "computedX" : 285.488, + "computedY" : 449.21, + "placementX" : 285.488, + "placementY" : 449.21, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 77.826, - "contentHeight" : 12.6, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4514,23 +4814,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]/RoleLayer_1[0]/Role_1[0]", - "entityName" : "Role_1", - "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]/RoleLayer_1[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, - "depth" : 11, - "layer" : 11, - "computedX" : 304.588, - "computedY" : 442.81, - "placementX" : 304.588, - "placementY" : 442.81, - "placementWidth" : 77.826, - "placementHeight" : 12.6, + "depth" : 15, + "layer" : 15, + "computedX" : 285.488, + "computedY" : 449.21, + "placementX" : 285.488, + "placementY" : 449.21, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 77.826, - "contentHeight" : 12.6, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4544,13 +4844,43 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]/MarkerRing_1[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 285.488, + "computedY" : 449.21, + "placementX" : 285.488, + "placementY" : 449.21, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/MarkerRing_1[0]", "entityName" : "MarkerRing_1", "entityKind" : "EllipseNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]", - "childIndex" : 1, - "depth" : 10, - "layer" : 10, + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, "computedX" : 285.488, "computedY" : 449.21, "placementX" : 285.488, @@ -4574,13 +4904,73 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/Employer_1[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 12, + "layer" : 12, + "computedX" : 304.588, + "computedY" : 374.61, + "placementX" : 304.588, + "placementY" : 374.61, + "placementWidth" : 220.671, + "placementHeight" : 80.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 220.671, + "contentHeight" : 80.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Role_1[0]", + "entityName" : "Role_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 304.588, + "computedY" : 442.81, + "placementX" : 304.588, + "placementY" : 442.81, + "placementWidth" : 77.826, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.826, + "contentHeight" : 12.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Employer_1[1]", "entityName" : "Employer_1", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 1, - "depth" : 9, - "layer" : 9, + "depth" : 13, + "layer" : 13, "computedX" : 304.588, "computedY" : 431.53, "placementX" : 304.588, @@ -4604,23 +4994,53 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/Highlights_1[2]", - "entityName" : "Highlights_1", - "entityKind" : "ListNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Highlights_1[2]", + "entityName" : "Highlights_1", + "entityKind" : "ListNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 304.588, + "computedY" : 374.61, + "placementX" : 304.588, + "placementY" : 374.61, + "placementWidth" : 220.671, + "placementHeight" : 49.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 220.671, + "contentHeight" : 49.92, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", "childIndex" : 2, - "depth" : 9, - "layer" : 9, - "computedX" : 304.588, - "computedY" : 374.61, - "placementX" : 304.588, - "placementY" : 374.61, - "placementWidth" : 220.671, - "placementHeight" : 49.92, + "depth" : 8, + "layer" : 8, + "computedX" : 214.01, + "computedY" : 274.21, + "placementX" : 214.01, + "placementY" : 274.21, + "placementWidth" : 352.466, + "placementHeight" : 80.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 220.671, - "contentHeight" : 49.92, + "contentWidth" : 352.466, + "contentHeight" : 80.8, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4634,13 +5054,13 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]", - "entityName" : "ExperienceEntry_2Stack", - "entityKind" : "LayerStackNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]", - "childIndex" : 3, - "depth" : 5, - "layer" : 5, + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, "computedX" : 214.01, "computedY" : 274.21, "placementX" : 214.01, @@ -4664,13 +5084,13 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]", - "entityName" : "ExperienceEntry_2Layer", - "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, + "depth" : 10, + "layer" : 10, "computedX" : 214.01, "computedY" : 274.21, "placementX" : 214.01, @@ -4694,13 +5114,13 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]", - "entityName" : "ExperienceEntry_2", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, "entityKind" : "RowNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, + "depth" : 11, + "layer" : 11, "computedX" : 214.01, "computedY" : 274.21, "placementX" : 214.01, @@ -4724,13 +5144,43 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/Period_2[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 214.01, + "computedY" : 345.65, + "placementX" : 214.01, + "placementY" : 345.65, + "placementWidth" : 44.71, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.71, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Period_2[0]", "entityName" : "Period_2", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, + "depth" : 13, + "layer" : 13, "computedX" : 214.01, "computedY" : 345.65, "placementX" : 214.01, @@ -4754,23 +5204,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]", - "entityName" : "EntryBody_2", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 1, - "depth" : 8, - "layer" : 8, - "computedX" : 288.588, - "computedY" : 274.21, - "placementX" : 288.588, - "placementY" : 274.21, - "placementWidth" : 213.35, - "placementHeight" : 80.8, + "depth" : 12, + "layer" : 12, + "computedX" : 285.488, + "computedY" : 348.81, + "placementX" : 285.488, + "placementY" : 348.81, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 213.35, - "contentHeight" : 80.8, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4781,30 +5231,30 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 16.0 + "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]", - "entityName" : "MarkerCap_2", - "entityKind" : "LayerStackNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, - "computedX" : 304.588, - "computedY" : 342.41, - "placementX" : 304.588, - "placementY" : 342.41, - "placementWidth" : 92.935, - "placementHeight" : 12.6, + "depth" : 13, + "layer" : 13, + "computedX" : 285.488, + "computedY" : 348.81, + "placementX" : 285.488, + "placementY" : 348.81, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 92.935, - "contentHeight" : 12.6, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 3.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -4814,23 +5264,23 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]/RoleLayer_2[0]", - "entityName" : "RoleLayer_2", - "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", "childIndex" : 0, - "depth" : 10, - "layer" : 10, - "computedX" : 304.588, - "computedY" : 342.41, - "placementX" : 304.588, - "placementY" : 342.41, - "placementWidth" : 92.935, - "placementHeight" : 12.6, + "depth" : 14, + "layer" : 14, + "computedX" : 285.488, + "computedY" : 348.81, + "placementX" : 285.488, + "placementY" : 348.81, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 92.935, - "contentHeight" : 12.6, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4844,23 +5294,53 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]/RoleLayer_2[0]/Role_2[0]", - "entityName" : "Role_2", - "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]/RoleLayer_2[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, - "depth" : 11, - "layer" : 11, - "computedX" : 304.588, - "computedY" : 342.41, - "placementX" : 304.588, - "placementY" : 342.41, - "placementWidth" : 92.935, - "placementHeight" : 12.6, + "depth" : 15, + "layer" : 15, + "computedX" : 285.488, + "computedY" : 348.81, + "placementX" : 285.488, + "placementY" : 348.81, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 92.935, - "contentHeight" : 12.6, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 285.488, + "computedY" : 348.81, + "placementX" : 285.488, + "placementY" : 348.81, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4874,13 +5354,13 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]/MarkerRing_2[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/MarkerRing_2[0]", "entityName" : "MarkerRing_2", "entityKind" : "EllipseNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]", - "childIndex" : 1, - "depth" : 10, - "layer" : 10, + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, "computedX" : 285.488, "computedY" : 348.81, "placementX" : 285.488, @@ -4904,13 +5384,73 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/Employer_2[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 12, + "layer" : 12, + "computedX" : 304.588, + "computedY" : 274.21, + "placementX" : 304.588, + "placementY" : 274.21, + "placementWidth" : 197.35, + "placementHeight" : 80.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 197.35, + "contentHeight" : 80.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Role_2[0]", + "entityName" : "Role_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 304.588, + "computedY" : 342.41, + "placementX" : 304.588, + "placementY" : 342.41, + "placementWidth" : 92.935, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.935, + "contentHeight" : 12.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Employer_2[1]", "entityName" : "Employer_2", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 1, - "depth" : 9, - "layer" : 9, + "depth" : 13, + "layer" : 13, "computedX" : 304.588, "computedY" : 331.13, "placementX" : 304.588, @@ -4934,13 +5474,13 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/Highlights_2[2]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Highlights_2[2]", "entityName" : "Highlights_2", "entityKind" : "ListNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 2, - "depth" : 9, - "layer" : 9, + "depth" : 13, + "layer" : 13, "computedX" : 304.588, "computedY" : 274.21, "placementX" : 304.588, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java index 60ca50868..a57fb7a70 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java @@ -1,9 +1,11 @@ package com.demcha.compose.document.templates.cv.presets; import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.LayerAlign; import com.demcha.compose.document.node.ListMarker; import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; import com.demcha.compose.document.templates.cv.components.SectionLookup; import com.demcha.compose.document.templates.cv.data.CvEntry; import com.demcha.compose.document.templates.cv.data.CvIdentity; @@ -20,16 +22,15 @@ import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.EMPLOYER_TO_HIGHLIGHTS; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ENTRY_GAP; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ENTRY_INDENT; -import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ENTRY_WEIGHT; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.EXPERIENCE_TO_ENTRIES; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.HIGHLIGHT_ITEM_GAP; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.HIGHLIGHT_LEADING; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MAIN_CONTENT_WIDTH; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MAIN_PAD_LEFT; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MAIN_PAD_RIGHT; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MAIN_PAD_TOP; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MARKER_DIAMETER; -import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MARKER_WEIGHT; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MASTHEAD_RULE_THICKNESS; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MASTHEAD_RULE_WIDTH; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MASTHEAD_TO_TITLE; @@ -47,9 +48,7 @@ import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.TITLE_TO_RULE; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.textStyle; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.tracked; -import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.layeredRow; import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.mainHeading; -import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.marker; /** * The paper right column: the two-tone name over its tracked role, the @@ -148,40 +147,63 @@ private static void renderExperience(SectionBuilder main, EntriesSection experie block.margin((float) SUMMARY_TO_EXPERIENCE, 0f, 0f, 0f); block.keepTogether(); mainHeading(block, experience.title()); - List entries = experience.entries(); + renderExperienceTimeline(block, experience.entries()); + }); + } + + /** + * The roles, on one rail. + * + *

      Three columns now, where the row had two: the marker has a column of its own and the + * rail runs through its centre, so it can no longer be painted through. The leading column + * carries the date plus the half marker the old date cell lent it, which is what keeps the + * rail on the same line the body's border drew.

      + * + *

      Wrapped in a layer because a row nested in a row cell is refused and this sheet's main + * column is one — the same wrapper the entries already went through.

      + */ + private static void renderExperienceTimeline(SectionBuilder block, List entries) { + SectionBuilder holder = new SectionBuilder(); + holder.name("ExperienceRailHolder"); + holder.spacing(0); + holder.margin(new DocumentInsets(EXPERIENCE_TO_ENTRIES, 0, 0, 0)); + holder.addTimeline(timeline -> { + timeline.markerOnRail() + .connector(RULE, RULE_THICKNESS) + // The old date cell, less the indent the marker gap now supplies: a row + // spaces every pair of columns, so the gap is paid once before the axis + // and once after it. + .leadingColumn(DocumentRowColumn.fixed( + DATE_WEIGHT * MAIN_CONTENT_WIDTH + MARKER_DIAMETER - ENTRY_INDENT)) + .axisWidth(MARKER_DIAMETER) + .markerGap(ENTRY_INDENT - MARKER_DIAMETER / 2.0) + .gutter(0) + .spacing(ENTRY_GAP); for (int i = 0; i < entries.size(); i++) { CvEntry entry = entries.get(i); - boolean first = i == 0; - boolean last = i == entries.size() - 1; int index = i; - layeredRow(block, "ExperienceEntry_" + index, - first ? EXPERIENCE_TO_ENTRIES : 0.0, 0.0, - row -> { - row.spacing(0); - // Two cells, not three. Giving the marker a column - // of its own would put it in a different node from - // the rail, leaving the rail free to paint straight - // through it; the date column carries that width - // instead, so the body's left border lands in - // exactly the same place. - row.weights(DATE_WEIGHT + MARKER_WEIGHT, ENTRY_WEIGHT); - row.addParagraph(p -> p - .name("Period_" + index) - .text(entry.date()) - .textStyle(textStyle(DETAIL_SIZE, ACCENT, false))); - row.addSection("EntryBody_" + index, body -> - renderEntryBody(body, entry, index, last)); - }); + timeline.entry(CharcoalGoldWidgets.ringMarker(index), e -> e + .leading(date -> date.addParagraph(p -> p + .name("Period_" + index) + .text(entry.date()) + .textStyle(textStyle(DETAIL_SIZE, ACCENT, false)))) + .content(body -> renderEntryBody(body, entry, index))); } }); + DocumentNode node = holder.build(); + block.addLayerStack(stack -> stack + .name("ExperienceRail") + .layer(node, LayerAlign.TOP_LEFT, 0)); } - private static void renderEntryBody(SectionBuilder body, CvEntry entry, - int index, boolean last) { + private static void renderEntryBody(SectionBuilder body, CvEntry entry, int index) { body.spacing(0); - body.accentLeft(RULE, RULE_THICKNESS); - body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, (float) ENTRY_INDENT); - renderRoleWithMarker(body, entry, index); + body.addParagraph(p -> { + p.name("Role_" + index); + p.textStyle(textStyle(ROLE_SIZE, INK, true)); + p.margin(new DocumentInsets(0, 0, ROLE_TO_EMPLOYER, 0)); + CharcoalGoldText.title(p, entry, textStyle(ROLE_SIZE, INK, true)); + }); body.addParagraph(p -> p .name("Employer_" + index) .text(employerLine(entry)) @@ -214,20 +236,4 @@ private static String employerLine(CvEntry entry) { * measures — and half its diameter left of the body's border, which puts * the ring centred on the rail.

      */ - private static void renderRoleWithMarker(SectionBuilder body, CvEntry entry, int index) { - SectionBuilder titleLayer = new SectionBuilder(); - titleLayer.name("RoleLayer_" + index); - titleLayer.spacing(0); - titleLayer.addParagraph(p -> { - p.name("Role_" + index).textStyle(textStyle(ROLE_SIZE, INK, true)); - CharcoalGoldText.title(p, entry, textStyle(ROLE_SIZE, INK, true)); - }); - body.addLayerStack(stack -> stack - .name("MarkerCap_" + index) - .margin(new DocumentInsets(0, 0, ROLE_TO_EMPLOYER, 0)) - .layer(titleLayer.build(), LayerAlign.TOP_LEFT, 0) - .position(marker(index), - -(ENTRY_INDENT + MARKER_DIAMETER / 2.0), 0.0, - LayerAlign.TOP_LEFT, 1)); - } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldWidgets.java index 8486ed15d..38bda1ece 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldWidgets.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldWidgets.java @@ -4,6 +4,7 @@ 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.dsl.TimelineMarker; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.LayerAlign; import com.demcha.compose.document.node.RowVerticalAlign; @@ -118,14 +119,19 @@ static void layeredRow(SectionBuilder parent, String name, double marginTop, .layer(layer.build(), LayerAlign.TOP_LEFT, 0)); } - /** The hollow ring that caps a role on the experience rail. */ - static DocumentNode marker(int index) { - return new EllipseBuilder() - .name("MarkerRing_" + index) - .circle(MARKER_DIAMETER) - .fillColor(PAPER) - .stroke(DocumentStroke.of(INK, 0.8)) - .build(); + /** + * The hollow ring that caps a role on the experience rail, as a timeline marker. + * + *

      Declared rather than drawn with {@link com.demcha.compose.document.dsl.TimelineMarker#circle} + * so the ring keeps the node name the gates read it by.

      + */ + static TimelineMarker ringMarker(int index) { + return TimelineMarker.custom(MARKER_DIAMETER, MARKER_DIAMETER, + column -> column.addEllipse(ellipse -> ellipse + .name("MarkerRing_" + index) + .circle(MARKER_DIAMETER) + .fillColor(PAPER) + .stroke(DocumentStroke.of(INK, 0.8)))); } /** The two spaces this design leaves between a mark and the text after it. */ From 7852d5165dc9584916e936c8d888cf4b788b1c1e Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 10:06:41 +0100 Subject: [PATCH 54/85] refactor(templates): stop Navy Sidebar's rail at its last marker, by saying so The rail was the section left accent, and an accent runs the full height of what its section holds - so the last role body was composed in a sibling section, ExperienceTail, outside the rail, purely to keep the line from running on to the foot of the block. The javadoc said as much. MARKER_TO_MARKER says it directly, and the sibling section is gone. The rail ends move, and that is the point of the change. Measured: the bottom end 327.937 -> 331.337 and the top end 613.487 -> 610.087, each shorter by 3.4 - one marker radius - because the extent now runs between the marker anchor points rather than between the disc edges the accent happened to reach. The discs are opaque and the rail draws beneath them, so the retired segments were already hidden: rendered against the committed baseline the page differs by two pixels, both at x=213 (the rail) and at y=228 and y=513, which are the two ends and nothing else. Well inside the gate budget, so the baseline is left as it is rather than re-recorded on this host. Everything else holds. 79 of the 87 nodes keep name, kind, x, y, width, height and page ownership; markers stay at x=209.697 y=606.687/467.312/327.938, titles, employers and highlights are untouched, one page, no node spans pages. The head band and the dates move from the rail x to the content x (213.097 -> 232.097, width 345.679 -> 326.679) because the marker has left the band for the axis column; both keep the right edge 558.776, so the right-aligned dates render where they did. The engine contract this leans on is already pinned upstream by TimelineRailGeometryTest - markerToMarkerRunsBetweenTheAnchorPointsItIsNamedFor and markerToMarkerStopsAtTheMarkersAndEntryBoundsDoesNot - both green here. --- .../cv-v2/navy_sidebar_layout.json | 1432 ++++++++++++++--- .../templates/cv/presets/NavySidebarMain.java | 94 +- 2 files changed, 1240 insertions(+), 286 deletions(-) diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/navy_sidebar_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/navy_sidebar_layout.json index fe432c744..f467275c7 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/navy_sidebar_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/navy_sidebar_layout.json @@ -1606,26 +1606,26 @@ }, { "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", "entityName" : "ExperienceRail", - "entityKind" : "SectionNode", + "entityKind" : "LayerStackNode", "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]", "childIndex" : 1, "depth" : 5, "layer" : 5, - "computedX" : 213.097, - "computedY" : 327.937, - "placementX" : 213.097, - "placementY" : 327.937, - "placementWidth" : 345.679, - "placementHeight" : 285.55, + "computedX" : 202.197, + "computedY" : 258.175, + "placementX" : 202.197, + "placementY" : 258.175, + "placementWidth" : 356.579, + "placementHeight" : 370.675, "startPage" : 0, "endPage" : 0, - "contentWidth" : 345.679, - "contentHeight" : 285.55, + "contentWidth" : 356.579, + "contentHeight" : 370.675, "margin" : { - "top" : 15.363, + "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 10.9 + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1634,22 +1634,322 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]", - "entityName" : "EntryHead_MarketingManager", - "entityKind" : "ShapeContainerNode", + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]", + "entityName" : "ExperienceRailHolder", + "entityKind" : "SectionNode", "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", "childIndex" : 0, "depth" : 6, "layer" : 6, - "computedX" : 213.097, + "computedX" : 209.697, + "computedY" : 258.175, + "placementX" : 209.697, + "placementY" : 258.175, + "placementWidth" : 349.079, + "placementHeight" : 355.312, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.079, + "contentHeight" : 355.312, + "margin" : { + "top" : 15.363, + "right" : 0.0, + "bottom" : 0.0, + "left" : 7.5 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 209.697, + "computedY" : 258.175, + "placementX" : 209.697, + "placementY" : 258.175, + "placementWidth" : 349.079, + "placementHeight" : 355.312, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.079, + "contentHeight" : 355.312, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 209.697, + "computedY" : 474.112, + "placementX" : 209.697, + "placementY" : 474.112, + "placementWidth" : 349.079, + "placementHeight" : 139.375, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.079, + "contentHeight" : 139.375, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 209.697, + "computedY" : 474.112, + "placementX" : 209.697, + "placementY" : 474.112, + "placementWidth" : 349.079, + "placementHeight" : 139.375, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.079, + "contentHeight" : 139.375, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 26.363, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 209.697, + "computedY" : 500.475, + "placementX" : 209.697, + "placementY" : 500.475, + "placementWidth" : 349.079, + "placementHeight" : 113.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.079, + "contentHeight" : 113.012, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 209.697, + "computedY" : 500.475, + "placementX" : 209.697, + "placementY" : 500.475, + "placementWidth" : 349.079, + "placementHeight" : 113.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.079, + "contentHeight" : 113.012, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 209.697, + "computedY" : 606.687, + "placementX" : 209.697, + "placementY" : 606.687, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 209.697, + "computedY" : 606.687, + "placementX" : 209.697, + "placementY" : 606.687, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 209.697, + "computedY" : 606.687, + "placementX" : 209.697, + "placementY" : 606.687, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 209.697, + "computedY" : 606.687, + "placementX" : 209.697, + "placementY" : 606.687, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 209.697, "computedY" : 606.687, - "placementX" : 213.097, + "placementX" : 209.697, "placementY" : 606.687, - "placementWidth" : 345.679, + "placementWidth" : 6.8, "placementHeight" : 6.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 345.679, + "contentWidth" : 6.8, "contentHeight" : 6.8, "margin" : { "top" : 0.0, @@ -1664,13 +1964,13 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]/Marker_MarketingManager[0]", + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_MarketingManager[0]", "entityName" : "Marker_MarketingManager", "entityKind" : "EllipseNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, + "depth" : 17, + "layer" : 17, "computedX" : 209.697, "computedY" : 606.687, "placementX" : 209.697, @@ -1694,23 +1994,683 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]/JobTitle_MarketingManager[1]", - "entityName" : "JobTitle_MarketingManager", - "entityKind" : "ParagraphNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]", + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 1, - "depth" : 7, - "layer" : 7, + "depth" : 12, + "layer" : 12, "computedX" : 232.097, - "computedY" : 604.05, + "computedY" : 500.475, "placementX" : 232.097, - "placementY" : 604.05, - "placementWidth" : 129.157, - "placementHeight" : 13.8, + "placementY" : 500.475, + "placementWidth" : 326.679, + "placementHeight" : 113.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 326.679, + "contentHeight" : 113.012, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingManager[0]", + "entityName" : "EntryHead_MarketingManager", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 232.097, + "computedY" : 606.687, + "placementX" : 232.097, + "placementY" : 606.687, + "placementWidth" : 326.679, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 326.679, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingManager[0]/JobTitle_MarketingManager[0]", + "entityName" : "JobTitle_MarketingManager", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingManager[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 232.097, + "computedY" : 604.05, + "placementX" : 232.097, + "placementY" : 604.05, + "placementWidth" : 129.157, + "placementHeight" : 13.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 129.157, + "contentHeight" : 13.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingManager[0]/JobDates_MarketingManager[1]", + "entityName" : "JobDates_MarketingManager", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingManager[0]", + "childIndex" : 1, + "depth" : 14, + "layer" : 14, + "computedX" : 232.097, + "computedY" : 605.362, + "placementX" : 232.097, + "placementY" : 605.362, + "placementWidth" : 326.679, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 326.679, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_MarketingManager[1]", + "entityName" : "Employer_MarketingManager", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 232.097, + "computedY" : 588.525, + "placementX" : 232.097, + "placementY" : 588.525, + "placementWidth" : 146.997, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.997, + "contentHeight" : 10.8, + "margin" : { + "top" : 7.363, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_MarketingManager[2]", + "entityName" : "Highlights_MarketingManager", + "entityKind" : "ListNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 232.097, + "computedY" : 500.475, + "placementX" : 232.097, + "placementY" : 500.475, + "placementWidth" : 313.803, + "placementHeight" : 81.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.803, + "contentHeight" : 81.05, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 209.697, + "computedY" : 334.737, + "placementX" : 209.697, + "placementY" : 334.737, + "placementWidth" : 349.079, + "placementHeight" : 139.375, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.079, + "contentHeight" : 139.375, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 209.697, + "computedY" : 334.737, + "placementX" : 209.697, + "placementY" : 334.737, + "placementWidth" : 349.079, + "placementHeight" : 139.375, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.079, + "contentHeight" : 139.375, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 26.363, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 209.697, + "computedY" : 361.1, + "placementX" : 209.697, + "placementY" : 361.1, + "placementWidth" : 349.079, + "placementHeight" : 113.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.079, + "contentHeight" : 113.012, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 209.697, + "computedY" : 361.1, + "placementX" : 209.697, + "placementY" : 361.1, + "placementWidth" : 349.079, + "placementHeight" : 113.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.079, + "contentHeight" : 113.012, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 209.697, + "computedY" : 467.312, + "placementX" : 209.697, + "placementY" : 467.312, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 209.697, + "computedY" : 467.312, + "placementX" : 209.697, + "placementY" : 467.312, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 209.697, + "computedY" : 467.312, + "placementX" : 209.697, + "placementY" : 467.312, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 209.697, + "computedY" : 467.312, + "placementX" : 209.697, + "placementY" : 467.312, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 209.697, + "computedY" : 467.312, + "placementX" : 209.697, + "placementY" : 467.312, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_MarketingSpecialist[0]", + "entityName" : "Marker_MarketingSpecialist", + "entityKind" : "EllipseNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 209.697, + "computedY" : 467.312, + "placementX" : 209.697, + "placementY" : 467.312, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 232.097, + "computedY" : 361.1, + "placementX" : 232.097, + "placementY" : 361.1, + "placementWidth" : 326.679, + "placementHeight" : 113.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 326.679, + "contentHeight" : 113.012, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingSpecialist[0]", + "entityName" : "EntryHead_MarketingSpecialist", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 232.097, + "computedY" : 467.312, + "placementX" : 232.097, + "placementY" : 467.312, + "placementWidth" : 326.679, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 326.679, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingSpecialist[0]/JobTitle_MarketingSpecialist[0]", + "entityName" : "JobTitle_MarketingSpecialist", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingSpecialist[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 232.097, + "computedY" : 464.675, + "placementX" : 232.097, + "placementY" : 464.675, + "placementWidth" : 132.756, + "placementHeight" : 13.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.756, + "contentHeight" : 13.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingSpecialist[0]/JobDates_MarketingSpecialist[1]", + "entityName" : "JobDates_MarketingSpecialist", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingSpecialist[0]", + "childIndex" : 1, + "depth" : 14, + "layer" : 14, + "computedX" : 232.097, + "computedY" : 465.987, + "placementX" : 232.097, + "placementY" : 465.987, + "placementWidth" : 326.679, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 326.679, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_MarketingSpecialist[1]", + "entityName" : "Employer_MarketingSpecialist", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 232.097, + "computedY" : 449.15, + "placementX" : 232.097, + "placementY" : 449.15, + "placementWidth" : 146.997, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.997, + "contentHeight" : 10.8, + "margin" : { + "top" : 7.363, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_MarketingSpecialist[2]", + "entityName" : "Highlights_MarketingSpecialist", + "entityKind" : "ListNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 232.097, + "computedY" : 361.1, + "placementX" : 232.097, + "placementY" : 361.1, + "placementWidth" : 324.765, + "placementHeight" : 81.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 324.765, + "contentHeight" : 81.05, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 209.697, + "computedY" : 258.175, + "placementX" : 209.697, + "placementY" : 258.175, + "placementWidth" : 349.079, + "placementHeight" : 76.562, "startPage" : 0, "endPage" : 0, - "contentWidth" : 129.157, - "contentHeight" : 13.8, + "contentWidth" : 349.079, + "contentHeight" : 76.562, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1724,23 +2684,23 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]/JobDates_MarketingManager[2]", - "entityName" : "JobDates_MarketingManager", - "entityKind" : "ParagraphNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]", - "childIndex" : 2, - "depth" : 7, - "layer" : 7, - "computedX" : 213.097, - "computedY" : 605.362, - "placementX" : 213.097, - "placementY" : 605.362, - "placementWidth" : 345.679, - "placementHeight" : 10.8, + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 209.697, + "computedY" : 258.175, + "placementX" : 209.697, + "placementY" : 258.175, + "placementWidth" : 349.079, + "placementHeight" : 76.562, "startPage" : 0, "endPage" : 0, - "contentWidth" : 345.679, - "contentHeight" : 10.8, + "contentWidth" : 349.079, + "contentHeight" : 76.562, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1754,28 +2714,28 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/Employer_MarketingManager[1]", - "entityName" : "Employer_MarketingManager", - "entityKind" : "ParagraphNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", - "childIndex" : 1, - "depth" : 6, - "layer" : 6, - "computedX" : 232.097, - "computedY" : 588.525, - "placementX" : 232.097, - "placementY" : 588.525, - "placementWidth" : 146.997, - "placementHeight" : 10.8, + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 209.697, + "computedY" : 258.175, + "placementX" : 209.697, + "placementY" : 258.175, + "placementWidth" : 349.079, + "placementHeight" : 76.562, "startPage" : 0, "endPage" : 0, - "contentWidth" : 146.997, - "contentHeight" : 10.8, + "contentWidth" : 349.079, + "contentHeight" : 76.562, "margin" : { - "top" : 7.363, + "top" : 0.0, "right" : 0.0, - "bottom" : 7.0, - "left" : 19.0 + "bottom" : 0.0, + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1784,28 +2744,28 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/Highlights_MarketingManager[2]", - "entityName" : "Highlights_MarketingManager", - "entityKind" : "ListNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", - "childIndex" : 2, - "depth" : 6, - "layer" : 6, - "computedX" : 232.097, - "computedY" : 500.475, - "placementX" : 232.097, - "placementY" : 500.475, - "placementWidth" : 313.803, - "placementHeight" : 81.05, + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 209.697, + "computedY" : 258.175, + "placementX" : 209.697, + "placementY" : 258.175, + "placementWidth" : 349.079, + "placementHeight" : 76.562, "startPage" : 0, "endPage" : 0, - "contentWidth" : 313.803, - "contentHeight" : 81.05, + "contentWidth" : 349.079, + "contentHeight" : 76.562, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 26.363, - "left" : 19.0 + "bottom" : 0.0, + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1814,22 +2774,22 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]", - "entityName" : "EntryHead_MarketingSpecialist", - "entityKind" : "ShapeContainerNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", - "childIndex" : 3, - "depth" : 6, - "layer" : 6, - "computedX" : 213.097, - "computedY" : 467.312, - "placementX" : 213.097, - "placementY" : 467.312, - "placementWidth" : 345.679, + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 209.697, + "computedY" : 327.937, + "placementX" : 209.697, + "placementY" : 327.937, + "placementWidth" : 6.8, "placementHeight" : 6.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 345.679, + "contentWidth" : 6.8, "contentHeight" : 6.8, "margin" : { "top" : 0.0, @@ -1844,17 +2804,17 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]/Marker_MarketingSpecialist[0]", - "entityName" : "Marker_MarketingSpecialist", - "entityKind" : "EllipseNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]", + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, + "depth" : 13, + "layer" : 13, "computedX" : 209.697, - "computedY" : 467.312, + "computedY" : 327.937, "placementX" : 209.697, - "placementY" : 467.312, + "placementY" : 327.937, "placementWidth" : 6.8, "placementHeight" : 6.8, "startPage" : 0, @@ -1874,23 +2834,23 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]/JobTitle_MarketingSpecialist[1]", - "entityName" : "JobTitle_MarketingSpecialist", - "entityKind" : "ParagraphNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, - "computedX" : 232.097, - "computedY" : 464.675, - "placementX" : 232.097, - "placementY" : 464.675, - "placementWidth" : 132.756, - "placementHeight" : 13.8, + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 209.697, + "computedY" : 327.937, + "placementX" : 209.697, + "placementY" : 327.937, + "placementWidth" : 6.8, + "placementHeight" : 6.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 132.756, - "contentHeight" : 13.8, + "contentWidth" : 6.8, + "contentHeight" : 6.8, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1904,23 +2864,23 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]/JobDates_MarketingSpecialist[2]", - "entityName" : "JobDates_MarketingSpecialist", - "entityKind" : "ParagraphNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]", - "childIndex" : 2, - "depth" : 7, - "layer" : 7, - "computedX" : 213.097, - "computedY" : 465.987, - "placementX" : 213.097, - "placementY" : 465.987, - "placementWidth" : 345.679, - "placementHeight" : 10.8, + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 209.697, + "computedY" : 327.937, + "placementX" : 209.697, + "placementY" : 327.937, + "placementWidth" : 6.8, + "placementHeight" : 6.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 345.679, - "contentHeight" : 10.8, + "contentWidth" : 6.8, + "contentHeight" : 6.8, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1934,28 +2894,28 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/Employer_MarketingSpecialist[4]", - "entityName" : "Employer_MarketingSpecialist", - "entityKind" : "ParagraphNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", - "childIndex" : 4, - "depth" : 6, - "layer" : 6, - "computedX" : 232.097, - "computedY" : 449.15, - "placementX" : 232.097, - "placementY" : 449.15, - "placementWidth" : 146.997, - "placementHeight" : 10.8, + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 209.697, + "computedY" : 327.937, + "placementX" : 209.697, + "placementY" : 327.937, + "placementWidth" : 6.8, + "placementHeight" : 6.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 146.997, - "contentHeight" : 10.8, + "contentWidth" : 6.8, + "contentHeight" : 6.8, "margin" : { - "top" : 7.363, + "top" : 0.0, "right" : 0.0, - "bottom" : 7.0, - "left" : 19.0 + "bottom" : 0.0, + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1964,28 +2924,28 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/Highlights_MarketingSpecialist[5]", - "entityName" : "Highlights_MarketingSpecialist", - "entityKind" : "ListNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", - "childIndex" : 5, - "depth" : 6, - "layer" : 6, - "computedX" : 232.097, - "computedY" : 361.1, - "placementX" : 232.097, - "placementY" : 361.1, - "placementWidth" : 324.765, - "placementHeight" : 81.05, + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_MarketingIntern[0]", + "entityName" : "Marker_MarketingIntern", + "entityKind" : "EllipseNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 209.697, + "computedY" : 327.937, + "placementX" : 209.697, + "placementY" : 327.937, + "placementWidth" : 6.8, + "placementHeight" : 6.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 324.765, - "contentHeight" : 81.05, + "contentWidth" : 6.8, + "contentHeight" : 6.8, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 26.363, - "left" : 19.0 + "bottom" : 0.0, + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1994,23 +2954,23 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]", - "entityName" : "EntryHead_MarketingIntern", - "entityKind" : "ShapeContainerNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", - "childIndex" : 6, - "depth" : 6, - "layer" : 6, - "computedX" : 213.097, - "computedY" : 327.937, - "placementX" : 213.097, - "placementY" : 327.937, - "placementWidth" : 345.679, - "placementHeight" : 6.8, + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 232.097, + "computedY" : 258.175, + "placementX" : 232.097, + "placementY" : 258.175, + "placementWidth" : 326.679, + "placementHeight" : 76.562, "startPage" : 0, "endPage" : 0, - "contentWidth" : 345.679, - "contentHeight" : 6.8, + "contentWidth" : 326.679, + "contentHeight" : 76.562, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2024,22 +2984,22 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]/Marker_MarketingIntern[0]", - "entityName" : "Marker_MarketingIntern", - "entityKind" : "EllipseNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]", + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingIntern[0]", + "entityName" : "EntryHead_MarketingIntern", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 209.697, + "depth" : 13, + "layer" : 13, + "computedX" : 232.097, "computedY" : 327.937, - "placementX" : 209.697, + "placementX" : 232.097, "placementY" : 327.937, - "placementWidth" : 6.8, + "placementWidth" : 326.679, "placementHeight" : 6.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 6.8, + "contentWidth" : 326.679, "contentHeight" : 6.8, "margin" : { "top" : 0.0, @@ -2054,13 +3014,13 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]/JobTitle_MarketingIntern[1]", + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingIntern[0]/JobTitle_MarketingIntern[0]", "entityName" : "JobTitle_MarketingIntern", "entityKind" : "ParagraphNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingIntern[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, "computedX" : 232.097, "computedY" : 325.3, "placementX" : 232.097, @@ -2084,22 +3044,22 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]/JobDates_MarketingIntern[2]", + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingIntern[0]/JobDates_MarketingIntern[1]", "entityName" : "JobDates_MarketingIntern", "entityKind" : "ParagraphNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]", - "childIndex" : 2, - "depth" : 7, - "layer" : 7, - "computedX" : 213.097, + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_MarketingIntern[0]", + "childIndex" : 1, + "depth" : 14, + "layer" : 14, + "computedX" : 232.097, "computedY" : 326.612, - "placementX" : 213.097, + "placementX" : 232.097, "placementY" : 326.612, - "placementWidth" : 345.679, + "placementWidth" : 326.679, "placementHeight" : 10.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 345.679, + "contentWidth" : 326.679, "contentHeight" : 10.8, "margin" : { "top" : 0.0, @@ -2114,43 +3074,13 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceTail[2]", - "entityName" : "ExperienceTail", - "entityKind" : "SectionNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]", - "childIndex" : 2, - "depth" : 5, - "layer" : 5, - "computedX" : 213.097, - "computedY" : 258.175, - "placementX" : 213.097, - "placementY" : 258.175, - "placementWidth" : 293.005, - "placementHeight" : 69.762, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 293.005, - "contentHeight" : 69.762, - "margin" : { - "top" : 0.0, - "right" : 0.0, - "bottom" : 0.0, - "left" : 10.9 - }, - "padding" : { - "top" : 0.0, - "right" : 0.0, - "bottom" : 0.0, - "left" : 0.0 - } - }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceTail[2]/Employer_MarketingIntern[0]", + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_MarketingIntern[1]", "entityName" : "Employer_MarketingIntern", "entityKind" : "ParagraphNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceTail[2]", - "childIndex" : 0, - "depth" : 6, - "layer" : 6, + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, "computedX" : 232.097, "computedY" : 309.775, "placementX" : 232.097, @@ -2165,7 +3095,7 @@ "top" : 7.363, "right" : 0.0, "bottom" : 7.0, - "left" : 19.0 + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -2174,13 +3104,13 @@ "left" : 0.0 } }, { - "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceTail[2]/Highlights_MarketingIntern[1]", + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_MarketingIntern[2]", "entityName" : "Highlights_MarketingIntern", "entityKind" : "ListNode", - "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceTail[2]", - "childIndex" : 1, - "depth" : 6, - "layer" : 6, + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, "computedX" : 232.097, "computedY" : 258.175, "placementX" : 232.097, @@ -2195,7 +3125,7 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 19.0 + "left" : 0.0 }, "padding" : { "top" : 0.0, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java index 2b266fbcd..fb8e7da91 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java @@ -1,13 +1,15 @@ package com.demcha.compose.document.templates.cv.presets; -import com.demcha.compose.document.dsl.EllipseBuilder; import com.demcha.compose.document.dsl.ParagraphBuilder; import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TimelineMarker; +import com.demcha.compose.document.dsl.TimelineRailExtent; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.LayerAlign; import com.demcha.compose.document.node.TextAlign; import com.demcha.compose.document.style.ClipPolicy; import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; import com.demcha.compose.document.style.DocumentTextDecoration; import com.demcha.compose.document.style.DocumentTextStyle; import com.demcha.compose.document.templates.core.text.MarkdownInline; @@ -165,34 +167,58 @@ private static void renderSummary(SectionBuilder section, ParagraphSection summa * The roles held, strung on a vertical rail with a filled marker at each * one. * - *

      The rail is the section's left accent, which runs the full height - * of what the section holds — so the last role's body is composed in a - * second section outside the rail, and the line stops at the last - * marker instead of running past it to the foot of the block.

      + *

      The rail stops at the last marker, which is what {@code MARKER_TO_MARKER} means. It + * used to be the section's left accent, and an accent runs the full height of what its + * section holds — so the last role's body was composed in a second section outside the + * rail to keep the line from running on to the foot of the block. The extent says it + * directly now, and that sibling section is gone.

      + * + *

      Wrapped in a layer because a row nested in a row cell is refused and this sheet's + * main column is one.

      */ private static void renderExperience(SectionBuilder section, EntriesSection experience) { sectionHeader(section, NavySidebarIcons.BRIEFCASE, experience.title()); - List entries = experience.entries(); - int last = entries.size() - 1; - section.addSection("ExperienceRail", rail -> { - rail.spacing(0); - // The rail starts where the first marker's band does, which is - // half a title's overhang below the heading. - rail.margin(new DocumentInsets( - HEADER_TO_BODY + TITLE_OVERFLOW, 0, 0, RAIL_MARGIN_LEFT)); - rail.accentLeft(RAIL, RAIL_WIDTH); - for (int i = 0; i < entries.size(); i++) { - renderEntryHead(rail, entries.get(i)); - if (i < last) { - renderEntryBody(rail, entries.get(i), ENTRY_GAP + TITLE_OVERFLOW); - } + SectionBuilder holder = new SectionBuilder(); + holder.name("ExperienceRailHolder"); + holder.spacing(0); + // The rail starts where the first marker's band does, which is half a title's + // overhang below the heading; the axis column centres the rail on itself, so the + // timeline starts half a marker further left than the accent did. + holder.margin(new DocumentInsets(HEADER_TO_BODY + TITLE_OVERFLOW, 0, 0, + RAIL_MARGIN_LEFT - MARKER_DIAMETER / 2.0)); + holder.addTimeline(timeline -> { + timeline.markerOnRail() + .rail(rail -> rail + .stroke(DocumentStroke.of(RAIL, RAIL_WIDTH)) + .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .axisWidth(MARKER_DIAMETER) + .markerGap(ENTRY_TEXT_INSET - MARKER_DIAMETER / 2.0) + .gutter(0) + .spacing(ENTRY_GAP + TITLE_OVERFLOW); + for (CvEntry entry : experience.entries()) { + timeline.entry(entryMarker(entry), e -> e.content(body -> renderEntry(body, entry))); } }); - section.addSection("ExperienceTail", tail -> { - tail.spacing(0); - tail.margin(new DocumentInsets(0, 0, 0, RAIL_MARGIN_LEFT)); - renderEntryBody(tail, entries.get(last), 0); - }); + DocumentNode node = holder.build(); + section.addLayerStack(stack -> stack + .name("ExperienceRail") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** The filled disc that marks a role, in a box as tall as the head band it rides. */ + private static TimelineMarker entryMarker(CvEntry entry) { + return TimelineMarker.custom(MARKER_DIAMETER, ENTRY_HEAD_BAND_HEIGHT, + column -> column.addEllipse(ellipse -> ellipse + .name("Marker_" + compact(entry.title())) + .circle(MARKER_DIAMETER) + .fillColor(NAVY))); + } + + /** One role: the head band carrying its title and dates, then the body. */ + private static void renderEntry(SectionBuilder body, CvEntry entry) { + body.spacing(0); + renderEntryHead(body, entry); + renderEntryBody(body, entry); } /** @@ -201,11 +227,6 @@ private static void renderExperience(SectionBuilder section, EntriesSection expe * of type are pulled up by half their own overhang to centre on it. */ private static void renderEntryHead(SectionBuilder rail, CvEntry entry) { - DocumentNode marker = new EllipseBuilder() - .name("Marker_" + compact(entry.title())) - .circle(MARKER_DIAMETER) - .fillColor(NAVY) - .build(); DocumentNode title = new ParagraphBuilder() .name("JobTitle_" + compact(entry.title())) .text(entry.title().toUpperCase(Locale.ROOT)) @@ -219,24 +240,27 @@ private static void renderEntryHead(SectionBuilder rail, CvEntry entry) { .align(TextAlign.RIGHT) .margin(DocumentInsets.zero()) .build(); + // The marker has left the band for the timeline's axis column, so the band starts at + // the content column and the title no longer walks in past the rail. rail.addContainer(head -> head .name("EntryHead_" + compact(entry.title())) - .rectangle(ENTRY_WIDTH, ENTRY_HEAD_BAND_HEIGHT) + .rectangle(ENTRY_WIDTH - ENTRY_TEXT_INSET, ENTRY_HEAD_BAND_HEIGHT) .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) - .position(marker, -MARKER_DIAMETER / 2.0, 0, LayerAlign.CENTER_LEFT) - .position(title, ENTRY_TEXT_INSET, -TITLE_OVERFLOW, LayerAlign.CENTER_LEFT) + .position(title, 0, -TITLE_OVERFLOW, LayerAlign.CENTER_LEFT) .position(dates, 0, -DATE_OVERFLOW, LayerAlign.CENTER_RIGHT)); } /** The employer in accent, then one bullet per line of the entry body. */ - private static void renderEntryBody(SectionBuilder rail, CvEntry entry, double gapBelow) { + private static void renderEntryBody(SectionBuilder rail, CvEntry entry) { + // No left inset: the content column already starts where the text did, and the gap + // below an entry is the timeline's spacing rather than the last list's bottom margin. rail.addParagraph(p -> p .name("Employer_" + compact(entry.title())) .text(entry.subtitle()) .textStyle(style(BODY_SIZE, ACCENT, DocumentTextDecoration.DEFAULT)) .margin(new DocumentInsets( ENTRY_TITLE_TO_EMPLOYER + TITLE_OVERFLOW, 0, - ENTRY_EMPLOYER_TO_BULLETS, ENTRY_TEXT_INSET))); + ENTRY_EMPLOYER_TO_BULLETS, 0))); List highlights = lines(entry.body()); if (!highlights.isEmpty()) { rail.addList(list -> list @@ -246,7 +270,7 @@ private static void renderEntryBody(SectionBuilder rail, CvEntry entry, double g .textStyle(body()) .lineSpacing(BULLET_LEADING) .itemSpacing(BULLET_ITEM_GAP) - .margin(new DocumentInsets(0, 0, gapBelow, ENTRY_TEXT_INSET))); + .margin(DocumentInsets.zero())); } } From f7a794f05480664be57e47dd0e852994434bcfd4 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 10:16:26 +0100 Subject: [PATCH 55/85] refactor(templates): stop Serif Headline's rail at its last marker, by saying so The same construction Navy Sidebar had, verified here rather than assumed: the rail was the section left accent, and an accent runs the full height of what its section holds, so the last role body was composed in a sibling ExperienceTail outside the rail to stop the line running on to the foot of the block. The javadoc said so, and the loop rendered bodies and separators only while i < last. MARKER_TO_MARKER says it directly; the sibling section is gone. The rail ends move by this preset own marker radius, not by Navy Sidebar. The marker is 6.395 across, so each end shortens by 3.1975: the bottom 381.894 -> 385.0915 and the top 638.644 -> 635.4465, because the extent runs between the marker anchor points rather than the disc edges the accent reached. Rendered against the committed baseline the page differs by two pixels, both at x=36 - the rail - at pdf y 638 and y 382, which are the two ends, with a maximum channel delta of 3. Measured with the budget and the per-pixel tolerance both at zero, then restored; at the gate settings the difference is nothing at all, so the baseline stands as recorded. Everything else holds. 235 = 227 identical + 8 removed, 266 = 227 identical + 39 added (11 named, 28 unnamed timeline wrappers). Markers stay at x=33.077, y=632.249/496.166/381.894; titles, employers, highlights and the entry separators keep content x=60.748; one page, nothing spans. The head band and the dates move from the rail x to the content x (36.275 -> 60.748, width 338.384 -> 313.91) because the marker has left the band for the axis column; the right edge holds at 374.659 -> 374.658, a rounding step, so the right-aligned dates render where they did. --- .../cv-v2/serif_headline_layout.json | 1570 +++++++++++++---- .../cv/presets/SerifHeadlineMain.java | 91 +- 2 files changed, 1309 insertions(+), 352 deletions(-) diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json index e124848d1..a743fc3bf 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json @@ -886,26 +886,776 @@ }, { "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", "entityName" : "ExperienceRail", - "entityKind" : "SectionNode", + "entityKind" : "LayerStackNode", "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]", "childIndex" : 1, "depth" : 4, "layer" : 4, - "computedX" : 36.275, - "computedY" : 381.894, - "placementX" : 36.275, - "placementY" : 381.894, - "placementWidth" : 338.384, - "placementHeight" : 256.75, + "computedX" : 31.682, + "computedY" : 321.477, + "placementX" : 31.682, + "placementY" : 321.477, + "placementWidth" : 342.976, + "placementHeight" : 335.917, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 342.976, + "contentHeight" : 335.917, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]", + "entityName" : "ExperienceRailHolder", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 33.077, + "computedY" : 321.477, + "placementX" : 33.077, + "placementY" : 321.477, + "placementWidth" : 341.581, + "placementHeight" : 317.167, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 317.167, + "margin" : { + "top" : 18.75, + "right" : 0.0, + "bottom" : 0.0, + "left" : 1.395 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 33.077, + "computedY" : 321.477, + "placementX" : 33.077, + "placementY" : 321.477, + "placementWidth" : 341.581, + "placementHeight" : 317.167, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 317.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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 33.077, + "computedY" : 502.561, + "placementX" : 33.077, + "placementY" : 502.561, + "placementWidth" : 341.581, + "placementHeight" : 136.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 136.083, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 33.077, + "computedY" : 502.561, + "placementX" : 33.077, + "placementY" : 502.561, + "placementWidth" : 341.581, + "placementHeight" : 136.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 136.083, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 33.077, + "computedY" : 502.561, + "placementX" : 33.077, + "placementY" : 502.561, + "placementWidth" : 341.581, + "placementHeight" : 136.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 136.083, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 33.077, + "computedY" : 502.561, + "placementX" : 33.077, + "placementY" : 502.561, + "placementWidth" : 341.581, + "placementHeight" : 136.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 136.083, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 33.077, + "computedY" : 632.249, + "placementX" : 33.077, + "placementY" : 632.249, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 33.077, + "computedY" : 632.249, + "placementX" : 33.077, + "placementY" : 632.249, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 33.077, + "computedY" : 632.249, + "placementX" : 33.077, + "placementY" : 632.249, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 33.077, + "computedY" : 632.249, + "placementX" : 33.077, + "placementY" : 632.249, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 33.077, + "computedY" : 632.249, + "placementX" : 33.077, + "placementY" : 632.249, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_SeniorSoftwareEngineer[0]", + "entityName" : "Marker_SeniorSoftwareEngineer", + "entityKind" : "EllipseNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 33.077, + "computedY" : 632.249, + "placementX" : 33.077, + "placementY" : 632.249, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 60.748, + "computedY" : 502.561, + "placementX" : 60.748, + "placementY" : 502.561, + "placementWidth" : 313.91, + "placementHeight" : 136.083, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.91, + "contentHeight" : 136.083, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_SeniorSoftwareEngineer[0]", + "entityName" : "EntryHead_SeniorSoftwareEngineer", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 60.748, + "computedY" : 632.249, + "placementX" : 60.748, + "placementY" : 632.249, + "placementWidth" : 313.91, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.91, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_SeniorSoftwareEngineer[0]/JobTitle_SeniorSoftwareEngineer[0]", + "entityName" : "JobTitle_SeniorSoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_SeniorSoftwareEngineer[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 60.748, + "computedY" : 630.118, + "placementX" : 60.748, + "placementY" : 630.118, + "placementWidth" : 109.812, + "placementHeight" : 11.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.812, + "contentHeight" : 11.626, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_SeniorSoftwareEngineer[0]/JobDates_SeniorSoftwareEngineer[1]", + "entityName" : "JobDates_SeniorSoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_SeniorSoftwareEngineer[0]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 60.748, + "computedY" : 631.006, + "placementX" : 60.748, + "placementY" : 631.006, + "placementWidth" : 313.91, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.91, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_SeniorSoftwareEngineer[1]", + "entityName" : "Employer_SeniorSoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 60.748, + "computedY" : 613.964, + "placementX" : 60.748, + "placementY" : 613.964, + "placementWidth" : 110.997, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.997, + "contentHeight" : 8.284, + "margin" : { + "top" : 10.001, + "right" : 0.0, + "bottom" : 8.153, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_SeniorSoftwareEngineer[2]", + "entityName" : "Highlights_SeniorSoftwareEngineer", + "entityKind" : "ListNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 12, + "layer" : 12, + "computedX" : 60.748, + "computedY" : 537.877, + "placementX" : 60.748, + "placementY" : 537.877, + "placementWidth" : 310.75, + "placementHeight" : 67.934, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 310.75, + "contentHeight" : 67.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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySeparator_SeniorSoftwareEngineer[3]", + "entityName" : "EntrySeparator_SeniorSoftwareEngineer", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 3, + "depth" : 12, + "layer" : 12, + "computedX" : 60.748, + "computedY" : 521.38, + "placementX" : 60.748, + "placementY" : 521.38, + "placementWidth" : 313.91, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.91, + "contentHeight" : 1.0, + "margin" : { + "top" : 15.497, + "right" : 0.0, + "bottom" : 18.819, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 33.077, + "computedY" : 388.288, + "placementX" : 33.077, + "placementY" : 388.288, + "placementWidth" : 341.581, + "placementHeight" : 114.272, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 114.272, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 33.077, + "computedY" : 388.288, + "placementX" : 33.077, + "placementY" : 388.288, + "placementWidth" : 341.581, + "placementHeight" : 114.272, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 114.272, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 33.077, + "computedY" : 388.288, + "placementX" : 33.077, + "placementY" : 388.288, + "placementWidth" : 341.581, + "placementHeight" : 114.272, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 114.272, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 33.077, + "computedY" : 388.288, + "placementX" : 33.077, + "placementY" : 388.288, + "placementWidth" : 341.581, + "placementHeight" : 114.272, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 114.272, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 33.077, + "computedY" : 496.166, + "placementX" : 33.077, + "placementY" : 496.166, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 33.077, + "computedY" : 496.166, + "placementX" : 33.077, + "placementY" : 496.166, + "placementWidth" : 6.395, + "placementHeight" : 6.395, "startPage" : 0, "endPage" : 0, - "contentWidth" : 338.384, - "contentHeight" : 256.75, + "contentWidth" : 6.395, + "contentHeight" : 6.395, "margin" : { - "top" : 18.75, + "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 4.592 + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -914,22 +1664,22 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]", - "entityName" : "EntryHead_SeniorSoftwareEngineer", - "entityKind" : "ShapeContainerNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", "childIndex" : 0, - "depth" : 5, - "layer" : 5, - "computedX" : 36.275, - "computedY" : 632.249, - "placementX" : 36.275, - "placementY" : 632.249, - "placementWidth" : 338.384, + "depth" : 13, + "layer" : 13, + "computedX" : 33.077, + "computedY" : 496.166, + "placementX" : 33.077, + "placementY" : 496.166, + "placementWidth" : 6.395, "placementHeight" : 6.395, "startPage" : 0, "endPage" : 0, - "contentWidth" : 338.384, + "contentWidth" : 6.395, "contentHeight" : 6.395, "margin" : { "top" : 0.0, @@ -944,17 +1694,77 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]/Marker_SeniorSoftwareEngineer[0]", - "entityName" : "Marker_SeniorSoftwareEngineer", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 33.077, + "computedY" : 496.166, + "placementX" : 33.077, + "placementY" : 496.166, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 33.077, + "computedY" : 496.166, + "placementX" : 33.077, + "placementY" : 496.166, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_SoftwareEngineer[0]", + "entityName" : "Marker_SoftwareEngineer", "entityKind" : "EllipseNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, + "depth" : 16, + "layer" : 16, "computedX" : 33.077, - "computedY" : 632.249, + "computedY" : 496.166, "placementX" : 33.077, - "placementY" : 632.249, + "placementY" : 496.166, "placementWidth" : 6.395, "placementHeight" : 6.395, "startPage" : 0, @@ -974,22 +1784,82 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]/JobTitle_SeniorSoftwareEngineer[1]", - "entityName" : "JobTitle_SeniorSoftwareEngineer", - "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 1, - "depth" : 6, - "layer" : 6, + "depth" : 11, + "layer" : 11, "computedX" : 60.748, - "computedY" : 630.118, + "computedY" : 388.288, "placementX" : 60.748, - "placementY" : 630.118, - "placementWidth" : 109.812, + "placementY" : 388.288, + "placementWidth" : 313.91, + "placementHeight" : 114.272, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.91, + "contentHeight" : 114.272, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_SoftwareEngineer[0]", + "entityName" : "EntryHead_SoftwareEngineer", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 60.748, + "computedY" : 496.166, + "placementX" : 60.748, + "placementY" : 496.166, + "placementWidth" : 313.91, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.91, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_SoftwareEngineer[0]/JobTitle_SoftwareEngineer[0]", + "entityName" : "JobTitle_SoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_SoftwareEngineer[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 60.748, + "computedY" : 494.034, + "placementX" : 60.748, + "placementY" : 494.034, + "placementWidth" : 79.855, "placementHeight" : 11.626, "startPage" : 0, "endPage" : 0, - "contentWidth" : 109.812, + "contentWidth" : 79.855, "contentHeight" : 11.626, "margin" : { "top" : 0.0, @@ -1004,22 +1874,22 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]/JobDates_SeniorSoftwareEngineer[2]", - "entityName" : "JobDates_SeniorSoftwareEngineer", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_SoftwareEngineer[0]/JobDates_SoftwareEngineer[1]", + "entityName" : "JobDates_SoftwareEngineer", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]", - "childIndex" : 2, - "depth" : 6, - "layer" : 6, - "computedX" : 36.275, - "computedY" : 631.006, - "placementX" : 36.275, - "placementY" : 631.006, - "placementWidth" : 338.384, + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_SoftwareEngineer[0]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 60.748, + "computedY" : 494.923, + "placementX" : 60.748, + "placementY" : 494.923, + "placementWidth" : 313.91, "placementHeight" : 9.689, "startPage" : 0, "endPage" : 0, - "contentWidth" : 338.384, + "contentWidth" : 313.91, "contentHeight" : 9.689, "margin" : { "top" : 0.0, @@ -1034,28 +1904,28 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/Employer_SeniorSoftwareEngineer[1]", - "entityName" : "Employer_SeniorSoftwareEngineer", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_SoftwareEngineer[1]", + "entityName" : "Employer_SoftwareEngineer", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 1, - "depth" : 5, - "layer" : 5, + "depth" : 12, + "layer" : 12, "computedX" : 60.748, - "computedY" : 613.964, + "computedY" : 477.881, "placementX" : 60.748, - "placementY" : 613.964, - "placementWidth" : 110.997, + "placementY" : 477.881, + "placementWidth" : 104.315, "placementHeight" : 8.284, "startPage" : 0, "endPage" : 0, - "contentWidth" : 110.997, + "contentWidth" : 104.315, "contentHeight" : 8.284, "margin" : { "top" : 10.001, "right" : 0.0, "bottom" : 8.153, - "left" : 24.474 + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1064,28 +1934,118 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/Highlights_SeniorSoftwareEngineer[2]", - "entityName" : "Highlights_SeniorSoftwareEngineer", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_SoftwareEngineer[2]", + "entityName" : "Highlights_SoftwareEngineer", "entityKind" : "ListNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 2, - "depth" : 5, - "layer" : 5, + "depth" : 12, + "layer" : 12, "computedX" : 60.748, - "computedY" : 537.877, + "computedY" : 423.605, "placementX" : 60.748, - "placementY" : 537.877, - "placementWidth" : 310.75, - "placementHeight" : 67.934, + "placementY" : 423.605, + "placementWidth" : 249.59, + "placementHeight" : 46.123, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.59, + "contentHeight" : 46.123, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntrySeparator_SoftwareEngineer[3]", + "entityName" : "EntrySeparator_SoftwareEngineer", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 3, + "depth" : 12, + "layer" : 12, + "computedX" : 60.748, + "computedY" : 407.108, + "placementX" : 60.748, + "placementY" : 407.108, + "placementWidth" : 313.91, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.91, + "contentHeight" : 1.0, + "margin" : { + "top" : 15.497, + "right" : 0.0, + "bottom" : 18.819, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 33.077, + "computedY" : 321.477, + "placementX" : 33.077, + "placementY" : 321.477, + "placementWidth" : 341.581, + "placementHeight" : 66.811, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 341.581, + "contentHeight" : 66.811, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 33.077, + "computedY" : 321.477, + "placementX" : 33.077, + "placementY" : 321.477, + "placementWidth" : 341.581, + "placementHeight" : 66.811, "startPage" : 0, "endPage" : 0, - "contentWidth" : 310.75, - "contentHeight" : 67.934, + "contentWidth" : 341.581, + "contentHeight" : 66.811, "margin" : { "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 24.474 + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1094,28 +2054,28 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntrySeparator_SeniorSoftwareEngineer[3]", - "entityName" : "EntrySeparator_SeniorSoftwareEngineer", - "entityKind" : "LineNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", - "childIndex" : 3, - "depth" : 5, - "layer" : 5, - "computedX" : 60.748, - "computedY" : 521.38, - "placementX" : 60.748, - "placementY" : 521.38, - "placementWidth" : 313.91, - "placementHeight" : 1.0, + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 33.077, + "computedY" : 321.477, + "placementX" : 33.077, + "placementY" : 321.477, + "placementWidth" : 341.581, + "placementHeight" : 66.811, "startPage" : 0, "endPage" : 0, - "contentWidth" : 313.91, - "contentHeight" : 1.0, + "contentWidth" : 341.581, + "contentHeight" : 66.811, "margin" : { - "top" : 15.497, + "top" : 0.0, "right" : 0.0, - "bottom" : 18.819, - "left" : 24.474 + "bottom" : 0.0, + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1124,23 +2084,23 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]", - "entityName" : "EntryHead_SoftwareEngineer", - "entityKind" : "ShapeContainerNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", - "childIndex" : 4, - "depth" : 5, - "layer" : 5, - "computedX" : 36.275, - "computedY" : 496.166, - "placementX" : 36.275, - "placementY" : 496.166, - "placementWidth" : 338.384, - "placementHeight" : 6.395, + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 33.077, + "computedY" : 321.477, + "placementX" : 33.077, + "placementY" : 321.477, + "placementWidth" : 341.581, + "placementHeight" : 66.811, "startPage" : 0, "endPage" : 0, - "contentWidth" : 338.384, - "contentHeight" : 6.395, + "contentWidth" : 341.581, + "contentHeight" : 66.811, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1154,17 +2114,17 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]/Marker_SoftwareEngineer[0]", - "entityName" : "Marker_SoftwareEngineer", - "entityKind" : "EllipseNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, + "depth" : 11, + "layer" : 11, "computedX" : 33.077, - "computedY" : 496.166, + "computedY" : 381.894, "placementX" : 33.077, - "placementY" : 496.166, + "placementY" : 381.894, "placementWidth" : 6.395, "placementHeight" : 6.395, "startPage" : 0, @@ -1184,23 +2144,23 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]/JobTitle_SoftwareEngineer[1]", - "entityName" : "JobTitle_SoftwareEngineer", - "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]", - "childIndex" : 1, - "depth" : 6, - "layer" : 6, - "computedX" : 60.748, - "computedY" : 494.034, - "placementX" : 60.748, - "placementY" : 494.034, - "placementWidth" : 79.855, - "placementHeight" : 11.626, + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 33.077, + "computedY" : 381.894, + "placementX" : 33.077, + "placementY" : 381.894, + "placementWidth" : 6.395, + "placementHeight" : 6.395, "startPage" : 0, "endPage" : 0, - "contentWidth" : 79.855, - "contentHeight" : 11.626, + "contentWidth" : 6.395, + "contentHeight" : 6.395, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1214,23 +2174,23 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]/JobDates_SoftwareEngineer[2]", - "entityName" : "JobDates_SoftwareEngineer", - "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]", - "childIndex" : 2, - "depth" : 6, - "layer" : 6, - "computedX" : 36.275, - "computedY" : 494.923, - "placementX" : 36.275, - "placementY" : 494.923, - "placementWidth" : 338.384, - "placementHeight" : 9.689, + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 33.077, + "computedY" : 381.894, + "placementX" : 33.077, + "placementY" : 381.894, + "placementWidth" : 6.395, + "placementHeight" : 6.395, "startPage" : 0, "endPage" : 0, - "contentWidth" : 338.384, - "contentHeight" : 9.689, + "contentWidth" : 6.395, + "contentHeight" : 6.395, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1244,28 +2204,28 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/Employer_SoftwareEngineer[5]", - "entityName" : "Employer_SoftwareEngineer", - "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", - "childIndex" : 5, - "depth" : 5, - "layer" : 5, - "computedX" : 60.748, - "computedY" : 477.881, - "placementX" : 60.748, - "placementY" : 477.881, - "placementWidth" : 104.315, - "placementHeight" : 8.284, + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 33.077, + "computedY" : 381.894, + "placementX" : 33.077, + "placementY" : 381.894, + "placementWidth" : 6.395, + "placementHeight" : 6.395, "startPage" : 0, "endPage" : 0, - "contentWidth" : 104.315, - "contentHeight" : 8.284, + "contentWidth" : 6.395, + "contentHeight" : 6.395, "margin" : { - "top" : 10.001, + "top" : 0.0, "right" : 0.0, - "bottom" : 8.153, - "left" : 24.474 + "bottom" : 0.0, + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1274,28 +2234,28 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/Highlights_SoftwareEngineer[6]", - "entityName" : "Highlights_SoftwareEngineer", - "entityKind" : "ListNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", - "childIndex" : 6, - "depth" : 5, - "layer" : 5, - "computedX" : 60.748, - "computedY" : 423.605, - "placementX" : 60.748, - "placementY" : 423.605, - "placementWidth" : 249.59, - "placementHeight" : 46.123, + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 33.077, + "computedY" : 381.894, + "placementX" : 33.077, + "placementY" : 381.894, + "placementWidth" : 6.395, + "placementHeight" : 6.395, "startPage" : 0, "endPage" : 0, - "contentWidth" : 249.59, - "contentHeight" : 46.123, + "contentWidth" : 6.395, + "contentHeight" : 6.395, "margin" : { "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 24.474 + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1304,28 +2264,28 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntrySeparator_SoftwareEngineer[7]", - "entityName" : "EntrySeparator_SoftwareEngineer", - "entityKind" : "LineNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", - "childIndex" : 7, - "depth" : 5, - "layer" : 5, - "computedX" : 60.748, - "computedY" : 407.108, - "placementX" : 60.748, - "placementY" : 407.108, - "placementWidth" : 313.91, - "placementHeight" : 1.0, + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_JuniorSoftwareEngineer[0]", + "entityName" : "Marker_JuniorSoftwareEngineer", + "entityKind" : "EllipseNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 33.077, + "computedY" : 381.894, + "placementX" : 33.077, + "placementY" : 381.894, + "placementWidth" : 6.395, + "placementHeight" : 6.395, "startPage" : 0, "endPage" : 0, - "contentWidth" : 313.91, - "contentHeight" : 1.0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, "margin" : { - "top" : 15.497, + "top" : 0.0, "right" : 0.0, - "bottom" : 18.819, - "left" : 24.474 + "bottom" : 0.0, + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1334,23 +2294,23 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]", - "entityName" : "EntryHead_JuniorSoftwareEngineer", - "entityKind" : "ShapeContainerNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", - "childIndex" : 8, - "depth" : 5, - "layer" : 5, - "computedX" : 36.275, - "computedY" : 381.894, - "placementX" : 36.275, - "placementY" : 381.894, - "placementWidth" : 338.384, - "placementHeight" : 6.395, + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 60.748, + "computedY" : 321.477, + "placementX" : 60.748, + "placementY" : 321.477, + "placementWidth" : 313.91, + "placementHeight" : 66.811, "startPage" : 0, "endPage" : 0, - "contentWidth" : 338.384, - "contentHeight" : 6.395, + "contentWidth" : 313.91, + "contentHeight" : 66.811, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1364,22 +2324,22 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]/Marker_JuniorSoftwareEngineer[0]", - "entityName" : "Marker_JuniorSoftwareEngineer", - "entityKind" : "EllipseNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_JuniorSoftwareEngineer[0]", + "entityName" : "EntryHead_JuniorSoftwareEngineer", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, - "computedX" : 33.077, + "depth" : 12, + "layer" : 12, + "computedX" : 60.748, "computedY" : 381.894, - "placementX" : 33.077, + "placementX" : 60.748, "placementY" : 381.894, - "placementWidth" : 6.395, + "placementWidth" : 313.91, "placementHeight" : 6.395, "startPage" : 0, "endPage" : 0, - "contentWidth" : 6.395, + "contentWidth" : 313.91, "contentHeight" : 6.395, "margin" : { "top" : 0.0, @@ -1394,13 +2354,13 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]/JobTitle_JuniorSoftwareEngineer[1]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_JuniorSoftwareEngineer[0]/JobTitle_JuniorSoftwareEngineer[0]", "entityName" : "JobTitle_JuniorSoftwareEngineer", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]", - "childIndex" : 1, - "depth" : 6, - "layer" : 6, + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_JuniorSoftwareEngineer[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, "computedX" : 60.748, "computedY" : 379.762, "placementX" : 60.748, @@ -1424,22 +2384,22 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]/JobDates_JuniorSoftwareEngineer[2]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_JuniorSoftwareEngineer[0]/JobDates_JuniorSoftwareEngineer[1]", "entityName" : "JobDates_JuniorSoftwareEngineer", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]", - "childIndex" : 2, - "depth" : 6, - "layer" : 6, - "computedX" : 36.275, + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EntryHead_JuniorSoftwareEngineer[0]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 60.748, "computedY" : 380.65, - "placementX" : 36.275, + "placementX" : 60.748, "placementY" : 380.65, - "placementWidth" : 338.384, + "placementWidth" : 313.91, "placementHeight" : 9.689, "startPage" : 0, "endPage" : 0, - "contentWidth" : 338.384, + "contentWidth" : 313.91, "contentHeight" : 9.689, "margin" : { "top" : 0.0, @@ -1454,43 +2414,13 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceTail[2]", - "entityName" : "ExperienceTail", - "entityKind" : "SectionNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]", - "childIndex" : 2, - "depth" : 4, - "layer" : 4, - "computedX" : 36.275, - "computedY" : 321.477, - "placementX" : 36.275, - "placementY" : 321.477, - "placementWidth" : 278.351, - "placementHeight" : 60.417, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 278.351, - "contentHeight" : 60.417, - "margin" : { - "top" : 0.0, - "right" : 0.0, - "bottom" : 0.0, - "left" : 4.592 - }, - "padding" : { - "top" : 0.0, - "right" : 0.0, - "bottom" : 0.0, - "left" : 0.0 - } - }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceTail[2]/Employer_JuniorSoftwareEngineer[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_JuniorSoftwareEngineer[1]", "entityName" : "Employer_JuniorSoftwareEngineer", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceTail[2]", - "childIndex" : 0, - "depth" : 5, - "layer" : 5, + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, "computedX" : 60.748, "computedY" : 363.608, "placementX" : 60.748, @@ -1505,7 +2435,7 @@ "top" : 10.001, "right" : 0.0, "bottom" : 8.153, - "left" : 24.474 + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1514,13 +2444,13 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceTail[2]/Highlights_JuniorSoftwareEngineer[1]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_JuniorSoftwareEngineer[2]", "entityName" : "Highlights_JuniorSoftwareEngineer", "entityKind" : "ListNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceTail[2]", - "childIndex" : 1, - "depth" : 5, - "layer" : 5, + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 12, + "layer" : 12, "computedX" : 60.748, "computedY" : 321.477, "placementX" : 60.748, @@ -1535,7 +2465,7 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 24.474 + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1544,11 +2474,11 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[2]", "entityName" : "SectionHeading_Projects", "entityKind" : "ShapeContainerNode", "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]", - "childIndex" : 3, + "childIndex" : 2, "depth" : 4, "layer" : 4, "computedX" : 31.682, @@ -1574,10 +2504,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]/HeadingDash_Projects[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[2]/HeadingDash_Projects[0]", "entityName" : "HeadingDash_Projects", "entityKind" : "LineNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[2]", "childIndex" : 0, "depth" : 5, "layer" : 5, @@ -1604,10 +2534,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]/SectionTitle_Projects[1]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[2]/SectionTitle_Projects[1]", "entityName" : "SectionTitle_Projects", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[2]", "childIndex" : 1, "depth" : 5, "layer" : 5, @@ -1634,10 +2564,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]/HeadingTail_Projects[2]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[2]/HeadingTail_Projects[2]", "entityName" : "HeadingTail_Projects", "entityKind" : "LineNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[2]", "childIndex" : 2, "depth" : 5, "layer" : 5, @@ -1664,11 +2594,11 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]", "entityName" : "ProjectsBand", "entityKind" : "LayerStackNode", "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]", - "childIndex" : 4, + "childIndex" : 3, "depth" : 4, "layer" : 4, "computedX" : 31.682, @@ -1694,10 +2624,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_ECommercePlatform[0]", "entityName" : "ProjectCard_ECommercePlatform", "entityKind" : "SectionNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]", "childIndex" : 0, "depth" : 5, "layer" : 5, @@ -1724,10 +2654,10 @@ "left" : 33.135 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]/ProjectTitle_ECommercePlatform[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_ECommercePlatform[0]/ProjectTitle_ECommercePlatform[0]", "entityName" : "ProjectTitle_ECommercePlatform", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_ECommercePlatform[0]", "childIndex" : 0, "depth" : 6, "layer" : 6, @@ -1754,10 +2684,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]/ProjectStack_ECommercePlatform[1]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_ECommercePlatform[0]/ProjectStack_ECommercePlatform[1]", "entityName" : "ProjectStack_ECommercePlatform", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_ECommercePlatform[0]", "childIndex" : 1, "depth" : 6, "layer" : 6, @@ -1784,10 +2714,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]/ProjectBody_ECommercePlatform[2]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_ECommercePlatform[0]/ProjectBody_ECommercePlatform[2]", "entityName" : "ProjectBody_ECommercePlatform", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_ECommercePlatform[0]", "childIndex" : 2, "depth" : 6, "layer" : 6, @@ -1814,10 +2744,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_TaskManagementAPI[1]", "entityName" : "ProjectCard_TaskManagementAPI", "entityKind" : "SectionNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]", "childIndex" : 1, "depth" : 5, "layer" : 5, @@ -1844,10 +2774,10 @@ "left" : 41.274 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]/ProjectTitle_TaskManagementAPI[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_TaskManagementAPI[1]/ProjectTitle_TaskManagementAPI[0]", "entityName" : "ProjectTitle_TaskManagementAPI", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_TaskManagementAPI[1]", "childIndex" : 0, "depth" : 6, "layer" : 6, @@ -1874,10 +2804,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]/ProjectStack_TaskManagementAPI[1]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_TaskManagementAPI[1]/ProjectStack_TaskManagementAPI[1]", "entityName" : "ProjectStack_TaskManagementAPI", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_TaskManagementAPI[1]", "childIndex" : 1, "depth" : 6, "layer" : 6, @@ -1904,10 +2834,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]/ProjectBody_TaskManagementAPI[2]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_TaskManagementAPI[1]/ProjectBody_TaskManagementAPI[2]", "entityName" : "ProjectBody_TaskManagementAPI", "entityKind" : "ParagraphNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectCard_TaskManagementAPI[1]", "childIndex" : 2, "depth" : 6, "layer" : 6, @@ -1934,10 +2864,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_0[2]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsGlyph_0[2]", "entityName" : "ProjectsGlyph_0", "entityKind" : "SectionNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]", "childIndex" : 2, "depth" : 5, "layer" : 5, @@ -1964,10 +2894,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_0[2]/ProjectPlate_ECommercePlatform[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsGlyph_0[2]/ProjectPlate_ECommercePlatform[0]", "entityName" : "ProjectPlate_ECommercePlatform", "entityKind" : "ShapeContainerNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_0[2]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsGlyph_0[2]", "childIndex" : 0, "depth" : 6, "layer" : 6, @@ -1994,10 +2924,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_0[2]/ProjectPlate_ECommercePlatform[0]/ProjectPlate_ECommercePlatformGlyph[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsGlyph_0[2]/ProjectPlate_ECommercePlatform[0]/ProjectPlate_ECommercePlatformGlyph[0]", "entityName" : "ProjectPlate_ECommercePlatformGlyph", "entityKind" : "ImageNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_0[2]/ProjectPlate_ECommercePlatform[0]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsGlyph_0[2]/ProjectPlate_ECommercePlatform[0]", "childIndex" : 0, "depth" : 7, "layer" : 7, @@ -2024,10 +2954,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_1[3]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsGlyph_1[3]", "entityName" : "ProjectsGlyph_1", "entityKind" : "SectionNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]", "childIndex" : 3, "depth" : 5, "layer" : 5, @@ -2054,10 +2984,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_1[3]/ProjectPlate_TaskManagementAPI[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsGlyph_1[3]/ProjectPlate_TaskManagementAPI[0]", "entityName" : "ProjectPlate_TaskManagementAPI", "entityKind" : "ShapeContainerNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_1[3]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsGlyph_1[3]", "childIndex" : 0, "depth" : 6, "layer" : 6, @@ -2084,10 +3014,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_1[3]/ProjectPlate_TaskManagementAPI[0]/ProjectPlate_TaskManagementAPIGlyph[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsGlyph_1[3]/ProjectPlate_TaskManagementAPI[0]/ProjectPlate_TaskManagementAPIGlyph[0]", "entityName" : "ProjectPlate_TaskManagementAPIGlyph", "entityKind" : "ImageNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_1[3]/ProjectPlate_TaskManagementAPI[0]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsGlyph_1[3]/ProjectPlate_TaskManagementAPI[0]", "childIndex" : 0, "depth" : 7, "layer" : 7, @@ -2114,10 +3044,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsSeparator_1[4]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsSeparator_1[4]", "entityName" : "ProjectsSeparator_1", "entityKind" : "SectionNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]", "childIndex" : 4, "depth" : 5, "layer" : 5, @@ -2144,10 +3074,10 @@ "left" : 0.0 } }, { - "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsSeparator_1[4]/ProjectsSeparatorLine_1[0]", + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsSeparator_1[4]/ProjectsSeparatorLine_1[0]", "entityName" : "ProjectsSeparatorLine_1", "entityKind" : "LineNode", - "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsSeparator_1[4]", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[3]/ProjectsSeparator_1[4]", "childIndex" : 0, "depth" : 6, "layer" : 6, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java index f030d47a2..b5a43f43c 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java @@ -1,13 +1,15 @@ package com.demcha.compose.document.templates.cv.presets; -import com.demcha.compose.document.dsl.EllipseBuilder; import com.demcha.compose.document.dsl.ParagraphBuilder; import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TimelineMarker; +import com.demcha.compose.document.dsl.TimelineRailExtent; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.LayerAlign; import com.demcha.compose.document.node.TextAlign; import com.demcha.compose.document.style.ClipPolicy; import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; import com.demcha.compose.document.style.DocumentTextDecoration; import com.demcha.compose.document.templates.cv.components.SectionLookup; import com.demcha.compose.document.templates.cv.data.CvEntry; @@ -92,32 +94,62 @@ static void compose(SectionBuilder section, * The roles held, strung on a vertical rail with a filled marker at each * one. * - *

      The rail is the section's left accent, which runs the full height of - * what the section holds — so the last role's body is composed in a - * second section outside the rail, and the line stops at the last marker - * instead of running past it to the foot of the block.

      + *

      The rail stops at the last marker, which is what {@code MARKER_TO_MARKER} means. It + * used to be the section's left accent, and an accent runs the full height of what its + * section holds — so the last role's body was composed in a second section outside the + * rail to keep the line from running on to the foot of the block. The extent says it + * directly now, and that sibling section is gone.

      + * + *

      Wrapped in a layer because a row nested in a row cell is refused and this sheet's + * main column is one.

      */ private static void renderExperience(SectionBuilder section, EntriesSection experience) { List entries = experience.entries(); int last = entries.size() - 1; - section.addSection("ExperienceRail", rail -> { - rail.spacing(0).padding(DocumentInsets.zero()); - rail.margin(new DocumentInsets( - HEADING_TO_ENTRY + TITLE_OVERFLOW, 0, 0, RAIL_MARGIN_LEFT)); - rail.accentLeft(DIVIDER, RAIL_THICKNESS); + SectionBuilder holder = new SectionBuilder(); + holder.name("ExperienceRailHolder"); + holder.spacing(0).padding(DocumentInsets.zero()); + // The axis column centres the rail on itself, so the timeline starts half a marker + // further left than the accent did and the line lands back where it was. + holder.margin(new DocumentInsets(HEADING_TO_ENTRY + TITLE_OVERFLOW, 0, 0, + RAIL_MARGIN_LEFT - MARKER_DIAMETER / 2.0)); + holder.addTimeline(timeline -> { + timeline.markerOnRail() + .rail(rail -> rail + .stroke(DocumentStroke.of(DIVIDER, RAIL_THICKNESS)) + .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .axisWidth(MARKER_DIAMETER) + .markerGap(ENTRY_TEXT_INSET - MARKER_DIAMETER / 2.0) + .gutter(0) + // The rhythm between roles is the separator's own margins, as before. + .spacing(0); for (int i = 0; i < entries.size(); i++) { - renderEntryHead(rail, entries.get(i)); - if (i < last) { - renderEntryBody(rail, entries.get(i)); - renderEntrySeparator(rail, entries.get(i)); - } + CvEntry entry = entries.get(i); + boolean separated = i < last; + timeline.entry(entryMarker(entry), e -> e.content(body -> { + body.spacing(0); + renderEntryHead(body, entry); + renderEntryBody(body, entry); + if (separated) { + renderEntrySeparator(body, entry); + } + })); } }); - section.addSection("ExperienceTail", tail -> { - tail.spacing(0).padding(DocumentInsets.zero()); - tail.margin(new DocumentInsets(0, 0, 0, RAIL_MARGIN_LEFT)); - renderEntryBody(tail, entries.get(last)); - }); + DocumentNode node = holder.build(); + section.addLayerStack(stack -> stack + .name("ExperienceRail") + .layer(node, LayerAlign.TOP_LEFT, 0)); + } + + /** The filled disc that marks a role, in a box as tall as the head band it rides. */ + private static TimelineMarker entryMarker(CvEntry entry) { + return TimelineMarker.custom(MARKER_DIAMETER, ENTRY_HEAD_BAND_HEIGHT, + column -> column.addEllipse(ellipse -> ellipse + .name("Marker_" + compact(entry.title())) + .circle(MARKER_DIAMETER) + .fillColor(INK) + .margin(DocumentInsets.zero()))); } /** @@ -126,12 +158,6 @@ private static void renderExperience(SectionBuilder section, EntriesSection expe * by half their own overhang to centre on it. */ private static void renderEntryHead(SectionBuilder rail, CvEntry entry) { - DocumentNode marker = new EllipseBuilder() - .name("Marker_" + compact(entry.title())) - .circle(MARKER_DIAMETER) - .fillColor(INK) - .margin(DocumentInsets.zero()) - .build(); ParagraphBuilder titleText = new ParagraphBuilder() .name("JobTitle_" + compact(entry.title())) .textStyle(style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) @@ -147,13 +173,14 @@ private static void renderEntryHead(SectionBuilder rail, CvEntry entry) { .lineSpacing(TIGHT_LEADING) .margin(DocumentInsets.zero()) .build(); + // The marker has left the band for the timeline's axis column, so the band starts at + // the content column and the title no longer walks in past the rail. rail.addContainer(head -> head .name("EntryHead_" + compact(entry.title())) - .rectangle(ENTRY_WIDTH, ENTRY_HEAD_BAND_HEIGHT) + .rectangle(ENTRY_WIDTH - ENTRY_TEXT_INSET, ENTRY_HEAD_BAND_HEIGHT) .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) .padding(DocumentInsets.zero()) - .position(marker, -MARKER_DIAMETER / 2.0, 0, LayerAlign.CENTER_LEFT) - .position(title, ENTRY_TEXT_INSET, -TITLE_OVERFLOW, LayerAlign.CENTER_LEFT) + .position(title, 0, -TITLE_OVERFLOW, LayerAlign.CENTER_LEFT) .position(dates, 0, -DATE_OVERFLOW, LayerAlign.CENTER_RIGHT)); } @@ -175,7 +202,7 @@ private static void renderEntryBody(SectionBuilder rail, CvEntry entry) { p.lineSpacing(TIGHT_LEADING) .margin(new DocumentInsets( TITLE_TO_EMPLOYER + TITLE_OVERFLOW, 0, - EMPLOYER_TO_BULLETS, ENTRY_TEXT_INSET)); + EMPLOYER_TO_BULLETS, 0)); }); List highlights = SerifHeadlineText.lines(entry.body()); if (!highlights.isEmpty()) { @@ -189,7 +216,7 @@ private static void renderEntryBody(SectionBuilder rail, CvEntry entry) { .textStyle(body()) .lineSpacing(BULLET_LEADING) .itemSpacing(BULLET_ITEM_GAP) - .margin(new DocumentInsets(0, 0, 0, ENTRY_TEXT_INSET))); + .margin(DocumentInsets.zero())); } } @@ -201,7 +228,7 @@ private static void renderEntrySeparator(SectionBuilder rail, CvEntry entry) { .color(RULE) .margin(new DocumentInsets( BULLETS_TO_SEPARATOR, 0, - SEPARATOR_TO_ENTRY + TITLE_OVERFLOW, ENTRY_TEXT_INSET))); + SEPARATOR_TO_ENTRY + TITLE_OVERFLOW, 0))); } // -- projects -------------------------------------------------------- From 43f6511e4fcbab162dcf8e96742c238cb48d606f Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 10:29:24 +0100 Subject: [PATCH 56/85] refactor(templates): put Slate Orange's roles on a real timeline A different workaround from the two before it: no tail section, but accentLeft on every entry except the last, each entry padded ENTRY_GAP at the foot so the borders abut into one line. The javadoc states the intent - the rail stops at the final marker rather than running past the final bullet - and the entry list decides which entry that is. Measured, the old line did not stop at the marker. The accent spans an entry box including its padding, so the three accented boxes ran from the top of entry 0, 533.54, to the bottom of entry 2, which is the top of entry 3 at 202.31 - the top edge of the last marker box, not its centre at 198.95. It was neither MARKER_TO_MARKER nor ENTRY_BOUNDS but the union of every entry box except the last, which lands on a marker edge by construction. MARKER_TO_MARKER is the stated intent, so that is what it says now, and both ends move down by half a marker line box: the top 533.54 -> 530.18 and the bottom 202.31 -> 198.95, each 3.36 = MARKER_DIAMETER * LINE_FACTOR / 2. The rail keeps its length, 331.23, rather than shortening; it is the same line drawn between anchors instead of between box edges. Geometry holds elsewhere. 71 = 66 identical + 5 removed, 109 = 66 identical + 43 added (6 named, 37 unnamed timeline wrappers). The four markers keep x=224.227 and y=526.82/420.74/314.66/195.59, the role tables, employers and highlights keep content x=240.027 and every width, so nothing rewraps; one page, no node spans one. The removed five are the entries host and the four ExperienceEntry sections that carried the accent and the padding. Isolated against a pre-migration render of the same tree, this change moves 16 pixels: six in the rail column, the two ends and the two seams where abutting per-entry borders used to meet and a single line no longer does, and ten elsewhere at a colour delta of one, which is rasteriser rounding rather than movement - the snapshot puts every content node at the same coordinate. The committed baseline still passes its gate, so it is left as recorded. --- .../cv-v2/slate_orange_layout.json | 1764 ++++++++++++++--- .../templates/cv/presets/SlateOrangeMain.java | 65 +- 2 files changed, 1495 insertions(+), 334 deletions(-) diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/slate_orange_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/slate_orange_layout.json index aea329edd..018394bb0 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/slate_orange_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/slate_orange_layout.json @@ -1306,7 +1306,7 @@ }, { "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]", "entityName" : "ExperienceEntries", - "entityKind" : "SectionNode", + "entityKind" : "LayerStackNode", "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]", "childIndex" : 2, "depth" : 5, @@ -1315,14 +1315,14 @@ "computedY" : 114.63, "placementX" : 227.027, "placementY" : 114.63, - "placementWidth" : 346.239, - "placementHeight" : 418.91, + "placementWidth" : 346.249, + "placementHeight" : 431.91, "startPage" : 0, "endPage" : 0, - "contentWidth" : 346.239, - "contentHeight" : 418.91, + "contentWidth" : 346.249, + "contentHeight" : 431.91, "margin" : { - "top" : 13.0, + "top" : 0.0, "right" : 0.0, "bottom" : 0.0, "left" : 0.0 @@ -1334,22 +1334,112 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]", - "entityName" : "ExperienceEntry_0", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]", + "entityName" : "ExperienceEntriesHolder", "entityKind" : "SectionNode", "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]", "childIndex" : 0, "depth" : 6, "layer" : 6, - "computedX" : 227.027, + "computedX" : 224.227, + "computedY" : 114.63, + "placementX" : 224.227, + "placementY" : 114.63, + "placementWidth" : 349.049, + "placementHeight" : 418.91, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, + "contentHeight" : 418.91, + "margin" : { + "top" : 13.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : -2.8 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 224.227, + "computedY" : 114.63, + "placementX" : 224.227, + "placementY" : 114.63, + "placementWidth" : 349.049, + "placementHeight" : 418.91, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, + "contentHeight" : 418.91, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 224.227, "computedY" : 427.46, - "placementX" : 227.027, + "placementX" : 224.227, "placementY" : 427.46, - "placementWidth" : 346.239, + "placementWidth" : 349.049, "placementHeight" : 106.08, "startPage" : 0, "endPage" : 0, - "contentWidth" : 346.239, + "contentWidth" : 349.049, + "contentHeight" : 106.08, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 224.227, + "computedY" : 427.46, + "placementX" : 224.227, + "placementY" : 427.46, + "placementWidth" : 349.049, + "placementHeight" : 106.08, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, "contentHeight" : 106.08, "margin" : { "top" : 0.0, @@ -1361,26 +1451,26 @@ "top" : 0.0, "right" : 0.0, "bottom" : 18.4, - "left" : 13.0 + "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/RoleLine_0[0]", - "entityName" : "RoleLine_0", - "entityKind" : "LayerStackNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 240.027, - "computedY" : 521.12, - "placementX" : 240.027, - "placementY" : 521.12, - "placementWidth" : 333.239, - "placementHeight" : 12.42, + "depth" : 10, + "layer" : 10, + "computedX" : 224.227, + "computedY" : 445.86, + "placementX" : 224.227, + "placementY" : 445.86, + "placementWidth" : 349.049, + "placementHeight" : 87.68, "startPage" : 0, "endPage" : 0, - "contentWidth" : 333.239, - "contentHeight" : 12.42, + "contentWidth" : 349.049, + "contentHeight" : 87.68, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1394,23 +1484,23 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/RoleLine_0[0]/RoleTable_0[0]", - "entityName" : "RoleTable_0", - "entityKind" : "TableNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/RoleLine_0[0]", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, - "computedX" : 240.027, - "computedY" : 521.12, - "placementX" : 240.027, - "placementY" : 521.12, - "placementWidth" : 333.239, - "placementHeight" : 12.42, + "depth" : 11, + "layer" : 11, + "computedX" : 224.227, + "computedY" : 445.86, + "placementX" : 224.227, + "placementY" : 445.86, + "placementWidth" : 349.049, + "placementHeight" : 87.68, "startPage" : 0, "endPage" : 0, - "contentWidth" : 333.239, - "contentHeight" : 12.42, + "contentWidth" : 349.049, + "contentHeight" : 87.68, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1424,13 +1514,13 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/RoleLine_0[0]/Marker_0[1]", - "entityName" : "Marker_0", - "entityKind" : "ParagraphNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/RoleLine_0[0]", - "childIndex" : 1, - "depth" : 8, - "layer" : 8, + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, "computedX" : 224.227, "computedY" : 526.82, "placementX" : 224.227, @@ -1454,27 +1544,27 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/Employer_0[1]", - "entityName" : "Employer_0", - "entityKind" : "ParagraphNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, - "computedX" : 240.027, - "computedY" : 508.2, - "placementX" : 240.027, - "placementY" : 508.2, - "placementWidth" : 116.025, - "placementHeight" : 10.92, + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 224.227, + "computedY" : 526.82, + "placementX" : 224.227, + "placementY" : 526.82, + "placementWidth" : 5.6, + "placementHeight" : 6.72, "startPage" : 0, "endPage" : 0, - "contentWidth" : 116.025, - "contentHeight" : 10.92, + "contentWidth" : 5.6, + "contentHeight" : 6.72, "margin" : { - "top" : 2.0, + "top" : 0.0, "right" : 0.0, - "bottom" : 6.6, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -1484,23 +1574,23 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]/Highlights_0[2]", - "entityName" : "Highlights_0", - "entityKind" : "ListNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_0[0]", - "childIndex" : 2, - "depth" : 7, - "layer" : 7, - "computedX" : 240.027, - "computedY" : 445.86, - "placementX" : 240.027, - "placementY" : 445.86, - "placementWidth" : 319.311, - "placementHeight" : 55.74, + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 224.227, + "computedY" : 526.82, + "placementX" : 224.227, + "placementY" : 526.82, + "placementWidth" : 5.6, + "placementHeight" : 6.72, "startPage" : 0, "endPage" : 0, - "contentWidth" : 319.311, - "contentHeight" : 55.74, + "contentWidth" : 5.6, + "contentHeight" : 6.72, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1514,23 +1604,23 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]", - "entityName" : "ExperienceEntry_1", - "entityKind" : "SectionNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]", - "childIndex" : 1, - "depth" : 6, - "layer" : 6, - "computedX" : 227.027, - "computedY" : 321.38, - "placementX" : 227.027, - "placementY" : 321.38, - "placementWidth" : 346.239, - "placementHeight" : 106.08, + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 224.227, + "computedY" : 526.82, + "placementX" : 224.227, + "placementY" : 526.82, + "placementWidth" : 5.6, + "placementHeight" : 6.72, "startPage" : 0, "endPage" : 0, - "contentWidth" : 346.239, - "contentHeight" : 106.08, + "contentWidth" : 5.6, + "contentHeight" : 6.72, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1540,27 +1630,27 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 18.4, - "left" : 13.0 + "bottom" : 0.0, + "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/RoleLine_1[0]", - "entityName" : "RoleLine_1", - "entityKind" : "LayerStackNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 240.027, - "computedY" : 415.04, - "placementX" : 240.027, - "placementY" : 415.04, - "placementWidth" : 333.239, - "placementHeight" : 12.42, + "depth" : 16, + "layer" : 16, + "computedX" : 224.227, + "computedY" : 526.82, + "placementX" : 224.227, + "placementY" : 526.82, + "placementWidth" : 5.6, + "placementHeight" : 6.72, "startPage" : 0, "endPage" : 0, - "contentWidth" : 333.239, - "contentHeight" : 12.42, + "contentWidth" : 5.6, + "contentHeight" : 6.72, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1574,23 +1664,1103 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/RoleLine_1[0]/RoleTable_1[0]", - "entityName" : "RoleTable_1", - "entityKind" : "TableNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/RoleLine_1[0]", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_0[0]", + "entityName" : "Marker_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, - "computedX" : 240.027, - "computedY" : 415.04, - "placementX" : 240.027, - "placementY" : 415.04, - "placementWidth" : 333.239, - "placementHeight" : 12.42, + "depth" : 17, + "layer" : 17, + "computedX" : 224.227, + "computedY" : 526.82, + "placementX" : 224.227, + "placementY" : 526.82, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 240.027, + "computedY" : 445.86, + "placementX" : 240.027, + "placementY" : 445.86, + "placementWidth" : 333.239, + "placementHeight" : 87.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 87.68, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_0[0]", + "entityName" : "RoleLine_0", + "entityKind" : "LayerStackNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 240.027, + "computedY" : 521.12, + "placementX" : 240.027, + "placementY" : 521.12, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_0[0]/RoleTable_0[0]", + "entityName" : "RoleTable_0", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_0[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 240.027, + "computedY" : 521.12, + "placementX" : 240.027, + "placementY" : 521.12, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_0[1]", + "entityName" : "Employer_0", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 240.027, + "computedY" : 508.2, + "placementX" : 240.027, + "placementY" : 508.2, + "placementWidth" : 116.025, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.025, + "contentHeight" : 10.92, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 6.6, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_0[2]", + "entityName" : "Highlights_0", + "entityKind" : "ListNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 240.027, + "computedY" : 445.86, + "placementX" : 240.027, + "placementY" : 445.86, + "placementWidth" : 319.311, + "placementHeight" : 55.74, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 319.311, + "contentHeight" : 55.74, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 224.227, + "computedY" : 321.38, + "placementX" : 224.227, + "placementY" : 321.38, + "placementWidth" : 349.049, + "placementHeight" : 106.08, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, + "contentHeight" : 106.08, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 224.227, + "computedY" : 321.38, + "placementX" : 224.227, + "placementY" : 321.38, + "placementWidth" : 349.049, + "placementHeight" : 106.08, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, + "contentHeight" : 106.08, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 18.4, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 224.227, + "computedY" : 339.78, + "placementX" : 224.227, + "placementY" : 339.78, + "placementWidth" : 349.049, + "placementHeight" : 87.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, + "contentHeight" : 87.68, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 224.227, + "computedY" : 339.78, + "placementX" : 224.227, + "placementY" : 339.78, + "placementWidth" : 349.049, + "placementHeight" : 87.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, + "contentHeight" : 87.68, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 224.227, + "computedY" : 420.74, + "placementX" : 224.227, + "placementY" : 420.74, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 224.227, + "computedY" : 420.74, + "placementX" : 224.227, + "placementY" : 420.74, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 224.227, + "computedY" : 420.74, + "placementX" : 224.227, + "placementY" : 420.74, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 224.227, + "computedY" : 420.74, + "placementX" : 224.227, + "placementY" : 420.74, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 224.227, + "computedY" : 420.74, + "placementX" : 224.227, + "placementY" : 420.74, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_1[0]", + "entityName" : "Marker_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 224.227, + "computedY" : 420.74, + "placementX" : 224.227, + "placementY" : 420.74, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 240.027, + "computedY" : 339.78, + "placementX" : 240.027, + "placementY" : 339.78, + "placementWidth" : 333.239, + "placementHeight" : 87.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 87.68, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_1[0]", + "entityName" : "RoleLine_1", + "entityKind" : "LayerStackNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 240.027, + "computedY" : 415.04, + "placementX" : 240.027, + "placementY" : 415.04, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_1[0]/RoleTable_1[0]", + "entityName" : "RoleTable_1", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_1[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 240.027, + "computedY" : 415.04, + "placementX" : 240.027, + "placementY" : 415.04, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_1[1]", + "entityName" : "Employer_1", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 240.027, + "computedY" : 402.12, + "placementX" : 240.027, + "placementY" : 402.12, + "placementWidth" : 106.379, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.379, + "contentHeight" : 10.92, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 6.6, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_1[2]", + "entityName" : "Highlights_1", + "entityKind" : "ListNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 240.027, + "computedY" : 339.78, + "placementX" : 240.027, + "placementY" : 339.78, + "placementWidth" : 320.307, + "placementHeight" : 55.74, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 320.307, + "contentHeight" : 55.74, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 224.227, + "computedY" : 202.31, + "placementX" : 224.227, + "placementY" : 202.31, + "placementWidth" : 349.049, + "placementHeight" : 119.07, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, + "contentHeight" : 119.07, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 224.227, + "computedY" : 202.31, + "placementX" : 224.227, + "placementY" : 202.31, + "placementWidth" : 349.049, + "placementHeight" : 119.07, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, + "contentHeight" : 119.07, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 18.4, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 224.227, + "computedY" : 220.71, + "placementX" : 224.227, + "placementY" : 220.71, + "placementWidth" : 349.049, + "placementHeight" : 100.67, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, + "contentHeight" : 100.67, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 224.227, + "computedY" : 220.71, + "placementX" : 224.227, + "placementY" : 220.71, + "placementWidth" : 349.049, + "placementHeight" : 100.67, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.049, + "contentHeight" : 100.67, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 224.227, + "computedY" : 314.66, + "placementX" : 224.227, + "placementY" : 314.66, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 224.227, + "computedY" : 314.66, + "placementX" : 224.227, + "placementY" : 314.66, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 224.227, + "computedY" : 314.66, + "placementX" : 224.227, + "placementY" : 314.66, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 224.227, + "computedY" : 314.66, + "placementX" : 224.227, + "placementY" : 314.66, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 224.227, + "computedY" : 314.66, + "placementX" : 224.227, + "placementY" : 314.66, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_2[0]", + "entityName" : "Marker_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 224.227, + "computedY" : 314.66, + "placementX" : 224.227, + "placementY" : 314.66, + "placementWidth" : 5.6, + "placementHeight" : 6.72, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.6, + "contentHeight" : 6.72, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 240.027, + "computedY" : 220.71, + "placementX" : 240.027, + "placementY" : 220.71, + "placementWidth" : 333.239, + "placementHeight" : 100.67, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 100.67, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_2[0]", + "entityName" : "RoleLine_2", + "entityKind" : "LayerStackNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 240.027, + "computedY" : 308.96, + "placementX" : 240.027, + "placementY" : 308.96, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_2[0]/RoleTable_2[0]", + "entityName" : "RoleTable_2", + "entityKind" : "TableNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_2[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 240.027, + "computedY" : 308.96, + "placementX" : 240.027, + "placementY" : 308.96, + "placementWidth" : 333.239, + "placementHeight" : 12.42, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 333.239, + "contentHeight" : 12.42, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_2[1]", + "entityName" : "Employer_2", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 240.027, + "computedY" : 296.04, + "placementX" : 240.027, + "placementY" : 296.04, + "placementWidth" : 100.528, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.528, + "contentHeight" : 10.92, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 6.6, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_2[2]", + "entityName" : "Highlights_2", + "entityKind" : "ListNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 240.027, + "computedY" : 220.71, + "placementX" : 240.027, + "placementY" : 220.71, + "placementWidth" : 307.972, + "placementHeight" : 68.73, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 307.972, + "contentHeight" : 68.73, + "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]", + "childIndex" : 3, + "depth" : 8, + "layer" : 8, + "computedX" : 224.227, + "computedY" : 114.63, + "placementX" : 224.227, + "placementY" : 114.63, + "placementWidth" : 349.049, + "placementHeight" : 87.68, "startPage" : 0, "endPage" : 0, - "contentWidth" : 333.239, - "contentHeight" : 12.42, + "contentWidth" : 349.049, + "contentHeight" : 87.68, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1604,23 +2774,23 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/RoleLine_1[0]/Marker_1[1]", - "entityName" : "Marker_1", - "entityKind" : "ParagraphNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/RoleLine_1[0]", - "childIndex" : 1, - "depth" : 8, - "layer" : 8, + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, "computedX" : 224.227, - "computedY" : 420.74, + "computedY" : 114.63, "placementX" : 224.227, - "placementY" : 420.74, - "placementWidth" : 5.6, - "placementHeight" : 6.72, + "placementY" : 114.63, + "placementWidth" : 349.049, + "placementHeight" : 87.68, "startPage" : 0, "endPage" : 0, - "contentWidth" : 5.6, - "contentHeight" : 6.72, + "contentWidth" : 349.049, + "contentHeight" : 87.68, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1634,27 +2804,27 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/Employer_1[1]", - "entityName" : "Employer_1", - "entityKind" : "ParagraphNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, - "computedX" : 240.027, - "computedY" : 402.12, - "placementX" : 240.027, - "placementY" : 402.12, - "placementWidth" : 106.379, - "placementHeight" : 10.92, + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 224.227, + "computedY" : 114.63, + "placementX" : 224.227, + "placementY" : 114.63, + "placementWidth" : 349.049, + "placementHeight" : 87.68, "startPage" : 0, "endPage" : 0, - "contentWidth" : 106.379, - "contentHeight" : 10.92, + "contentWidth" : 349.049, + "contentHeight" : 87.68, "margin" : { - "top" : 2.0, + "top" : 0.0, "right" : 0.0, - "bottom" : 6.6, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -1664,23 +2834,23 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]/Highlights_1[2]", - "entityName" : "Highlights_1", - "entityKind" : "ListNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_1[1]", - "childIndex" : 2, - "depth" : 7, - "layer" : 7, - "computedX" : 240.027, - "computedY" : 339.78, - "placementX" : 240.027, - "placementY" : 339.78, - "placementWidth" : 320.307, - "placementHeight" : 55.74, + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 224.227, + "computedY" : 114.63, + "placementX" : 224.227, + "placementY" : 114.63, + "placementWidth" : 349.049, + "placementHeight" : 87.68, "startPage" : 0, "endPage" : 0, - "contentWidth" : 320.307, - "contentHeight" : 55.74, + "contentWidth" : 349.049, + "contentHeight" : 87.68, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1694,23 +2864,23 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]", - "entityName" : "ExperienceEntry_2", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]", - "childIndex" : 2, - "depth" : 6, - "layer" : 6, - "computedX" : 227.027, - "computedY" : 202.31, - "placementX" : 227.027, - "placementY" : 202.31, - "placementWidth" : 346.239, - "placementHeight" : 119.07, + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 224.227, + "computedY" : 195.59, + "placementX" : 224.227, + "placementY" : 195.59, + "placementWidth" : 5.6, + "placementHeight" : 6.72, "startPage" : 0, "endPage" : 0, - "contentWidth" : 346.239, - "contentHeight" : 119.07, + "contentWidth" : 5.6, + "contentHeight" : 6.72, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1720,27 +2890,27 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 18.4, - "left" : 13.0 + "bottom" : 0.0, + "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/RoleLine_2[0]", - "entityName" : "RoleLine_2", - "entityKind" : "LayerStackNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 240.027, - "computedY" : 308.96, - "placementX" : 240.027, - "placementY" : 308.96, - "placementWidth" : 333.239, - "placementHeight" : 12.42, + "depth" : 13, + "layer" : 13, + "computedX" : 224.227, + "computedY" : 195.59, + "placementX" : 224.227, + "placementY" : 195.59, + "placementWidth" : 5.6, + "placementHeight" : 6.72, "startPage" : 0, "endPage" : 0, - "contentWidth" : 333.239, - "contentHeight" : 12.42, + "contentWidth" : 5.6, + "contentHeight" : 6.72, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1754,23 +2924,23 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/RoleLine_2[0]/RoleTable_2[0]", - "entityName" : "RoleTable_2", - "entityKind" : "TableNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/RoleLine_2[0]", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, - "computedX" : 240.027, - "computedY" : 308.96, - "placementX" : 240.027, - "placementY" : 308.96, - "placementWidth" : 333.239, - "placementHeight" : 12.42, + "depth" : 14, + "layer" : 14, + "computedX" : 224.227, + "computedY" : 195.59, + "placementX" : 224.227, + "placementY" : 195.59, + "placementWidth" : 5.6, + "placementHeight" : 6.72, "startPage" : 0, "endPage" : 0, - "contentWidth" : 333.239, - "contentHeight" : 12.42, + "contentWidth" : 5.6, + "contentHeight" : 6.72, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1784,17 +2954,17 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/RoleLine_2[0]/Marker_2[1]", - "entityName" : "Marker_2", - "entityKind" : "ParagraphNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/RoleLine_2[0]", - "childIndex" : 1, - "depth" : 8, - "layer" : 8, + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, "computedX" : 224.227, - "computedY" : 314.66, + "computedY" : 195.59, "placementX" : 224.227, - "placementY" : 314.66, + "placementY" : 195.59, "placementWidth" : 5.6, "placementHeight" : 6.72, "startPage" : 0, @@ -1814,27 +2984,27 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/Employer_2[1]", - "entityName" : "Employer_2", - "entityKind" : "ParagraphNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, - "computedX" : 240.027, - "computedY" : 296.04, - "placementX" : 240.027, - "placementY" : 296.04, - "placementWidth" : 100.528, - "placementHeight" : 10.92, + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 224.227, + "computedY" : 195.59, + "placementX" : 224.227, + "placementY" : 195.59, + "placementWidth" : 5.6, + "placementHeight" : 6.72, "startPage" : 0, "endPage" : 0, - "contentWidth" : 100.528, - "contentHeight" : 10.92, + "contentWidth" : 5.6, + "contentHeight" : 6.72, "margin" : { - "top" : 2.0, + "top" : 0.0, "right" : 0.0, - "bottom" : 6.6, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -1844,23 +3014,23 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]/Highlights_2[2]", - "entityName" : "Highlights_2", - "entityKind" : "ListNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_2[2]", - "childIndex" : 2, - "depth" : 7, - "layer" : 7, - "computedX" : 240.027, - "computedY" : 220.71, - "placementX" : 240.027, - "placementY" : 220.71, - "placementWidth" : 307.972, - "placementHeight" : 68.73, + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_3[0]", + "entityName" : "Marker_3", + "entityKind" : "ParagraphNode", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 224.227, + "computedY" : 195.59, + "placementX" : 224.227, + "placementY" : 195.59, + "placementWidth" : 5.6, + "placementHeight" : 6.72, "startPage" : 0, "endPage" : 0, - "contentWidth" : 307.972, - "contentHeight" : 68.73, + "contentWidth" : 5.6, + "contentHeight" : 6.72, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1874,22 +3044,22 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]", - "entityName" : "ExperienceEntry_3", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]", - "childIndex" : 3, - "depth" : 6, - "layer" : 6, - "computedX" : 227.027, + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 240.027, "computedY" : 114.63, - "placementX" : 227.027, + "placementX" : 240.027, "placementY" : 114.63, - "placementWidth" : 346.239, + "placementWidth" : 333.239, "placementHeight" : 87.68, "startPage" : 0, "endPage" : 0, - "contentWidth" : 346.239, + "contentWidth" : 333.239, "contentHeight" : 87.68, "margin" : { "top" : 0.0, @@ -1901,16 +3071,16 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 13.0 + "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/RoleLine_3[0]", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_3[0]", "entityName" : "RoleLine_3", "entityKind" : "LayerStackNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, + "depth" : 13, + "layer" : 13, "computedX" : 240.027, "computedY" : 189.89, "placementX" : 240.027, @@ -1934,13 +3104,13 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/RoleLine_3[0]/RoleTable_3[0]", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_3[0]/RoleTable_3[0]", "entityName" : "RoleTable_3", "entityKind" : "TableNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/RoleLine_3[0]", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_3[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, + "depth" : 14, + "layer" : 14, "computedX" : 240.027, "computedY" : 189.89, "placementX" : 240.027, @@ -1964,43 +3134,13 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/RoleLine_3[0]/Marker_3[1]", - "entityName" : "Marker_3", - "entityKind" : "ParagraphNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/RoleLine_3[0]", - "childIndex" : 1, - "depth" : 8, - "layer" : 8, - "computedX" : 224.227, - "computedY" : 195.59, - "placementX" : 224.227, - "placementY" : 195.59, - "placementWidth" : 5.6, - "placementHeight" : 6.72, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 5.6, - "contentHeight" : 6.72, - "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" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/Employer_3[1]", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_3[1]", "entityName" : "Employer_3", "entityKind" : "ParagraphNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 1, - "depth" : 7, - "layer" : 7, + "depth" : 13, + "layer" : 13, "computedX" : 240.027, "computedY" : 176.97, "placementX" : 240.027, @@ -2024,13 +3164,13 @@ "left" : 0.0 } }, { - "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]/Highlights_3[2]", + "path" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_3[2]", "entityName" : "Highlights_3", "entityKind" : "ListNode", - "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntry_3[3]", + "parentPath" : "SlateOrangeCv[0]/Body[1]/MainColumn[1]/Experience[1]/ExperienceEntries[2]/ExperienceEntriesHolder[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 2, - "depth" : 7, - "layer" : 7, + "depth" : 13, + "layer" : 13, "computedX" : 240.027, "computedY" : 114.63, "placementX" : 240.027, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java index e0754e7e6..40edeb3fd 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java @@ -4,12 +4,15 @@ import com.demcha.compose.document.dsl.ParagraphBuilder; import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.dsl.TimelineMarker; +import com.demcha.compose.document.dsl.TimelineRailExtent; import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.LayerAlign; import com.demcha.compose.document.node.ListMarker; import com.demcha.compose.document.node.TextAlign; import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; import com.demcha.compose.document.table.DocumentTableCell; import com.demcha.compose.document.table.DocumentTableColumn; import com.demcha.compose.document.table.DocumentTableStyle; @@ -26,6 +29,7 @@ import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.BODY_SIZE; import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.BODY_TOP; import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_GUTTER; +import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.LINE_FACTOR; import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_HEADING_SIZE; import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_HEADING_TO_RULE; import static com.demcha.compose.document.templates.cv.presets.SlateOrangeStyles.CREDENTIAL_LEFT_COLUMN; @@ -138,36 +142,45 @@ private static void renderExperience(SectionBuilder main, EntriesSection experie block.margin((float) PROFILE_TO_EXPERIENCE, 0f, 0f, 0f); block.keepTogether(); heading(block, "Experience", experience.title()); - block.addSection("ExperienceEntries", host -> { - host.spacing(0); - host.margin((float) RULE_TO_MAIN_BODY, 0f, 0f, 0f); + SectionBuilder holder = new SectionBuilder(); + holder.name("ExperienceEntriesHolder"); + holder.spacing(0); + // The axis column centres the rail on itself, so the timeline starts half a disc + // left of the edge the accents drew on and the line lands back on it. + holder.margin(new DocumentInsets(RULE_TO_MAIN_BODY, 0, 0, -MARKER_DIAMETER / 2.0)); + holder.addTimeline(timeline -> { + timeline.markerOnRail() + .rail(rail -> rail + .stroke(DocumentStroke.of(RULE, RULE_THICKNESS)) + .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .axisWidth(MARKER_DIAMETER) + .markerGap(ENTRY_INDENT - MARKER_DIAMETER / 2.0) + .gutter(0) + .spacing(ENTRY_GAP); List entries = experience.entries(); for (int i = 0; i < entries.size(); i++) { CvEntry entry = entries.get(i); - boolean last = i == entries.size() - 1; int index = i; - host.addSection("ExperienceEntry_" + index, body -> { + timeline.entry(entryMarker(index), e -> e.content(body -> { body.spacing(0); - if (!last) { - body.accentLeft(RULE, RULE_THICKNESS); - } - body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, - (float) ENTRY_INDENT); renderEntry(body, entry, index); - }); + })); } }); + DocumentNode entriesNode = holder.build(); + block.addLayerStack(stack -> stack + .name("ExperienceEntries") + .layer(entriesNode, LayerAlign.TOP_LEFT, 0)); }); } /** One entry: the role and its dates, the employer line, then the bullets. */ private static void renderEntry(SectionBuilder body, CvEntry entry, int index) { + // The disc has left this stack for the timeline's axis column; the layer stays + // because the role line is a table and a table is not a row cell's to hold. body.addLayerStack(stack -> stack .name("RoleLine_" + index) - .layer(roleLine(entry, index), LayerAlign.TOP_LEFT, 0) - .position(marker(index), - -(ENTRY_INDENT + MARKER_DIAMETER / 2.0), 0.0, - LayerAlign.TOP_LEFT, 1)); + .layer(roleLine(entry, index), LayerAlign.TOP_LEFT, 0)); body.addParagraph(p -> p .name("Employer_" + index) .text(entry.subtitle()) @@ -218,13 +231,21 @@ private static DocumentNode roleLine(CvEntry entry, int index) { } /** The disc that caps the rail beside a role line. */ - private static DocumentNode marker(int index) { - ParagraphBuilder paragraph = new ParagraphBuilder(); - paragraph.name("Marker_" + index); - paragraph.lineSpacing(0); - paragraph.textStyle(style(BODY_FONT, MARKER_DIAMETER, ACCENT, false)); - paragraph.dot(MARKER_DIAMETER, ACCENT); - return paragraph.build(); + /** + * The disc that marks a role, as a timeline marker. + * + *

      The box is the disc's own line box — {@code LINE_FACTOR} times its size, which is + * what the paragraph measured to when the stack positioned it — so the anchor the rail + * runs through is the centre of the same box the disc has always occupied.

      + */ + private static TimelineMarker entryMarker(int index) { + return TimelineMarker.custom(MARKER_DIAMETER, MARKER_DIAMETER * LINE_FACTOR, + column -> column.addParagraph(paragraph -> { + paragraph.name("Marker_" + index); + paragraph.lineSpacing(0); + paragraph.textStyle(style(BODY_FONT, MARKER_DIAMETER, ACCENT, false)); + paragraph.dot(MARKER_DIAMETER, ACCENT); + })); } // -- credentials ------------------------------------------------------- From 9e0a76d042eead60b2e6a1d3b81692030d17755f Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 10:51:19 +0100 Subject: [PATCH 57/85] test(qa): normalize visual baselines after the engine merge These six PNGs are engine-merge baseline updates, not template migration output. No template changed in this commit. Merging develop moved rendering for part of the promoted catalogue while every gate stayed green: a 50k mismatch budget is a gate, not evidence that a baseline is current. Re-recording every baseline from the current engine and diffing against the committed file showed 114 of 126 byte-identical and 12 adrift. The same sweep at the pre-merge commit c587a17e re-recorded all but one of those twelve byte-identical, which is what proves the drift here is the merge and not the host: a rasteriser or font difference would have moved most of the 126. Normalized, with the drift each carried against the merged engine: consulting_invoice 5463 px, maxDelta 219 obsidian_invoice 4280 px, maxDelta 212 violet_grid 1563 px, maxDelta 148 orange_ops 1124 px, maxDelta 161 workspace_invoice 316 px, maxDelta 207 modern_receipt 2 px, maxDelta 2 violet_grid and workspace_invoice also moved their layout snapshots at merge time, from the fix that stops a row child horizontal margin being taken off twice. The other four moved with no snapshot change at all, so their cause sits below node level - fragments, borders and decorations, which a layout snapshot records nothing about. Deliberately not here. slate_orange, charcoal_gold, midnight_navy, navy_sidebar and serif_headline are adrift too, but their renders already carry timeline migration output and a PNG cannot be split between the two causes; they get a separate refresh once the migration campaign ends, attributed to the per-preset evidence already recorded. engineering_resume is adrift by 306 px, maxDelta 99 - the same figure it carried at c587a17e, so it predates this integration entirely and is left for its own investigation. Exactly six files changed, the other 120 baselines verified byte-identical by checksum before and after; no layout snapshot moved; the six presets gates pass. --- .../cv-v2-layered/orange_ops-page-0.png | Bin 171055 -> 171081 bytes .../cv-v2-layered/violet_grid-page-0.png | Bin 139076 -> 139146 bytes .../consulting_invoice-page-0.png | Bin 94555 -> 94576 bytes .../obsidian_invoice-page-0.png | Bin 78833 -> 78793 bytes .../workspace_invoice-page-0.png | Bin 87537 -> 87525 bytes .../receipt-layered/modern_receipt-page-0.png | Bin 81232 -> 81214 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/orange_ops-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/orange_ops-page-0.png index 257d00f9fd307b4a01b3c3b2cf3e6e01cb1e8790..b3d58007a71682612a17fc66e8df64fe369ec9a0 100644 GIT binary patch delta 119077 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
      jLzPhn{qNl7il!bd>{Tg1 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%0DT%+VZ`eK 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

      E6b-MLgO!n!MOfV0s?f7Zcne^P9WnFqwnqSf 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 z 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

      q@Ot5H%;wYQ&!}kOVwqaxb3}tN+xR%rj86qn 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

      `857ZLq-nB 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

      K_82)LVwl2zyF%lN{G)kBDrw4h) zhW%Sm1^sW;*#9d`P+@8O<45@m7FtJe z8`$U1+86UfXbL*AD53v>J_7AlLj&Xqw%oQ4m<<}oeDpvowXXf}l0}EYg>Q%zKTlsa zYngvQSfgvkr9YuyctQn89e-6Rz}XzHhcbZjk^h`3($3o2nawY(*#-$nj0Q?RqFn^= z)VmZ=3mNx}pYU|fm>%WNVng6GF{r+|{ZDOIjRllknl*T=e+q;@0EW8Tc5v`u)${^%0L7bM zfOiX_5ebkLdyFMFA!?_wq&^_;;-pUe9sf3erise8!TmlPT;*VMUw6nu7$6Su zbY-xw%Lsdo-DhqEngR{g!=~|xiLv33C>_w3ynUe?gdU9b?H)+VklRKPql4<|t55O4 z`vFAij^pQ~xNtztf{GcT(_mv_MV~K!Y_*-<57GRA^{ZL{SJ6Zx=;F|sV^aAt#&Ub{ z3bQU-`3sGd&;f{rPrFE;f{%E}6~b#MBYM;!A?N=ncl z&pm1MoU_YykU^jRTR8`S^9#d8DAK=xe<+s4SRww7~B zLVW=2keK~{w7qpymfO4UZJ;zrNFx%`9nud{0#XtZ(jh4g0ur}Mw}f;fpiI?F`;RroT7&hBJLbIRHNV&Ad(D}z3AF9*+=A2+rxASt zVW}erpOF?rCjpUw!%KbY(F97JJP8ftoD>)rzxvZ}Sf~0JC`GdTPcjPxU0#-pX8@gs ziT5}zZVndbx!6#*cZP2u#@_pI~MTs|*h;0TY;gf#E@ZNR51S z3fS0&H#o@wXUF{{t7skL69w?M!DS#^8XwO2xOp63v-rx{hO7Gi#z?^C3~y>k-%FMe zKzpOl!JaX76|W^FEkZX5*v89r6_j@|$D6_{+qMP^$O?<1yXfPce?YD7Q)eL+qoE%FoYpL`F^?-IvW7VUN8#V;R4;oD`Yx>fLe1{+T%&Y z_lE#`qghG?c=h<$*rH2!UtH;06d+Xi`S@G1UaCt)*=6_Pd-Gep~O?pxA} z@hVJfe0lx)Gbw%ag9nq}Ale$eul%HpV>p@5??`b=lenLwEe>WlvpCWq2Tjl)h-GfZ z{bT{FICWs?6hnXJ_^QiarefZ%laXdV>y>Q%8m7QoW68q}9|Y6BjY*SyryPiG;4Fh6ROq}WtJD3YVk zLQhXLnuUi2RoFazj}^eLYPb2!-8nMvsI}Ma@A^{TNx~Q-wWUJTwUItBF!<@#1_Wkp zq4*xKmL$VG^o!t`;_0E&y`ify(kA|K%G28(+c|vAcGJZ=L!iom=HKXcovaV9^8E%J z9TgV$LlM0YQ{K0^V^AOdl6Cy(vl@PK)OXDX6Uj(J+D`=x?nL9Zpca?O*(IU%rCs?Q zjFW1atKjFi_^j<;o@@>FXUTq_N%{6=13QsDn-7TU^_Uw~fi*SuFf8de z!khr_!&k3PtyIN50WL;9-ZwkA=lk~ZaefE3aW*tj>w=n^u)BGSh?2(RN@*|oNl8$@ zDbPQ35Ccv3+GzuJsqZUf|M>MDfS4#XZr=cF@7ub??cmDu8_=Oz#%O+Y;PVyJU z0b6ZPK-Jkt1+yY^pj%L+6T)Slgx|k(ju3?I-i6O50l=i$r}K z8o{CxCf$xbJ$sUygXh7jU;jL&t?%09Ho#|E)&yHT&ih0G$(~9{uPuAIJ>Bd%k4q-q z`3b_fc+t)+QnQz0Uf(eF0kN49dHK!SA*! zM9aszupWzvi%_%bvKzz!*dfS`)} z@z`sVt%tQ?W`cg#3Kh= zr2;OK3cewF5b+K0Q=O-tK^ya1$dN8TvU{ zn3(~ak>G?3*2h3B{wVb>&>{%5!$izlT961h=f~hzHhJ1lk7y$T*A6udy(~b}H@A@E zZYi{gho((YU+6MTa7t~v&m}JN9$pIHHZdBSNDK()*xN^0s}a&Z>9%`i$azpjZX8YQ zh8YJHcGqYOWa6cs>Vq`UL=5naKw)@YW^g~9U>r8BW}SkxZ=g$U`BB^sW)j`NH)$uL z-`G@Bv(?LA8?BLkFtU&i3ZY;z;_{QmCav6(__CK-IMdu|;d_CUt8JdFI<`RucUPa- zMQr=dk4!1K31K1?*SV-19>S$wWZz(A9ew$ZaUf`GxtmM#qLvXt9el3l{3}W)a+OIcmasb$7r94S5%$r zs(gQ&fHWepa`wm&4R{3A%=@bU zp|eujaVU(J$%Y=dhEXJrSU+z1{^)%3rx-$%dd8MH54Q)EdO65o9=@u}TCr_9 zxcJCWsLw!b@ErwIEzXVJqR0POly6-Ms>xc8RQW_Lt0+ItFSXw2A>`3lt;x)2TB;Kn zHkdj*NB0w>s%~xfG1!%EnAt9o?c{?W+#9^qx5%&AeT&I^@iVer~$I9^M2&1m=5uBd4q)KkDW8E6%#Ev$)N}xik+l0f11u-O z^lp8>KF2P;rjrskZ9;zO1cjg1Wv;RCHyWz7S||6F@7?{! zsrV1H7KDTrZXtIuKBExICew-I$7tvnT+6Oz)z=Qusyds%F5~V3#PY6mTU#2PA}}m; zX3!uRQxls#74*!-N{QE{*P=Mq;W7+ShVOZ@pKNx+yFdDx(%$7J@MtnWkRTEAMfygg zjhGUMq_pTiARlB-K*^!uyy6~A;-p$+rRGQ&Xn@EOgD>iB!v!f^fl5w_S{6HN{O;3V z>(NJ(Jh5%l3U03z8;y{s)$tK$KFQ|3AMfa({X+tIhXE%5fvY8y*jSX zvH@aL2$vywG5x8ThBp&+49^#6(9LHOPFDDej?#tlI=<>aMIr=~m8#2ACL&F%?wu%) zlJ_)X(g=*qPk*;J5JqJZ25Hq*OgqR~ZhBnoV1!2+1Uo)g|ME&btK{mnJU$;^`O7=m z2PDx7B+@X^kHUG@R^#BuA>#TMD) zE5S5$*^WnmL_spqUS8vrCsCC%H*qGYkHnSTmj)^M?4nw zz$v$YgY$2+Q`sSW!->dIYCFuK_qy&|K|%EO$DLTJiYEtBOOr!@y{R3q`;{|RFoF%( zB*bQU6K(tZUqhy#AWgFf&NgsXg|yWF3^h}ND!NPu1%0H)QDPa!B;h`xDXHs)sg!99 zC})58YX$vW{075wE)N18C&z9=L^7A%`nntw@sME3#_#2F!;SRCWytB5C^{D2gyUbc zC-BJnFw9-9_oUQhU7sBYuc@*>dk7rVYkDjb<>uFb@2{|RErhN<)2LZ1ABqoMJW1<% z{vMPxo5(8%=zx_w5jx$n242A*Kdb?G0Sd_e?jfGhYQuA93kcvjw`UTLvpU%+rx1*N zh5*_{)i?6yiu-=uz82fYdqW(^AETP{9j zg7BKn0$oI!`WZZq+Y+`QJQ&^t^nFqN<^GNrmtF0=*L4#u;L*(7*gzQqduIUnW#89(?76-A19`ijPYH4@Fip5F&#)-)elacG zh&THLK?1q0MuOFvOm#6XNPu%GR;GDQqHdB2yqy7!C;)T90o5K9`o1BJD*@n7T!Itv zY?XFlG!=Zj=Gs0!=tGneMsP54t47EWoLwLl0HDl^pB?BZM zWlk22J6Jsz1*KF6>9U2>Z!)_!!Y2cC?6Al@0*#>ok3~oJSpa%53cOpw>MTm%`?aOz zf`8+;hJ^lFx_0Ip#O9o0O~aE!2$~6s2r+d3XR3&`-*fMQ1NkE1S5-YVd3uyv4C43$ z_nj;!;^or3N8=XIE1XvQ^`u0k5;?b|mb9B`&B$zm8Uf)qCpJJj)WiZzbO8|wwJ_cb zpua4(jn5%hntV`wA%mCnB4vWc9e@Q2-r?najD__AM^WE9i(C^A-KhQv%LNa2sUBD{ zKD!l;pGf+?|9(HAnu}^_aPg)J#CLsaOuW<#R*4rs18)H;>#h%f(?D35VkZ`MRvf7O z5Q-<{)1EQ9F#q+IgGU{YSLPpah&D4_(`^c)O>u<^J_zCFiHZKpxdyD|Hmm1L(;uUV zR`c@mioO?kt+jAuV4vb z5@#n+t+cw#S2P5kB0h|sE;VEA#}BImvD5tVc?0MgRA=HjM2vG;5KXGiN0a08kkhQ( za4p>fUnHO&X!m7Tm+^IRaF&^E;U_yX2F-E4&Y)p{k<7Qq(_O>26!3r*#x{e(IlDaz zb_``I!B|kyAsZ5T%Dz~{(NJo=d)q5r2p5ZA@E+y!umVnl*Y8)A#V%Js8-|x0j^nUe zA*F!OL^tG%xtV)Cs>9qfNtfQxzr2i!qrU}tsN}2vtO~fSCVOa;SGmZ>XsD<>v5fa0 z*#6kg&p8Ruo|qSj+Ri%GvKOtMHK6GQZzM%-4B#Q`Ey&?t^O`e_gTIbsh`L!?*{<&P zi(M>X#OrL4w6tkg8IGI6&pY$QIk!1Fer8wNTO3dS z9&LZ`5-%v;f(;o^XMT+j&uQYl+iHiGuvd7&o+vUKK0OODvOhdUuXc?sjR8FxCO%xb$;q5sq__#8>pgg-)P@ETvubyhv=r!qBwP<@wOo2T+}v667hS{e zopuC%u^N=`eDtsA#sIZ$@O_*nM7PHG=_sejn>}}`F>sCi{S=agP_KO!rl&jN+T`CE zJ*YDMz4B{xro<*Le+n!%LXX}|yKw?QQ&EFm17+zH`0KPOmz0xf(gTL7g6nsnH2M0+ zN~4obOeGmz09$#zPu%=LitB!4FwIyZi#rkkBF**JzfvqY{#24)vOWmFI%( zmwt(T*N?5X?2F%rjTu>kTmcab$x)&(0j`qXhYaLdOS>Q$pCPN|axWJT00HjkigNqg z5oiw4#vvoILgzrU{|7W`8r6rw--?h^h|>XiNiWrR@uYE*j)o@X3#fE<+e#%@ zBu*Lp+2DH>w+8nF?(jBR5`Ihnx7OYwsb3}i`mhkJz7y|310DdLRBa}M{nsPnFVB+E zp5w^MTHy~zP>A_S0k*WY;;0;b6_}h%oLX^);K$;$^o^cw_0S4k?u`#6Iq*R}-I$#v zI4MD}=4c96ywVv4Vx^!<0jI|tz65GKZUed9Yjz`6IJr*r!0mhQ-qZsV$ns7;aHn(1 z?4h`~Qi=g}h7kC>+c>|KdadbGJjU0GtI|~^_!MK~>?VBxla{HmEa0IMpTjEh1KDVN zgWEkKZzwM_>KTzhFDW_8O_m&y}@f8Qjz`6uIV%d*Nrpcpv|wUdx4ulMX5< znYXv6E+6}!M~`OpMGp|{z{;OZ$F#hcGoT1dHJ&n!{S`At>#JqUOc)Q~sw-a~T^ZOGdv8w~|%8!m4JyUsV zQ{cIxPjgGAJ8HIb%KJRyDSka>fKm7cM066$3Z(`65fkdkaJb`qyg2Ayg`8Cn07*$P z<^188gdjn9;yS^=JLC-@xe}0pepDiEpzn?*S6Xvv3l=8z9ddqmGdary$@9pMfLD?G z`7}G*{MTsf$E3>6xGs)d`%w^eZkqY@zoWoSzVGkG(4|JVDr;}HsebB00+S!(QmSOuuVla4k zPAYX3l?|*=ip1W~$6)}w zKtscEn#LZneT|7QvLj|UdyFp#h)koMUOeGeM2H|ofH-7}HvNJwV1>3_(Sh0V8b;Qe zToZ_~9yr`y3^wYyt$}Ct*#CV07V`vAJM`zD4PLJNCA=1QKh+oiM&2Q9^?3iBGi2(R zHt&ZHPAVwQ(NP<`eeb4;l#YMT z(9qBwOyfsd5-&ETmAG!Xt17w$*s#8?_lM%;^y5{qS3gi!?Z!vH)sLPJXf~T+AGCeV zgQxX8p6qi1fc;>g(5|Ow!-k%go%a%3MexSoXM}DgR3>w2QE4%0#XI`tOQlyK=idm? zfN4t!H11Y6qi3wQ3z5oq6oN@8XtM}TxSf8&cxObnjOe-7?SfM8ftWOX1=%Kea<2z( zOcixiiK3_Rm4(i;je$aH?z+IVE;%;R)J% z@L&2D?qS0Fy28SPvY`^mnhD%!h#x6NjTlVL^ zW|K@7|N9(tZ_+EJZa-&k?P~Tn1~B_|M$L|tk8k#e#jee6jsHrFi;$E`GZD!lCe&x( zF$TvwqT(2I^@xEL9g(Y5>j{dh(r!W-uRC+l@O=0_rB*)(hwxw1{s8LxnV9EF72%?( z!w(*+y1~(?hgU5f3bFHqdi7Sb#s*@{EuJV;An(k6C=KA~bQP=D{_O6c+0OG@NQW(o zDc9(O`nu&7`)F(E;&50w0*f(C7>hzD)P6G`sn9t1Xc%~CfkOp{jO*jxy*ye&m!iwE zf121pH%*Mn6L7CSZ12q3goeql^Skk8U_~=rtytbkq|Ty$z8x0Hkq2tsu`!@SxB;jv zEfS`FU;68t^(pGtUz2mz29}1Pt*6oFL#0cVS2R(`N zr_JE4V*`CGtUyqp1C0XiYfG#hc*bL_vqCplsSR4@qPL&M^hI z7b9fAbv*U5>$_#>Gl19St$O}&Rq36n4vaq4odMW$e?s&RvII!r`vA1{ zK7lxSHb9Uw*$&eo2Q1Al%{3GqKum7TXNX3;0K~XrqFQ%t+egv&7bvx|W<$skFoGLB z4;WuT`fC_ni<{m22O~glnq0m++{n*Kl_D^06?gYRfr!=ubF=4xb0Ee~!XwIt3l8j( z-;@VFNkMC9M0i-ASee*{6N&)H>F}TpuwyUo`N!mO+Ln0TW!9r2v+e9ht^6k$y&uko z=$Y=&q$h)j*$ikSwBlv{vHDG^Lwc-m&ohtu+KW5!w_XFW^Hx`J41urs{ro>p#H>EW zE8i*e#O9u$_*l!Ww0cJ8rVxtXYG(O~wumSCOxp3Gn=x4U6*|ks`_kyN>a9{F&x_Hk zy8+1n!fXcBdKkTVRMdAlm2SVoy8+?dy96(yLANbk78V9#2I9!T;`C?G*$mLLQ{PGO zl-3gW@4XImvyZorD08vEZA#ZE6oB?I+^3jyG`~HIM3cnRlk-B0vVTxw9{5Pa?ZXn< zvxyf9a<5b0soES(8BR+3hos9t0$X0;4kkfS*R89t3;ob1|LjEV-*PqYrOLRPYU3~k7Tf4l{8{PFzvqDd?`@erVn>f0KKNfrp#QC_ z&6ox;YisfBA3P{{bMqfOXk=ux{2x51XiBwZS}?51v2uf}!-l7U?r9{F@b4w`7~BdY zxSZKR|EQPXTGs`DS30-`ssSD(4z3Ky>85=XxFps-fliO$^6R_T=8180rC@>@+|4CK z{2zbm6dP>hCJDTLrmvsf>^PQ`B=4dI0Z10vfLCnc5X(%J_MG`b zARrrtK$5Kkc*!%xhKyu(y+!2>u#LDuAHEwj-mmKdZV4}lWaDj#y`bXHU{Fe5b}lYT z)6c!kxOv1yhpNQ5Yk-H>NruCW8h)1FG2`;jK$9I$F^e+&ChMjl4iDU!n(KkI>#J3e^@DT`w1BC% z-u(yxFV7QNo*P?&w~q`k8^@6cPs$RY?S|N;C{~?=$d=oeh^r0aafTe|hB4}gfz}_^va#mNtaJ||; zLme{LIz0x3+h5L?p@A>C3<97#giqk8@^#033~p>d*R2BWA|;kU<_2DZf7J#k(j<7xQ4;MGK zA-LvCH%d*)=9Vl5hgT-B*uS5xdClIa9`GV4C;@`gkbc+saEKmQg`D5Omi$3>k4wr2 zW<9vIPn-sTe+E7}6A7KPT=!V+DJ20*(?+LJD5dqv<0j25fI)laThRt zf|jqr@B(G@z8a0k@Bms4J0Is&VGy``=7DDS%jNq1ds-Ruda$H{68kn#AAw0>Ih%bp z{khOSs1<$Q?_psPK}AE10xQpzW9{rV<_?grzJgRBH{0B?2*5(XKT#y`476Nq0A@?D z!CRVX46l-bcA+V2|8WVdRSoHEgJ-fJQ@d__>E^wbIP?Kj3b8>NDK=Z-6miPSNx|Mz=fURolpwcH z(0=`!qz4CDv_rR-t3}e61qmer{C@izZ`nlFKCkxghEzCM(PRn0<|VnkT`)<6<6nWs zjUt_eM({+JFFcoQGQ6&s)i$IUvxfdZJXF0jY70r_OV-}N; z5bk>u!2ISL!TlFIpaa4ds3n6Lm(dlXgQ#l5+`tT%em!1?VCuVWL5(fY6`pg_u!JVD z8$NsnX(M!nTvOC>g&!UWda(Nq5d@j5sdBvdBt*B$c90@uebvC8Ghp=6x$f&$hXH8L z(a#r6F66XBW6NcEbbS*g|DaodIg9E&lEu%m00_1pMGcpm(^RE?Q zYc%$nS#~SR$}X0EV1U+xyEBV8z~Y%?y}BAm33(w?Dq*L|WoOqnar?LxWMJR&u8t`` zJ>3T7sus`a9QP)D)r|f|Jl1znW(B6BHNykXrlvbc;RS~fCXLhr;SXUC*c+fPJW^W) z6uNs)g&uCv!UrkL;KHq33`$g>U)OL`smuZs;N!;v3h~O9(9KfeL33)|S{lQU^}qzHGW+QXOLdZ9T+z4dez0yCDnBy;(_B3z-_?N@q|vydB5=cDM;YNVq=2XfH-k?)u-j^U}$f167Ka>bm?oAdSON|c-H@ujC$-guU5^<)KZ;BPVq}XihXH6-Ta&t>lbLfb-dPL3HW( zK__Xskh(!yC!^o1U@JM?w}ziI;F2BAw}*ep>R4*CA@7b?i+Ir!VN^07Ytw~y15 zuJXBPX0IBuWaRNq%4~3L!QDXr@}m2}@ofzEMG&gXPQW0s6-iWtK~ zGnwZv2qfyRc?~~+?j%m953;je`V5VomgLT;9q4#`Mg=P`pq#Q4qGCR2%ol-zSBTHl zMhwd9cP3T^-1akH2C^XB{q1aZhPS`jT6uQ#gmhnbEHo)OzVGzJFLZx9C6)Mjr(tV2 zVEC@3HNtyX277Qsr^suJ-o!v&zvqU$Iao7xvTVb5X86kvh zgafUvdx+0@^Y{K#QQ{(ExyU^t)IOBlt>q=%8tkA5;vdn%erwbPs+gE@&v(!H**-xr zi9)Vdt3DR49(*`A>An!hR3Tr4h%MiYQOZ#R$l*Kf{{&(ei;3;+3n9ohH`JY7cV zDqu<~6P?)}6}ZVq)@vp?s@ahCC9wryj%UQ_q=F}=$iLQs@E~h z!<@mRQ>la}agdH)#l)BbpO0)!JNY4ly845*+bHT3_O}St2`L_+NE1puBYk+!G>SB# z_4au+$Ic5NYv^jmX6A_(v zanU0rdOi`SrXl3sv+Am=*Tum6hRGUH$K|y8?ZXGMESa1Xv%5lyC0z3*bsmAo6Jmc5 zRWr%g7M|plCveg&>F&*<;!1-m*V&;d&&fC0s!8tH1S)lgo)EcAIJ}#gEmGT2&$-%R zV_IQOC6a^00Hs@pmr0(or!SF!;^Nb&rcdW9vlI^YlENm~yKv(Enz|(4I9I2z1pSge%H2*x8_>{HuNJ0K8~m(BSlwR0`oFy z1{ddXA9)sEFhd!O^3n8tbH#UQ3k818Us*BuK}Mbo>MzxL$qdq9Dc#p=>Eav0uPT@4Rpz-hi#=+o_K z<+B<`pR)c)OhRi)n0r93W^zF<&2HKK@GY`WS>%0ojz9D*veJ=nT7lw`sj)7MelBr- zTkppYtiT}mrqiRa)^wevWqnTXZJK!$F}nZw;6aZtCR#&AU4or+Yx=?s&=MNv#HJ3l}Xx5G`Lzv!4I80S&5VPCq{P2ONy^Vc^-(s5#;$HLf z9k{09VGlrbru)W&0CLV<=nGDRhXGMeKX6BpRKhHBGhiDc+QYb>c_R zsBiUdP;|9>W`(91a7!(ia9+RhZUhK<}<0hb$jkED!(rz1YNC zBU<{kYIW{QKQV)np|bbVYCCTtB=zx&V%W~2k?$W0>L)Jc*Da@Yj2-veNP0PYIkVdX zuUCjOD0uWykB4P*YS>o>#a(;$_w(R}^Wdb}ZwRBh<0 zK~m%#+?ZS(dypIaFg%Zi_U=0}E+L#AMke;cyz;BO8r}Xs4c$84rsQc!kfeaEUQ0YS zxv3tiYJc}{HJ)B~EX1M0qF)&NnTV9-yjHAo4C-H0d(=70ys^ZF3bXa#} ztf~>Nwbd87KULc(7s@264jn6$QfF3?Uy}z%DMnv!KQX937mieOcb_lPKgwlNyW(}( z{MwteVzA#@%Pm;htfKBmg5soJep2Q9Dh z&yP>o*?nEz)E&_#gB~-Dc_0ru%WA|33b?Lb6rUN!TpX5NcR!TcTg?xkn_ezoeu-cT zMi|eJTWp%5%Ny0R?K>Qore2zQ)V`yzf=N5*|2Zd9OkrKDrScq`g0AZpt7ZTF;|zY? znEVgV_y6mEfd0NlX_aJ5zO+on;3eH}NJ429!ZnHBT*lx`0b+2&Duiv-_UTBnq(tT) zd3=^bU*)26j_I+CS-ym~d<5S>S|!H(!T;<3y^%aJIzDa26l|Qnsut7N^<_wPnpIi_ z3k;wkK@|kV)a_%RkF1~)t3R6HQti%`e_ASmk6+Qzp|d8Ho2#au)1s6j^f`)Vn4zTf zd&cHmHu;Yw8>};PhU?Bu zBz!25%rS~xKc><}QL$DuHgZ3%jWu>zTiaA)WHdo=vaM|_$v(Se$kDFGQT_$ocswy_ zvQq#2IN=Dh2_2nlt-t56kAUIrDsxI`IJbe3blaE*gUUxPJ@X?O795GRZ;bOksJ&|V zst7~@gsU#-|NC)VYu6hhSaR%Ywd-!ih&qpq3PqSn@5wwW)+snpnL{!8w7GKLw$7Zs zlZl-^!1=8C9#8b0m4$|~i;L@l-2NYTQR%J&_^dk(%B-!caQM2_jF&8jZMAn@QTNr)xVe#I^JDwk3=lix|{jYGx}=xoa}t5%({EW zZL8jcf0*|2;>u-&u}jQAOZJM2K{=-a&)YjnThHLygP1t+vcJWj%Qe2JXr(1BN5M$! z!Vylgs+w#1NYpjlm_sT4F}tqU!Y#XVRs&o1(f4b8*Zfw53G&U&aQNPEuJ*>Ypv8a~ zbahHgfIc~Cs-a)=oU1`H;H!eSyP)DF$O2USFYZxOuP$BhEk|5eL)T7zehQ_-IdA9Q z_NfX{QNDrsXHdve*iqz#UdNlE(3c8eUr(RRUq^hrE2kheM_ynX9F%bZA$Mx7&0Epv zO?eYuskfFu_72n?9@pMXU9$UjXNT^P#~7;_8y5B#1!)If9RB$~+tUe+l69h@y%+9H zO@}>)e+Zu1^75cp>!A4NV?0O8dOS$z+bSQz-2Pc zE1#w{u18UnI$G~o!}|35v^)^oiZ9N3qKGiJmf&J`veLX}&o#kIi;HWUcmR%QNic?$ zl8kvS=B|c_LaE8)Ig01AU**hl_SQCr8}|1&=cnR}u7e+5^E!X?_2H?sk*pLvIr|QA z>YlcTlA@GY)hj7?Br1nFG2DZDv)G1V;Iu~+5=V`&Aq~2h#~#GYghjev0d-F zEpselQ1`KL+ z^ki~qy3(#OlGcpAc_H-7K7>K)nij#qDO_R zTZhj1$ooZlJ(0`hcJr7ga7`^0Bd>*mu;3*dOU1D21+QL)uEY7_P^|k_$p;2(dRG2X z!Alktw)H1#eJ+^Td<_s?DT#qWonb5gUCn~`P2EOBlEJt6+>P?l;4T^)BT`qlued_|G{WNQZ4O>~Nns1C zp0dPdxO*FwixoR)F_knOZFY8cK0$O^NCqAkpVVXNL)foh|JDR%Osm9D>0y8$znb?g zFFG#c(QRU4%ca(wSfYd{n!>$yT;ORso)=pxP{_sgKe|l{x$5bWel5KYlIq2LX$%JPd}!9IZq!9S1aH(KiWM6-t}+jYB0bc_H-M?bZo;tM z?}?F7X9PNQQB2RxU6dcXuxqLm4tJR>3#uGzu&;JL`hncSMas!$j^cK`OBE3B3)88D zQxI?`__?fX2L}dv`+u=SM8IJ41-eW~sgGutV~@qUIjvO<(*?i!EpClD{K!h%t*h&p zoi2-!k7G>GRxhI#I?KzJPY`bI@4w)~_}zP3+|vxAf6^N`X6#Ia_~g@jvw9Ftm_HQi zNEM49>-x&TouwMGpMpVTzH~5}_lNyv70`aMmX!r(kTEopzBiowL7}IzlW2Kl0p?Li+uu3+hwztG5FRK5kKze-H5v`m7s z3M51YR_u*ru!@6LGDyN~r%bTwqJmT@rY{Km*&|=@4in}QafL)f!ts?BQsM( zTBzIeJq=3=F6!Ugl)bsl|K_`-d{ZAYayaX891S&}NXP22iMi3WSG3;kgm=pcMO!6J zKeCS4ks#tw3%rI{v6k}Wj0^YwcA`b>}? z3v(Vkn-QL0YPt5+UcM&`oc}{_J5!}HKk&Fsi6Pgpes$F>N83f?UEzx6t8v{v4pWEk z!P4>RfP%N-_v^Z}lyh2oXKig`GwT-;N4Ex_5lL9qW0(f%IxV~Rf1Sb^|iTyj6$ z?9=_9Zfa^g*z&@0)NScyf0$eDJZ*)H^HVM#V_VdFr^Kr12Q&3QwyJ;EV&qj`+x&Dq z;oJA`<-Jz85!F=(fzC0=TcU1-hs7jk$gdu0l+>WRT(5xl0q+?p?^}xZNqqfY%`uaV zxm$7b+^)$z`M#}mTxnaMo&;n?$cZ9|+*imFjU4E>JpZf|OiP+qvCk0TxgV%Q+`~k) zjR)8hbicn_jhtHgX$BK{xD_2}H%z%+&iFlAaow0|nRR+tVwBj;Z#&t9;?)1fG;+7@ zX?nreX>M+9-5+FJwit6>yU|7QEQ0a7c`z{)l>5b<-F#PW;pLwVv|ovO)C>D3iI}9$ z`?KlijSW`xiZ@Z$oZyfN#ZFXSL%6g(EX=sl9VMgFpIiZj_7J(>-L87e50`wKW|&6$ zH>p&wD{=deWTmf#2A(}~*22@lv@*-EKgZ=ReVK1q1g}Y%Z70gYsDB*g%Y1Cg34ND# z%ST3G0Ui+~Y$Ti|s^IEU+G|DrI4(SuGv$$K!Z_KqyV&pg5EjaCA9w%*EA;$vl{3<6 zNzAlmx+L$nF)R|*Nf3*3p4b3VuC*AG{3tE2Nk~ZK{{EaIM0uiw%@+=iN4*fRTJq|Z z>GW$Mu{M6uMSYlGP~)$@^J?IS`Z){xwF-6`Aj`dpnSmmS?TU?mp*$$K|ZD&$}IbM0v_+U43+q zK(Z3+R)Yh}B@9(GcT1Sc#atXCS-}15oH`4f#CnxmS@Wyf!)q#w1L_&_qI;6oR$@BD z@$>P$x8y4%3R|ov$8SvBZQj03E;VF2&|j!eCP)hRS2(^!WM0;jgSWuVP9F`E|0Tw3 zWGL@0g!6n!)yTW)p}}sgvg{#!|a`luTs21w&t7BYUj^|o)41fG+FbKUEF90PG1c6^>v-d+B@ZNw<1?Izj zU5gHf6At8v*;@B##utu1Rh*o7$Z9kV$gx(nP;iaDXJpaK(Z2!3w8+f1D&3%O0t@KR zdb2sH{7o`JRbyeG7@qR9X8TX0`-;;!b;hvJqs{5Gc!P*6)b=FPgJ9(P9g+m@pV>dMiub9YxujwImdj07yUYM^Qm5l; z)-NuC+)@Z5wwXXGSY0(Q}-|~hU?QK z3#`21zBg|%rsQ0~L0vlUg@kBF${A=J3+A7EaG#7>??L* zjr*wtm@xM1tm2bG{BDGG=mcZfYC_2jhOlOiGgk`#Tb$6+M;x4-xyyL+a+EhH607t7S_hHZ6XtkGmafPB>RJoH$ zyHH;cTaPj9>|P(X)k5v>6(f<(p#5pFS-$ywk48W0uU2GECM*7i3n5~{y=2s?FhKyXt*PyFi9?0G1a zX~VPHlK*{UZR0eaor#SA(birbhQCgRMx@PguF<<@AvEAgiPj>cgfTtSvFzwg-BDmu zm?=WSH?No9uqI6575ZQe^ffrTHu~ybPT(>)NRUS<=AP)OFSa$Q>>c}@W4F>s9!GU7L2)JTo_S!G9Uu(L0;>t;)2z(oVjIHjJkNHGqpIWAC)9v= zlaI8JICIdJ4PeMajv? zvP_oHxjirWxyC)`KK-6kG}1UPj1Z!bdJw$KpsW+RzS21;zyxue z^d~h;Al#b2mmOl^^Lr07a!F^m{Prjx-+`+K z5jZbnyJDnLM~C$GA7T5zIT2pgX5*P3&Vxe_tuLP@I_zz%#8jM1PzZJV=O0*}n`~uY z+zD|I=1u%%G+a@4j*A~$T(^^&#|Sl&SzB4r;y#Z~i%PV$U4~bOOtzGqXf4OuP*=S? zCbu!{N3oq{;+HNViD+0KD>azzMPvElAD+0fv0d8g^l(rx$^Jmy(a8w`R($!mqC(J& z?cgm;_#<|%*>S{7ExqUb?3C%!OXokKf+40teA^<}vpUmN2E%Ffwwe*A7uS;s96L_tz5w;~R*Li(Y!I||sdbSx39cpDNe2T4diS2F$d?ao&E10iiz0mln< zPeZS0i_)n6hE3%(d9gs43N-$Ks$-z$&6>U^IJ^vGolj19FemHcU~#tlZ>I#^qkKdT z1C%}-u!isef`!;SGekyn1TnjyQfW6IORg2LEo%6j=kUn6UcmAo)ZN#CPQ_&p1S$uH z_?{&#BXH!Buj@Q6Y1oAQ{mZJd1chHFhn(h3s@#&z#|1hKq+*NEU9wX9AkCo!^|w;z zlWePcSX>{+f4ICI2M~)B$I9r~*rk9~CNDnjZ@s>_FiMc=-F5~<6vOQKie5JrkLCTF z&u2_N$@}i{bRhEUlUWbks(4q@n$i#pbj2^IY;^}?9VMzE4#ak5`x(v~Q_H0BcyDQ3hQ-n)ZuR26fM+Y@G4FL91oq<_ zcW$iTP84BPbh}fz>DG!39Xlk)*|6Paz!iwow#Ww!+NJcqelI0@9GAs*n^sq%xhn(l z#b$x0_ zfAyc;To1fm^WYWG3VjUEN$LN@;OQwP6%+=2@0@;Cd!O{#3&e|cy0b&$y@hH$hF`!a=j_8fDv}3yTCT^oFNq`_xES-7an2* zkoX|%o&AfX!ptzE#IT!?^E&x-7z0*ror2%T$OX~Q_4KaQN}F7%Uy#%NGS$|zL3=N- z`fq~KPUL@6UoGq$G=m9v?DWted+8=m>XuZDB}cQ`3(;TPc)reg|4#`w%b$To*Ji?8 ztot}_E4cpmZ1BJJwFmPxdUBcGoOVueK>^vvaXNd)JAw^^%YW2|y&RW_z@d&=w?Kcn zNm=K(H)_&S!nt%yB-{Wbfkf|;pFdAjqj^KwWwCT}YqtvDn=HI`8{w->641}oT)v}S zVM&q8Ic^{1-qk!EVUU6qd6)7lqgbLP!DHr5yb$}2ahCzjwfAzZy)ATIF3ITFP!}gn z-qw3wmr>MSPU_^JIUm50!YjXHgAAe#sk*xsJl!Ki?mSPEkoOPuI|z!Fry9gUSfM>5 z;nTmj!Ni@+nmqmdx!H4vH)QCnhazjhIc63)9r~V)l!#Qua{ehL9pKdh31+DASIfEX zPmlM~6vPqySbDCW>H<)RV-#F6i0^5Vv^&J9)JE)QL{v@0r|_8})xp1g;6j`XKEWX% zsS~9*M%})_uwQ}a(z6;>iC1a&!M21VMWV5~VqJgHsLw&e&aqUXoMZ7D@u=S^>e=Qy znt}IH^J03TSSMnr(kAO#-#4r-;bt>^SY5b29eG5qW0?BlvLSta=JUqPP?Pa$!zba* zOzt6yEMY{2ZfcxVh55}k6%VCOlT61bQTRZNKd$|ca`R9%cjxVNbhEkG7=aqBhh%s& z4>ELS#4bF|!>uZ2Y%082Ox04G$ZeS%NMcl#N;n7F{s=c=t!FO(h<$udGq}sZQC67y z#dPnnCv6u?Ge!1+{?9z0R48^l*6%32B-?T{q1+6|AZXg-*MNy0->>ui2*2E|c`i)D zlLjiXXA{dHyu9E3NiRX6pnIKSB2`jvgjnTn9hGfy2bGn8z-nFW&Y6IPYK9-$)6bT_ z;|)r>)WWd*GMAU2TO5P8L&=K0G|jNBVIm+{ZRggq1iLg^X-JLLA5mX6PI8dW-|J<=Y~;(`_I|?5M?rk>gL86-z?WOt#?0| z_}FjKa1ENirYi4r&5wu=3lknfwO`B2#aWGzc%o2rSmIpH*aE|RhcTh2&;1l%Ng)PV z=>w?mC$(EuzuxG!e@NI!31wOGT;__%b>l-BX%yH@O84o2$Q4QCP0a*- z0*zy~*8t?ti=V)Pf;ht2W1eRn6nEpX2n-K@yE+1SYz_YspGc`lSAcFW)5xOmqmcIXlGQr=n!ErSyOC@C)_ z659*~J|8;>R+kDB-r|&s&L%PCW8PkqkX(TtSI5+3Bt}eQ3kj>!_p8lkc6jOcJ(obw zLj{pj33Z!*^Je98rK>N8#21?P1$}CCQhRTXHX1=R@!w3C9)13(AvR9+&AfB|ju-mlXKif)Pu^qhzpma#5BMxAg4n({rF-)X z{!BS$zr!LN>p?admD5jvZ#BZ$&z5PBA8C_5J#kE&+xaIojQ`zd9aWc*dk|=T z$;i-GZ3tRQ-u3Yv{3Y^_wGci7-FVHJ8T>mUDWNsHdDE}FQ>^yO-~U>!A}!X0(p`0F zf94x0E%W_@EAu@?Fk3=b2WKSFKW5$wy2?u{D2yW*Hs;_0gljrIngHNA)bJubdc{N{yeRX4{cqB*L&tp zEGnZ*iaJ$xmz9SZ8|f6~SEOBruWjBUY5E+x6`7YZue!XM7Ou$7Ol(i4k1|#;=jKC= zW!4r5-Dez-+Y>bd11DeVZ&4wUthTmq&*Egl+{H%#QCgyyYsmu1!Pm01%rA$-j=8wz zVPStcc9WDzNAwneO>J>B%bdQ??E2oRp+VWGyz-=-y}*1EsUfiWj-7`BnQe{AD_E$?qK?1KJuj!LjkhR@U3 z`_jHxc?UG5X%Mr?=+w1;ybHlx9e>5dpDF=>fWW)bJ~%p@mo?4V%iC=Mn6$rP^5gfC zA6WpDYZt3GT-OS( zRu<~>=(&sc4kQ3M?BKjRjY-%)2bgiLU1y88Kh<0|F;J`ntS_@2+fR2;goMP9m*TnA zd!+fNf!}7Gwxg9?ODigh8^>#Xdl0CjAa9Yh%46a9M|xNU0YX(RC~MG(?Y<^8QsquN;R6C{Xs35 zsrOV2mF2ZmYgeYY_~Qp9Z-2z5RLxCOb!5(k-L4A|g1Qe`vUU)Btg4M*{5s4V%C5VU z!h055CIO;lp5oeX9L$~u0a>K=?-s^+Xu-qH{i=N={g%sd^G{1l`^IpL*3WX?K7p;h zLF~>%Kwh}rkEWj!Dl2oKl1}iXX}%+hO2}GUmy@Hq)N0?2gX9dj$^-{F8NlZ||Lk`3 zj)S`B$lR?nUV?R#KWZpzf3f`5wT;H2w3jaEsCvla^b~lYvayz4U|KJ}Jn)B>SNn^` zghk`N|dGZ-xz~8<5ET%TgbW_=Anj0F1kJm+&mE)hMXw|u&`cM4a!XJ^? z?2S^>vr)i|$;5YLF+JTjUN!#9&;Rgtf3kWwnQLtYjUv0+zfP6MG0H8~y|gG|DPVQk z7@Cj7w6}dU{sjKXe7i3o0HV;dGPu_ftE|LE`Rb0#VvSSK#nC)&5H2Y*HuXzPL?gci zj>8*8g+u0hm##N3a+maq6AN^7B~HUV4Vd&NPV4qZWKtCsG?d2hDl58voRq%7&S($W zrR%gut)v15_iTtIWjaT?%gfY~W0M)_uAGtfi~2i&)D9XRFkHz*LN2%Z9kbc8&Qf6% zQW#8P8+$Q*eG=Z@3UEjJZ*C|_>^mI0fdPip<3&_N{QX>$uqm5`GS%n=T7qr4b?uYs z>hqX9MS1P8Y^kp+tLxQFKyvk{K<89W*#E{HScc}RyA6$FCw0q(Ao%3MlT*G^(V%Q2lL2 zUK*RTTpR(mP_L;NmG!-ioLoP@eC5IhHJxRA@qu?VcGd^TFi?QCNb9|J0Vlg)+Mlre z!*88W$O3PhG~CZsVyT}MmngVdB+C6#(AEvJGYi~UtiNTZh@W#?=?L|Bje8mopNpG! zw&Nmy{hI4_>nzM$Jj`z?DOS|*-itA&0jkSzYD6q^)h8i)oV{7!RQj&-(0KIKIs*9H znkl}ZBP1mSRNWa$*OnWMTsvq^x!;{wyxeu4(Mg4kW0&6nK4CU~rvd74$= z?XKDN0i>^Xvs;u5(_ma=q5#1705x%Re$n!3fa-i`j|ecXE+p=G2uZ7uouQOlWc|U7 z+n+-SU*L+=@8-|aW7Lb{`;X!Ss~>zB$Y@zYC7OmN@(ac=FWn2GZW`aqOGBU!!dczV zVb#JFBQ_68BOoA9Ejmi89}(UkFcI*PvsO-aq;#sZnLDjEIC|=1{Wz?nhxk}wd}tUn z?T_92?|3BKVgM@V_~fh=0z7F&#ry|Z3BVR=TPxB;t12;^9qR1w5fWn!JBk{;{K<5i zsqm@h0s4#UUmP6z*loB_h4;gRpeV3|6bA-p?N9-!hLFcGD$%oKT%ut5k=L?q)Czh5 z%n`|P8^$o+9x`fLX3n@{purK5BKyM_Ny4eC%y&?wmzd~MMuXb$W6hpi>fQ4 zwXJqkqD>Oe*wV-_wq+I@@abz0_T&AZeroc+3Q)2m0wu|t#Ui?Mb9I=kvys8q2AO&V z*KLJV?l_=SdUz(az{x)}I8Zb(1xVMgzfOZ}urQ+_*<`-K6JSKD^BBGn9xY|rnLF?Y zZpNue?Q-ou+;`hgw|Q&w^7c5+2sv#?1>HE%K+1!G=HWglE$1K?PjI5aI(^py%X+Q) z^9p=Nxs=LJiX*aan~}!@8E^-Tu<_yPcb{m}(~o_?qtGC^K;TID*h!u3y4mc{uh!N! zK=eO~2uSg!`^SYX<5YDP=PZyY{aR>nmemNskA> zE&WA>RGAuEJh=&nylOlzIe2{*pt6IObpIt*QMc`XYFRL!2E%N3Vk7H-;kf$hAmR;r znqc=_zjDlyJ3ZudQ85lw*AA7tA^5CyjM|av3YLH0saJ4PZ2%IqTm1k_5gJZSh#CL6 z^c$or{iR;{Z<=p!3S9)YZ@N4ds8zHT5m#R6)bMh=Fbq~w2)5fe3Hj}`&2@d{dAcj) zd|-4R_}MjpJOKU%0U%;nt=>4t(q|cg8}AL4vH^c4>S4-%;pS0WmT}t`V>6UU0e|z$qkAF-g9%Z5T_vjE-vN8TBjO?NKi8C?TkXXPl6#7? z*B=!_n$`X}IVm>Q)=}MvfcUV%=nXE-;K%6d!Bnum)vSjdjH+B7CnT=NN@Z7DHKnCy zfB^uE#F|@D*q;&Sb+f-plE=&M5d3}TFk*|Q?%EscYkpEsZUKB>NFN-mGW_)I)E`dW=9`7zkUXFXFy=ZN`tN$b?{D-BJlwy0gX{K)?%2WM zJR|tZ*9{PjZr@U^%+}T0(!t3Hc`?mtbL~%hZ+Hz5t?OU3Tuc0UjNYAXDyb+ZjTfB1 zFI2#`ATn+8zpYZlgeT$E934PJ_M2MnAz%-VrN6vh>&-o8IOeD?I0;kC^{RqQ<;CnG zuFK9Opt(G1N^lE+AAw`FP8Q6)I}!9c-ffUV0&DK>sK`Z9_nD`AU;oeH)WOGACWMpvrkNES}k+ja^vW70;|r;W|3JElJu!USG(_^CX9||CM84{#cH$Md3H!Dbl7d z4i~JBKUXWoJKq4{6(ax!%h!O+;0bEbr+eaE#DZJZdO;9hr7QUMS)7xIl=M-(YX1E! z=uksJ!|x--lKnxfF*ok410z)h!eFSZL|%>x?v?jI)_}d(7#MzFdC| zW=*XBVtaO7?UuRlb(jz&h;gD^A2|y{fP@ z@@|^bV2F&ylG(b5{x(H5+W)s2f`6?k1xz03XC~P#liP7pxp5=A#~C5`i`jv)*oL4N zzV}u!SN7?wd-_$rC%^I7r8Dg}c2L!{1|tJnj0Y{ECQoB=;HjDT3Tg$nne=&+oY6{UT%3gc2Soild~sH#jF3N{8x73){`&PxvVzkt|LuE7r#kg| zgd|_sA2lT8*mtFkLMQHcE*0MqOt_mvNjGdFiza`*pXqBF3m5U3+6(hdT4ig+IdZrR zS|uK;I!3;K->u-85anyH0q3wsMStHG+N zUG3%ICYqh##_$HEojD>rUc{|-lfY?{+MTkqi-J5iOX99*Eh8GIZasi@%A*9LwB;>r zlabiax?A@${A-SQO+x=_R!%qQe=;0Z{(>N{Qhkv7^R;h=lbl2{jIUY0W=v=PUF?p? z2TYh#w>3Q)SJ%Z;;KgaYqgW+xfi;q(y&$j;9I3$EKXD z7B=q5b1@5Xq<&!sytXw~`@`8%Q>kzW!78{ns!FoMYC2sb4*S(^bNfs5262fod)kvF z?j|WeGjUukcok_*Q(_w!cRu?W=&m|A+MQl^!t3aN0ydNiM_yT2xE-)p07RFMS!CY^ zf|9@E_9hJL_Y`N632txM?yYP0-ToI_V74&}V|7V?yuWqZ-ZKl$)`7ELo3Ca)biG)? z^p{*~-2}(Bo^@R=ppgVVMGcDQTiw@9bmfKZ8um5c?C1V4^01w5Zu+A!#n>Fvr|VwX zUwnIb2DE7cJ2M9$J@~#Ckpthd65!|L>dt!`!_RMW8=Lk8*HXgj7!eu>09OVR3C3)G ztAsAEOO~3T<02s30^zPps3fOJf=&Dm`}*_a*%o2om{-gBvahwqn`hK~S2UszY#ngu z0KJeMALhLO9MvQd2k5e_o_P9bHV)&&LmNKF4pZ8^M_(N;G#Cgt*= z8Twh16-;ugWZ%cAd*J}2B5bx-Yg<4Z^?aH68h)Af*m^Xu=@UQD zu4GWNKu2>^c795s$iF**Y@08h=zdU${^%TXz;b)IJ~@o*DG$oCAT@T>Pb$zz=trM# zES^{QK{z3<4Rl)1X|O8$TdBhTXMxSscbdtbkCHwQfz>9Ue&3A~2CDT$tRCY6aE&CJFiPQ=tT^G6z z$;MPF-A;f_%n!suSbg&`1Q+jsiD)PIAsOJ>Vvl-FhHj46IYCh z);16~QE%nE7_#NqBPt&uoM4IjUamRp1r%aJs`%>MN?($#=b@U2Wc%}`marb-RE6ls zSb<3+O87qOCp??d6fMaVW)pdNJDR!v6Z550fVEmC&Ubzl^Yhs=&<9oKjz1C2@I4^W z+zGR*G9NoBA4e4z^O9?Ywe9h`kepDRKc?tga{i2XpifNXClz2IaGNi9-BiCp3lqa| zE^JEmx=jg#>Img%XhmO=I$vI_4tsQWQGCZ}Ne~#?2clgM(Oicg2 zZn`wT&hKJ}kl+b^-X46=`6_Q!K2<>kCb3SD4H?<5v-0HZk#>WMwMcDmqg21Jvj#uL zP~jz|&N>#;!o=W3T7O^pJMn~r*DgyFS-p07rTqMw9&YAvEDdlF$mPxN^jsVVnoLeA z#c1bIdAP?_F%_HH1%BR*-<~1~Z+Nby02W!6W?>`D-#OJu)gLF7UF&}eW$^t&1>;*mvgcU!@t&Ks~A7XBO z!G7rov%F&2q_fOo8{}6T{$h!!1PCm(85K!X#sa_<2pz0MDrlwpz#q;D13N8VYc7@Pi(avmGR6wPWHn};`WadD>(`b0 z)t^7}M3?I5aw1-W7ZAk+g!yTh z4>F*W7fIccs_dMN99D@pzeUG|Bmat&omWi}F*-jltCJ1MV`uxvhCu<>Fo6M(wv-04%MwEL{?2BjB z+rLt!;?Q*J&vD|%V?9aOrkj$&JUoB+I45IoDTR~ zU}WCmK>alZxe_APO$5+D-MUw|uJ*Xh5xEUEbV!O%m0A0vTE!c37%21j_Lgl=N;}3) z1|kQiish2G>+Jf`hGPU8Qkaa+XwyF97opI1Md5Qi+>5SPLdWNpC(%$^8u`S4(sVZ| z)~yhqU(a3HX>Q^D=o-M#zy=b?>lN9Sx+qY-Q4b1U_eHWW0O<9|ypIX(9EB4$dU-2oNcRp@F{Wv&(0bd58r&b}a2S56U8=j* z6nMePpj|c$eV{GOYtm9NPLtzt2Lk2&7;)`Nr;Ij*Rox^sN%JPE_dse5_BVp`=L^?B zR5a3FPwE1l?#Z2rh>UIBg2j=;a#n2W7HBn_{#37d zZgy5qvDWI6%SZs&OS|YU+{0d4K$p1;jm?A_Iy$vZ9-E{~e-7KN0si0L0~F5RHrIMt z7bf=9VD~Wf@2}^iJVqmlNV3&u-+4?jYK(ukD2!A z?9(+59NxdTZcK4zc*92bXnP8&d7!c9nYCMh&F+TdVkUlrUjia~1~g@dM$ zy|Sc*XX6m*0OlfeR<*M`97l(A9L=!a-#@;XS?RoGvsC-dtT}^m=vncp$#ZbhZ16&6 z!QJy5IkiNUEVFK9W))~0*QgW<6IyL45d>x4QK zG8^kylE%|jf%dAgsIGv4DXO}n(pzb9`ZLO{VzZZWMfwdv@!1Y-(a)GbsqAc!3vFjF zMmer56TE-Z+bQBQ$Pdi|0&ult7Qac07naJhnJ^!2y~+7Sm0&K2~{obzhoQS#pINpxflX z0b;qOt0ODRZUxig^mKWW`&TRnwyT?V|T?V#{NV)5VGGs7bjJuFR}&O@P>b+_;{(Asm){->w4b#cr+D+qkcW$-GqEAD4@>*1cZQ`-bckvJ6QV z=4l13ab+0tnR&k5XPF!sd)-=Ra8~UMN?a}d`981fTDPv(&I96U}7s9niuf&f8^ysbTVw#VXE0W+| zSU$U0NxJJWA19Ymj)8c1FxO1`3F})To5juKh;3g0G9#3@8>=XYKQK9zDi=0cPFg-P zeUn-0I4^y>JWM)r3e9-DG78w}NzXLVRuXXB#TJo*aOElogz(7Y)KM_U#}X_O!(NU) zGA^~0Ro|LiJz|tiE}`Py0_6~cs%kIVNm%H9Bg}29vhEg`Y*$K{Ed5cKb@wM&o;f;c zV#Fq|mD(I=mKzra^Swist8)h+Pms@HDl@iL+uj% zWHc)AK;qRB;ziLZA)7srW;(7fxS#EeL6uZ`&-mG2zcPCA2OKGYk`w5<*_~ZXrK8u% z*mQFPGd=^tTk;^jDC&)SJn1l?FatoU&+g*oe)mHCIZ3$3YxL`nF*5g4pC9w5X(e~G z@(Q&jd|ww9mnoxhqiKFeQXy5hFk7czxdf!YW@nP1)koRa9$E`8J=lI9#kreR%%~S&8J6kd`YQ7sOSsdEKak6p^6mc1deLub(^nI zp8D*-1B$#@^)kA-B;AFxnAf};up`}~2gb43CNZ%+j9Ozw*gDkBlGEKM7^I}b0iNt# zxZY238KE9kPph9y1ZFx?ycG8u6~Juj3Fw`S}cSF{N>9-EVUqNjgfm^A302AYG;3MU@Q1&B z%WO#IAm?k_Opxs}$?Zd@4IgrvYn(ej zSus*RGVb7_FZ=neXc#N`|NXhlL1&i3M*Rg2464eqD9;FX%bl~D zZ<(5%Ty(Fm{4NU#OWfHCyZX0DVUuxN(Kuq&rjxi9DYF_Gae69zhKPo)-<_Riq<= zlHZ00Avd=b5zzYWnV5|kruHmxz~cUHu$v!zAjM_HB+8%EkH7D*8@)ARE8X zfBn9Aq&a|ayu0;v6WK~P%8WW3XpnJIA#*~p6S};bY8bXBrnkzA&3OFoUZy`-Z>4n= z>;KcvA;<@*@-j;GZfD9NEY62boGwEksssT<1Nyu<;>EhnZ?`IHK7!6y`aic8#hFGa zLmdB~cNfY+N*wN43{o#L725}!kF|EX|0Yp~N zV&!=QfbAO3+{)!H)XRN|C`$1xKLC{x!y~;U}?<$4Y}o#KKcP@P!*H`l!z{{ zQwa>Cz%=5x&gRF{3y@&BQlL`*!2D#U5m&Fj&QwoWIFpZu?_5Y{EaBG)BB3I@7MxlP zRKt^;Y#+jg*GIfbLgeu2-?QAVN7SrTg5buQ^oE!sJ#;_TyEdn1H8;QQT~aC>ly4kmXPyD z+7${eW2vjMQwX2EP2T{L8q2A)&Z@PZ=A&!2Y2XI!WDi|l@|m~@i7}NW+B4&zEIt5$T7c@JS8Y8CdH!G#qz@?cRasJK};;)>M#D;n!V9l zgAOQ>jhl^o()ApqviOCi1p9;h%bI9i08H)u=^YpGhe^5 zZh59!tRkJt9M%*lE1r66&YWr_xg@^K9A!L0GmaX;J!GUJCDs4qX#9{YX5^s%Dg!woW9?Q$jLrBh+j!qc z?DN|)cWs?nbRssYSnsvi0&kBDh2^WuWa)e(pN{2LYiUUVLJYi)^iHyxZ+*y`^%e|D zStn7CiZuDqPFHfqBsz4ExKQHr;{N&!`g7ht!PC!>JzN@G*fcEyoMEVLwhW!%q?rk6 zMXHAbPBh<+VSu?E<$n#)W-#+m`pr3BJK(y1ekZZW;CsGp8Fd=k89XXVnV-NW0V1P!W`d(cAilxgxn5wAdTk4Dalv4Jc!n40S+F1Y#(c45Z8U0d^4!b9!)(%rc|NwataF5L zfs`2QnqV32`i&mei`Qu2*i$;sNz7qo5zF9sWxn%Jo1jh+v7 zJM^r^+e^KPKB_JHb!7NX_1Y(btg(^lfYAulE~9LqS{}0u?x!pvtEDunoqB=A_UcaC zEB&(XDfQFNmdl{$EH~wLFw*wn1sz9!XvU5S?4AB?$@#}u-mBKDwAmxZK{=FX=%_js zj=qM##9=5dVLGQ`Jd^>b^$HmDOK%eLI2tp`;Mb>Y=%>ASj@NZVUYDUEiAmYjk9E*4<*jS*k$fGn0%yRgmM1`RH>(O-+}OuOeskU6EGgAB^bZ+zsxM zLcsbsNt$q4+RC8+qhr*UcMh%Dmjt$NrCK=7y2ewRK|M^2#zx8vc7N$rR-|1Ausq(w z1}PqG&`El=^+HB&=GzEssiH#l+jn1?e62q;ov}KpX=<7<(`F%Jh)#s@dBn{zc<Dm*$J5SY3zh}!b_YZ!d@g=yQqEBIWl|C?B#zNLz+mkjP2{VS=-RcB zPfzV0a3P2#Rd{v#n-w#W84UD&O2q2)_TSFA?CS=K9h5ss6#>X1%) zv64=P7QPbIfc7*vbPB!^r38vWjHhb z1MGr%V5cghH&$H#6!mrdDqt{dpx~@&kCA~U>h3e60pbkmK7{XmP$iuk`5o0$&1u~? zG|=Hy#ul~vn>zA0Q0yZ}{`!_dJ@nV{3tndUTWe8&a{vVt$P@ej2qXKOul7IwU!ngq z!~Q!e^uP6P{~h+dpR4ossiGl%PBV`%?18mKDMUy|NhHz zaudGg=jRh7#s8>L(bZ8k(S4_&E(6IZ8)SMmIc3mZO7BE_*8VPzEtQKwMK!9dWVu$w zWo&ld)0cm`^?L63JAI{2gj1buc8`Fff}W_6i~}nc9raF3weR{%h0j;tE*_P`oD`#K zx1}hu8`w=sJ@N)&Qg7bw>X`>4fCXp!?Plh&aQqo?L7sXCH}{mQx6}Bc6H1!UWP{}#+09bJlXFNc0A|!St2*u zEytj~RnE<2Svr;YD_LuXEeRWPxd@&q>G*XrZnj~>L%(s4zJjsYOS8n&xG=r6w|rqG za)?O=r4hiYi%2Qea6y~Eshdr;H@Bw8NNJj|Qoy_1`F$eoDEL9S9Y*I@9vV}rk1Y?Z3*QL z^Nj@#RepZ`55$RICfX23gYQSGF#wiBw`y@aVW!~Z#DLJUtU686)WJJ;3wCu)2C z$jO4G0W;@)eG>O4vruKX%{Yh9w=4&I>5p)8tA)_RCmB4=gL4v&eU6nVv4zpo_n5!S zsT&;EN(+%)7%hcpmeOF(64Z6i*%-*a*EQQE3%Iyx5dVJ|qxE4-^O zGs8w{2jVncjeHLtP3k|&Bm~+{L&Hw0><@o}xYS>0zq}0LnR%HIcbpB14thyGk5F{k zSfiIpLtXhu9!Pv8YF)|bODl#ybKQy}{A4Zs)0frPpLS$J8FIKKxJ8U;WQjth(df%b z(3pno65zqB;fe^e?SZF=<<~2I2Dy>UOJmASj!TUNIvJeBebb*PvAE%R$;0r>~dX@7rJ%KR>ml^Ksm7w}$(Blfe^U6jfOTD9mn zXX$3|T#rG+@kp^uvDs@1D#Nmc{UKSC{n~29Z*$I+5T@uEE~D-SzEwxh9edxt+;?J( z2=>PV=9r4c57PutzV-6e$Ma82incd7eR>&%QkEDmEA4mak#N?;&&*1Aqu@_Nj|en= zgphyw;zV<(%0OVH2Bql-IaeYF(~{aJ0h})QJ_*{JU~A}FEXi?fDA$l2BMCX+{L)}u zwc$fo6jZKc$%fWv^h{Dge(sA9NxaReVg&EX?C$I%yM|MR^JB5Qh4uoHKiNq;f1pg# zPs!1*f2?$B_ca%2C%N1Gk>D8Hxnvf$_0Z?NPVi@F0p^%f_|wG|_DpJ2`6p8AW08Dq z;tx~SeE-BS&I_K2BEJK(!&fKX%~Tq^ymdA#@G7W3Kx9w4>n=OyDxD?s=c-mO9fa4W%y z&!B20<10iUrGHtw7mjy0r3rj-Ae)Bwhc-3wVHAp2tk5ejW{!y4n%YX}9eF1##zFtu z=M%){u(SAPHa-|ZgJV@bGOsez{ft4@k#bjGo#<mxCWALX(R~(Lo`bg;541T+Qz3qN=O8)R|jOpG_ zlCp&hs$Ux)5l`)+({DVk_+%$V>(no|<==tpyZTf{Z(giWGqE;*$kS*R>^*6-x!x`O zW;;qLlF5{&i!VifYY4wpG!%I4gE1Ra7#d)2C%N%d@R!W><%sM&&h=ku`8}w{4~xyZ_wML0O6A43 z;Z*8{m+S-`k^^bCL6>mKjYRzvnel}XI zqP{Ge$NShY9iJaR{d3#HqDm*h-O}1?0J)YXBp%C?sM++m>fTBH#rQ~re3`+)!68aR z^}}3_9V(GVV#wG)9}W>ILP ze-mN#y~&?Gma=l`n^qx}%zqE&=ZC0F#5GR(&6|hNE_C{0D=V4w;*?YiS*QbVvnGKL zSwH&UFDO2sPtRBrAD%><9bYaaVInhmwEm4t@Yb>JMZTX7D@ungqxU1CL0@x~5`S#q zml%&^pt~C~tg};1S($LAl)TDDt*^>)x(?D8^Om~EB{!J+HvA;}_H$EgQO2`pdhF>& zr*Xs>2M-&xZkqD#i;Ie^BcCPptNZmM9_hDq=|g=cr_W8e8nm?h>Ms3`+b5Wgg(mw4 zGFn)y3L^@HH>1dfoF!fIWe4zzpFMk))i1$WH8nLgGbsQau7;n;65q)4j*Z#0^P4SQ zk_C2-eME?PYz{VNiM1Fu&bl8gO*S@Wu36;t_R_NJ;hNMT57YSnJu0qx8Sh`hjbEb+ zP*Lp#V!O7pySuw7p4UEnV#85-hOPK)Z;{zdNBXhr)cl7a^59qKP7B0O&H1?XlH=1T z$talvLjP2Waa3G6xKpc*2xn)eS6drJ92=jnC5-P>ZZb3EGkvA7(p%c$uh2JC-eH8- z6}yghC}zxjGS_?ahI2|wP?Gm_smZ_j1`2u`-H1cM#6Z2`QlUS8vgkt7S-9!9G|Apf9Wveyx@dKEut-v=cFXL&Mt4sq-J}sV(HBjlk_FK zEI%{s8txWKCB$^;uWq{FeYNE?@?jR!iUsKAOTJ5Vq|7S`D=hK>>K9*X4u12ahe8SM z#0}oJOdqp_)#&VyKj)->$=1@Vz8K^u5Ah;xuu6jcNi1J$u@2p^pJ$}2pvNOc7;bFn(lY_qi38L1GSB_ z{!MgigGAs!O)OZxBLbcFYVn6Prjn!Ss$Uc#EZ7zqg#O(+5b=%3Gdu?Si{Q&o_xAFpnPrwH6 z{oSfIR{mfQd1^M`YX6{`KWWri)O%kZ@^n2m-rjI8+ivf5#dS+}oPP6_kY@}wp3j`s z?K^yrz@FjTYu{%&`v!sxIWTzEpUZh8YWc3c+d1cD3O)xd3uI6s|7P^!qJDf&q`tOSX=KeBHB>4{PTmFp}cha*5coaK7ro*4X*)6d_K`4)8=w# z+7f;}E8MCIXA&MnjNa#iCY(vT>@mm+;8;YMhkP?1vIIhgLzc&(ZGA4RXQOQ_!VbZf zm*pI}5*lh=3})$RFl7;FC~&rI;v4-(O3Th<;|2`WI8`VNnI@6Rpg?o3C7C)r#M6tZ zvrWi!oRTZiq!;{HiB%R~2zS{0xiVwKl?Rc*Vft`-Qb5$OTxPMx77wm>^ERC+y-zN6 z<%6lSu1;=2=qlD<8J{-Cs(U@Jcwa+_wpVkzkU)CDgcsUY@QH)87+4wKm<>scDAHqlG{cy>~JEN*K$T!hhacq@IF#pM~HutDav zFRpJs#QFtuu_K`eTd9O>#YNaTu|%8f#-h(z=9ol=xy1Dth!Y5-dYP?jr2!zQzG6B? zWBc86N+Dwza(*6+OpOA$`|$2XzOV1mDcT=#VM|ChU+(_1te&gu zQ~n-YMA!v!Kkm-pod@kH?T&e|oAH$a}hm4ZJSQ24o5l8)VA?> z9#3a2aMI>LR$q_Dc;0dfonC&(hzTMtzE@W$Cy0)2={1%bT)D-AmPV7O)E^{E8YZ{x zaH9DXo1}y8%OR^6G#8DrZl?9#4@^VZYQ|+|6Tjp{)3HS$YVmP9-Z(D~+H)s0!m_En2-4Yk1~Y)}beTJDWZ*xseK zlb0-UPjh+f)kuu0O<+1c;7%n;M!>iFx{qlcczP8>g}0F>6}}Ghgj_k3-QMpVn2u#N zGc{478NJ8|1&V>q7}Qw0)A-%D%Vm^OUCM%YZTV4ua#94GR}PPS9#MGjhtY_}TI(tx ze9j={@xG4C2T8O!?@%kBbB)Wl;4t}(4I?crn>WA0wrc(a9%4T_#=_yeys?djjFHhK zXxLB9t6fOyf=@!$614u*@1e^WD@I}-JVg62OLXBL$%?trAm42p$ z52u@CC8ME>Lvvn%XX?u`9gA@og?OW>!@HmZ7}K%y*yG~z!pLe97OvG=eb{8TL~?k} z2?1MMgV57fRoa$A>zv*?T_ctFO^i+^9v?gLsxRZmy6Hl9 zA#CBx{Y+GJq-80b1<~OV5^okL7N?$_k)nZE=UN`u+qv~2=Qnwxp7X3_ao!fpCTMu! z!>xexDnVIxT&%%8G!m*4GJ$>?>N%bUl^5KuT|5=M6Lm$e5FJZ63y(WbJ5vajH5;Gz z+Vc6wQDCv>?FymMP{+X^nks$uwQj}*jdAss|NKD7~DBG=9l zFJ`Dbg6UeJ-hOlShejk4%7O9EZ97TT>Y)Hv^yZyA}v|?tcW9t^v+nlh^5byy=|6vGZq@cVQXQ)=Kci1+3QP zAFCAvEY|z?ntV%Y>QPY8qPTdnqC&HT`(}D=?VG~FX;ijq7h^sS4vw{6zcwCK_0lT}oQlGvp@Jm2^v z-Uf>&WRp>*uq4_Ni9*e>FJP>js=W}RZx=E z20B)ZFH1BV>X)ptJ!noCS7BD)Na(rf4kzl9jPH>CN2CiYVaHln3DWr$|NH#N4YT^6 zY=T~szo&+cYCf7)+ITuSjpVCH$jAnny>;aeqSETti@GyXLG1V(Uq4;K89$?=TlFqK z*W2t*+u)8vA&TnnUDlbzOj=wk4_0{N$6R;FdMGoE?<}dNgg$n?EI~2mr(|u`n$#Ol zSKearX=L%%l$5~wPeks?!%_T?e7}u2E!7_bQS~Q#KpU6h#S3LXJHll9xT3J1^3qyq z+!yyULU776X=LE20VJPI3gEK^;{=Wxz_t<`hGg>n-2PW{h?y8ZM7>@bEH&yWF{otX zDod%UvDKe_Db=D#m$RW4g@~2`Vj+OWZ1kfE)3Hn$0DbA6Rvc-jV+V=O&++l@dUo$? zV_su#srF*ZDVviFQ&S{qIIjI7V=ts1=#Z8~`5_xaRXSr6HMW7YAj^54j(~*8F`RLh z)E1nF{1|iktN-V2QTENuPX1(L+RQSj^z-ox6n9=a8Oktgxcymqqd8qsdG#Xx+xd%a zbo8vPdRfV%GT1d*tc}&$abFLy5XL^u#}N{e9962u`gV7D_bvYwN|`DE+_X8dW_Qxg z_ZGv=BF@8dyjLxhQB%;vI0Kh63b{OvxQ-ezpY81{c@^3mm}YD($9pw$t|uvpDSE0N zsiDOrlo{_v^njLpD*Vv(-;+9QAc~8Not@bm2co8uTO2bv#cx}k1t~=nXw8)3?B6R# z*1}l28O&nmsOb2+7aP2JM{_OKeqGL|mKu050K;(-&K7nC2|oVa`)Xfy-G!q@ zBlD@(p|jAv$U6m>V&Fdl=t+=(=ka^t1CP!4iI}HnYGjtEH-y5=+8i|FSR@~aZSt_e zK*vWdO~*dsKf*f*bjZ34n3|axpoeeC{*yhgy*<3T=xi09N=^9!3Ot~P;X<~t{xfWt zh{!Dfmst&yG(7fSnXyx629k{zI>3b{wQXOZ}!_B5342C~0GH=O=d@p(^0GEq-! z?T7sYzyyFTVV5Y0s#}L2FuOu632N||KWJLEmr{Jss%j*oVwP@qXO=!hL|JnES*S{Z zJx;Q}+~W4UX!JMZXwSJm8@l4RMMXc@UMJz{bFKakt^CaiTm*d5?~HnN1py&ngyY>4 zy03ZPOA9e16__5#5iQcRj%n67zuIB)8NaQey>|p3@ZfgC-RYkOeTq9gpBA6^ju_Q; zUZgX9{Q;w$esL68s6W23K@7(1QiHdKWZpZ?Y%k%gCS%z>d#>ER#_^wErtKox$ou{v z2$NpDTDz4Py0!XVR8+051r^TM{(q$R87*&UZ61HX0N(6c>xcA}?G?o3b7a7Tvp#An zN@(fErz4rNp@VMu=F=m28Wz&lbuwNrhwpdknS}@Q+Lv2?ks*)HpU>m3cQ}oNH~$tH z?Q!Omq~^*x8uCbV44g8S3{z(j_E#SV9?QV9&Lc`ls>>c=Oo)Q&yWsqk{;&^eYr8Gg zBP(OwB%z1*Dm4(K#6?cU-{k(;8Hfr_l;qBMW!{OKtgP(mDfxv%MsRRtg+|kPpWX%g z*T0C6H{ZRlur`TJ?9Q$}+U8{P1$>NizS6O+2sku|eUCu%@o{cEejp!s`dbWut9phA z9%OY!DUK0QW>7O{x%03$+}n;1I-I^p-f^cH;4WG}BYWTRAv!8j$SV?wd{p~ZjzAkX zY%h`~0iJ<($X2GCE$M#t0;OyGobDocskzuSu{5gK>3_zcl`Jx-m^PP*ECYB94W|?* zH{Z;-kB(BP3qH}{;>3?0vY@g?e4#S2A9+M?7rH-D0!ZFNcTNoT`p2N?ay)ls`+)|_ z?w9y5FkYny{qqA>uU9tWAkP&hahdhnHzvu5;HU%ePKF z@NOXZS2#SJP~2wRqvhEyGeF<7+Tj3<5AE96^HdhPA^orZLERf}1t4Vmnd)B|SSPua z*XCJ&>E)wTU874eWrGhjcpt1mk2nSf*dqu75s%7?m=ocp*6jbBB;5D}jeH0Gdhdg! z(+r_gc+;CKsLTJXHuU}DYHHz^Gov(-B3)g1I!leL8B43HV?D8uUbhu8GG-wq%|5Nd zVp*~<+$6#63~8-wKuicXGjvFsdyJVRPVh%i@P(hO<$5y0N^82SXSuBSZy;?_QPcKh zS9DBpkx`A6d*4#iFI)h>(6c)muHS5@U%5fkHUhy|qkSZWg< z&0qSh?Gh3&{A%()PleglIVJ1rmV2MCc2pR+Z{cQSz!R*rJ2~Xm(o|Anh#ZouIp>=) z`1!^~phvgcc73g7Cg;VvRkU*{uv^QO)|^=K^Z4T3<+FV;o1v%53u(z`GT%+nQ@95< zTVg3he6KGL`cqYJCA{`(s~kDC14Yc+p_r$qeT}}?DcmWEsU;k2JKKAzM=d)Oww_KU z)`4T0`@fcR#8RBN)v{IRE*rd+8z)9b?T0g4pxs~R8?4%a<1M%36JL3gOH_(<_MfMQ z#e8(vE9>3V2*llw$0Y*>_FfCB$#)y`94d z=&!qu*1zlMsl=xl)!ck<3t{}&{oQ0BC{WOAPYRdx@Kzy~tIkVpoNV)Uv_;Ai{?b^} z908F~_740lUTP8>$(`oM;{Vy$-X0OHY+|4-o9Vmhrkm6kV=4&o1~w+% zn{{$~awkFUPTywF@n)YXe&zkhWOsai4Az!(;iE-^$_S3=h`5ste0(PvvjPnULG}Tb zFAnU$g|%`1)h)ckW2sQn70q~b)GK5$#Rd%!(Jq&}Zxz5k#p2Qb4!ToZ>l)&8*VR>_ zfByQfva+~ml+R|JJGSS@0r@vJT`^4+q;$I8SM^ZFWQ669xHq?vgn75eD{T`(&dDcD zJ3D#N8A^=UUOj*1Ir>tJv}6Runc*l+95fMedRZ^t!CS{c(#RU3GGg?j!NU%hn>$eH z4tIR)k5<^H=7Hp<(O}s7Pl-f=%U)iAtA7zHQvS(APHPakWaH{h2Q4kNBJE94h^#jr zo-$_6A%F-!Nf*~Tv+yEL0Mc;W^YiOV#w~=>+IqakZ{7>rxY&!bj_}BdI?m__!-QDN z>k;XY7`5*16=L=nwWOl!0!Gv&#BDabT=%QSC;<<_GZu@36(R05Nb1oWFvBJ2_-7$r zjUrcLae?8jvZQMa0+pB4ofaV7j)uY6DD*gC@F|>&Wnp4sN_dW|o zcn^)+xM{v?@p_1ip8=dsIKHApckEs8F{iH9n>5}23duK2(8$(7BqcuPE-SdxSJu|H zO#HHN{)1t{i21q#thQzU7l|M#LYBYU2_;3Z@S46^+&U`0cF0(~@9HA&_jD;lDe7@@ zZ6?6c=l%23JEz^Xbv4LF@{O{(AWJXLZLDT4=}i844rKWIa{t$!#h2}RmsPX#KSTOV z<;YDn2cx%vhr<591m{_sKgEsk3lKG&(d*4fspd#JoI0>0OJkz$>Fr%l4?I#LM|AY9 z@Abx*57nI;RjZDN!mMtTZ*Sh25qvPY^+qT~*rgRX$buUw=>oa7z3=?Gd)R^KF!Xrz zKv~#VON)lOnw+)Uc`pvnrQV=%l@9TDzGEHkdmQn)Lb*N(oFwgwH>p1*QaC;z5Fo(P^UERTcF zyE9#oYw~jtI*R2~*10w!TBLX8yh+6U=6v*X_kf+#%|IOOB6zi3Ti;18EhVrZjED*O z7nXCd2<26f`vZelv*IT2DJ2|~flke1>pkz8t6ZfReP$rOf4>~O-;lXM8iHi?+0*Zo z1@oDED$PfZGvjGkaedoDJGLVU7L8Qhui@gf;SjEJKVZp>T|T*kA}mT;KO`7K+vr(O zoO55RES8iq#vXmry^m|+wRh1y5Pf8SHCv`tCA9j1S2QM^5nBs2hHEtHb`oio`6MaD zh>5THHLYx)>%`Z}^EU=?)Pt?}tiNoH-j^ugnx(&q|$^8RkBEo(ut9NhJ zAmzKove#F94xNetPd=y@A?f=o=Ji#c3ercEy_yfpE< z1wOJW8C7_HKSGmw%Tn58dqx=~B*H(02Y;H89-&Arg^Q(FW@wH2Nmz%0DRtN-s+$oP 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

      $dtel)ogalA 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 diff --git a/qa/src/test/resources/visual-baselines/invoice-v2-layered/obsidian_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/obsidian_invoice-page-0.png index 4382c6c686d0abada2020c774d94ea99fd5d4376..eac10f6ba835c47250d20d1897cf54d02a0e7d69 100644 GIT binary patch delta 55446 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 LNkvXXu0mjfcGS{j delta 55521 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 delta 17076 zcmY+rby!qUyEiO?fP|EEH`3iHC=E&@-3`*s25FFvp+k`FZj|njZh--$Wym4F?fabX zT<4kp;MxOg?S0?(`qkbke{oj+A}|?26d|us3_&~wlx_Lxp(i!N4i zYu(qWWz%u61%bbbYv5vC#_2hAe7qzTwXj^tx3IPkr=8dA@lye(Yqay)gkRqz((CSB zkGbY9E!l{O@SJ9?b+#v2Mj2Jf$CANS%)LbOY|A7Z6R@z`+PwNGW_3D0zdHq%ll2HlU6I)MZ)}( z`_;g>It1F>`y??jTGwCDeJ?aLG-|RibW5a1XtKtxU2m-4n^GGs7#^ca$K4}S(Z@sI zSMu`1(_FQ0#ZjG^sF;|UNnm^e0@@lH$SC2sfR3htaw}{J;hs9*{#b zd*1hBHhix09VzAW!ttj|dq%sQ{ikiy53PiTIIvJznf}3*qQZj%5+U|zKUlZqt0YMe za)|)H&2RK8ot_$+n)2fDs_S2N>r7_W{ZT^vcwZmutEt(hJq0HN+a{lr5I2jLL$9hw z0j@EA46L}q%c0`BI<)QwN+#;uheHDx4CdWMKaQW%R#%xubp$NQ{Kzv*>AoLMcBUGE6oT~oSwcm(zeX!us}dS__N*%;(FDGf@{?`vCBbzxqiYP>wd)rvPm{H_7(Js+Rwg543+rb zy&5z6Ei*b5M)cWOb!e~48(nC29+;o*Afr0g)zF7c51I+SpQ7WRd+pln3-+2T~@umKJgWEs%vU6-61)0XMT39(>2u-=p9^6O5AmR z5?;Y9_neQOn=!)Gz6;&;b~yL=)bVv@+|+uzXuN!(Vw=w8m+#!^bGNHCubTb0L)Y__hLmD0 zy+1nvh$m$thcNekcC$nS|7q(UwfDr125j@^YdgLr%LFVaDj%t>NQhs{)|Z2B{iisd z_|q`bN99B(MkQb9bn#p1SO7bs|K;#NT&~gtY!wsgdvs<+cmB7xHjx1KQTpxs7!n8S z55o)Ejz46V0u!**<4QlTc;xEVJ5VA$6B_fO-S8rW4O=K3A%8}Nr^%=9A0@?6@HkGc zKhOcYOOUii2}%J&R-q!riuVjY+t4|cq2@lnV{RUiF~ny^UrAMU&47V`m(ObW)70eq zF<1urejGGFgT3$Bby|oXU%~?kV(RVT%&)@VC(*^99(z7A#>j8`@%xbZnq+nijX#pm zW^#1gFds|u@`w5*_bhL1s}2+vTM_M&miHI+nKCRZa>ONLF)pD8D;;UvKg0SO#3YJa zXWPgV5cv{Lg{PUa6AfHu*xNhiy^z`@woycWNSz>n;RSmo@Nl4}Zm_wHFDO@uVk zp}DRc#a;h`zq{V`QTv(kOlZ8*!`HO3L;@7T+V0=ahanIHTX=0%8FNO3^4FT%3=dKK z@0VYGXeF7aSzHOdhH4FQ^x-c2TBHx!8c{sxqp~|T&@X?f!jb~`dl|U&rZLu-w%AfwXf8T&$nPiOjP@r{L~ktL zaHWGwFl{i1hW}f|#mk1AvXZi@98q`Vq|2xG{%H6$P>l2KU1-hx(uyeX`qS85oKof4J0h>HutSyxTjDesK)M z0^ndX^gXVunId{w!BqKlP=1Qq&^f@$ulc;3IfFqp1KyW3`LQ{>3xym;d=2!6Kn#5z zX7A^+lm4?R^-|>eFh>D#MOY(WE+>1SKe@x6WS5Qlp1#}Jj`0yVA|CrWI1G;(Mwa=^ zZttJ&=Dx45TxDgTUH?Xmdw4h%$RP;`sOlDqBeHT34%An zDSWn;?W&&~w=UXG1AxEH-R%q_1toL$b-zxZKCksT6(dU661~PY*{QcoVUaxxFRvD9 zM0MYTf{*bHT%*j8q;2hnb$G!C!E!^0*spSTFQiC0o8>Xnv2ENZdY8Jpx4Z2R_is;I zTxSA!4Jyx!@A?llH66CkJ?ft{W^_DRxkc9>{d0b>G8|azy8)BMcdUc~f~l*}q=0bg zZ}|)F7uW*sr2pDqFSC8u4}d#?XM?`}2TUserc(#LZdDni7N+$0a|_7BZHo4~2F#!Z zylq8L^->?3KOWolj7H@zyIuXoeD`WydviL2)qsxONu7Y3pm}%Tmb3{{9z9r^jBAyE zMPlFq*TlU6_8E=h<;&sjOQcT^lw*QJZfEq`_Lr;jzo+|H-v(UY*#Z7@loTyb9}mUM zUrj7nNtE7Wh4dJR{#Nd(eL88s#<@!ymS2*IciKxNO;-AD1uTF_SEp{fI_x)E%j+q_icrK#A-IyZG(zZgE>YQ)q2{h?#JADMiTvbhazh@8SX3F zuB&CeElQEwLl)rSF8(*uQkJL<1K05yJ;d-0WyS~301z>xC#rrw_@2KKgF+4Gcl>)l z_YM+6!uQFV&hs+I=OFZH-NVxo@Ig4KYNrU)o9`z7F+3eIHh!|MV^&DhXEUuJmqe6n zsQN$eZ9j*`n`bE2MUAUZh=78SR`|5v}~^%22}T z>mBV%ovv6l=+D&2K|jp0y-5QaF7lEJZIQeGdK|{Ilx_e5^;OZY#sx!FFI$%rWq~yY z>KbNdnx6`FcE!0N8!m_0u-eX!tU8IO9ptxF9Wc*H(T6SKAr#r#*YrZuuZ}S5>I@n_ zhx+q<#$!;TC!2k^Et9BuY0bs{a;bB4gSx1<`#Rar|KAAy|9jV~CIM?@^meOU&{u@@ z3XpSgGf(VYt2-Fk1t*rr($ijNQ5iiGXI))IepB1{t#)tYXKy%;Q`#11K;TZ=aY6UEIBfkDO8sABn zvW)~NFi7m7>cuDF|4392ozXkzbD%IGAXlu(ZoQa#J7?(}uHNpNXh%l-5cuiSr}nls zGU>@r4#&r_QXaMr4u?laZWw&-_cv!vP5gsX>$djxE*J-uJdl&TlarI!SA)&SMlAsi ziK!E%O%jONb^;WlYOqpL=Kp}l>Z-cq-aEgZD*_$rH`Dk9CmRV#ELja?CgjjMR9Z2Umc14CbDJbW9w{f zC7$egH%fMWnL4wzV-<&|aB;PNr`q#qP0!Za(v||z77TkOUW*$Qt@s&3%rjeEfI{Q{ zEXZkk@k2LnrS8_#MyL33B|j;PP}%+H-qlrG*li+Jrzqh|841C#OJG;BR$dT$A z8d+|leU;p zXOlG+FE}^H_vVew>>%st{Bumq7-i-0WJRyDVF)$_!g~a3h&Ba+CUCg4QYTU9dN2^I zpdjup-4C`bDG}^v-u21qy7wyo-nWb>t;2T;W)vHmM*bP2kpys$<8?w@5(elB@I!)= z35n!q&&WubG{VpP{7sOAf>ffl)k$7Sft`&7>y?laZ$*&9il>~`591x?z2&yH(izLa z0s0F4&e%wNEcrCRiif8@)bG%Me|W5G%7(ZezD3W1hnpnYY#;3B4S(_ZRceL%I+Ztf z%4BBuO`g%Snsib3`OTUL@~-wbZ50(+e!mg4irl?ZG2q!E8*ivMp+9~~w_hJ&Va4^} zFojm>?2zG+s`3e{?YfI6!7xSTm(im*50AZ}qN|e*=BiW;tmfS0?027)tR93k_|jB>xTOTjo9Ys=t;$zkN@(mWp7W zTM+m_&m9*by45yq(6d>aHle}IEwfoWB?w|%(BF_cvtD3MFY>uwJukDh8~Dnq1~RkF1@~=B z)+2d!%U@JkFKT4>$*7JXY7=@^8!;%EAT$b#`iCMop>}1bH&ALLyO}!pRK?Q^O9loLki=AP%jMx@Qq7YUCi?u5=cFXyuegO_TQ#z9`fn+dh26Z8V zuYIpU?$+B7rB$svso(9k#9ZV;V-_{M`Gau_WNGtknUTE+63}584u(8UrcAQkQYd0p z!!R(QOo3Eoc=$GdeokeXk(oK{Ac1;369Q3&8Mg>f6 z;;}M+w5<;rei)op%`-9lWj-@05&tGFa#6uL>#g|i#@`60B8}D?%PhLwcnoCD^S88I zr#1Xklz0L;r>?v^lHx9|8yzX1bem%7ePJJ)HOm)>cX7Dx5ZRuw0*lxILm{zjzJjc3 ziIl>x-3~A-lc073_C3$Oc!zmY5x_rtq0&7ci~p7XDz69o_3Ox^CCjV?zjTmOp(ZVJ zVkvz6WWTXJD547x?S8kRrVPtY8KI%PVi!fcC!-CcW$fYnIm{d~W0jz)5E8q1k)zkF zH&F6U{8O-p<=PCR03b72N{Yq&=6`^={g0tNVa9m}sg4`M*q37Sj+wlOO?$@Ym*8~b zsy*Z8iAuwhQZzIamt6j{i$D|+SlaLun7fzi5c;nF-joO*AM%2s+*(p1$R>tZfQD|ib{iu@3%v9-c`5lqW#Z64z}M?zlm*2{ zlp=etG4|dLqLyAyPuW2(+ZWGkadu)!5>bhC?oGMt7C4=XP3+~7%Ftw`RBCmB1H^9; zs!C}HL5rbMk@X4?(V*|)#e@kEHY4TGQlYH8iFi^*1{|CciS~{rI5>FNd3Z9T67Xfi zKg#(R0;Z|f2=jPHJ396+F4sleZ^?9Zo-y0@o4%z2yX;H&9)BP?IUY)L1zo(;i67&q zxYT@WwC|=_=qgCQ!O}e;(XFj;myyE0*#cTob|Jms|c$Kp8o`3H0fpS6Pf$>PA72ijN zCQ@|RyNuJMlF=Rf?s5!D-2Z+z9$Ig{1_Ebf{k^pq6n)@-hyLq-zl;Mphze?@Q`ys_ zJLF&%Q$?0T8ROV{%0CZW{eQsrQQ>agy`ht>R-dVsMe^*s{z z1LVj8z_QQa4+}DfK6r6-Rw~PthW~%Ao0vH1t3eLUZTq?ZC;dXzr_^llVVKW+sM+ci z!Cu5EH#;RoGjkO@F)mdU6jT&PZ+2JSw0oS21l+fT7egjv4eqY)a6p;tuI-XE5*x?c zyc`nOk&$R1;^)~8IJ!Y3lE`00ueJ>Lu9>me1b>kpCroq@x>IE;38*?)aJ-5Ux=58+{D?{U4xjcs6xq2Wxd*39yF@5v;VdVokaLl)8cfX+sywG>%Nen$It% zL59EFO{L5yI#<1R!>Dd{dH+FZ&geFZc)if6sd326447V0G*!MGA zMQZ6S!~x-XB)H%%E7VGngTpA`U!-51{$0yX&7rP7dp)%Dr}5X7L1y5O-=MIqb?<5!`++bA(kk|-ll?Gga zAWNgOa82j??ULd@Jt5JMlB?t1Q<9VKAHsm8cKoqJ8l`HyQ9X+gUJneKic5cVkYq`3f<7+?i3o{Hj5AH)ZH{mdr>TMzC zt-egBP9BG4j6tH#MyHK{!Mydhi#irp7r=#FT9X;vL@6+=t-W-$=`T*Xewak0Wl6cN zu~F+{N+;NNQ;#K4$*GQp9{nX)I^b+HT3vnS@7*0rmO_`=V60F`#BID^oY-S>^YyF2 zsU+cm`-(2NZGb7SVEaPTopWfu!oBOd3*}5Ho%^Ax{j~R2miEh+j-h%ncSf z+I{cb!kXukbT|BX4jg05%q*uZ=M?ropYE?Gii(P=yGWjf3RG8JMje3L86$Kwv`{}f zI`hHU?8FtG$*vl=eHYPst4ZMD{+wfb8_)6nnytn6#6Pd2!*7$O7)zX}e?4+T`SJG9 ziEcQx(lCBI!|tiW_VSbJBpcBBhXYt3B)o?tV zoPb^U9i`XJ^k7b(Pw%ecYuS`%Je}TVsB{$@PiYXW$UjgucBJ7w=M| zfztM^t!=j*Rt^5;vp4Fs_PR+Jr1beS-G17d>*IL2{Qec0ud(qIB9^END2_~_Qd8%X zy=hgxxe_tjFc4U~r{qo-a&5{78&HE;{XwoPnHFEiohztcE8?_mR={z|*1;q955@IZ zj?F1q-P;K&6c|@OU^dgz($Z4{61QK!)Ow_PCbHY9H~w(t*1wF=s?x`V8;_xLd`%Mo z@>5oVf&&EZx8J+8JXSviN)x&E(cKrsNzlV>hQoi;MD&=p!xp-OZ4C?zIFUa{b$PCP zQfYcByxBDRHfGh+O@yAG~rlWwDh z1U=WEQ~BI{UMz_dPZxGaMv=P&Ip`ujHZ~K#(c8CMpt6vjlA>I%|1fw6%Bw-4-4AP& zqb$teC`nPUxL|?LE5|+l2{K$j*2|35hAb7?C_Wl4(LQ#ymOc*VdN@<%>K}&?EJ`l= zId#CV0N2TGuVZ)MCkdj#hH^&F`t`=s=Y$#4q3ey6lRo~QXLT;YXheF(h$S_{>%jq! zUdHQo)!p8fupsPm29B;9Se*q66=k;;xX(>z!)A(=!}U9gkPHI&GtzcW)y^h|jbTJzkeHG3FX;3wM1Xki%4$ALp#19HxZ=B#9B&4>Ki8w|(pUtYN3SPBy^8EBj_&X+y2v23zMXmyyv*w42 zVwdN}!?PrGif3#ry^Rxx0dN3vwAMb!8Tn;8H8By*Myv8uy>~rhk&db9uYx!+Z)O1g z_XiPUF+CIx>Wk6Q(VkRB;0Wo5=;M%)J$GVi=fboh7d&aQ zNySRN(C6Q<$$jnW58o+*Lc{&i|2vyh9 z6LDN!pfwCot|Q^OiUyrmkQE@mctKi}GW-!Vn~pl*=%tLQCGI?lsII#cgilol?TpGf z3JxYj9_x#>+X@N_oY=X*<98apI4>w6u6vie+GLMFnhz;vCMm*T~}q z8K%BSNce~=^<51p4a>hx@QW6g5Zz2cyrM2nf8(#Md_^y*x-T3LL3hcuJ4@d@j+WAH30wWOj<0C`?0TwLin=vDF}Cf zEY--%t1tbjEl&-+>FC-LiPZ&_=fUlrR&i(t;?r!@fQj$9l|Pa7JGtmmq?o%^o(k-g z|M&Ox9^}Md9ome=GTP?!TCztRI-J56-@DsXy=S^xH!qxcKK`5XWx2Db;E9SNNEjz_e;cC* z7e;<$!TURZ4ui_KF=l&A*|jt8LtQBW@p5TtM7d>AYUE zZlP{tQ>`7CBh}yEBoF|CJsStHJ=|#zr;XTH%BN`m1l_2T_I5oq_l^69VA03$=ZY$& z=b!<;YV^TRSrV!W>6WKot?dk_4R4>z3}<{ z=cr$|=Fu}P;e$nIa#enl|M|C&v5;(_JZwz8SrsR|jr*4X?#7TXh|3$t&CpV7c``(373hhSzFp

      e?$fnE zziN5d``L4SH(%dDkJFr|-urluljW7!iw8Wb_owHJ+BCf}juZpK2t;JKT56`g{kS7z zW3dsUrj&4fO>OPTMQ4oT${%_0Jv}soQ}y%SSZH(Dzf@(r(5GK*tZ^F?HG_ge7$lGj zflyk{RZ-F6`*CNUlDyaQ7$c+n1n)=9HAIT76}+mhuAtSwEsm?JQ&UXCIJz&(g+)Z@ zDNBP7-+Q9-U?@ti{QA{qd)WqA=0acr$VJ{)M#$&fbJv?&Uiw}3*hC%!B<2&iKRKSo9_;N#IOA_X{%Hx;n6SlimwdZV(AHqQz986o6Z)PFxCvT&!6m|kC&=k@q5vog|X zJGwq!wEcQP!>XJofaaV99*sRY^r!7OEY>;G3jX zqSqijhgEr~Y=MGGmd}3H1+hwM7S%rIO+NQppus$`)e_xaf`Xb1`1mq{>sdQrVTDr( zP0?eNhc`41Gjyw&*24+JT;;AVgoUZa9G(!Kva&??YoP-_ppy1;f#Itp{J zQEaqw{hu62t7{V6fsInxVWvn2I-<1Uom44S{%+6#*u(L&e*$arw1W90#AUf!&HxyjvYPy=LX2jx#SoTPne?m1MZ6Y^>|p_^7%x+qV^}Fw)il5 zmjJ2!*>vF{_6#vP-mhAfpqtL)iG#vYj|I)VwvqdBmGvSwRI*}cLuN5a_2z6m;sHgh z-ZBpDxwc&~Ko*I~OpP>PZ;*;~93fv8mf@i$C5|zef=8QqAi_Tp(;KG8BUDyf+^8Pc!WL2d2azKE(5esmeSQLfGyR!rviGJ+&qz|>F3w4GF!@-U z3k06~XbTndz7~|1Q&Lb-=?`u+NpKp~aw;-bA+8)3jV6|1-N^QpqacM)IqOiLDWVt? zUVZqp`8nN#e25U6h>U3w{l=UEN)9!|2$`mkT+IdTyF!^X;>rPQzR{gOHe+7Ie|>c16vKPM^TM+}51B zGv6!4R+W^b-OhaAu^Nw4m7`%eqzl*&Cr;P>${?CnoaTr$g21f;id3J|LLjLrGch(% z_$&)*#N5SrYF4F0m$?D}moFiQu6((IE7yCV(S`&d+v_iWa79XG^2{dPZqGjJ~PTv(f5QCVi1ssiy38v$I0YihZH+5;aw zqvfWrk)chH*6nR%?**EKoXYj$$uWAAilTU`)HIhfMb63}9z{qc4a&{W);v$$L)==p zeFD}Cgpc#)g`Zlii4XCGTYpCEl|*davBx zdF@Jy4~N)dKfif_B_`|4&EPNpoDKFd%3n{4wsq>Q1mr6DhWGjXwimI8>3Zb2RhlxR z7mrF}oM02RmbO*GBbC#T^_y)y<6zk?kv)56=VsEFUj#hPJ&u#5yf+e~Q~0 zGs#a$_3f*bx%@Q2Xg`dc?IPpi*GR1A=jdsyA$~RC#33fbI?uhJz1TF=v`Je8!fZTa zwYGEh4Gl`jmG8tYDX9U<@0<)4j@&*;SkXc0p~0r{irK?Sb>^4M&;oszXD*?k?=)68 zt%SFsnlni|*ZRkF_;~asy)sE@AvG|IIZ85@G|d`)7|rH2l!xOe4}W))6P-s7CtLy7 z$b;)KGc(f$6V0Noo*kz*f331qXG*5 zdU+B8Beb_h5AHyx-#2l1a1a*3*wz;3>1F|;5Jn&ZC?q^gr}x6;O^4IlA-nb$#*>$0_d%|q%kUMf*|yz zE+(F`Q)pfu;euC*W_Y#DIW5i0?chQv%kDi= zc06|AN23iYu@E#pXn~JPG(??jxL+-~Af9iY81h^M!37Bv+9@GkA_zf1uSr4}{65-3 zmgdzIXJ&LmL*P@s0eyL=ZuJrI`gg1GLeY(t0jPR%{ zS_IVGx_xW;S7Kt~`@2!G?!;AOC6?wFXMx4#=Sb!>NH_gR1c=ns;r9dK$*F|AtrL-< z9?!Vhnz%>0ncO_Pmc012?Jy=@*iQy&Hc9-T(+vI= zuMz$tPfku=UA4cfy0B>+vMH^1o!pzkSg~peHuSz652y6E?dcnyA3T?-tv#!b^JApt zIZU@Qs>70PUUSZU*t?y0&sFP8PCkeh9d*)moxjZ}QU6%r;(1-z6Ppi`4!+lg(Do1h z{64Fxl`Aj+20QJ1!huVAczSx;*rfYSjjm%6(iX%9zW+VD`s)jAO<9?O=oK_tRW8Kj zXJH!34-ZNhh8!jyyoURGAl!qWXTWuWWbn#{hjU_q#9Yh%+W z-t)K>v7oLt^GQ$7q%uT9dqGaBj}d>>U9#Hb&h{Qy9#$`sR`B5CUMedBACl+0-9U`B3i-rwkZ#9)zR8{4dVZWGMmA5NtNN^J|iDL%=xg zxT9|RT|e2~@p(G&+c#4WvBy4Fp;qr_`?&&-C?cf|6-T>zr*sTy_a0lX0bf|qFAyf^ zynFrnwfNtu?L}KK-I&+^bCh<7sJn;+a!@tC(oj)WBw}#! z`gas=^gds;sV1K9WIE*Pkk|8xl(yc!pmN^#T~tHYDF~*(RH#ga&_3Pha|gVhnoMU@(|6H8pk97?*eX_kqWr z0ainEvmUg4KXpZ3E=1%spr)k-N!8!KQw-kZd+N1Sy0?>P=I#B?(sDi+OCm^uk&%#l zDGAH$BxPY8w!G`mKB22ge+{Q22{H<3OIpmu-vB**}@1S#tZ3hIm@ z6-bG2GgVQ$1T50oUf1$jWvHaM(iorJLjCi_de3fuUXZqvgn&Bzxx{P9iQrT}ubSGL zD@jzQTffyCfsFtOF)=(WIbV2+fJ&C&*&_-iVm}nBK~0%)vo`CwLCJTpJ)Nd-1*PS# z_yRG9{RIkC@d@z#;d4kW+*>IL#$!2tV9}| zr22u4+whDJj89({4$l|}v?-eZ+l2-RCyW}@$6pf=aP^CvaDE*ac<%uow2LUhLTo~a z@S$)zW#vwYrZj>g5KCTOR>h$DVUR(e&cR)F3K?ocj#9pY8n*K@Aqs9rygc*+y4d5=)G*}oS6Vwl2cSlL_PGOB_g{g(xZ4#* z&Msh%%HYB60urlKHImojGt~}>mL(26VdH6Bhfe|S`%XZBue;Ctun@s&J>bFUNs4zB z%>0dKwVtQvS!jd1JD=>n7=3CFF}N4Myl@56pB5GtSfYQ2G`r!5K@g*}%@?PXp6@`z@ z0Ufd679RU%T6)8K!N7U@NtddqDUJ`|<&}uN8tVmboRoNi840Y9Raxcweq_%3r&jms zzwN3hJm_d>i)~T?iBOIr?jiF^tf!lIrC?NdQ=J1`00(_ABlm|fu zFcCAVT3ya;6N&YP{%-_;b7mH-pcOz$Y=xT)C|%hrT^nX+ zkr=dEx@f3GIna}LRR>~Uhn_jG4Tkzbn*i4V5X`jH+Ilj_K}FY1A(=)D4Aiwz%${^z?iKPjb+K z*myjNLt@u8Z7;S+(+1#=_mFNpTmk~ef6nY&4I!9sFK2w0{pY|V$D@$5oF)%O}3NRaS#V-%95WL~c0l^^n) z;$g9O>VjGt?R9B($DhJj0)i75A-sdJW#W!-ry7<<{e~FQAr| z=4K>XU);L6INR(H#^60dugp)KtCKr5yC2>AwhI(}I5B-)4i8RBosG(khOAmQ?ynBY zz<|yv=o{2-*quVFcfc2vBv_!J!Q$cxT-W@{3G&SctX9S}I@1luKW{-3e93ezhn`RYUkEDflJoFe{9Wg!EJDMnt;K$5mEnd8u_J zlkIx9khHOu)|8AmSegu>5UHue)v!w*Q`DckchoTd%X>rauP~Mi-Ao$jO8Xli`x||; zVakd6B|4nF{b)f_v5Kqf>Na!U@JQnAzuvv#&lNnZ9dKCb%=J51ie~T9{~Vgmv}q;Z z#b=lOvK6#eL>eQaMil;M%^p?FVuc3r9|^r{YAWF^cRe@C=i5Itr7SyFzIcHxMDCE? zh+jD|6WfOjdDax`0j%Kd>V(MjTJ&k-Tg(lHr!vT<$fCRsW@l=#G1SlVR5AQSz9|!C zvhz+EdQ{J_lq#)Pd@8J$uPZ-SI^9&7raUBYveXIUM==N;#p$0B@lU<%Q={xI=*!Oe zSa~^84{ya=Ckcs&=u~Zdd>j)xL7{tS9ZW2BBizU5&7My_@0NjJ$|H~fI|uF{s{iIG^@@*PAVrKB7;*EzZfz2!k6QfrtDS zw4V$9B6MR=q=1Bk==?G1A~9qwLbKybxGJISse(!l&2B+*42t9S>x%VyAI`}l>P zRDUfq!=9z-;2`6lT6A6b4k3tIX7SIi$>mkzFK*Ac9Kz=s8X6PX8|R7Lu&9y72~yDK zl$Tew;t>%EXYZ5hXQY!ynvTR{6vWxG`VIzXnjZ{hurPqQ2<{25Uy<1O7VQYZpu7so z9aGCWyXZb6BO|I0v{9G1+9_p|76!-n`*U$nX|sWVGxYNeE9Y7V0?XG1&O1&o;eWPO zcbq(q$;l@U=Q)hJ)V5BS>KEFCnHSh7{r-MjB7+a;*{?tS=naFPSZ<>X4H~D03sC}F zHgH+0b6`4_Tm*c(;oYOi;vO_QMiEqr2mn336`JCm*GR9lD-8!n{H@cDWd){v%DNu+||`pKf~YL)Y!b8U|o}x+Q7Jx<*hp zfqBX@K1WtG|l=K$k7@pV ztgw$+mw;?;(fxv2CHQ$iBqm0gpn+)thBuC28Mbt7IjPHpsiUh)FI3~F+ZvW%fcoyuGbyO3Fd{) zW?qeISM10M)o)?oh4XTR(>hpRWF6*|zmeIEKOXj^6XvJlTpSyp=aMY_%GxWcB*YQ$ z7(^gDyz%MBrbOoVNCiH@xo)VPjZNz&B_MzcgQ`!CNG^9QsZ*RHg*UIdWZo-ck)@`j z4C{Sj@7@ylXG@k>cRCM$*RE@|u$!du+@xXLT+MyFScv9mrJ<+4Y=BDR;3Sy8y|I88 zy~6=omajY`j11g}H{VNu`S+^MF)2_%Nn`!>i>HQ;&Tsv`U&*8gcNaB+X>$yyL?>XQ z=Vq7amK+-VMtUBa65!**Fk=k{$kaC>MyiF=ufpFA^wS%QaB~F_6n#2ELPZg^PO9VJ>wpW%uhr$`zw9HTZw)@%BN0C1O< zR}aRTK>Qqg)I3y9z_$UfPXLi2*0?)I7zS?L7dV&-@=B|#ud~;Nf_jLgb}YIvDqPTS z%xJ`7hEtjM9!y>)qT&8vB*+|FrYZXUX2!DDI9(I#_QlXgyg`fL6)lcaHa&-lC@eUq z^c$QeDP@vWjLi`S0o8cb#^KKcW8NAm2D7>HWOiwyr9?85V{CT?MdfO zbEZl+nQ#Q%p487n0`9i}S?YR=bodv!{z61wjPvX_N=jq?V{fE>=I7`&aq;nJkGv&a z=d9#GL6D204JlQ}(DgNo9*)?@Lgm^^)z*j_M}edA+Mic5E*AU&Bexb7d#rk0BoeC@ zaMdhz2k|mUYO0iYUvUL~c@|sdBqt_`Ntj8Z)2jBy$ec>7+z<+IYT;tOTv=B2bBb$> zz^sU&vSWKiswRp=B~x7XD}D)bNCXBPYFhCSss+dWn+7OZz>E^ffgd z4NT6<>vh24UFci!Wt1y3#*f(JEbVCz`FSQZQa$Y#`sTxnz>E%V+EAB10hs_KECg~NXHzj>2B!w6+z zX2;2l>kXRG2(C&?Paj7c{^Q>`!#S=cOuD2N6O$>*ni)5T*w_b^;B5QB$=CJ$vfs&>(xC$c7$US5jtYTfz1 zE2iJ5OVWJt$-%+l6|{g`>s4{*vV6pBc!&lv-Uz4F=foBDnM9fQN;69HQ?HCaSh0SL z_Ir+z@Gz$W3^Arq=eG~egK0>G<{^}2tnhcn;kpZop?L~$gySFmlJg@}adGYXY()d`{vlPU8dHb(U zME-QFr)Y$EYknxH0kh1z+%OXt3^B3^4Qo|#29c5s zApij!^o@p*)FrC|xhl=hjP;-6Tbjo{M~@?(X$u-O9|@83?-LI$00Ts|_7jPIXD{Wk zqwAo=Xe21>oRbW647$)@oq6RCQ|)8+TnCd46CZ%}iM-V~%yfZcpse8{qCgKp?^#MtCI0uJ5utVD*e3X`e; zYlp*mV;fx|9CI5}d3*6c?=rvUa;6*2<28sfK4(#9mvU9HA)ZGg!%=2aX8guu{KL76 z2~{CG)z6JtGFF0vBUedqf$TMxd<54xjxH2T_#wJv=?hcrs4-c5|NdRw!2^d92E0H* zc5*w18|>P*u9uFWyx96Qk6 zsS7C0m%>}bz-{{TIrXs5qfg=oR^m?pkXh4ZCF^?`1l?la*6l#<={ReEy{QgEj zxaZIEe>X`yrQqnzBi>LBS+Kf`DM2Mj zhv6w$vBy`x=rIoggqN3>n|$Ed5-coMAgGa-^?ek#rj-4zb_r&b!L`1GRl2W#rV}PG z1r4$l!*LSq4!djd07b>o`F496x?AYVD8@N0)|UL_kb<(};82qGb6uRH?GlZ$uEc+D zZ}CKqGX{VO2|>^ztaG@F1)~N~=xpBasl2=o-csb!3i9%LU=r0N|2UO`KX-vYxAX25 z_>%8Z0XsW;kYI5qd5K!-gdTV=%YeqYQ52+4ghF5jHSqtXLfbDyJecS5AOac)I{C|z^INSgL diff --git a/qa/src/test/resources/visual-baselines/receipt-layered/modern_receipt-page-0.png b/qa/src/test/resources/visual-baselines/receipt-layered/modern_receipt-page-0.png index 82ebd8d1c262433a544054b71b8bb00318c7abc1..1ac674675c5af643dd2e905aaea0da7388b9e307 100644 GIT binary patch delta 25441 zcmcG#Wmr^S*f**o-Jo=LcOxlCgNTZBcelvER;0VT1O$=p27#f6LAo1;knSPR{y)!o z&xiB<-4_>M=9<0s>~+U4?)CTPdB@H3s;|=kT0U}d#q>10uD<>yX)2`B=*yQcvs;g+TODQ zWL#Wa43_HHJNTO{ZHmyQ8}4P)jgPx@_BH0^#btPTU8LN9vpsD?AP~`%wd_B#Al2a2 z(o$4XGU$_c*`8bLY-gvUHCh;;q7tsd7DQnFMBpn-*JxqKM*4qOTaj7zKMIWGX}uoj z1U$Nrc-rsmUu;c=#~AxAp0EOV(pTLk)RJsMLNI>XkCJ}J$nT@gt4$`4BBnR$_8s?d znYnE57^#Qnj;U1~@fq7ju7l(@*{w_r_GBskcZ!VSb075=gf)!DA$ ztnl5M68)4W=o6qkAm0!9d^l8E@$cXuTaxz}ny6{D@xd56JQr20uduc~&O1X3kl2>h!u!4q$!!zEHgchmmV~aGG(@ncRh@=mR zLB$M`Z{?+~u@a^VJu?$z5;(6e=2{Uo5E+KZWAOhWmqq;B-{YxtXN7oWho01TJD(Z( z^o&e@gM|{t8)|8d%B=W5{!BITfn6=%(i%Z_lUsd!fWBVl)#i*0{h?F^1$sW1sFmth zeiOx?M>CU)h}ONmf841^>ARgo9Zku|;PAwvf&a7A_lm>Ao4%C2`8N;Vb25@w*;Fye zckgDh&RYf9UY!(9n47Otoh9qOH|B*$KmoV8NHvFpv~~0>VZN zG}qiMp7EZF+Ls)KE`s5TqYj383>A}iZ!dbl4D%K|lmVu6zjzcQPL;wPOCxRW>8GS* zw)PR$$iltU8A2c*_Vl|h%twJ9`QMhRaK=hLK>d#V2JVzwz|X#g!>(jd8W{D;e*eB) zp##J7EBzTJeb6z9Qae()p*sao7{$la(j2LSm~1q2G6@NY2?=-{ym|bcBJ6P}|Hv?m zWmpB(bGElPTS1M?Hz)pR(BWcjhpkV*FUscV;rz6;m)Yt)B0f8D*#5%@+~Ko8Qc_25 zcYW8{xOS@mWwDp@3;rf-#KgJkI)rK#Eru?ixVcLUw>_Sbet3VA(A(_5n*-4Yr(;f_h2(G-U!n*vn{D@%o36y^ItikTn0G#!0*&nwf~xx!c&ULnEw*et#|(vy}a!AkF$rL=;rr*BgDn%34IBrja31dGyc8f(5qfqV{hYo`#yW z_8ueF@SEDFPcJ&!%Gwe>JX~I05=peS`dzpB`E2J%`GplrNwqhjkG-R5=7QUG{T-{$ zEcd&-wrpS!2_I+@Ge_MraK}#kSbTMP*i}+SlvJX^m=-mpQ#5)6?C#1r&d%7`+j-ti zJ4t?;tuOVz+nnPH;xP^p(6hC7USlhwI8>O08;4>_6}wocyUC7!o`kTAw&$~c&N%Bm zDa)|W5D+x6b17ppO4yLU5+o#<>bIQIHeA@eI}& zEh-{ho4T806>H|@RjyYQKVE~?=_0djI5bo$CUpO!C&iz~b6L0ZXY>zK`cBu|-rwmz;I(Y3{4`At?VTto? zKTX#so6Fq2H@)}CC_5=4E$BjaGPQM-``u&=d`MEqpXKmEfW9Y15>up=66)78RvqcF8>z)@U>d@ zbXWZ}6t18vvYc1AGG9+%Oz9I)GP_IE5wIS`_QD$yvc1_SVBx%Du8nOt+ttWCn<=cc z=y*w1!^A@$tdhV_OLXx;b8vOAr?AUT0fYaq*xrcJIsJN7Ts;q~$3b7Tcr)}Z1I4%c zqsd!W7!b;nTCS{YcyMbOXhC;w?JhT;Mcfqjc34h^S|UWAD6mAZ1NSeQyxHCF_q9>d zg!pz0YXX+qFB15+J`XqFs_s<&Dx(j{_#kt(_C();6W_uk9|`7XpJo<$BS-Ih$spug zG4o^IdbdoM{X#wKr??g!W0#-Y=orPJf5IJM%Rr47L&ns;hA&$dQ>N9p7#bC?Id$E) zXPEajI1UOXJ{ok@y5B_n1_lc- zHS_6Z*r?CZSj|SgNr2u*V>{<>L=5500GCi>9T9PO!sdq}yw<-4wd%@V_VbNWod*dX zjl=_u1SrTjy`RDS#5NhEc=%==uUCBBiLUbS*Ef%|&K{S!H)v{oRgbR_#&@Urjxb@`Wzo^uQX`kT#=?gEWWLQ2 zF^$tqXf2?E#-XY?sH{53#=|a}{#>%Cs9e~9fBi1b75Y_NokD56+3#vO%+8pCi9BC! z-PHdz;~+W^{y;_HU|lg%G#^;?6T@@@0r8+rJgiQ>8ywu^npx8HrpIRlM(KvTJ}F+_ zYi$Rt5(?z1MA>FpX1K8oZnW9k@5K>(@tCjP@6sd8go+28ZrQ%$4+*3uf9lRIVAP0A zD|7uhtLi;F17R|w%J^nQkkvYpa-UDp?4{u(mCkID5MLjUXIl0LRZX2|0F_$$%Wq#) z`0C<8;TevRhX*HaithUY;3sbf%_zr4?4YXZu*y4fOCC{N_ZP*43NfQ%4)7THh5%vr zch1WnhkZ~W%(^L2xf(3n7EFV&g!Je}t zGk*KK7*y@6;~|+VG)0dZ=p+)E2|8;;x2o-z=`83zX5f5BKZ&UWP*w;gX9>5&GCzBI zdBu~{$#?(sZRa+(E4$qiib;s8LlaN`(9PiYa;`F39Pt_-tfO|&wza^eT_z*1>Fidc+3kQoW`4V@Li^os}Ow zwCFM5==l$J4@@zDG4YAuneu5i{O0h``NpnANoMeco~+C(nA|IVaOAR9g!{N>54Z?gZBOT3+r!3*@rSpQEe?^I}IbT&4o`@Ca zTwyEW*}i*@=B0+_O1Mt0oN`?*CDXdPUYWnHcz=NLAVgjp=TiU{f|8Da;XV?2h3=5x z74OI$6ZS^&Art>uLMG)4YZekEjD6(@s?MV=1A6FKB#ae}Y7;6}hPZ8$N_bymzhWQ} zOJJE^_``pNk1I%QFBRk2Qz`&Na-So=S#=DB9FD&JokRTrW|DF*N*lB*XuZV0nKNA3 zbU8J%Tvj1{OnDa(sfLB^Pb<6J-YUpGcSX%+7Mc3$0V?=#ak>2+|M7n0So`7Ue=Nuv zEe_f6VPE=eYjGoY*^-7!XWgU(|KtSo@&3#r)L)qDG26Ru6`eK!26Tp4)%$o-`Q2fv zF+f)6PtOHMrLOKGxuSCUc72L-c1^s1L%-E{(ucbUpacYp1?f*MJBr`zd)C>|Bwg$7 zy;dIR&V4-n{BSs5&nYMvsSd9ZYzw9JUk90t-<1iir?+>&B{KE#qSitgt9nDFQ*vW+ zV)Tt)4DyacN5BF=>92{LeJ;jR4$}4Ggf93&J^HviYJ)Eg+(hZYmoz(v zaB*>&VrEu857&;i%L3m8atY+`pk%TLL7}5Py~gtF&Id|7&47Teu=oO*NAsPm<};1c znYlS}KX}`Zo(_H=F*DzDtdEUO3&!v3z6bvtPO-7Hj3JkN_?oPys%q=1{pqvigjUgM(Cv9!jW)AeP5iqZn)!L} z1CwE;FNiN7q0n!Y?$=wc?Z2AXQ(-5c67IP2mWLzmHj|=^TIcl+_x9lWsfig4(?ZJ= z6T^EM=UxW~)SB3M+}uusCFz+S*f4vrc8)mDXB|CQO~k}3fi(r}c@s%`KkL0HMVf(! zI#&m60E8%WQ4%mxXBzxR=q{)1+Qf&OkR zu=}vj#Z$iI!%cOH-O$(&a7#6?oHR2vH8r>E*JOWyo?740G1hq=_x}CI)MQ;`Dh-;3 z1~;d9qWc-vZrfu+&-db$nCz9qe*y2Pan87abxi9HnKd9KBco+K!M(G)XE%B6*x?km zrgvb%0sVsjsmF<%-0XP5ctnX{;5DmZa#jNaOLbu#q%R9~Y3acwkzCL$!~|14oo0ut z0G4*Wc^YA_&p1@@b2eydq2UO`#PkNFToDYG9#Hm)?b;S54m7owFGxmku{`wo&VkEA z%(R#4Y*G3&jr@Mt+5z*hyqeRYEl%Av@#6W#KULjMk^(c%h7AngrhMfhPgKp_DHweA zxT0hF^Qc~IWT5mi7asotSybbX$ka8phIK{FbkzLL+9P^djx4c@k%FU7)Nvs2x!Evj zkx?m~IKyf{z7+VFT(P3QV*DOP2!NpVqwY+L{ecq1d=DfxcWU^U)1!vB2gfwhWBlR! zk?jG;_^sQd&fDGMrH8CjU905XD`2NgV?w&z#@abL9!fTNj#qA)QfWTos_zDpytz)r z;;#akgwnat1Y}(k?1|4`TlaDBxQ%w<_Cex@%}0LgxjrTm$B)>|G6E@md{!(X@$aiC zh$vL-x1OI5K0W&-;_r>&i&L~q+3d>7{pqre#%OEH#UMLF?}L#VV`1#3LE6`HmfAwp z`C`}0ySKxsK8O6)!lo3APuiS^NP~I%i>x`Dll1Zkp>007Jx|V%mq{$6 z{6^#s8Z%WARo&0}k@NK3XPHC^)6jC&AEjCH8cz2+n1Z(U3zq=(oOm-;5)vylU;+`C zT&)5!?lA)n!54j0VhP^1(anS?iqs#;A&p2D&1}kMu9yNrr~Dp-HOgq>hughP$D!NP zOiW4-cX1uO{xOhwuqm~Brs-HH6$_ur@BJlylk=~;8pfCKTi_y{mPpefMM@!xRqIt> z9IK39d6b$+Bfyy^G6nK?D?dNKE8{ueA28B6g;X)BGetoGv>ZFw_>Rn@P6wXjPywC} zXYEk%^3@`nAmZQd$%sW0i6*u@jwJ{b3B@up3_j8A()+G=X4FMJ;kTP_8!@N%TdvHwSPLrofZZcOwGPagsz> z;W+~de^iHKxI~@cv{C^Qa=(j;VrfZ()PG`kcf`E?41N3*Us&@DJz^BF&V?0bB{YIa5k#`_vV&?>V(evBl)anQa*$^uqFB&j+p?aSrKSkiKQUvRy6FKFxB27(UJ`%2 zw$0bLbKI>DRwCWZoT#`CIG^i~%L; zql57Dj4H`d^xI~$lSSDILsW@BGTm*fy|eS>_Vj3Cpa2zSiJN*hF9R7gT5afH?m>_ZWv}cj+4SK*o7NaUOK0%Xks~$VNOnX$F@S zU8!3HBmf~;8ig{2k>@ZzQ>|K6Afq6K_MA3xnt*D=c(!}dxS+@dXFJ%v$QEtNOqEB; zsQsw7b8}Mt;}U|=el)8!F5`SuZFLp^lhjd_x_^ab*Wo*CyAeTy;7c3@92H$ zlNpT zrf<=-LzCG=5Eaf(8?qq}@QJ}#xo(Ht+kaWl`7k2TLj?`3p=3Ob$gGC~As%$bJ}+o| z*rLd87dt>+He1L{pj6DRcRf4bP?GUdJjfZdalAVN43X8YXv!7E!d2ijL@ z&7l57Aii4@6(T?;X_r#piNtC=NTVfkK6KUh4v-zUkf#Y?r~}ds`(+(w!`^mxw(Ho^ zm5tV!P%zO681QngWC{|NWM@VQN%|SHE$3TtjZbW}4i4J;zb?29CI*We-%^p_*2|9f zu?cR8*6F5SFwUssIuIM4WTJ0kL10oM2ss%`t86NyS~2hrQ3b@%H&;W$XI~9 z7t{^4K6xshmA=k*;tpyX(DYaLO*Pi<(?!O@R@4ds|B-&wt#s36Cj}Zugiwl82X}MF zQI(Z?+F{k#gmj_*6eSz%QbX#NAv^uc{h;zb$Ys$>*d_&KX1PB?u#%VJ%nhjy@0W>L zfWX?pG6-|R&*4A}$}+;*$=*$P^h0nk$oWQYMjnI6s;DkN;d`G+&D7f7dG5qz^igmO zfI_)Y#Aep$0l}KSwMn82J(~5%H~J1frN6A_2A2zO_40b&5Gio#Z-gE03T`Ws zt%s>EkKn#;sBvsrYlDYgbe^@dI#U3d8PPDRunj6|MMC3n)AQ+?d$ZrYP-YA4Q_P#! z%PP4gZ{B+)kgW^rc3suzxQgYUPGMr&B-_K7()grDkrdyn9qDY9265PO!-NpPi{gfwdgOsLQ9KVW<=8dNaAwSr(+5|Gum+lq=`W4Y6Fq9HIM}1H46Ot{Z-*H=L@E2{-I0vl|S_C%stH)tU)N6^4e(&K+luBijJ-} z4R&Fta^IJF7`%VA5dXy5Vk4=ib~Izf=vbJgU|N~yGM09py!_%L&CNI*P_3MR|2O~! zzwG}o(p1uCPjUZ$|Ne)iV*kfYf*N;N&t8%^8_~3PbA^V4)HgIpWa{hdlLQB&qlPA> zB#Q?xG?JpCp-RRU6|v~h5Rz}ba9(J*+8&@6<&8~XCe$`EGSd73E;p7MAg~gZUi)~v z-Cy+6stU5MQvCAe0pAvArFF_YuKOMOA0tVPZ$>aX)d1sc^P!o-pPi?Bl-qX?`3{wx z;lZa7SULe+imBS^L^LH1kWOaYIq}Q@ztdgN?K+v7Sv)@FbV-v3$;SHE^IT*MXm@Z{ zwp6sXE;x07Jf_29Kni}E?X%SAgPvKO6W|OT7&|0_iTW6uy18NEv$jWqzFVK(b^;z^ zn-maB{|P>_o9xXf#CE@h(wRom8PuV9+wX2b({7ZjpaLX)P2i1CGLGs5(Q^Hk6<;+t zFIi(cG@)Bi0 zuS$v5Zx8hDJZ4Bif_C@68!LQdY-eYOiG$_c*;rdt5AZ}(21`X< z<|_Z*FT=AmGP6(1%Ia5eXobD(WnaJkUJ4pX7;9QG{}U%E+{dWU}RI=i-tp?8k#G)MVE4rWm53fAiPO1TZ*~+2}y0X+F4Y?V!5x zfp=n9XH?gVX2R*js!PO~RHQ&C}2r@RL}xImNFXpU5G zFY|DUl4P)=q9m|#unJa4Gw_l6;|#ylp{DEf(lC z%A5~uaQ!va*GFrWEGGvoY1_iu+6g1uxgjoYZm*BP!u&i3XQ|-=_s8s&%hsI)&c)0; z5O#10iHc@^U6`EQJT&lCRCIF6)(bdZ>)-iai%CI2vG?x^dxDwyHk%y+N+)Y-3?nrr z_Z1ZtuOD#~S1#{eZ&n%$>&hHwDvUJ651OL8F+7Ig_I^s}U#c8cs_Z6rs=Kj5P#vU$-U-n6UfF$ zXH7@zs#ktu@S<#C5>>SLtLm*jqh0J}sot_>$yGR;T6Xw2;;)8leSL>1Q zYOqYFd=9it8q{%C9+A8P-0tf5`=mlnA=YQBDv#_84%^WF?aO}{KYTviRvDMR^ zmnlvwpqzCMChVHRTR5oOjIg^J6SHVG>`z8#WZe!WS4XiH{}JwnFs(GMxHXbrqF~LY z#S%Az2DznGxo|KlYOp8e?y~QU|GwG=PEqY}>*LK=!7sa8GowJ~@wi52M8*(6tFZQh}Z zPc*-4&aiIc@)Plx;P$EdlWaxMG<_c3JZYtCXpz&1<8`|CA|#1_ZO4%JM#g*bxoQ&u z&ND4F{nf#&Tob@FXS7U$kvE781FXSuPrCyD*f3x?Gd@Xwv6e0)-5GF?){ya}TI^L| zTr`r+CV3!`KC5U^JQvCCEhNHi8p2Pz7Q55emRYo@<8Dry9&PpLe2W;#w5w`tOr7d% zzmKizRU>%!=RCa(o=Iz&K=drv>d~@|pO(8;m352{+YNBTqzVoOyUwQ|6z%T4%LBzA zZ3h#$4JY)>0>tZ}4w6C=_yuVAOQFF@aGO@6Wy;r1u~ zT3AYoSSH=QPT|jigEVAyIU6OKMlc37fxh-@n;RJ>32EGFwrN6AD{C#X@n(G>5e7Et1)ospmM(~$*s8q!(w!9T)8Z4M#B z4|)~|20@#VHTO@K(ce~b0sc{j&MaPO=`O={mylQrar-Ep!%aw$FhVMdBlPvpEL01J zBo|kh&pi2e4H_7S&Cm~(esMM}QvtP!rwsuoz!qPQUmt`j7*&R2NcH9jue_&uoF#Z#0CH7AD z$+YTh%}%-J7>26oL?MsKpN83bjns=$w35N4ju>px4gc0X(J4lw(}dX=1M)41yZ{7H z;6E%vtA~fJAhbaQ$8Hr85~8ysdLd*Q@M76X8Y=r>iKjFko*CZ2@+L7@tdq;-K#;cM z$6`_(KNC|~et^ngz}3#P?}42U)=Z&&O@*DB_l*yyBF|i5S6!ixA_&1R9;>p5296f@ zfQ_6JCQ3$Q$*DI{RMB2A0ZdMP^FC96h0{<{Cx%X3j;TxBIH0#4hJ*K6@`M0U>nL8$ z*i2DUSo`v&Elbj9YnOk&bS*3nGUJGARF~Ezim*so4S1P2NYXE0@$V3bC0JJ~ zegt30wnc~fM?yk!#p|a12nU!N9n^|J(l^StUlq(Bc^rhGS#?nnNwm0zcH&=aYA6I& zsX@|94A7|{7;tU_Vd$!3Y;(-mIrjfmCeBkP?NAeJp`$+%+vS} z34Hl7*l90cQ=a`Go-iu|VBvAGH1l8p*gEVbCjE`kS$R4Uw|rtM|0j>|B>RSm3SZ_X zsCh!|&=zLnPKb{8g1kN{SS7JIq5hLMw79CJ1pyX5C2gUL9Sbdf3TvD}7kKCKy9B0w zbgGQH!J4Hg`dEfr^+Qu-lC(e4Wa<&s0C=@lXDSBbrvU>67`uk z{kTrs!qil7RCa4pO8IM#(bd|~PS4xqS2+``*;en&HKSQ+(5><+I!{P){9yQ5L+FCE z*f=%mfyaeXM}cav;pn6G$9Qt%hf|@|b9PHMGIgGIUk+y&JYC8r#{(3ZV>N+H{L?dR z_^W?c3Iq(OfQQXEqrgk~ci!+KN|%;{U7MWN`bo_1wth4{|}Aqg;hh6l%SE0%sknYPi& zy3%+-0KK`O5*3B~%R!7Vxw`GEv_gr0G$?&y?vBSNpjW25|qc{h{L|MsAEedGhK&MM3WU z|BclMNS3mVxXTZ|?EDC&`Lg2{hF)`g)lZn0IC{bX{KNm^cU7i2f`b`tNI|{wcXqQA zdHk!Q>& z&r}Q#8n%uB3qEF=fW>7B?W?b$bXFRmJpN-@ZE0dc$7E%v>~MK$ZgR4FmkJ(E^|1AI ze*Ol~FgU$eizNf?kKJ_2JGJ2J62`L&bWp46?W<%NdU3#(F6314i0HA{i;{iJ|ITN1 zvo@V2Em_#w+F$7k>itrFmrTXh&V!tuSpW7YF|I1~Wr9G5WGxMJkurK3n!bzsw~Wmp zbG-|AKYS4Ow|U|$;=-=1VeqfaT@F-80UM4gI>(aI>2K_nzb<(t#HguTAJ549)+Qzw ziKr-cK^sGhI=xbcZY@%uW@fq}a;wJOgrUCu*JsVu{AM|`xy)02gM~m61sFbFF2BuF zFM%471TxeRu5>Bhr1w2_akcD6!!9h2ut9Df_FQn#M#)_@WI`G_6sV|8ADJ%?kn&oj z@)KKE5%6)Q-8eE^PR!rM9Y?5|U>G+rbWz1@P@Kgltujr#*Yn-_yGFc0tiw;MWTtcz zUP?qXQzgkxdJE5?)vu}_5Wi_Sklcn{Wn&BcIaGKj@tuf|8L2RvV7t-`!?z+<&5>ZV zy}dMdH*pv9CKt7vMl3#?poNP90UtOtKry>WPm|BJiwJIhaFf+tu9y|@1##2#f&If& zeN#|}+ncg?iLVuSBD296CG|EJB^3VbB|C4#V(?B-l#{b58F~h3TiOyh9aJM(+$Wn( zvcuie!Nd_#`e#?C39`j8?s;kNXkT<%Xm^%X7i%T)QCnLo;M5VGn#cigmonAH8j|#X z$P23W`XVoS-O6OoTt4O`&*#Beb*mtl;o<0mKK;M);-W;A!EeQ0HHg)w3)EE9Zrr11;5JZCh!#*q)CEdFf~9)M6E%$=7oM%0Uc=TIm3d~r;!9%@&HQHq=$;WI< z7Q`B6*tfFPaA0+R&VnDsG`%TSx6HqI^m$;lc|SP5^$~M13uF6(-iIEZ&jY(J{aF$P zTQ@-;D=hhvW25gEVm84#MRp^KbvsyD>|}oa3*5guY3}Z4{Y^;UdbS|<(0qbxiAJ2~Ye0>~=S?itrs>(3VglW7Q{@ZZWTIC$$JsBG?(Ct36&22K zjBtH#T{jvF#Z;J7_~WZuQuEb`6@=g8_t;VC?K>S!snVm3x`|O~hhyIp%noGbw_}a1 zHO4n5M}U9thnf4W%A>c}e;H$Q!NG!B^xRGX7Wn&HYv?Z>Ey>%Y3An^Tl!vX^Hr$-T zOzHQ96c+wo8_1IU9J4H_wJ|Iap9($I#|P=J|2Zm}4usQbPRl!oB4JK%81fAGSk8$% zVH^{XXDxax`z;O9N@}ib6%fHZ`+@#qpgD?0COdLHZPfA= zP?R0m&9KL(Cx?SBnA^NC*sQ=6-Fwb9hg08LV;9YsFzL?o-dc&Ok8d34hp4kJA_|1D zL@iwg2j;(y!b&r#W}Kvn#D+UUVVgZvq!*`mgUd-advVtpzW8xg3`W+PTo#6c2%$h^ z)1qe@{0v9Phb8FR?!Uc3CeOr*djo$1QGb}3tr5m+!!68gXFFx??;h_T13EmB5fKqX z{WQRr-XXG@{KtR5z04!z%Kt%7w<0QA$ZiM(Ut(7Fe@IPm3hsV8IDbArDgKOe`{lDj zP-Xng@-;TM<3fY~Zq3f)JrE%G9h;QLotD|rO)T_bs`~rR8z3W=Kua3B2JAOKLISZ% z(B^PT#uxMW0$bh4%#sR22a+=zr}iwQiEG0)ye@EIYvDR@KPd=iN_L}J$$El7BeII? zX?t;TDxI>Xp0TzfS^d6G*($w9W8$@Ql0}{sR`v{X5z+HTEW~*OrC3_Y&Th+4!vD%t zM^NK0YyVb~KY~;27qTiC0JZj_SfrS6KHu<9tK=Xrhm~E*GkOlm!G)e@XCWvV_(vII zjO!i@pq)G$=@~lBM|-%*^@&1MwZCq zP~9v*D%&5XRamq8GHl#2FEB6P+$GPP^l5T_{)@3vPrDyi%i|b9Oodmn%IHK1 zvR{s*f-<0I_m{?&emHwuH>uwP(y!9DUwI(P^d`2m>w(c6@)rV=BRYel6Eqy&&0Bai zW-15^8Z!#3im?ZJwMiO->hbTM1-8Th`qPvdTUo{!v&L z^|L+uyPEn^%W`3-B$f=};lIjzxvl-*{1Iz%?{2YeMgx2$BJ}U>plwA{w<6{}*|%@FfWoy9Zkc}7t2 zn#-E<5Zfzy0hW6t2ls2=>`Omt47}|`Sqzj*a}iz+9_F4|70cHTIi6?dq<(O=CY5az z%6lt)A!r|~GI5;NPI@jIbvhGtSTwAGZWKe7Y@8WTz*l6!gwhp93?+VY{9DCF+A=aU zn2Z{#O|lcw(wmgTI{s`d1UK}lYJ=WYp3-ma6x35*>fgVf+JC<(9$!^Xe1H;hfOTCi zgrZ@BHZekfK>Z^QOZi~TI5Y{b6kf)ojm)WrlZ{PTLrqOt8LE*k(Y}y<<@s-UqbSqGW#$K?NG_j=tSNzg z{d=0WxS^H{N|hS~j}bQvf~8BvMZx!#&ILfuls}9DF0zVTc&jrb3kN^eZe+k)-o-YV z!$ch}+fvFUSM}@cVy5ePi#Fh@e!}feL0wZr&XFgYv?KL>maN>%|+z`^l{$e z+`!6AmOsCH`}TU`zg2yfpABFVYZ$_+KYd3E2-eaZ$`Dk4bgBqwdbHsDSn=i|SvPbv zO&A^bJDQBw(uFAD;er3!ToN6RbU+_W{2~p%{&Q52@_YW=z`#Ixl>V0%9kc;iQ@`A> zM~tSZe1s(WOglWb;mj;7(KnXBzVOTv0Xg}Hw|U&-6BB~ql-}{H)7e#He;RdV^|Fcz zk(s;6zh*wmQ?+9sxWgRyXzfRI=(T$xSm1?Ar5l1g4hjn4ZqRR-wclk}N={0l5hLS* z>FVpZxW-RyybfvTY)MoB(vTZbde|g9Iad>bv_O_H@MEf5Q4KL-0PxuyYSr3|GBRzx zWi#hC@cHccH%>7!6_mGsJpaJP#m>%*NtEzj{&l^-dkWB_CJOkLHphJX~ipmWI4K0mlvTR4GKA zP)!p4R=y(_NQ$%Oo(}-SM@_&4JbbjdMrQJ8dX~udD8%Dd>1MBQ?W_3ny0o;^VuKh4 zXeg`W;)N%XqH2FWej9{bmP_o2Ka_QC!r0l4qfRjjVKEYv8H~Jz5Y0dmzpJchfBotx z`pO5;l9FSF~TxhZI<#Wt(uv{tJdsxyWC zXlQgruP{y2=i7Y$-JwQm8yFfA0e8?DU`0LidTYk^0dhyW!3tr|aci*|7u9h(@HU9L zRKGE7)}C#n+OPqfdBikv#XUo8*bm1|@-^wlC4f?&csz6s!1zLuDd* z+cVtNZ^{u7stoz&d00v|_;U=nbGEG1l1*9I-5ZjI}Tz!S&#=iQphC^{A%e3{CX#T~``H3XPLHhY?co=8D z7sK~L=!ds&-&Q^08iD+q23)9+aCF8M-^XY|7tkR+ZdB@!Ss#i24Awn!i;ZI(+LOy; zLVe{K=SS!Hw&+~o512lp_Tx4Ahh0lQUehl$9FUz%OaAz=wzc(=x8r=CvS%gWHv5YD zN*pXo5r|Y{U;hSY?1$qGt{vi0#K?j)`F)9snsh;ef2&`uoM=bYJ%a%ZCDdCdQGfy zOqD>E!AF~f5}PAq;sl30^Xzv0TTWGJ`1X?{)hg!EP&}=x$nSw>6+dU+fYc@F;`?Ry zXuPDXloSvkPytYf{0ER7qC1>8UcC>Ir-(31MC@3f&I;fZF5iVf1 zu1gktE$TR{{@L{Jw`cdqg3|u?&z#%a{rWYtU8Wn~!Ll2lJRKIKg`mBpmZpewLn$$h zn3HItij?99PAJ@KKF@`KMd>pG3plLP(3-8qR4D86exR?sAzY=z@3NVdsfYp=`tuWT z6ip=8uKON}AO@r|dBvEBB%&nTaYBXBthzl49Sq3~jJ2C5`oQgztyQhRO&FlhEzHc+ zHSM&KS!BslD!blL;Y&9hd&0q?MZ`(Z{^5ZU+9pXsy}iGe4Te~*Nf^`VX%;cATR-u^ z#YE}9nj-N1xXzi`A+Ygdt5(XFfZQtElkw`@7?0V1P4*Z1uk_~T+)nysu6Gg_j+(G3 zHG|B8OEVfWBn~9+Dk=_#Q!1&Dhv?+wwMqk}NI}ce(0Z)9wuECS5F3b5w z#1VgrGzxWq+^!?O9%S#J|#=p&NVw$+~T0%hJw_@p~OUDIX4hlLR8Y(q`&#@_= z9WE{ZX~w??VcTOJD6{$TkGLRcr>Reu32O8A_XLD5Er0;ZauB8kcALb2n1)sBqtq)? z(`_CjN@4ry`-+^##rblh&=|Yj`J#&beJU#NwWX```C8rEtH{c&m-8t#poML92dxB4 zr7;94{3|~0?(XjE*St5n!b&}_?`a)8KSXMZdUkyu{Cwnpe|+9nc_ejp*)>r;q2V-d zq-H1%U>tOX(jdKWfVw3}ia+AN{K-4^`Sa4WL#J4)(Q#>QYUYjOY?JRrh8HbFETZzL z<8drCkwq&h6 zMTOx%{YR!6;K1)&YIk98smbXFDkAS$yUxbeVz3&UC~ghj5Oty;OGkNE<6cGFX@JFt zVwC3JHw8`(9^vxgpp`NLRM24VBuKIDSX^8@4jZ`CHIcC!Pul3$TAg;84blTH|GbV} zG}$)xb$XtV*pU-Owg$#{5HdvS@$~#CfPj;mfuY7JG-mi?nffHHeuZH(1#Z9jhBZ7x zEopMH4%})YB0^s=c6Rd78{AA{BB8ZPjTF%f@4180-xA5XJ~D9R*)}#-P zjA*vYq^8-VSG%8fKY)-(hX+Qf$W)*@_h{*}3DpEy&rQ8G%x_n)7@s5Me;y@+jbvxl zy)D)1)G{1KDT(ZVf2Eth89J%*0@uCK+}GFYqqj5n3NY>Y?wzy>p#9LPAX5#__isvj zmJp;-Ist!H{)2x21^CW_Bg@e6$>%Fx_qY0;e>p9&$)%FOk&cX%p&=#Z5M$fgAulK?k;d*E^AhOD22EKJ%~0EF=F{Z7A*cc(Q2fhimalKJ#Mo-%g)x z-t{`*(L_`=cm(PbCBCzWp~lAx2Z`>=_Imx&7kr$4U0-@ZHnA)MW%JOBWw6OeI#GuQ z+9@yotzzVycI@5%jttw`qEv{0$a93o_6;p#Lgl;j0iwi-bB8(qu&^fz^}elA^Ca8` zE_^0igTH%+MNCl>dJ@J3oCG@nz8E&8f(=Whpy>8QH;a($@7NTMK9Y%4dbp8d>l*-{ zh&27)06(cHt!n5KPltL4isGkQGghwFnZfTS@rw-;-?Zk0mEDi?-xF@#_b)M&f=PB2 z3epK+L)#)l$YH7FK$u&<-etLly5f=XJJ_>(s(SRe^>Wfnobu3UXpB7&cR{Rs$MM0D zDaRA}y=sX2IzC=rT5pBdwIoiGh7)#&ZKxP@(+&4tv3OJhU}<9Z@@V|tvwX1Nvqmm> zc_!jinGJHUA6hb65rQ_OULIFXarBW-rU5gw{`GHlmJy-y4g0hHujuvCv_xQLrh^+A zMGxhYbv|zeYu(LwJH8;F%dyt<EtbYsUY$B9z0Zbo-xt663# zEyAM1<>clL|K*P!1Oe#Y;LeBf#?b9pqmLKAu0KApL&^)?u`b<5$s~||$$@!LooZNKb^w*e`jHaq;O|>*|wAfnEQvfD$0#?^G&n7}5%$CMF zuo6w2TZ2g-JlDBNy3(x&MUBm+edGrl=zU&1LN9BmG|sidfe#Xy8O*ino6j?H%=_?A zi!waM5C2eG3=oRod$ZzrrDSKI860_EPF+L~KZ+3FB6$Nzwptbw_lw`*SqQ)k?Rx~L z60nANO8TqD|h`i9YfuGwc4wt7kO=t$==<6{PfpEhM-+&_7=BcC|-C@hLmRVpKtOCJDna(o@;3R^VbW^$_%!M<_=O+8n+q4-viBceF+i3h7$oyW-`MCd!$u z{8`{pG4r9O{Kjc(p=D~im-8i;@>!u2M$@t!*(>NT0Q%oXNd`7DAi!?&YIl7?!QFk* z*0hcXjmuL0_<)KIvaC;yF^8#63wkxC6234y_w5m|UEWWvT2Sh|MTO}BrltvLX?9NU zy}?1jHAlxo*CwwEH!Jir5;hI$v!4^SyI{9WZp2N87%W{nI(YT7WMqMf`Rnb~Rl?2{ zw%O5QF*-$7TbH2NM6=~2K(9e_6Sy5gN zE~zWo4SjbPLG3oItA~L|i+|Ri$61MokG@~brX?vU`LUg>HU zeQvJlGGSs|929Eysih-U<6i(b5hxz+2=Gs6Xr5X2yE|DQTT#p1+TR8)4(2K=E1MNN z!*4%MQp(!GvV$d^*GssS1I2c;z*CtIyjCK&G@=9P+v2%}z|rNqVDgcmr0k-{QpW^g`P(#OkB(IdC9#(3+;AqVlg^ zkp$;T^)31mV=a}Hi__Eh(+kIHDwE6TY7j`Df}$eg=yuhzqIhtSLp}k|KV=@Xmg2%Y zZST_^wXn16{^63ul8bvgKHc%*)Uk{VtakC1`(J(F0BpvnTl)oOlnpCW0kB!u!JzK5_7(z`1nix%B|;TjSGlJ>sC6#TRz13$B`o7FzLFD z_MHDc1%olwRHh?ma5~XTCQJDkNz@zAIXOv7t;}6V3m65>gL>Zq|uMmJd;%enl_6; z2^bbB6Gm(QR_5IM)5cn1omlHN!qhDR{%>5K2f3Mc7OBF#6gl*eh~?udWLEQI#XlnX z<=*vpoESK;)@98?b*26q6*6eAr4(y&qY62X@wI{c9*_;L>)1GslPQZ23tl;he;|8k zgz}Nm#zfe?n|W9}3ntdhtpo&s-5WQd^UXg#9JNAl3rEkEHWIiMxaaFkf?`7d``}HK`r_Qa^E$`_$m69D8cr{BE z0C%Cz`|im>{HzYek-HJb1x1<{2j|174|?gB6)W<}`Z_OPf1wS3523}0vD7e6@27j% zlx<$wzkZ-F#?MJZQx$~P)I5a6P==OfI)P}8HF5so4}ynbgR~z1x>Ib}(u-7` zv3?--{lbq9baEb(Z3a>_xLEtm!ScQ@*Aa$PO<5TRnC6H*C=`Xau%<#eeRBO@2{@O z@Ib}Q&Wstd4aqGM>NL2_Kbq^F}3si9=2Nu4Z7$ZquZq!2?! z9pbTvcSMTU5Stw)w*`5^yif#Z3Y-=a!qSx|Zpd^DI3>X4x9?vl$&aspgU*HaMb(gt zqi8H4xz`t?vS5HX7N51`Iaw@a58%cZe@>E#9yj8=4Qk~EYO#F1yo{F)j|BD7@#xBXBsGFdiNT}{NY^OR!;%34kK`iIdD$G?Cj|&9JrVO?7VQ7;neCF z?XVGohzy{^g@gMhB;uPMdEhFLokl45k66>Ng~@Z$Ppa<8ckJYSn4~v7BP7~-OA3_+p*uo zZ;wSx2l^Q_3y4{G;1LPrfJs!fD*ZcO>H%FD`I+H^%;c2!&2vXyC2M7hkLn$li?6iV zvwbYIG{!d~-4etDK8dF(vK8E^?DJ)wH=QKsv;9$;z|7gofxGpN!_uH;@n1O75})(% z^S9=LVnPK13H@=jvs?&n-F#!9d6D=yA_CGX)=Ig0+<7^+B;^Ybb^0R2d$baZkmbAC zg5J_ZNr{P^&!1z9`P4rb-=buUBIi|CR#s6~lg;y9!Q$lP{EvZN>Xe|^{ysZXNsn9Z zWiv3JFVMuG!%cGS+h7u5uzqc1^dt$~)-B{#LGU^FX>y0}0>d3k0EU-P6{|4-=L00z9LbqSp&DoC`+VlaiP{Re8OibnpSL!)1eM}7v6a$yvv6w`&W8z$ zZ{Oy=0j>KCv^29g==0tI^i#!bhu3)*%5IqBU9 zPf(;+PRO>B`CX&WnLWjeQrG0pB%_}J_Vf9u zwsHl3D$m1*l5}CCU-%QoOg$LSAlvz#YQD`D`A_?g1`=Z>}ZU8+PlsN6|+^TMLlkR37ecP_gr8UyWt*woS0{%EiR7YnW#S#Iy#M{VKOLS`?KT0 zXQ24!Mp0F3%@WRkeUgG|IqoMtrQkLnUzsJ2vQ%GElIq`+v++&VuRoruH!}kRO=Nc| zos|_Hjg~ok$A}sjpmy8;)W3B};!aq>xtpvW8GE-KyeB7HSyLpfL@dN_Nq z&h^hYa08h5F*i48$1RB|oJh&r5T_E#c$0pqDH$ofcRZFJ+{Bg!iiWrtA`MN>q|1Z{qPNfhsMysW^nBlaVvy0Oz=(k~P3+W_hFPKqFCZA=46GFt?{8)|)z{pMm-F%9P(Ao-v%?#&kNFuCiCblJ zeUj$Qh4J8!XL8v(T)z5Mf>}xL@;e9e4z^&Wka>yx&t@6&>0Br8)m|H`6ccG#@9{IJ zL-wNr6d$GEz6$`I=ChZ}`k{FwA_XP@JDq!7-3c3Z!9=GApU)o^)iHJt)f*I~!{Cs5 zh-v{MJkWgT7P#T z@z}+2$UrGZ<~cok1uZHjL8Vpa-@gK>91Wp?G!ZkrVnSBZH!L}kkZg_N7D0Nz4JBfD zr}tNZRg2%vo8LODCIcshNwF%B%`H{wP3qyOj5uf+Ke50-@O4h(6VFET!Fj)cUD`#0b!=_bEgt;<##M|nl$ew$>|U)#E#6(t{99z_T*U;3| z^!4lXj1;Gq@o{Z1FQ7j(vXr#NXua34dx_Xf%Sb`2N6&?@v9Rjy>H(skPEH=nZdeN} zB67sNJFmS?*K7B{6wsg7+J@BB~=7-uAfOtmiTRv{a0j&%gm`ZidYOcf(IE#W7rxkR6?yi4})~9c1w&X2m+Dfa@9u51Nj!C)2dZo9LQ* zhH?m?@b(v9N*HAlX&@0vJgOUe6xoo?{W6`ZV@$$xI{e($m85=y{H2x?#;x4+l{RUaNr;LLUCR2$$Gw*UI8bc%7SdN? zpVTth840$;gr+>%3`5?sqE{xBk+d$T=JnxyC!8sg0hZ&hn{yc~PoBJB0Z0mx*oCC5 zrgz$ib1I~7gX7)7AA!R!r zK0i(}UqCLUf#d8>#hHUTm1il7`f13r26Cd=9;x!Jc|w8Bb#M&`m_YE#7v7+zQT+<+ zT*CJY@46m65p8_a@51-y&*$JC|JGKYkQ(F0U%z=#G>_ZD?)&t{fa@EY4^qM&l&;OrD+XEy5m*zoTI=Mg zT@`D`k8Ig}R!hu%-f5oPPx^i8!e+%^-(-$Lz3AB}XSk6tZ)9A&VEciF);pXY`w(aT zT}~Du_n>XQLizAii1v%ZNB%tBLsRO9U^gZJ39VtT#)Xezf-|hl;SP~tnsAGOkR6r= zBqxK&X@MUa8%&p9AsxU#Ew%LxJgGoBR@c)0?&k%5mk>GGi zJc`bnn=g!-(sJ^XmK%&Nd{=+IPLygXSMpo+$I#ziPghA$bAg$gi830uQ?h#w^F7jF z{WWORa9!8MLoDYnfA?)}K6<^smOyMDH7qSVJE(NHYU$|ivV+^OiAMB(_~0P>mVx%q z;V8ZLQh=Fb<;6~6S<6*b!tp=9Lq_+l!%xrURuIrka6zI!hhN|`hU^$($us`io)4JJo1Y)vG_(dNP(O{fXOorHdo?P&^_zT@b)e)clgTi+3a~7B2!oRyYAf{ z!v_N$=5UJ`REW8aNNIDVHV$7QJs;d(7eZE2U0B359Hk$A#J@yJiJx2BZVoNigFx+n zu~7gGw3f%Lq~EXPuLGsfm=!cSXUAQwR+lA(04SiB#M zWLRpkAD*;d0f+S49~0WtO^t)$9$y54sA8u2!+gO=%cgC?>kf$yOEGf>AD!kkNQzLgWC8F9aXQF3K%l46(k@vqpg`wy zxdT)y;|utpj&-sqom}kfi6f&_8Q>u3Ke&I70m6Nde_qYzvC$tr%=UqHEjk0ui;dN8 zIZ6j~EUCH~S7@vH#ZX1B9W2vo{Icf~uqISNLkk)j9!_ZZHltxp5866lYLabe|HJnw z0Qm8eR8d}@m6cUS(tNcr4o^|g8J_Ay{tXUu<%h4iUgCg2(`npHt=ZiLJ1%;;&C1*9 zFtqn+$hFIfWnkbM{(eV7xD^=HlknD%m|_yTs|Br}^qR7ka}~Pl@_!Z%L1=LXuap$? z^F0?99)a@CC~=r({M_6(yHir~d%!`@N)1*w*&rmzrjh++{Fy3Z!R2IwVn;%bfMF0e zDe^!c6*Fq7L?y~VYib+h%4WabKjd4@NXSS_qxYnrFnUez$bLE$xnMF zjvA20D}{;;T#-3AIHXoCHvI3M2Q%*A6>HOJEf^T|k4J_^D;NyJrEV9&79zR^3{1@J zZ&+O1ZifC>2$-Q}`E6~sa4)~pcE208(jq-Qz5YHndQIi(DrClwyStu{qRD~+;?C*G zNn(vJtzpQc&Wf31Wz`wyC!+B=N#0-^1<-SIa2U0_+PS)Z4JouMtzwpc&*N{9pAM!j z!RWExr|W5_dLC|0ULFu4OfYuk4R|%X-$fLCLeEEi#rV}e1LV_$Yu^FFvCynO6Hw+*p4a7|U zFjkKMS#t|mGqRv}o+s5Vb(>=nP`iDl^3+UKbr=l4etx_rnBAJ_3*P&G{mqsq(`)WX z0=U2P+P{%3{lABe?7p)vMIouGtYng4`#m=$aq{w=n~L~nnx4D9K$zYCxU~5KYzDnIYqcvHn;6I1lK= z#BWHFwAZ?Pz1CzN|F5n{@3D0BW-!9#aV#Im$jN6O4jItWMkG<4(msi!VpE(vps=Gq Vm(pnqxkLd!5CskSYFYE3{|7tDA+i7f delta 25439 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 Date: Sat, 12 Sep 2026 11:05:25 +0100 Subject: [PATCH 58/85] refactor(templates): put both of Terracotta Rail's rails on real timelines Two rails in one sheet, migrated as two independent timelines: the roles on a grey hairline and the degrees on a terracotta one. Two timelines are two rail owners and never merge, so each keeps its own stroke and its own extent. Both were built the same way and measured the same way. An accent on every entry but the last, each entry padded at the foot, so the borders abutted into a line that ended where the last entry began - the top edge of the last ring rather than the anchor the design means. The javadoc said the line stops at the last marker; MARKER_TO_MARKER says it in the API. Experience: the rail ran 384.197 to 621.417 and now runs 381.097 to 618.317. Education: 74.391 to 105.476, now 71.291 to 102.376. Each end moves down 3.1, half a ring, and each rail keeps its length - the same line drawn between anchors instead of between box edges. Markers unmoved: x=202.245 at y 615.217, 490.872 and 377.997 for the roles, 99.276 and 68.191 for the degrees. Education needed a layer of its own, and that was verified rather than assumed. EducationBandStack wraps the band row, one level above the cell the entries live in, so it insulates nothing placed inside that cell: with the layer removed the compiler refuses the timeline row at EducationBandStack/EducationBandLayer/EducationBand/EducationEntries/ EducationRailHolder, naming the nested horizontal row. The layer restored, it renders. 154 = 147 identical + 7 removed; 205 = 147 identical + 58 added (11 named, 47 unnamed timeline wrappers). Every content node keeps its coordinate; the two host sections widen by 0.01 from the half-ring margin arithmetic. One page, nothing spans one. Against the current baseline the page moves 3 pixels, all in the rail column at x=205 and all at rail ends - pdf y 384, 105 and 74 - at a maximum channel delta of 2; the experience rail top shows nothing because the retired segment is under its ring. Measured with budget and tolerance at zero, then restored, so the baseline stands as recorded. railedLine loses the marker it positioned and becomes entryLine, which is what it does now: wrap a table in the layer a row cell cannot hold it without. The contact-axis smoke test grew a null guard - a timeline contributes nodes the engine names nothing, and the filter called startsWith on that name. --- .../cv/presets/TerracottaRailSmokeTest.java | 5 +- .../cv-v2/terracotta_rail_layout.json | 3448 ++++++++++++----- .../cv/presets/TerracottaRailMain.java | 146 +- .../cv/presets/TerracottaRailWidgets.java | 36 +- 4 files changed, 2603 insertions(+), 1032 deletions(-) diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java index 86332096f..963a3be40 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java @@ -164,7 +164,10 @@ void everyContactRowStartsOnTheSameAxis() throws Exception { .create()) { TerracottaRail.create().compose(session, TerracottaRailFixtures.canonicalCv()); List heights = session.layoutSnapshot().nodes().stream() - .filter(node -> node.entityName().startsWith("Contact_")) + // A timeline contributes nodes of its own, and an engine-generated node + // carries no entity name. + .filter(node -> node.entityName() != null + && node.entityName().startsWith("Contact_")) .map(node -> node.placementHeight()) .toList(); assertThat(heights).hasSize(4); diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json index fef4c7d24..7f8208ff9 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json @@ -2395,11 +2395,11 @@ "computedY" : 303.313, "placementX" : 205.345, "placementY" : 303.313, - "placementWidth" : 365.921, + "placementWidth" : 365.931, "placementHeight" : 337.631, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.921, + "contentWidth" : 365.931, "contentHeight" : 337.631, "margin" : { "top" : 0.0, @@ -2444,23 +2444,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]", - "entityName" : "ExperienceEntry_0", - "entityKind" : "SectionNode", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]", + "entityName" : "ExperienceRail", + "entityKind" : "LayerStackNode", "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]", "childIndex" : 1, "depth" : 5, "layer" : 5, "computedX" : 205.345, - "computedY" : 497.072, + "computedY" : 303.313, "placementX" : 205.345, - "placementY" : 497.072, - "placementWidth" : 365.921, - "placementHeight" : 124.345, + "placementY" : 303.313, + "placementWidth" : 365.931, + "placementHeight" : 318.104, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.921, - "contentHeight" : 124.345, + "contentWidth" : 365.931, + "contentHeight" : 318.104, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2470,32 +2470,32 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 9.0, - "left" : 13.0 + "bottom" : 0.0, + "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/RoleLine_0[0]", - "entityName" : "RoleLine_0", - "entityKind" : "LayerStackNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]", + "entityName" : "ExperienceRailHolder", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]", "childIndex" : 0, "depth" : 6, "layer" : 6, - "computedX" : 218.345, - "computedY" : 609.652, - "placementX" : 218.345, - "placementY" : 609.652, - "placementWidth" : 352.921, - "placementHeight" : 11.765, + "computedX" : 202.245, + "computedY" : 303.313, + "placementX" : 202.245, + "placementY" : 303.313, + "placementWidth" : 369.031, + "placementHeight" : 318.104, "startPage" : 0, "endPage" : 0, - "contentWidth" : 352.921, - "contentHeight" : 11.765, + "contentWidth" : 369.031, + "contentHeight" : 318.104, "margin" : { "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 0.0 + "left" : -3.1 }, "padding" : { "top" : 0.0, @@ -2504,23 +2504,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/RoleLine_0[0]/RoleTable_0[0]", - "entityName" : "RoleTable_0", - "entityKind" : "TableNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/RoleLine_0[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]", "childIndex" : 0, "depth" : 7, "layer" : 7, - "computedX" : 218.345, - "computedY" : 609.652, - "placementX" : 218.345, - "placementY" : 609.652, - "placementWidth" : 352.921, - "placementHeight" : 11.765, + "computedX" : 202.245, + "computedY" : 303.313, + "placementX" : 202.245, + "placementY" : 303.313, + "placementWidth" : 369.031, + "placementHeight" : 318.104, "startPage" : 0, "endPage" : 0, - "contentWidth" : 352.921, - "contentHeight" : 11.765, + "contentWidth" : 369.031, + "contentHeight" : 318.104, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2534,23 +2534,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/RoleLine_0[0]/RoleMarker_0[1]", - "entityName" : "RoleMarker_0", - "entityKind" : "EllipseNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/RoleLine_0[0]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, "computedX" : 202.245, - "computedY" : 615.217, + "computedY" : 497.072, "placementX" : 202.245, - "placementY" : 615.217, - "placementWidth" : 6.2, - "placementHeight" : 6.2, + "placementY" : 497.072, + "placementWidth" : 369.031, + "placementHeight" : 124.345, "startPage" : 0, "endPage" : 0, - "contentWidth" : 6.2, - "contentHeight" : 6.2, + "contentWidth" : 369.031, + "contentHeight" : 124.345, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2564,53 +2564,53 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/Employer_0[1]", - "entityName" : "Employer_0", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]", - "childIndex" : 1, - "depth" : 6, - "layer" : 6, - "computedX" : 218.345, - "computedY" : 599.332, - "placementX" : 218.345, - "placementY" : 599.332, - "placementWidth" : 100.783, - "placementHeight" : 10.32, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 202.245, + "computedY" : 497.072, + "placementX" : 202.245, + "placementY" : 497.072, + "placementWidth" : 369.031, + "placementHeight" : 124.345, "startPage" : 0, "endPage" : 0, - "contentWidth" : 100.783, - "contentHeight" : 10.32, + "contentWidth" : 369.031, + "contentHeight" : 124.345, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 2.5, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 0.0, + "bottom" : 9.0, "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/Highlights_0[2]", - "entityName" : "Highlights_0", - "entityKind" : "ListNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]", - "childIndex" : 2, - "depth" : 6, - "layer" : 6, - "computedX" : 218.345, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 202.245, "computedY" : 506.072, - "placementX" : 218.345, + "placementX" : 202.245, "placementY" : 506.072, - "placementWidth" : 348.171, - "placementHeight" : 90.76, + "placementWidth" : 369.031, + "placementHeight" : 115.345, "startPage" : 0, "endPage" : 0, - "contentWidth" : 348.171, - "contentHeight" : 90.76, + "contentWidth" : 369.031, + "contentHeight" : 115.345, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2624,23 +2624,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]", - "entityName" : "ExperienceEntry_1", - "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]", - "childIndex" : 2, - "depth" : 5, - "layer" : 5, - "computedX" : 205.345, - "computedY" : 384.197, - "placementX" : 205.345, - "placementY" : 384.197, - "placementWidth" : 365.921, - "placementHeight" : 112.875, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 202.245, + "computedY" : 506.072, + "placementX" : 202.245, + "placementY" : 506.072, + "placementWidth" : 369.031, + "placementHeight" : 115.345, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.921, - "contentHeight" : 112.875, + "contentWidth" : 369.031, + "contentHeight" : 115.345, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2650,27 +2650,27 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 9.0, - "left" : 13.0 + "bottom" : 0.0, + "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/RoleLine_1[0]", - "entityName" : "RoleLine_1", - "entityKind" : "LayerStackNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, - "computedX" : 218.345, - "computedY" : 485.307, - "placementX" : 218.345, - "placementY" : 485.307, - "placementWidth" : 352.921, - "placementHeight" : 11.765, + "depth" : 12, + "layer" : 12, + "computedX" : 202.245, + "computedY" : 615.217, + "placementX" : 202.245, + "placementY" : 615.217, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 352.921, - "contentHeight" : 11.765, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2684,23 +2684,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/RoleLine_1[0]/RoleTable_1[0]", - "entityName" : "RoleTable_1", - "entityKind" : "TableNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/RoleLine_1[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 218.345, - "computedY" : 485.307, - "placementX" : 218.345, - "placementY" : 485.307, - "placementWidth" : 352.921, - "placementHeight" : 11.765, + "depth" : 13, + "layer" : 13, + "computedX" : 202.245, + "computedY" : 615.217, + "placementX" : 202.245, + "placementY" : 615.217, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 352.921, - "contentHeight" : 11.765, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2714,17 +2714,17 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/RoleLine_1[0]/RoleMarker_1[1]", - "entityName" : "RoleMarker_1", - "entityKind" : "EllipseNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/RoleLine_1[0]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, "computedX" : 202.245, - "computedY" : 490.872, + "computedY" : 615.217, "placementX" : 202.245, - "placementY" : 490.872, + "placementY" : 615.217, "placementWidth" : 6.2, "placementHeight" : 6.2, "startPage" : 0, @@ -2744,27 +2744,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/Employer_1[1]", - "entityName" : "Employer_1", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]", - "childIndex" : 1, - "depth" : 6, - "layer" : 6, - "computedX" : 218.345, - "computedY" : 474.987, - "placementX" : 218.345, - "placementY" : 474.987, - "placementWidth" : 111.654, - "placementHeight" : 10.32, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 202.245, + "computedY" : 615.217, + "placementX" : 202.245, + "placementY" : 615.217, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 111.654, - "contentHeight" : 10.32, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 2.5, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -2774,23 +2774,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/Highlights_1[2]", - "entityName" : "Highlights_1", - "entityKind" : "ListNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]", - "childIndex" : 2, - "depth" : 6, - "layer" : 6, - "computedX" : 218.345, - "computedY" : 393.197, - "placementX" : 218.345, - "placementY" : 393.197, - "placementWidth" : 349.599, - "placementHeight" : 79.29, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 202.245, + "computedY" : 615.217, + "placementX" : 202.245, + "placementY" : 615.217, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 349.599, - "contentHeight" : 79.29, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2804,23 +2804,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]", - "entityName" : "ExperienceEntry_2", - "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]", - "childIndex" : 3, - "depth" : 5, - "layer" : 5, - "computedX" : 205.345, - "computedY" : 303.313, - "placementX" : 205.345, - "placementY" : 303.313, - "placementWidth" : 365.921, - "placementHeight" : 80.885, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/RoleMarker_0[0]", + "entityName" : "RoleMarker_0", + "entityKind" : "EllipseNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 202.245, + "computedY" : 615.217, + "placementX" : 202.245, + "placementY" : 615.217, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.921, - "contentHeight" : 80.885, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2831,26 +2831,26 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 13.0 + "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/RoleLine_2[0]", - "entityName" : "RoleLine_2", - "entityKind" : "LayerStackNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]", - "childIndex" : 0, - "depth" : 6, - "layer" : 6, - "computedX" : 218.345, - "computedY" : 372.433, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 218.345, + "computedY" : 506.072, "placementX" : 218.345, - "placementY" : 372.433, + "placementY" : 506.072, "placementWidth" : 352.921, - "placementHeight" : 11.765, + "placementHeight" : 115.345, "startPage" : 0, "endPage" : 0, "contentWidth" : 352.921, - "contentHeight" : 11.765, + "contentHeight" : 115.345, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2864,17 +2864,17 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/RoleLine_2[0]/RoleTable_2[0]", - "entityName" : "RoleTable_2", - "entityKind" : "TableNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/RoleLine_2[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_0[0]", + "entityName" : "RoleLine_0", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, + "depth" : 13, + "layer" : 13, "computedX" : 218.345, - "computedY" : 372.433, + "computedY" : 609.652, "placementX" : 218.345, - "placementY" : 372.433, + "placementY" : 609.652, "placementWidth" : 352.921, "placementHeight" : 11.765, "startPage" : 0, @@ -2894,23 +2894,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/RoleLine_2[0]/RoleMarker_2[1]", - "entityName" : "RoleMarker_2", - "entityKind" : "EllipseNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/RoleLine_2[0]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, - "computedX" : 202.245, - "computedY" : 377.997, - "placementX" : 202.245, - "placementY" : 377.997, - "placementWidth" : 6.2, - "placementHeight" : 6.2, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_0[0]/RoleTable_0[0]", + "entityName" : "RoleTable_0", + "entityKind" : "TableNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_0[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 218.345, + "computedY" : 609.652, + "placementX" : 218.345, + "placementY" : 609.652, + "placementWidth" : 352.921, + "placementHeight" : 11.765, "startPage" : 0, "endPage" : 0, - "contentWidth" : 6.2, - "contentHeight" : 6.2, + "contentWidth" : 352.921, + "contentHeight" : 11.765, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2924,22 +2924,22 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/Employer_2[1]", - "entityName" : "Employer_2", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_0[1]", + "entityName" : "Employer_0", "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 1, - "depth" : 6, - "layer" : 6, + "depth" : 13, + "layer" : 13, "computedX" : 218.345, - "computedY" : 362.113, + "computedY" : 599.332, "placementX" : 218.345, - "placementY" : 362.113, - "placementWidth" : 123.771, + "placementY" : 599.332, + "placementWidth" : 100.783, "placementHeight" : 10.32, "startPage" : 0, "endPage" : 0, - "contentWidth" : 123.771, + "contentWidth" : 100.783, "contentHeight" : 10.32, "margin" : { "top" : 0.0, @@ -2954,23 +2954,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/Highlights_2[2]", - "entityName" : "Highlights_2", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_0[2]", + "entityName" : "Highlights_0", "entityKind" : "ListNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 2, - "depth" : 6, - "layer" : 6, + "depth" : 13, + "layer" : 13, "computedX" : 218.345, - "computedY" : 303.313, + "computedY" : 506.072, "placementX" : 218.345, - "placementY" : 303.313, - "placementWidth" : 329.019, - "placementHeight" : 56.3, + "placementY" : 506.072, + "placementWidth" : 348.171, + "placementHeight" : 90.76, "startPage" : 0, "endPage" : 0, - "contentWidth" : 329.019, - "contentHeight" : 56.3, + "contentWidth" : 348.171, + "contentHeight" : 90.76, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2984,27 +2984,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Divider_AfterExperience[5]", - "entityName" : "Divider_AfterExperience", - "entityKind" : "LineNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", - "childIndex" : 5, - "depth" : 4, - "layer" : 4, - "computedX" : 205.345, - "computedY" : 296.313, - "placementX" : 205.345, - "placementY" : 296.313, - "placementWidth" : 365.931, - "placementHeight" : 1.0, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 202.245, + "computedY" : 384.197, + "placementX" : 202.245, + "placementY" : 384.197, + "placementWidth" : 369.031, + "placementHeight" : 112.875, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 1.0, + "contentWidth" : 369.031, + "contentHeight" : 112.875, "margin" : { - "top" : 6.0, + "top" : 0.0, "right" : 0.0, - "bottom" : 6.5, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -3014,23 +3014,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", - "entityName" : "SelectedProjects", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", - "childIndex" : 6, - "depth" : 4, - "layer" : 4, - "computedX" : 205.345, - "computedY" : 139.902, - "placementX" : 205.345, - "placementY" : 139.902, - "placementWidth" : 365.931, - "placementHeight" : 149.91, + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 202.245, + "computedY" : 384.197, + "placementX" : 202.245, + "placementY" : 384.197, + "placementWidth" : 369.031, + "placementHeight" : 112.875, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 149.91, + "contentWidth" : 369.031, + "contentHeight" : 112.875, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3040,31 +3040,31 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 0.0, + "bottom" : 9.0, "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Heading_SELECTEDPROJECTS[0]", - "entityName" : "Heading_SELECTEDPROJECTS", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", "childIndex" : 0, - "depth" : 5, - "layer" : 5, - "computedX" : 205.345, - "computedY" : 279.286, - "placementX" : 205.345, - "placementY" : 279.286, - "placementWidth" : 104.79, - "placementHeight" : 10.526, + "depth" : 10, + "layer" : 10, + "computedX" : 202.245, + "computedY" : 393.197, + "placementX" : 202.245, + "placementY" : 393.197, + "placementWidth" : 369.031, + "placementHeight" : 103.875, "startPage" : 0, "endPage" : 0, - "contentWidth" : 104.79, - "contentHeight" : 10.526, + "contentWidth" : 369.031, + "contentHeight" : 103.875, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 3.5, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -3074,27 +3074,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/AccentLine_SELECTEDPROJECTS[1]", - "entityName" : "AccentLine_SELECTEDPROJECTS", - "entityKind" : "LineNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", - "childIndex" : 1, - "depth" : 5, - "layer" : 5, - "computedX" : 205.345, - "computedY" : 274.386, - "placementX" : 205.345, - "placementY" : 274.386, - "placementWidth" : 22.0, - "placementHeight" : 1.4, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 202.245, + "computedY" : 393.197, + "placementX" : 202.245, + "placementY" : 393.197, + "placementWidth" : 369.031, + "placementHeight" : 103.875, "startPage" : 0, "endPage" : 0, - "contentWidth" : 22.0, - "contentHeight" : 1.4, + "contentWidth" : 369.031, + "contentHeight" : 103.875, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 5.5, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -3104,27 +3104,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]", - "entityName" : "Project_0Stack", - "entityKind" : "LayerStackNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", - "childIndex" : 2, - "depth" : 5, - "layer" : 5, - "computedX" : 205.345, - "computedY" : 234.894, - "placementX" : 205.345, - "placementY" : 234.894, - "placementWidth" : 365.931, - "placementHeight" : 33.992, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 202.245, + "computedY" : 490.872, + "placementX" : 202.245, + "placementY" : 490.872, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 33.992, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 2.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -3134,23 +3134,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]", - "entityName" : "Project_0Layer", - "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, - "computedX" : 205.345, - "computedY" : 234.894, - "placementX" : 205.345, - "placementY" : 234.894, - "placementWidth" : 365.931, - "placementHeight" : 33.992, + "depth" : 13, + "layer" : 13, + "computedX" : 202.245, + "computedY" : 490.872, + "placementX" : 202.245, + "placementY" : 490.872, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 33.992, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3164,23 +3164,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", - "entityName" : "Project_0", - "entityKind" : "RowNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 205.345, - "computedY" : 234.894, - "placementX" : 205.345, - "placementY" : 234.894, - "placementWidth" : 365.931, - "placementHeight" : 33.992, + "depth" : 14, + "layer" : 14, + "computedX" : 202.245, + "computedY" : 490.872, + "placementX" : 202.245, + "placementY" : 490.872, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 33.992, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3194,21 +3194,1581 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjIcon_0[0]", - "entityName" : "ProjIcon_0", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, - "computedX" : 205.345, - "computedY" : 246.886, - "placementX" : 205.345, - "placementY" : 246.886, - "placementWidth" : 22.0, - "placementHeight" : 22.0, - "startPage" : 0, - "endPage" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 202.245, + "computedY" : 490.872, + "placementX" : 202.245, + "placementY" : 490.872, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 202.245, + "computedY" : 490.872, + "placementX" : 202.245, + "placementY" : 490.872, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/RoleMarker_1[0]", + "entityName" : "RoleMarker_1", + "entityKind" : "EllipseNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 202.245, + "computedY" : 490.872, + "placementX" : 202.245, + "placementY" : 490.872, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 218.345, + "computedY" : 393.197, + "placementX" : 218.345, + "placementY" : 393.197, + "placementWidth" : 352.921, + "placementHeight" : 103.875, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 103.875, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_1[0]", + "entityName" : "RoleLine_1", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 218.345, + "computedY" : 485.307, + "placementX" : 218.345, + "placementY" : 485.307, + "placementWidth" : 352.921, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_1[0]/RoleTable_1[0]", + "entityName" : "RoleTable_1", + "entityKind" : "TableNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_1[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 218.345, + "computedY" : 485.307, + "placementX" : 218.345, + "placementY" : 485.307, + "placementWidth" : 352.921, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_1[1]", + "entityName" : "Employer_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 218.345, + "computedY" : 474.987, + "placementX" : 218.345, + "placementY" : 474.987, + "placementWidth" : 111.654, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.654, + "contentHeight" : 10.32, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_1[2]", + "entityName" : "Highlights_1", + "entityKind" : "ListNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 218.345, + "computedY" : 393.197, + "placementX" : 218.345, + "placementY" : 393.197, + "placementWidth" : 349.599, + "placementHeight" : 79.29, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.599, + "contentHeight" : 79.29, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 202.245, + "computedY" : 303.313, + "placementX" : 202.245, + "placementY" : 303.313, + "placementWidth" : 369.031, + "placementHeight" : 80.885, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 369.031, + "contentHeight" : 80.885, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 202.245, + "computedY" : 303.313, + "placementX" : 202.245, + "placementY" : 303.313, + "placementWidth" : 369.031, + "placementHeight" : 80.885, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 369.031, + "contentHeight" : 80.885, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 202.245, + "computedY" : 303.313, + "placementX" : 202.245, + "placementY" : 303.313, + "placementWidth" : 369.031, + "placementHeight" : 80.885, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 369.031, + "contentHeight" : 80.885, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 202.245, + "computedY" : 303.313, + "placementX" : 202.245, + "placementY" : 303.313, + "placementWidth" : 369.031, + "placementHeight" : 80.885, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 369.031, + "contentHeight" : 80.885, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 202.245, + "computedY" : 377.997, + "placementX" : 202.245, + "placementY" : 377.997, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 202.245, + "computedY" : 377.997, + "placementX" : 202.245, + "placementY" : 377.997, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 202.245, + "computedY" : 377.997, + "placementX" : 202.245, + "placementY" : 377.997, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 202.245, + "computedY" : 377.997, + "placementX" : 202.245, + "placementY" : 377.997, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 202.245, + "computedY" : 377.997, + "placementX" : 202.245, + "placementY" : 377.997, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/RoleMarker_2[0]", + "entityName" : "RoleMarker_2", + "entityKind" : "EllipseNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 202.245, + "computedY" : 377.997, + "placementX" : 202.245, + "placementY" : 377.997, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 218.345, + "computedY" : 303.313, + "placementX" : 218.345, + "placementY" : 303.313, + "placementWidth" : 352.921, + "placementHeight" : 80.885, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 80.885, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_2[0]", + "entityName" : "RoleLine_2", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 218.345, + "computedY" : 372.433, + "placementX" : 218.345, + "placementY" : 372.433, + "placementWidth" : 352.921, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_2[0]/RoleTable_2[0]", + "entityName" : "RoleTable_2", + "entityKind" : "TableNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/RoleLine_2[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 218.345, + "computedY" : 372.433, + "placementX" : 218.345, + "placementY" : 372.433, + "placementWidth" : 352.921, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Employer_2[1]", + "entityName" : "Employer_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 218.345, + "computedY" : 362.113, + "placementX" : 218.345, + "placementY" : 362.113, + "placementWidth" : 123.771, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.771, + "contentHeight" : 10.32, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Highlights_2[2]", + "entityName" : "Highlights_2", + "entityKind" : "ListNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 218.345, + "computedY" : 303.313, + "placementX" : 218.345, + "placementY" : 303.313, + "placementWidth" : 329.019, + "placementHeight" : 56.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 329.019, + "contentHeight" : 56.3, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Divider_AfterExperience[5]", + "entityName" : "Divider_AfterExperience", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 296.313, + "placementX" : 205.345, + "placementY" : 296.313, + "placementWidth" : 365.931, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 1.0, + "margin" : { + "top" : 6.0, + "right" : 0.0, + "bottom" : 6.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "entityName" : "SelectedProjects", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 139.902, + "placementX" : 205.345, + "placementY" : 139.902, + "placementWidth" : 365.931, + "placementHeight" : 149.91, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 149.91, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Heading_SELECTEDPROJECTS[0]", + "entityName" : "Heading_SELECTEDPROJECTS", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 279.286, + "placementX" : 205.345, + "placementY" : 279.286, + "placementWidth" : 104.79, + "placementHeight" : 10.526, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.79, + "contentHeight" : 10.526, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/AccentLine_SELECTEDPROJECTS[1]", + "entityName" : "AccentLine_SELECTEDPROJECTS", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 274.386, + "placementX" : 205.345, + "placementY" : 274.386, + "placementWidth" : 22.0, + "placementHeight" : 1.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.0, + "contentHeight" : 1.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]", + "entityName" : "Project_0Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 234.894, + "placementX" : 205.345, + "placementY" : 234.894, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]", + "entityName" : "Project_0Layer", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 205.345, + "computedY" : 234.894, + "placementX" : 205.345, + "placementY" : 234.894, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "entityName" : "Project_0", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 205.345, + "computedY" : 234.894, + "placementX" : 205.345, + "placementY" : 234.894, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjIcon_0[0]", + "entityName" : "ProjIcon_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 205.345, + "computedY" : 246.886, + "placementX" : 205.345, + "placementY" : 246.886, + "placementWidth" : 22.0, + "placementHeight" : 22.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.0, + "contentHeight" : 22.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "entityName" : "ProjMeta_0", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 234.619, + "computedY" : 234.894, + "placementX" : 234.619, + "placementY" : 234.894, + "placementWidth" : 98.269, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 98.269, + "contentHeight" : 33.992, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.0, + "bottom" : 0.0, + "left" : 4.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]/ProjTitle_0[0]", + "entityName" : "ProjTitle_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 257.121, + "placementX" : 238.619, + "placementY" : 257.121, + "placementWidth" : 62.344, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.344, + "contentHeight" : 11.765, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]/ProjSub_0[1]", + "entityName" : "ProjSub_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 246.008, + "placementX" : 238.619, + "placementY" : 246.008, + "placementWidth" : 86.269, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.269, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]/ProjLoc_0[2]", + "entityName" : "ProjLoc_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 234.894, + "placementX" : 238.619, + "placementY" : 234.894, + "placementWidth" : 23.986, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.986, + "contentHeight" : 10.114, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjDesc_0[2]", + "entityName" : "ProjDesc_0", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 366.354, + "computedY" : 235.446, + "placementX" : 366.354, + "placementY" : 235.446, + "placementWidth" : 187.16, + "placementHeight" : 33.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 187.16, + "contentHeight" : 33.44, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 10.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjDesc_0[2]/ProjDescText_0[0]", + "entityName" : "ProjDescText_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjDesc_0[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 376.354, + "computedY" : 235.446, + "placementX" : 376.354, + "placementY" : 235.446, + "placementWidth" : 177.16, + "placementHeight" : 33.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 177.16, + "contentHeight" : 33.44, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/ProjDiv_0[3]", + "entityName" : "ProjDiv_0", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 229.894, + "placementX" : 205.345, + "placementY" : 229.894, + "placementWidth" : 365.931, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 1.0, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]", + "entityName" : "Project_1Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 193.902, + "placementX" : 205.345, + "placementY" : 193.902, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]", + "entityName" : "Project_1Layer", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 205.345, + "computedY" : 193.902, + "placementX" : 205.345, + "placementY" : 193.902, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", + "entityName" : "Project_1", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 205.345, + "computedY" : 193.902, + "placementX" : 205.345, + "placementY" : 193.902, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjIcon_1[0]", + "entityName" : "ProjIcon_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 205.345, + "computedY" : 205.894, + "placementX" : 205.345, + "placementY" : 205.894, + "placementWidth" : 22.0, + "placementHeight" : 22.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.0, + "contentHeight" : 22.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", + "entityName" : "ProjMeta_1", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 234.619, + "computedY" : 193.902, + "placementX" : 234.619, + "placementY" : 193.902, + "placementWidth" : 118.269, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.269, + "contentHeight" : 33.992, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.0, + "bottom" : 0.0, + "left" : 4.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]/ProjTitle_1[0]", + "entityName" : "ProjTitle_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 216.129, + "placementX" : 238.619, + "placementY" : 216.129, + "placementWidth" : 88.011, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.011, + "contentHeight" : 11.765, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]/ProjSub_1[1]", + "entityName" : "ProjSub_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 205.016, + "placementX" : 238.619, + "placementY" : 205.016, + "placementWidth" : 106.269, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.269, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]/ProjLoc_1[2]", + "entityName" : "ProjLoc_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 193.902, + "placementX" : 238.619, + "placementY" : 193.902, + "placementWidth" : 17.37, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.37, + "contentHeight" : 10.114, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjDesc_1[2]", + "entityName" : "ProjDesc_1", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 366.354, + "computedY" : 194.454, + "placementX" : 366.354, + "placementY" : 194.454, + "placementWidth" : 200.327, + "placementHeight" : 33.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 200.327, + "contentHeight" : 33.44, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 10.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjDesc_1[2]/ProjDescText_1[0]", + "entityName" : "ProjDescText_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjDesc_1[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 376.354, + "computedY" : 194.454, + "placementX" : 376.354, + "placementY" : 194.454, + "placementWidth" : 190.327, + "placementHeight" : 33.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 190.327, + "contentHeight" : 33.44, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/ProjDiv_1[5]", + "entityName" : "ProjDiv_1", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 188.902, + "placementX" : 205.345, + "placementY" : 188.902, + "placementWidth" : 365.931, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 1.0, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]", + "entityName" : "Project_2Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 141.902, + "placementX" : 205.345, + "placementY" : 141.902, + "placementWidth" : 365.931, + "placementHeight" : 45.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 45.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]", + "entityName" : "Project_2Layer", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 205.345, + "computedY" : 141.902, + "placementX" : 205.345, + "placementY" : 141.902, + "placementWidth" : 365.931, + "placementHeight" : 45.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 45.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", + "entityName" : "Project_2", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 205.345, + "computedY" : 141.902, + "placementX" : 205.345, + "placementY" : 141.902, + "placementWidth" : 365.931, + "placementHeight" : 45.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 45.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjIcon_2[0]", + "entityName" : "ProjIcon_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 205.345, + "computedY" : 164.902, + "placementX" : 205.345, + "placementY" : 164.902, + "placementWidth" : 22.0, + "placementHeight" : 22.0, + "startPage" : 0, + "endPage" : 0, "contentWidth" : 22.0, "contentHeight" : 22.0, "margin" : { @@ -3224,22 +4784,22 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", - "entityName" : "ProjMeta_0", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", + "entityName" : "ProjMeta_2", "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", "childIndex" : 1, "depth" : 8, "layer" : 8, "computedX" : 234.619, - "computedY" : 234.894, + "computedY" : 152.91, "placementX" : 234.619, - "placementY" : 234.894, - "placementWidth" : 98.269, + "placementY" : 152.91, + "placementWidth" : 99.272, "placementHeight" : 33.992, "startPage" : 0, "endPage" : 0, - "contentWidth" : 98.269, + "contentWidth" : 99.272, "contentHeight" : 33.992, "margin" : { "top" : 0.0, @@ -3254,22 +4814,22 @@ "left" : 4.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]/ProjTitle_0[0]", - "entityName" : "ProjTitle_0", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]/ProjTitle_2[0]", + "entityName" : "ProjTitle_2", "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", "childIndex" : 0, "depth" : 9, "layer" : 9, "computedX" : 238.619, - "computedY" : 257.121, + "computedY" : 175.137, "placementX" : 238.619, - "placementY" : 257.121, - "placementWidth" : 62.344, + "placementY" : 175.137, + "placementWidth" : 70.079, "placementHeight" : 11.765, "startPage" : 0, "endPage" : 0, - "contentWidth" : 62.344, + "contentWidth" : 70.079, "contentHeight" : 11.765, "margin" : { "top" : 0.0, @@ -3284,22 +4844,22 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]/ProjSub_0[1]", - "entityName" : "ProjSub_0", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]/ProjSub_2[1]", + "entityName" : "ProjSub_2", "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", "childIndex" : 1, "depth" : 9, "layer" : 9, "computedX" : 238.619, - "computedY" : 246.008, + "computedY" : 164.024, "placementX" : 238.619, - "placementY" : 246.008, - "placementWidth" : 86.269, + "placementY" : 164.024, + "placementWidth" : 87.272, "placementHeight" : 10.114, "startPage" : 0, "endPage" : 0, - "contentWidth" : 86.269, + "contentWidth" : 87.272, "contentHeight" : 10.114, "margin" : { "top" : 0.0, @@ -3314,22 +4874,22 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]/ProjLoc_0[2]", - "entityName" : "ProjLoc_0", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]/ProjLoc_2[2]", + "entityName" : "ProjLoc_2", "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", "childIndex" : 2, "depth" : 9, "layer" : 9, "computedX" : 238.619, - "computedY" : 234.894, + "computedY" : 152.91, "placementX" : 238.619, - "placementY" : 234.894, - "placementWidth" : 23.986, + "placementY" : 152.91, + "placementWidth" : 53.164, "placementHeight" : 10.114, "startPage" : 0, "endPage" : 0, - "contentWidth" : 23.986, + "contentWidth" : 53.164, "contentHeight" : 10.114, "margin" : { "top" : 0.0, @@ -3344,23 +4904,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjDesc_0[2]", - "entityName" : "ProjDesc_0", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjDesc_2[2]", + "entityName" : "ProjDesc_2", "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", "childIndex" : 2, "depth" : 8, "layer" : 8, "computedX" : 366.354, - "computedY" : 235.446, + "computedY" : 141.902, "placementX" : 366.354, - "placementY" : 235.446, - "placementWidth" : 187.16, - "placementHeight" : 33.44, + "placementY" : 141.902, + "placementWidth" : 166.176, + "placementHeight" : 45.0, "startPage" : 0, "endPage" : 0, - "contentWidth" : 187.16, - "contentHeight" : 33.44, + "contentWidth" : 166.176, + "contentHeight" : 45.0, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3374,23 +4934,23 @@ "left" : 10.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjDesc_0[2]/ProjDescText_0[0]", - "entityName" : "ProjDescText_0", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjDesc_2[2]/ProjDescText_2[0]", + "entityName" : "ProjDescText_2", "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjDesc_0[2]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjDesc_2[2]", "childIndex" : 0, "depth" : 9, "layer" : 9, "computedX" : 376.354, - "computedY" : 235.446, + "computedY" : 141.902, "placementX" : 376.354, - "placementY" : 235.446, - "placementWidth" : 177.16, - "placementHeight" : 33.44, + "placementY" : 141.902, + "placementWidth" : 156.176, + "placementHeight" : 45.0, "startPage" : 0, "endPage" : 0, - "contentWidth" : 177.16, - "contentHeight" : 33.44, + "contentWidth" : 156.176, + "contentHeight" : 45.0, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3404,17 +4964,17 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/ProjDiv_0[3]", - "entityName" : "ProjDiv_0", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Divider_AfterProjects[7]", + "entityName" : "Divider_AfterProjects", "entityKind" : "LineNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", - "childIndex" : 3, - "depth" : 5, - "layer" : 5, + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, "computedX" : 205.345, - "computedY" : 229.894, + "computedY" : 132.902, "placementX" : 205.345, - "placementY" : 229.894, + "placementY" : 132.902, "placementWidth" : 365.931, "placementHeight" : 1.0, "startPage" : 0, @@ -3422,9 +4982,9 @@ "contentWidth" : 365.931, "contentHeight" : 1.0, "margin" : { - "top" : 2.0, + "top" : 6.0, "right" : 0.0, - "bottom" : 2.0, + "bottom" : 6.5, "left" : 0.0 }, "padding" : { @@ -3434,27 +4994,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]", - "entityName" : "Project_1Stack", - "entityKind" : "LayerStackNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", - "childIndex" : 4, - "depth" : 5, - "layer" : 5, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", + "entityName" : "Education", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 8, + "depth" : 4, + "layer" : 4, "computedX" : 205.345, - "computedY" : 193.902, + "computedY" : 52.306, "placementX" : 205.345, - "placementY" : 193.902, + "placementY" : 52.306, "placementWidth" : 365.931, - "placementHeight" : 33.992, + "placementHeight" : 74.096, "startPage" : 0, "endPage" : 0, "contentWidth" : 365.931, - "contentHeight" : 33.992, + "contentHeight" : 74.096, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 2.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -3464,27 +5024,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]", - "entityName" : "Project_1Layer", - "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/Heading_EDUCATION[0]", + "entityName" : "Heading_EDUCATION", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, + "depth" : 5, + "layer" : 5, "computedX" : 205.345, - "computedY" : 193.902, + "computedY" : 115.876, "placementX" : 205.345, - "placementY" : 193.902, - "placementWidth" : 365.931, - "placementHeight" : 33.992, + "placementY" : 115.876, + "placementWidth" : 60.632, + "placementHeight" : 10.526, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 33.992, + "contentWidth" : 60.632, + "contentHeight" : 10.526, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 0.0, + "bottom" : 3.5, "left" : 0.0 }, "padding" : { @@ -3494,27 +5054,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", - "entityName" : "Project_1", - "entityKind" : "RowNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]", - "childIndex" : 0, - "depth" : 7, - "layer" : 7, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/AccentLine_EDUCATION[1]", + "entityName" : "AccentLine_EDUCATION", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, "computedX" : 205.345, - "computedY" : 193.902, + "computedY" : 110.976, "placementX" : 205.345, - "placementY" : 193.902, - "placementWidth" : 365.931, - "placementHeight" : 33.992, + "placementY" : 110.976, + "placementWidth" : 22.0, + "placementHeight" : 1.4, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 33.992, + "contentWidth" : 22.0, + "contentHeight" : 1.4, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 0.0, + "bottom" : 5.5, "left" : 0.0 }, "padding" : { @@ -3524,23 +5084,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjIcon_1[0]", - "entityName" : "ProjIcon_1", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", - "childIndex" : 0, - "depth" : 8, - "layer" : 8, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]", + "entityName" : "EducationBandStack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, "computedX" : 205.345, - "computedY" : 205.894, + "computedY" : 52.306, "placementX" : 205.345, - "placementY" : 205.894, - "placementWidth" : 22.0, - "placementHeight" : 22.0, + "placementY" : 52.306, + "placementWidth" : 365.931, + "placementHeight" : 53.17, "startPage" : 0, "endPage" : 0, - "contentWidth" : 22.0, - "contentHeight" : 22.0, + "contentWidth" : 365.931, + "contentHeight" : 53.17, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3554,23 +5114,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", - "entityName" : "ProjMeta_1", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]", + "entityName" : "EducationBandLayer", "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", - "childIndex" : 1, - "depth" : 8, - "layer" : 8, - "computedX" : 234.619, - "computedY" : 193.902, - "placementX" : 234.619, - "placementY" : 193.902, - "placementWidth" : 118.269, - "placementHeight" : 33.992, + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 205.345, + "computedY" : 52.306, + "placementX" : 205.345, + "placementY" : 52.306, + "placementWidth" : 365.931, + "placementHeight" : 53.17, "startPage" : 0, "endPage" : 0, - "contentWidth" : 118.269, - "contentHeight" : 33.992, + "contentWidth" : 365.931, + "contentHeight" : 53.17, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3579,32 +5139,32 @@ }, "padding" : { "top" : 0.0, - "right" : 8.0, + "right" : 0.0, "bottom" : 0.0, - "left" : 4.0 + "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]/ProjTitle_1[0]", - "entityName" : "ProjTitle_1", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]", + "entityName" : "EducationBand", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, - "computedX" : 238.619, - "computedY" : 216.129, - "placementX" : 238.619, - "placementY" : 216.129, - "placementWidth" : 88.011, - "placementHeight" : 11.765, + "depth" : 7, + "layer" : 7, + "computedX" : 205.345, + "computedY" : 52.306, + "placementX" : 205.345, + "placementY" : 52.306, + "placementWidth" : 365.931, + "placementHeight" : 53.17, "startPage" : 0, "endPage" : 0, - "contentWidth" : 88.011, - "contentHeight" : 11.765, + "contentWidth" : 365.931, + "contentHeight" : 53.17, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 1.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -3614,53 +5174,53 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]/ProjSub_1[1]", - "entityName" : "ProjSub_1", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", - "childIndex" : 1, - "depth" : 9, - "layer" : 9, - "computedX" : 238.619, - "computedY" : 205.016, - "placementX" : 238.619, - "placementY" : 205.016, - "placementWidth" : 106.269, - "placementHeight" : 10.114, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]", + "entityName" : "EducationEntries", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 205.345, + "computedY" : 52.306, + "placementX" : 205.345, + "placementY" : 52.306, + "placementWidth" : 256.152, + "placementHeight" : 53.17, "startPage" : 0, "endPage" : 0, - "contentWidth" : 106.269, - "contentHeight" : 10.114, + "contentWidth" : 256.152, + "contentHeight" : 53.17, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 1.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { "top" : 0.0, - "right" : 0.0, + "right" : 8.0, "bottom" : 0.0, "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]/ProjLoc_1[2]", - "entityName" : "ProjLoc_1", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", - "childIndex" : 2, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]", + "entityName" : "EducationRail", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]", + "childIndex" : 0, "depth" : 9, "layer" : 9, - "computedX" : 238.619, - "computedY" : 193.902, - "placementX" : 238.619, - "placementY" : 193.902, - "placementWidth" : 17.37, - "placementHeight" : 10.114, + "computedX" : 205.345, + "computedY" : 52.306, + "placementX" : 205.345, + "placementY" : 52.306, + "placementWidth" : 248.152, + "placementHeight" : 53.17, "startPage" : 0, "endPage" : 0, - "contentWidth" : 17.37, - "contentHeight" : 10.114, + "contentWidth" : 248.152, + "contentHeight" : 53.17, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3674,53 +5234,53 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjDesc_1[2]", - "entityName" : "ProjDesc_1", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]", + "entityName" : "EducationRailHolder", "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", - "childIndex" : 2, - "depth" : 8, - "layer" : 8, - "computedX" : 366.354, - "computedY" : 194.454, - "placementX" : 366.354, - "placementY" : 194.454, - "placementWidth" : 200.327, - "placementHeight" : 33.44, + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 202.245, + "computedY" : 52.306, + "placementX" : 202.245, + "placementY" : 52.306, + "placementWidth" : 251.252, + "placementHeight" : 53.17, "startPage" : 0, "endPage" : 0, - "contentWidth" : 200.327, - "contentHeight" : 33.44, + "contentWidth" : 251.252, + "contentHeight" : 53.17, "margin" : { "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 0.0 + "left" : -3.1 }, "padding" : { "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 10.0 + "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjDesc_1[2]/ProjDescText_1[0]", - "entityName" : "ProjDescText_1", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjDesc_1[2]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, - "computedX" : 376.354, - "computedY" : 194.454, - "placementX" : 376.354, - "placementY" : 194.454, - "placementWidth" : 190.327, - "placementHeight" : 33.44, + "depth" : 11, + "layer" : 11, + "computedX" : 202.245, + "computedY" : 52.306, + "placementX" : 202.245, + "placementY" : 52.306, + "placementWidth" : 251.252, + "placementHeight" : 53.17, "startPage" : 0, "endPage" : 0, - "contentWidth" : 190.327, - "contentHeight" : 33.44, + "contentWidth" : 251.252, + "contentHeight" : 53.17, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3734,27 +5294,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/ProjDiv_1[5]", - "entityName" : "ProjDiv_1", - "entityKind" : "LineNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", - "childIndex" : 5, - "depth" : 5, - "layer" : 5, - "computedX" : 205.345, - "computedY" : 188.902, - "placementX" : 205.345, - "placementY" : 188.902, - "placementWidth" : 365.931, - "placementHeight" : 1.0, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 202.245, + "computedY" : 74.391, + "placementX" : 202.245, + "placementY" : 74.391, + "placementWidth" : 251.252, + "placementHeight" : 31.085, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 1.0, + "contentWidth" : 251.252, + "contentHeight" : 31.085, "margin" : { - "top" : 2.0, + "top" : 0.0, "right" : 0.0, - "bottom" : 2.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -3764,53 +5324,53 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]", - "entityName" : "Project_2Stack", - "entityKind" : "LayerStackNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", - "childIndex" : 6, - "depth" : 5, - "layer" : 5, - "computedX" : 205.345, - "computedY" : 141.902, - "placementX" : 205.345, - "placementY" : 141.902, - "placementWidth" : 365.931, - "placementHeight" : 45.0, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 202.245, + "computedY" : 74.391, + "placementX" : 202.245, + "placementY" : 74.391, + "placementWidth" : 251.252, + "placementHeight" : 31.085, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 45.0, + "contentWidth" : 251.252, + "contentHeight" : 31.085, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 2.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 0.0, + "bottom" : 9.0, "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]", - "entityName" : "Project_2Layer", - "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, - "computedX" : 205.345, - "computedY" : 141.902, - "placementX" : 205.345, - "placementY" : 141.902, - "placementWidth" : 365.931, - "placementHeight" : 45.0, + "depth" : 14, + "layer" : 14, + "computedX" : 202.245, + "computedY" : 83.391, + "placementX" : 202.245, + "placementY" : 83.391, + "placementWidth" : 251.252, + "placementHeight" : 22.085, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 45.0, + "contentWidth" : 251.252, + "contentHeight" : 22.085, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3823,24 +5383,24 @@ "bottom" : 0.0, "left" : 0.0 } - }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", - "entityName" : "Project_2", + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, "entityKind" : "RowNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 205.345, - "computedY" : 141.902, - "placementX" : 205.345, - "placementY" : 141.902, - "placementWidth" : 365.931, - "placementHeight" : 45.0, + "depth" : 15, + "layer" : 15, + "computedX" : 202.245, + "computedY" : 83.391, + "placementX" : 202.245, + "placementY" : 83.391, + "placementWidth" : 251.252, + "placementHeight" : 22.085, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 45.0, + "contentWidth" : 251.252, + "contentHeight" : 22.085, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3854,23 +5414,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjIcon_2[0]", - "entityName" : "ProjIcon_2", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, - "computedX" : 205.345, - "computedY" : 164.902, - "placementX" : 205.345, - "placementY" : 164.902, - "placementWidth" : 22.0, - "placementHeight" : 22.0, + "depth" : 16, + "layer" : 16, + "computedX" : 202.245, + "computedY" : 99.276, + "placementX" : 202.245, + "placementY" : 99.276, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 22.0, - "contentHeight" : 22.0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3884,23 +5444,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", - "entityName" : "ProjMeta_2", - "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", - "childIndex" : 1, - "depth" : 8, - "layer" : 8, - "computedX" : 234.619, - "computedY" : 152.91, - "placementX" : 234.619, - "placementY" : 152.91, - "placementWidth" : 99.272, - "placementHeight" : 33.992, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 202.245, + "computedY" : 99.276, + "placementX" : 202.245, + "placementY" : 99.276, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 99.272, - "contentHeight" : 33.992, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -3909,32 +5469,32 @@ }, "padding" : { "top" : 0.0, - "right" : 8.0, + "right" : 0.0, "bottom" : 0.0, - "left" : 4.0 + "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]/ProjTitle_2[0]", - "entityName" : "ProjTitle_2", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, - "computedX" : 238.619, - "computedY" : 175.137, - "placementX" : 238.619, - "placementY" : 175.137, - "placementWidth" : 70.079, - "placementHeight" : 11.765, + "depth" : 18, + "layer" : 18, + "computedX" : 202.245, + "computedY" : 99.276, + "placementX" : 202.245, + "placementY" : 99.276, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 70.079, - "contentHeight" : 11.765, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 1.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -3944,27 +5504,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]/ProjSub_2[1]", - "entityName" : "ProjSub_2", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", - "childIndex" : 1, - "depth" : 9, - "layer" : 9, - "computedX" : 238.619, - "computedY" : 164.024, - "placementX" : 238.619, - "placementY" : 164.024, - "placementWidth" : 87.272, - "placementHeight" : 10.114, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 19, + "layer" : 19, + "computedX" : 202.245, + "computedY" : 99.276, + "placementX" : 202.245, + "placementY" : 99.276, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 87.272, - "contentHeight" : 10.114, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 1.0, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -3974,23 +5534,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]/ProjLoc_2[2]", - "entityName" : "ProjLoc_2", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", - "childIndex" : 2, - "depth" : 9, - "layer" : 9, - "computedX" : 238.619, - "computedY" : 152.91, - "placementX" : 238.619, - "placementY" : 152.91, - "placementWidth" : 53.164, - "placementHeight" : 10.114, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 20, + "layer" : 20, + "computedX" : 202.245, + "computedY" : 99.276, + "placementX" : 202.245, + "placementY" : 99.276, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 53.164, - "contentHeight" : 10.114, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4004,23 +5564,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjDesc_2[2]", - "entityName" : "ProjDesc_2", - "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", - "childIndex" : 2, - "depth" : 8, - "layer" : 8, - "computedX" : 366.354, - "computedY" : 141.902, - "placementX" : 366.354, - "placementY" : 141.902, - "placementWidth" : 166.176, - "placementHeight" : 45.0, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EduMarker_0[0]", + "entityName" : "EduMarker_0", + "entityKind" : "EllipseNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 21, + "layer" : 21, + "computedX" : 202.245, + "computedY" : 99.276, + "placementX" : 202.245, + "placementY" : 99.276, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 166.176, - "contentHeight" : 45.0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4031,26 +5591,26 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 10.0 + "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjDesc_2[2]/ProjDescText_2[0]", - "entityName" : "ProjDescText_2", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjDesc_2[2]", - "childIndex" : 0, - "depth" : 9, - "layer" : 9, - "computedX" : 376.354, - "computedY" : 141.902, - "placementX" : 376.354, - "placementY" : 141.902, - "placementWidth" : 156.176, - "placementHeight" : 45.0, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 16, + "layer" : 16, + "computedX" : 218.345, + "computedY" : 83.391, + "placementX" : 218.345, + "placementY" : 83.391, + "placementWidth" : 235.142, + "placementHeight" : 22.085, "startPage" : 0, "endPage" : 0, - "contentWidth" : 156.176, - "contentHeight" : 45.0, + "contentWidth" : 235.142, + "contentHeight" : 22.085, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4064,27 +5624,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Divider_AfterProjects[7]", - "entityName" : "Divider_AfterProjects", - "entityKind" : "LineNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", - "childIndex" : 7, - "depth" : 4, - "layer" : 4, - "computedX" : 205.345, - "computedY" : 132.902, - "placementX" : 205.345, - "placementY" : 132.902, - "placementWidth" : 365.931, - "placementHeight" : 1.0, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EduLine_0[0]", + "entityName" : "EduLine_0", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 218.345, + "computedY" : 93.711, + "placementX" : 218.345, + "placementY" : 93.711, + "placementWidth" : 235.142, + "placementHeight" : 11.765, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 1.0, + "contentWidth" : 235.142, + "contentHeight" : 11.765, "margin" : { - "top" : 6.0, + "top" : 0.0, "right" : 0.0, - "bottom" : 6.5, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -4094,23 +5654,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", - "entityName" : "Education", - "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", - "childIndex" : 8, - "depth" : 4, - "layer" : 4, - "computedX" : 205.345, - "computedY" : 52.306, - "placementX" : 205.345, - "placementY" : 52.306, - "placementWidth" : 365.931, - "placementHeight" : 74.096, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EduLine_0[0]/EduTable_0[0]", + "entityName" : "EduTable_0", + "entityKind" : "TableNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EduLine_0[0]", + "childIndex" : 0, + "depth" : 18, + "layer" : 18, + "computedX" : 218.345, + "computedY" : 93.711, + "placementX" : 218.345, + "placementY" : 93.711, + "placementWidth" : 235.142, + "placementHeight" : 11.765, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 74.096, + "contentWidth" : 235.142, + "contentHeight" : 11.765, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4124,27 +5684,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/Heading_EDUCATION[0]", - "entityName" : "Heading_EDUCATION", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Institution_0[1]", + "entityName" : "Institution_0", "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", - "childIndex" : 0, - "depth" : 5, - "layer" : 5, - "computedX" : 205.345, - "computedY" : 115.876, - "placementX" : 205.345, - "placementY" : 115.876, - "placementWidth" : 60.632, - "placementHeight" : 10.526, + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 17, + "layer" : 17, + "computedX" : 218.345, + "computedY" : 83.391, + "placementX" : 218.345, + "placementY" : 83.391, + "placementWidth" : 78.604, + "placementHeight" : 10.32, "startPage" : 0, "endPage" : 0, - "contentWidth" : 60.632, - "contentHeight" : 10.526, + "contentWidth" : 78.604, + "contentHeight" : 10.32, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 3.5, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -4154,27 +5714,27 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/AccentLine_EDUCATION[1]", - "entityName" : "AccentLine_EDUCATION", - "entityKind" : "LineNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]", "childIndex" : 1, - "depth" : 5, - "layer" : 5, - "computedX" : 205.345, - "computedY" : 110.976, - "placementX" : 205.345, - "placementY" : 110.976, - "placementWidth" : 22.0, - "placementHeight" : 1.4, + "depth" : 12, + "layer" : 12, + "computedX" : 202.245, + "computedY" : 52.306, + "placementX" : 202.245, + "placementY" : 52.306, + "placementWidth" : 251.252, + "placementHeight" : 22.085, "startPage" : 0, "endPage" : 0, - "contentWidth" : 22.0, - "contentHeight" : 1.4, + "contentWidth" : 251.252, + "contentHeight" : 22.085, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 5.5, + "bottom" : 0.0, "left" : 0.0 }, "padding" : { @@ -4184,23 +5744,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]", - "entityName" : "EducationBandStack", - "entityKind" : "LayerStackNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", - "childIndex" : 2, - "depth" : 5, - "layer" : 5, - "computedX" : 205.345, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 202.245, "computedY" : 52.306, - "placementX" : 205.345, + "placementX" : 202.245, "placementY" : 52.306, - "placementWidth" : 365.931, - "placementHeight" : 53.17, + "placementWidth" : 251.252, + "placementHeight" : 22.085, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 53.17, + "contentWidth" : 251.252, + "contentHeight" : 22.085, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4214,23 +5774,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]", - "entityName" : "EducationBandLayer", - "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", "childIndex" : 0, - "depth" : 6, - "layer" : 6, - "computedX" : 205.345, + "depth" : 14, + "layer" : 14, + "computedX" : 202.245, "computedY" : 52.306, - "placementX" : 205.345, + "placementX" : 202.245, "placementY" : 52.306, - "placementWidth" : 365.931, - "placementHeight" : 53.17, + "placementWidth" : 251.252, + "placementHeight" : 22.085, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 53.17, + "contentWidth" : 251.252, + "contentHeight" : 22.085, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4244,23 +5804,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]", - "entityName" : "EducationBand", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, "entityKind" : "RowNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 205.345, + "depth" : 15, + "layer" : 15, + "computedX" : 202.245, "computedY" : 52.306, - "placementX" : 205.345, + "placementX" : 202.245, "placementY" : 52.306, - "placementWidth" : 365.931, - "placementHeight" : 53.17, + "placementWidth" : 251.252, + "placementHeight" : 22.085, "startPage" : 0, "endPage" : 0, - "contentWidth" : 365.931, - "contentHeight" : 53.17, + "contentWidth" : 251.252, + "contentHeight" : 22.085, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4274,23 +5834,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]", - "entityName" : "EducationEntries", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, - "computedX" : 205.345, - "computedY" : 52.306, - "placementX" : 205.345, - "placementY" : 52.306, - "placementWidth" : 256.142, - "placementHeight" : 53.17, + "depth" : 16, + "layer" : 16, + "computedX" : 202.245, + "computedY" : 68.191, + "placementX" : 202.245, + "placementY" : 68.191, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 256.142, - "contentHeight" : 53.17, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4299,28 +5859,28 @@ }, "padding" : { "top" : 0.0, - "right" : 8.0, + "right" : 0.0, "bottom" : 0.0, "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]", - "entityName" : "EducationEntry_0", - "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 9, - "layer" : 9, - "computedX" : 205.345, - "computedY" : 74.391, - "placementX" : 205.345, - "placementY" : 74.391, - "placementWidth" : 248.142, - "placementHeight" : 31.085, + "depth" : 17, + "layer" : 17, + "computedX" : 202.245, + "computedY" : 68.191, + "placementX" : 202.245, + "placementY" : 68.191, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 248.142, - "contentHeight" : 31.085, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4330,27 +5890,27 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 9.0, - "left" : 13.0 + "bottom" : 0.0, + "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/EduLine_0[0]", - "entityName" : "EduLine_0", - "entityKind" : "LayerStackNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", "childIndex" : 0, - "depth" : 10, - "layer" : 10, - "computedX" : 218.345, - "computedY" : 93.711, - "placementX" : 218.345, - "placementY" : 93.711, - "placementWidth" : 235.142, - "placementHeight" : 11.765, + "depth" : 18, + "layer" : 18, + "computedX" : 202.245, + "computedY" : 68.191, + "placementX" : 202.245, + "placementY" : 68.191, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 235.142, - "contentHeight" : 11.765, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4364,23 +5924,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/EduLine_0[0]/EduTable_0[0]", - "entityName" : "EduTable_0", - "entityKind" : "TableNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/EduLine_0[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, - "depth" : 11, - "layer" : 11, - "computedX" : 218.345, - "computedY" : 93.711, - "placementX" : 218.345, - "placementY" : 93.711, - "placementWidth" : 235.142, - "placementHeight" : 11.765, + "depth" : 19, + "layer" : 19, + "computedX" : 202.245, + "computedY" : 68.191, + "placementX" : 202.245, + "placementY" : 68.191, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 235.142, - "contentHeight" : 11.765, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4394,17 +5954,17 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/EduLine_0[0]/EduMarker_0[1]", - "entityName" : "EduMarker_0", - "entityKind" : "EllipseNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/EduLine_0[0]", - "childIndex" : 1, - "depth" : 11, - "layer" : 11, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 20, + "layer" : 20, "computedX" : 202.245, - "computedY" : 99.276, + "computedY" : 68.191, "placementX" : 202.245, - "placementY" : 99.276, + "placementY" : 68.191, "placementWidth" : 6.2, "placementHeight" : 6.2, "startPage" : 0, @@ -4424,23 +5984,23 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/Institution_0[1]", - "entityName" : "Institution_0", - "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]", - "childIndex" : 1, - "depth" : 10, - "layer" : 10, - "computedX" : 218.345, - "computedY" : 83.391, - "placementX" : 218.345, - "placementY" : 83.391, - "placementWidth" : 78.604, - "placementHeight" : 10.32, + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EduMarker_1[0]", + "entityName" : "EduMarker_1", + "entityKind" : "EllipseNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 21, + "layer" : 21, + "computedX" : 202.245, + "computedY" : 68.191, + "placementX" : 202.245, + "placementY" : 68.191, + "placementWidth" : 6.2, + "placementHeight" : 6.2, "startPage" : 0, "endPage" : 0, - "contentWidth" : 78.604, - "contentHeight" : 10.32, + "contentWidth" : 6.2, + "contentHeight" : 6.2, "margin" : { "top" : 0.0, "right" : 0.0, @@ -4454,22 +6014,22 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]", - "entityName" : "EducationEntry_1", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 1, - "depth" : 9, - "layer" : 9, - "computedX" : 205.345, + "depth" : 16, + "layer" : 16, + "computedX" : 218.345, "computedY" : 52.306, - "placementX" : 205.345, + "placementX" : 218.345, "placementY" : 52.306, - "placementWidth" : 248.142, + "placementWidth" : 235.142, "placementHeight" : 22.085, "startPage" : 0, "endPage" : 0, - "contentWidth" : 248.142, + "contentWidth" : 235.142, "contentHeight" : 22.085, "margin" : { "top" : 0.0, @@ -4481,16 +6041,16 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 13.0 + "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/EduLine_1[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EduLine_1[0]", "entityName" : "EduLine_1", "entityKind" : "LayerStackNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 0, - "depth" : 10, - "layer" : 10, + "depth" : 17, + "layer" : 17, "computedX" : 218.345, "computedY" : 62.626, "placementX" : 218.345, @@ -4514,13 +6074,13 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/EduLine_1[0]/EduTable_1[0]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EduLine_1[0]/EduTable_1[0]", "entityName" : "EduTable_1", "entityKind" : "TableNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/EduLine_1[0]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EduLine_1[0]", "childIndex" : 0, - "depth" : 11, - "layer" : 11, + "depth" : 18, + "layer" : 18, "computedX" : 218.345, "computedY" : 62.626, "placementX" : 218.345, @@ -4544,43 +6104,13 @@ "left" : 0.0 } }, { - "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/EduLine_1[0]/EduMarker_1[1]", - "entityName" : "EduMarker_1", - "entityKind" : "EllipseNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/EduLine_1[0]", - "childIndex" : 1, - "depth" : 11, - "layer" : 11, - "computedX" : 202.245, - "computedY" : 68.191, - "placementX" : 202.245, - "placementY" : 68.191, - "placementWidth" : 6.2, - "placementHeight" : 6.2, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 6.2, - "contentHeight" : 6.2, - "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/Institution_1[1]", + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Institution_1[1]", "entityName" : "Institution_1", "entityKind" : "ParagraphNode", - "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationRail[0]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 1, - "depth" : 10, - "layer" : 10, + "depth" : 17, + "layer" : 17, "computedX" : 218.345, "computedY" : 52.306, "placementX" : 218.345, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java index c9bc38fc4..c82f280e7 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java @@ -1,9 +1,13 @@ package com.demcha.compose.document.templates.cv.presets; import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TimelineRailExtent; import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.LayerAlign; import com.demcha.compose.document.node.ListMarker; import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; import com.demcha.compose.document.templates.cv.data.CvEntry; import com.demcha.compose.document.templates.cv.data.CvIdentity; import com.demcha.compose.document.templates.cv.data.EntriesSection; @@ -57,12 +61,14 @@ import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SUMMARY_LINE_SPACING; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.italic; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.text; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MARKER_DIAMETER; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.divider; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.heading; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.headingWithDash; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.inlineIcon; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.layeredRow; -import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.railedLine; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.entryLine; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.ringMarker; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.titleAndDate; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.trackedWide; @@ -159,37 +165,52 @@ private static void renderExperience(SectionBuilder main, EntriesSection experie main.addSection("Experience", block -> { block.spacing(0); heading(block, experience.title(), MAIN_HEADING_SPACER); - List entries = experience.entries(); - for (int i = 0; i < entries.size(); i++) { - CvEntry entry = entries.get(i); - boolean last = i == entries.size() - 1; - int index = i; - block.addSection("ExperienceEntry_" + index, body -> { - body.spacing(0); - if (!last) { - body.accentLeft(RULE, RULE_THICKNESS); - } - body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, (float) ENTRY_INDENT); - railedLine(body, "Role", index, - titleAndDate("RoleTable_" + index, entry.title(), entry.date(), - ENTRY_WIDTH, ROLE_PERIOD_SHARE, entry.link())); - body.addParagraph(p -> p - .name("Employer_" + index) - .text(entry.subtitle()) - .textStyle(italic(BODY_SIZE, MUTED)) - .margin(0f, 0f, (float) EMPLOYER_GAP, 0f)); - List highlights = lines(entry.body()); - if (!highlights.isEmpty()) { - body.addList(list -> list - .name("Highlights_" + index) - .items(highlights) - .marker(ListMarker.bullet()) - .textStyle(text(BODY_SIZE, INK, false)) - .itemSpacing(HIGHLIGHT_ITEM_SPACING) - .lineSpacing(HIGHLIGHT_LINE_SPACING)); - } - }); - } + SectionBuilder holder = new SectionBuilder(); + holder.name("ExperienceRailHolder"); + holder.spacing(0); + // The axis column centres the rail on itself, so the timeline starts half a ring + // left of the edge the accents drew on and the line lands back on it. + holder.margin(new DocumentInsets(0, 0, 0, -MARKER_DIAMETER / 2.0)); + holder.addTimeline(timeline -> { + timeline.markerOnRail() + .rail(rail -> rail + .stroke(DocumentStroke.of(RULE, RULE_THICKNESS)) + .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .axisWidth(MARKER_DIAMETER) + .markerGap(ENTRY_INDENT - MARKER_DIAMETER / 2.0) + .gutter(0) + .spacing(ENTRY_GAP); + List entries = experience.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + int index = i; + timeline.entry(ringMarker("Role", index), e -> e.content(body -> { + body.spacing(0); + entryLine(body, "Role", index, + titleAndDate("RoleTable_" + index, entry.title(), entry.date(), + ENTRY_WIDTH, ROLE_PERIOD_SHARE, entry.link())); + body.addParagraph(p -> p + .name("Employer_" + index) + .text(entry.subtitle()) + .textStyle(italic(BODY_SIZE, MUTED)) + .margin(0f, 0f, (float) EMPLOYER_GAP, 0f)); + List highlights = lines(entry.body()); + if (!highlights.isEmpty()) { + body.addList(list -> list + .name("Highlights_" + index) + .items(highlights) + .marker(ListMarker.bullet()) + .textStyle(text(BODY_SIZE, INK, false)) + .itemSpacing(HIGHLIGHT_ITEM_SPACING) + .lineSpacing(HIGHLIGHT_LINE_SPACING)); + } + })); + } + }); + DocumentNode experienceRail = holder.build(); + block.addLayerStack(stack -> stack + .name("ExperienceRail") + .layer(experienceRail, LayerAlign.TOP_LEFT, 0)); }); } @@ -287,28 +308,45 @@ private static void renderEducation(SectionBuilder main, EntriesSection educatio cell.spacing(0); cell.accentRight(RULE, RULE_THICKNESS); cell.padding(0f, (float) EDUCATION_BAND_PAD_RIGHT, 0f, 0f); - List entries = education.entries(); - for (int i = 0; i < entries.size(); i++) { - CvEntry entry = entries.get(i); - boolean last = i == entries.size() - 1; - int index = i; - cell.addSection("EducationEntry_" + index, body -> { - body.spacing(0); - if (!last) { - body.accentLeft(ACCENT, RULE_THICKNESS); - } - body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, - (float) ENTRY_INDENT); - railedLine(body, "Edu", index, - titleAndDate("EduTable_" + index, entry.title(), entry.date(), - EDUCATION_ENTRY_WIDTH, EDUCATION_PERIOD_SHARE, - entry.link())); - body.addParagraph(p -> p - .name("Institution_" + index) - .text(entry.subtitle()) - .textStyle(italic(BODY_SIZE, MUTED))); - }); - } + // A second rail, terracotta rather than grey, and its own timeline: two + // timelines on a page are two rail owners and never merge into one line. + SectionBuilder holder = new SectionBuilder(); + holder.name("EducationRailHolder"); + holder.spacing(0); + holder.margin(new DocumentInsets(0, 0, 0, -MARKER_DIAMETER / 2.0)); + holder.addTimeline(timeline -> { + timeline.markerOnRail() + .rail(rail -> rail + .stroke(DocumentStroke.of(ACCENT, RULE_THICKNESS)) + .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .axisWidth(MARKER_DIAMETER) + .markerGap(ENTRY_INDENT - MARKER_DIAMETER / 2.0) + .gutter(0) + .spacing(ENTRY_GAP); + List entries = education.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + int index = i; + timeline.entry(ringMarker("Edu", index), e -> e.content(body -> { + body.spacing(0); + entryLine(body, "Edu", index, + titleAndDate("EduTable_" + index, entry.title(), entry.date(), + EDUCATION_ENTRY_WIDTH, EDUCATION_PERIOD_SHARE, + entry.link())); + body.addParagraph(p -> p + .name("Institution_" + index) + .text(entry.subtitle()) + .textStyle(italic(BODY_SIZE, MUTED))); + })); + } + }); + DocumentNode educationRail = holder.build(); + // The band's own stack wraps the band row, one level above this cell, so + // it does not insulate a timeline placed inside the cell: this is a row + // slot and needs a layer of its own. + cell.addLayerStack(stack -> stack + .name("EducationRail") + .layer(educationRail, LayerAlign.TOP_LEFT, 0)); }); band.addSection("EducationBandRight", empty -> empty.spacing(0)); }); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java index 4a70b3b2c..3e2e1d269 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java @@ -5,6 +5,7 @@ import com.demcha.compose.document.dsl.RowBuilder; import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.dsl.TimelineMarker; import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.InlineImageAlignment; @@ -161,31 +162,30 @@ static void inlineIcon(ParagraphBuilder paragraph, String token, double size) { // -- the rail ---------------------------------------------------------- - /** The marker an entry rides: a terracotta ring with the paper inside. */ - private static DocumentNode marker(String prefix, int index) { - return new EllipseBuilder() - .name(prefix + "Marker_" + index) - .circle(MARKER_DIAMETER) - .fillColor(PAPER) - .stroke(DocumentStroke.of(ACCENT, 1.0)) - .build(); + /** + * The marker an entry rides: a terracotta ring with the paper inside, declared as a + * timeline marker so the rail runs through the centre of the box it occupies. + */ + static TimelineMarker ringMarker(String prefix, int index) { + return TimelineMarker.custom(MARKER_DIAMETER, MARKER_DIAMETER, + column -> column.addEllipse(ellipse -> ellipse + .name(prefix + "Marker_" + index) + .circle(MARKER_DIAMETER) + .fillColor(PAPER) + .stroke(DocumentStroke.of(ACCENT, 1.0)))); } /** - * An entry's first line, with its marker sitting ON the rail. + * An entry's first line, in the layer its table needs. * - *

      The marker is nudged left by the entry's own indent plus half the - * ring, so the ring's centre lands on the rail rather than beside it. - * Both terms are geometry the sheet already holds, not offsets tuned by - * eye.

      + *

      The marker used to be positioned into this stack, nudged left by the entry's own + * indent plus half the ring to land on the rail; it sits in the timeline's axis column + * now. The layer stays because the line is a table and a row cell is no place for one.

      */ - static void railedLine(SectionBuilder body, String prefix, int index, DocumentNode line) { + static void entryLine(SectionBuilder body, String prefix, int index, DocumentNode line) { body.addLayerStack(stack -> stack .name(prefix + "Line_" + index) - .layer(line, LayerAlign.TOP_LEFT, 0) - .position(marker(prefix, index), - -(ENTRY_INDENT + MARKER_DIAMETER / 2.0), 0.0, - LayerAlign.TOP_LEFT, 1)); + .layer(line, LayerAlign.TOP_LEFT, 0)); } /** From cdbc04ce0c2a9bfca2d2c0457c04f653f755e741 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 11:15:32 +0100 Subject: [PATCH 59/85] refactor(templates): retire the education rail mask, which never masked anything The rail was the block left accent, and the first entry filled its own head band with the sidebar colour, painted a wider shape over the rail edge above its dot, and redrew the rail below it. The javadoc said why: so the line would begin at the first marker rather than at the top of the block. Measured against the render, it never did. Scanning the rail column of the committed baseline: background down to pdf y 192, then rail at 191 and 190 - the stretch the mask covers - then the dot at 189..186, then rail continuously to the foot at 110. An accent draws above the container fill and above the mask shape, so the masked stretch stayed visible and the only thing the construction achieved was drawing 2.5pt of rail twice below the dot, a shade darker than the rest. So the old rail is ENTRY_BOUNDS, top of the entries to their foot, and that is what it says now. The mask, the band fill and the redraw are gone: 56 lines out, and renderEducationHead drops from positioning four nodes to positioning one. What the design asked for - begin at the first marker, still run to the foot of the entries - no extent can say today. MARKER_TO_MARKER would start at the first anchor but also stop at the last, cutting 26.7pt of rail the block draws on purpose. Recorded as an API gap rather than approximated again. Geometry: 158 = 153 identical + 5 removed, 178 = 153 identical + 25 added (6 named, 19 unnamed timeline wrappers). Markers unmoved at x=18.45, y 184.934 and 142.594 - the dot is centred by declaring the marker box as the head band and carrying half of it above the dot, because a timeline top-aligns where the container used to centre. Degrees, institutions and dates untouched; the head bands move to the content column, x 20.6 -> 33.6 and width 104.656 -> 91.656, keeping the right edge at 125.256. One page, nothing spans one. Six pixels change, at x=20 and 21 and pdf y 183..185: the double-drawn stretch returns to the rail tone the rest of the line has, (219,222,225) -> (226,228,231), and the column beside it to plain background. Nothing at 190 or 191, which is the proof that ENTRY_BOUNDS reproduces the accent and the mask was inert. Measured with budget and tolerance at zero, then restored; maximum channel delta 7, inside the gate, so the baseline stands. The known degree-title wrapping defect is untouched and stays a follow-up. --- .../cv-v2/professional_sidebar_layout.json | 900 +++++++++++++++--- .../cv/presets/ProfessionalSidebarAside.java | 132 +-- 2 files changed, 826 insertions(+), 206 deletions(-) diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json index f8569aa6f..06ebba451 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json @@ -1936,26 +1936,566 @@ }, { "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", "entityName" : "EducationRail", - "entityKind" : "SectionNode", + "entityKind" : "LayerStackNode", "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]", "childIndex" : 2, - "depth" : 6, - "layer" : 6, - "computedX" : 20.6, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 118.054, + "placementX" : 17.8, + "placementY" : 118.054, + "placementWidth" : 107.456, + "placementHeight" : 73.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 73.68, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]", + "entityName" : "EducationRailHolder", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 18.45, + "computedY" : 118.054, + "placementX" : 18.45, + "placementY" : 118.054, + "placementWidth" : 106.806, + "placementHeight" : 73.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.806, + "contentHeight" : 73.68, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.65 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 18.45, + "computedY" : 118.054, + "placementX" : 18.45, + "placementY" : 118.054, + "placementWidth" : 106.806, + "placementHeight" : 73.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.806, + "contentHeight" : 73.68, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 18.45, + "computedY" : 149.394, + "placementX" : 18.45, + "placementY" : 149.394, + "placementWidth" : 106.806, + "placementHeight" : 42.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.806, + "contentHeight" : 42.34, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 18.45, + "computedY" : 149.394, + "placementX" : 18.45, + "placementY" : 149.394, + "placementWidth" : 106.806, + "placementHeight" : 42.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.806, + "contentHeight" : 42.34, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 18.45, + "computedY" : 160.394, + "placementX" : 18.45, + "placementY" : 160.394, + "placementWidth" : 106.806, + "placementHeight" : 31.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.806, + "contentHeight" : 31.34, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 18.45, + "computedY" : 160.394, + "placementX" : 18.45, + "placementY" : 160.394, + "placementWidth" : 106.806, + "placementHeight" : 31.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.806, + "contentHeight" : 31.34, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 18.45, + "computedY" : 182.434, + "placementX" : 18.45, + "placementY" : 182.434, + "placementWidth" : 4.3, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 4.3, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 18.45, + "computedY" : 182.434, + "placementX" : 18.45, + "placementY" : 182.434, + "placementWidth" : 4.3, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 4.3, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 18.45, + "computedY" : 182.434, + "placementX" : 18.45, + "placementY" : 182.434, + "placementWidth" : 4.3, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 4.3, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 18.45, + "computedY" : 182.434, + "placementX" : 18.45, + "placementY" : 182.434, + "placementWidth" : 4.3, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 4.3, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 18.45, + "computedY" : 184.934, + "placementX" : 18.45, + "placementY" : 184.934, + "placementWidth" : 4.3, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 4.3, + "contentHeight" : 6.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EducationMarker_0[0]", + "entityName" : "EducationMarker_0", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 18, + "layer" : 18, + "computedX" : 18.45, + "computedY" : 184.934, + "placementX" : 18.45, + "placementY" : 184.934, + "placementWidth" : 4.3, + "placementHeight" : 4.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 4.3, + "contentHeight" : 4.3, + "margin" : { + "top" : 2.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 33.6, + "computedY" : 160.394, + "placementX" : 33.6, + "placementY" : 160.394, + "placementWidth" : 91.656, + "placementHeight" : 31.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.656, + "contentHeight" : 31.34, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_0[0]", + "entityName" : "EducationHead_0", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 33.6, + "computedY" : 182.434, + "placementX" : 33.6, + "placementY" : 182.434, + "placementWidth" : 91.656, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.656, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_0[0]/EducationDegree_0[0]", + "entityName" : "EducationDegree_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_0[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 33.6, + "computedY" : 182.704, + "placementX" : 33.6, + "placementY" : 182.704, + "placementWidth" : 51.713, + "placementHeight" : 8.76, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.713, + "contentHeight" : 8.76, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationInstitution_0[1]", + "entityName" : "EducationInstitution_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 14, + "layer" : 14, + "computedX" : 33.6, + "computedY" : 171.414, + "placementX" : 33.6, + "placementY" : 171.414, + "placementWidth" : 49.21, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.21, + "contentHeight" : 8.52, + "margin" : { + "top" : 2.5, + "right" : 0.0, + "bottom" : 2.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationDates_0[2]", + "entityName" : "EducationDates_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 14, + "layer" : 14, + "computedX" : 33.6, + "computedY" : 160.394, + "placementX" : 33.6, + "placementY" : 160.394, + "placementWidth" : 40.697, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.697, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 18.45, "computedY" : 118.054, - "placementX" : 20.6, + "placementX" : 18.45, "placementY" : 118.054, - "placementWidth" : 104.656, - "placementHeight" : 73.68, + "placementWidth" : 106.806, + "placementHeight" : 31.34, "startPage" : 0, "endPage" : 0, - "contentWidth" : 104.656, - "contentHeight" : 73.68, + "contentWidth" : 106.806, + "contentHeight" : 31.34, "margin" : { "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 2.8 + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -1964,23 +2504,23 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]", - "entityName" : "EducationHead_0", - "entityKind" : "ShapeContainerNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]", "childIndex" : 0, - "depth" : 7, - "layer" : 7, - "computedX" : 20.6, - "computedY" : 182.434, - "placementX" : 20.6, - "placementY" : 182.434, - "placementWidth" : 104.656, - "placementHeight" : 9.3, + "depth" : 10, + "layer" : 10, + "computedX" : 18.45, + "computedY" : 118.054, + "placementX" : 18.45, + "placementY" : 118.054, + "placementWidth" : 106.806, + "placementHeight" : 31.34, "startPage" : 0, "endPage" : 0, - "contentWidth" : 104.656, - "contentHeight" : 9.3, + "contentWidth" : 106.806, + "contentHeight" : 31.34, "margin" : { "top" : 0.0, "right" : 0.0, @@ -1994,23 +2534,23 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]/EducationRailMaskAboveFirstMarker[0]", - "entityName" : "EducationRailMaskAboveFirstMarker", - "entityKind" : "ShapeNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]", + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, - "computedX" : 20.1, - "computedY" : 189.234, - "placementX" : 20.1, - "placementY" : 189.234, - "placementWidth" : 1.55, - "placementHeight" : 2.5, + "depth" : 11, + "layer" : 11, + "computedX" : 18.45, + "computedY" : 118.054, + "placementX" : 18.45, + "placementY" : 118.054, + "placementWidth" : 106.806, + "placementHeight" : 31.34, "startPage" : 0, "endPage" : 0, - "contentWidth" : 1.55, - "contentHeight" : 2.5, + "contentWidth" : 106.806, + "contentHeight" : 31.34, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2024,23 +2564,23 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]/EducationRailFromFirstMarker[1]", - "entityName" : "EducationRailFromFirstMarker", - "entityKind" : "ShapeNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]", - "childIndex" : 1, - "depth" : 8, - "layer" : 8, - "computedX" : 20.6, - "computedY" : 182.434, - "placementX" : 20.6, - "placementY" : 182.434, - "placementWidth" : 0.55, - "placementHeight" : 2.5, + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 18.45, + "computedY" : 118.054, + "placementX" : 18.45, + "placementY" : 118.054, + "placementWidth" : 106.806, + "placementHeight" : 31.34, "startPage" : 0, "endPage" : 0, - "contentWidth" : 0.55, - "contentHeight" : 2.5, + "contentWidth" : 106.806, + "contentHeight" : 31.34, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2054,23 +2594,23 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]/EducationMarker_0[2]", - "entityName" : "EducationMarker_0", - "entityKind" : "EllipseNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]", - "childIndex" : 2, - "depth" : 8, - "layer" : 8, + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, "computedX" : 18.45, - "computedY" : 184.934, + "computedY" : 140.094, "placementX" : 18.45, - "placementY" : 184.934, + "placementY" : 140.094, "placementWidth" : 4.3, - "placementHeight" : 4.3, + "placementHeight" : 9.3, "startPage" : 0, "endPage" : 0, "contentWidth" : 4.3, - "contentHeight" : 4.3, + "contentHeight" : 9.3, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2084,23 +2624,23 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]/EducationDegree_0[3]", - "entityName" : "EducationDegree_0", - "entityKind" : "ParagraphNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]", - "childIndex" : 3, - "depth" : 8, - "layer" : 8, - "computedX" : 33.6, - "computedY" : 182.704, - "placementX" : 33.6, - "placementY" : 182.704, - "placementWidth" : 51.713, - "placementHeight" : 8.76, + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 18.45, + "computedY" : 140.094, + "placementX" : 18.45, + "placementY" : 140.094, + "placementWidth" : 4.3, + "placementHeight" : 9.3, "startPage" : 0, "endPage" : 0, - "contentWidth" : 51.713, - "contentHeight" : 8.76, + "contentWidth" : 4.3, + "contentHeight" : 9.3, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2114,28 +2654,28 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationInstitution_0[1]", - "entityName" : "EducationInstitution_0", - "entityKind" : "ParagraphNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", - "childIndex" : 1, - "depth" : 7, - "layer" : 7, - "computedX" : 33.6, - "computedY" : 171.414, - "placementX" : 33.6, - "placementY" : 171.414, - "placementWidth" : 49.21, - "placementHeight" : 8.52, + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, + "computedX" : 18.45, + "computedY" : 140.094, + "placementX" : 18.45, + "placementY" : 140.094, + "placementWidth" : 4.3, + "placementHeight" : 9.3, "startPage" : 0, "endPage" : 0, - "contentWidth" : 49.21, - "contentHeight" : 8.52, + "contentWidth" : 4.3, + "contentHeight" : 9.3, "margin" : { - "top" : 2.5, + "top" : 0.0, "right" : 0.0, - "bottom" : 2.5, - "left" : 13.0 + "bottom" : 0.0, + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -2144,28 +2684,28 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationDates_0[2]", - "entityName" : "EducationDates_0", - "entityKind" : "ParagraphNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", - "childIndex" : 2, - "depth" : 7, - "layer" : 7, - "computedX" : 33.6, - "computedY" : 160.394, - "placementX" : 33.6, - "placementY" : 160.394, - "placementWidth" : 40.697, - "placementHeight" : 8.52, + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 16, + "layer" : 16, + "computedX" : 18.45, + "computedY" : 140.094, + "placementX" : 18.45, + "placementY" : 140.094, + "placementWidth" : 4.3, + "placementHeight" : 9.3, "startPage" : 0, "endPage" : 0, - "contentWidth" : 40.697, - "contentHeight" : 8.52, + "contentWidth" : 4.3, + "contentHeight" : 9.3, "margin" : { "top" : 0.0, "right" : 0.0, - "bottom" : 11.0, - "left" : 13.0 + "bottom" : 0.0, + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -2174,23 +2714,23 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_1[3]", - "entityName" : "EducationHead_1", - "entityKind" : "ShapeContainerNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", - "childIndex" : 3, - "depth" : 7, - "layer" : 7, - "computedX" : 20.6, - "computedY" : 140.094, - "placementX" : 20.6, - "placementY" : 140.094, - "placementWidth" : 104.656, - "placementHeight" : 9.3, + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 17, + "layer" : 17, + "computedX" : 18.45, + "computedY" : 142.594, + "placementX" : 18.45, + "placementY" : 142.594, + "placementWidth" : 4.3, + "placementHeight" : 6.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 104.656, - "contentHeight" : 9.3, + "contentWidth" : 4.3, + "contentHeight" : 6.8, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2204,13 +2744,13 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_1[3]/EducationMarker_1[0]", + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EducationMarker_1[0]", "entityName" : "EducationMarker_1", "entityKind" : "EllipseNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_1[3]", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, - "depth" : 8, - "layer" : 8, + "depth" : 18, + "layer" : 18, "computedX" : 18.45, "computedY" : 142.594, "placementX" : 18.45, @@ -2221,6 +2761,66 @@ "endPage" : 0, "contentWidth" : 4.3, "contentHeight" : 4.3, + "margin" : { + "top" : 2.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 33.6, + "computedY" : 118.054, + "placementX" : 33.6, + "placementY" : 118.054, + "placementWidth" : 91.656, + "placementHeight" : 31.34, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.656, + "contentHeight" : 31.34, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_1[0]", + "entityName" : "EducationHead_1", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 33.6, + "computedY" : 140.094, + "placementX" : 33.6, + "placementY" : 140.094, + "placementWidth" : 91.656, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.656, + "contentHeight" : 9.3, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2234,13 +2834,13 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_1[3]/EducationDegree_1[1]", + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_1[0]/EducationDegree_1[0]", "entityName" : "EducationDegree_1", "entityKind" : "ParagraphNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_1[3]", - "childIndex" : 1, - "depth" : 8, - "layer" : 8, + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_1[0]", + "childIndex" : 0, + "depth" : 15, + "layer" : 15, "computedX" : 33.6, "computedY" : 140.364, "placementX" : 33.6, @@ -2264,13 +2864,13 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationInstitution_1[4]", + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationInstitution_1[1]", "entityName" : "EducationInstitution_1", "entityKind" : "ParagraphNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", - "childIndex" : 4, - "depth" : 7, - "layer" : 7, + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 1, + "depth" : 14, + "layer" : 14, "computedX" : 33.6, "computedY" : 129.074, "placementX" : 33.6, @@ -2285,7 +2885,7 @@ "top" : 2.5, "right" : 0.0, "bottom" : 2.5, - "left" : 13.0 + "left" : 0.0 }, "padding" : { "top" : 0.0, @@ -2294,13 +2894,13 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationDates_1[5]", + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationDates_1[2]", "entityName" : "EducationDates_1", "entityKind" : "ParagraphNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", - "childIndex" : 5, - "depth" : 7, - "layer" : 7, + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "childIndex" : 2, + "depth" : 14, + "layer" : 14, "computedX" : 33.6, "computedY" : 118.054, "placementX" : 33.6, @@ -2315,7 +2915,7 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 13.0 + "left" : 0.0 }, "padding" : { "top" : 0.0, diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java index 9782fe9f3..100b4a38e 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java @@ -5,6 +5,8 @@ import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.ShapeBuilder; import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.dsl.TimelineMarker; +import com.demcha.compose.document.dsl.TimelineRailExtent; import com.demcha.compose.document.image.DocumentImageData; import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.node.DocumentNode; @@ -63,7 +65,6 @@ import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MONOGRAM_TRACKING_EM; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.RATING_MUTED; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.RULE_MUTED; -import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_BACKGROUND; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_BODY_TOP; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_INNER_WIDTH; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_PAD_X; @@ -297,77 +298,96 @@ private static DocumentNode skillMeter(double level) { * The education rail: a hairline down the left of the block with a dot * on each entry's first line. * - *

      The rail is the section's left accent, which runs the full height of - * the block. The first entry masks the stretch above its dot and redraws - * it below, so the rail begins at the first marker instead of at the top - * of the block.

      + *

      The rail spans the entries, which is what {@code ENTRY_BOUNDS} means and what the + * block has always drawn. It used to be the section's left accent, and the first entry + * filled its own head band with the sidebar colour, masked the rail's protruding edge + * above its dot and redrew the rail below it, meaning to start the line at the first + * marker. Measured against the render, that never happened: an accent draws above the + * fill and above the mask, so the rail stayed visible for the 2.5pt above the first dot + * and the only thing the construction achieved was drawing that stretch below the dot + * twice. The mask and the redraw are gone; the rail is the timeline's and says what it + * does.

      + * + *

      Starting the line at the first marker while still running it to the foot of the + * entries is not something the extent vocabulary can say today — see the follow-up + * table in the integration plan.

      */ private static void renderEducation(SectionBuilder section, EntriesSection education) { sidebarHeading(section, education.title(), EDUCATION_HEADING_TO_BODY); - section.addSection("EducationRail", rail -> { - rail.spacing(0); - rail.margin(new DocumentInsets(0, 0, 0, EDUCATION_RAIL_X)); - rail.accentLeft(RULE_MUTED, EDUCATION_RAIL_WIDTH); + SectionBuilder holder = new SectionBuilder(); + holder.name("EducationRailHolder"); + holder.spacing(0); + // The axis column centres the rail on itself, so the timeline starts half a dot left + // of the column the accent drew on and the line lands back on it. + holder.margin(new DocumentInsets(0, 0, 0, + EDUCATION_RAIL_X - EDUCATION_MARKER_DIAMETER / 2.0)); + holder.addTimeline(timeline -> { + timeline.markerOnRail() + .rail(rail -> rail + .stroke(DocumentStroke.of(RULE_MUTED, EDUCATION_RAIL_WIDTH)) + .extent(TimelineRailExtent.ENTRY_BOUNDS)) + .axisWidth(EDUCATION_MARKER_DIAMETER) + .markerGap(EDUCATION_TEXT_X - EDUCATION_MARKER_DIAMETER / 2.0) + .gutter(0) + .spacing(EDUCATION_ENTRY_GAP); List entries = education.entries(); for (int i = 0; i < entries.size(); i++) { int index = i; CvEntry entry = entries.get(i); - renderEducationHead(rail, entry, index); - rail.addParagraph(p -> p - .name("EducationInstitution_" + index) - .text(entry.subtitle()) - .textStyle(style(BODY_FONT, BODY_SIZE, TEXT_MUTED, - DocumentTextDecoration.ITALIC)) - .margin(new DocumentInsets( - EDUCATION_LINE_GAP, 0, EDUCATION_LINE_GAP, EDUCATION_TEXT_X))); - double entryGap = i + 1 < entries.size() ? EDUCATION_ENTRY_GAP : 0; - rail.addParagraph(p -> p - .name("EducationDates_" + index) - .text(entry.date()) - .textStyle(body()) - .margin(new DocumentInsets(0, 0, entryGap, EDUCATION_TEXT_X))); + timeline.entry(educationMarker(index), e -> e.content(body -> { + body.spacing(0); + renderEducationHead(body, entry, index); + body.addParagraph(p -> p + .name("EducationInstitution_" + index) + .text(entry.subtitle()) + .textStyle(style(BODY_FONT, BODY_SIZE, TEXT_MUTED, + DocumentTextDecoration.ITALIC)) + .margin(new DocumentInsets( + EDUCATION_LINE_GAP, 0, EDUCATION_LINE_GAP, 0))); + body.addParagraph(p -> p + .name("EducationDates_" + index) + .text(entry.date()) + .textStyle(body()) + .margin(DocumentInsets.zero())); + })); } }); + DocumentNode educationRail = holder.build(); + section.addLayerStack(stack -> stack + .name("EducationRail") + .layer(educationRail, LayerAlign.TOP_LEFT, 0)); + } + + /** + * The accent dot that marks a degree, in a box as tall as the head band it rides. + * + *

      The dot used to be centred in that band by the container positioning it; a timeline + * top-aligns its marker, so the band height is declared here and the dot carries the half + * band above it. Same box, same centre, and the rail still runs through it.

      + */ + private static TimelineMarker educationMarker(int index) { + double halfBand = (ENTRY_HEAD_HEIGHT - EDUCATION_MARKER_DIAMETER) / 2.0; + return TimelineMarker.custom(EDUCATION_MARKER_DIAMETER, ENTRY_HEAD_HEIGHT, + column -> column.addEllipse(ellipse -> ellipse + .name("EducationMarker_" + index) + .circle(EDUCATION_MARKER_DIAMETER) + .fillColor(ACCENT_PRIMARY) + .margin(new DocumentInsets(halfBand, 0, 0, 0)))); } private static void renderEducationHead(SectionBuilder rail, CvEntry entry, int index) { - DocumentNode marker = new EllipseBuilder() - .name("EducationMarker_" + index) - .circle(EDUCATION_MARKER_DIAMETER) - .fillColor(ACCENT_PRIMARY) - .build(); DocumentNode degree = paragraph("EducationDegree_" + index, entry.title(), style(BODY_FONT, EDUCATION_DEGREE_SIZE, TEXT_PRIMARY, DocumentTextDecoration.BOLD), TextAlign.LEFT); - rail.addContainer(head -> { - head.name("EducationHead_" + index) - .rectangle(SIDEBAR_INNER_WIDTH - EDUCATION_RAIL_X, ENTRY_HEAD_HEIGHT) - .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE); - if (index == 0) { - double halfBand = (ENTRY_HEAD_HEIGHT - EDUCATION_MARKER_DIAMETER) / 2.0; - DocumentNode maskAboveFirstMarker = new ShapeBuilder() - .name("EducationRailMaskAboveFirstMarker") - // One point wider than the rail, and pulled half a - // point left, so the mask covers the rail's own edge - // instead of leaving a hairline of it showing. - .size(EDUCATION_RAIL_WIDTH + 1.0, halfBand) - .fillColor(SIDEBAR_BACKGROUND) - .build(); - DocumentNode railFromFirstMarker = new ShapeBuilder() - .name("EducationRailFromFirstMarker") - .size(EDUCATION_RAIL_WIDTH, halfBand) - .fillColor(RULE_MUTED) - .build(); - head.fillColor(SIDEBAR_BACKGROUND) - .position(maskAboveFirstMarker, -0.5, 0, LayerAlign.TOP_LEFT) - .position(railFromFirstMarker, 0, - (ENTRY_HEAD_HEIGHT + EDUCATION_MARKER_DIAMETER) / 2.0, - LayerAlign.TOP_LEFT); - } - head.position(marker, -EDUCATION_MARKER_DIAMETER / 2.0, 0, LayerAlign.CENTER_LEFT) - .position(degree, EDUCATION_TEXT_X, 0, LayerAlign.CENTER_LEFT); - }); + // The dot has left this band for the timeline's axis column, so the degree starts at + // the content column rather than walking in past the rail. + rail.addContainer(head -> head + .name("EducationHead_" + index) + .rectangle(SIDEBAR_INNER_WIDTH - EDUCATION_RAIL_X - EDUCATION_TEXT_X, + ENTRY_HEAD_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .position(degree, 0, 0, LayerAlign.CENTER_LEFT)); } // -- languages ------------------------------------------------------- From e2b4bc508c36a4498580d952c0b904423b2a4467 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 11:47:34 +0100 Subject: [PATCH 60/85] test(qa): pin what Violet Grid promises past its one page The preset is drawn for a single sheet and documents what happens when a CV outgrows it: the sheet runs onto a second page rather than losing anything, and each role is held together so none is cut in half. The canonical fixture fits one page, so nothing exercised either half of that and nothing would have noticed it breaking. overflowCv() is the canonical document with six earlier roles appended and no other change. Six rather than three on purpose: three leaves the roles on the first page and moves only the sections after them, which never breaks the rail; six carries the list itself over the boundary, which is the case worth pinning. The entries host then spans both pages and its box as a whole reads bot=-104.201, a coordinate belonging to neither. A role is identified by the parts that carry its index - its dates, its disc, its title line, its bullets - and never by the box that holds them. The promise is about the role; naming the container would pin one way of drawing it, and the test would need rewriting the moment that changed, which is exactly when it is meant to be watching. Three tests. The sheet grows a page and every part of a role lands on one page; the sections after the roles follow them over; and all nine roles hold the same three columns on both pages - dates at 29.905 flush with the page margin, disc centres at 105.796, copy at 125.826 by 439.535. The last is the one a second page can break quietly, so it samples every role rather than one per column. Measured, not assumed: a 1pt shift in MARKER_OFFSET turns the column test red with "the disc's centre is the rail". Co-Authored-By: Claude Opus 5 --- .../cv/presets/VioletGridFixtures.java | 54 +++++ .../VioletGridOverflowPaginationTest.java | 192 ++++++++++++++++++ 2 files changed, 246 insertions(+) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridOverflowPaginationTest.java diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridFixtures.java index 88876cecc..82ef20428 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridFixtures.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridFixtures.java @@ -49,6 +49,60 @@ static CvDocument canonicalCv() { return new CvDocument(identity(), placements); } + /** + * The canonical CV with six earlier roles appended, which is enough to run the sheet + * past one page and to carry the role list itself across the break. + * + *

      Only the experience list grows. Every other section, the identity and every layout + * constant are the canonical ones, so what this fixture exercises is the preset's stated + * overflow behaviour — a CV with more content than the design holds runs onto a second + * page rather than losing anything — and not some other design.

      + */ + static CvDocument overflowCv() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.MAIN, summary())); + placements.add(new CvDocument.Placement(Slot.MAIN, skills())); + placements.add(new CvDocument.Placement(Slot.MAIN, tools())); + placements.add(new CvDocument.Placement(Slot.MAIN, experienceWithEarlierRoles())); + placements.add(new CvDocument.Placement(Slot.MAIN, projects())); + placements.add(new CvDocument.Placement(Slot.FOOTER, education())); + placements.add(new CvDocument.Placement(Slot.FOOTER, languages())); + placements.add(new CvDocument.Placement(Slot.FOOTER, quote())); + return new CvDocument(identity(), placements); + } + + /** + * The canonical three roles, then six earlier ones of the same shape. + * + *

      Six rather than three on purpose: with three the roles still fit the first page and + * only the sections after them move, which exercises the bands but never breaks the rail. + * Six carries the list itself across the boundary, which is the case worth pinning.

      + */ + private static EntriesSection experienceWithEarlierRoles() { + List entries = new ArrayList<>(experience().entries()); + entries.add(earlierRole("Product Designer", "Harbour Labs", "2018 - 2020")); + entries.add(earlierRole("Interaction Designer", "Ridgeway Studio", "2016 - 2018")); + entries.add(earlierRole("Junior Designer", "Fieldnote Agency", "2014 - 2016")); + entries.add(earlierRole("Design Intern", "Fieldnote Agency", "2013 - 2014")); + entries.add(earlierRole("Visual Designer", "Copperline Co", "2012 - 2013")); + entries.add(earlierRole("Design Assistant", "Copperline Co", "2011 - 2012")); + return new EntriesSection("EXPERIENCE", entries); + } + + private static CvEntry earlierRole(String title, String employer, String dates) { + return CvEntry.builder(title) + .subtitle(employer) + .place("San Francisco, CA") + .date(dates) + .body(String.join(NEWLINE, + "Designed and shipped product surfaces across web and mobile, " + + "working from research through to handover.", + "Ran usability sessions and fed the findings back into the next " + + "iteration of the interface.", + "Maintained the shared component library and its documentation.")) + .build(); + } + static CvIdentity identity() { return new CvIdentity( CvName.of("SOFIA", "MARTINEZ"), diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridOverflowPaginationTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridOverflowPaginationTest.java new file mode 100644 index 000000000..45a3d004d --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/VioletGridOverflowPaginationTest.java @@ -0,0 +1,192 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.snapshot.LayoutNodeSnapshot; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.TreeSet; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.within; + +/** + * What {@link VioletGrid} promises past its one page. + * + *

      The preset is drawn for a single sheet, and says so: a CV with more content than the + * design holds "runs onto a second page rather than losing anything — each experience entry + * is held together, so a role is never cut in half". The canonical fixture fits one page, so + * nothing exercised that promise and nothing would notice it breaking. This does, on + * {@link VioletGridFixtures#overflowCv()}, which is the canonical document with six earlier + * roles appended and no other change.

      + * + *

      A role is identified here by the parts that carry its index — its dates, its disc, its + * title line and its bullets — and never by the box that happens to hold them. The promise + * is about the role, and a test that named the container would be pinning one way of + * drawing it: it would have to be rewritten to say the same thing the moment the container + * changed, which is exactly when it is supposed to be watching.

      + * + *

      Three things are pinned. The sheet grows a page rather than dropping content, and every + * part of a role lands on one page. Which role sits on which page is recorded too, because a + * change there is a change to the design's pagination and should have to be argued for rather + * than discovered later. And the three columns hold their x on both pages: the dates + * hang in the left margin and the disc rides the rail by construction on a sheet that never + * breaks, but whether they still do on a page the design was not drawn for is a separate + * question.

      + */ +class VioletGridOverflowPaginationTest { + + /** + * The parts a role is made of, each named {@code _} or deeper. + * + *

      None of these is a prefix of another: {@code Highlights_0} and {@code + * HighlightDot_0_1} both survive the {@code Highlight_} test, because what follows the + * prefix has to be digits and then either nothing or an underscore.

      + */ + private static final List ROLE_PARTS = List.of( + "Period_", "Marker_", "TitleTable_", "Role_", "Location_", + "Highlights_", "HighlightDot_", "Highlight_"); + + @Test + void theSheetGrowsAPageAndNoRoleIsCutInHalf() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + VioletGrid.create().compose(session, VioletGridFixtures.overflowCv()); + var snapshot = session.layoutSnapshot(); + + assertThat(snapshot.totalPages()) + .as("the overflow document runs onto a second page rather than losing content") + .isEqualTo(2); + + // Every page any part of a role was placed on. A role held together contributes + // exactly one; a role cut in half contributes two, and so does one whose bullets + // were left behind on the page above. + Map> pagesPerRole = new TreeMap<>(); + for (LayoutNodeSnapshot node : snapshot.nodes()) { + int role = roleOf(node.entityName()); + if (role < 0) { + continue; + } + TreeSet pages = + pagesPerRole.computeIfAbsent(role, key -> new TreeSet<>()); + pages.add(node.startPage()); + pages.add(node.endPage()); + } + + assertThat(pagesPerRole.keySet()) + .as("nine roles, three canonical and six earlier") + .containsExactly(0, 1, 2, 3, 4, 5, 6, 7, 8); + assertThat(pagesPerRole) + .as("every role is held together: a role is never cut in half") + .allSatisfy((role, pages) -> assertThat(pages) + .as("role %d spans pages %s", role, pages).hasSize(1)); + + Map ownership = new TreeMap<>(); + pagesPerRole.forEach((role, pages) -> ownership.put(role, pages.first())); + assertThat(ownership) + .as("which role sits on which page is part of the design's pagination: the" + + " break falls between the sixth and the seventh") + .containsExactlyInAnyOrderEntriesOf(Map.of( + 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, + 6, 1, 7, 1, 8, 1)); + } + } + + @Test + void theSectionsAfterTheRolesFollowThemOntoTheSecondPage() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + VioletGrid.create().compose(session, VioletGridFixtures.overflowCv()); + Map pages = new TreeMap<>(); + for (LayoutNodeSnapshot node : session.layoutSnapshot().nodes()) { + String name = node.entityName(); + if (name != null && (name.equals("ProjectsHeading") || name.equals("Project_0") + || name.equals("CredentialHeadings") || name.equals("QuoteBand"))) { + pages.put(name, node.startPage()); + } + } + assertThat(pages) + .as("downstream pagination: everything after the roles is on the second page") + .containsExactlyInAnyOrderEntriesOf(Map.of( + "ProjectsHeading", 1, + "Project_0", 1, + "CredentialHeadings", 1, + "QuoteBand", 1)); + } + } + + @Test + void theThreeColumnsKeepTheirXOnBothPages() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + VioletGrid.create().compose(session, VioletGridFixtures.overflowCv()); + + Map> columns = new TreeMap<>(); + for (LayoutNodeSnapshot node : session.layoutSnapshot().nodes()) { + String name = node.entityName(); + if (name == null) { + continue; + } + if (name.startsWith("Period_")) { + column(columns, "date").add(node.placementX()); + } else if (name.startsWith("Marker_")) { + // The disc's centre, which is the line the rail is drawn on. + column(columns, "marker") + .add(node.placementX() + node.placementWidth() / 2.0); + } else if (name.startsWith("TitleTable_")) { + column(columns, "content").add(node.placementX()); + column(columns, "contentWidth").add(node.placementWidth()); + } + } + + // All nine roles, not one sample per column: a single sample would pass on a + // document whose second page had drifted, and a second page is the whole point + // of this fixture. + assertColumn(columns, "date", 29.905, + "the dates hang in the left margin, flush with the page margin"); + assertColumn(columns, "marker", 105.796, "the disc's centre is the rail"); + assertColumn(columns, "content", 125.826, + "the copy starts one entry indent right of the rail"); + assertColumn(columns, "contentWidth", 439.535, + "and runs the full entry width on both pages"); + } + } + + /** + * Which role a node belongs to, or -1 for a node that is not part of one. + * + * @param name the node's entity name, possibly {@code null} + * @return the role's index, or -1 + */ + private static int roleOf(String name) { + if (name == null) { + return -1; + } + for (String part : ROLE_PARTS) { + if (!name.startsWith(part)) { + continue; + } + String rest = name.substring(part.length()); + int digits = 0; + while (digits < rest.length() && Character.isDigit(rest.charAt(digits))) { + digits++; + } + if (digits == 0 || (digits < rest.length() && rest.charAt(digits) != '_')) { + continue; + } + return Integer.parseInt(rest.substring(0, digits)); + } + return -1; + } + + private static List column(Map> columns, String key) { + return columns.computeIfAbsent(key, name -> new ArrayList<>()); + } + + private static void assertColumn(Map> columns, String key, + double expected, String because) { + assertThat(columns.get(key)).as(because).hasSize(9) + .allSatisfy(value -> assertThat(value).isCloseTo(expected, within(0.01))); + } +} From e7b943fe1605fe843ff6c8fbf2c58a547a3e92c1 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 12:50:50 +0100 Subject: [PATCH 61/85] refactor(templates): set Serif Headline's bullet gap as a measurement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The highlight lists asked for their air by writing the marker "• " and letting the second space stand in for a gap, with a comment saying the marker was the only place that gap could be authored. Two things were wrong with that. A list marker's authored trailing whitespace is stripped and a single space re-appended, so the second space has never reached the page: measured off the render, the gap between the dot's advance and the text has always been 2.067pt, one space, not two. And the gap has a surface of its own now, so the marker is no longer the only place to put it. The dot and the gap are now separate, the gap being 0.256 em of the body face - that face's real space advance, which is 0.049pt wider than the 0.25 em rounding SPACE_ADVANCE_EM keeps for the tracking spacer. With a real gap the list can carry a real hanging indent, and that is the part a reader sees: a highlight that wraps used to resume 1.518pt PAST its own first line, because the legacy indent pads the continuation back to the marker column in whole spaces and cannot land on anything finer. Every dot still sits at x=60.748 and every first line still starts at x=67.498, both to 0.001. The two continuations on the canonical sheet move 69.016 -> 67.498. The list boxes and the separators below them are identical, so the sheet is still one page and nothing downstream moved. 1541 pixels change, maxDelta 185, confined to two row bands; the PNG baseline is refreshed with the rest of the campaign's. Neither parity gate can see any of this - a list's items are not layout nodes, so the snapshot records the box and nothing in it, and 1.5pt on two lines is far inside the pixel budget. So the contract is read off the glyph positions instead: one marker column, one text column, and wrapped lines on the text one. Sabotaged against the previous implementation, it reports that no continuation has anything of its own in the marker column - which is precisely the padding it replaces. --- .../cv/presets/SerifHeadlineSmokeTest.java | 150 ++++++++++++++++++ .../cv/presets/SerifHeadlineMain.java | 8 +- .../cv/presets/SerifHeadlineStyles.java | 19 ++- 3 files changed, 172 insertions(+), 5 deletions(-) diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java index e6b51769b..6517e5c08 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java @@ -3,6 +3,7 @@ import com.demcha.compose.GraphCompose; import com.demcha.compose.document.api.DocumentSession; import com.demcha.compose.document.exceptions.AtomicNodeTooLargeException; +import com.demcha.compose.document.snapshot.LayoutNodeSnapshot; import com.demcha.compose.document.templates.api.DocumentTemplate; import com.demcha.compose.document.templates.core.identity.Contact; import com.demcha.compose.document.templates.core.identity.Link; @@ -20,13 +21,18 @@ import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; import org.apache.pdfbox.text.PDFTextStripper; +import org.apache.pdfbox.text.TextPosition; import org.junit.jupiter.api.Test; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.Map; +import java.util.TreeMap; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.Assertions.within; /** * Smoke test for {@link SerifHeadline} — proves the preset renders a @@ -38,6 +44,9 @@ */ class SerifHeadlineSmokeTest { + /** Everything right of this belongs to the aside, not the main rail. */ + private static final double MAIN_RAIL_RIGHT_EDGE = 380.0; + private static byte[] render(CvDocument doc) throws Exception { // The preset owns its page geometry, so the session starts unconfigured. try (DocumentSession session = GraphCompose.document().create()) { @@ -109,6 +118,147 @@ void rendersOneCanonicalPage() throws Exception { } } + @Test + void everyHighlightLineStartsOnTheSameTextColumn() throws Exception { + // Neither parity gate can see this. A list's items are not layout nodes, + // so the snapshot records the list's box and nothing inside it, and two + // continuation lines moving 1.5pt sits far inside the pixel budget. The + // contract is that the dot has a column and the text has a column, and + // that a highlight which wraps resumes on the text one — so it is read + // off the glyph positions, which is where it actually lives. + List lines = highlightLines( + render(SerifHeadlineFixtures.canonicalCv())); + + assertThat(lines).filteredOn(line -> !line.wrapped()) + .as("every authored highlight is here") + .hasSize(11); + assertThat(lines).filteredOn(HighlightLine::wrapped) + .as("and at least one of them wraps, with nothing of its own in the marker" + + " column — a continuation padded back to that column with spaces would" + + " land here too, and is what this is watching for") + .isNotEmpty(); + + double textColumn = lines.get(0).textX(); + double markerColumn = lines.stream().filter(line -> !line.wrapped()) + .mapToDouble(HighlightLine::markerX).findFirst().orElse(Double.NaN); + assertThat(lines).allSatisfy(line -> assertThat(line.textX()) + .as("the %s line %s starts its text on the column", + line.wrapped() ? "wrapped" : "first", line.text()) + .isCloseTo(textColumn, within(0.01))); + assertThat(lines).filteredOn(HighlightLine::wrapped) + .as("a wrapped line resumes on the text, never in the marker column") + .allSatisfy(line -> assertThat(line.markerX()).isNaN()); + + // 6.750pt between the two columns: 4.683 of dot advance and the 2.067 + // the design authors as the gap. Pinned because it is the number the + // migration had to solve for, and nothing else on the sheet would move + // if it drifted. + assertThat(textColumn - markerColumn) + .as("the dot's advance plus the authored gap") + .isCloseTo(6.750, within(0.01)); + } + + /** One rendered highlight line: where its dot is, if any, and where its text starts. */ + private record HighlightLine(double markerX, double textX, String text) { + + boolean wrapped() { + return Double.isNaN(markerX); + } + } + + /** + * The highlight lines of the canonical sheet, read off the page. + * + *

      Scoped by the y-bands of the {@code Highlights_*} list boxes and to the + * main rail's half of the sheet, so the aside's own text cannot wander in.

      + * + * @param pdfBytes the rendered sheet + * @return one entry per rendered line + */ + private static List highlightLines(byte[] pdfBytes) throws Exception { + List bands = new ArrayList<>(); + try (DocumentSession session = GraphCompose.document().create()) { + SerifHeadline.create().compose(session, SerifHeadlineFixtures.canonicalCv()); + for (LayoutNodeSnapshot node : session.layoutSnapshot().nodes()) { + if (node.entityName() != null && node.entityName().startsWith("Highlights_")) { + bands.add(new double[] { + node.placementY(), node.placementY() + node.placementHeight()}); + } + } + } + assertThat(bands).as("three highlight lists on the canonical sheet").hasSize(3); + + List glyphs = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + double pageHeight = document.getPage(0).getMediaBox().getHeight(); + PDFTextStripper stripper = new PDFTextStripper() { + @Override + protected void writeString(String text, List positions) { + for (TextPosition position : positions) { + // Every glyph that belongs to a highlight, with the + // baseline it sits on. The call boundaries are no use + // here: a marker is its own text run, so a first line + // arrives as two calls, and a call can reach across both + // columns of the sheet. Grouping by baseline afterwards + // is what puts a dot back with its own text. + double y = pageHeight - position.getYDirAdj(); + boolean inBand = bands.stream() + .anyMatch(band -> y > band[0] - 1.5 && y < band[1] + 1.5); + if (!inBand || position.getXDirAdj() > MAIN_RAIL_RIGHT_EDGE) { + continue; + } + glyphs.add(new Glyph(position.getXDirAdj(), y, position.getUnicode())); + } + } + }; + stripper.setSortByPosition(true); + stripper.getText(document); + } + + // The dot does not survive the text layer as "•" — its font carries no + // ToUnicode for it, so it extracts as a replacement character. The + // marker column is therefore the leftmost x any highlight glyph sits at, + // read off the page rather than assumed, and a baseline with a glyph + // there is one that shows a dot. That is what makes the interesting + // number — where the TEXT starts — comparable between a first line and a + // wrapped one. + double markerColumn = glyphs.stream().mapToDouble(Glyph::x).min().orElse(Double.NaN); + Map> byBaseline = new TreeMap<>(Comparator.reverseOrder()); + for (Glyph glyph : glyphs) { + byBaseline.computeIfAbsent(Math.round(glyph.y() * 4.0), key -> new ArrayList<>()) + .add(glyph); + } + + List lines = new ArrayList<>(byBaseline.size()); + for (List baseline : byBaseline.values()) { + boolean hasMarker = baseline.stream() + .anyMatch(glyph -> Math.abs(glyph.x() - markerColumn) < 0.01); + StringBuilder body = new StringBuilder(); + double textX = Double.NaN; + for (Glyph glyph : baseline.stream().sorted(Comparator.comparingDouble(Glyph::x)) + .toList()) { + if (hasMarker && Math.abs(glyph.x() - markerColumn) < 0.01) { + continue; + } + if (Double.isNaN(textX) && !glyph.unicode().isBlank()) { + textX = glyph.x(); + } + if (!Double.isNaN(textX)) { + body.append(glyph.unicode()); + } + } + if (!Double.isNaN(textX)) { + lines.add(new HighlightLine(hasMarker ? markerColumn : Double.NaN, textX, + body.length() > 18 ? body.substring(0, 18) : body.toString())); + } + } + return lines; + } + + /** One extracted glyph: where it sits and what it is. */ + private record Glyph(double x, double y, String unicode) { + } + @Test void channelsReachThePdfAsLinks() throws Exception { // The dial and mail targets are built from the values. They are diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java index b5a43f43c..ed4f4c1cf 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java @@ -22,6 +22,7 @@ import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.BULLET_LEADING; import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.BULLETS_TO_SEPARATOR; import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.BULLET_MARKER; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.BULLET_MARKER_GAP; import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CARD_BODY_LEADING; import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CARD_TECH_TO_BODY; import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CARD_TITLE_TO_TECH; @@ -206,12 +207,13 @@ private static void renderEntryBody(SectionBuilder rail, CvEntry entry) { }); List highlights = SerifHeadlineText.lines(entry.body()); if (!highlights.isEmpty()) { - // marker(), not bullet(): the design leaves more air between the - // dot and its text than the built-in bullet does, and the marker - // is the only place that gap can be authored. + // The gap after the dot is a measurement, so a highlight that wraps + // resumes on its own text instead of the marker column. rail.addList(list -> list .name("Highlights_" + compact(entry.title())) .marker(BULLET_MARKER) + .markerGap(BULLET_MARKER_GAP) + .hangingIndent(true) .items(highlights) .textStyle(body()) .lineSpacing(BULLET_LEADING) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java index c5246072f..1d06ab064 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java @@ -143,8 +143,23 @@ static double gap(double inkPx, double blankAboveTheGap, double blankBelowTheGap static final double TRACKING_EM = 0.17; static final double SPACE_ADVANCE_EM = 0.25; - /** The marker string: the dot and the space the design leaves after it. */ - static final String BULLET_MARKER = "• "; + /** The marker: the dot, with the gap after it authored as {@link #BULLET_MARKER_GAP}. */ + static final String BULLET_MARKER = "•"; + + /** + * The gap between the dot and its text — the body face's own space advance. + * + *

      2.067pt at {@link #BODY_SIZE}, solved against the frozen render rather + * than assumed. The marker used to be written {@code "• "}, but a list + * marker's authored trailing whitespace is stripped and a single space + * re-appended, so the page has only ever shown one space of gap; setting + * that one space as a real measurement puts the text back where it was and + * brings the wrapped lines it governs onto it, instead of 1.518pt past.

      + * + *

      Not {@link #SPACE_ADVANCE_EM}: that 0.25 em is a rounding kept for the + * tracking spacer, and it is 0.049pt short of this face's real advance.

      + */ + static final double BULLET_MARKER_GAP = 0.256 * BODY_SIZE; static final double BLANK_BODY = blankBelow(BODY_SIZE); static final double BLANK_SMALL = blankBelow(SMALL_SIZE); From fe8049359b1e8421b3d6677dcd3d42b6e4ad0b90 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 12:56:14 +0100 Subject: [PATCH 62/85] refactor(templates): drop a Timeline Minimal bullet that never reached a page The module body lines asked for a dash marker with bulletOffset("-") and have never drawn one. A paragraph's bullet prefix is emitted only where the indent strategy asks for it - the first line under indentFirstLine, the wrapped ones under indentWrappedLines - and this site sets no strategy, so it takes the default, which asks for neither. The dash was built, measured for the continuation indent, and then applied to no line. So there is nothing here to move onto the list API: the design on the page is plain lines, and the call was only claiming otherwise. It goes, and a comment says why, so the next reader does not restore it as a missing marker. Proven rather than assumed to change nothing: the shared visual parity gate was rerun for this preset with the budget and the per-pixel tolerance both set to 0, before and after, and timeline_minimal matched its committed baseline exactly on both runs. (engineering_resume fails at 0/0 either way, by the 306 pixels already recorded against it; it is untouched here.) Its snapshot, pagination, text-layer and fidelity gates are unchanged. Restoring the dash would be a different change - a visual one, needing a new baseline and a decision that the marker is wanted - and is recorded as a question rather than made here. --- .../document/templates/cv/presets/TimelineMinimal.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java index 57bf32b97..82713ad00 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimal.java @@ -541,12 +541,17 @@ private void addMainModule(SectionBuilder main, ColumnPagination.Block module) { .margin(DocumentInsets.zero())); } } else { + // No marker. A bulletOffset used to be set here, and it + // reached no page: the prefix is drawn only under an + // indent strategy that asks for it, and a paragraph's + // default asks for neither the first line nor the + // wrapped ones. What the design has always shown is + // these lines set plain, so that is what it now says. for (String line : lines) { block.addParagraph(paragraph -> paragraph .text(line) .textStyle(mainBulletStyle()) .lineSpacing(1.2) - .bulletOffset("-") .margin(DocumentInsets.zero())); } } From 0bd0ff8204b38f8508da5826345ab9b0968dc266 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 13:06:36 +0100 Subject: [PATCH 63/85] refactor(templates): give the receipt real tracking instead of padded words Six places built their spaced caps by rewriting the string with a space between every pair of letters. It drew the right page and stored the wrong file: extracted, the canonical receipt read "N O R T H W I N D P A Y", "A M O U N T C O L L E C T E D", "T R A N S F E R D E T A I L S", "N O T E S". A receipt is a record - it gets searched, copied out of, read aloud by a screen reader, and parsed by whatever the recipient files it with - and none of that survives a name spelled out letter by letter. Tracking is typography, so it moves to the style. ReceiptStyles.eyebrow and .groupTitle carry SPACED_CAPS, which is what their own javadoc has always claimed they were ("small spaced-caps caption", "spaced-caps heading"), and the five callers now pass the words. The masthead keeps its conditional: with no mark the issuer's name IS the wordmark and takes the caps, beside a mark it stays as written, so the tracking is applied there rather than in the shared style. Geometry, from the snapshot: one page, 130 nodes, and 9 of them changed - every one a placementWidth, none an x, y, height or page. The labels narrow 5-9% (166.474 -> 152.530 at the widest) because 0.18 em of tracking is less than the whole space glyph the transform used, which is the trade SPACED_CAPS was chosen for: the same look at close to the old width rather than a per-gap match that would have pushed every heading wider. Nothing re-flowed and nothing moved. 4059 pixels of 500395 change, maxDelta 242, so the PNG is re-recorded - one baseline, scoped to this test, and all 126 hashed before and after to show nothing else moved. The text layer is what this is for and no pixel or geometry gate can see it, so it gets its own assertion: the labels as words, and no letter- padded copy of one. Run against the previous implementation it fails and prints the old text layer, which is the clearest statement of the defect available. --- .../presets/ModernReceiptSmokeTest.java | 48 ++++++++++++++++++ .../receipt/modern_receipt_layout.json | 36 ++++++------- .../receipt-layered/modern_receipt-page-0.png | Bin 81214 -> 81200 bytes .../receipt/components/ReceiptStyles.java | 12 ++++- .../receipt/presets/ModernReceipt.java | 2 +- .../templates/receipt/widgets/AmountHero.java | 2 +- .../receipt/widgets/DetailGroup.java | 2 +- .../templates/receipt/widgets/PartyPair.java | 2 +- .../receipt/widgets/ReceiptMasthead.java | 14 +++-- .../receipt/widgets/StatusTrail.java | 2 +- 10 files changed, 91 insertions(+), 29 deletions(-) diff --git a/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptSmokeTest.java index 5080215ac..4ffe4f9f1 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptSmokeTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/receipt/presets/ModernReceiptSmokeTest.java @@ -10,6 +10,9 @@ import com.demcha.compose.document.templates.data.receipt.ReceiptDocumentSpec; import com.demcha.compose.document.templates.data.receipt.ReceiptStatus; import com.demcha.compose.document.templates.data.receipt.ReceiptStatusTone; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.text.PDFTextStripper; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; @@ -86,6 +89,51 @@ void exposesStableIdentity() { assertThat(template.displayName()).isEqualTo(ModernReceipt.DISPLAY_NAME); } + @Test + void theSpacedCapsLabelsReachTheTextLayerAsWords() throws Exception { + // The spaced-caps look used to be built by rewriting the string with a + // space between every pair of letters, so a reader saw the right page + // and the file stored "A M O U N T C O L L E C T E D" — unsearchable, + // unparseable, and read out letter by letter. The tracking is on the + // style now and the words are words. That is the whole point of the + // change, and neither the pixel nor the geometry gate can see it. + String text; + try (DocumentSession session = GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(DocumentInsets.of(ModernReceipt.RECOMMENDED_MARGIN)) + .create()) { + ModernReceipt.create().compose(session, ReceiptFixtures.canonicalReceipt()); + try (PDDocument document = Loader.loadPDF(session.toPdfBytes())) { + text = new PDFTextStripper().getText(document); + } + } + + // Runs of whitespace collapse first. A PDF text extractor synthesises + // spaces from the gaps it sees, and real tracking widens the word space + // too, so the issuer's name comes back out with a run of them between + // its words. That is the extractor measuring, not the file storing — + // and collapsing makes the negatives below stricter rather than weaker, + // since letters padded apart still read as single-spaced letters. + String words = text.replaceAll("\\s+", " "); + + assertThat(words) + .as("every label the spaced-caps styles set, as written") + .contains("NORTHWIND PAY") + .contains("AMOUNT COLLECTED") + .contains("PAID FROM") + .contains("PAID TO") + .contains("TRANSFER DETAILS") + .contains("AMOUNT BREAKDOWN") + .contains("PAYMENT PROGRESS") + .contains("NOTES"); + assertThat(words) + .as("and not one of them padded out letter by letter") + .doesNotContain("A M O U N T") + .doesNotContain("P A I D") + .doesNotContain("N O R T H W I N D") + .doesNotContain("N O T E S"); + } + @Test void defaultFactoryRendersWithReceiptTheme() throws Exception { render(ModernReceipt.create(), sampleSpec()); diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/receipt/modern_receipt_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/receipt/modern_receipt_layout.json index 073787e6a..b6515f956 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/receipt/modern_receipt_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/receipt/modern_receipt_layout.json @@ -115,11 +115,11 @@ "computedY" : 784.8, "placementX" : 34.0, "placementY" : 784.8, - "placementWidth" : 166.474, + "placementWidth" : 152.53, "placementHeight" : 12.95, "startPage" : 0, "endPage" : 0, - "contentWidth" : 166.474, + "contentWidth" : 152.53, "contentHeight" : 12.95, "margin" : { "top" : 0.0, @@ -145,11 +145,11 @@ "computedY" : 784.8, "placementX" : 34.0, "placementY" : 784.8, - "placementWidth" : 166.474, + "placementWidth" : 152.53, "placementHeight" : 12.95, "startPage" : 0, "endPage" : 0, - "contentWidth" : 166.474, + "contentWidth" : 152.53, "contentHeight" : 12.95, "margin" : { "top" : 0.0, @@ -445,11 +445,11 @@ "computedY" : 724.26, "placementX" : 50.0, "placementY" : 724.26, - "placementWidth" : 118.256, + "placementWidth" : 107.936, "placementHeight" : 7.4, "startPage" : 0, "endPage" : 0, - "contentWidth" : 118.256, + "contentWidth" : 107.936, "contentHeight" : 7.4, "margin" : { "top" : 0.0, @@ -805,11 +805,11 @@ "computedY" : 626.11, "placementX" : 50.0, "placementY" : 626.11, - "placementWidth" : 62.24, + "placementWidth" : 57.408, "placementHeight" : 7.4, "startPage" : 0, "endPage" : 0, - "contentWidth" : 62.24, + "contentWidth" : 57.408, "contentHeight" : 7.4, "margin" : { "top" : 0.0, @@ -1045,11 +1045,11 @@ "computedY" : 621.365, "placementX" : 321.089, "placementY" : 621.365, - "placementWidth" : 45.352, + "placementWidth" : 42.088, "placementHeight" : 7.4, "startPage" : 0, "endPage" : 0, - "contentWidth" : 45.352, + "contentWidth" : 42.088, "contentHeight" : 7.4, "margin" : { "top" : 0.0, @@ -1255,11 +1255,11 @@ "computedY" : 512.21, "placementX" : 34.0, "placementY" : 512.21, - "placementWidth" : 113.36, + "placementWidth" : 103.04, "placementHeight" : 7.4, "startPage" : 0, "endPage" : 0, - "contentWidth" : 113.36, + "contentWidth" : 103.04, "contentHeight" : 7.4, "margin" : { "top" : 0.0, @@ -1825,11 +1825,11 @@ "computedY" : 428.81, "placementX" : 34.0, "placementY" : 428.81, - "placementWidth" : 124.456, + "placementWidth" : 114.136, "placementHeight" : 7.4, "startPage" : 0, "endPage" : 0, - "contentWidth" : 124.456, + "contentWidth" : 114.136, "contentHeight" : 7.4, "margin" : { "top" : 0.0, @@ -2395,11 +2395,11 @@ "computedY" : 345.41, "placementX" : 34.0, "placementY" : 345.41, - "placementWidth" : 120.04, + "placementWidth" : 109.72, "placementHeight" : 7.4, "startPage" : 0, "endPage" : 0, - "contentWidth" : 120.04, + "contentWidth" : 109.72, "contentHeight" : 7.4, "margin" : { "top" : 0.0, @@ -3565,11 +3565,11 @@ "computedY" : 243.84, "placementX" : 34.0, "placementY" : 243.84, - "placementWidth" : 36.456, + "placementWidth" : 34.76, "placementHeight" : 7.4, "startPage" : 0, "endPage" : 0, - "contentWidth" : 36.456, + "contentWidth" : 34.76, "contentHeight" : 7.4, "margin" : { "top" : 0.0, diff --git a/qa/src/test/resources/visual-baselines/receipt-layered/modern_receipt-page-0.png b/qa/src/test/resources/visual-baselines/receipt-layered/modern_receipt-page-0.png index 1ac674675c5af643dd2e905aaea0da7388b9e307..4e4f152588a4ab50ba66d161fe25ff0d8386b6b2 100644 GIT binary patch literal 81200 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 yGgDJi5~@$PhR>ht-PH$S{eRqW|JTm#x~ literal 81214 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

      +1Th42}c2s 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 on the style, so a caller hands over the words rather than a + * padded-out copy of them.

      + * * @param theme active theme * @return the eyebrow style */ public static DocumentTextStyle eyebrow(BrandTheme theme) { return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeBanner(), - DocumentTextDecoration.DEFAULT, theme.palette().muted()); + DocumentTextDecoration.DEFAULT, theme.palette().muted()) + .withLetterSpacing(TextOrnaments.SPACED_CAPS); } /** * Spaced-caps heading over a field group — {@code TRANSFER DETAILS}. * + *

      Spaced on the style, as {@link #eyebrow(BrandTheme)} is.

      + * * @param theme active theme * @return the group-heading style */ public static DocumentTextStyle groupTitle(BrandTheme theme) { return TextStyles.of(theme.typography().bodyFont(), theme.typography().sizeBanner(), - DocumentTextDecoration.BOLD, theme.palette().ink()); + DocumentTextDecoration.BOLD, theme.palette().ink()) + .withLetterSpacing(TextOrnaments.SPACED_CAPS); } /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/ModernReceipt.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/ModernReceipt.java index 7966faa39..4e45e4a31 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/ModernReceipt.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/presets/ModernReceipt.java @@ -371,7 +371,7 @@ private void renderNotes(SectionBuilder host, ReceiptData data) { host.keepTogether() .spacing(theme.spacing().sectionBodySpacing()) .addParagraph(p -> p - .text(TextOrnaments.spacedUpper("Notes")) + .text(TextOrnaments.upper("Notes")) .textStyle(ReceiptStyles.groupTitle(theme)) .margin(new DocumentInsets(0, 0, 6, 0))) .addParagraph(p -> p diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/AmountHero.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/AmountHero.java index d85ca6cea..bf7562f91 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/AmountHero.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/AmountHero.java @@ -72,7 +72,7 @@ public static void render(SectionBuilder host, ReceiptData data, .addSection("ReceiptAmountColumn", column -> { column.spacing(3); column.addParagraph(p -> p - .text(TextOrnaments.spacedUpper(data.amountLabel())) + .text(TextOrnaments.upper(data.amountLabel())) .textStyle(ReceiptStyles.eyebrow(theme)) .margin(DocumentInsets.zero())); column.addParagraph(p -> p diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/DetailGroup.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/DetailGroup.java index f415af514..44755fd75 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/DetailGroup.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/DetailGroup.java @@ -46,7 +46,7 @@ public static void render(SectionBuilder host, ReceiptFieldGroup group, BrandThe block.keepTogether(); if (!group.title().isBlank()) { block.addParagraph(p -> p - .text(TextOrnaments.spacedUpper(group.title())) + .text(TextOrnaments.upper(group.title())) .textStyle(ReceiptStyles.groupTitle(theme)) .margin(new DocumentInsets(0, 0, TITLE_GAP, 0))); } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/PartyPair.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/PartyPair.java index 55f3dd8ad..942c41d27 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/PartyPair.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/PartyPair.java @@ -95,7 +95,7 @@ public static void render(SectionBuilder host, ReceiptData data, private static void side(SectionBuilder host, String label, ReceiptParty party, BrandTheme theme) { host.spacing(theme.spacing().sectionBodySpacing()) .addParagraph(p -> p - .text(TextOrnaments.spacedUpper(label)) + .text(TextOrnaments.upper(label)) .textStyle(ReceiptStyles.eyebrow(theme)) .margin(DocumentInsets.zero())); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptMasthead.java index ec31c45e6..9f37375f2 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptMasthead.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/ReceiptMasthead.java @@ -72,10 +72,16 @@ public static void render(SectionBuilder host, ReceiptData data, SvgGlyph logo, } } if (hasName) { - p.inlineText(logo == null - ? TextOrnaments.spacedUpper(data.issuerName()) - : data.issuerName(), - ReceiptStyles.title(theme)); + // With no mark the name IS the wordmark, so it takes + // the spaced caps; beside a mark it is set as written. + boolean wordmark = logo == null; + p.inlineText( + wordmark ? TextOrnaments.upper(data.issuerName()) + : data.issuerName(), + wordmark + ? ReceiptStyles.title(theme) + .withLetterSpacing(TextOrnaments.SPACED_CAPS) + : ReceiptStyles.title(theme)); } p.margin(DocumentInsets.zero()); }); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/StatusTrail.java b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/StatusTrail.java index 0c7150830..f8432ae04 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/StatusTrail.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/receipt/widgets/StatusTrail.java @@ -82,7 +82,7 @@ public static void render(SectionBuilder host, String title, List block.keepTogether(); if (title != null && !title.isBlank()) { block.addParagraph(p -> p - .text(TextOrnaments.spacedUpper(title)) + .text(TextOrnaments.upper(title)) .textStyle(ReceiptStyles.groupTitle(theme)) .margin(new DocumentInsets(0, 0, 8, 0))); } From 204bca1e36e1d3aa8ecf7b63685d3c51f98689e1 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 13:11:00 +0100 Subject: [PATCH 64/85] refactor(templates): track Editorial Proposal's label instead of padding it The masthead label was set by rewriting the string with a space between every letter, so the page read PROPOSAL and the file stored "P R O P O S A L". ProposalBrand's own javadoc calls the field "the document label, set in tracked capitals" - tracking is what it wanted, and there is a surface for it now. DOC_LABEL carries SPACED_CAPS and the widget passes the word. It is the style's only caller, so the tracking belongs there rather than at the call site. The label is right-aligned in its own section, so its paragraph node takes the section's width and does not move when the glyphs inside it do: the layout snapshot is byte-identical, and the change is only visible in pixels and on the text layer. 316 pixels change on each page, maxDelta 219, the label being on both mastheads; both PNGs are re-recorded and all 126 baselines hashed before and after to show nothing else moved. The text layer gets the assertion, because it is the reason for the change and no other gate can see it: the label as a word, and no letter-padded copy of it. --- .../presets/EditorialProposalSmokeTest.java | 14 ++++++++++++++ .../editorial_proposal-page-0.png | Bin 104056 -> 104049 bytes .../editorial_proposal-page-1.png | Bin 82687 -> 82681 bytes .../proposal/presets/EditorialStyles.java | 5 ++++- .../proposal/presets/EditorialWidgets.java | 2 +- 5 files changed, 19 insertions(+), 2 deletions(-) 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 index 8ff267bf7..9cd973287 100644 --- 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 @@ -73,6 +73,20 @@ void rendersEmptyProposal() throws Exception { render(StructuredProposalDocumentSpec.from(StructuredProposalData.builder().build())); } + @Test + void theDocumentLabelReachesTheTextLayerAsAWord() throws Exception { + // The tracked label used to be built by padding the string out with a + // space between every letter, so the file stored "P R O P O S A L". The + // tracking is on the style now and the word is a word. Neither the pixel + // nor the snapshot gate can see this: the label's paragraph takes its + // section's width, so the geometry does not move when the glyphs do. + String words = textOf(render(EditorialProposalFixtures.canonicalProposal())) + .replaceAll("\\s+", " "); + assertThat(words).as("the label, as written").contains("PROPOSAL"); + assertThat(words).as("and not padded out letter by letter") + .doesNotContain("P R O P O S A L"); + } + @Test void canonicalRenderCarriesTheTableText() throws Exception { // The phase grid and the investment table are single leaf nodes in 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 index b8e627b1edd163bc755cf54dd5675f98d0a74656..1fec1f87cdc4e3b73f53b7bdc5fa4661b8632cf8 100644 GIT binary patch literal 104049 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%0AsYWmIem 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

      hoI-CReF90s5!xVCY{MKSS!t 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

      w$^5GG( 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

      c&z+gI+1ONGIm9vX);P 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

      Rq!&^DGGg8*xfbW|2Z|L;XBa zN84C2vFtqeS>A?ri~f)yfWWD|*ooLB#TSWbmtM1}PW@-Cz`$f`{?XIw-6sd#Zpg}g zBsiyP>7pNjgUQ^0M9@bQ%K}w|+2uH{KF@VZEbGLI1CX>Hh;Msa2_iMViAnUx8MrWX zkNjD{YYU_sEd5<51D0!J4l%6>cnjGfK0emmaa_@1zBY>hVA&Tgx-}MIMjUcnX6o`& zu%@O%QcPxrUb)`x`1@;@fUt+Yl`(W4zWeDU%nn7g0~BJY&MCIanJhD(5U9)X4TkqO zL<;)&6X27J@Me zurkWDeoI)4tg%SGWE!Bk)038(niQ%o%Y?BOfV9~1QU(R7+oVm+VI<#y74b2T`fW1T zuO4Pc4=G-FT^X$Hqpx6V{Q5;icv<0Bbn5ei=N(wktdyFHn>`tlUf@$;W%M#}MXJ9A zgqZZQrSERy#4BkhwrM)*x+e^uA;FDgoQ}0XIi^{CHPvSv(A%G|`BQpvFF|A!>GzvS zTp=iPr2VZz8z5X}paj#*^Ca{@b(WXVN)WNecGYJ1MM}t{+B^E_N}UW#kfJs6)2}~Z z;*ifpus6K!=2BQK`_^WDeoyb#J;hm=Qx^WC7aB{DT&l)I3o{HeCOYa$uN7qDTzkN# zu7$5{^ma_mj;Xa>-vO70ha-N|gKjS37ab>~<&|-5q?im0?aL3#R!dn*`>oN2E$pYx zi}B1tJ828bzk$MQ(mpLWhq?c2{q2p+)2nwlWOw|cMn;{?M=7m-5m#D(Xd#jZybDf* zFlX*?&o{rcYX{)Er{vsuK&gv7-t$%+rQ}Whn(r@~aTQtiaq?5aa{;^9)^amEW?t8X zd-Z=Sbu?u#8VkXwhNZsbG^@PC`1Si;Z!|Sc3H(Ds#1Wsd+^VCD9q(36qussBSS9JT zgj7C+MMEMpc-JhZBzG=rfWjVQ)X>j^ZdfYn!6(=)+KpGzvOV3;aFhY=F$H%x9x&t~D;1u}dIs5BY9&c5ILEm-UJsJ=RU7qRQ2}A#4p8DW zJDa^dHC%Kz9Fp)5wgu)XhC@)PD$RGZbv5-ff!q+KH2)zxFrPX*!-{f9gWY^!JiOuJ z)E$xA7mwY${7a@TOo3{1{A`wnjZ13Lkqrz7?clK*{n!}SFuhFpF}=@>6UrCxN|+}y zH38I!H+6D=?iJ2hjYbLEH4Bcr*Ow2pZx$iCSfNZTU}$bMjs_8>RX^evs@OvsUJRnJ zX|`g7y-qKJR;m^zO(>rFP{;CLYZ{Rr{T$Vc*b+;ykBzAc7PZsVSx#Twn%vI=Lk$VAm!w+%78p{FgKF?ZQV$VjHIs+rRs&N zZ#hkzmipsPax|eT>pBXCE@Z8j)XBfDdk1v8?#=;&=Q+V!VIT6TwiYifH|h+yzKUw%NdLqV~aoO0HsdK z=kiwOd^{oDsHHTA__M@&1uo(_YQgoFl1*M^Ps@DIf~+Uf14((0WV{_@`ht`RNL%EG zRH6A)+Q*}`uTZgM)^r%h0|u}eXsKaJ@+ep(yg{}x74cKytPV!7442%_F^BmNN2nSJ z);}`oZNHufR^ezYRGng3PdhF6wNoNPv1Lc|e#Rdv$3DCF^8NBx^LKK+N4nvhgw5t(c>gwNuuG(9)dO^Jx>^oOSm%94 zna`ke$v;rx&y0=n3AXwD-D1@c_6&nWYnjh)Bx9&DlhRWQX3labsAX6UfQFc`f%X=TZ%!k8ow> zrK&miT+F%YeBN9ATHt|lspq`e)ywC*F#v1Q3)bGEhI9nGN1I#c>cKMfWK_?TWC1; zeI%lHX_h{+bAtdDVJw}5^%|8bo#4FCRa^8VO?{UHym#X< zuX*k#UlLz0xo_LTgRF2i&HS(fL_rvuiWy7s5}I@}rgEr=ML)$ZA>4vK%hq80b&$*f zWXwQXG)_J952ZNd?e#a3EnyL0`jdX(=>eZ^`tu6oH!nxZ1d`hX4HIc<2Ih18l@}ZD z+m8eZN}n79$=9#cN*oPe(Oj)BZ?!_W6v02(uydhssnj6Sd#GYozV)bqp06lWd=|Ozsak;kX!Vj&?v$1fr`&L1PGl z-mH8zKJM&Uw|5w^%qC0lJU(IVO@ep?MX~S-Nw)#1>ZJ?bBN{1g2PKaeFV7;Km-Z~q zr}pgNZ0r-cpdGB=V_-S}${Zo`Wi)1j!&4K^01J1FzTd&f2@g{PRiOj~eo(OLrT;G2T4uo(IU z28Wr&h~G^xlE@h7vFyjD`g0Oq2hs51wM8xOVL6YQ@*fgQMMWnhDsuoTpP|1uL2wz{Ero!k+l?@(!aHFlxA< zI`bU7pvl}$qPHxFYd1;?8(BA^a?ww!YGnHcv zr>6&lGnRaDG`3tJn8_bmcf()Goo2lJA7jgofzsmM2h3L6<2TxiQ)^ztNnMkbt!b> zhllkp_e#Xa_q7gs%_cDBR-`u`}75O@ZW?nF|B2z@$*MCM<&1%;q%no$8Ym z@OCAHT^VZwb2|hrf6anQoUylYN?q3W449TIt#X|U6~~F6ePOK4H1J5xEFc7K$SCZv zCg0n8T)@-w`Qy8-8joYQY8!C&z}IZb45)x1t`1Y;k4)vC7lBQ~vi``@7JHgy39NEG z-xIb_Ti7l#_-MhK1XvFYe3Z zVPyd`aLxNJg1)sMF=4VcN?s;)qDWb_rC|wl){zIw)1w6eT{*d%B(?xs6H3vI=Y~b}t@1C39mqn*O-nmKY=X<$RXSqgy%jC}E8#hbL zj8&f&>bK7?PTtv*Q1$sNiP!4DTLLCYk_~CPlY)|V>@3v`{df${+64{ZOao0c3E~<|RU{nc z3)~|r&x!=xhJ|bZBju2a{u3ypG2v>KL5%6bOu})gLo6J??B;pzhv{RT$PDWd0}XSo zI7Ry3b0gE{y6=vso~07yN^_|7eypk!2vu50Q1YUe{-j7R?k#w`c81pX#_EjqGn?|h z-!m)$O~eV{%WOzMx%`>lWzA9JGuIcYsU2EJfG}vHQzSb6q^qM)Co)=RvkVgr{<6m0 z1LeA@QLK`x!NPnrLK|Fs@uR1l*;%*mnOnI3Cpawo2?3l|r+X$#IYrp54A`IML>v>j z-b{Jr)V32191q<&VNPlQJC8HBG|j{F)`E)#c0Zs=V5}_dJc*K&&m_-GP0WL5ClEvk zlrZE$BovZ!LCq&UEou%8hg8{}fbF=~pJ0Z^*qLBN9q5j6M`-=gE-z^K08G`u z->0aY&x!YZs1XpwpYe`|QtKCZbY8?yirTXBB$lCc^=&s`(LBOXu%r|lOFYeND{d~) zFINV?LFlYIsp4t)XzET7f${veA9xiTNjRJN6?a_2PpEfHkg&+ z(ka&~^W=Heo)<0yMHhpk*2JL=@KtdXvv?1k=WD5{#-%MjvyyF)bK&KE>GNhz4N=+a z&z|JrzP}JhEm}w*B1jE`1mCN>bNnn;IU3QBAA?@&FV63hzey)TMuIR%Y)Ev#8wsyv z#nO;a2;%#ksO5=uNW3<~lfNu57&Hs4*3L665#MGh`CM|$jGyTJ!nYXJpb5j5t~Jd7LV572{aygFJPayZ1(@UOjzQ=zgxU33Y)jV^;P+H00UC;?k){NQ54y{PwSP za>nQVKLe|Q7;d=byEzx-UD_Ou46o@zc$No2g$19sKylFzZ zO<>gulRr(`Y%uXbGSZ7cX(WW{5Pb`OCKP9l8lF`iWz7?YpEn}RIg};1+w=u3tqfZc zS4I*0r06kY`mEUUff<*PR?r{1)p7>7wA3L!$YJ8Dlut7Ma28;)f69dBRQZ*%?_4VF z<_d>0SCKC|L7_;0pAnd(z*E{2I!zm(So1ic&?c(=PSl*NfCQyk=*yJ=eFn(YCt;W#F@@M<*l9%q(IR5bynRlN!RuvyO?2d@b7w5W~ zb#p44o3OIcwg7r_j%_b$!e=UD;**tUBN`2 z?T_^0F)VidvhU_#U*~(vSm7Y^6Ik@KCFdj0X-$TI|5@@`J$XMyw!=uBr&RNEvFTUK z&VMvT0Bje^3C!lr$`7-al04NOz~9+UE2E$on=8sny>8e2Bw7yUBo?A~fv5y+`Fa{5X_T19OuxDs zRX#l|v*_+ac@j4o{W(i~G26ms06#PKz61ZDJDdHZ0&FFR-{B1Sarp<&xJcKmtg`Uw z(;lrQm0B;T46xanIvQ~5Bw@ym@HiivlKT-s>D`DoG_=fMpyk=39fy;(d__;r1rqUM zo0d$F6_)V(Z9_PE(zjflRh{x>d7in%Z_=gMDR@D-+sZr-W3!FVWm5QM;RL*q&FO20`PaaaMg}8$U78o?}Fl!*F z^ftwaz=4G1ajZYKbgd~45gqtw1~8T6Pb4~HPFi&b4-hNyXX;wr!)wpY4!<_I?~6Rr zGNZEWatGaFIFbDqK4MS%@=29yMBd3G#e5_k_s^!#I}8zLO5RTMMvbDKxV2&~PoIwm z-;2@FBnjC4i*{h5X&U}g>ODAFm9LC-dK>&gUw_?fMv^wPD}a?GWRa zN&am!5m;WO>YsO?*R7+dlQ5I;|d#yF8 zdC!oksXQK)2p+OsT-`uR2-|s!F2+9H-JXIGU_zDtgh<<>bB z)c1^&#}VUp+W*VV^c$Fuwg0vE{qIi##lKp$jKG88DQ>Iz(>ZBx>Zv6>RoJjqGyeFq z3f6F_08|{!EADfx`#si0{6w>;)Z4V4<6UcCW9`2_KQ7G{!0pO-cj?!hUQ{fi0HLq^ z+}=B{A{6=iDyG2b#l^tKHYi4l@hh-n18i49;G4Qa8$qn|vmRXMWq9Gtsrpa?*PE5Z z^~guDzF)pk#a|06Ek&5cMu0ZMcf|T2#dX7fagpOaZC06wC4s_Dwmai+!o zCazp3-u-ne0LIe?(R=g!5-$&9fg>jGBJysm=INlXn?P5_ke zWA1gzqFuAtFcv!o9L_p)`2rp@j~fWNuIiR&U3IPAuA^H9JdO}s@xz!D7763oQ*ypd zAD}WMpfECN5mk4(VUzKGt+*f~WfB(wV@}lL6e1qlaQg&HyFf?+T6<5*%1fW`$Kh$; zhI?nA1@aCi$%&Y;F-7u5HRs+QZoA0If_^ri-(bAIm;^Y$GfJqWknYS_fB4Q<^E*rp z8XY#As-|F-CZ6bZ1JLK#o_@e6cHb}UF`3Q)uvjy8+pn1nYR>F;=30Z>0S(|kJ-6eqK5NEZFDWQATA*Snj28cU={0*zkygIt|cBScYDo4LZB&(=68_0^5 zqio}Sj=PTr`j+4zvstk1AFwrNk+P?=#rPQmEUFK9nK?s#KZ<#>pNh z(mjy;DCu$ev?LBa_ujD-jVJBwO}5+fSN9t&IoW(zX}W_;vi(=tg)8IAOIqUKowyja zd!ks!8p1pAj>^td67Pc#!y%@L9i{?cO$Sy&m{y-3ANVj3LY!G%YjVa>-eE{bD1(K8p-O z7Eau+?bub)2wNx&f!sImwg6!5O%)2Xq&jc^A^hPRKa*rndWG4Zcq0K_CXHXj7FC>> z3a@TS7$uaY1{(h(dUU^hE=QR6JkRw9U$#j#eU`r4B9F7XqVM0W(Y5GShtkh=G{r%t z_h(Ac-!g+c=`iQhxm3=i+J1FN?wrh0YTQ0F?3qGV8`^fI=7z0JX+?d8_bp$2bK551 zA2k!U+ib%WmH%D~Spj-*_ zUnQJ6F-uA-!9xU8dW9)>j|^VxEcX~A@JQo3oEWAVm;Lj0ayA&?sOGj;RTeyOmH@j> zl#s`=d0&4PHXkZ#ms>HsOuN0y6Ok@C2H2QQkc`j|*Lw5O;Un(z*n-C&@FqmqY`}GT z#`6~MO2VpBsW(j4hvtuPAia*=X8#2lCHd|8geNJz)Es6~>l439Iw zD#_EyunQOuSX#2_H0_FpK+$^PIVsfj)HW?_$St%huLl}9yI^5`p@=Fj^YO6;4uFA0 zDDDVzn2^mwEUn`7VWS%P2Z9`6t9ydtF|?{SE`~iXA|OLr(o;_Fe29&!Xnj-7gJS1( zBNq~@TGDZ@D#TP6N_r6JbJQG`7zlWqYA=t>Pg87%`7Km zd@rI?(>h*-cG&gldE&vDKaxZ~)b^To3I4|;QhzY<^QiBWTBd2(E*yC6nXz0+4Wu-;(R zHp`ATo!y|xT6X(OYfW(4Ug}$HOe7C}HhpdAE(WscdCmUwz-vaV6WA=hWYB~6m{ysDl+yxs0D@6%aEdp-zZ zBb`bsS<8hpQ$A+ZT%)Ca)6b*htPadixp4;aRSWzGdUE_Ure$)iyP}Mdrk=^E2MGHo zlZm5${RY>-@?bb_#%N*={tRpL$t!nf{<%K4@Z_^k*RQFDFZ(D{ss;HgYOl7ARMW8UU_#oCn8 zp{1)Ks=Qir#`e?huPCATYwQMljK@_96b=;a(=|N-q5M_4CqV77d_5F4wh5)?qmOZp zv?kTcQCY#x2Q+2;n_eCZMV&JL+~aMfr66THRfnBT?1cHSbn$*AC+|YIVzfv<>gayXOyun>+)&+2A_@$plyN8#k!~=S6+GXHuydGmv!h+&_!X%*cd0uunq2KKO)%6~pDb$pvsdEqD0p?^nJv!AgnE__>xf%{^M^v9qD%4F zt${lCEF{)EpHK8Y3h+^_!~`M8g%^1aJTxl-FTFPHo0AJIEq#JN&{z$%{PqUol|?$UDmxGUKaEN;d(IREX4U5F73-DbkKAcca< zDE6C5R`7pzu7cp_l>PfmaZU4u>!L2R{eLpHfR(8knb(&0f6i^DsvIq~X~nm2{*_}2 z@DY&sq+9Rd)#R2GIemvb`*%`hB8ji=ulc;~qChL!TFx8~T^r<6Tk0S1dqsr>}3C`yWLv%ajIuYq0lxPLW}wGJcL_!X7$8u;S+&&jn5 zuj>!?IjPfIc>iB$V~~~cv9aP?x%CS0l5%85Bu5n6@Asvf9T%pbq@Bb7PzQ`Z4%Dp@ z-gYS_pYc?dntM$okBHX7UOr-~ZZds0F)2aE@T#!1);q!Kug%?t@yTxm^>mG8WMBOo zw$Ga2KJ3J`UE0XXj>#$uR_Hf*MfL$_6E}6N86A?XYr7e+?hP-HEeDXBL;?|yIN!Wr z_>ac!Tq`>UX?IID9l2`Qdhr17OCRYVPvI0&A`3;n8ZYdAkC9CAn;xi|SS+@0>> z<3n%+VApZZza|>(1s&>D^T8@K$f@er!xHE}yC@WAb^W3s1{lFF=AAsgZFjD-+YiQm zh5{np?Tyfw;o`F!w7nXy2X_$>ls)##hRY3r>AU{6X3Bw|0`T87yizM)o-?QV?D$I! ziy4~aNun;>NgOC^{o>rgjVmY$=0qjm0*o7-1^`Tv!a}hEOOCs7>-L%tKcS-umh=JF z%R`ll*1E;Ka`m@k!(b(8BDnz=9D!uqfq*x(UR8H$0yQ$3V|h!2ZNlkS8d%W=k4u`S z)omkK6X;$5qYDrwfJ&9OH-M@Gt}fUx_)NeO{gwaSrXXMU72J)QMv+I|p54H3}NQ?*AhJHWwvEV=^#; zE;ne5&u1B}GR!KPoAWjLg{Z?G+(1mBQ*e+Fm9p? z+tnDRiN`-Ar^a~FxRly_ezYvDkCIZl>%s)kk;=Ym%}|u zrzOk#uXHIt#6=72TJ&l&1 zuU;}?vBHD6uv}?@jEI-orq2#vyALZ%35rY9A2|l%j)EW#@pwl-o4Pmu+Vow|dI5g! zyBFnVOJfK_Sc{uO1~M`ymtvyqk(I$Fy`v2q(JsGf@52{~`7wsM9EwtGPh+7}5l|Ir z;UA45peUz8=4{Vh)PR~LO3aYuV7mTO3dUJNA*xM7%r{$?8uK_{wo?Nd(D@CnV7*uc zqdDDsF3(^#QA~O=@#;RNJPRY(r4fu%(0e5FN}}HDumXn+BORMTnI5wtE^E1E`3*$&bZM{KBCra71VnW`LNOI4u66^a49~v& z%s+*E&s6^482sGtp#Y`A4z+ru?E=8!$8DN(hJ5b%8q~-aHwM(_uh$LrwWVweY@a1^43$QBEeRoDyCpc|#|@mTz~icT%}$qI|AdDNBUV z%$~hE?1X)k{9XE%pNwXCLCzkyq^wia=?2)Hs+vJq28{Z?#1MTrQ3H6fL^ z=(4PRU{|jn0=HZ2A1H~LHsEn${BX* z*SkYF@)0ad-q{bggswavzFmL4)RH@+}1PtjEhhHQY=tH9Ppaq-oiU#<8smS!dF_mr@+B5o$KS3!J?1L380eHezGbOKLcU_wh%EoKZ?v zzJ=i^+!B9`#neu3*WKDG&oF4%)XrpDaXEgh&A7+GS`1wjoBXJCPW64->Z&7F%OOH6 z*2_4ftL{^#q_2jW;#_8%*Xk@a{?C^o;F+ z8%Yh9rI4z``+@!6f3y)MTxF98SJ!|3__Fgu=zFb=3R*$xM-)VOKrG+iC@Zk#dStO)CKDk4>#k+p8UZ_Nh#(M1wWu5Jdy+xh( zy-lk_CWm({mFu6S64sOLo>CKT6N_Fk`(CtY$BzsdttI|gqzn+;<_tF4UII}w%s;E> zmuo~Y_AY1SLw=P#O}?3KzgqOY%|G`!`=O?wmidLKS%tFaU3#PG`t6N}^6Z{C{P~9s zI{R>Upj#K~0f%jfnAa*_(z3}-$%Ec>dL+VWGbb@^$!SLeEI_FFRqj=$w>J@cqRNMxhrW{t*y#=>{ zlz?c_?H!7YDa(cRa}S;Pk;Q+0%*9N!S>K!S^JTkn6Jztv``vD&&xnpsk8y_E4F|Ii z@AAn`WPUJQhi3oA!t*1|mDm<>q;)$mdlWKx;cgI<)%NFsxq?4ZJ^bePJms>j&`K*# zKwvCL=4v}IRL_*GO{^vPvzzlc?ogVd(AVwk2db_{qiUI(JOr)nd{E^rNOnS1OJ)c{3Bv9`!rIdojoo%T`n3+eQtdE_9S_qnkn*t1x@ z(USf?Xm<6%xDy0>03*E@*5PuU{qsQju)9^7-`zi(zEP&t?SjCrXFi&Pz}p8Fd0vGa za~XC~oRAQyYy(yUXzmmuQ$!%Gr-{4$8h-@1<7MR4S`2l88P|iU4kT2u^fQ$#wS4q- z2fQuADggP{Kuu!^_%;f`z<@r|MYmD?9=!bVrI~%R z#!;yP@G22XTfMV5giX7sRW8RoG0)zxcPn4=nC+i~tTWJ9|gh5C80R zxXLJun6UDD-7DJOZmtsV0s&U;g3EF1l|6n44#U&RH zhUG_~Tw(Hkmz^hk+Wt_&lB}759RZcywR%&|+Who9M%iEpOVO!jNLZE5MPGtQCI+cIsy!-Mi$^%zNgZ zM%DrQ$eWkVAA-OG4n}}vd%5f@Yc&CBw&d0e5AA?*n@T^O5jBhReRq^mh}8MVTlwY6^#d(X9cmuKeljl)uenpH`_(G?U5~c1$ck57joI?;tmh zJh8r?y|`w4|IGq6I`y7$R`V(uA^;DJPX|KJSa@x%K?(yHNx&CQ!s`{LuP)BxP^X_) zKzp3gFR@%X4F_3Kzy-gzGZawj;kfc+fLp@d*-pTH#Mp+lB7IrnRfv;_FV|||F7oWIw-F1`x5<- z5JEx-5P~}dcXx;2ZowUbJB>6D9D;@5?i$<)?$EddcW5Mdqm91H=Q}g?n|f8R=GDAc zHSkYY_wCc&_nx!&zH6<$&RE=kX(gJwO|LY-GGtVXXt1&JA^2ZcS^+(f?f0-@KpqY_ zS=72&_Pb=ARmd*i?oFC{uZ6f>8yo=*-&gG+PC40*06p8{dCwM;Ue*e~T(WVdo*xgYNrsi~heFw_L{+6X*4hBx0MG`)zV~)< z9{OJPfE;Ks%Z<%-CwDsouSWNJZ*t@neMF_c76M@0i7BF&3@@M0$>XhQnJ@bboS6Y8 zeQvukwgc_UQatQRO&5R+M*IEl95p7n9v9g^7w8C^`2CDtmh06e-=Vj^a zjAx#J!=xJ!qyXZXZ{$$nPJR!0$Na^Wp{HoZ_$ z9*Y|JHn*@?$_FM$!5`FYUsg8wd6`kjf)&F?spu^n@NNT1`^rxZ$ z8>U8kEz?*1mCL>EZkH>-od=+eH=$0@T9%hzv`Vgg4~TxUID8PQjJbWDVgaXu!q1E* zf%=CH0K=ENTiLs=wjC#)3*aro5c-AAe6_3^d@4A=Ydeqc5bUUb29#JJ!15=VKD=zD z$+SDZneC{1XxRl=XW_|hh#WO7LcH}hejPxZ85#j>4B5D-?JogEE-ASsf}5v}Hllv% z$cqhzcMK+gd(~2JiHqp_OhWP{0F{H5=Iu~%!kv}kvQ1&UEs02B-aeL&dvn6<=YX2%JlNv+M(kNA@sH=$ zUum2`EIyOMEweG|x1ShHd;zE;IsYSn!RVhO*kK0nY*sdJ6rJds`l18N3fd(9*|pZdCcCEpuw-xm!);k{OBS)Xh0->kC8U^2@PlCU@d8)O0QJ*|N4rRmYoh%eB0?T;ujKiU)X z1l+<+P}Cy$XYT+BzqhmbRB7;fdk8a<_t7t-%GgK+@V@v*A^~lio}qmQ(Cr=pjx8U= zpB;Uo^_$+l!%S#2^aNvV`lvI4gAGfuNzpU+o6O%5s`bPC=uX* zJsWufkY{nlldC2IlKlx)5VRhrgGGg;NrX&uMhJ_|DA#}nu3l1=Au_CfmLk1e!e`ww zkok>$pHQm8Q%(U?`?Y_%$K?Vl>)Qc<9N7he0)(ri);Reyfo+J{$M=-2j#lLF4^`NJ zo(5KQG7iUr30y~8K<6Z|^#o8{EQOVZ9THFF3?p!8IkDsOLTNi+Dd-z7$k(1`vO6JiiXFaxlvoa_;SIuH2g-)@IwL*>7h!ebG8 zjL0-83b8&Z%ZLa8b~m`5Y%)egLV3^~#xv!QfEzy`@EZ8p;~bz1xU7ssqGT{GX~K-v zOz@b${8p6hsR%QwI;?p%Z;MRQ?*R^}{d27OiRTmJ_r6%L**Hrml~E=`mtqe`B`wW* z)Ek@R4xE$?FE|FJ*uWzD=%Y&je-U$S`J(u(hzvHFFdT$(u@1N|(E5>){P3>SSOW^O`=_If*B)3>sTIs1 zOOWO9A@I+V=`=8=g@m#gdEmD#4vVHr z#T;iB9ps6~py<21tn0~X{pY`pr@trDQlTI7z#qS6(vTw=B{u;Ldj-GrfeZ{G=xi#VGJL*C;KDB13_%iw4{4#%k^lV~%;7*5x_G5BP zw^C7RLn$=5#u-)A*c=0Q1`NL>@g&6DXLv_dK?WEx;@Fjo7bD)UWbRk!c_%x94!DPE zIs5vrbxmMpKq`~4y)#!RWgG}0cP=NyhE9dH9m`;RCL&{6&%IkDy+i7-#H+lrKiuu zGOQ5L-ryT@0s$ehzMOxcE&F$go$-0E(Xt%r)+*XUV>MLMnZZajYhC$2OFls(v-n5^ zZ6$ExkyqDrgHpyjUrhsoje=p(YIVq+#Lfh9BK|^u zA!?s!{uauUfcBc3nCC&A850Y0zRBXtcB2`$Fx6i(}m0Wj`p0z+$Nv z+#6gdM75LmaO8K>c2pVZGN&UlAQ&&WzJ3-~zFhTS;83R5>ir2FuHSrh&irzDc&3$2 zN&B<9P!Wb>{(a@W*}iSi%vhuRoA!(o%7TmnlhgYE#?_~jgs1Srodiz^+i%#ASwDxz z)Xei6Q{t7d2@AX83jcjAA6&D}f||*}$yqs~mbeN5oxwE7RJ-62TFc>^S;6s2JG63I z(6k0C@16egVCh%*0# zDW#G_<2)hxU~-;`bs4pM@V}pp_!=1E`}4TNB9Lpz4r9sCNOzce#8v)Nj!fG4-TQK3 zbIsMqo_Q*0jKUJqHUo=e5N$7^7j<0{BbQcI*TU~>km2$4YM{_@Z1R|jnbT8#k(-yDr1YTY2jnW($X&+|7f zElgu??+e61A4nW#kKvj`8F1mfsojM{qPOqytz1-5r?PAoSV37`2*GiC4CgrVkU(l_ zV+jos;mben`gRZ-GJTo47K^VM`0QulJ7fsEY*(eh3PY1N*$T7*9`SfsS(ij6ss;{g z7_Iy-2M~&2zd$-iI;KoWPDuH;txeyTXTy zI3NeMAI|4@B=bCk1eR}Uxvd3o7QJ9~jPASpgW4@uznL44W>P%8uWDJnuiIVT%*FD> zt@;efDoXi2K3;chCD=aZIh}3ymMi-%*CVR=GesokS+Z(XWVU&sGOb;hAI**v=8i3+ z5TsEks#uQcIG={qzR)FCj2qmCzm7Jd5GolVmeV3{%XihQ>fM%5SdbLOA>ok^v03xI zo-Ws=av56&NI1gLu?8airxL<;ZlkLM+BN5j2rC`sg;H- zKJl9bUK#lO7e4`$(a9|;_FopTkN6x@G=^8iFKu~`b{M-gFl=fbWX7|mDaH(O>wRk% zxFFY!x{WaEzCv@UXzmURqlB3GnM|Abn0q~@T5xlP%Hu~DrUZ-8mqyNH zzO?)e@kn)u<`|7Sii5CR&8Rkls*fXg-8K`E=t63fM6O+jK z=O0F*WpqI`Dn{$biB1eV=~6F$z=j0O@pRzmxMQU(UIBvNL8N^`Z{8`l&n+w31}8Oo&mj zM2b{tpLN0cJ&af9_28deYg?CDOA4DZ&lRjY1y)GbSK{ufd*@}dIL3{Z6WrqCX+~9{ zlp+Rkdc%}h<8<@9#u1sv&0jL?Blh25WWw^kt_AQB_}7r|4Pps6mHmQ>^$m|}1+W}6 z;XDuEZa1@?66_-L59dwcwjsy|i}9_ggH^9kx*V26`<-!dk#F=#IbCpJ1oL{Z|f;U4HX)+X>JEN6>t z>nZ{BdZC)Fli4D=AlhYJ+`}mZU(yDJV@WBQwQN^an*y51dfPuGC^&OO{9WrgU|r`6 z=&!2{&zk4BR`aeLEN?qT$M4)KXr0N2P2goI#GimR#Orc4)xL*ICHzyIE1+Qntqg4I zs@vLq-GlaNG3L$dGCcyfec3izc8mrbT@WN)Z^TlBDE9MvEIc+yep5nBHo6_vVoz*+ zY8$EU^<$%2BphAfh0rH3q(Q&20F1`s5fD6(TF0tCg1?tBVX&jX6sQJgyURMo#5s=o zo>J|iBtk~wb~11quFOnIL}rG1tv4KfUoPPOQ^suQkJ;_=w{*qlc&i-WU3#Zmdr zOi>a3B{^*lbM<&8PTccuZL-KL0gWWokb(t@4O~#RJK+x2EM!^ua(LJ9!BNX((HJ*7 zDgq>F;YlDa>?l|>9ECYR@|?Ulw(b4eJz@Vtz4)~-T-es0-vOg1u&ebzex^xb2^fXK z$l6i1vp)U5pYT)rT>~Iq_*`$r6u&~i!$>}7{7?iNU8&8|_YV8RlzXZ8RVjYF_34dq z8YYoHFxS8N@w#o~p8uKnBNd}^4whj~ZCN|&WzCTvWIwieI77a>QmBCpxE~7zMs=Vl z3thKle1>OF2lN^iB*B_7191|~h3_w>cf!;{CW7T;%)rM2n3qRr!ZlNDhJ7Wh#`t-| zLehJ`zrrt1+Nm>5>wZM-cYfpb+}H$`4tM2ecGr%lGl$EM*hp~Vyv-`{|Qry@E~by zRAL%d+mT(Llc)L%b<+RGG#>{GUl#$o4`ZK$oT?B8;n&lA+JB>leuBe#jmFyHJcR^Z za))Unzsh~Bkv)>4R?1Wv_NOI_o>1J51gq2we=h z^4rn?e4sZ&3i(Annf@UL&04u`qoQPgdSqlXnA3j=TMT(a^vAbpm1@h}aq_qRe6jsN zfi*xxeuKko=++qUJcQFeq#m%5ozlLa(uE^me)1MWCSwRAi8ajD$uB7Q1zTy_=l7)Q z_gMm-Zynh${$j}IyOUG_!NJ2U8ovU*1)?KVM@)XXS!7h29VpcJ-PxvmdVqs_!__AJ zQ)4X>fn$lupqOIFvF`?yBwty7P6f^z@OqvUggOYlTUQzmjN*YpYY3AtY^~dIyqPKI zm#SRrHEfV^vIO3S;VKP3-dz6k>mjLfXvuG$B(-j6xv3sgReG1kbD8=rSr9UIJ{Tn3 zv`+w7v<};ey+j;G^&FJ(1(5+?gH1@aUBZM}pNZpZzV5c_xBGM`lPofs1d?GvM*=EUSgJH}Khb9P}oMOuj+TzGb<{g7zui-7ia~<#~l?wbyECa3fzs73IURTP> z0WDw1g3$4>mFU-Q^9ELA6W`Jd=r^H@g++!JB``ZY8QbG|SGyJI`5@sC3zV*B$4Z7o zdbOx2finO39|wXGPK?YVb$c?u&e~suFg~yT-~(=^)uxTRjZj6DM5;nS6e{Fv4OhWj zF2bc5^$GXJAn@BLDC^4{S52NpG=fyOGcON$RhW4gqS z<>VTvd~(=gVHX1}kU7wTb>p|T#fpRbw%4}|N&*+aHtQZ`G6ZJKmM5Ze?}>Q{2|$(1 z!pf<4AFgx9!(^VW!_j;%)f0bYQl#$-BE^hf+}zPfEi9JPbAEj~ybFH3+($zrj5>wC z3Kx%gpj2wETvRWfJ05C0f7ofZEh0CK6`xvz=)ZSj!<`iSD_!|TIA1?zBbbhJ!7k8v@KO#*;T{hN!X6nPaKCSs@d5M){yb)briV4{PnfAh}E&&as;%-?bC*ZEwsEoV!wZ`#il4wmo(8UDAT7Q8_+z$@0S@OVwi4}FUL^ura$AONAqglr7 zQy@wFR$_g=N<%gF!}h(|2c1rV1EWT!UEeRM+GIl84?`3T_k;>`wv^wG>eux9>>(sn z-evcGb>7ZzwzxKcB-KhB3Adi{*4z$s?1(1Y@jfDZI(gmx?aRvOY-mwVsWn*kzWgIq7a4tD-n`6`%x4gPVo1pGSsb8BMWN0qJB zz>S@+H4rIsPvo0<`}qc(r8~4WPs@bgg69UJ{cnFK!!O69Ga_B-)(&`OM(a|o26r0}F;@b3QV;Ff#A8hnqaLD?Y|Ae5SjZT1#$jS<=8& zZsPUZfcdq@_p}DRpe${?xwaHyi{b8|(S0(2TyH$YkNb{Ux(+AhgR$!xT%NMB2B?04 z8O2`zY;w92YG^#<>um5j@1r3hkOK_%im%&?2b-!PmS&uzai5nnl+3$3g>s@Zhpf%4?F*+*zO#tR%{(vJGP;TG?* z(1p>@mnJm;rUJ|&`>@0?_~Iq5J^aC@*%01@7|M0B9CO-wY8*SQVyUo0!0offpmhJy zasTh=-T(pbaBsgMODK9N5VvlQi@;Yd?f)!8xF6Dbo!@HNThnXi%c`jsj_Dq^=)!@8 z%Xn+PN%jj|_GPBl0WQ}HHWLUXSq;AIs$U20Y7ZQuBLQX;MrVUy zs6640JO{IC#h0ubFX>^X!1>24;a&1^Eyk9o%V}q>#L{y&?uMt+{@q@`dR^B$m#d$> zW*?JbjrhcR@CmNBuD%_oz58EPVeusn(K^sTmtE$ZSxtDhSQ|j}JZi4~RS>h`Jh?TQ z&F%1_L(!US#0N44`UwDCsm0nOc;|W!1~D%A{dS|j`di;*^F~n`zErM@*?34Ab0;C| zVo3h&eVY{dn}dc!cdFxM&u$q`{P+hd{*C?Y>glynwX?Z#3-RWXKnz=-IDO<;gtH2mXidkIh_sf+X|Z!&e-a+v zPSD4xIMkc}k;{q_9M0MU?eXr!^Z!*U;xvj?j@^x;5W_NBgf?C5u7=1KZ5&l{bj6l*QIyZ>7JFNv7~dfwQ*a1+x) zecmAV_D5Fjvg8|JoOPf&aNMvK8*B|$YLMO`KtcEsn!XLfAqSHA76r5=BJAe8++x(P zMGdWS9buo45;(y?_U;OZXZF0x3{U^pCNUYB zn{Hmb@(GOuSvKLk3{gmBvzdGpAE2AFIuc4{E6OvGQ@3?}C>;0M%i#fYbZ6Wsf70u4 zV%Uu2f9Oi#1!-q>f$En6BmMoD!a+{tXG{QsnDR@RlPfj!Lc7{Mf`7Lyj0a1jLdT`0 z#dmt_Gh<70t#0J+}ec=p&a)abny8&{OKvVYyp4;cWvQ1gWg`&Dnufxxn#mD|VK zLP&VPk*IpR?SUJ|@2QY=*yD_85BhV5&8rmv5Hy|!&;9E6>h<=x=~ctoJf zMK>z;i1y5v{n3QNX;^#_O^@Q#vsQ$^-Fw_?Ms@2#CeY8)1Y7`{5lrbdz%F{cBhi6? zuh{7z)6AgBHlrL3GGIT7L^Notc^jc+dtWM36ulCf0=J4kfz%@^nhkycXUC5is3HH7 zyDy{tjy{WRgUe}rHE9Y8;gO>C0~`U=+wE(|3N@FRG5_p3Bx0Ca&SRb}K7=Zi=`^m) z%ec%#B`UhZSMH*S*_`P;WZXbXnJZgUgdg#tZ6@0J*PTjb zX{~?!iwQb5Niv{lFI!5)U_L z);&Cni)CEAhB`Cwj1&w_=PQh#ZWS#Q*pvb`qEqIlDaEyi?@9Orp>pM)iL{TC{~$5F zE4N$7SqoS57jBZi`$(gaLIZZ6ZG>ugK{RRmZi@X+o4E%xZOS-UCuLS2p}J zfdDK6k)lT><_*>#(`mLx!OA;1?Z{_QFJ|A`P~RR`Fv~8nGRx}dLsp=vmCK4vs-zmx zuk$(>d!Ryd;{iQ>xE^d%3uWZLifyudn(Sw6VekBkX)kbK3AK{B7urh9>HcFy=oJ<9 zN)A)%Jx=bxLc!0Ow{BTn-ZGVJeYTml`li-6xJKnlI%nchHB75!$;cIoYdVv!y|h|T`f0WAkIkFU z@Z{u~6wc8y_^_2OzsHw3_XF~$^@dWu7urW&EJmIHlC ztmSjk2nyYp;$ZVN9mo_Hdde%S@R8DhmooZTFC)iA$YpmehoxK^Wg<$$rv}*4VQpEp z9PIvp0CLzOQe9wiSJH;%53f#*>ehS{f5%YgjW~{v3|jQ*OyrnT+-`JAG7Zu@ihCT2 zpZmQdX0AI|w22Lf=+@?b*OiR@m5~wr$qkpK8(!0u5_2JXtT|6$mAD6|GEQO@wy_VICb_Rq5q4WmNpSG14*c!f5j9O7+U~-z9MZtH^dDf> z%pqgSjM$_pL7NIbsV!Q!OM&lkXyk(4CY38ay=eTLq4GjDn*@l#5(itW7RY%j!*m-iVoijSd7 z5z2K8LDgSt(m<04d$(OQ7QY@nvggHa;$f7pLRvmBnt9qtU64a5 zIn24*Cww*gVzC+7K67gcWBx5+d0-HBxd3C~u#7CSUCr(b|-+ za~~=?GTJ^>V~pMQEJJZarGu>~E#5ZvlrI#Zxf$W+Wz_vtalK7-GKrpgVYYsZ3)hRs zW`~4gtL|zXG+@)}W_cTLeq>zh+|A0F`Jsku6yIZ(-@y}MyiZ8%im2a%q!|9Y+iVhk(3uPu_rBe;T&4|c+LFwDXG-a ziHR##*s$~#$NdPC`mYAyj}-2^t3C2rstIWm`(L?yL-<_o-g#6grq#0K3N1&s^)3hh z!o~7_PiX%3CLg?Sj;9C@qfUMk`9{-Vg!=;q)+|V#j4FIIJYvZ3FTG~8MLaIFrz6cc zYPjcQeec&F6jnH1#)$kca4$9$k)+up`j_=~T8M{ugwGbqr*w?>?^6)c1DIvt zry(~CT*=#1!MvSc3-Qa0OR&zPJogwDcKuvGm-EC1vu|a7Unpv6dmX%?bW#BRwpA!Q z$TF7NZ2jWnjzHr`$m9pom($6MHF|yK=oC}Rg^%)zx{G~sT4zOtvLt>gL!UO+Pw~0X z#^xUCFr`8|mDy}odrd+W>QGViDm?l=dvFW9T2172KvRj==70Gh-NAm;tl<9UCrwa+ zAfs(5$zQ4AHb3`%0aGMZDF!8*}1h z?;5I|A@`r?xKNaVjMcNU>*pThBJt{a^}*@Ay%+qiLRsk-3w)?)>>%v>zVWL28|C)i z@%M3RLWQjKQoS*>7^k$^8tp^u*jIbPA%7a#-@zyqj5Mb`1i8NK;YqRBj<_Nc$dIm^ z(y{5L#~?83VJNV@=uusf<^MibnmC*y#e@I}b?6gak3<)UkNM2*Wm`xtM6|-mt9`Td zs&d>9M}p3M&Lkm5CYe!5^8BADOob6MX-#-B3uJ(>AEPDWRcbJo<>a>k*2y9SVH07N zJd_`Pzrgf!b{jM+X5h^>X;C;Vp=^sCqV<=4nFP93a}<89+CGW7lMN<(>v7T}!v<+| z#NysN7jEr4*br|fU!5i@%0-lx-aN0kqa_haO0)%x<+%WA@JY(g&D z;$vo!zdWe``?dl+LS&kvx{zPs%{_@=>T4tm9EARkG`mC}GJPa9%^E+cb3`TnukapBfO zbs0ewLZ(^IBVj>ww5~4Xp3>Pww<7=?YF8i z5lOT29}&MtnUX`L4bl|TOz}@QIZqx)n2GX2q9JMf#@~rK*|392^zw{JL18P~^QMdW z`&{Av9w$?f^p-)hXs+=&8}T^_b>HYu#g=O2?9p9t?FTZ6UycM4SasoygmXP~L4D2; z$nLo?;!gBlM!R^wT2y>OjNC+D?=;8c#N_lBeb)DQygRwHK$|6UQ5im^uQEPYgoRm` z#0oME8j+yrC($%VW}r8a{GAvI5XlG&M8A@h{sxa)G{Pn&(&a$u(E>KaQMg`cZ%tWF zcpc*hIklmAoXJE@`s$Dp@Wy}=I~UCl0%MIXmWG6mN?5g=A&VI9lf?)@vN^@Ts96yD zJqABp?HAdf{(D)k62~iPXb^DfMYn-T6-*QuCGPqbCwIXKc?Nw0OanDt0&jXVL-R^X z(2V)q8nSX!m8{2*Eoaj#e`>9aE#K4LMaIs**F7%m5e4mufSEfx#u+z5UJW zLg2^752vo>d{+Y~Tdm1t?+ySgAVrE?=t&3nsomzpc$v^C*=HuinWa6&cZY(q6=~D5 zGT?6O<^3^u`#rI{$$a3-78rZ>qI~u`g3yn;b7@N^hyL-ZS{4lv^rYz%|lc*^(jCAgY&? z^OGi(_NyB;qhrWsGRDN;b&7d^ihMF7K7ilnIh_vD9y+HLrUL<)D*6Wjw}StU&N~nO zcZWu%oSh$QG5t%r5u(-oj>XG{FmG+zDww= zgBLvw)0O!9#L1v7D4N-01A4SQvQeDz=MN*V5xYz!ExKb}1M6GQrz6zGi@Wssv!;=V z$}ULEoG2u219e%(J&1$kk}6X{lYKqp&qU7uIv7Ix{}Mr&3LKRY_IVQ;lfmbGEb135 zkx#@b(;?{1xpCV!4Dx-WkG%1!wF1nU>dtg)t_HdluXgUaq8LzWnPxoMDf!x%=62Wt za1$WnSbI{pSM*#=+FJ)`fRkgB&)T=i>GorRi44Y9-G$8ZO%;YWD6+nHVpoKHHh4P> z21jF6)?3ly006VUnG{r%aB?3!OoCI9*{By7#?DFw)#;9U2#v|=@K`wfkd+Z0&AwE9 zhI0rG1Mujn1RKB-t;K12z`iB3hs$=!<~_zZ(Yu(cq-+ioltx%i{0<#8#fjc+cLDv( zfCZ-2z`gka{+-_y{$=ifmFM|+W}WbZ+rwv*tf?4Rrk9=WkdnbK?xXIpbPA(rC~;q7 zZhs<$4E2WtXm;|HME?eyA$SxClSS^4uH}lvnE&{`4?yv>hpULDTzY>qwkQx!?Mr~j z$mapj4fRdhg7;1Sn_6u4Ss!1^Q1pfq&Ro$n1CO@SD1J`cB@|^ISbXJD!|=CiH{C1J z-Lz&1nUSql8A;94VEFa9X6fpukAi8BqY$=w9XA48&01}o8cyrE7WWAIUQB>u88L{* zlv8(@tQa^2pz5#|vklKpSC0Jz{5s3y2LML3(8?#GnU>RzKn3WR;>G+0xqY@-@>g_R z7SaNbng*(=u6w$rJ9Bp4@67**HPE^wO|F>RG!pYzEPlUS%JOX#0Z1vwRCfhaE+Izk zA^=-mc^zd~>#4N?QSe4h>-8{Vh;6qUCj%)++?pn!;l2d;8vvu=IPA17pR8l&yB2MS z{J{@pGN`xO=}suHX~^f6p+2|amCcCeJ77{qq{!54j{$llNlnilHIJQ}ihT15-w|{7 z5WbD!iR%!fNQ-+%K{bXa=t)d274{95;<|+$%Z+*Npw-ts%8Y9kr>eoxrPGe)hl-aA+SwMCmG~D#DDGlXy&ghh zet{0zt=*kTc*8h?aoaqL5IzGyT)V7U2uZqtC2gp3ySYt6)g({;IILbbR3TY%B$UHf z^LGWaB$OSk(*+(V!2UsAF;>)(&M>30B`T}=EBv<|55f!AT)r%Ec=Ar!4|(dpC6~99{!c@tng%sYbCUw{_w5B z|F%N!CGW-VqKr+dh_DF8*&G2nZSI3Tiy-nVo}jn4_YtD$M&mh{N4j)`i$3c#(}5=Z zmqZG@`6T>!;c}FO9OI+!dQ%S?kICBW4BghJ^agERcqQg6u&ofI)el_{@-SZ+TA$qGQ9J&-PQm;a|hj zt1=PHX&q8BGVYKdBWBE_9%oNZh#D96+o!!9cE$FAxLQch@7osAp=<)(K+Py0yTSmH zilj^E=)UMjCAdeuk}{?93d=5*fg`qMWf}c9R^@EExi3KV25uI(yFK`Lc2=PA&0JnX z+x3~Dn46XrRC*wQ+xIp8@A82EdnV~))`UlA#6Lsv(jk~dc`rFBMj7-IfUOvhVHyu7 z?*MEb=*YMYQC9?M{Zy_-tqXIGjF|omTScRM>S#=)BFFqT;zXS zZ}R`!01Hn;0LKrUObNQdfw(n5WBvbsn*j0SdbAYz+ znrfrIkV+kQZk&L%wx83P^L{fk20c_3j9;*F_`ruBzh63S{N2`WGzaxGv@LjCJ&46y zIqU*qp8I5ZydS8RcwW_u@F=B6`wBale@Loay0tiVUdGWn|-Bi%mPdz#!QnW zCX8*kuM8R%GlY+%9iTlYK)AO`&rlIs zwn;)Twaer)1QBq!^9h|DHluLGe#Fcb&2#rzbS1EEAklQBgV=bm-*M^GcE0B}zFH_pEQ__-rVDr;9dG&5^K2?GL=-9`T z21-$3_s9J7M^(xigW;3p!fih3AD}MMZg8iMwWsnsn7o+@?TxcEd8=jh9X8nzp=I}X z+3%e`fNNvP?CX?23zibISX?F#C4a@*DN@g8JdVCqG{)#;3TMYD%M}!6R7r!rSdr3` z<5w>w`8h;_j>%ekCNr73jmP4(c&4VJ7r=>#LbRC3D$-Ja%(tzjWM17UvKEVpQ9hfG z*%JR5%~=vjmFkK8Woe^xk9(qmEBZqpgf<%^2;J(tuDYs`T(1>kOqBaMHfI)Z$KH?0 z1@BKtekATkEq@1DL63D5Z3zzZHwzxD0v3gzplNI%?Z>yMc9~i=SW=+cON-K;3iwl=s|exPaC1}3CxD@5E>GLsS>cq)EPTALQcLQN?1QntSyhZ<);f} zND?3`As>^llvNe7wnyv~!~MIgkP@oe4rq|>`V~kpmVj_U@slce9$(@12xTEw_hZ;y zE(LN11|z|_N{^v%8fx_hG0=NbGF5lCenztWix7)I2{)iYz6^m zlXUa`Rjmr6E#zB*jooczhBxx-75H?tR5sX_LA$M4eKhei{M0a*j=S2^(UG9xs9uTR z3G6YyD@0?dLQuhCCDM6axZCgWPj|}m(yY7&i&$A&3mAy zNtc?KZ3+1u=eTPl3}XWK59{+&W!1r3gH7(ar;{-GXwxt<=eQb1##?RAZN8V8) zaCs4+N2)gxH9y+ojj~X!fvA-`2@eES)uq-X+Y``BiCW+%p2nu99Or=R2t?CLUIu@8 zmMp^7vfwmvPtEjhRgI3o9So6m!#-PpR;>bmm9NQmax`g%*!+CW!MAhIdUWz~ARE2? z0{z8mtg{BSnfGYbZrSI*x&Rd$-JX7pKLONfTa*Y;daWYV)#;u6dCO0V3-G#H$ArSB zLqBh-UkeXXneMsZlzWGI+r?^TXiN{S1^(Y6{qKbT=Y_$GF{AYkp+* zj9vxOthE*#jKry$;5Wh$-p|pk?a`he9i)E!#u!DvDML_q^d|>kcSEC}rFto@MKH2| zFf4Op|Mrvlpao}fWO-~{G-DS;rSOrAaxr`10^M77*Ezqqk0ez1E{R4bEm!HkR(cpd zVnDZ;FGbnqaTU-l5>A5AA|@n?2LtI1sr=T77aiUe90@xI^yiG~y5WtK2Bewvu~?qr zL#VeY?J0WmBUFTbCwLc?^Iem;OkbC42vvwl#h0vjosT_)K^-!OXMq$V|EOiV=QaCz z>6*}_m;q?tDx_jhx~WWZ0je2~?dP~&8lBd9e>%w*X8|6cgqtLl+~cZER)_eH zRNAN(22VT?!ZLju|C#DTYN3hp%#|kFvD3JXMn;3Om){;()+UrL)R?rP!)oQ^Y7{JT z1?>|J@?J?7f#W0p8Jjs`&PrspvsumI>Q+4_ID?Bm@oh_hz7!o$(nOyyK^!vFz1_9{K;@bYpKA*vRB&`L-d?H0F0F*ef zv%tBf`2l-{Ic`Z?R^$n2Zv%DJ1717>PGRbs*a_Jp&#D~qg#R4&e2YM7ukz;YzbYQp g@c+XOU4MGX(6#6$Xtk#O5AY`=sVGq)W)$#$0XO9h&;S4c delta 85368 zcmY(qbx>Q~_dWd7aBH#R?(QB+ad#;0?rwpU(iV4jcXx*thv4qCK%jUD8uWMj`M&?W z%w%B5ottyc-Fxk|*4}CAelybjCXNGwKiuBSF*>2_4DS^f?LJqoArq3~r@^SY$Y+JWtim z*z68iA`-Wn{J3r4L*{6X)AgdTq$ja8Yxg-)9LBEGJ{sYL8k1f13>J%J`a!YD^5EBg z_d7n)O7r})_2#!E9AW37VyLba;%W*1df}w!a-7RCpa&u$><5=St=B<7vihQG~{7K(b zxKVos{6LqF4u<@Vd7ne`2J-y$1}g5yb^l{#Zrr#4OcD6@!^?Q0kG;Rm9PQV{lH~eA zzg6NO8dE*Sm|wj0KOP%CblHN8_lh5c@uauH9}k;VmAO#9jS0Ax=mH1vT@4ms3zO{M z8)D@-XNOg;7U5R9?6P+|Ed_=Dl#vP!y3@ewYv9YI(@1i$*k;!w6Aq%U?1i+}RiQZu zIMKj+pY(qaA!w6g{~8CoXw+!VRZop&RR24F-U={wDH!4lspahL_2b#5~khFS^ zMMDj|8!@`nu(TO6dIm9`5eequMLTqgfkWCA{1`?k)5v&al4_MEKFrklTR$bF=BRv)thdI8y|i z^a6vCf>Z$%^Pg`i*H4?V8?R`c@>XXUvvD>o;_6Eka&oP5D-|n5v$Z$k;XAgq#PS*&fVOrNde=|0!v8NQ&JQnUJJoz4QL2;mXUfU}uo;^c#|A!aNj5LMvsh}{UJ9%e{o`dKDOttt$ZWaBkd3($K`fF53+LX zVl$c3`)3_`Gv))cM?t zYi0wmNcqoE*KVd)xEY^;P`NYcfs0&|@@D#DXUjb&7XE1k;@TwBSyJiYpmATELpN8> zy>Q3Cju_f zzFJL(dr|vco`1i$FEy20)R zU*TGeUy+bsTP2sUPA>^PGkQG^DR(r?E*J>m&uhRguvB1$odVEsksG&sqww4mxEU>1 z$LRGhQg#~piKhjJ+>RIs96*Px5VED#Y-DVTdk6#(m39zcPd^c>3)0PN5-$UD^4N#B zPVA!zhej4yDo4R*mY=h_zlIaSMEtjT1K(!Sx({}I&FxK4T43Dz z&L$F`8Z1J54FKM(h&=IaKyZZQ@Kh4)o8r>6(7ek=BGw%3XGl2D9z>^sK#ZKf;DW1) zIafq5IhJG;lcy3+@t@7#U^tlq$hcdt?&hNZmAouT(}C34F|W_gD1x{len zWM}>tvJ;d7`yp3pw|oOlhoaLMZ6oPv-<<-|c~gu|c6o4@EH2+D>b$jkO8GGY1;?59 zMQ4_uR|?cmTR{H$%JYM_S#@s6mG}`TJEgMel8&1#Ya*2ZT6B1;uVj=1#dPg12FJcBrb4b(OVw{o=9Ock9;cQr z4BIoPD;c*K=tFBKIfu(v{ab;#P>y#84y-fahFz?*u|Erk z{M)T|*;)w@>(A#9zY>{&H03?J(nw4L@24AsH$Ar{>K_WRKBZI(WAkR}dmcW|5Wa{G zxid9k*K3!ce$|P=OTk4;Arh`PT3b~BhMeKw%H+^y3;9U=ACA1Yp;Pws?SqS?4o^5K6 z{2qnA)#cR6^K^Y8@+oeB!Ewuinud@~JkE2z-M(bRq{E)3yW?x+Qco)%B=84M2^dJF zL^hG@4Byl9DdWj>WdMNiq(^zD(%^56p@;=U>i{OcQv6`&YUa=woRQ&G=&Fl7{~`70$~4Q6U8+(aN!#M8Zaq(jm8=>Ol7~ zpNIMMyXpXqI*6`E5~D`_Ik4)mEYX1cIlXos&jay{*WXxpE%gj}-^(b+P|l)w1AJzZ zOi|lm#l<(xfxD6Ze=LkWM;ivUR(0Nf zFdq5)HR)`;9i0QBrWA8O48cndEHu}>d@s5wq6$GxK5VrZHhEz3X+eIzMRn>7eWzEb zXQTHxk%?$n33|7yTG()3yEP&Lz`zQuF`+q(RE+MUj%Ll)?cv(q-Y54Y#};%dm)^F2 zl~TU4W;X>`lCE{D~e}?UO}&mfZYlD zwIs*lOqYf1ppfUp!NX@UGXFkadfLI;lBUx4LOv#2EtG=|ypJD8BUfeyojR{Yd?bHX_66$!cVVrI!n?fd@Kpeq1$o;Zvl#MY0C4a|S5DQ+ERI3Py_4xrLFy!y@!GWGu ztS&+&TZn^47Ak2}3imqZ`C`Q?YU6JG#IhFLC$#O86KlYUMbKzFHG3ATQ z&CyC#5qxR&S()TB^`xl=2Ei$7$l*bhk|tt+>i)C3W_J8aDTk9!J=Erk zH>(8!S(aNa5Y&X2*C=OkZ56paB|hGq1)cdHh(B?}D&f-jJ|`M^swhaC>pks=M+k4| z0XJl1*Fta?gHx(`AHRnJ{FBVhpTVVFCmY#3y?qvJTod%f?PUb2VKsP=`93jf(7}KI z1lvhij;UD+s#$?XXgkk(jNH!IOo_}D(Fz5ujF-_BS2WWad_3J=05r<<3iKbA$Ru+# z{=?q_QHn&g7o>n#qQNQs_m6Fp+yB839;`e*kCQ^g=V?3VRVbhBbe=>AlI{n}^^Eg@ zzyHHd#xYIV#AiC*L?n7P;6)B;_zEvBDw$MV-!ygi&5xVD5x#mbn&W?HP{KHO^g7G? zx3}0aO`RUaB^S@=2)}aefO+=rA3C#fv)zqAeglE2s);Cg*V?<;64^RmOe81o??dn} z^Wkx#WUx-3Gvlo^Iu2fkqiR>8*Rzd;_Z^M@fDu4U&m`;@kPCtqC8TRFn}6G4Oy6T- zG|}3=4sE{93J$!gFa39$kz0KPyHW4CjGFbjkCM+hYe(2rF<3yl? zmEO&wgWPMnB9|8uSmm1-43ffjsV_(Ycp=r<~gz8z*HlO>T|j-=6jo_mn|Cb`>BX#a^v@1 zbf#kl_x=lYpJYyNM8~{AtK}S^j0TQ{T$dr~IgUo5#&wp-EAu{|J^>_=XOE3P9a#M> z2_TTm22M7KWqg~xN-He-ORBe`(z4q;g#@{Y6WN`YHi<}ZE21$iDsR}oD)pQ=%+|QH zJU@;Q8BeHFJHwDxi19o7ny;eQi^E+uyf~qeDb-%q3;8#$)cb=qX}!L5=vM|e5Km_^ zE<67C4Wt-lVfVgdh8IQ{nfNCWMUIoC^b>}Z=Oiu1yz!fKV77hT(AXT)xsf`dDy&S- zi(I`=i){xNh6mzI>LI=nj{vr%kHq$%xSkdR@hA?&Be4?J4M82DL5mAdz~-o8D&fg; z^e?juDqrQ2$&VN2KBpir1RBIZey5wJy&XG_pa7ia&uXIBPF~OXRD2WpPnWp>w5y|* z<-{M$>m<1zzR?|UGqs}lur~o_idl*liU_)QsRe`KmqO}23EBpN-dB`kOD?|ep>n#D z=GuBjopzb>ajl*wy+V58$(A+7P_-H-r&K?tTqUawO6kOU-wz)ky0DsSF}l}d zGdL1S;VA?|aJbF6EC2ZuUQ@ySfK?E1Z`?n!D{eC7ait$IAd-yDPk(BzU38wGge~!y zr)JeOhhGaEunTa&PmA@Tt)IIWde)97!qfaW3e0tmML4}-t2s0Eohn(P-skVQcm$lx zSnRrdXa#Ow%=Q@|el3vF1wARSTYm5?R_MQ`g-})*_Da8d$b*}Sn*D~|cf>gMp;%}h z!@U6Qcz;=$k-+e~MC__e6XCqB^w?$inA@Fop$2ywrK*E|XaQK`SBas%v~mwRV})C% zotWK5-$DP^_q|)ppQrVSm`!%_K<05UxyUi{y9#oV?X!oiH?S$gX#OpoS{ZhK3$>TZ>GfT?A~@%aN>INfCEUTiCVr?l#R>;`ZgV1N;$ZcF*Srz+)|3`-ukyO%vES5C@3@r zV#)z5`T1w*SZdBh=&Dy{ubd7`)cao7d-fo!W(O?{1E9!JSX?}wQ%FM)hYSD);2YWD z&6BiK1H6_AmAeq^XvJ41`v<^v)=P3>^=)YcTCxkJ-#dt4oRxb5 z#iqG=PtA-%&ydvhr;VQb&sV?ZCOrt*{}~`ancJ3l{F3Z$FxTBeOCD^!c|qmQO5@vrDkK#F;L69oToCi5 zj-v?lNQ|Nj(5YXN^WlEI`ySM)IYj ze&$NVY2jj7suD??cUIBLh?S=}T!Tyk(h_AhxTx@-{yfPD=aeX{oQ~-Aw7B+gg_|>YPe13wFo%r zwnhzN#$hLg|KBd4zn;O(^h(ik%N@S^Idq-Zjw+x&m*dF|58Rf;9Kn<3#h;s<52vyZ zxn}^q#BDi?uiku4@p#IeB5FBZ-LD3hPUWNu*r;S`Bu(LuKO@Flv*BlAuT>k8A=4zg zYcot91pcXzzZ(zuSmYq<4PB5;8c8GT#PbCi$p0mbhwGmL5t=!l><1*zEjCaLD6;yC zC#pu0@3F{*An{xLs-{?kQVvT!l9Sa$Q@^({2-%JJJ=z34{$YEDw?9yfntABSsi=xwI`{t>?<+5V-m(jMY})x0#aHhD_p`Jc-> zrU_$W%q<43{JW%dcuu`1;O3Od6x#t2pVK{lL-s#zfC6v>T!1y`_ipkxo;}EwV+;Me zoMLKD3j}@oRqUWOu2?;LTiAi>NEaP6`>&jf667?%QJKoiFW$8Zq>&mk(q49}h^dPN z>Cu0`#mlyr`sWpcEm8lcyYO=JcgNOi+68Ys07PotH zpQ-{&uG7tK8|DX~a-UAblB_N@Xp?Nzr<=~DWUqOjdJKa`VvO#w87O>)tw$Eg0tkm| zy@0;}`zS^{6#FW#o`iPLscP8)hDpbU(3{nLFE1Qhp3Loz=RHqrycC()NHZZk*!9CU@T_ z9`cxx~_H`GVu0m`V|32Op4U;8wmB=L#yC|iPb%6uPH^Tad%=~yZDPj|{! zI?K(l9;eM3Xr4rWe?+RwkM_dtZwiZte5M#ekR__G<{rXx*3ykM(qx>T@BC!OV=bCL zt@ua3?DWw1DHb|u^ebFKWFk*u6fKE@YqE`0uLrWka|j<|q-dD$Ir??bD0U-UcJaaa zF|7W#Mzem)k>Ua-YW4@r{5>`4drb1J0w(3ifnWouPD zD-G!182W!;J&r_FSFhd_BWP#~0P%ohl2WNEpV4|kH#W?dA03tZP6AqNYDh7JX^6a9 z#YoZDuN@I>K-TFwF`TPg)IP&(*JntO0Er)cNV7`W=yrW8D9qn_GpFB?J*7Br%7WP| ztws^^QJhlw-S7M+$AXE5LUj-|DqiyB;cPJruV2l((X2v>2qzgKb_H$6@l&ynGG^Hx zQtVz6GGt*Uji7k)?+Lo)8yShzdx?G8azefXmS`VxQ8U@%{4sy+CdmaS&&e* zh5|T@T`S%DW7$Ry*#xz3vm%N!V`Y$$MIDo=ya|7u-MG#7?U8Ic%Q_ zV7yv-6S`FutdtBjH!mW0mZ(Kp)w-vt2yBgZW%xe2+se5?mu9|($v*rkEt?19y(p$5stX^D!t!?tz13ONm`1bMb27qRzbog4s#~or=4)|km@AnYaLPbvSvstl zv1NEZ4lq*H;!l05}%;Z)=Uu*>pM@bev+4TgmyrZO}I)^Wi9Pu6uH z_)%zg)J*TimM1rm30U=iG7hA_(jl||%I`7w$trDoee5Lh6l)OQA>j>{6kWXH#MN)+ z`XBglHlia`0wcv>(l4M0b53x4kOmh(dC9Ns7@)jz&~w2|H_Ybr&JjqoY_M%8Ml{#mRF%VJy-3n5 zE(~qVLuKCKS6$sAndGit)dzITPrCGZ=_5t0@NXFDrYmr!=3FlB=un!mgSjm?L#Q(? zM%IDgp9En~iarUu-;0ot*jqbO5?t@3n)Th`E;e0q5$vm`M6Mn!eE$;wAB%e4s-+g~ zT4)9A#s%k<3#Dvi0+lg7xVK8fhOuu%e^GX`2MIDblPqy|hgK3&JX zT~m)~^O(A!W;>*Y7Jx7FwM^ytIfOSG#OElH48HC}!0QP^ApGT(vu>FkW0V>>+bA-K zsEQYuao%6ksv&>L#F65<-r_O!5fqK@F;o2=$ZN}@zh+sAdlO-1Oic{i;m$zj5rRW3 zgp8Nsu?cb#mn9(5I>%vlf7T=5 z^1~m~t(5vHAt8M|JulYx zHOwMOLA;L{bI1T8$l?EDD3D%eRQTZ+A$tKB1!;%&HEQ{NfhUhe_(6-tW=r zG7}P7tO0m(+yw8>M_4|{m|~oDC98T58|Jl;zzU)CL{MrKwl8-B>_#-h38&hOx7x~n zp|X*Z5JXvM6S|-GHmkuBh^DSX3ZX{%{X1`5;kAe(3+@;pmpGPP>oMUWY5eJ?0iw=x z@QYywSj>vjhB&)PB1TR!F(Gf@@*TV>(U(2u59vq7)F!9>7X>Q@EvNi1>8Gq2$shkK z

      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 z zb1;RBSv&Ugnu9mm_may?PfSoN2B;?B(Zr#?SM*%Aol z^X+DWl+$uu`3JH66RZ*w9}smue)(G%>!Xt^!=GasV&FqOp|2MeB;Ya?Fl)hUz>OCB zsZPIyw@xotk(AIB`AdY~N&mcv+*SImh{uL$OW_pN*k8eb|6KGqoOStX{}36SyvWV~ z)lH1*h*WYCU@2=yP)qT#T@g<{de>)+(*cpiXz`h4Y~=9auv-FX@*M4(;5*M_kTzbM z9$UzeV>0TvoOu5h;}PL`!Q+y1*>pgDuDwrsUm>}-Pnd|c66mB$FSdHL==cP7LASK} zr&sduUIN~_wM+jXBeOHotTS;PSDVxJlM_Qvz+b|c-)54BhN`=rVAqb#pi#*>SdjaF z4G-;c_vn60pv*+WPiZ9;-#mG7J^2{9R7?D_BL737JgBuABZQxnI9N%FYt{Jt@%CrO zCrdbm+Y|-{T)6J`>w>z#%uJHk7CgNe*X2IXT}ZfQu;TprkQ~g*9NWTk)}aGVaxk3M>I!;tLaPVsO+4Ui+_`l-@S zY3%2f7(L3!N;-XsyIRIP=mxUQm6cxPUGfZ|qM9&6PJtd&IVJl%*wc3);fG#i@K-$V zf_;s5oUUfp+WV29*8P5+2%t#ONgCNoodoJD@G^tI=?^zANxJ2|%FhmyprCCHqg3i( z*0z?RJK!Y$>h?0iQcEi*f8|F~_iQ@Y{L#jfdxAx=*1RTvW-+!|b%TIxvI&GSocB$0 z7mzrzSa(V|?31qO7;i*Tgj(lXuY?904NaxFmWE=Yxum9k%paglGIH{#jqFY{4hYHc zS++QF^K1F!S164{56Tjk@zSEAu?BP`JYlhtQtqozexHCr`j`rDrJ{6DT!QtR0<*?0 zQ0fuhHx^+-+$N`hd=%Fq=5@L42&!&}V3wE4s?}5OWVM%)gFUPt;6E`U3FkeJ@nVdg zY2O50{0bI_yeW3Yei`QeB?8-2rHajQ;6F>M*<8jP8KkLAO@ znzBid+gm{AUqCdp5MlA6x*+_?W+7|i2=*Tz2Y>!K2>RP)Vxhu)x#6#V>U~f{#xrs3 z!Vdb?7sZl(epIwX#3?;pf{fWtueNc@ZG`bGsK~iJ-Y)WMN>slC=@%Ja)ODT5(s#Z3 z9sSW)p_v4{g|6`r_;!t;aO3pNGGQ+)<3WHd_|N!d3T^$5@aEGAbK75#H4Fbt7K`H)AR2-W@v?l;gGYe{Tl-S?&fi7@yVt(Y z;QMpNs_XWc-+8?-p> zmbTWso7Z0mUCKWip)rYnU^V$jDXhHj09KX|X~wcA|Ejb>m@Q)y^>gCWG%8#SaH>Zn z6^Acs=gP^NU*! zxyM1sA+a_zvd*_@qiUD&{X1%TWg|IWU}r@Eui|W(0S~iaDi4CEO~1@zE}5O2d5f4{ zB(Le`(?$Ma5+ijk*hh!+_+2GTCN&H_e6}uv&VoaNFcZU=osU9;i2u}MKz`!=#Ou}( z7AedfD06F`pkFm#P=U6tC9s^mHJV(TOKE+-7ZOdPN7X4B;-=3M4{IY;{KA0t5LvGL zENG6w$BY8wY_N!EI&}Aa!XO#3U=O$7RWj`{qa{%W1T#_G@zbGBt0fE&Ll{8U=i&I1Znfzg- zqaXGQFyY~)8$gUo!+D(fbQBvWkx`PC*F|!M=!F5`iVcXyR@2hB5xs|eTVV#tbhUJn z2V#K*5onpih0=V0lngR=PWl&9&?thZqu)78$Y+cX6#n&oPp&R$ z{txF96Eu@h3YgVjRGp_c=`KG^89TnFkjc+;^E=G~?g|sbU!%_S;uF&k8vL)oLt%Xx z_Eo)TYvXN%CI2<;e;6)Wm$W~+-0XuoKKX>k(ag0f?fnq!mt}fe8{l9U_tfLXXZ!lZ zdfI^{3VaT&IccS%_6f06EJ`M1n`J>xtVxXPJ^@`HSJ<=G5FX`qFJwmxsIa*480iPk zZgay+2mFKZ;I8jnf!w6Mz~G?xx8BR{o6l3_kpsV7#V$9V53^FPV^JD9fW%H zDEN!0Ka}|r0oXZ#S^A_bEuHm7*BeraDj)#^UyMhb*HA@~%C+0tU%Ew!2p<~aJHor&B>&faT@%RC5}AGNn^@1MHaP2j&^C-LD>5=2}rl$LE-~IKTK; z@D#Vk*16sJo_wu^xHC_#WPyUjyOG)$?o22wOxt^+J-^ML^kkdN9pYkg(1L$=0&q?R z5vyZ6n|8oS)>|`zuT08m@{)%~#83O8nrrPp6Z8+fa`YZIG3GqM0(9pfbBn1(3xFk# zmY3uDceba4>(hATzk)ge3KH1ZEKuy+PE3y`|3`S*lK z-Ux>0p(4{pH|A5PM&y>yYNH>N)}%M`NCj!t=I1j_d=6!sdhMyo^xfDqiC<#&at2#9 zuEGEp@|ixj2omL#|42r%^8+C&Mb`B_U^+unaG+|+@pb;iT8CZWnh+IrfYP_ufmW_T zB1KZ-C#e6UOO^Qolm{0X#Hq{M{dxHpmo=S~-69ue$k5_Fb^|S;Dt62qLb?-rit=ac zZQPw&y4~Al6s{VB8-9^j!kGVcQ=xx$>dB6yOJu@hDq=w!*JD;R&))G1Ab3j~MYVyF zZ7sg_=n^mGY$o1U>6>FVao|Np`Tk8ehhamD{2iTn58xn`yIQucB5!+2smPwOk81$b zuYhKf^*I%Fe6%`KwJC57V#5F|LKq|b1N7wpH6Pfhr0D)I^UC7}0-_4QD95F~=+?5l zQ!qUTkZ0pDrM9l&tGJh+sE7z%_AWUtfgKE}vegi+3*zOJjz2Hn{|lzts_uWXMff(l zcw!XmqDI@I*(Mpe?LgU!Dop^$(!4~UBUe0Y>%YwZ2yDX@knaiZ2e|{1u@}4~gm-ae zpWb-)3VOhW`CqAwLivRx!#B4ad~8|@e!omtkT>{)@0l;@(h2(AdvyPPGB6kcWeK{% z5G`&(6LK*gR<^70Rf?}_>+2o%X-iqgK?yVcoiN%K?I#o(m<`WvUhYszsUit&rptw)24BlKMERZA-CLSRRF$U zQk!d#jnXoW@XMB^fr`BzGs|UVmsMR(WKYTLQ=!l&3BXy%{`O@XXj*NMveGL_z!1D2 zk{7mMz)pE0?|Wg&)N!r(?7Gt!Fq{#1$pZnsca|X1=hBQpF*O6odAvqk?N$@PLE58% z5q(ON54`Us%_IZ+9DVx;!RS?=4WS`;NVa_Oe9Tv95eC zR^vN2AM<84`SpSR+pK|H6X*^y)*9Gv%#jIfKEBDORjZ1-Y(aGBei!3GHsus~vECC) z{7umR67JrxGuBG@ zi;i+Q?HCY|+=IzV)Q>VL#clh6bU-Ur5>$Jix|4DkL(=aXKr;}ap_U|*x1iBk_fyg9 z6-|=W=*2nG;~h@_t$qq+`UG68YBTAE^W|Eua=lnEpgj>{=UQ`^Zornz(%cndA9pg7 zyg^H0%5Kr5iP@4j6P~rQc!M0_ysY!H&bS9aR5s zzRi{mxt7LBF7)nElT6=QKkO)ExN>7y$cL6r;yvKQKokE}slVG_u6*0~pVSQ}*4hrI zmZ}8x#WqQ{1@j30=T#*MZWAEzU=R>)gF;HV_nmqQ39*sCPB42^$+ectqxcHwEb6IL z0vER>sWajGXNn}q`Nq4?78*+$DlxeoFrZ)Xg|&H|(LVWj7+(yK=BYAnlUhmNqwXMX z+SfyhF<00~X&2>3ZiE!2z{gA+K`iR=mJIfwoqpzsR;{;?oQ}4`;mdd|8e;(>Z`551 zH!xEY%c`zFp82eV4##WWgN98ifVa1djh}rPSRAPHzwv^?&Wh*T4b~lx-sS*cT3nCj zXyEQ|_QGsAo9r!Ku6PGMDSNP9u5qfi$xV&-R^6$_l@ zaK-a`3BZc;m95^J&u*W~* z+|`pwOG7VH;j0lkzwkUzn3wP336NcIjDoPhK6l9g!-orSCJ-(slr# zgp88?LjYH%G{LXGvqCf@UYEx#WLAh%LSZ0CA9#`giI%{{M>?drHelL~Zf;=>0gAU0 zMBdXH!)M;Zl0fxjdDifDuN)PtEoHZP=;c~kPajvkd6tj`7V}DCWE0zJ2?% z5)6&bUGnj^YMj+)V(XM5s_g72@TY+1ce-GmCE{tvaV}1Ply(O=VwgeY9+=Am+$&ou z$na7=NF-?dMWOD~kbqQG2ufL>Vu~%B6pT zxRiMduzz+HN6dY*{r=h{yyydiLSWF3KOMS=pdL^Gg^&bmd^GiGXZ|%9z5)z5D9TU^ z0WV7(@sbq-X+8_*{1t5qAwFhxHqJwSv#H| zr99A+YMlNZk%|0~f|;xv2=UgF@(8Ma?)dPen@=_~bH1F-FU%K-m&Th;_XVXZboJFJ zZ@k)Qh_-^O+O7o|q5U^74q>JXU~hI^wTuhELJYbCuSU-Y_}&GyG2a3@X2SJN6Y~79 zH_#?-NRD5;eW};Yw@#0=V3_K{F(lAorN6-kY{-Yx$D$epIQ29|)8rDVUKr1PK%c7H zlT{5|8%^xcZQ6;6y;=AJc*KvF=%+M<@Tnh+gqnE45_OoGIbB+1_-_alfDZ(Jl*6s> zZ#J6e&KsKh)a*T&P7X{QvIiL}H9Gqz42UfjSYZr5`;74!a(Q@Q->Fk&{JYV-qKnLI znlU3r21R{8@G)Zp+6mn|MwbVr@@jYBxhRX96N=s85Z+ZcJRyfhDAcL=ozrKa>;@fZ z8#f+)J-Y-@1nS5tSG)*p_mh9*$fAflQ)ailg5IRvG-`QtOW74DB2D0XIkXT`7=v$v zES63a7Pj)#(uxnrgLMzhUjbeL7j7QeO&hcjp)2#(7+jpz^~oVA2CL%%>lQA*{)|sxShaHR_RhKU#w! z`Oh60QoDlVP8tafK^gN=r-B?QxTbe$L$Ma)}b%z-yMs9Yq)<0Pd>RUDq zOmu21(#5pE8EX>8-HH{l4|+=vMD#)C$<;Z3 z0TMzR=wI?|6Gm{H(7Ry5eqjK7g+I$@M5TkP=08K@v4Okia|o(Ms8(Vo{euebDWDW+ z%_N&y+x_AbSNZ;L%9u}{%Yymkl3@x?G{G3-x4wFUjKdrusm-tOxqKnWIoqrS<1^6{ zPP@pLMlaZ7zR=LLGi1;P|Kh$`1H%KhK8ByEvBi3lxdjVTH_|xi7`xI$Lc=c-9d_N`zPW% z$ET^=CN7t+jvgePlvC?4sMQE7_A#rwMczv5mj2maVaP{|4zwe=xAcY_#r09C+E@L8 zhmWMd3_tn07zVLxaKL!zUo{m-v5jOP)--J@K&X8hnVGJP7T!mt!2xW~-x zcu1*NeNR(7n*Jl5t=teyrDG>ROxFa9rbD4NLUwCp zlpja@6H1JWe(r3RwoEN2FLHd*(V$x2qf|{$iW0?3FPG$#U3a2+hY{z$z4|eVX1Fx% zl8)zGc9pc|R>)kTnimjPVHx9kpQJ>ZZmEjA3;qMdgJc zAZI1gy_{oJr==)gJ@gZ)H>f8^5 zKVFq6IHdQUv}1YLe69PP(&YRU)(X~J-2bap693+}_Sd6^GFCJy^^qT|XLv_XNiv_u z6j(CEc^v1d`UrhFR5&jC;(?#_C$z`C^CtSc_-`#!RUFxMX#!SZZf0JclqbVo;)H|& zDqWI^zL3gxxcFe{VI7mlK!xGs(2n&VPhYD($!V{uXso{Mf$E(?Qm7Ts^8I<)Tl=1~ zZoo=5znB@fblO(`dde>!S$yx#yu}s6?yJ6Zai-VD5=X&S+bV_eY0e7^c&WvV&)vBG z&-nJIq#7COA~RoP;6F=y4FG?sF5=;iH9zwe;U+@p# zU&6Uv47iR$``cr9=V8A<+tJ{%NQvl1r@S1%8S zN0vW;+DsA-4A&;~Shmoo?5<7QenZKmT_)eQz9S@G%gT00KWo$`Y36e7Z5X2Eyq-O4 z)hCe>U^&r!SMQw{_>ygjgwLb{&b$*rbGH!Ni=dDkHnL!|Ab*F@laoOCM-%=);={fhX*cd97Bum8w|&&0_4 z#;xP2p?$-PaEfDDNAN=g)o!qVblD)SmZBo^MBaK|HBnM>_?ISfd79)D3KX7Rp{}%2 z39j^vS>JU{E0!1(t00c2e!VrBPIQANC!*g${G#O09kTrU7{8kOwYbzLm>gJ)s5tFCROxZH{*ish{;_3;e8<$fk~V`Sg{wI>+GSbwL_%+P zSmZsG)26P2&*%$G?p^Z>lDSE6FfM5)CHqCRdcRZyqeZEkd#^x6G1+au8FIPeEVLqt ztBL+ya3JxldAx3GHoRaX!fbhU3r$eM=a25d`a0R%Y4gWD%p0tT)z`0$YxiAlthEC@ zT;fX%oh6>`IaI4g30$L<$`87@tfmjA2zgJX)xV=~KHc>y`C)~RA!*XkA9sCgy6RsD zCYmZ67rTq+O7^478j9V+tD(mu5aVkI*q_k zb9tOYSviCEi#Sjv7`BJk668`r&CL^PwfkFi5xPAYX*{KMJMbBDgzhHPZm+QpB+9Ry z@GEZ}5w~0EJ_qxGfy{Te#QD;ojeX5VdH{7N%k+MCvGQQgr>b4hKW zP8|C~BVXa#M#y*P=<5d(i`(sYV$aw;O_)SD2WaKFDr;KPh4(%)0k44)xv0H8Ize2_nT$*L*oj-T zINsI4|HKi*nzUR(cUzGrUfr;94|Y6Ch^)>3>d|B7g1k8y%3I8IUWCDZx?`(^&FJtS zKEFwa>&Hl3&MDNA@R?n#w+~AO&+cx!pzAI?MC;9NV2HV7LSS(PyZen_%iTpJ^vw9l zATv&Ond^>&sE(a`N$_j@_)5)uZdzlxh>PPbtu1lbGQW0K-M6?4C!^{tl=YQWXolZs zR%T0MFt=MdrQSd7vDdM)Ik%+XWme`c*dmtW8C?i`E+l}_3O{DLYDp8R$nheeCjoI=nC?HQ3oAL#414X= z0~3A%nW=2SRO9v30sTt2?I#L-FqQ=!93Wz!`6^Y2pUWn8v82?wt|UY zhaIT(C>uJj>OvsSYq{mXs#$M!G)6%NY1-j_Zy|Vvn)HPYDN*FjFYZo?{XJSKY$MTe z=5p_NBs|>4l$V7s-fuZx)IzFygT1GG>{`u39fyvs>9#O(nB^2pkhskfF4cl8B{cWt}99kvsh zcD@j+a2s=#1gW(Lj0ew~ziF_L)OR-iNC3Y1#9yW@u1)l$@@j`M zWZm`9-aNlP1W%mLh9e}6Sp)=vX0Vj>qLuGKM+4r2d=Fi=oBteg+JMx;drDV*VfD}e z9!iBc= z3A2luW`d)R=QnYVx=(9Kq8LODb8&~2kym^f8)fPf2fh~x(oKgZ3)k0<#&_A@mqOT( z_G&X+J*>ZO2GMcZrg^4)d?U+@+xNlijyEWFXA^{kx_Z(%A00 zyX>eS^Lta}f#XY#>!+@9SnKra(~(P<`w0hy8d_bg;A-d$o~1%}!2#OIG2@)=F!oPW z+_$xN+svJ)m~x!@vXOBYD28>O&PP&rnN;Y1-6l$xbiir%IOn`N2#4-x77vOx>{;%+ zF)3ekSi=y(|9R3?cxeX!N@zYr3~N1!FEvQt3pvsHedu=ig`}XhZv*z`r*YXj-opNO zPtYO^5C_-c7aGL;)^o9HVM<3nK>7xJNH*ph({^z|1FIr@g3|`3>Ke-8E;5??#9ZM= zr=bRH23|eIE*Z-RPdbXcb%ELy*39L9Bl^OKT|?h#y*n1Vu_aW;a!(de|&UdGx5* zwlE>~uDgov{fkA|-074^vr>%;MV@rZ8oL`;J?%mHd@^AVhl$kgxiTuEF=MY&{klNf zcFEj9vh=-E*$IXZN~g39p0%D1`rSRF0}Wk8owVkBcwXmzTxgIUG77g5kbR%2X`x_y61E0pWbjqy+5ad0mMKXkLJ21`Rt94sPjV3ibyV7 zNz_^@duy!DhqdP#Aq@vhvk5`}IaQ6nD;KFe1Vk8DxCbWH_&)!5Pb7E%+o$@QAlY#= zOkyB*NGn>b;zR6Sa=sk4sqNSOV$gup@g}_9?2SJT8_Uf);-QSjF~7&aC&c#^yO;yX zMY|dc=&@LwV?wElquPw)d|~F1XzE87w8Y%9>_OgFvMVH6OMP(1$aHh$GJ=X=T+Cq) z)ZHR$B<{_{qj+3`7m<(e6N6iZnl;77ujr6c>JA|=(?wLeA0%Fpkq`J~+#!s*ZkMAx5XCkBRl=Wc^! z0(YDY*CtFO88e(Rpl6OHeATaQySZB9|2%NK(57Kb$YpML# zPLS}WXPnQ5&v>0S3)qaNhd3FuMG?g>~PB89*(&QlGH6bhOh!y5OR=q1RW9i->j&>G9jPi-?W{J%Ai&+J4?#dQ2zvtF3eFrYkjS!HCBW;a^3^@_ipno z>T2L5_zPnQ)=(Y!@57VRxlMFCGtDe=!jt)Jy8o;dEfh2$Kb#Q|b&$Dk39vq4NlokH zBL({joK1hOHZ=4U1^RRS^FEU0et~5pyAB8TPhP47|EY5k!UphQ*{P0k^Wln+R1oA< zlv?}+tTKXY@$EIMfQmiIO%$){lwGf7v|-zeS~SMFo1qD){JHX7vqD!y{K&0I$t1xv zL3{fl7@5N#nA<|kLAxCV*4`ZZrhwD+N)O^!-*|5Vz)aZ1VY*iXXRX=eQ~((%1eQHX zDwm4#0$HUwoU#aIiD#i7Rsi>Iqd=91$G35zM!-rIiB zpYtjuRPFqXVU z7%aio7_b9S_Q6smWPX}$qhWR1(ds?jjHom6YANZ?$V_jY3JL)1KA7A81%S8$=gmoG zZZIL!Emh=AEN&%{L=n~ObLpzqA%52}Q%|gBNRI?t zHM<5sJ^-s+{Ng)|-&S+kHe!``(Ah%$< zM1+qGi*GE2T64^UlvyqXg+LmgK!aGLjQ~sTgUpLg0+P-L1oG+{ZK(Lt_!`n0A9`aa6P&~d`X^J|@-vtq8h!P6g}E|Vc>o?1tw6QeIkZVT%UXNr%Ikrt~g>{AIB zH})jVC(dknRbF{w#vqq&3Cv+x7R*Sgw?d!O**~tEa~3d2GhINlUq)c2U<>#An zhYa?~lU;`f1&ln5D|fa8(i&Lj?v7vfFcu2kbg3b<<@2LnD+%8ANVU>ZR!4b?F}lv+ z-L4S9^j(f{?nlO%rXQ0_&)>G*p1NV{Fx){>UTWg>=F8CW&Pb683ayA-FFiBz?zjhX zyy?S(q^2EtgM_0Mg!#=HIO5K$lbg}$eW{1!hQpK6&r1(JdDO0$$`tGhY^JER;Mojn zEAdc2YqErr(7R{B?WcyQXg9yi)5&i|^WjmqCCpWC;ESW9Z#?Ae$Zr4I#Tuw} z5kOAq26L$?M-gpk#v4p)SuZoHqaSvr= zd?EQ1HE&Wjct5SEBHEjQ>~kMnsbq60tLMOb@*quwQE1(6Y!%&+_`YP>_TN!)a}*u$ z-0L_Hp~(&F$JDu2+L_e7M$=<-G$qgYB5DOO3MsUV zt~~9^bqSJA84ek<=2~OzB)S(c^hS`jS7=b#XVT*t6|Ea}J69Kr2G5~^+rCyVOy}d1 zBbQ@x=k@C!(6#r~Z5ETmpR`2pU1F-c3$qcGcV1-di0ARXSC#2a-q+*x6`?zK2U53( zUh4{{GNU9Z7Iw1&d{dv+JW?M)Xe34~rFF(PBVhZ{zJWC!x#as0YJ0~8QmV(iE3J3w zZVx%*7#yY-=EQ_uw`Pw*3tBJMdeUwQD6k?F6k0}?<-$LFqr#!vY^a&DIGf=tcu}*Sdf{vG_iX6L#AC-ck%#a#Pi+Avg^TJ^ zQWhk&fX0mWw55DR`spcl?%h3(cETzvd8VQmdtj4nNHTg7xH34{bW8UJ#UZu*vpRzR zHVfXYeJW}eGB`6wUn#PHMxuSqD$A_X6eV#UD<}HM`hoSt;~J*u(lZLL7TPovz4tRG z+|3CU$$7$(=x8bM@7yH!*mxG7zw2Gq^(gN;6iI(dTQj9otC%kCvC@&oit?gg9R-u` z(NBjCb}b$Y75&n3>7yYNb3R;_Z-|=h9M#UZZ*27Xm`5&pQ5cnHpxe{tl5OH$7ngoF z#(4U4J3dY0>JLG7V`ArONyT5JTV#7w!_!40?O)cRXu?Yw>vGsec0Peom`CrPKPH_x zQ$9*<~Z87REPA$jHVkgB{N(NegKg*1LFQ$vzo8}Tb(?SW@ zd2iDGxX3`>U+S*AQV2SXKEY=}lhIULsIjqg$5}0GbfblymO|(FGR!~rNq5S4HtdeR z7l^s3#(k6cP$!iy$Hju*uAXs_6O<|;#p7cYY9`sxF&riTSr_N`Jz3DQSh=lj3xuG~ z1v|`gr(0Lw!tia{9$3Zxx|5Mqc&D^;Xz{ekrP1~Cna(W4pk&PJtfgXTDfr?xGg{^v8)V-Hfv5XmO09^j@?7A3xYctu49L*ioxZOsReP zs7|TT-4&vWquz6GERCN3LjTMAhNC9cpd|tEx3eP)mzfm>m#sIOcu|o{Q+0jLr0j@a zj+W0R4F+Qbq8w+N)(Rd$BTe^0Z>H!jHcf7qYWIS13rnB}N5#quzS>hIrFizzFzy4U z;oz&U=`Gk7C5XC^ySR#ns{XK)f$xvK9;FI<->UhXUu_}Z;2h!Bc3W>4qhF-ugYb6T z>nHE;y2*oP(aY`eoLSPz{r*dG?w?p=w*Gg-TL_y@&aa^%XLyNE8UtrW2x-U&d9eHf zInx%tmC!g-QJyngWBK?81x%aa@7&&Cg~B>|l$rGF zgWf4^vRuH>a|y_W^`t(kugdDCBzTi2P3P~T;gt{+NbCJY!B(6SdVA>~T>sH;DjK$m zKS%cb^z5N%oQZpJ#luji7knEWJ-j|iIVxE_Gn_<_MMO;O*G&8(%*jxJe8VfJyZhYM z30y@o0-5bv4gy-kbct1YaCp|Tc;G#_ko-}!tc-tC!WChV-KMCo!^*?m)lhGTIX)%ABb$jGwHi1oCgK~YSj z2AoF_{?W}=Bmzx5Ua9|fZ=O@8#a9wOOlsWy2u?JHNB#ZH86|0oTa7yG=>`)D-xI{y zU~=M5Q0^4)9B~*lu6;$d@VT^>Z&0c@l&I_*U&y~2Eu9M<3W{{xR1Q<>m1nw&Ogi_F zLfmZ}AUdU7xAa|$%V$J%=+YIMe`k(&CPzWIEwA$(d|2}xZ&w|d@8!|Z&feo5>T9jx9fK=N9eMDLpO7#`2>~wev z!6lelj=ADk6f1|Dc9hyH(OWC%LbgYGCUtw^{REMIHzsD_MtiM?B8 z*1CE(LJ$h8Get(LS*%h?xhzcoB^M+6IP!e%?)-J?$qjU4x_bVsXS(XWb;(vga+dnj#ff~g)fE>sY1@7b z-ZSFu)kqcccQ?F-#_oDXZ6W7XPwBiklbzroJWJ}tmxZjcagA>q%uKIXI%Rqt(RrlAIcj7T3E=J7PZ_JI>y$uSnV|&m@ekj@fGbUL6~j zNGTClbxDHhbG%A|%|i7-V{twCs&KW!7m9E-u`}?Wg(vDCUuf3uiNwO+A6#v}_D0rR zb~nA#e!ZZcJ|d;HE#_IcKRJ*6FxmcKE-GRJ+>lvI@ULCMP@_7{p$8enwRZDJ=(SIC zfv2bP^@5)~F49@z;l|-g&#CVpdGMkC{mkLL-dYdHYkeup&bH&w>;JQ78|EiQEof`=E9u)?z$`H_s5Rw zTgR=?)mV-#UJ(WFn~sxYSI$?uCi-tQUVp5%7>Vw*HexHO%MQ!>tknV`(p|#x%6!Ii zH<^*cZ6Oj@A9s7>Jr;Yv{CLl0$jUR=*Bm3516Coopr+iv_{lw^g?PI`EmrOHE+&a1 zsdAl55AMyN)9c24Zi321%}_<&1BP`tZZgwnJ@PQ%B>*ZF{_2u6pNk3 z>AbGqSyyRIPibfbwf^xy<$AHgOp=B-Qm_#}z+sm8mtcCuMqbEg4z>-3Yq3<5bDu`k zH%AgaNB@|(R@&$l?ey%$mcR>t7bg(nMt^-1@~ zaei5T9><~=q-OW0iR!3%rh!a>35Q~RGjQApl_(QAOzcGBg-65qJekv&q1^MP2Bhj9 z*UK`~;9<-JW|tQ&!4w~|lf5p*51qd;486@j{Gxl&5-Ij*CaETV5bxvx-yqjA)GBI~ zV9yg;T5%N%i_KQP!%Q}t8zr)-6Rl{r?r?ocC?gpRUS|_JZ&`5rgwLF;B%9m|=P%ZF zRPz1$Zay0>xe*mQuOt{3oz7b$eFs(}j}%s&XU4tEm9}Qhec}Vfv!1;%o74QZGuk7g zWNiX*8QgcU zxm?)Yr?Gg>EBfaUjd2b4F{zckTzB{b<;P&+S^ed$FYJpQ_?KOvbfd zCGJT1KDY0{{Mze)&)_u}Nia|~3(lA{;~w;1+#K{6u+r%z;}!XatzkxIq5ySL;|M3d zBJPNf#!7SB+1EHC#N>P>-S?xs{Qbz2K}nL3qXhGx7+E+43ocBIQ1k*BuHmJG^Nzj-TDoSJAC? z{Xdcpi{>ZLUxej~1i^6AWMt$dEiLo(x9=Y*j^=Ye9~O*!t9I43<2YY(vx=R3Xq!-L zA9N*8o&-a@Ecw+?_2)H+Xxb&}O~>t@4l`6qr3Khm#hg#S*yGkGiM@arb)@!%F|y=( z{}qj1NA@1tN33I)x?&CrXL zXU!RDx7u^P&i3Kd*0dfd{uuD&MAy}h@nk_S7LR9j>Yqv$c`49c&JLueQxiG*%)HEg zMB5Nn&%(H^Z*o!tq586Pms`yuAsn&uRfQG}R4uq*4#j%xugQS*H3#MwtX~!GUj)nL zaQqOTm>;I^Q9Glew5;_8W=(flru%7sw z8{yD48c8N(Uujf*$iK0urHWcR`L1Z~nIaKiUsqQt`rU4c zu7%fgatUT%Sc#G%oXl0waiq$t4{oQHRD%N7_!c8Hh!)Q-t>Q7=S0)=su>XwgDXkRM zHv!JOKQF2cy+0@>uGo8SgwRgxldz1gEo)LHKrZbr#ZyH&Y-*LnC*k_Jm`CJ9Rga{< z5aP<|hqHf0Xa1;`UdySaIu#hXEN}5KU|HKuEFJ8e7O~Ad=}!GNiQN~_tK;;26V4@0 zQ9qbc+th;s>9zZrJ?gIZR^JHzq?oFaYZR(`9ENH$qGlOpolq)mFtz-Vctw~(@m;fw z0A%EmlumBqc1B+L=|x4*lzYM0)^$5*1HTo&+OpHj`NMrM+9x_yVJt!tSMKqAQ&}(i zbF^gKH;vZ#5r&;9qX_ULbtP1`3?cj!)8W7N$P&0 z<^8Z1j#kqs2aA`NL6NjlEk?-jlb@G36wKK8RMy>JIxON#RjtMqP5kaAtC|BZng_l; zPONs@Cp7)jsaH5@ALo)u5$1@fzH^wD=xE|dYp}=5axb|LU9c;5pO`S`Oav#DK;lDc zAix7{!aQN%E7iJ=p5~I-_XdQOxKX@etk-r*(!=ccQYJ|+b0xE^gg*8E$tl!RVlyr# zz8>PX7IfWK1I`y z36L=sC6^k1CpG&4p|YOKo1oWPp5t7U(KDi0cJ0TCD<{<~TBhysxChbDgOtaB zeq`%%(1z;baz@65_!+<*)kAbes9X?~q_2_(ezQRabOF||J;C)ckLNf@4s?&`5mk_v zf1Julo)D0)D$S>{ApEG9F5VPfyo{^S`pRm|!2#|bHws^k4iuw&w1nQrq?(Eq1@p^E z=cr?7E2}NLhwEID>N;;%dT*?0g-EC$>zS_3q_JO#+|Y;TpFvtbdZr;q`{b0?(sp8U zMc*n;G@B;s7tzG{pYj;BbuX2fn25(7=Wl89_}Eu>W=E!83AF!;wx5Y+X$1Q!y5+rX z3nr?PO2E-;gm^1fOFk23<#q20ZkvJUtJ|z?seD;>zT@HU^|1r9eeM>?PlNy70n&?A z-1r$Jk=LW+_zfGGma0$5Gg!>iDBRP~&p=a+{c5F-JpT89PAyDRvIeJsA4-ww&d|n8k7zM7w)(f)l0}MK1FG!7W%3I1K{3|5I9a z!^Elpvuao@dKeEi4=RtMBEN`>kO(u4vT~V3JM?hMJYnV1qw;2f zQ^eL>ecH~$ixK%V`o)7CsU7jxuJ6!Z>l7F+buE8>FbdYV>zZloSCAZx+AXRSOPOhbu@a%Md(_9$Np}>9NelP1` zn4Z)N6!-1N`v$e|AFw#q8P>hdlvJ9IcX{poCF>JNqjLr;>r+X&N7&jln}G^O3#ojA zL2TLXjX9(d{n-!jXlG%j3F4p4beg@5A^kT`xGJ6Q8^5w^#tgU0YRY_-bMLn&4Um14 z60;w&$ZLOpQ)tA>x@SIwIfsS9_+#xn&&Ic=lu|Vn&b1(i^Gt0$wK6$wRD+|yy}HUU z7*?uPj;(|C!pp?w6%9TwdAhL6!r>oSN0WS#Th33(lsEJrQ~OsQves+f+Um%UbwPy_ znd35jxofV!K^yeD3w)UkzM}c}6$q`(&b1D!(=4Drsc5MmOIWztrP`?w-Zd@mj=@_t<6oUy_g?Km{*_4-5z+Jt*-1YY>uD83ztW=j9&rJzHT+dtEFwK~8x z^;m+(%WXYw`{mS8i%a7hXoz;+-&o{Ays3N6tJ%02|Dp-Tlv=}HbtN;KnrJT+Y4raw z_EvFKwrkfnf?&`f(%oGGk|NS6-5t_MgG{(Y5Tv_XknWV0kQNl_6q$fDOmY(Po!o1! zXT8tH_j}*Xxpm(%=XIXPF~)z4OJ#R)!!)^F_`i4i&Ts7H_|t3k)z{C+sRQap1^wdk zA0bb7hVx=@?q`K1Fk&hWv%TxK@r%Y;jioakc_;1rmBVt`9P}t)@8lJyo;OKsVI!#| zU{Ab%K=zL5!P*%!j0g3zN}-WhDoQtR*6Ti>d%k@In!L+FsABETJDHIW3Hj%iY{pz% zjLa|myUUr$)?p&|>eOP(=0v^S)v}Hr)T^-4n8sM`jSWgz&_8TW5?I^d)~{oyj~I#l znAzd$w~n%J=EkCnJ@&y|`E{bF?{P+xJvesBpr>NNN+<^Ra47F>fifR;>r`$$K=}ve z^M&0@kt6_OO{e$1#9`SP0yM1zDRBPOBTh2HPQ{DzjY0xJM=`lFiM8}zR4PqQa4l$& z6=W4pyS&s;-<*m417@kUGF$cEbKk%PgGJ3RY~@zoW+M~c5%{xDC6h6^zWhQ79~#t> zuFRiS=_uVYoU=P4sI1*8%rEk)8WPTc?JH++!h3dwrw<~G!(kpN$HS@ggC(t-8k>jn z9)}`v-i;l9S4ys=WID$Duu{$@{!D?{t*gjuvF(tRmGkCXtMPMV_{i7s7{a&3G`)z) zl9(K^no8qrXwL#1td5wQlS^@s%x2^6f|}r;<*?F>Q0lPXxC}IMVC}l=NEaz%``qyt zvTpRn@DTf;;pN^EqwY{wM!B10<%J(Q>G}ntWd2mFxaywe>kF$TVLE12f_Fbdgb!s- zzRl;VR+LyNS?KY6MkgnvTYo3S_p@etV6_>Ec-UgT)N?h~BOGnRBN zdd_`E?l#-|%U=uWBQbdW(?Kl=tMhwC`#@HR74kbt+x=Tx4e(`w~FYGRxWwVsTprFOforBMG z5A9!UacwIG#HyLR$6u#;>LA`{nPQpolV?6>Uf*JSB#ibQ7je%1BceVB~SbQ>qgN|eDu z6=;`!)wK2EJewUDQWZX+RQnMNZL z=4gi16%;hfoLnid0~9${jCrXYtbu!i29N}cJA^|E&6kqH=Rf;4ZTzY3kvl>`DICf6 z7Y=oEtBZl-P*8m&0HnLC=MDLY$7yNNKQyUW*yeeAeg#{VrPOJGh7>Jb`DF>VE7pK69zM5R2ImU{e0IQCL z2$=jt`EiE6>3tdV{Fd!PPG^glg+HuN8dmxAua#J-lT~xG^!>%3&uiK^-%)WT$@(7p zw=0`K`%C_@vd;{`m?w$KOk((+IAZM+R!^I^Tqw>A&#LqE1XKB3FY6X<+J~8gMD3oL zWFdj-Q>#D^Y}%iD1`U!4Y<~r!TZKavA<9Cju{=f^3p-KBgm!X)Po97|&+8gi z)`$APQg*-1^LM@eD?ESvwG@v1^W#^m;33Qura01Vm}D%s=RDOYYQS$ah@MqBfE9x- zME`zeb8gdrZZk#VswpM;#a$0kFfEYy7dR^PgYnAlta;7dKDrsF;g9S|g(b67LNKd- zjD%+D>6nq&AA9}xR;hOi7j^mQ5MNR&Ki9W`6kdI{oQiI?4eJg`-})4hHR(V^bAGTf zUDC@by}ok&MmESAY{>|td-P}t_j6v2PEMmn=x)zPaE(q%==!LF|9JIJpvQ~}dxba7 z6-G=eJt{uwIsr!+Dif^XY1+V>dfpOEn=!S5l&;|A&%S3uL9hzSR@`$8m9ZgVQVIV& zn6f1^hV=IopN|_%Pd@aylr#*^Pof5XGXeis>&zGslywr*fEzN=+4Tj_vTf!J|eUBA&qN^A%lw^D*n+L;GXogqX+^Gg(6LyOqSr z1?|48liN)y>5Y z*UFIok&f2lXXN?es*~s$w{aX4=_xOaC;QmoV^g?k8iBBT4TtP=tlB~t7$|{Ko1Ncd zb?7~)cBJz&sR+q>^aa24)8s4T@ZGQe0Ul+{`DOEJ&j_Br{_|8@rV#)GkBLl^w4dWm zj*sfqYyNAEo2FYX%5vO3ih7v(Fzq0Xif}Af;B2BfUSs}+nQVhGba_d-UYgO$S6gY+ z&cs8$Md-!CoRUAK@HQCsD_rvf(x}UN#R96LQBBmx8UhX(IGp7h?F{?C+4rl|Y1&+O zn9b^4Yrk4{EVk|4pg?SK{32WmDmw0SGBqa&k;EF>9}46@<;#FJs2ZxV$~4+y=&feq z_tGWe8&A~eVj47S6tVLLsZ3{y;s^%8f^(CMzwmI!yCL7+`-sW3b< zLLFf4iNyMl+?_|ULp3d=`_Bklj0@VL^1^|^z{rir;^v5t%S?ii_|Cwz8iB4?ymGrH z>(XKW6j}HzoJB_0O0MC}+pWngQYu4Km7MGl2i_8)R~;LK&wecmPdJPI4#aY>@D6Tw zg5PEGS%l<30<)ULKCe;t)1}>D_APd;=x&~u%+v-JBhMvj_%@9~V$vK_P4Aa{2|)@( zF6`b-?tOv7teVAq2P*;QqngqFguw!*HEFu+{X*@NVoOK+6zmI*m&}1(%;H(FvQ}$3 zh^gGVN9eVItAailKnVI=U|L|jm?AmHB|cdkwJB+7xeSM`5ou36#_$E#&g|~`N(!{( zwb4@wh=&8*Hcr#)NkVH`OS{c`B{H>`kJfs&`rxu(l`Qkb=Po6bjv4GnNZ6rmrrJf^qT>E7nn#F^WP)&8X+47+gv9dP|u4&aX^Q18>hJ!hBB4=1N8zy$?pG{$qa0{QzenWTa7L@j`)V8l7Xaw2YNC``BzOrp8TjXD-q98GZ~76!`< zZ`5~3o)#BgJi%>uOE`w z&U>bYtB7x4X7No!%sg)P#}-H~qEz4L^bbjW`q6N5LW=jEGPrc*7QdzzEhClr5>*f{_|$l!y#`^a69PSU@V^%Qdj#q5seQ&nNkEg5T9*hyc#JK4paH? zb2r)lWnbn{d~D2NQ~0c+gq)$~wrC1wT$P>q#goG~1@@fSLwhXA$;SD$LzU^Ji(q@r z2#}M!3sq-)SWulR91l+a?1T_262kS*09uL`xK(q+ezMMcULQ|P;kwP}m>LSv>ar{W zXe*M6crX>$pvQALca!9^)n7MPJMgsv^*(o^-S3PP$L+%b;BQ(^k0^Qp{j5P&;ODaYkre4O7y(w{&v ztJyq$F}fxQzZ`AwL1MJ##y55}fS|n|aS}y*C6T5FzI!fAG{wlJE&X-o}3V0Q^3a zO3^9!0Q*$=4pu7}NT5ux{oUsxbF4AmsF%Xmfx}v`~clMwu9@jI}%9Qn5S!Mv6ku*AyM zBBcbGR@?AdALGP(k48BTrUohJRyi}h_;sz}9w~)j`%V=B5L0t`l zzb>6OSEbEt7pu%_FjRW*Y~fe5(G?6d@!4TI(klU7?je##vgW{Q^8V_kdxxm^HmD4} zz)+>%$dn@JbeJ?=Q`v?@C&2QwYVjQ`r(&vAgL_&V58)0{LZvPxU+>krsg`md*VL3N z1q&4erDnHdvaGo6@Cx((>o-Aa+JgiohW=ItEM+l&-e@-rwKXD*q^mMurzQplW6ZbT zt2gUX9eN5_CMn0R`>c))47k};BskAvfkB+a1vFMh6$$8nfBb*_1W3Q`PYPhcwDJRm za`u8V!medIHr*rQ{w5M(d+}DEN>6#aWHR7){=LQ=Z^%nZhtgtnN6lILym5+IGaDt|$KjT_hg2&kp_UaS$6| zK)Yi8d-PsrD>k2tIHj~`%o6Iou>(zk>y==1UcgP?8gTn|T}(1#r(a$LDrNK=AvZ0p{G^jZVc4qX_xLmrcDUv=yXmc#EA=|CraVqWGDl6srvb*D(UE|crqmMtEAZma#i>5=W=1)mz4%!L z`%aQ?otGm*j2ue=pYsEC@MPI*tZ(ujYBBVb7e~(9(nGZ`-!12CAAtdwTF34Z8V%#25^1@jcg{-hP+PYB(N6%xt=w)#}vZ z)3peJS%1gk=7++M%K;Uww<(z|8DcI#NOq^hCgTk(3)*(W^e9%-8%(PDI8Gp5hj_xQ zep7;MzjsfvHlKNv1#%SKu28*+CEc2m0`n7A#za9P)=9jkH}817@m2;$(Dzhev~O=y z4{f#n=6Q`vA@WxY`wrZ4)4;#lgY*tR2eg#t8f)D0VI!x0P53L#d<)Jc*qM)2lUK*s zTMGNAU<<9@)cleG7USK3kTEAA<~Ges-0}am_ACskq0Z``a$S?6VfmoB1dJVEt42YP zuG`nwPl8=KFc_@rZ?MVOHM3t}dNygUOK;pO%s8MBI0PfLC}J(Ab08%1GsN|^k3`)& zhIcFN zdSE?vv{Dj+A(2?djco6MozM72zZcVeYOc6Ga-&%6n}VLF!k}nz+VNle8u2e*s+F@h z!fd(2BkB_;oct#E_OP(eUO|)zC&~DpI zMe!V0eWyp*_EuPw@tnh1L|0)wJ4S|SZmb;n#;kaikp%duPp~I678}dJJ`BO z!Y;l$-AN(Bzb@(%m@QwFzrgAOC-toJ^tX&Jjsq6PA$Fnx6Ry>f?7HO&S$MqDwwbU@ zrH0{!9QWqWS~}mMWDbiOFj(4YHtc^~OuV~69TL`5{_f5DynbFaY8a8M3<3nr?O^rqhi*4oC4{`#TD zaWUg&B*p=|Eq6QIPRP6>DIX~fvw@4h*~B^nC-LAIt^Vf@eY3r_qptxzap!0>?1^t} z*SR5VK=5#26*eb9F8!6UxK#!049B{{{i>`8S1#URLj8c=vw3V9esJn?m}ZfI&3ve_ zxERg`74a|N)5M97yyT-nK0@F>Sd(Qy^d*?94suQptA|U;p8CWadadCRe;}2VvFD+U z3)dv#Yh;~_7b#iVr*{i6EoG;t5)pC0_YZaBM5s@_lvCN-B7brXXzAHLi+rccsF;s7 zFLhCSY`_%`7~YMdH93GHF_}pnr_~V`>p_Tgte%xP%c7V5-a8UJzO&d0s@8s>i9w1K=^AtJz});oleA%bz^(W@qGa}h46_4 zse`^RQI2Sy7%DVTW_WQ%aSvVNoiG~x#nFVx>S)wW#_|?hq}E=u{&SZ6ID!JnQ>L>Gp#%+?1)@Exq#vR)D;5)kRLi0!`h6^_byGgFyvFW5Mr$#VF2IESYXfxRa?Qp$teY*5AA> z%rd{dH-mcuY!r@`vD`78B(d^xR3X6h;&G(`qnyi><=baP2@s2<1<&(AJQ@ktRdDX~ zX(E1%;c+e|a%4KBGTjM!@P?#Md4l~7)pr4>Qw_z)ogV_c<*#g2A7CBeFy(kXD8U-Z z&S6n|_oo&vw<1KR%GG?b5%fnGNz3vP>{O|W3CB+?t&5w~rijntr+f5pZ zp@W!14sDe#4XEsSv+kN}BY1bgxaZtu0H$!OkLZYT!GJd++)3YE?oLro=a1)R+-1Bh zh`~#X0h}o6Mrzxq3%dnJ#);KSJWj;yNccMKs?Cm_?BwyL$80T4Ts}#G1=@3o=0o@W zrE9<=nXk5wT?|r^^|xk?2Pe^Tb>l^*;@?9`>{|Irv%NE;6`cAUR`=9OtbKm)^$pOd zd&yK)7da!l)(LweOr(;rv{0#1U-tb>U_GIL_C_2BQmX9}%%jN-yh#{BNvO@F=NJq4 ze#uMdr^aG`M4bVMttGkqugdFdE|ZRNJ$!%Warh;djLa;!Xu3AbcE6^7x*dHpjoW-b zS$95&xd=3UZM!ApykamJ{EgWw^3dabTZNt9bNZ=4a_ZA3*%`1IAs)4s6L1dyx&syR zBx>*9$y1W~)Jp*{Uq5ud*@0JcQ%|&4zJpf7z;#cJQ4B`Rg}gvT=j&CAK02D7U+oN*!(8vWck~G|Rd8 zgbc#>@5bg53w{!#Vesn{+V`sU11GIj6491=tMd{9<@SY6J#yhNhJJKKLB-0%7ksV3 zaE~6?mYDYsd%?z?0WElf;oi(t!7y&|EISItgk@+wcD)Koi@6S6A?C7z~NP zAk?>m8P4(-&MjsGcL(8zM8(xh0(S%vHP5nI+XS3iv-JGV{svuqXLaXAh{>sphQK z){*$@k*uNZNj#i+ULZEyzhf=l)~6&7fl){D6PU2epYSzuF{*T=4vA`_*nkzIi|sid z>k!6i@*4+TEuWgtKyZugNg5LMPrDawHWAMv94M6PO@pWAIUL8QC7Vi;-i!B0u=R9w z@x4;QglK&tR@^TZcEu51T6_lj8??~S*MY%Llo9IAkM<*Htoh<;?6^WPQ@j(Nos&b( z2yN}sIDbQ3XVx7xC96Q=tOaoBE`!oJ; z5k^4Eh!SCOJl#Qt@x2-vY;)(6X&AAQdOLD0e1(^3oyuR@2Cz?LB66)^L7hvwqm*0- zc&{x!$Z&Jj%s1;h=$Cjnh*Qj_GkbZjE?bgrqO?xv)wht{Cs+<|3uXL1>)1KqaWVCw*G^INGcWXSS)xoluK1GN)>go z(<^oFi2DGIG}@etLFz_TZrME-^1pt;GSfWvr#~jgV{6BGw(*rj{@*e1i#-w3A?FWW6|A40RPI9vLOXuK?kh@9OfQ7wsjI+xkDh|+^_yrexn`+DzAbHUd?KXPjg6_R!fa#Ko=Gr8GWFF-P({T-}y&ARa?<+f?*gq z@V5p4{Q@A?KPBv6kwUGWXT{4iDSQt&8cZEK2Gw2TDQ597To#*gseVdXy=5g^C+EWZ zls4$koF1yYJCr-g!+m!lo?4`2wONq52NrUt@e&*R<6^CoF%3C_@~KCr7{6Q52Awb& z3EU8XLymZ3AkBiM4vYya6!xNHl3(0?HRh_F4yl-RU#pb$p-wwyg*s7y(VCm!>;ERO z9S>}T z-g|(HlTp|+#o#^4j=H#2>vQl27JM!-C$TyQ)C^u8bh{_mAwg`Z1Bw!gOxp(!b}T6- z3f_kg&O1Qg_2wi#*{3Q!ypOaM_>G1-n~Pq;SRxY+>@*Eq(UmQx)z+eZ1OtYdHzB zph+DEV1JdP)8D@OE}q)jR!To)>uhh4`j=BiKcq8PCqJO;xmsAREUP6YQ5omOerUwT zh93Cne!KbFi9Ly0k*wCs%ymT`$IoB^GO8+NLfO@95tfnYq9sPB;f>fdW%;`g$G3AbfLxI+DV9ryM7zUJUf-nRcAK=U`eQLE7&x zIL&*KydQjP=x8g4XrC^;0XDB)d?fu^Txqf&08za+oGDL|Dw{9Xog&F4HIDbNPZB-;2GGA?`qPo0d-7EYl(%kEY^_pn7j3qBL1X47}kqN zL8auQafke}HhO&Pj}eLM@c2whgwlikHU6+hMZbKc{$OYr(@`s-Njv6?X?mq+mY&y$ zZ_!g{-odaC-#QtLbEyvC+3?&|XaZXt@33NXq}~ILdAuiQ$G*j5kl?ESKnkEcn@pej zXV&*&49b-daC$UVKHa~tZ$UhHc7McP5(UM?`}VE6jOB9-XWP;=s_l=bv~>B6tb^QUBH zUL4!;$l2HQ=Z6OSUV=W!jc2Fn`XiT&ar^Qw~vu~|$ihGwm#tpY*#Aq%Ij zn43eEM2k%`*Hwz&a(zf$hlYw(ia#Pk+Ea8Q5}8ch37NQ)DP)7L??hBb0_u;Dz03GE zmGCJ-_n+v}zrgqZ>!(f6gsM{LBH3%MJ-DpAW%EzTVwu}NX{i4tjT-|M738CU19CgP z{jX1@kG0#H9PD==lhtuu9V>d|UrhCc#>juFDRIx{|Js-QzNE$VCvS*c4AtNhjp$Gl zdBDx?CZjv^2sb7Fo1cJ+hGfE<%G=z4bXe9%wckYkOW6K**|mWwD~DSEU~lY+@%|zz zxUEnNH*Wn_q}UU2BwY#8My zgf2oaZw868?fK5Y09GN2rIB#eE;SoB#xq^ouqUAj%*xD8`1WK0|ENDL=cjImXtxk<^$bf-{dh37Yv9MtDfDBzM69wfMep*FmY$1p&9&IUYp+A- zO_kBvKLFzaCRe*%EB!_>I86OfoyxS>kf9?pfYbm1PCg>jg<4Ob+mWo3HG)a1(0QJp z-fQ;$4Xg1bl1kjQk4N_qT^QheR$e~8>K(O*`YA(yJrieI0{PEBu5o~Lpf!E%v%|A| zU=q|9u0Q*&XN-qfOFywX00IWtjzQ75|4UOf9}vs|^A3O_EK-p*co`N%$fdk-am!{8pJG3l4G}K%=2R zkW-(SUk1j;m?qD#Fv6U*mNnqyd(^HV4tMb3<>n!v6rdF0Gmr-;xXZ$uR-1}l>G1u- z0~to$L7tVtJo9)LtuGS*)-}rK(4>dwQ=D`5-IY7!2k|=^Pr<$rX(98=mU5tdYYA+9 zY~PP4vmC3E)z&#w^4{I=uUc}k{m$NIu0m9EHtrVv&rs{}&O_N_%0q;29uDSfz$GU* zL(^oD&hn3&;;9}|VUdz5-mohf?+p!DWMoe`UvtX=jbk~BiXPr0U~}4qBKqRtMBEX4 zVzD;-JD@l>XM2jc#Zvt(PA;78RG;1NJOL5srp07K-2)G1Z1 z8|&w~VGG?X&wSN)B@{wFVV&f&?uFpHQ2f0fhGHueWs9WR8klG4BHtVku6@A~r^kpZ zOAil{JeI1x_2(q<;mHlf=bzr5HqU_EO1V-EXS*-_ z+^(A)5vYwCGzn-{tU4VKWq3}2Dj5Dj@oOLV(jOM304Wt;$@`0AkBvU+6+?bjxby0d zKjI^Jvtz&Vetz;0Ge4R3xFw;NXGcrefZc)du2a00b%`0FRP zA}R!aB!0r=QjyLes$}hGatk>PxfXhWF?jERHL;r4q*ix1Ll#h9 zYBn$L`gNv1*&PjXX*2#<4|0g2+vbYLbQgQ`0u6eess1xBVzVW(%JQ+LI>3^QRkzv~ zdIO#3hH|{(g^j>Lj3X~P62*4((K>Ov+;fgbkRRHiZ?rbV!bC!+*0YbFeVhj_a@1=& z_nMx%+Nfs_fIg_HQ?9@m()4W8vh6<7s;d*k9^kV)gZ(nkX?URu_#>T2es)oH%BXy!+>ybF<9)Cr>t>AL)N2uZqxz16C%Hq&5F;p(ulO<6>tabQ zvWHnMm^oG__OkElk+^f%znFX3awv$3Eb`Uy&tIxmqQo4yQHPaE-g};v|86upM;?tH zqh{IiF$13}1L9i0pN8U)zjnQ!$+G@#z~5cbGtJ>cZz!J#cR}}`!L2pPjx=qhxEL&E zmreHD&xNEJt-d$XdZt7k;(PkMl1*;$mA^KvGjA37peB0*lTI@ zYIJ<%n z0(<(z4g?Uc45Hx?spk0xQ!9j8lmQTPvp21Vx9DV#6}~{W#JhAk>J=amnrQ5O{O&M- zBK*b~^#v_z8RM(X=QKIMSR>QlH6A9toy_)cd<$t6p^pwubnQLF-NXo<#IL z(J)62MZJAtd%E^J=qi-4uB7i}ztrwA zs^L)%hH}a`eR-|#9NIyFbi}p3K*p}S8VG?|4T zlHO%7JmUr)Y8^~%Tn-`5zDDY!e`^P zqv3?=#-xk;VD+)N9ajKZCk$(MW&G`)`Z7`WeaFo5f z6Jqx$T;>C7;gSP8TeD&lO-}v~&EZvo9-~Rhn|XmoA&Eb|Ym>O|2GjQupD_{YJ09Ew z71~zN+n-@ZURByUv;GMvMh_%;!WVg54EP$EJoP7yrG-#&tPLMW0DC7rvQ$|8f&%fv z27VZI_{35%@j=^4Vm$j=?GQ-_$L5gsYb_Jw!Do*8u`Uh97;B2gxZ1dGAQ7sdKU74?(T ze%T}ikXkIu1CuzT^LjhV^MBnd2n|BV;m>$QZ{Tb|u%q4jM@ zzpnlxf~DhaOCFSIeh#@6`BmHkMgA#5d!KgsY_n z0*5r@2r^cj8z&kZI<`~(Pby|PZ^xOgq&3T+l0KzEY#9n0eQZ>lVY+1qKwh1Q`2Pdz z{r~+`I{Rq9V!i>OQ`xWh{-pf8zIT$*Xs!2Z&_{c&=JIV@rCq8^ne#mIB;`ZYCcuBe zKvy9FMy9Q6QMtut!<6KJSVSB#nTb?r%sSNG>%Cpj3SgzxksP)g2SLXaZ#mP9|5K9x zbsH8x?cgp}^_TsbCfF$Wk}%w`v9gO>b|p z!W99}3Tkw}{BC|-QUJV$5mKg{A%#wb8=v;lmV)|)(;xE*%ppkh`(5yMhpRP07vAg- z!Df7Am>6>Y(De%`)T9=Xc{#hOm{X9%k zTG=O1x&^dh1OlIwDZYxXyjjz?JsmS~>~fUINFqCf8>wp_30z|_`$AbdE8RjjZFs7H z%U7TPG0?($3hJx}`JVIo(g$ou_^D;jjOZXKpqKtdw#*i}DBuj?8{tL*3ItS6XE=$p zr;CEbsOG3ev3eu0Rg}_(#pZxWI81>Vf;?)l-=_TwIGwf9LE68Z?_nM$o@aXwMT<&L z!H%@WVsg2DF-HU_4>`(vmT_MqfkP-8oy7+_kg^(5#tHz@cbHeztC5$IDG2$Mj2u~{ zV&c4h0<=y_50KFTgUdZ$lvL81;cBJiDpkr~lvp#>Odwl@ooeRi)T(5fQvj#L=l?yC z@)@wyZOhJI089cDhA$fZ+4LzK%V2@}xY#QMD0@F#oG*gcfRB3_jsjF}fCD+H%x826 zksHa3DGW%&W2)vtPeVq5Pm0{&vRTXAnOk-_PaOn=Dlb>Fh9ft-1R(!|gYljc5Fp~x zfRPJQJ?i(RH2`8$`FROMeL{t#a4PRpY2tw2Z78hb8TBJ!2L<_FinL5k4;E(KLhl;I z^}-d!uuP*_N*ORBZvb_DL@3ju4IJpxNOi%2J;00Y2+IfP|mTN?)FbR2P#tQnQbbe11r1SBO=01 z{#6?IZ5u}_)3Be@McofD7>j+4&(%#zE3DaCx-8EbLE{10`)dh!LYfk9l^GV(gz>yUEt;dtA2au9V zItkT^Hs@OJVAU^e5~&C&7~z%~!5>}?M=Q@1q6V>Z$t97zM|*>Pl+3h2wq9YmJ@V=i zwVkDAjakkeenFH{NX#EjX07m0Bkx1-v0kthLAUUzctN28C@E2GC3gSk zA4!9>LSqlbA#*lg`(A_E3`Xinm=?(hPV_qpEG8KVk?ko;j1rd{Ub+YQCf{<4Lg@5( zq*&uX8CIOwkQB+gt>#5=LVcJ21>YrBl{&r@Xb@z-hjkx_zaqyZP+(R86Wv>wJ{eX{7r9v;LOZKpP1wW-jA(+v(PSjn9GJf1g z0z;?WY}23zMxd|m8?*@A0&*tda(F~`0?i+%NEj3{*j(}>!kR#oMo|I0{Y-ZKh0Zok z_9(a3z8=C|9`4pZ2?nDCgKqNmg|B?=%zaPdgj6Jc=f&QscKPn1A^}dr#@pJMQKA94 z&e>^xJoX~s`85Y9$2P2(3&5(K6D*2r1}T~66WZYv(?6rMX0w3WmTVTYTHu7(0z<1x+8(au1 zXZ~B*;)P_gAj;BXCK_^oY>F0?ozniUP zi5)?!g_wZFki+vyhw0_br{{jq5qbH&XdDvCKCZp}zehj20umx<+8vH>+Fa*0aMk2Cfp4D{pp>*s*~NR2fOb3_LW_8y_eaTwXC?j^ps5WBnu~K zs&MaP3A59ZfYVa=J0(U?Y2>_jD|mc4p`zmBvcMs?I12n?ekU#*_S<=(?YimaP+@ei z$|amfFA+M`cvYLAsQM?qZ2Ip$b-U|tk1pu)2Q?Rw>DP@S7yp_i^Cx!y>PP~fBlrv3 zRz~U(PB~e7YrTFH9kurYt>+bIAnXa^d-2o0x>foO{1DYH<|h|EOS8*>$lL$$!13nV zW$v*N2Zmp#{i1`-0$cSoG$9T83IhVa*85U zvJ$>m#yEMf?71n-Lf5U!*Jse1jaSf)$9eB&NzL$tI#xd^Cc(|wnBlPV#`C{~uQ+N8 zZ8yN=WRM8H_0Rkp+~&yZwJ`(p5#e~XJy1`yaBgE5vt=mY@i5XUW_=wL>o1o=?VA00 zH%Fm3*RI-$C>F~!XN7VGx1`tC40dDddD;IO#Z7ia`O7Rxq-vRAf9bz?Q?liZP zkh~WS^YojKVqY*b`I=O!)OEQ29_Z%Ca2u5jOxxu`ddC*qVP60AN!>aUdBw*U*oJRG zshO-=Y9RK8xU)eP8WNg0|9tscrlYNnxcZUHLYvB&q{DKpLnj?IZ~gvuoy|`!spMo` zdqi^ssJMHAHl5eGe~e@=m+%5hEai>5kV|Ww6?hl1IbCSup2Puer&9zj^EeB5=_jJ| z0FeYhYLZ9J3myG?MrHrhUV*ksq)O(AQ0LWoR&-D&XdR@c7#58)QoqSvRbz(wy9J936ZyvX9GU=j1ONTe^8xdHpVt?;05>C!|E#f)s`>b)zEicF@O8JnL)X1FZ2ui z(u3oogjG8Bjc)V98I7{TzTh7;Def<0*glCpSsRnn_gD<7NxgZ68F5M_lAU47BDab2 zhuccJ?dCv11bud$`}#{9_+bDlf=;lnv$uy98g)7_e!08Q4JfnE4Ly9C)SSPHTZki+ zCb?!>-|UJwJ%3*mqL$sB81-|5iy*iBcguNDlem6=`7(Mx8Gs!!lS>@3|Fb#bK z?#~5GOSx@w19WugN`wvoV9~^uR7|B~nibqH3qAk7HbJq6u!L(qm>)rr2k1{a)Ng~m zFdh2>8dA87*ajDJ2mv%F1+FlrOL=F>KO>*5x9_(F{2T=x5sTt|103T3%SI3RMz%+d zPrw_x3qnZ%SU^G;s$lbkwnzQ(q8aAAC<_Y-Uw|wO_$9W2NcXt{FEGzR35F!)&@%|% z{kx?ePswtN@isM|C0x(&?IrG3=M_Rp?9vY%o0RlTN$~`iF+$l9lz{3as^~S?jdf&# zT!un7i0;hod;(vZFF>1L`;>!r7gPtZ^xGjIyA3K;kcAe}rJ)wXjL0181F)ghUgd&j zBWssibQX}1(P<6lvvro*p_{G^@sOTKklLXf8uUlNm9B0nVGz&*T3B&e-M1eNx0#Po zY;nJUk0U$i#rF1l1Bm;EKTqdoVc=!SZ(BjY58WU{7{5+LnraDI&yA604pnB-{PYe~ zU}**0CJM$4)x@-WxN!@Od$Ae`@~ZskrR0DtfRn5&-+JFBL?dTh54Qn{#9*vyb>`Rw zu%2nA|9(ky@SfB7-Q~{ZMIK^%y+$_ldDW@p41hw~5I$bAaF?|k0PildNiF+oBCyYH zahjB*i-4fx&+_`)_gW++8VItLvlf86X}=$jXN4NLg$LIhMr+vo{r;QW2++F#7W>s! zX|Yl6eZ7({FxsXYYB}@tf^56)Ub89rgB)a@2i+3Xo)jG0rR2*Drlw<( z+qLVM$(4ZOGufT{R5sw1fMt|uhm+AS16`id zFA7wCSi5O0REmdE40?lg5S7Cyy+9|62;ur0;4w3aU$iM}%zof0+dY69vV|-byU(=q+)Jhcr zUq_lVV26|LM&2E)bxOtDAb^x@ol}7Qu34n& zq4n=3C%Wa)$RHhqa+M`2apslv3bOJqAhzN-J+UAR+58K_Tr zE#Kc375OG4M$XNoH+lna-&*5!-T+URpgXkWmU?@h+*m~t^8N*leOHJS*SB-G#N80> z&6Ui3f6(`c0*@-AH^$QW^C2xdK{$sc7Hr_Ry>syzJBfn2P5j~!=Gf0ZN}mw?Lrj>L zH8hMIcUoLG+8rg|oO|zRZaAAYmR=2f1`MxLD^9E1$sFjLK$UtmHL(PG&M)ot(WkOUc7)i> z*yK@yL2mN=S%3zXI3GFQefzy(5k;&_%$r~ss0-^$UA>upK#uWP8^kXqwUCk>;7|Zg z>uh!t1P~1d5-gdE-!DoPjNRAe6D6k;5=aDqw(C z;jJW0iy)R8^tfqk?h^&`20y^${6IQ@PxN~2nK21G==hdA7zqSbB3bO8m9YqtC^XEm z+=m#4R(`LsgGqp7{j3uuBlQ6;lEn*e01DI1Uc$?N4Wdl$d*F0%Ob{Utv8(U0k(XV0 z*$o1LD_^J>-9cY48om^o?!%}%{Xhj7$Q-Pd)kbtB{Fy2?R%*~kd2*^2uF3dl~BoFK&zW*oBP>QDbK z&>(UUny(zII>#Zf%%a*eA*6cOgBgqEjrFLiw>_8Hg;L_;I@Mg}NwN3v$KJXmY8EBa zkw`dOsG6z_J6TF*Bn98btL6mh7p-9HI{q&fRNMnjz(B*t$DBAL`?O;C&oxJI>TC@cGZlBc%lyw)+#TD+ znzfSwm&SH-90KK7E6*2<%Yx$tI2mlJHFGZ~oS!}oup$Y2e{b{ec2EB8$`7{r<%7^m56Mq7cU!vY{kLBj z^S|Xq7SHP0rrrNWjw^wHASp57o!!g2qXn>xn`uro{LQ3H3i7_$pJ7vv&atg)Eq6V) zwZ6T+y+2?`Jc!ONC!T-EqK035-$8&CPz-xOEI%o}pA$C9yq{C_fH;Ln99vAo`qRxX zGEULbhzAo&2QA(AfsE4Y|9~%YbTt|h>~kreny7@`thyV1zNU)ufbTK#ZuUz0F*?n~ zBbdCz5eCb(H_tc}Q0&uE+VXfkoEsTrsZ%M+f1R^f$E_uddGQ-6hGeNid-k|G%L3;Mg_bu4cghmmmuG_3b| z>B@NX9ZZqVu+kf1u)utGUZ z-KgThcNHhPh&0*{ZuYTiR@U=#^W>zj5yDBdZx@=C2hX7AS#WAmES7Q9&sh2gIx zA(6AbSl9MXDf}<{ek`j(ZbAx5e~xy$Oi;XKoibEmnl3hF1ng06NL?h%hFTRBm)q^J zjLE{f*B-J{g2WHGai5R(WRK8HB*|{(SLJPIeA|zjLRUN9pXA|x%*-dnRqI@xmTI5)MoQwA;Yx}mrp)@Ak&$@We7|+o z)GaV+>Wo3JeWi678aDjA2}~D3owZ&Ur%A7N{oyN9-FO~+I!Kt5Ewwf(N1-PP(Tzy{ zR!{s^azlXS+OI1;#V;+U7m3?cj|Qr5HHCz$$92+XQZ-ox(?7FeP)M=Dlb=L7o)?#w z2ioS<{nqb_O|O2M^mNj^V_Splp1T+-plR5~xzP~6Dj-Tg%uMcZUd$onzUh-X8q%76 z%7($3e#3`B13co`pbUhP>2p(9x!4ltnV)eS1|So5s|fzfw=D+kdVN=G(46 z!y3SVNtf4M`x$V1$R@J6t|7hgYdY9mEk_xJ9`2@>4np_y276qwKH?DVzW)#}=Xp`` z+3WeRcL5KZ#5s#DAvye95F`LO{=db^BX)J7} zzyA^Kx(_kX#iMtkuw!CN0pNll^)4-q0q>mkILA=QvJD|vtiDP00oAbxScvK6n_$8Be?Z3}G`I=8ts_$Qh zdkh~s{D8_Wy1Z&$van(P0DfOrDv0Z(o->JA=f9BOz4TcdyBJ9_4kRcW`_*V$^mwFs za_{9RKKhIp1)oSG6cN?r_m@r|rDOb`4MK46w7S6N4=l6W>`tNqf8HlwKZ7;@8qw}+ z)IJim_hUD2^wc3@TUd8V1lNq%J{A{QgDpC&(7lM+oKlF#Y(`A1)nWxt90MV-Ikbc7 zuTdkw#ZbJcq)$2mutg7YY;d_s%#;pB#x-$h0_zFi$a{12APTwEFBMR-d%QmBf?)Z= zU9J5Rc4qyvU$eG_(hcV*efm5H23XCl*Rf49&sO^xRoUqr&s#`lDYqP#c_#6W*qDNQ zX7cTzL9$)O`UALJNXG4f3NjNpgGbsg9feR|>*$=XsXYKpPNL^35uSfh;YTCmUi4_Ii=Jb)uHha4%gqnP0F^{nN8Df=Vga`C??|Yvm+KLCB$1%{SY0|UMW`W-`+u@L60OZf)sirWw#~O-KMg z@mI|Mq6dM}g~a!y7zYr6M|6KX1Z8H2d$VEkRW~20P zfZ+E%L$u7*dZJ7r#bXQMm)|OmFeYc+4MJCi`_SQ z0SPm*A|;O=?F~f4f)CJS2hGIv9T>m=$reZ+&$0b^-{G^fml1Eg=Iim_6Usrr4<(D8 zW`_~LCosXuNiACZs+jE`mQEr&p@t<;nX@0drW=u#cAo_V;XnB<;s(RY4N9jK&-2Eg zB-9mK6eCmd2nl-{ye;cTiKWYSXgxTN{?^8WKTcT+IppurokHDp^9^e>8AW_b>P2aB z)tlQYL+jqKZ|`#_*PFSmN8{73$VOxGSTwwxKhn$`w3^uiz#))ew55i@kq_d6trX2Do0-iI zByx(t&waGHs^*h_V}Tls?c*c-JfZ(QI?5<{kFQ|K;lIILfFmE9Kqz3AEd3W71~L1r z9txA&7&URZE?fK&wd&tWIw*s?XZK&QkX8j_OCGfmSbi>=uBn3|mad?K@fyfX(PRZb z{aL420_}3|jurPlT^cVP}S$$h|lgKEwx^6<^jJL%ZW)qe%rARIs6XQuD$r{qKVBU z|G=P%Wnd^DcRo(2-bb&ih^=rGRdDI8zw~ zelPXD7%Gd+)De*aZY8|=GlE5Pd{FfV;TyH}I_vqi_*+{bo6KJX{NL-ylr!E*)6Nw> zsPE4Zx%=s2-@PFw4JD@BqFv8?_HZKRcb^gKOj{-Hn=y@i%>=kaQlh&|Y^e1JaKj_l zN+^=(cAwVi9%8p7RSbl8T01+qQEEDl4gcZE9B@73QsdQATzk)|_E-OYPF>Bl5%B|O zx%~?8|FQC@ua)w*%q+N%vhy~C9;4`Br9I&jmX=s@S?nasiv~ocq}O<*O?jx-S_Ce* zw~PQI6ylQhS6VHloW$NQ>9X^$Nl&m6*g?#;N*~mMeEdrMv@e24)<&)42NbK&YMtg% zzP_nw!5s}giM%G=o)<&-8-y}GCN)C*Kxd%Cp9`I_#GFmY;48;d)wS4`dP*~x(J_iU z!tpLt4mYj(row0aK3I4W==>rWltiPm$6Ft1$Nes;D4_B_1gk2Pv>Vp+ua5m&WL6vEuzK46RL`joZiX&9=GJGyVsdP$c)7o88_ zvk`I+u5EEC15ElJ!i0@$JK!{*8E4uKZx)Kb78N&~iVPet5FU;Kr=;%iBDeW-P4|!w zUisqwmcLU_#ohVMUn}-?b=8k?5RQ2uy<-Eg6w5dS$`Xl0`V~Xkpsm+QD zL5eSC&9?sNgv`J3>R^X)%iy!M5*<{O*q-c}M!inQu*Qnd z?H&3EKT><2d>On%FB)8Mlj0QLFDB$a>U33rrQ7B9h_q;wIC(E?J&416lBDted}x2< z7vp^vmSxi+`-aZh?)@`!+lIiI82qmG)M}rJG?(gk-8^4~^1(Qe#B@=GkY4;AX58~I zWeOPisoCuI$EfL7w4LiZiYH~SOTJFmb&dE=EQE7!ycM@QL?kv9}yLCkevwYMk(#zR;+w0fT%P~ZE3vzYshIu6m9(O6b)w!Ff0Dg{3Gli+px z671%fQoZ^`9xiv;b#tLudh81p|AHu`y6I#ak_6sq4{vlI{2s~?8Hn>lMc4h}Yzk__ z;2xsggzii^>%Za1zss3ANaIsRaXYw{hRDbys_UbS!ttMZ_BVC9xc_X;2V8IVVznV6 zX%#E-+GoMqNuJiJQzK4KVfHfn-d!rs!-*1~o^ft~X|w&wIJ^1&o2}}G!;V|6$8fQt z&Z^jS?-Z$1QjUpW9MQ1hiSb?R88CFjtyeu7@+{L{HOo9j`%Jw3W*I~3pXt8#JD4=@nqzZTFB_On6!l7rmJI5plP#m* zH9u?5M=VdF9(r(X{B|c9<1lG0uY8xpsji$U!MEn$j9C92Z2Ws{Ku#Z}M&BaLY?K^% zJq7*o8pakr5(?h2HeNh`+zcJmnvWq_m&Mr!o76<`E@4|7orbXzc(Z0va->(QLZyps z_dmGYPvv_j0sBAF*3o|*#c5UlLA7zM0s%YT+ubWXZD{czWh;TFYA9oT!YZf(?GuS^ z^MG4jJdQxvyr^O&qPG>9uI2m#s#RcS?8gXjx&L9c1nH|le&-o;>C}iH2gdlaQFu}Q zsqXuu?9HLlGg3Z%d#*C;ZRGxcjBXnrvlZWhbF*k5yE%C{nE6{PAMvXjv*(|~8?*hz zN&Szdf4^O@nvnP{*iLH4GpS#;;%+{I&ga`7F)PL_$e0j^Zs%~Le%$W0x^yFfm>vNqy^>aPRIrEnb$ApBF*IU;&=@zTh~p2 zW>3YUG}HBEZZ&%a0@?;M)GwZ#NQZc3L5dblW&7{*j=5<1q}S(Fh`~JZE63jNE+!p5 zjjGjKC+!5D`^sscie%mraKEv;+IV#yt;2u%J7|j@Zr#;NnwujH)NU>MLsb;Cx-_IC zPh@;j@J;rAJ|aHFyXs?S{N4(d^jrZmDZM&;#;r5C=$c|#pGU7+GoPLQ#$tPg;x%h~ z+w7PjX`JPCK5|jR&<`bmuQs^yY4m`{|CoIPvL!dEvZjeHvZcJWH<(D3%)1>+r@GVJ zNkwWrl?Vm+Oqv!Ju;A9sc43z`B3yTaW1`T1imfBvgyu2Bikp$#&ic-2=_d__%n+@4?xK7ife<4N3&iMt8qXSMtw;>TXh23rGe!HW0{{N&LzGQN;M1srZ`w`o5-vTa(@Ji^9*EV>rmHsxY^jWxY8 zx-OdH@_70uTE@TDduq#k!L>g+$4#JSrfO{SmZh7S&{G_ycwo}5Jq+N?b@5Y|Oqs#- zT5##gcrKTs%P3C%dWcid?al5w&bBEI)ao413jcG|hFET!}7x7KMh=ALF z-02bJr-de$jjQX?9!8Vm;HN3y$6E2e#2a5tb2!X?)}Cv*!{lk(6gzlEGa%%ywq^*c zSgb&PAwLRMhADD^J)4vwOec+M{RGL2&d$4wU+R_#?rho2PpR8{EqAoZ?;gZfXRr4@ zBTlbo9XD-o8cPUfCG-{ZN0VHQbm~M-tX_R-3ED^+;%Vnk-$N9=3vNrViyBXtHp-26-RVU_o%yAf;3?(x6xnid{7$nK>eX-cNY1u@H9jtas;T`N z&$3&%^;lUTU|480y-C=vEFIrxESj1zQ-r6t%LG&S1lM+x5E^uM~Q=&pn}L zv6cd$>ZqTSCte25(5U$)q*cs|@uDZ)1zw`3-SaU z$irbM=UV{uyJ>-)s!xRD86INk8-0sVq(_zz@kGLW?faU*X(~H`K#u`Kuhc=q&5Kw- z&mk&yzfer&SD4S%%`r!Su^mK0J@p{B&-Q4pyQfmyJ|&doV3>rQHmTLBQon&AV&|i$ zaTz^?7#ODVXcKvKxP~3yL&KT*mL9Yz5vc#%p; zB72Ud+@h%4KlH@Rk5J`;EG^Fk+kWB!R38eSL_P@Wg85twRLdL+fYo9ug@EljF-v5wcl7qeJWe#qgqoqI8+ zWKis^-t(Q{!*G7qAJWR+_fMoP8U&k0dn&d}R9-dbz!W2A|ByvtYX@rZr~b=S8Xi!$NGd=m zzYT(rEMh(ozQXecwy2TE7v3eqq=LVsKIEIUdM6QyMgMxS=EIzYxNNij zcltVC#lqd2+awk_+$Xl5X1^>W!B!LA&pw8X8g8m8@D)YXhNJlr!TvHydoe=K{fBvU zkOMQbb+i+*dES(~!P*rd6P9Q-aJu9jb*S^*i&TPsVrWXs-Yp+v>K{jM3WfQ|)!Ouo zb`O>!t1I+#HH`cezE19b4#tbef*<&MVX-I$=EAg}qs9z=*w@zh&30FOs{gi4yY4Lqp_qJ&b)Ws>L8{4QqoZp+JOhs|{bqQ%5I zK23xnePvDtl9*nmjAx0~E)|fv_CHMLGOH#2iLd#g*>-YOj?8vp@|Dc&nOcxrvgyYc zPc0oaakIbIZChSgP6>NB?>Uz0L2`1Z_+s|VusP24*RpVGLStw3-2k{CKg*BDpQ!)X zNLyCZdT5s-GKpf~ss;erNUp-*fQ}gCv}emYj!p;L`T?QR^+(-gYC`AyW7MtNWQ&a3 z0(4ui>piY+|KE9SSG+VaLUY_XF5M?Ex8edf9?2%Jvb% zVi%~Lpd8wDOa1--36z(PY_fwMSE&5;9Xjn^X@4LmEStc*F-ebnOsxpYO=4)qFAYLT z3|RX0vZWVnSjY|@b#ky)aVMJUVN6`<9qdmDc?lNJ zaUMg}fH!urNdB)8T!qRC7Vo|rJ1Wi?{^KQ%9ASBdIi>tCTw z#bYcx9}I+hs{7!|1l_mnIL!`94tDddFTPL(0HqQfaRXA`k5Y)D#oALlh8T!*#2Hw9vi->z0bQ;FR_&hV`UudBZ?j4x; z+?9@)p}{zk`R)p__2A6+oQnnlH&On5ks`9E=a{+Y+P{9Hj;{gv?5X8iR!XEE09pG; z?DFVmPY1TQIsEAI0nDD+s|X6YC$-L+3BXM5Er$+#eqYWMF|9JfDfn5(g#p>}rA>S40lbLP11o@eWdT}f{p{zraz{EL zLYeC~7b`;aokI~sj%!?^N;ugbMM^TEW4X7M<{b%70 zsClPhh=QUcd)A0M=j?&=fbU6l2v3~0jDRdw8UZJoA6!FB&xcKfp1_|IZl&lI4G^jf zPZUxczSI_d2n$n8AXT1bT~od6NW~7D?gL|*q9f5t&ZSyA4H2|C*L<3+@B z)gN}K#@nwLnY=(E!U5k7%Z)PCi_;v0i*fi*cNO00y^M2(p8-Fh$Fr1iL_^)wNKCus zs9Hg4rpLfQ!Z>%@7n^5)?LWYgTu)Vc-nbG4@_|Ciu*D8hZeN6hAKgP?c`-&6)RIX4 z^-oolgVQg$42|3q`?C4uEWy6aKYN+QdJu}(mS>-&xx^I+RPF6B1S3{$SZpX_v6+Z( zLBEoxA|1-AydmMKGiialxRfY|}5M~(C0VnxX6$+O<9dJvF7@EME zmwFjXVw7uLPFC_;tY_zt8sJ?AZluhE}|(x9tj=hpT%b-A(+KE|~fE zA+ZK7Hg%|5*%6Q7=z)P;VGf1DvW&R`4|6dxRzlKGe_vJ;k&t-u9*EY~Av-;OCAN*{ zb+1XiRJ%QQU*oQ_;`Z6m9WQb<-qHwb1Z9RCkZ zvtNCtZ;##8!Ki;fk(Mfdep;%`;>oKg<7^(lo)2g$C^nuj@TU^r<3#^`;WmwKz~s%t z+&5APf-1`;WD(hJ5A&I|{(>gvdvl0il$-84x+Mqk`@3ouUzAgYr1eBB)U*A)<cMjF{mf#nDR%@ zjMn}z-1k_7eX@O!!6!rILCMXhWWSv~(|5PRB2X2U%AU%v8As)E(uTLkxt0}8bLdm0 zbd!;7)wQ!R;?CfuWw{bwYi~4#hhqc*zVdg5`ls?465&zU>NC6zZH>vd@)&^Ln9^lvPHA(>_l`k?!Bip25UWRPby)_2FJ*1Q&@ zsWUw%5(aOWc|0H|9ek6exnNZqV*Lr1*1mOBisiQ<8W<{M@6pH2T4up5rM6xp)}N@u zH{Y4&H>+}|9K#6o{}R@<5HsKP@?_Xc5%zr>Gni;U*tSec2c-`3bWc?b;eX%AfWzLB z;{2{~IYmuy*8jCzmU%W|sdyu=Gt1*{8!p)$&KrLI(9EEVMqQHpuC842uHap5$m*7L z>DpnMKT@}06{MSt>ztA$6O}|iw|yk1O|Q84gN5RBUutT;FLN~ar`eoLd$?1=r`A$s zevPXVawB_5H|R{g$883mtnumxF2g`tS@ongd+0ZTl>bfc*!93ey1dHy-E60)kfPe9dn)}5wRoRYsUc! zH@FKwqGgM zq*+Qf44;GSTc%X;T=c1|e9ev{oL0)suG%u0b=+wD-4!aAUUsQ!{~WV2X#3B1k<+Cb zbBRXAf*^_s}^RB>hZjSpNXJlxtX>G_sSO4(FlyUj{7~PDbS*&R6YNd-utXNKTWWm`Q%k5 z$mzN)g)b}o!#ZK6l3q)}p;gN-w|&u!_%d4@oc~t1+iflw`v*W#r=Hm!cgkxlY14Dy zIJW2-^mqLslPT7Y&`H*i3)HAiBjUYlJ3d|a`?<-!)a*+-iRg=-cg(>cIeMBE^?R6; z@g=5_KdtPduH#bPvQd#Eo6l(&H1&rtfiY;k8;{^pS#(i$|Dv(C=#?Tt9z10F6SiFq?yatYUsbdL#9<1d4KmQ@rVC`w3nY3qj;211XX9?Fj@hmynrqh zn@@~6QuZ8?T3xn3MC)h78vL)bc;wi|nfK&qWVlQh(+d%qSevc4uk)yJSW8EqiKSLg zE}9NcnUHn)acP7;$Ss@P*MgLYbG?|0e(!XL+usf|0Ixr35b9RKpv7x$Lh@?o#_ueV zO2ks+1HBpEMsoms$Tf&y8%y#JEzr6D>ajKrD*xsy(XTftpPNk{`O!8Xg~gpnLZyn2 zHm4c-M@1}t3rRg=Arg(t?mGWN_wB@28`8lu(?1;X15`)iQclB$lD8%mKdna|PE0k} z?G^`~1jWCaimE?+cGHlIF2oAL&-OXJ{q_JpW>!4(AxeotAwRubk=dC>Lkb`!S5<0u z7{pWw;CI%}mqSI7dwjKfVbYZ~?YbEtJuvx93axJ@krKGxAZIS?{i4!n=cP$6!gtjS z)$*8HsT7RDu5E;tkSvXk!<#1GW+r>`%e%KAds+KaR0Hu??X=b6z_0Ys4p5q?1eI5^tYzc&FE{2VK8-Z@+UH zyeF57zj|3$8+`V9L8#)he#M3YbGs>KoHR8#mdkW^No?-fQ{H!734qqmUACGU^FpG; zH0|Vl>T%f6et!3FvO8OeSct8J;EQ7)5uMa07ht4YdlF+Y&x>w5S$<#q zqGoXu)1*X^HL~vJhP@tR;5;eN?Q-(@Ye2cFDPYb}a}-A4dl%g5zNm@{zs>~Zs`Y5u zD08a+=+Z!wWtGE9zseKXquSowN?fuKvb$Q0C2_->Q19)sqd^c3@UQ!O5 zX~5K^HI0ZC;MEeG9S3a-Zfn1DmHs}#1Zn?14^D}TbiIed&nLJ|Qwb%h$$yyBfl|0- zEA-FGVTRxbr=+yBpD_QUh03TA_UL>fV_EDLD14#J_L+M3;boG`b69?~|T_o=hBtbW<~oSLt+S7$5$9!v&NK;6aB) zR=&o*&F#Y3zUUL&<>l+@bZ;To4gcG?H$0Mr&||*9@tK5R1)7yVba|ah_-|qJ1hvsx zt*_e`y;FF#YLj?s3?oDCuc8Sde5O|?Q?S(mbD8YQ*Pxn62J&(K<<)B2K*u$Xfql`f zfoqN}zYcC#`oa(Lw(C@=CsSOp)+j}pUJVUu`2O)Fxl3iUHJzi= z%q|a_T@v1|%Ao(?ilF}-68;c56>}Tv0|)xa3|8^GfA;tQ-L+hFB64>Xg)%O1Gd}HO z4bd%I2{PAxFC3(tH6N@3yG1vybqDfhORm4=E5-uG7I0Agv_O7);!~!N51Y%1)j)4S z5Vt8xIT3Bw44O}+(<>{aJ^xy(8?_6T(u1~*z%k*L;2Xc_Up(Wd3#M4pt)Q4WJQ=J= z6zvbG*6LJV0`b9T>c_|1@E@%z3m9v`^1Fwi@YIo1FVr43G)X0F3!!y~^P1NUEgr8R ztaqmF$C3fVHbREP%cX&PG_n+|FtoBBX)#Pem5P$Wv4~gdjvmm0riT0PwxZrl*Xvy3 zC((Bb8YkjDRtq2Xh`)pArSKgH9W?U5TrBJ|7aMQC!6%=2>1Q@>)zC!A=@~IAw~{v|bdms4Lb~W%P!PY2xq2cDVzb}C=k7gD$-v3C zA{3QNJ*G>)Sx^4XJN;zwg*E&9*&E(~9ceUsoHcv`-9KN4csMzx9aeIpvzsaD#H`HK z){aivD5#~p)CVr4f+O)v>kAg^^iFRb72k6)hTI=Sv+o?oA-2pUuNbY7^Qg9?9)N%D zBHDh^v?jVZg9x9d@npU2h^YRq1}5scupOwnXxC2D-msk4 z=N2T z#s^zqds5B-@tmv^HjeTUL>VUz0i}=^d1Ca&Eh;)GiA|;*Ue=`{MTZZIpcP6gi%x$) zD|o|gcxJ2}pHYO1w?yyhZ}&9sr?C(Glyh1wSWZxm(JS1P2as)}m4df-(`x9@jHt|b z&6tH3n)ljs3Au55Bo$2W4yK#pFjjbq$2LK=bMWUwFzw4X7$qkhzon4|M#!m^GH<8w z%6@_k1Kx?uy#7teRT`=Qx<@$Nw3RUYeGyMP_D;f0R z+4%V#p-gcF6a^ENN1X#-G~oTo3Hi0y*eoZ8uY`u8ZTdMRpBF^F?HaEJC;}x|b-p09 zy`Mjz=+oMFgGr?z?!d=L)a`H7lG)!fsw5$ffdz+IP;gCHD}1#^N&osF&S5ztkp}&D z*(D19$|0p%DYaxBGafWKzz9cY9V(exss*w=rgLRZ0v^MLhrZ}#tNi2Qm_m53SLQ{UjfK@5a>Q`cKsp>58GIVn zCn6V$AdVnPpxT}??WjiF9Zv8?iFjP;qhdmq$8%0QVxDxzJ;;fHSPxE>LtA{end;+v zw2*54T#Oj;+Vn->M}0KLVs3wrQL27dT~ZZ@0%f~wK%!>sVc+qB!%Dg7)E0X_&PWa{ zGNbmx{0uh+%zlB3eFAjDw7hn5)5jBXzi{FiQR^pxd=Z?JPD%88?jY#;pz;F2OCKc+x#Lc~hO%Bkh_;(5bkYlB+3+Yv33&hHkd6 z%UTC^9ob;%qxbq_LnlExAuGyHz`At1HGZPlcM;y4jKa12Pt8JxK9Xmi>O)ej2Z~$4 zu}L_U@YC2`<8Fe3aHOA;vDvXn8$uR~35d4y^kHU1j?<1dLNb9<55 zc&|bo7zFAu|2D{afipE@;ZDG!90P`P+3zxjl5AJWp)0O=>86Oe_ zN??||(XH%T4B#N6DK+w)0qvE8a^#E)vM>^KwygNj);aAEkbSex*QN{J>--2tWjLcY z1pSs#s6Tw>v86uB?79Y9Jv>IL1!0T8I<*W|)L8+iPmXje9eVq(D>z#?^zpnYs!O1< zX4@jNYHgr&W8CV$@?EEUMl^WC2)@JVBcHj#lrAnOQ4q7}jn<%9(jSdV0;86+j}=ZC`(giRTn`u!jh}IX@0cZIJq& zD3V>x?7@ya%9jRFM{z8^pEeCrK1p_b_4{vnVg?vsZ}ewz%8pB~-WE(PyY}g6HreCy zL2KNd3b>y&Q0&wgIpwS75FYE5g$_CAPgwDGLHVy`AG>!E^^wOKIDcq)o2iBtn{}Cv zKJa9{w>I9#6_AZ;_%|;mci+D(>;&sYEN_w-?qUfTY)AeH`Yh?ak_38N(XSa)KoH7Y zN#Yr+qV)`p%bGX!_MIjYG?HMY-|Jx5q~q&i=u`IIW93P#RHW{6pdWxQ { label.spacing(0); label.addParagraph(p -> p - .text(TextOrnaments.spacedUpper(brand.documentLabel())) + .text(TextOrnaments.upper(brand.documentLabel())) .textStyle(DOC_LABEL) .align(TextAlign.RIGHT)); // addAligned, not addLine: a section stacks children at the From 839d91951d4cd2fc5dbc7a080ac31ccb423e67a3 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 13:18:51 +0100 Subject: [PATCH 66/85] test(qa): re-record the seven baselines the timeline campaign moved Each of these presets had its rail rebuilt on the timeline API during this integration, and each migration left its PNG as it stood because the change was inside the gate's budget. Budget is a gate, not a statement that a baseline is current, so the whole suite was re-measured with the budget and the per-pixel tolerance both at zero: 118 of the 126 baselines are exact, and 8 are not. Seven of those eight are this campaign's own output and are re-recorded here, every figure at the baselines' own 72 dpi: navy_sidebar 2 px, maxDelta 27 midnight_navy 2 px, maxDelta 8 terracotta_rail 3 px, maxDelta 2 professional_sidebar 6 px, maxDelta 7 charcoal_gold 208 px, maxDelta 18 serif_headline 498 px, maxDelta 165 slate_orange 12485 px, maxDelta 209 Three reconcile exactly with what their migration commit measured and recorded at the time - navy_sidebar's two pixels, terracotta_rail's three in the rail column, professional_sidebar's six at x=20 and 21. serif_headline carries its rail change plus the bullet gap becoming a measurement. charcoal_gold and midnight_navy carry their rail change plus the row-margin correction the develop merge brought, which the earlier baseline audit traced to f75def65 and deferred to this commit rather than folding into the merge normalization. slate_orange is the one worth naming: of its 12485 pixels only 16 are the migration's - six in the rail column, the ends and the seams - and 12469 were already adrift before the campaign touched it, measured by stashing the preset and re-probing. Its refresh therefore absorbs pre-existing drift as well as migration output, which is why it is called out rather than listed. engineering_resume is the eighth and is deliberately NOT re-recorded: its 306 pixels at maxDelta 99 are nothing this branch did, and it stays its own follow-up. It lives in the shared parity test, so leaving that class out of the approval run is what keeps it out. 126 baselines hashed before and after: exactly these seven files changed. Re-measured at zero afterwards, engineering_resume is the only one left that differs at all. --- .../cv-v2-layered/charcoal_gold-page-0.png | Bin 113860 -> 113867 bytes .../cv-v2-layered/midnight_navy-page-0.png | Bin 117381 -> 117371 bytes .../cv-v2-layered/navy_sidebar-page-0.png | Bin 128892 -> 128892 bytes .../professional_sidebar-page-0.png | Bin 81055 -> 81044 bytes .../cv-v2-layered/serif_headline-page-0.png | Bin 121183 -> 121201 bytes .../cv-v2-layered/slate_orange-page-0.png | Bin 155530 -> 155280 bytes .../cv-v2-layered/terracotta_rail-page-0.png | Bin 142447 -> 142453 bytes 7 files changed, 0 insertions(+), 0 deletions(-) diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/charcoal_gold-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/charcoal_gold-page-0.png index cfdb346094a3aa85e6cf4739403c919548be454d..4416f356e2fdb044b4bf2073f850e39fafca4905 100644 GIT binary patch delta 83321 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%0D_NP?FrsHv* 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

    5. ET7&cNY79Eo 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 W#0~QbdJEyfKP`1#wbJXBLH`HWW$Cy8 delta 83314 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
      xhRvub#GitB)%b1PU2c! z{G5UxGEHG;&KJ&ofA#+P@=#W3YW1oWNqy5XEwvczrn@a3U-wL|c7 z2)`WU(kIjaokVxBoUlLpzD8%KgRB=L*{YcHQWc0?O%~mL%GRhWHP4J zh|7obiD2GbVod@F&pc4LN$aoOYdO$3I%)^MI)>m%!D z9-L)UCyS%1v&1_Z6hE0+jr@>FS5rgd*B7+xU?KORsaG#OBCJidwS5L&5=h>ftA#tj z@b#&~_3YZRc(_zn`aZMI_79#Pe*^AO&uXlyR5}>&bjEFp7qzt$ta1^);V~0uqy@({p*)7uQ9vYB@lal6`vbyBcjJZv#eK)ezs+oqd;e z>_%k1rPbD7J&mdrcBclAj7#dwCEyokuNuiB;>Uy^Be0t|MrLD6zij3V+J zzi#Ca;HHWkij)LOS)|+tK@_(C(bZh(w;~Pxbp?N$KJw!2J`C~)0~-JScj6J1rK~g$ zkUCGiX5%zq!x!Pg^17K0v%-g~Q;V+kyvw+A+JxFR^Axwj#CdY32x_WQ+X+Uyg|^Pm zwxhn!=_Bet%oJsXTvor+DuXql zJG(K2P;LiWBB7lR8_TQ~+yQww5SA$2#R3~_pEo;eWvhQ*oHJFT*ENav3iCm^;;_6_ zT+`PkCtJ&z1TbtKE{~of;4`wQ;1NZ6f|B$`?|7A?sfmjizi~5Vpxkge+|$E)+xd;3 z0Qx)6Yux(Q9bDU;HLdG@K6g{EaQB~A)q-#u!!_08S6>qzhl%@ig-v9={hSo(YF}GS zo*~`SnzRUta0$2FVhHI8Vij9uQBr-Zm4>+=D3Y7CO%e$96Qi4#vB78ornd(#t44cE z6BY-nENsm@xNbBHA30lI^}W%}!OB6Krl(*Bj-%qnjbQhK-3{u9EKB9RrBA=s4LNb# z<}=4fFWL=;X&-LAmEnJZzPUS7^Xc@?ChNV9=K?Dmqym>%1HB#nhW5x#ycAn~$|6aA z`DIBm_>3cR%QRoJneW#4yt}$XrhxA3 zhOEc%a&fV!65mApo#)uevGnG4<8MwI{To2iOYWZILAE6?k5NEq%7bZ;Xwr?vR%(767-}CZ4(GRF)QzIYi$$0U@;U z+4pk51lZ^%tjij-v{EGb1OBM**UAAUcVSa^;^o|C(gXAwGTHijIiZ+9SXOGGR<6l< zqbQ1>345&*6f7+N-8%yYTvVQ^Fi&^f1YnJaWnrHvSB^1ApbC%F-Ufvlj+STmtvsp% z97Lv7vh#>J!LWpTM~{99r*)&e`zgS6E3gJ?WnHwK7Js%K8Zh*Bu?K&hcfe_#f<*h$ z*3TaZW{URa+0#A$F~7s0tH53XG|=6Ly*Zu$C5}ze`~t4v#JqeYvv-Dcz-1;DsBE&e zzOOsrKejb30xt)vWa2`hyX}Izu+Ilz$awW#8gY`x9DI?ZYUxb3Clq|Go_yu7x~tiA zd`6vCbH7}|VfqXX0g(2Tn7hX{QTcBV8=wv2bMjKHY+Z5#GvJiP$e%=gFM-uF5SxE( zm6Dt)DWs_IKy2qjtwau^h)p*LAG~j0vjs2HWL(6x2=SJKJ4S_PsN>i^bdT%HY1H){ zg|`f><=k(46|ew)>+*6HpB+~#CQ;|_5K^pyL&}`|xNA9nLyAoo$*DWvp@l(#WzpI8 zy@~oI72GW_V>mylNY=gc@5Y%%D&U5F?19zoKC%ZZo0v1kP5XhBy8?KD^kTy8z?|Vb zz`{bx0(r6qK>x#|&A#97H0vdjKB-MyAG&gux<^lQ^%57$Ws+Rr;0_Q-eE$dkbw9w* z{q~S?+o=PP4E=Olandc<`e%(mq87x3xbI%~FXm(jRK(3X)2Ps`^^`_he*@_~`?;az zP%@_day8r`v&kzM{;2Y`^+TUIipXfx+E}` z;_*L=AUKpCq`p(jjr|9I-jCM%MnHyS5v+q}-&5yQmcypT(r#hv;r5CdBo9fIjc%A# zzg!Fdk7T*@3_cD>+1J{gXnvTQ%l$3}{ESrtLlO)Bm`TIs7H1@Q*B;CJ70n58)0N%9 zUFDeqMg@q&$kGH+4^Yh^0k5N}Hyx5Mri-v#n;WBbXR(b4kU1N3hpGUH+*k40Qe{!9 ziDI@E(sp2%Nwoe}{dXsSYlxYqs8{+59tfO+3iqB{7vllH$(GslP92(o3ukj@ZEAP0 zdbY0!z{%DR<>6G^$?*z^^wf?!g=alS=uZAX^zSr;NgPLoTo~Z%@sKQW0!*0`XXeKv7vO9iaf$n zz%&wwG9LGE@L0aX9(_XMvAQ&S`kuJ%>6ttSma?H}B^(lTgVeA~GA$3ih&7S&f--a*vzn-x_Bw@1F^(a$R{h zt{A7bijnquvIfkN;tdi}$5I&o5xEDV$O5}3+@@f6k1!F?+So65 z&J}ThOYkr~ihoAGk&dO3pI6f7v}$_9((i=BS z4n18#m$_7PPH|5T3kOYbXdt* z1r@{-EFGR%uWLmdWSrX+^Xv_g-Kghn%dzO7FCfNv=axN>Tve=t5u<74Bkf^XEO0;b zfqfX>FZ_Eus!raaZOYRf3@X0Q&ruB1Fo1AvCT`lY-ICgHVMpuzs}-=tzNL|<`dvtJ z!v1_f^?S`OhTx79p$d>TW$*nw+NbWZ!F(yR%weB5JX><|5PWUphbP}+j#ZoVW;W=_p-0((HbeT^=}^pA2#hShOcPeEAbx=j|7EQCi2sS9p|d{2lbfC&lCH zEzq(YS>uh?i8zGg{ty#gdzfF+E7+XSqJeAJj!u%4Bv*$~whE?^v?duTyQH{6(S+|i z!O{0@{@~lM{K570xD-hXk{kq(kk2zuc3EGu7t%Euw1a;I8h%~y*Yv}o=D0YL5b?6R@8u(d{oDOIdU|W_PiR~x5^!4-Bu~>)FiM%n zKcB<(zKW9hQV^P%^{Y3={saihwGNs;M69VZRitj(y{*^Dt2zVR)SDpx! zia3e5fqdyIV&Sh&lzHN&V}QsAeI4C{yYrZyx-qEqWEVu9zomtOZVC<$pF-BD=mOpx z<;OS7dr$ay1$ot4q_SFmM{S5(TtIU9Rwzq4KIZC9oI%}=o>e(w8}@mzd%^au6UT`# zs~H{oW`2}&>N*>~8od)_OYoVazITInh}omC6dZThFF6%kbSzFmY zXoXy@FhH+O^1dNYo8g=JjavORI@@@56~|3rXfhSia@}X8Gf6?p9ofuZMp|kuvTkpu zH|>}2iLIBNodPLJ_*Gq~;NWO(1dh9AoU3!@&KZ^+U9Pw(CyeGM4dAGt0)vSQGLOXf z+=9?x3l!P=0|54KUq$17*91MnwZIlf$w>rOY(A;8yT`5B7=W5`P3wPZ^+5(`9K!#)s;Mt{wnSZK@ zPGOp8rcw})dZm%p_X8#qh{PV9>ArQg`xB|}D{3s(iqMd|;k^%z{pr2i*Ix(-2AbOJ zfp`RL@~n13w*s1wN`&%g--_G+z+2Gj7Ck|DxKoVJ9j3N;UX!IXh|ZqukY5Z`M+D!c z65f)DLyQjjU-opCg@>`!(m-$hpn)$d>J`Odgh;r3)|XWVqvY+(Ha%dOXU?qg&)QX& zBu~DOzhWV$&$Zs*(Ziz6{8%-mR^;YbFwVW1kVPC%{MqSy$*TYFpi`tYtDzfne6=}rAx6#uKUFv=iITiwBo7W^Ce ztOGU*WYTE_(oZs5Rmxsf5}*j8mnsP^(XJmgj2&Rp2HcoVz#m03&LWINr8*!1o`~^Xe@r%7zGHSjAowK%S*1I zlrMe71?_#!fw#jsboQ54hTtEcyjEJX^$CHjmww5@_NWK*v9%QH&)_HPwj*XY(A~-B zt3v()@PK!>Lq%qQ*Tn)R8~hs)Bd+to#ui(!wAGU7YYCyVd6JCQtLKT-r+b(z^)&Vi zKUmwK-XT&KVC^`cG+cBX!Y42jbd4(l7Mv6_{3P< zoNCea(le-~`~5k3>8Vf-Gi`?GOxM~EMJG834hk9wD+XhpUBo(a88xY5nKb#T*sL~O zJ>dcVjG9@eTRUp~+Ve=Suz%V&p*n0*JxuC;JGwl7mZFJX=YMk$qLyuI;#@!}+WdC@ zT^B@zVOqAAah$$H`*mL*gGvz>em^G>q_mT+FB-4wTHm3`>o{O0l77|^Ba*W1-611x zwbET$oq==VYX>1miS;&3LlY^$rm1~NL_c&j%|14mi@VZDqa=E2S?Q=d;?xQ5Rqb^h<$mcq^{IZd=*y~N7A~HohNoJFs8UTHZqZV!$L;*tpP^Yt!yg}_+Mdp`R`sJP z0n&M!G-2s*?|k?}D=W@t99#mfDo3aN-NjZbY=zarNVTESmrA-$#N?EHN8`mBvGGw< zh97#bZcZX6tl70|7wlGb$%#eDb?-O$PL>f3LVyz=7OVm3w>_*gd9*@jC|IwP%O?WW zd`7qKKQh!=4krz~6L|M$8K|Dx|2ZB7awn+WUs37;|MwRYvUQG9ml`+*Xoery5AhYW6+aSGlV(p_Z(@1NEpK2M6v1~ z`3W|k?~MHxjav8(`<%)%(Tavm2@rZ#?LC-K+-zKCSIs)gTQC#jDCQ~ep(x!WbxE@7 zYqByJw|*$FTV2COPc*-68;h89#YvyGO|WyhpZsMrpV{GEpnbXmM7sJ@FTNeVW_i4? zB`3rD>T%clc56YhF(-NFMRA-Ii=Xt{uzd9(b4TELlh{j8GttA&zk-JNWJWOe=%tQz)HM_;U|5WVz~` z{#hpK`VU*Ev1*#n;U{}@4>|T>mmTMXAYwKg2j3mloEr2>_j|zyAITNF&gUMu$j15= zCFC&z!(@9VQJ%_`oz%z&r=xQ*ynG;M!A`xR|K``ZCf|=ny2Z?q517SPNssj6TBWYA zj`XTnr>k*NmqWYO^Jr;FXcZo%VXj*UZ<&;{WHE@}zm-4?^}T#nI?e51-tfRG>a`wk z@vwno=_W4`RjyRIDoAg;ly9)hq)MeA#$y4?SasWu#YdU`*i~y@q8N)Q;(K#|5>eaR zA!`rYU6ZO-%U*gW1F&Q7;7V|69$f%?4oANa?;$-caIB>^t|Sv0v;F9mj`Q=BTW8{X z%_QJD*PGxDn+yct=>n@pn=ribkKNa7=Dm}PR7`J<@JJcq0gk^({=|P-_D6dL&yoZl zY{K8+57E5iuN^?62oCGnFb@)?p=wCsF$=Y^P8iFJ#O6o@#BzIw2Ex=rz2q%vR;L|i z72a^LEPAS>H<+*F62wdFo4RIhd)vqAA9+p?rM~|9>6sRb^<6$m>~S6KR!L%PTwG98 z9?|6)}pgf}Zm?+9NBpT+x?o1sy0r*3%rk9x6n|3F$tDki_ai=Yp zw*JfGJxY2fz|&_%qZuj08h1Zf1p0?1s`%rx+@y81 zXSQQzrSF0u)lQSi6yAbAQl%wM>o1EaNyIEjKLjyI0}_wlPVUTr*?}@_&bZjB!K;zC zS=F!lsJl(~Nni%U&h@9N7C@e3k`6P(yU`G%=pE&APP9(U4c;N}fn=}moPDATLB zbwX|b0zh(pcPyLhJ&P{PG;X)Wvlwfa!41}}TrLl28&YV0@oWH5*640Ao-rE>3;Fik zHI)2buj_aHrddj*>-AgF#mtrq6mG88MTJ(2l>lgL62$!YmTHmIz)P&EE4*iDwzwtJ zTm0oMYMJyWNNq(w5ixH@6bL{%#q+6A3`4V}Kue~1aOf*Kn$;1b?+6y)oqH86<0Xbr zYO$hqFL@Sv*cBG@1VfunvsFr=q5K~ zK+dgiqW_JF_wd}l(0h|6Pr7&A-br(e`ogTP5ere_+447iBps-jLpPbu>$L)9GX-~C z4dBZFD$KJbMq~4!NE}_>aw|y&>@BNB8V<-&7iu0dnk5&b zCPSYQDSUZ+9TcI)MNeh0;CU3nBo{~yNO~O?^@mMgQ+M2g{9+1^Q)&am)vjDQba?6X z?IB49ic&2ljSmU@L~Fjy?^r@L)dj0~ocl&;NRClC{`~v#QUSVmnE+XRsLrGv7lZ~5 z^&!0YgwCUh&w>>8h7GnJ10p=@Jq-4&6BrqWyivS5-jg?lh;5xsJ1m(}0vS0cD@dV= zCSM_d$a?Pj*o#n1wf^B@uvx#~$WOCkRBlPVk0mmt$o~F*HJnN)$-8jr7-m%OIE~5@ z@#G}6joah=+Wya|-Tg1Q8n@4w3LU@L;T(zyYG`O5{cnV2qT{h&24o$5w#Pv-Kk{qaY-OISFV#3?A4F8YmWp(xW@zD8ru?J<(5@IB-``?m)WzX5 z0I{)vfQv!3@3QT*!4m~&FdDXf_@ELeC*73RH{<8(TosxguJ<|2l?4|}DgU_t@0@bKfc)&j$kVlIiP|oiD0Hm7WNxNxtOc$Fx$>{ekgLd% z1?d3*T*e*RQna<*%iLf_b7~e6#=+Yw@;5q|lP<<2<+?h@UnFiyez;~c%&L03<=kF2 z)XNoMK%tkTeetI4PNwC8Vj{ooyFh!5+;>UGFBQzsKG?ZH-%hjWfsN2LlpkJSUvFIA zO1mlsU-mKCL=dn`fy_-U_a_U1ijWh~s(mNpt=po27Cmz_5S)l<=;L{QIi^<* z)3b39dbdAaeZiIQyjlUk7gScc^lLTS2zAKnqsfFW_F*3HQX|#%9&0M5G|M&p2g~)p z%f7lQo!sUKj>E-1TN;)XPOm@yUGnEi#NJ#N6-2jq@=HJBk&ftxW3_^Oc)NmJDWN6s zQ7ShZj5|HIRKJ#I zEwCO?xTh&^ptMd!z^OFNFEzby`+%2i z*iVZ@Cg%CPEmo!y<8pTs!yaaDZ{GyybJCjO#T zZEC>kt95FXR&oftxB7RVKkReoBzMQZw&+der4&m-4j`KNYjJz@%;q?O>S?5sIu3KF zQ12TI#O8c7dj8#xRqa6c&R$9SLgT|i4zb&D!yTO>1G$aU_2#P~!@C3=K}&I6TJZuY8hxW`dqpN%!`JITAOdh04&j#z}w4o0*K5M=`lN#~~4kR}y~HvXK<X8M1RH#vFk6{5ib(;D@lV(41>i%2N$$sw0XfbA>8|oK!zD_{k@8B7ELLxeN5GUQwN)mA&B zU*4ULMI@G>{Ibu9f}E#xW1xIMPOEMV7~+K1#>cdGi3qcrQvCEX*RN5$AbQo#2zh4#V4d}Yx=bGUF{NYx1_RV?K?sB*GlpVp6^n`Vr?7*A3%vc_r!Y@ zqNfLg8G!fsa}t4Bt}l=Kfa5ciaZsc)KFn|2V2w;R?w6}!skG|g&wep%Mw z^haXPX}*Ri8$G3MPlXLFCVzk`=u!PvGp5|MqlePr#T*$vu0zc9gfHgdk~_7yZMkFL z7ggVk(`K{!9SuC|G?i_5*8QVV!7yXHKv>K}BXzdQeK75$T87|oPcZPy3J){@h)IN0 zu|i%)B{x{CCO=q0C)W@E0ZY$%lPqQuU&x%5Pl&2USdFL(;hpd&LWkow=1@UL2x2ETeB?ioqe0SavkRi0`Jcs z$cZUjpx=?^U5Gau!rPFl4T+f(_It>+hKdQ;{;Cg)0VvBn#L}{rC4H0_7H2D0#eHs; za;WB2OI=JJab5g`e43F8A^O66A~=A?npB z19ZKL#V=)v!uE`-FQ1I(jhV-yTG4LcV!B5yb1YuHjv|({TYt`}hZfrXM4IYR9ZMw@ z5Vu>&O;V4={maS*=_$!M4Qe<&&*|IKV5U5SW*t6aYfJSPfU{AL6b6-mMxzCjnJu*t zrw?Hk$?NWKzt_>qJF~frB{rq^ z8}&6qUh4gQC_AGsOIY(h#}72P?2@iAts-u7v*+`Stz0hqsYp7l(JJ(Tg09i5+Gr%;yX_WVe;(Vju?jUAKSTxCeG%58@Eo&s+fzYSMr%vQT z_A^oG29-47HTeFhvM0-^+<|fhP+y;ggH=LeBxzVPVf&o%*)Q!bh}}WkEq3mk=#(<6 z61{f#`1`}&icU?=*czfaQlP{TSKb%$ibpDyV`9?4)xBq?J0{(i{hnSW7rmA;J$Yux zS~bTBf?_*t!U|2;7h%LDGL50K!wI+Q6PTaNCmGUnPUMQ*IcmE_kO>_UG!wSdwe@K(yH+e<;V;yTlf_~K@`67y#N$0Jw_6L`3!ghSrU+WDAao`$!Pur9G(d(CuS3?H z79+9EW(coyW)-~Lx%3HtcMSFN0$C(*I!Lg`?=Us9zkFwa4FUO@%tPgs#(FJ1n`UEU zI-J?IjZjhvkz&R2Z@=Hc?EfRg?Fj#>qNH0+MoNOsdaXD#%^dyW=tY*<<2U*CF^ZN8 zGyr=;gM@HZsXZ4-#u7?l1#?(+hVn_eE(GE+xc_W%aAqZH(ro|iJFRx}1a}Q#7StG^ z9~6SV4od0uaMrBw;HOzNSOl7ebD9efL`+Qq#>-CFXN0*piI_(ZO zC<52}KVC%{sgpCmUu^)4-Dc8l-b!WyJ%z??o-z$8N<)lIPMy6V#orUUCGn+D5qq}Y z8MCC<7vwPhD}iLxBi|QM)|z2;1t}~oLs?@zEeT?r9OowA&Fm=`Gvpsx%gecDR8-6cvNu#_E(|xRQx(bl_d_3U*m@nIA zN_~UeU_Iy3EY$6zd;pozlo)sJ+mL3Mr0f5^%RZr~Asu;Y`Cv|5U~}8aCj;3q^?ker{C6P^xY_zeZc)i_!=@|T&FKdWTi=m0^+=FF!EmIZUNgYv&wt7 z(mj{!qh%m)nP=D#=q}1XwcoaKW@TtP(Ix18ztWr;uyMY25|LQl5!x zHQ<*OT=2S{7BLPqp{H2W@@QNYQEH6&xGmeJx(oanIYTF^YbT<$<(f1q%)T+?(V+U; zP94G*wq+V3Ul0`eF1@$7uWuz677LMXIZppTuRowy^FFd2_^EO29sz+JdraI-h!sD^ zuDewF6lL|W-AnN{Q7kmsNo9ZQuNw5vt|O!{COMewBk@Io-RBT;8U^!x^0Ssanf*PH zL|zlpf<|>HHoZ0FX=IL|Aa93uX^-(CBebLQK83-JusW^KU0Qn z-4=f($#tP6RyBBGGXWw0ZaZnrdW_|Yml7s0w?Dggc)oKLI_9B1*Fq80t)hx{wC#Ockti=VXz|B_Ql zeXvRUdQ8B~15vI$?yUaN%_2KE!>Lj5Y6B`l(RLqXa4^Txop8|g%f^jR`dY7jBkmNh zfVuOH2G6quprE)4{APoO^&c$mVxUmswQRkYdBZd^v7fP}@&D8KEjGjXA+FRY(x`=o z`<^OLV`TbbnSX!V~G#oKH7ty#H9cqE8R)vg-OnhC|Bc=;!ei)B!7{f^V1i?94n}uU(LrYX`!{!cv~S z-^69=Fsrs6JrIRT{P!Vnz`uI!JxiGLMuF!7Z*P9qPXVwO4420^?BZ4$qT`8C;4C+`lFH?>q~vZIBIPMSn?gTAOM&B1G)qG?O!} zV}cGXP{cMERrQR4<NIWA;EgidwVSo#zLF zf*WD(zfa#pL)AoR=P+HWbJ;aI`7;>pP@^i5!{5+wp~C2UIgjpgi`VgR8sDXUpU3sd zy4_gTyp@?u)np6!WzF`Ng2xShS4TzLVn?gWRg(h0r_1!zGDU4-JQ{^xIol97I1aMG z{I!1^MMIZn)R~9b@PoNr%7{tz`gJ7dh6`35OiH{vT*R@-(H_uRko;Q2)}|3Cb7*&eg1rMdOBZcht0!hH%czz1}#)c z$Cy-&A{Aie;i>UDUMWo;NMMQq$b_Q3F>I8Thxew-FejykH0C?kR$6`Ptoowqe|R1m zDk?s2DMkM9aOXqHXFE&`Vd*Er$L~JM5OK$tY>9}8DVqNfv`oTh`-Ms}YdNftQRVCF zX$1uZO)NS4!(BXs+nRXtcDdEZom2s+3=Dh{`k9o=w6&jxdDP`+&!4gEv9AJUGGSP}7C2V%U%!^V zNsV}0!9UH-W%-t}B3^YQTQZw8&6YnanNKk>#)wOZGMe(G;-&~uK24rQV_oRnhjxTp`i@&4t*99h{Lu5^W~C2!|KGujsChfaRf#dTx5RtN0w?<@HwI@93CnUu#oasKt`ncZl{PhL}gSx;k~FZhf4?)^d^cGTk$%*zF% zf+8`VUaFSTF{pC%=hTB^Ys-f@MpQk`a{BuoYoh_Q%D0yf_qTo*dp(uo(d<*jitndO z30nBG1dED_u!*??oyrBj2@J*4eu)IiQt}Rlvx2<1M_{v#N7OGfKk|Wa8=eYkF%|{R<{!l5;eOeD%b?t91N^ESjJw8Bg>vxO>Tqc5WJ&8lO48L~udQ!{Nge)}6f^)LAQubPhn%E0fx%O-gK2|+q+a{MQ&N&c6g^U zgC7aJI*a&yt+{8-g{8mxg?b$H^i!w6y&0wGDm!0lN{KR8?FCE4%{e`{ibmWU(M_AjYj* z%Ie)b1ExQdk}6Drvs|!&578|p)k#*uVfM#V=X0&EMMX^aA0ck<@^Kb|Z$oT|`Y0OL zUEEa*;t)j?O1{2ZOlp=N9$0SnD0@vx2%FdZh_KKFF+VqbBax<2|2iNxp^RAo!CJA{ zavCEJoWq5n6VdZD^q=E-Dh@7w2b@92UdL#$yjMk#ShF-)?0E!4*t1hP+U+@Y_K$`5 z5RqPn7w$5p+n(AjIq>n6A|M%|!9o0YfHShLI^JVNg0v#pE}vT0{LfF%?XhLhZzJUhuvmn87f;bb>r4gPzCw&;*LzCO%0i>_+-CK_ioxCM{~Qt$GVpfjJYh(H zTuxSklN9P3X<^6cPUyl@@-dnZ=4LD6&mU}&*it);({wv1|Em=o2L4|AK(;+!F^UjYZJEl7 z3-*Xir?s%ApM~QXt=awk{X08v9dQat(xo}KY)H4Aq`K;LEx!~S9=(Z=N8D;>Fpabz z)p8W=#n;meu+yaF((mc$uGEM;u>$cH2PNwT_V1ny1&=we69q98Nf)9$YinzH2S7o_ z!9KisnW;%$jkD|Al>~E;sjb4gA*f}TrYTr1&GN@97CM<@7n^Q)LgjDUUc9cslV}n? z)T_i~CHpTJhef%GiTLWDUiCq4udg#C0n^bqR%A&6vXOpoZ*T6k`iQu06$CwFes4d& zvc|X+t?-ta8Y{UZljsRl!=Wv#BcP?Z2yKzrw72hT{E<3}d7i=-%9mU9rG1{4$EzJ6 zc0+jKm;{Uzk^xKH^H!-6R2=yhZWj5Wsz=&%rvvI?SQNsWp(3w&@1Y{3j5I0{pFgkh zD=3n7a&GZW)n~X5I$Asr2@NG>T*Sr06X_NS$pp)BYvH5Q^PD2L^bdoH01NeG|9fn@ z0TDzv{Wt4UTk$kQPH)=_E~fujCR?EpLjZNXBrsO*&S`V{muZ)(-$5j@M)!*kZHWm* z7gw?WIbnYI!-S%mTA$o}i&xcsrvthdq1_N=x(tY}S~0rKrh7k?DmudW;U8S6|0Sd; zz4Qq9f0ckJ@E{2FJKu@BLsG6c|M_uhN_)t)#nRFe5eaFr(MinnK)>rQ#!z2hUrH+Q zPROVC3rU^r$U>dn82GnPIn8pcyr3Wn{r|2e3slVi<~#@q&3Zl>gzU_he!3M#rzh)O zAbT`x@l<(`@drtT3k<|w5k*dUI>6yM-T;k(6cp@idR3;&-wR3s6=rD#Ii&%|aDq%88uj)aU1olb|e%a|X% zaf?3tbG!nu*^B9F*HB-dLHmEDnFaASgt-|S4C~!B6{%(8V#BT12PwonrD~hp|7^(r zq}hkTrQ6emoM9|m#?2p|!3N&_%E`%zp?t}!?0gIoPzec%`0YFRS*#jB&TC*V$^?hL zM78SuvW~Nx5FhVCsDtSG@P4%&bMNE?+9%%7Tkp6TUuoFzyiWtC3{rFw&PrNj_YP`C_Ey!Kq+N3l}F~ta|01GB?{;I9WN??!;-MR{?Cfl+cE;+&)u(N3ZPSZd1yHaAdi(m21e>wH z{N$UXi=ls^{&OMS)FeJY`(Jo7hGaWKUQo@Sa{cAN|?KnBZQ zDB(Y!BtyDgZ|CxG5d`|K7Z4gg5RYyz_L=C1wASAbrrXrl1NAG-|3QYt*}sX&iCUJb z{wvowx5;gG+V1GIx%|wO*X^LBg`NA{2h&+!f%6?OJSNY_%)g!Y%O*mnT*znp4)iA6 znQ82OLqtb>FR5rla9VFsgf4an$tmqBw)$qW@QG7m&q2rFAevY#JW*kCJNC2Rz_IIn z=lG6prr)&vgsBavK(-c-_r}ei(<6+Woj)_rGd)vHC>+~jUbgT$|5U;{bQSe7Ujg5! z($=bKCD@u-f?3;l?;u2WaH`hxa18jz?D=119RUeZ)Xh709pGD+v)!&!^hn2pYb~06 zZuNRZXv|uUExu;cs|xF3%nho;#(hO$daVSGZq(D9i`FL`J` zh2Lcv>)Loik(wNXs_A!oqlHr~oFg#98L3wuMV{upxy|vGbpQ+o0%coMY3`d$V~F-s zyl#%Q_~{+`3=@HEU{E98)@*P6BK`a0Rr+%M2f|C%7wNq%0nX5}7jwbfsa z7Yl>Jv`)h)0?{y$+iu-05Us)I%(`&U>5f|P#tj#0biB9$jc!4w)u?3^ zBd?EmLX&F0;C?i4ml*9dL0Cv%)N-xA5Ls;a7g@Hc5QyZ}ITPx`dXz%#VapYgq~O}j zZrz^{h*@H3S4g@@}o^` zm74k7?{hrzU#{eok~C(&6=SQ~QnDL3h0x*LS7=xi3^h3eMgQ1atXmxL*HT--V@m4@ zCT*U1N>vC-x|MkBPRliDmBsAR5)3rij++`yThvr<4O(2;$jp*U6uyE6w6ui0`#LZ| zK>p($rlAsV>zmU@aeqW%dMMsc5rs3b{P zA=-J{UW3L1*1I_dWvfxA{~6F|a_vN4c_UM1`XCbmIVNIP7zWMZPoUr4KJ_P(IPUXo zf3MJ12NPWu74(dXT*PzYe40#CyEfAgJNEZTYr!+yPmmC$S@ma6IYfPeb3gW!1wx1P zDyN-hUci1!V_{-YU{MpmRkI|@+@8UA)=K#P1d>4a$%q54=UlPwivW3ebt;drd(|bp z)9Ebw<(vRNd?gWr1~wXW^vIYPJ%I9BhC=ki4%js>_2oXCZuAKGk)MM;5GW>V`fKW1{$?Kun71B?V7Bpe?X-b8u^IKTk3pl4)J2^gnVp^IHNNC_i z@cp;j!)amIRE>QPrl6Lsku&(z^PRH;ezWkybrYlr2Q~Agq92N1vSQOeo_lG7awNW> zz5-B`mtUjpB!utf_^CuuzBF7hIF)wojUgAYj1drcH&qOp1B+H?%2mQP#!&-i(q@cb zS%FDN2&lp@!`yZDF+r>8_I&>s8uaE%%iSfa?85zoQS_TA^4Y>j?BS>35oS%ETEjcx z`DhsVDRyFg3}eV9?Fa^H0g9b0-7hs;02oqEk=m0Z3h}NcYoZ@B@1~+L#g%*};!oCz z3S2uh8;?qn6`O|e&(+g%k^C%%$z#*2Oms3>Latv!lz!#I@bUY1FJt43j*dr=7xK`Olk!-0b9LN( z6fkJ@uDNr{K!$8YU{Z<;^YinAyi7o#!J;elAl~No@(}EKc~S})V1Fkd5HRn2BHO+- zl!6!Bq^7K#UmS3MlPT=Fu?tKVt*@`w)YO0sjDL7qUml6+6XY+8yr{B=SX#P z$!IH{^ex!LSa6j)R9w$Vz7NR!lEa-$_NDftlJvlk zf%892)-4e-$39NGsQwQ0JZAE0u}Ex*76FUY%OP%raConI5JFe|L2QgulNE~ujxH}9 zT^Bb|c(MtLx^6?j-8D}k6&-U~8#_P4GkLE4C?8*6%XS{?x$?hWpCR|0fg=?U2wL3A z+%hRM6-Gl5Z#9MI@WePnBB>)h3^ckRx413^Lle@XHZS?#F9|62OOXb1ISY}Cd9t_Rzf7U44xlU!YT_tNA0*mM)uJCPE}MF&<;(2}kS8Jxe2sj|vCBM81x^2X&=A zs(yT~%P2lE2B4&-gIGx~g-8Mx&3h&4qf85FrMMW>r~O+3_$N~03*ZI~adM7TxxCcs z=_h(rFU-pRYI%65{mAJsbuK?;3_0?1xYQ`vj|QZxERf{v$#l@+7?Zz=g!D$JWF;1r zan?m#O@9Oi0<5Nj$Q*Ajw>}?Cuo{a(#AsgHMYZz*k>(xrjaj_)mOamxUc)gb6eZSQ zR&3pbn{uPk2k|F0L+>K`xDH?ZF+DW&%SrP4kMaPGJcAICWVUlLuOsGQ6zr)eN*#>C zCr<*OD7=29&09kxEm7Hml9vAof=CJ>n7T8b0n^A91;BY}Fi3^IvbnO}HLyHgpav+u)>SK4k(&onLj0NoEr-Plk&9}Krh;4q-*uF3dpHDLD;C69Ch|UiCx$(=4a_gJuMBwv_QDj9zEjEwe zabPd7(#%rC?g$lU&5ei(?V>WL%@Mk}W7=zK;rzmlPNG zV|HoQ$j>)*L&D=23u#}!Dv}jTLn!8k<#}7L74p->0iW6%j^sKSzPDMe9~1_QO7io~ z&Jm5&j^AQ?43OmONDI(zZf@GsxO`M_+j{k8F9hP2W|{gYa)CsRdqCagXlg7i6z+nz zyTzoL#u}*d_2(AiEO1hZ)PIV^ zC4bdK20-?vSemiZ6>P1Al8`r6T;+WSF>+=>Nu5|GBtkJ^7%E>Fq00%vxL=3)z|Dx* zKrlTRIPJRZ=wRQsm2m#mSbiW|Y+QxXf(&;s0duhpz@XvAJ}41i6S5kpJeV*A88?tN zXthA^Yn4YpqTQkQ4Y?&7qO&prF?>zQ0l?SJG%<}l?5BFQW+H$8Wch~)7{{yaJG1+k zaDQu{>PMP?&(yx$63L{R@g&0e@)56M7R(^4Jxp`^A6YiaG1!`{CRI(R9%3!uRC7E^ zF&)eUJHt)rEmsr}*tz|c#4GY7$?zCbA(6vt7V};j+60%|jL{fq`E>xB{N_G90CV|+~W31XKe9<^E9c4n5X?S^ZB zasJZ4q@9D{yY#vc(biYj_fXg9{|!Aem`Q8StOob04&Ho%P~o#;P8fcGwY#3_rkElv zDZ>txUWz-7(gvc@(U`sItpX+16KNJXIArBM!03M827ns1`yz$+{BfAcxdkcmRyG6~ z9+`#Jgx!%YrV8#uBqt|FCVhvp8EqD|2d&puGD4B$K_lm(*d=Y(orue{W@dzb6%@a7 zD~;||Mwe~s(JL*FQY#Bc!-VW6%hO)p3^$-Q(6X6t7x2iGpZT<)PGA=sF(zpC>7x`e zDh9g9KCO;WFe&^S+ckm>Pz-@0hL{mvI6UZ!Y=DeNldyEiu3NJLDrtrCfImicu0vpS z4}7$q=rsL$X_Jpj)cz#!!D+{(LZunA_cT-Rok?17t40zzj!GQv(#iyq50e}E3Yp$Hp-ecSu7?M>RPrC}m$3KdC&7c6GXE$^1M zLDk-pHe@6Tx&CZO`^I`};wQ^GfY;~aMhky%`PmB!g>4A)(k?Kjz9gWhnBXMnR_Rz$ zP;lY--;9YCK4n&CRtQe7iyxC&4D_D3M&#z^f|FIcMRoOi8WSa@eYOA3m%G++R~fJ* z_r3uKK-nVhg?Ik?$ryxdH5`#LV53NqH!#$Cz~uy@RTUL+`{MdN_JJ9dOi>*|ZEaD= zbu|17(IqK48MR<7 zw;ZVDdNe4+SwkkBwj31x3=TD8K7X#BLD5q1S^tHymrEG!W?zrMI_Y@p5>;^5ok1rK=T-2GwC43`fJxTnf|vmj72WYZQdEUv$F%zUou8j zYbP^-&&vVQr}q~GgePv=C?su$zp7qY}@*U6=&mDLt7?SK`B9S?`Y*Izf< zPrm8*`ZG%5`#K0*-jSdU+t}O$$GRwRaL1D77;PNfrjGjWv(EYQ1;Zyx_EQ)W+fn4n z2{>DxuG|3+sgao3W@Ib&ZQ!9ns$?SjVbu!!8))0|fo)kA@U z>1*&;+JHH%vA^pSREr-f7QP9Pfx(bdt20^IPhfKX3~sT`8}uSi;=T}ZF&lEf%(TrG z^==*xi?y44gIw6`KSTO^zP~oq1z}PcH1bRK)3cMic22XR_h+M~ z0Y8zXt>!P!Nv3k$xgK-6A`>ezW5vs)Gi?d>`L8JOkBIOMfJ#p-wN)u~B773FR?QjS zNkLe{-F%UnI{j8`!68=wXj78n3x3RlNUOWuFY$c?Lu(#iJ-?7DQ5R18c6 z5({1*P!ONKN4UB|Pe#^`#XgSBQ(3U%;LA*aRP#A3E}HeD$#qnyV>jwN)^OCHQ4kA$ z@J57|8Fvsg$#>D6#H#uy`1`-MqP#@YqCtsiB$!i^ zTIfJexjnkI#WeEMbppn>K^r)RblNn?##U6s zn-fr(XWmb&g8?=d%xB)-4FNE7qN+;B;i_r1dQ*UsF~9niYJitFYL~=AEjuOUDJ+iJ8DE-Y7#CRBM?xydKz(D5x2PE^CbL5sdrkDH&CR&&Jkq_Lj zD8mzK!9gbg4i!J_jOT!^$rdE@GsZ5Na*v(^=wwwrutj%tbd;NRCk9*|7=Ymvef_!5 zFX-mB*-t!_R87Ye`9;hLeLg4G6kltlGzQUFHPHg2i!Pz zz-Uq}b!7iL#cKZ<0A?Wa^J>2Nc0BR$9=jG;OJn}if!Y&oj;|f{*Ao*W9LW^B>I_0+ ztx*ha(tCVO&%mK)&m6@Hx+vjhcBq4hDDP6-X@a{HAShZS2_WXp+w$W# z+5C7&8Re#>qni#?|JIBjOQWL|XWRN!e@2U?1?EAm+0e~hM)yXgBBM5I5cHsMMteaM zK+tL7!~P71DoH|+hRypw83_R3_8&>foC4i^&QDGKWXyRi>!q{=Mt8nK!p-?EQt!2! zba#zaU+qv1nC;pWKMhII6LL{NXN5o@gj}Xy1a?kfUGPWR7bNhn!rQejuOO04vm13*Ywh z5i$zOy6d3yqT?4ZTSlotN?8;ZhSmb+L-LAcBMEMwPwuUmWdUex0P>l`cF<9*9z@808$W#;h z5oO=v76ocC%ErYb8%N6%Nm$#9rwT z193htH&-}kn0AzoZuqzD$k*TWp_wdb+@42E3bUXmE>$q~t6}tXv(Mk(f8GfkHYTdA zfG4cZg>Ue~#X?ybgGqz2Gzr2V^Wxjy|KsefqpJGau3>5EmImpNZV*sG8tDeZ)_w&2&cZ}~F-x!~N=wF_5_S$=|>zebLb1vt_ zhW)wPkRd4>Wq`mhtQxwQ7>XXpKseiC@^Fe`=H$?h9|@Te{)D1JDRM>ix^f{ins1rR z&?g+5j6b{qlV*N+kE?Z6E0{NqW{JeRX85Ds8vZw>v*GaG^_vs+#rZFDQ{GCzKA7Xv zh~I4)tr>I3P2=5-nY)fZ-wq%uq6xdl?g@7_!?uiGWI+Bu_`c1}1GS(T;bz@e&_-#J zZCRF!KKHEGt$M}vN5N}t4BU(`|L|?vqT*r;-I^=mqk*2*L-O6oqORWGiYWbAIXQ7* zL|1WyB0vHQ$RhbGzMq;T%^4Ctb>`yLfJ;@cHc9#ubPTkG8vNQUQha>lye(>!k-zhG z_9h^$@RSp>7Xw*2-BT9p>~wo;OA4M&Ks*QIvqT@x5wOKeoV#mgEz9Vm5|_;q1yKr` zp})7D#W<7p?GBcjJ)ILla5!AZamMM62szjr=QWg;IMsYx*~Tc#_u8Rcos$cdo**u9 z?YZR{ZnBm8acm3@_I~%<$)nTV*&!;Z%#6OU1na!xVV5#{f-(}L-+=q)%ZjARh!OT; z!7gg*$i`t*e$BE?z4+Tf2=pTN@6P*ko45_GR0~Y0%_a z{m6{5f}{Gf-e~Sy$??@Z)mxqm^7qHaNq!aH^qNa%a4YWU2sEKEVX)+d*kaHCtHou@ zZTi_L<3HW1n35Dc52dOw#a-zAPzRS^ZUQ`hS~auq|ipcM4z%Co5L4>h>R&)ECrF~jW>At8t@so)g} zzoMlbj8dO{P)Vw**+5CTG*QcjIrk~eTs!@qP|Jp|LSj6W{0@al=M{rC<5sr29PfxD#(IWaQFDIcSHxR`a@Has0B3hEiBhM9XdsB!!WiFe zr%0UIc$+eLC6iWVf~YrYS2|KdM2{JFqc^?h(uKGw0+aps!zRI$N2KTxoykPsBHq z)5h*SmF5E4na&yY)+JoxBlAAR@V>D!NQ;#nYwoFqINIWe53&9LfE6Nr_>Dgh5v{@q zZWs?W^W&wSB=`I7Lk!FHSnHY(KW{S8>81)#?gB`mv{*>pY!&qULf=-LoAsR?~$qa8`ieu$EkGg=D zO2)Q1)E~~>%)A3)CyKB#$Vp^_nF^eH4+bJ^<+yD!y$^8;s;jHbP4WktHohXYZyaMb zSM3*SWn(wxIm0#?`B)XWAzhdmP-Hi9Gbv}l9Y%y!80BEJ9nw-j1H+8e)qg(5GjhLK z1kMNb;735T|0$Isn_b+|8p0~31e30?YWW{mF^NfwZ`@rm9!rzzdpXfHcmfsA^SWq? z_2}VQurG+SFfjo>9uB;G9q63j^lb^l%u>+I#vnrDvXYHeh81XH5+^2|?tbL4*cEm10E#aNOSy+hlMPBzf)VcHCzQu^7s zz;Oh3RLiTiw-WD|-gk~oq7_GJ)63wBl_INBA<9ryKj{5BkrG+4;oS0|VWbKd(J{a#rNF(D&4-9nNo%x63M5Jg`+OCQzt+E&LB1vE>_E)V6o*# z?>WHwgHS#@gGENEmVckZNbF6wM~Zo(q4wjRCpM@|1?Eypg9DoEU@Y>Dp~ZYe<*?GF zc5kIE_o9q@^~+I$M|We)!CUbxfkzQG_6WJ^4JPk*|g@U9`zF z{W}1eaD%sas+j-D5YYFLmBO@kxF(^dIIwBu`Wd#FY~`8hnUa2}n9xW_xLJfn1Pt>M z7EASSu)nmu^>@_tN-dqZ$9mK!{8C4bCY$`iUlKMJmCb}XZeDJ218O}Ty zh@JYh!K3ZqP=4AJX^U95O513fE|8C}RMx#MJK0GbV3(hKtULqZ@xHIbKl__ebjxW@ z>|t~}`!{plkI8ZHTISB1ttS|*a{!qPa_u@ls{$z3vOpoj@JQHDwiRSbQ1Ll*wjGh` zQ4CpMysNr%hbzD#KQyIoX4S-HwN?%~tBENtjEhZfyF8-lD}0KNN|POt{|m=}h$=8J z5V&5J>#UWntO{=q=@fMhu1|$@GeNYRpC{#M#4Z`u$UxSEO&YwZQWL&JDlo8COXKc> zSDChb4?LGmvYyT^%C0W#FVl-xQ5DPlZjj`=1$h9S?2el2$i!|8X)4&H<}6LwZ4fE! zT6?vK6z^fO=kLC_58j-vm@4?lw!S$|S5U~&0poP_vw0EHWAJQolD@89s2W`b2?0&k z$p;%eL#i;Tl@@oDq~QAOEd_ESA#{;ALFBe^MS9^^clK-f zmEm+|Lmnc2W&0o3k7NCl#jif>e)|u?7uzYyFD~@M=83FEIBXTxY>y`Mo!IKUs4pwQbaBfb}?73rG9y+qaw5>mZd32M-U* z5wuS-{Cw1OQB1o~W7dJ(b)EjUeho}$dJjs7m(45fYRtKLo>G2gsWvtnV_;xVV2A2m zfxluY^+;@xoFA_ak5KEa+lL$XzxUGP_5t2`bTt0rB6{Rxdosh4UluU*a03KZ;r<4{m($*R7nCsDS6Ec9`6xy>w6e5Tf<3FdWyX zQm20{RE~kSs44=e1kT|8^8{&VY47N}I*}v6upKb9QUa!2i2eOxh;_w(Et%=~=qR6p zsmspdHQN&JY<1_@YW;xH%er4+(0Cmx)K{D>>h{(c%or2V$As5h0Dxl0lEDnEdH!&o zH$8_R&i!V8VVak(*m$6@kjWrk?sfqfOz10E1}CPiI#8+RgG%_?v(U#Rx(Zpy{cKuk zI(hX1m}~$77KFla%e0xW`6k~eMhcZUs~g1l1zlvmLqb6}t91R|%s$qsG~u`>ipYxL z$75ipnAM8X39*FP_#PvMQ^I>h;OP?T4*Ph&Vq0BgVEd|u#(!K_~aPjvsd$rQwJt}d2mF}%t%h@6B zIK#=k!A7U4#NTC1E&t1EaKK_>;@QVVyL;?g7STw0n;S`CEE*d>#|yT3v^S)mr`_9{ zdWC6i1RZN3hzjaw{2`z{K{XIi(7zSAGeAbPS>N$FcT?^cO{xCtn`K3TwdHrh7(e+r zGVa*g`*o^}fA9*-V7I`cd=!b)b9wFX5na)1PtVXWlYuS`59P&m0=>+kfVQVY3)E#b z&7t)LW})Meq*hsCc&X`bfbooiosJI5Mb#p=*b~ybanhoh8I+UiGCm+Qyf0l7lQiy2 zr@tUW2h0n@^zHZZYZi>zYLuB|=l2-plAjfGQ$FRIF-?>&@+#7HB(wP`MlUo*-p}g7 z9L9@rFVfS$l445$Zv04RUnzO2Nx;3?V_f_!W<`y)OS<*WX4C?gv|*7khlRjHYZDKE zez`t2#fmSmO;>0+(Gi(jp5%fp_7RR;xB$bZfJ*o{ZRX%+?R$e(yz@(HwA{fTmRRHH zh~~oUZ~vKU$3aP>9Id%^b?bnV+We}YW&+Ty)C{f+yBDe{*6zKF!wQ^ZxeTVXQ~Fr4 zM0{nYGY!72skh2Z!YQ2V4#18V?#@eW9Aa4`?zIP-eyBASmfo(R5)WgQm8y;8VKRMt zfpBEJayOzV8{2zR`<9xB3C3yq^)>tOy+3vNwG4D$b+6e-m*rX z!7JzAk|*o0^rDU2Hm>F2}dJu2nAWo`f%-@p7rs7U8?(?mA{z zeF_lP2(;~SJp47ve@uFb1wFfX&@qI~fPk%u0^kK!w zU{-kL581CyFxsrsH&S>5b@|d#Ndr{8R`YI34|7a5+SX^3r-39!3e+KJld z?ii1ve+S&%Y0O4>O-b5Cva9PWLt@Z6pd<_9%}64jEVg2dir8VI$9Ax@cM9PJjJq?@ zJZ#kg?cU}l!B}Z%>Gxexu*1;0nKVSvqm5Grdg|t$B?Z%2r^f89WEbi;y$Q7@DK{T7 zLn)Rw!F|W48U574?J%OBjZ^#JL;H)oSL-6q3(tG=5X$n3k%T2kCp1|6zFNa)WsrsV zW6vF?kb$r^s}$47=QXB*&Ye~Q$SE>pAHKYPAd=Wz?%>7-%9t`{JzcZ;Q=JgpPmhm? zDc|QaP%@VCs@Soc(7du z$KWpKhl{|5=+T3lvqfd4SY#?MW{kzMa71xeODkDj-m8XhKOD3k1nm(s#jvHJ(n~n8 z*b6xK1>p$qV^XVDTYZz%qLFAP^@lRu5A_e8RO{DD+q}&rGF}|NcPR_+fI=`R9I%+k zw3y-7k(ttF-vNQtl(Z@sna=L`#fb0vzqIV`ic(e3+mx;ps%NdoKSmcVX~qSPacPg< zCCr!_{)6HHP`H$7K|sPLT-O{vnkTVgjrCRoNwy=mT_I_^|2zovFYYY&WXkEjOh{&T zPMF}kzce5p5E!AXjU7!P;5?Ea_-u`ij9p$uZzcGpFRs}Jm{cG~^!Q$)l5k|C7K0?M zX{rXB4WK+O+Y__A|D@qhHm|kUdLhMW)|)|t0z4m@yN(z9pt}@eP-JWN&j$q3tBs9n zUY~+d`W)TDQ=jk*?~ff~&uOJIRl45?Omr^z(Zud%oA0i8Pq?M6umxkkw9i zVnz~%oEH8Jxl%QWyI*R@XhB6S|ousG_U7)6#tpEWF{kN_3z+z&uJSSbhcWQ~uu zXBJzHxwumyJlY>m1#-i~<%GL*;ChAr&h;3lJMwd^HM5agwpi&ET<{-sl*7!_Qru$Q z{#|`4OS3b%_CQUXsg>;Cy^opLMqj;!xgUJptIX2dB^Cjxy@KD%w#q-C=@^39$ z9p^D62J_bBl2K5}pxY!;q78!M>C>IV)wQmhh`8{x7nkMw)>qP>zZh~B^s$e@OY-s( zhhLE%(>GzI1h@R5k&xzlGV*fMhM#UNI-T3}tGkeCWVs6-Kb_{tC-#rus}>tUtPnI` zqhovbA=P7AI-#r_nps6=z|b9{rIg4nkQ=L=Y_6gn`=){9o|;rGo( z{^zIBO_X}3pJp|@7xlF1LhQd-y!@5{ZBq;T)@5BhT7~C6h|d+rE+G)FoG*0F;?6@& zdFuX$k1pV)xbr4zbBiUElYQN_wA52EM^@fb1X<8XRmWhH@yN3lUV6o!d+y8a3gLo3 zv+ZH-9sOtr6v!(?-AcJlJiVwUFwRx@z9H{uP+x@RK)iCeBOlueRPtbT{n-T zaR2t;^sXrBMZjpFMH=Uo^(8RR=vBW|qm^*qja$*HGO3<;c!h7{pw91qQm9ojO7sN+ zmznLO%%Yadn8~V|_4#P_GwQ8`+t8K>LB`ZȎ`0{{8;V)xE8d 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 Uebi^|bMU67q^(#fZyWmm08%v8>i_@% delta 45527 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 delta 97272 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 diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/professional_sidebar-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/professional_sidebar-page-0.png index 2d4d701359eca7e7f9c8085a4a1475c2eeb0e480..bc1d27f317634cf6d5c68231b05f58cdd44c34bf 100644 GIT binary patch delta 21394 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 fKD$l=d6392jAWd;u6Svvbhf4!a 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 R2%HIgY%CniU!3(x`WMvqeChxI diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/serif_headline-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/serif_headline-page-0.png index b9dab2b906878eddcb1b4b44e96ccfbafa82c8f0..8ec07cfc10af8d53a3963ee71b8e05e580de9cdc 100644 GIT binary patch delta 92813 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 delta 92912 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

      f=H%N{qUh)0?2vmJZcXN+ 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

      A node's box is recorded where the flow stands when the node is compiled, and its + * children are placed afterwards. When the first thing inside it cannot start in the space + * left — because it asked to be kept whole, or because it is indivisible and too tall — the + * child moves to the next page and the box is left spanning a page it holds nothing on. Every + * consumer of that box then believes it: a section's accent border paints a stub at the foot of + * the page beside nothing at all, and anything deriving an extent from the box, a timeline's + * rail included, runs down to the bottom margin.

      + * + *

      So the box has to open where its first indivisible unit can actually start. That is the + * same rule {@code keepTogether()} already applies to a whole node, asked of its leading unit + * instead — and it fires only in the case that was broken, because a box whose first unit does + * fit is unaffected.

      + * + *

      The last test is the other half of the contract: a box whose content genuinely does span + * pages must keep a slice on every one of them. The rule must not turn a real span into a + * relocation.

      + */ +class BoxExtentAcrossPagesTest { + + private static final DocumentColor EDGE = DocumentColor.rgb(200, 60, 60); + + @Test + void aBoxDoesNotOpenOnAPageItsFirstUnitCannotStartOn() throws Exception { + LayoutGraph graph = hostWhoseChildIsKeptWhole(); + + PlacedNode host = node(graph, "Host"); + assertThat(host.startPage()) + .as("the host opens where its content is, not where the flow happened to stand") + .isEqualTo(1); + assertThat(host.endPage()) + .as("and it does not span a page it holds nothing on") + .isEqualTo(1); + + // The border is the visible half of it: two slices means a stub painted at the foot + // of page 0 with no content beside it. + assertThat(fragments(graph, "Host")) + .as("one slice, on the page the content reached") + .hasSize(1); + assertThat(fragments(graph, "Host").get(0).pageIndex()).isEqualTo(1); + } + + @Test + void theChildStillLandsWhereItDidAndNothingIsLost() throws Exception { + // The fix moves the box, not the content: the child was already on page 1. + LayoutGraph graph = hostWhoseChildIsKeptWhole(); + PlacedNode child = node(graph, "KeptWhole"); + assertThat(child.startPage()).isEqualTo(1); + assertThat(child.endPage()).isEqualTo(1); + assertThat(graph.totalPages()).isEqualTo(2); + } + + @Test + void aBoxWhoseContentGenuinelySpansKeepsASliceOnEveryPage() throws Exception { + // The other half of the contract. Nothing here asks to be kept whole and the + // content is splittable, so the host really does cross the boundary and has to + // keep saying so on both pages. + LayoutGraph graph; + try (DocumentSession session = GraphCompose.document() + .pageSize(320, 220).margin(DocumentInsets.of(20)).create()) { + PageFlowBuilder flow = session.pageFlow(); + flow.addSection("Filler", block -> { + for (int i = 0; i < 8; i++) { + block.addParagraph(p -> p.text("Filler line.").margin(DocumentInsets.zero())); + } + }); + flow.addSection("Spanner", block -> { + block.accentLeft(EDGE, 1.5); + for (int i = 0; i < 12; i++) { + block.addParagraph(p -> p.text("Spanning line.").margin(DocumentInsets.zero())); + } + }); + flow.build(); + graph = session.layoutGraph(); + } + + PlacedNode spanner = node(graph, "Spanner"); + assertThat(spanner.startPage()).as("it starts where the flow stood").isEqualTo(0); + assertThat(spanner.endPage()).as("and genuinely crosses").isEqualTo(1); + assertThat(fragments(graph, "Spanner")) + .as("a slice on each page it crosses, so the border draws on both") + .hasSize(2); + } + + /** A bordered host with no keep-together of its own, holding one child that has it. */ + private static LayoutGraph hostWhoseChildIsKeptWhole() throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(320, 220).margin(DocumentInsets.of(20)).create()) { + PageFlowBuilder flow = session.pageFlow(); + flow.addSection("Filler", block -> { + for (int i = 0; i < 12; i++) { + block.addParagraph(p -> p.text("Filler line.").margin(DocumentInsets.zero())); + } + }); + flow.addSection("Host", block -> { + block.accentLeft(EDGE, 1.5); + block.addSection("KeptWhole", inner -> { + inner.keepTogether(); + for (int i = 0; i < 4; i++) { + inner.addParagraph(p -> p.text("Inner line.") + .margin(DocumentInsets.zero())); + } + }); + }); + flow.build(); + return session.layoutGraph(); + } + } + + private static PlacedNode node(LayoutGraph graph, String name) { + return graph.nodes().stream() + .filter(n -> name.equals(n.semanticName())) + .findFirst().orElseThrow(() -> new AssertionError("no node named " + name)); + } + + private static List fragments(LayoutGraph graph, String name) { + return graph.fragments().stream() + .filter(f -> f.path() != null && f.path().endsWith(name + "[1]")) + .toList(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/dsl/SectionKeepTogetherTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/SectionKeepTogetherTest.java index 8027761df..f815c34c3 100644 --- a/qa/src/test/java/com/demcha/compose/document/dsl/SectionKeepTogetherTest.java +++ b/qa/src/test/java/com/demcha/compose/document/dsl/SectionKeepTogetherTest.java @@ -126,10 +126,15 @@ void keepTogetherSectionTallerThanAPageStillFlows() { PlacedNode oversized = document.layoutGraph().nodes().stream() .filter(n -> "Oversized".equals(n.semanticName())) .findFirst().orElseThrow(); - // The keep-together request is ignored for a block taller than a - // full page: the section starts in the remaining space on page 0 - // (no pointless relocation) and flows across the boundary. - assertThat(oversized.startPage()).isEqualTo(0); + // The keep-together request is ignored for a block taller than a full + // page: the section cannot relocate whole, so it flows across the + // boundary. What it does NOT do is claim page 0. Its first child is a + // 100pt shape and 98pt remain there, so nothing of it was ever going on + // that page — measured either way, all five shapes sit at the same y on + // pages 1 and 2 and the document is three pages long. Starting the box + // on page 0 only made it span a page it held nothing on, which is what + // painted a section's accent beside empty space. + assertThat(oversized.startPage()).isEqualTo(1); assertThat(oversized.endPage()).isGreaterThan(oversized.startPage()); } catch (Exception e) { throw new RuntimeException(e); diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/northline_proposal_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/northline_proposal_layout.json index 629dd3f5a..7c0c4fc6a 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/northline_proposal_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/northline_proposal_layout.json @@ -3292,12 +3292,12 @@ "depth" : 2, "layer" : 2, "computedX" : 36.0, - "computedY" : 6.539, + "computedY" : 775.89, "placementX" : 36.0, - "placementY" : 6.539, + "placementY" : 775.89, "placementWidth" : 523.276, "placementHeight" : 58.0, - "startPage" : 0, + "startPage" : 1, "endPage" : 1, "contentWidth" : 523.276, "contentHeight" : 58.0, diff --git a/qa/src/test/resources/layout-snapshots/document/timeline_paginated.json b/qa/src/test/resources/layout-snapshots/document/timeline_paginated.json index a5d3b88f4..16d51f16e 100644 --- a/qa/src/test/resources/layout-snapshots/document/timeline_paginated.json +++ b/qa/src/test/resources/layout-snapshots/document/timeline_paginated.json @@ -472,12 +472,12 @@ "depth" : 3, "layer" : 3, "computedX" : 20.0, - "computedY" : -10.35, + "computedY" : 117.175, "placementX" : 20.0, - "placementY" : -10.35, + "placementY" : 117.175, "placementWidth" : 280.0, "placementHeight" : 32.825, - "startPage" : 0, + "startPage" : 1, "endPage" : 1, "contentWidth" : 280.0, "contentHeight" : 32.825, @@ -502,12 +502,12 @@ "depth" : 4, "layer" : 4, "computedX" : 20.0, - "computedY" : -10.35, + "computedY" : 117.175, "placementX" : 20.0, - "placementY" : -10.35, + "placementY" : 117.175, "placementWidth" : 280.0, "placementHeight" : 32.825, - "startPage" : 0, + "startPage" : 1, "endPage" : 1, "contentWidth" : 280.0, "contentHeight" : 32.825, diff --git a/qa/src/test/resources/layout-snapshots/fonts/available_fonts_preview.json b/qa/src/test/resources/layout-snapshots/fonts/available_fonts_preview.json index 0d3555d48..e6f84bbc9 100644 --- a/qa/src/test/resources/layout-snapshots/fonts/available_fonts_preview.json +++ b/qa/src/test/resources/layout-snapshots/fonts/available_fonts_preview.json @@ -1372,12 +1372,12 @@ "depth" : 2, "layer" : 2, "computedX" : 28.0, - "computedY" : -43.554, + "computedY" : 736.466, "placementX" : 28.0, - "placementY" : -43.554, + "placementY" : 736.466, "placementWidth" : 350.306, "placementHeight" : 77.424, - "startPage" : 0, + "startPage" : 1, "endPage" : 1, "contentWidth" : 350.306, "contentHeight" : 77.424, From 741054a000bad9d40915659f063fc71f0ce025ce Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 15:15:58 +0100 Subject: [PATCH 71/85] feat(timeline): give the gap before the marker its own number A three-column timeline could not be asked for what it looks like. A row spaces every pair of its columns equally, so with one gap the leading width was not the author's to choose: writing x0 for where the columns start, L for the leading width and A for the axis, one gap s puts the rail at x0 + L + s + A/2 and the content at x0 + L + 2s + A, and subtracting them leaves L = (rail - x0) - (s + A/2). Whatever A and s are given, L is decided by where the rail and the content sit. A dated timeline states all three - where the dates are, where the rail is, where the copy starts - and could have any two of them. Measured on a real one the date column came out 55.860pt against a longest date of 57.005 and broke "2022 - Present" over two lines. Neither cheaper fix works, and both were ruled out by the same arithmetic rather than by trying them: padding the leading column only narrows what goes in it, and widening the axis re-pins L to the same number. leadingGap(double) is the one degree of freedom that was missing. The three columns become [leading][leadingGap][axis][markerGap][content] with the row spacing nothing, so no row API changed and each gap is a column of its own. It also leaves markerGap meaning what its javadoc has always said it means - "the horizontal gap between the marker and the entry title" - rather than a number silently applied on both sides of the marker. Unset, leadingGap is markerGap, and that is the single-gap layout exactly: fixed columns take their width either way and the weighted remainder is the same subtraction in a different order. Measured rather than asserted - on charcoal_gold, the only three-column timeline in the repository, 234 named nodes before and 234 after and NOT ONE of them moved. What does change is the node tree: two empty gap sections per entry, 266 nodes to 272 there and 55 to 63 in the leading-column case, so both snapshots are re-recorded for structure with zero geometry behind it. Three tests that asserted a column count of three now say five and keep what they were each pinning - columns aligned across entries, the leading column present even when an entry puts nothing in it, the content-bearing columns distinct and in order. leadingColumn, axisWidth, markerOnRail and rail are all @since 2.4.0 and unreleased, so the three-column layout had no released behaviour to preserve. markerGap, gutter and markerColumnWeight predate them and the two-column layout is untouched by construction - it still shares one gap, and asking for a leading gap without a leading column changes nothing. Five tests in TimelineColumnModelTest: the single-gap formulae pinned as the compatibility case, two leading widths proven to give the same rail and content, the wrap that a too-narrow leading column causes and a wide one does not, the two-column row, and a weighted leading column still resolving against the row. Sabotaged by pinning leadingGap to markerGap: exactly the two capability tests go red and the three compatibility ones stay green. --- CHANGELOG.md | 20 + .../compose/document/dsl/TimelineBuilder.java | 62 ++- .../compose/document/dsl/TimelineSpec.java | 3 + .../document/dsl/TimelineBuilderTest.java | 30 +- knowledge/api/authoring.json | 16 +- knowledge/api/authoring.md | 3 +- .../document/api/TimelineColumnModelTest.java | 226 +++++++++++ .../api/TimelineLeadingColumnLayoutTest.java | 10 +- .../cv-v2/charcoal_gold_layout.json | 288 +++++++++++--- .../document/timeline_leading_column.json | 352 +++++++++++++++--- 10 files changed, 880 insertions(+), 130 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/api/TimelineColumnModelTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cbc6c1ca..bb08d106d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -422,6 +422,26 @@ follow semantic versioning; release dates are ISO 8601. row and both align exactly. Leading content without a declared column throws too, naming the call to add, rather than inventing a width per entry. +- **The gap before a timeline's marker is its own number.** + `TimelineBuilder.leadingGap(double)` sets the space between the leading column and the + marker, leaving `markerGap` to mean what it already says it means — the gap between the + marker and the content beside it. + + With one number for both, a three-column timeline could not be asked for what it looks + like. A row spaces every pair of its columns equally, so writing `x0` for where the + columns start, `L` for the leading width and `A` for the axis, one gap `s` puts the rail + at `x0 + L + s + A/2` and the content at `x0 + L + 2s + A`. Subtract them and + `L = (rail − x0) − (s + A/2)`: the leading width is decided by where the rail and the + content sit, whatever `A` and `s` are given. A dated timeline states all three — where + the dates are, where the rail is, where the copy starts — and could have any two. + Measured on a real one, the date column came out 55.860pt against a longest date of + 57.005 and broke `2022 - Present` across two lines; padding the column only narrows what + goes in it, and widening the axis re-pins the same number. + + With the gaps separate the leading width is the caller's and the gap absorbs the + difference. Unset, `leadingGap` is `markerGap`, which is the single-gap layout exactly — + so a timeline that does not ask for it is laid out as before, snapshots included. + - **A timeline entry can fill its own content column.** `TimelineBuilder.entry(Consumer)` is a longer form of the existing `entry(marker, ...)` that takes its marker from `TimelineEntryBuilder.marker(...)` inside diff --git a/core/src/main/java/com/demcha/compose/document/dsl/TimelineBuilder.java b/core/src/main/java/com/demcha/compose/document/dsl/TimelineBuilder.java index 1d2914df5..3258ac1ee 100644 --- a/core/src/main/java/com/demcha/compose/document/dsl/TimelineBuilder.java +++ b/core/src/main/java/com/demcha/compose/document/dsl/TimelineBuilder.java @@ -65,6 +65,8 @@ public final class TimelineBuilder { private TimelineMarkerAnchor markerAnchor; private double gutter = 8.0; private double markerGap = 8.0; + /** Unset until asked for, because unset means "the same as the marker gap". */ + private Double leadingGap; private TimelineAxisSize axis = new TimelineAxisSize.Weight(0.10); private String axisDeclaredBy; private DocumentRowColumn leadingColumn; @@ -234,6 +236,34 @@ public TimelineBuilder markerGap(double gap) { return this; } + /** + * Sets the horizontal gap between the leading column and the marker. + * + *

      Without this the gaps either side of the marker column are one number, and that + * over-constrains a three-column timeline. Writing {@code x0} for where the columns + * start, {@code L} for the leading width and {@code A} for the axis, one gap {@code s} + * puts the rail at {@code x0 + L + s + A/2} and the content at {@code x0 + L + 2s + A}; + * subtract them and {@code L = (rail − x0) − (s + A/2)}. The leading width is then + * decided by where the rail and the content sit, whatever {@code A} and {@code s} are + * given — so a design stating all three, as a dated timeline does, cannot have them. + * Nor can it recover them by padding the leading column, which only narrows what goes + * inside it, or by widening the axis, which re-pins {@code L} to the same number.

      + * + *

      With the two gaps separate, {@code L} is the caller's and this absorbs the + * difference. Unset, it is {@link #markerGap(double)} — which is the single-gap layout + * exactly, so a timeline that does not ask for this is laid out as it was.

      + * + * @param gap gap in points; negative values are ignored + * @return this builder + * @since 2.4.0 + */ + public TimelineBuilder leadingGap(double gap) { + if (gap >= 0) { + this.leadingGap = gap; + } + return this; + } + /** * Sets the relative width of the marker column (its weight against a content * weight of 1.0). Increase it for large numbered discs on narrow timelines. @@ -483,9 +513,12 @@ private TimelineSpec normalize() { // and it is the same model the opted-in one uses, not a branch beside it. TimelineMarkerAnchor anchor = markerAnchor == null ? TimelineMarkerAnchor.atLeftEdge(gutter) : markerAnchor; + // Unset resolves to the marker gap, which is the single-gap layout the two columns + // either side of the axis have always shared. + double resolvedLeadingGap = leadingGap == null ? markerGap : leadingGap; return new TimelineSpec(new TimelineRailOwner(railSpec, railExtent, anchor), - railSpec, leadingColumn, gutter, markerGap, axis, anchor, entrySpacing, - keepTogether, keepEntriesTogether, List.copyOf(specs)); + railSpec, leadingColumn, resolvedLeadingGap, gutter, markerGap, axis, anchor, + entrySpacing, keepTogether, keepEntriesTogether, List.copyOf(specs)); } /** @@ -502,7 +535,9 @@ private static void layout(TimelineSpec spec, SectionBuilder timeline) { // only when the rail moved into the axis; with the rail beside it the body spans the // entry as it always has, and the header row publishes nothing. boolean bodyClearsTheAxis = spec.markerAnchor().railRunsThroughTheAxis(); - int contentColumn = spec.leadingColumn() == null ? 1 : 2; + // [axis][content] with no leading column; [leading][gap][axis][gap][content] with + // one, because the two gaps are columns rather than one row spacing. + int contentColumn = spec.leadingColumn() == null ? 1 : 4; List entries = spec.entries(); for (int i = 0; i < entries.size(); i++) { TimelineEntrySpec entry = entries.get(i); @@ -524,7 +559,6 @@ private static void layout(TimelineSpec spec, SectionBuilder timeline) { .padding(new DocumentInsets(0, 0, bottom, spec.gutter())) .spacing(4); Consumer headerSpec = header -> { - header.spacing(spec.markerGap()); DocumentRowColumn axis = column(spec.axis()); if (spec.leadingColumn() == null && spec.axis() instanceof TimelineAxisSize.Weight weight) { // The same two columns either way — columns(weight, weight) resolves @@ -532,17 +566,35 @@ private static void layout(TimelineSpec spec, SectionBuilder timeline) { // weights(...) is what a timeline has always put on its RowNode, and // RowNode.weights() is public; spelling it the other way empties that // list for every timeline that exists. Sugar where the sugar applies. + header.spacing(spec.markerGap()); header.weights(weight.weight(), 1.0); } else if (spec.leadingColumn() == null) { + header.spacing(spec.markerGap()); header.columns(axis, DocumentRowColumn.weight(1.0)); } else { - header.columns(spec.leadingColumn(), axis, DocumentRowColumn.weight(1.0)); + // Three columns need two gaps, and a row spaces every pair of its + // columns by one number — which is what tied the leading width to + // the rail and content positions. So the gaps are columns of their + // own and the row spaces nothing. With leadingGap defaulting to + // markerGap this resolves to the same widths the single spacing + // gave: fixed columns take their width either way, and the weighted + // remainder is the same subtraction in a different order. + header.spacing(0.0); + header.columns(spec.leadingColumn(), + DocumentRowColumn.fixed(spec.leadingGap()), + axis, + DocumentRowColumn.fixed(spec.markerGap()), + DocumentRowColumn.weight(1.0)); // Present even when this entry put nothing in it: the column is the // timeline's, not the entry's, and an entry that skipped it must // still start its marker where every other entry starts one. header.addSection(entry.leading() == null ? column -> { } : entry.leading()); + header.addSection(column -> { }); } header.addSection(anchoredMarker(spec, entry, index)); + if (spec.leadingColumn() != null) { + header.addSection(column -> { }); + } header.addSection(entry.beside()); }; diff --git a/core/src/main/java/com/demcha/compose/document/dsl/TimelineSpec.java b/core/src/main/java/com/demcha/compose/document/dsl/TimelineSpec.java index eefe9b6c9..3f8f613bd 100644 --- a/core/src/main/java/com/demcha/compose/document/dsl/TimelineSpec.java +++ b/core/src/main/java/com/demcha/compose/document/dsl/TimelineSpec.java @@ -18,6 +18,8 @@ * @param rail the connector rail * @param leadingColumn how wide the column before the marker is, or null when the * timeline has no leading column at all + * @param leadingGap horizontal gap between the leading column and the marker + * column; carries no meaning without a leading column * @param gutter space between the rail and the entry's content * @param markerGap horizontal gap between the marker column and the content * beside it @@ -32,6 +34,7 @@ record TimelineSpec(TimelineRailOwner owner, TimelineRailSpec rail, DocumentRowColumn leadingColumn, + double leadingGap, double gutter, double markerGap, TimelineAxisSize axis, diff --git a/core/src/test/java/com/demcha/compose/document/dsl/TimelineBuilderTest.java b/core/src/test/java/com/demcha/compose/document/dsl/TimelineBuilderTest.java index 3a2967a7f..43f60460f 100644 --- a/core/src/test/java/com/demcha/compose/document/dsl/TimelineBuilderTest.java +++ b/core/src/test/java/com/demcha/compose/document/dsl/TimelineBuilderTest.java @@ -547,7 +547,7 @@ void axisWidthTakesOnlyAPositiveFiniteNumberOfPoints() { // --- the leading column -------------------------------------------------- @Test - void aLeadingColumnPutsAThirdColumnBeforeTheMarker() { + void aLeadingColumnPutsTheLeadingContentBeforeTheMarker() { SectionNode timeline = timelineOf(t -> t .leadingColumn(DocumentRowColumn.fixed(48)) .entry(e -> e @@ -555,15 +555,24 @@ void aLeadingColumnPutsAThirdColumnBeforeTheMarker() { .leading(date -> date.addParagraph("2023")) .title("Senior Engineer"))); + // Five columns, because each gap beside the marker is a column of its own: a row + // spaces every pair of its columns by one number, and two gaps that have to differ + // cannot both be that number. Indices 1 and 3 are those gaps and hold nothing. RowNode header = header(entry(timeline, 0)); - assertThat(header.children()).hasSize(3); + assertThat(header.children()).hasSize(5); assertThat(paragraphTexts(header.children().get(0))) .as("leading first, before the marker") .containsExactly("2023"); - assertThat(markerContent(header.children().get(1))) - .as("then the marker") + assertThat(markerContent(header.children().get(2))) + .as("then the marker, a gap after the leading") .isInstanceOf(EllipseNode.class); - assertThat(paragraphTexts(header.children().get(2))).containsExactly("Senior Engineer"); + assertThat(paragraphTexts(header.children().get(4))) + .as("and the content, a gap after the marker") + .containsExactly("Senior Engineer"); + assertThat(paragraphTexts(header.children().get(1))) + .as("the gaps carry nothing") + .isEmpty(); + assertThat(paragraphTexts(header.children().get(3))).isEmpty(); } @Test @@ -576,15 +585,16 @@ void anEntryWithNoLeadingContentStillGetsTheColumn() { .leading(date -> date.addParagraph("2023")).title("With")) .entry(e -> e.marker(TimelineMarker.dot(8, NAVY)).title("Without"))); + RowNode withLeading = header(entry(timeline, 0)); RowNode withoutLeading = header(entry(timeline, 1)); assertThat(withoutLeading.children()) - .as("three columns either way") - .hasSize(3); + .as("the same columns either way") + .hasSameSizeAs(withLeading.children()); assertThat(paragraphTexts(withoutLeading.children().get(0))) - .as("the first is simply empty") + .as("the leading one is simply empty") .isEmpty(); - assertThat(markerContent(withoutLeading.children().get(1))) - .as("so the marker is still the second column, as in the entry above") + assertThat(markerContent(withoutLeading.children().get(2))) + .as("so the marker is in the column it is in above, and they line up") .isInstanceOf(EllipseNode.class); } diff --git a/knowledge/api/authoring.json b/knowledge/api/authoring.json index 10a85a758..eeb9c172a 100644 --- a/knowledge/api/authoring.json +++ b/knowledge/api/authoring.json @@ -23,7 +23,7 @@ ], "counts": { "types": 237, - "methods": 2107, + "methods": 2108, "constants": 237, "generated": 1126 }, @@ -15106,6 +15106,20 @@ } ] }, + { + "kind": "method", + "name": "leadingGap", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [ + { + "type": "double", + "name": "gap" + } + ] + }, { "kind": "method", "name": "markerColumnWeight", diff --git a/knowledge/api/authoring.md b/knowledge/api/authoring.md index e531a52b1..3647ab55c 100644 --- a/knowledge/api/authoring.md +++ b/knowledge/api/authoring.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 237 · methods: 2107 · constants: 237 · compiler-generated members: 1126 +Types: 237 · methods: 2108 · constants: 237 · compiler-generated members: 1126 ## com.demcha.compose @@ -1128,6 +1128,7 @@ Types: 237 · methods: 2107 · constants: 237 · compiler-generated members: 112 - `TimelineBuilder markerOnRail()` - `TimelineBuilder gutter(double gutter)` - `TimelineBuilder markerGap(double gap)` +- `TimelineBuilder leadingGap(double gap)` - `TimelineBuilder markerColumnWeight(double weight)` - `TimelineBuilder axisWidth(double points)` - `TimelineBuilder leadingColumn(DocumentRowColumn column)` diff --git a/qa/src/test/java/com/demcha/compose/document/api/TimelineColumnModelTest.java b/qa/src/test/java/com/demcha/compose/document/api/TimelineColumnModelTest.java new file mode 100644 index 000000000..e4ae5b69e --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/api/TimelineColumnModelTest.java @@ -0,0 +1,226 @@ +package com.demcha.compose.document.api; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.dsl.TimelineBuilder; +import com.demcha.compose.document.dsl.TimelineMarker; +import com.demcha.compose.document.layout.LayoutGraph; +import com.demcha.compose.document.layout.PlacedFragment; +import com.demcha.compose.document.layout.PlacedNode; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import org.junit.jupiter.api.Test; + +import java.util.function.Consumer; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.within; + +/** + * What a three-column timeline can and cannot be asked for. + * + *

      A row spaces every pair of its columns by one number. With a leading column that made + * three columns share two gaps of the same size, and the arithmetic then decided the leading + * width for the author: writing {@code x0} for where the columns start, {@code L} for the + * leading width and {@code A} for the axis, one gap {@code s} puts the rail at + * {@code x0 + L + s + A/2} and the content at {@code x0 + L + 2s + A}, so + * {@code L = (rail − x0) − (s + A/2)} whatever {@code A} and {@code s} are. A design that + * states where its dates are, where its rail is and where its copy starts — which is what a + * dated timeline is — could not have all three.

      + * + *

      The gaps are separate now, so {@code L} is the caller's. Unset, the leading gap is the + * marker gap and the layout is the one-gap layout exactly, which is the first thing below.

      + */ +class TimelineColumnModelTest { + + private static final DocumentColor RAIL = DocumentColor.rgb(150, 158, 172); + private static final DocumentColor INK = DocumentColor.rgb(20, 40, 70); + private static final double MARGIN = 20.0; + private static final double AXIS = 10.0; + + @Test + void unsetTheLeadingGapIsTheMarkerGapAndNothingMoved() throws Exception { + // The compatibility half. x0 is the page margin plus the gutter, and with one gap + // the two positions are the formulae above — so this pins the layout a three-column + // timeline had before there were two gaps. + double gutter = 6.0; + double leading = 40.0; + double gap = 9.0; + LayoutGraph graph = timeline(t -> t + .markerOnRail() + .gutter(gutter) + .leadingColumn(DocumentRowColumn.fixed(leading)) + .axisWidth(AXIS) + .markerGap(gap)); + + double x0 = MARGIN + gutter; + assertThat(railX(graph)) + .as("rail at x0 + L + s + A/2") + .isEqualTo(x0 + leading + gap + AXIS / 2.0, within(1e-9)); + assertThat(node(graph, "Copy").placementX()) + .as("content at x0 + L + 2s + A") + .isEqualTo(x0 + leading + 2 * gap + AXIS, within(1e-9)); + } + + @Test + void theLeadingWidthIsFreeOnceTheTwoGapsAre() throws Exception { + // The capability, stated as the thing that was impossible: two different leading + // widths, the same rail and the same content start. Only the sum L + leadingGap is + // pinned by the geometry, so the author chooses how it is divided. + double gutter = 6.0; + double markerGap = 9.0; + LayoutGraph narrow = timeline(t -> t + .markerOnRail().gutter(gutter) + .leadingColumn(DocumentRowColumn.fixed(40.0)).leadingGap(19.0) + .axisWidth(AXIS).markerGap(markerGap)); + LayoutGraph wide = timeline(t -> t + .markerOnRail().gutter(gutter) + .leadingColumn(DocumentRowColumn.fixed(52.0)).leadingGap(7.0) + .axisWidth(AXIS).markerGap(markerGap)); + + assertThat(railX(wide)) + .as("a leading column 12pt wider, and the rail has not moved") + .isEqualTo(railX(narrow), within(1e-9)); + assertThat(node(wide, "Copy").placementX()) + .as("nor has the content") + .isEqualTo(node(narrow, "Copy").placementX(), within(1e-9)); + assertThat(node(wide, "Copy").placementWidth()) + .as("so the weighted content column measures the same too") + .isEqualTo(node(narrow, "Copy").placementWidth(), within(1e-9)); + } + + @Test + void theLeadingColumnIsTheWidthItsContentMeasuresAgainst() throws Exception { + // The point of wanting L free: what goes in the leading column has L to fit in. The + // same text in a column too narrow for it wraps to two lines and in a wide enough + // one does not — and that is the difference between a date set on one line and a + // date broken across two. + Consumer common = t -> t + .markerOnRail().gutter(6.0).axisWidth(AXIS).markerGap(9.0); + LayoutGraph tight = timeline(t -> { + common.accept(t); + t.leadingColumn(DocumentRowColumn.fixed(26.0)).leadingGap(33.0); + }); + LayoutGraph roomy = timeline(t -> { + common.accept(t); + t.leadingColumn(DocumentRowColumn.fixed(52.0)).leadingGap(7.0); + }); + + double oneLine = node(roomy, "Date").placementHeight(); + double twoLines = node(tight, "Date").placementHeight(); + assertThat(twoLines) + .as("the narrow column wraps the date, the wide one does not") + .isGreaterThan(oneLine * 1.5); + assertThat(railX(roomy)) + .as("and widening the column to stop that moved neither the rail") + .isEqualTo(railX(tight), within(1e-9)); + assertThat(node(roomy, "Copy").placementX()) + .as("nor the copy") + .isEqualTo(node(tight, "Copy").placementX(), within(1e-9)); + } + + @Test + void aTimelineWithNoLeadingColumnIsUntouched() throws Exception { + // Two columns share one gap and always did. This is the released layout and the + // leading gap has nothing to say about it. + double gutter = 6.0; + double gap = 9.0; + LayoutGraph plain = timelineWithoutLeading(t -> t + .markerOnRail().gutter(gutter).axisWidth(AXIS).markerGap(gap)); + LayoutGraph asked = timelineWithoutLeading(t -> t + .markerOnRail().gutter(gutter).axisWidth(AXIS).markerGap(gap).leadingGap(40.0)); + + double x0 = MARGIN + gutter; + assertThat(railX(plain)) + .as("rail at x0 + A/2") + .isEqualTo(x0 + AXIS / 2.0, within(1e-9)); + assertThat(railX(asked)) + .as("and a leading gap on a timeline with no leading column changes nothing") + .isEqualTo(railX(plain), within(1e-9)); + assertThat(node(asked, "Copy").placementX()) + .isEqualTo(node(plain, "Copy").placementX(), within(1e-9)); + } + + @Test + void aWeightedLeadingColumnStillResolvesAgainstTheRow() throws Exception { + // Fixed is what a measured design uses, but the column takes a weight too and the + // gaps must not stop it resolving: a weighted leading column plus two fixed gaps + // plus a fixed axis plus a weighted content share the row. + LayoutGraph graph = timeline(t -> t + .markerOnRail().gutter(6.0) + .leadingColumn(DocumentRowColumn.weight(0.25)).leadingGap(7.0) + .axisWidth(AXIS).markerGap(9.0)); + + PlacedNode copy = node(graph, "Copy"); + assertThat(node(graph, "Date").placementWidth()) + .as("the weighted leading column took a share of the row") + .isGreaterThan(0.0); + assertThat(copy.placementX()) + .as("and the content still starts right of the axis") + .isGreaterThan(railX(graph) + AXIS / 2.0); + assertThat(copy.placementWidth()).isGreaterThan(0.0); + } + + // --- helpers --------------------------------------------------------------- + + /** The rail's x, which is where the marker anchor put it. */ + private static double railX(LayoutGraph graph) { + return graph.fragments().stream() + .filter(f -> "@timeline-rail".equals(f.path())) + .mapToDouble(PlacedFragment::x) + .findFirst().orElseThrow(() -> new AssertionError("no rail")); + } + + private static PlacedNode node(LayoutGraph graph, String name) { + return graph.nodes().stream() + .filter(n -> name.equals(n.semanticName())) + .findFirst().orElseThrow(() -> new AssertionError("no node named " + name)); + } + + /** The same two entries with nothing in a leading column, which there isn't one of. */ + private static LayoutGraph timelineWithoutLeading(Consumer spec) + throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(320, 400).margin(DocumentInsets.of(MARGIN)).create()) { + session.pageFlow().addTimeline(t -> { + t.connector(RAIL, 1.5); + spec.accept(t); + t.entry(TimelineMarker.dot(8, INK), e -> e + .content(column -> column.addParagraph(p -> p + .name("Copy").text("The copy beside the marker.") + .margin(DocumentInsets.zero())))); + t.entry(TimelineMarker.dot(8, INK), e -> e + .content(column -> column.addParagraph(p -> p + .name("Copy2").text("More copy beside a marker.") + .margin(DocumentInsets.zero())))); + }).build(); + return session.layoutGraph(); + } + } + + /** Two entries, each with a named date in the leading column and named copy beside. */ + private static LayoutGraph timeline(Consumer spec) throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(320, 400).margin(DocumentInsets.of(MARGIN)).create()) { + session.pageFlow().addTimeline(t -> { + t.connector(RAIL, 1.5); + spec.accept(t); + t.entry(TimelineMarker.dot(8, INK), e -> e + .leading(column -> column.addParagraph(p -> p + .name("Date").text("2022 - Present") + .margin(DocumentInsets.zero()))) + .content(column -> column.addParagraph(p -> p + .name("Copy").text("The copy beside the marker.") + .margin(DocumentInsets.zero())))); + t.entry(TimelineMarker.dot(8, INK), e -> e + .leading(column -> column.addParagraph(p -> p + .name("Date2").text("2020 - 2022") + .margin(DocumentInsets.zero()))) + .content(column -> column.addParagraph(p -> p + .name("Copy2").text("More copy beside a marker.") + .margin(DocumentInsets.zero())))); + }).build(); + return session.layoutGraph(); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/api/TimelineLeadingColumnLayoutTest.java b/qa/src/test/java/com/demcha/compose/document/api/TimelineLeadingColumnLayoutTest.java index 6eb9cd399..67f2a7346 100644 --- a/qa/src/test/java/com/demcha/compose/document/api/TimelineLeadingColumnLayoutTest.java +++ b/qa/src/test/java/com/demcha/compose/document/api/TimelineLeadingColumnLayoutTest.java @@ -43,15 +43,19 @@ void everyEntrysColumnsStartAtTheSameXWhateverItsDateSays() throws Exception { LayoutGraph graph = timeline(DocumentRowColumn.fixed(56)); Map> byColumn = columnPositions(graph); - assertThat(byColumn).as("three columns, four entries").hasSize(3); + // Five columns: the leading one, the marker, the content, and a gap either side of + // the marker. Each gap is a column of its own because a row spaces every pair of + // its columns by one number, and the two gaps have to be free to differ. + assertThat(byColumn).as("five columns, four entries").hasSize(5); assertThat(byColumn.get(0)).as("every leading column").hasSize(4); byColumn.forEach((index, positions) -> assertThat(positions) .as("column %d starts at one x in every entry, not one per date length", index) .containsOnly(positions.get(0))); - // And they are three distinct columns, not one collapsed on top of another. - assertThat(List.of(byColumn.get(0).get(0), byColumn.get(1).get(0), byColumn.get(2).get(0))) + // And the three that carry something are distinct columns in order, not one + // collapsed on top of another. + assertThat(List.of(byColumn.get(0).get(0), byColumn.get(2).get(0), byColumn.get(4).get(0))) .isSorted() .doesNotHaveDuplicates(); } diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json index ca2f1a473..0732e455a 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json @@ -4251,6 +4251,36 @@ "childIndex" : 1, "depth" : 12, "layer" : 12, + "computedX" : 272.588, + "computedY" : 566.59, + "placementX" : 272.588, + "placementY" : 566.59, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 12, + "layer" : 12, "computedX" : 285.488, "computedY" : 560.39, "placementX" : 285.488, @@ -4274,10 +4304,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "entityName" : null, "entityKind" : "Align", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 0, "depth" : 13, "layer" : 13, @@ -4304,10 +4334,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "entityName" : null, "entityKind" : "LayoutAnchorNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "childIndex" : 0, "depth" : 14, "layer" : 14, @@ -4334,10 +4364,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "entityName" : "marker", "entityKind" : "CanvasLayerNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, "depth" : 15, "layer" : 15, @@ -4364,10 +4394,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "childIndex" : 0, "depth" : 16, "layer" : 16, @@ -4394,10 +4424,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/MarkerRing_0[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/MarkerRing_0[0]", "entityName" : "MarkerRing_0", "entityKind" : "EllipseNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, "depth" : 17, "layer" : 17, @@ -4424,11 +4454,41 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[3]", "entityName" : null, "entityKind" : "SectionNode", "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", - "childIndex" : 2, + "childIndex" : 3, + "depth" : 12, + "layer" : 12, + "computedX" : 291.688, + "computedY" : 566.59, + "placementX" : 291.688, + "placementY" : 566.59, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 4, "depth" : 12, "layer" : 12, "computedX" : 304.588, @@ -4454,10 +4514,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Role_0[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Role_0[0]", "entityName" : "Role_0", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 0, "depth" : 13, "layer" : 13, @@ -4484,10 +4544,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Employer_0[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Employer_0[1]", "entityName" : "Employer_0", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 1, "depth" : 13, "layer" : 13, @@ -4514,10 +4574,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Highlights_0[2]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Highlights_0[2]", "entityName" : "Highlights_0", "entityKind" : "ListNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 2, "depth" : 13, "layer" : 13, @@ -4731,6 +4791,36 @@ "childIndex" : 1, "depth" : 12, "layer" : 12, + "computedX" : 272.588, + "computedY" : 455.41, + "placementX" : 272.588, + "placementY" : 455.41, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 12, + "layer" : 12, "computedX" : 285.488, "computedY" : 449.21, "placementX" : 285.488, @@ -4754,10 +4844,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "entityName" : null, "entityKind" : "Align", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 0, "depth" : 13, "layer" : 13, @@ -4784,10 +4874,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "entityName" : null, "entityKind" : "LayoutAnchorNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "childIndex" : 0, "depth" : 14, "layer" : 14, @@ -4814,10 +4904,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "entityName" : "marker", "entityKind" : "CanvasLayerNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, "depth" : 15, "layer" : 15, @@ -4844,10 +4934,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "childIndex" : 0, "depth" : 16, "layer" : 16, @@ -4874,10 +4964,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/MarkerRing_1[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/MarkerRing_1[0]", "entityName" : "MarkerRing_1", "entityKind" : "EllipseNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, "depth" : 17, "layer" : 17, @@ -4904,11 +4994,41 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[3]", "entityName" : null, "entityKind" : "SectionNode", "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", - "childIndex" : 2, + "childIndex" : 3, + "depth" : 12, + "layer" : 12, + "computedX" : 291.688, + "computedY" : 455.41, + "placementX" : 291.688, + "placementY" : 455.41, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 4, "depth" : 12, "layer" : 12, "computedX" : 304.588, @@ -4934,10 +5054,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Role_1[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Role_1[0]", "entityName" : "Role_1", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 0, "depth" : 13, "layer" : 13, @@ -4964,10 +5084,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Employer_1[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Employer_1[1]", "entityName" : "Employer_1", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 1, "depth" : 13, "layer" : 13, @@ -4994,10 +5114,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Highlights_1[2]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Highlights_1[2]", "entityName" : "Highlights_1", "entityKind" : "ListNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 2, "depth" : 13, "layer" : 13, @@ -5211,6 +5331,36 @@ "childIndex" : 1, "depth" : 12, "layer" : 12, + "computedX" : 272.588, + "computedY" : 355.01, + "placementX" : 272.588, + "placementY" : 355.01, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 12, + "layer" : 12, "computedX" : 285.488, "computedY" : 348.81, "placementX" : 285.488, @@ -5234,10 +5384,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "entityName" : null, "entityKind" : "Align", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 0, "depth" : 13, "layer" : 13, @@ -5264,10 +5414,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "entityName" : null, "entityKind" : "LayoutAnchorNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "childIndex" : 0, "depth" : 14, "layer" : 14, @@ -5294,10 +5444,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "entityName" : "marker", "entityKind" : "CanvasLayerNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, "depth" : 15, "layer" : 15, @@ -5324,10 +5474,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "childIndex" : 0, "depth" : 16, "layer" : 16, @@ -5354,10 +5504,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/MarkerRing_2[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/MarkerRing_2[0]", "entityName" : "MarkerRing_2", "entityKind" : "EllipseNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, "depth" : 17, "layer" : 17, @@ -5384,11 +5534,41 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[3]", "entityName" : null, "entityKind" : "SectionNode", "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", - "childIndex" : 2, + "childIndex" : 3, + "depth" : 12, + "layer" : 12, + "computedX" : 291.688, + "computedY" : 355.01, + "placementX" : 291.688, + "placementY" : 355.01, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 4, "depth" : 12, "layer" : 12, "computedX" : 304.588, @@ -5414,10 +5594,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Role_2[0]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Role_2[0]", "entityName" : "Role_2", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 0, "depth" : 13, "layer" : 13, @@ -5444,10 +5624,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Employer_2[1]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Employer_2[1]", "entityName" : "Employer_2", "entityKind" : "ParagraphNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 1, "depth" : 13, "layer" : 13, @@ -5474,10 +5654,10 @@ "left" : 0.0 } }, { - "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Highlights_2[2]", + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Highlights_2[2]", "entityName" : "Highlights_2", "entityKind" : "ListNode", - "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceRail[1]/ExperienceRailHolder[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 2, "depth" : 13, "layer" : 13, diff --git a/qa/src/test/resources/layout-snapshots/document/timeline_leading_column.json b/qa/src/test/resources/layout-snapshots/document/timeline_leading_column.json index 10014b031..00a162fea 100644 --- a/qa/src/test/resources/layout-snapshots/document/timeline_leading_column.json +++ b/qa/src/test/resources/layout-snapshots/document/timeline_leading_column.json @@ -231,6 +231,36 @@ "childIndex" : 1, "depth" : 6, "layer" : 6, + "computedX" : 84.0, + "computedY" : 240.0, + "placementX" : 84.0, + "placementY" : 240.0, + "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" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, "computedX" : 92.0, "computedY" : 232.0, "placementX" : 92.0, @@ -254,10 +284,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "entityName" : null, "entityKind" : "Align", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 0, "depth" : 7, "layer" : 7, @@ -284,10 +314,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "entityName" : null, "entityKind" : "LayoutAnchorNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "childIndex" : 0, "depth" : 8, "layer" : 8, @@ -314,10 +344,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "entityName" : "marker", "entityKind" : "CanvasLayerNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, "depth" : 9, "layer" : 9, @@ -344,10 +374,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "childIndex" : 0, "depth" : 10, "layer" : 10, @@ -374,10 +404,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EllipseNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EllipseNode[0]", "entityName" : null, "entityKind" : "EllipseNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, "depth" : 11, "layer" : 11, @@ -404,11 +434,41 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[3]", "entityName" : null, "entityKind" : "SectionNode", "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]", - "childIndex" : 2, + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 113.818, + "computedY" : 240.0, + "placementX" : 113.818, + "placementY" : 240.0, + "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" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[4]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]", + "childIndex" : 4, "depth" : 6, "layer" : 6, "computedX" : 121.818, @@ -434,10 +494,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]/ParagraphNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[4]/ParagraphNode[0]", "entityName" : null, "entityKind" : "ParagraphNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 0, "depth" : 7, "layer" : 7, @@ -651,6 +711,36 @@ "childIndex" : 1, "depth" : 6, "layer" : 6, + "computedX" : 84.0, + "computedY" : 200.262, + "placementX" : 84.0, + "placementY" : 200.262, + "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" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, "computedX" : 92.0, "computedY" : 192.262, "placementX" : 92.0, @@ -674,10 +764,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "entityName" : null, "entityKind" : "Align", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 0, "depth" : 7, "layer" : 7, @@ -704,10 +794,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "entityName" : null, "entityKind" : "LayoutAnchorNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "childIndex" : 0, "depth" : 8, "layer" : 8, @@ -734,10 +824,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "entityName" : "marker", "entityKind" : "CanvasLayerNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, "depth" : 9, "layer" : 9, @@ -764,10 +854,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "childIndex" : 0, "depth" : 10, "layer" : 10, @@ -794,10 +884,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EllipseNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EllipseNode[0]", "entityName" : null, "entityKind" : "EllipseNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, "depth" : 11, "layer" : 11, @@ -824,11 +914,41 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[3]", "entityName" : null, "entityKind" : "SectionNode", "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]", - "childIndex" : 2, + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 113.818, + "computedY" : 200.262, + "placementX" : 113.818, + "placementY" : 200.262, + "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" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[4]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]", + "childIndex" : 4, "depth" : 6, "layer" : 6, "computedX" : 121.818, @@ -854,10 +974,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]/ParagraphNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[4]/ParagraphNode[0]", "entityName" : null, "entityKind" : "ParagraphNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 0, "depth" : 7, "layer" : 7, @@ -1071,6 +1191,36 @@ "childIndex" : 1, "depth" : 6, "layer" : 6, + "computedX" : 84.0, + "computedY" : 134.625, + "placementX" : 84.0, + "placementY" : 134.625, + "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" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, "computedX" : 92.0, "computedY" : 126.625, "placementX" : 92.0, @@ -1094,10 +1244,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "entityName" : null, "entityKind" : "Align", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 0, "depth" : 7, "layer" : 7, @@ -1124,10 +1274,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "entityName" : null, "entityKind" : "LayoutAnchorNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "childIndex" : 0, "depth" : 8, "layer" : 8, @@ -1154,10 +1304,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "entityName" : "marker", "entityKind" : "CanvasLayerNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, "depth" : 9, "layer" : 9, @@ -1184,10 +1334,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "childIndex" : 0, "depth" : 10, "layer" : 10, @@ -1214,10 +1364,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/TimelineMarkerSquare[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/TimelineMarkerSquare[0]", "entityName" : "TimelineMarkerSquare", "entityKind" : "ShapeNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, "depth" : 11, "layer" : 11, @@ -1244,11 +1394,41 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[3]", "entityName" : null, "entityKind" : "SectionNode", "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]", - "childIndex" : 2, + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 113.818, + "computedY" : 134.625, + "placementX" : 113.818, + "placementY" : 134.625, + "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" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[4]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]", + "childIndex" : 4, "depth" : 6, "layer" : 6, "computedX" : 121.818, @@ -1274,10 +1454,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]/ParagraphNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[4]/ParagraphNode[0]", "entityName" : null, "entityKind" : "ParagraphNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 0, "depth" : 7, "layer" : 7, @@ -1431,6 +1611,36 @@ "childIndex" : 1, "depth" : 6, "layer" : 6, + "computedX" : 84.0, + "computedY" : 107.675, + "placementX" : 84.0, + "placementY" : 107.675, + "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" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, "computedX" : 92.0, "computedY" : 99.675, "placementX" : 92.0, @@ -1454,10 +1664,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "entityName" : null, "entityKind" : "Align", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[1]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 0, "depth" : 7, "layer" : 7, @@ -1484,10 +1694,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "entityName" : null, "entityKind" : "LayoutAnchorNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "childIndex" : 0, "depth" : 8, "layer" : 8, @@ -1514,10 +1724,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "entityName" : "marker", "entityKind" : "CanvasLayerNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", "childIndex" : 0, "depth" : 9, "layer" : 9, @@ -1544,10 +1754,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", "childIndex" : 0, "depth" : 10, "layer" : 10, @@ -1574,10 +1784,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EllipseNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/EllipseNode[0]", "entityName" : null, "entityKind" : "EllipseNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[1]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", "childIndex" : 0, "depth" : 11, "layer" : 11, @@ -1604,11 +1814,41 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[3]", "entityName" : null, "entityKind" : "SectionNode", "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]", - "childIndex" : 2, + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 113.818, + "computedY" : 107.675, + "placementX" : 113.818, + "placementY" : 107.675, + "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" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[4]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]", + "childIndex" : 4, "depth" : 6, "layer" : 6, "computedX" : 121.818, @@ -1634,10 +1874,10 @@ "left" : 0.0 } }, { - "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]/ParagraphNode[0]", + "path" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[4]/ParagraphNode[0]", "entityName" : null, "entityKind" : "ParagraphNode", - "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[2]", + "parentPath" : "ContainerNode[0]/SectionNode[0]/LayoutAnchorNode[3]/SectionNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 0, "depth" : 7, "layer" : 7, From 386e65e201961f7ce3a47d3269a1f4e3ba481174 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 15:24:04 +0100 Subject: [PATCH 72/85] refactor(templates): put Violet Grid's dated rail on a real timeline The one preset held back from the timeline campaign, because two things it needs did not exist. Both do now, so it goes on the rail like its siblings and gives up the three constructions that stood in for them. The rail was a left accent border repeated on every entry and withheld from the last, with the host indented so each entry's left edge landed on it. The dates rode the title line's layer stack at DATE_OFFSET, a negative x of minus the rail indent and the entry indent together, and the disc rode the same stack at its own negative offset. What all of that was describing is three columns - dates at the page margin, discs on the rail, copy inside it - and a timeline states those directly. The dates' column is the rail indent less half a disc less the air after the dates, which comes to 61.93pt. That way round on purpose: the longest date this design sets measures 57.01, and a column named directly would be a number picked to clear one string. The air is the design decision and the column follows from it, in the preset's own drawing units. Geometry on the canonical sheet, from the snapshot: one page, and of 132 named nodes exactly ONE moved - ExperienceEntries, whose width goes 535.456 -> 535.466, the 0.01 of table slack the old indented host absorbed. It draws nothing. Every other named node is identical: the dates at x=29.905 and 57.005 wide on ONE line, the disc centred at 105.796, the copy at 125.826 by 439.535, and every section below them. Six named nodes go - three EntryTitle layer stacks and three ExperienceEntry accent sections - and three marker wrappers arrive. On the overflow sheet the acceptance test written before any of this passes unchanged: two pages, the same role on the same page as before, every role still whole, the same three columns on both. The rail ends at 65.394 on page 0, which is the last role's foot and the number the hand-built rail stopped at, and page 1 opens at 828.348 as it did. ProjectsHeading still sits at 628.396 on page 2, so nothing downstream re-flowed. What a reader sees change is the rail's two outer ends, 5.652pt each - half-leading 1.843 plus the disc's radius 3.809. It now stops on the disc centres rather than at the top edge of the line boxes they sit in, which is what this preset's javadoc always said it did. 72 pixels of 500395, maxDelta 36; the PNG is re-recorded and all 126 baselines hashed either side to show nothing else moved. No LayerStack, no DATE_OFFSET, no negative margin, no rail running to the bottom margin, no role split and no role on a different page. --- .../cv-v2/violet_grid_layout.json | 1480 ++++++++++++++--- .../cv-v2-layered/violet_grid-page-0.png | Bin 139146 -> 139110 bytes .../templates/cv/presets/VioletGridBody.java | 103 +- .../cv/presets/VioletGridStyles.java | 20 +- 4 files changed, 1332 insertions(+), 271 deletions(-) diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/violet_grid_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/violet_grid_layout.json index 972bb42e4..f05e0141b 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/violet_grid_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/violet_grid_layout.json @@ -2365,11 +2365,11 @@ "computedY" : 262.073, "placementX" : 29.905, "placementY" : 262.073, - "placementWidth" : 535.456, + "placementWidth" : 535.466, "placementHeight" : 204.296, "startPage" : 0, "endPage" : 0, - "contentWidth" : 535.456, + "contentWidth" : 535.466, "contentHeight" : 204.296, "margin" : { "top" : 10.89, @@ -2381,26 +2381,26 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 75.891 + "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]", - "entityName" : "ExperienceEntry_0", + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]", + "entityName" : null, "entityKind" : "SectionNode", "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]", "childIndex" : 0, "depth" : 3, "layer" : 3, - "computedX" : 105.796, - "computedY" : 382.189, - "placementX" : 105.796, - "placementY" : 382.189, - "placementWidth" : 459.566, - "placementHeight" : 84.18, + "computedX" : 29.905, + "computedY" : 262.073, + "placementX" : 29.905, + "placementY" : 262.073, + "placementWidth" : 535.466, + "placementHeight" : 204.296, "startPage" : 0, "endPage" : 0, - "contentWidth" : 459.566, - "contentHeight" : 84.18, + "contentWidth" : 535.466, + "contentHeight" : 204.296, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2410,27 +2410,27 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 13.542, - "left" : 20.031 + "bottom" : 0.0, + "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]", - "entityName" : "EntryTitle_0", - "entityKind" : "LayerStackNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]", + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]", "childIndex" : 0, "depth" : 4, "layer" : 4, - "computedX" : 125.826, - "computedY" : 455.065, - "placementX" : 125.826, - "placementY" : 455.065, - "placementWidth" : 439.535, - "placementHeight" : 11.304, + "computedX" : 29.905, + "computedY" : 382.189, + "placementX" : 29.905, + "placementY" : 382.189, + "placementWidth" : 535.466, + "placementHeight" : 84.18, "startPage" : 0, "endPage" : 0, - "contentWidth" : 439.535, - "contentHeight" : 11.304, + "contentWidth" : 535.466, + "contentHeight" : 84.18, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2444,23 +2444,23 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]/TitleTable_0[0]", - "entityName" : "TitleTable_0", - "entityKind" : "TableNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]", + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]", "childIndex" : 0, "depth" : 5, "layer" : 5, - "computedX" : 125.826, - "computedY" : 455.065, - "placementX" : 125.826, - "placementY" : 455.065, - "placementWidth" : 439.535, - "placementHeight" : 11.304, + "computedX" : 29.905, + "computedY" : 382.189, + "placementX" : 29.905, + "placementY" : 382.189, + "placementWidth" : 535.466, + "placementHeight" : 84.18, "startPage" : 0, "endPage" : 0, - "contentWidth" : 439.535, - "contentHeight" : 11.304, + "contentWidth" : 535.466, + "contentHeight" : 84.18, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2470,27 +2470,27 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 0.0, + "bottom" : 13.542, "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]/Period_0[1]", - "entityName" : "Period_0", - "entityKind" : "ParagraphNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]", - "childIndex" : 1, - "depth" : 5, - "layer" : 5, + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, "computedX" : 29.905, - "computedY" : 455.515, + "computedY" : 395.731, "placementX" : 29.905, - "placementY" : 455.515, - "placementWidth" : 57.005, - "placementHeight" : 10.404, + "placementY" : 395.731, + "placementWidth" : 535.466, + "placementHeight" : 70.638, "startPage" : 0, "endPage" : 0, - "contentWidth" : 57.005, - "contentHeight" : 10.404, + "contentWidth" : 535.466, + "contentHeight" : 70.638, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2504,23 +2504,23 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]/Marker_0[2]", - "entityName" : "Marker_0", - "entityKind" : "ParagraphNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/EntryTitle_0[0]", - "childIndex" : 2, - "depth" : 5, - "layer" : 5, - "computedX" : 101.987, - "computedY" : 456.908, - "placementX" : 101.987, - "placementY" : 456.908, - "placementWidth" : 7.617, - "placementHeight" : 7.617, + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.905, + "computedY" : 395.731, + "placementX" : 29.905, + "placementY" : 395.731, + "placementWidth" : 535.466, + "placementHeight" : 70.638, "startPage" : 0, "endPage" : 0, - "contentWidth" : 7.617, - "contentHeight" : 7.617, + "contentWidth" : 535.466, + "contentHeight" : 70.638, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2534,53 +2534,53 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]/Highlights_0[1]", - "entityName" : "Highlights_0", - "entityKind" : "TableNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_0[0]", - "childIndex" : 1, - "depth" : 4, - "layer" : 4, - "computedX" : 125.826, - "computedY" : 395.731, - "placementX" : 125.826, - "placementY" : 395.731, - "placementWidth" : 439.535, - "placementHeight" : 55.892, + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.905, + "computedY" : 455.515, + "placementX" : 29.905, + "placementY" : 455.515, + "placementWidth" : 57.005, + "placementHeight" : 10.854, "startPage" : 0, "endPage" : 0, - "contentWidth" : 439.535, - "contentHeight" : 55.892, + "contentWidth" : 57.005, + "contentHeight" : 10.854, "margin" : { - "top" : 3.442, + "top" : 0.0, "right" : 0.0, "bottom" : 0.0, "left" : 0.0 }, "padding" : { - "top" : 0.0, + "top" : 0.45, "right" : 0.0, "bottom" : 0.0, "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]", - "entityName" : "ExperienceEntry_1", - "entityKind" : "SectionNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]", - "childIndex" : 1, - "depth" : 3, - "layer" : 3, - "computedX" : 105.796, - "computedY" : 309.577, - "placementX" : 105.796, - "placementY" : 309.577, - "placementWidth" : 459.566, - "placementHeight" : 72.613, + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Period_0[0]", + "entityName" : "Period_0", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.905, + "computedY" : 455.515, + "placementX" : 29.905, + "placementY" : 455.515, + "placementWidth" : 57.005, + "placementHeight" : 10.404, "startPage" : 0, "endPage" : 0, - "contentWidth" : 459.566, - "contentHeight" : 72.613, + "contentWidth" : 57.005, + "contentHeight" : 10.404, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2590,27 +2590,27 @@ "padding" : { "top" : 0.0, "right" : 0.0, - "bottom" : 13.542, - "left" : 20.031 + "bottom" : 0.0, + "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]", - "entityName" : "EntryTitle_1", - "entityKind" : "LayerStackNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]", - "childIndex" : 0, - "depth" : 4, - "layer" : 4, - "computedX" : 125.826, - "computedY" : 370.885, - "placementX" : 125.826, - "placementY" : 370.885, - "placementWidth" : 439.535, - "placementHeight" : 11.304, + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 91.83, + "computedY" : 466.369, + "placementX" : 91.83, + "placementY" : 466.369, + "placementWidth" : 0.0, + "placementHeight" : 0.0, "startPage" : 0, "endPage" : 0, - "contentWidth" : 439.535, - "contentHeight" : 11.304, + "contentWidth" : 0.0, + "contentHeight" : 0.0, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2624,22 +2624,22 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]/TitleTable_1[0]", - "entityName" : "TitleTable_1", - "entityKind" : "TableNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]", - "childIndex" : 0, - "depth" : 5, - "layer" : 5, - "computedX" : 125.826, - "computedY" : 370.885, - "placementX" : 125.826, - "placementY" : 370.885, - "placementWidth" : 439.535, + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 101.987, + "computedY" : 455.065, + "placementX" : 101.987, + "placementY" : 455.065, + "placementWidth" : 7.617, "placementHeight" : 11.304, "startPage" : 0, "endPage" : 0, - "contentWidth" : 439.535, + "contentWidth" : 7.617, "contentHeight" : 11.304, "margin" : { "top" : 0.0, @@ -2654,23 +2654,23 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]/Period_1[1]", - "entityName" : "Period_1", - "entityKind" : "ParagraphNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]", - "childIndex" : 1, - "depth" : 5, - "layer" : 5, - "computedX" : 29.905, - "computedY" : 371.335, - "placementX" : 29.905, - "placementY" : 371.335, - "placementWidth" : 47.893, - "placementHeight" : 10.404, + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 101.987, + "computedY" : 455.065, + "placementX" : 101.987, + "placementY" : 455.065, + "placementWidth" : 7.617, + "placementHeight" : 11.304, "startPage" : 0, "endPage" : 0, - "contentWidth" : 47.893, - "contentHeight" : 10.404, + "contentWidth" : 7.617, + "contentHeight" : 11.304, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2684,23 +2684,23 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]/Marker_1[2]", - "entityName" : "Marker_1", - "entityKind" : "ParagraphNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/EntryTitle_1[0]", - "childIndex" : 2, - "depth" : 5, - "layer" : 5, + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, "computedX" : 101.987, - "computedY" : 372.729, + "computedY" : 455.065, "placementX" : 101.987, - "placementY" : 372.729, + "placementY" : 455.065, "placementWidth" : 7.617, - "placementHeight" : 7.617, + "placementHeight" : 11.304, "startPage" : 0, "endPage" : 0, "contentWidth" : 7.617, - "contentHeight" : 7.617, + "contentHeight" : 11.304, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2714,25 +2714,25 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]/Highlights_1[1]", - "entityName" : "Highlights_1", - "entityKind" : "TableNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_1[1]", - "childIndex" : 1, - "depth" : 4, - "layer" : 4, - "computedX" : 125.826, - "computedY" : 323.119, - "placementX" : 125.826, - "placementY" : 323.119, - "placementWidth" : 439.535, - "placementHeight" : 44.325, + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 101.987, + "computedY" : 455.065, + "placementX" : 101.987, + "placementY" : 455.065, + "placementWidth" : 7.617, + "placementHeight" : 11.304, "startPage" : 0, "endPage" : 0, - "contentWidth" : 439.535, - "contentHeight" : 44.325, + "contentWidth" : 7.617, + "contentHeight" : 11.304, "margin" : { - "top" : 3.442, + "top" : 0.0, "right" : 0.0, "bottom" : 0.0, "left" : 0.0 @@ -2744,23 +2744,923 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]", - "entityName" : "ExperienceEntry_2", + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 101.987, + "computedY" : 456.908, + "placementX" : 101.987, + "placementY" : 456.908, + "placementWidth" : 7.617, + "placementHeight" : 9.461, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 9.461, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 1.843, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_0[0]", + "entityName" : "Marker_0", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 101.987, + "computedY" : 456.908, + "placementX" : 101.987, + "placementY" : 456.908, + "placementWidth" : 7.617, + "placementHeight" : 7.617, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 7.617, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[3]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 3, + "depth" : 8, + "layer" : 8, + "computedX" : 109.604, + "computedY" : 466.369, + "placementX" : 109.604, + "placementY" : 466.369, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 4, + "depth" : 8, + "layer" : 8, + "computedX" : 125.826, + "computedY" : 395.731, + "placementX" : 125.826, + "placementY" : 395.731, + "placementWidth" : 439.535, + "placementHeight" : 70.638, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 70.638, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/TitleTable_0[0]", + "entityName" : "TitleTable_0", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 125.826, + "computedY" : 455.065, + "placementX" : 125.826, + "placementY" : 455.065, + "placementWidth" : 439.535, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Highlights_0[1]", + "entityName" : "Highlights_0", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 125.826, + "computedY" : 395.731, + "placementX" : 125.826, + "placementY" : 395.731, + "placementWidth" : 439.535, + "placementHeight" : 55.892, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 55.892, + "margin" : { + "top" : 3.442, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 309.577, + "placementX" : 29.905, + "placementY" : 309.577, + "placementWidth" : 535.466, + "placementHeight" : 72.613, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 72.613, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 29.905, + "computedY" : 309.577, + "placementX" : 29.905, + "placementY" : 309.577, + "placementWidth" : 535.466, + "placementHeight" : 72.613, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 72.613, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 13.542, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 29.905, + "computedY" : 323.119, + "placementX" : 29.905, + "placementY" : 323.119, + "placementWidth" : 535.466, + "placementHeight" : 59.071, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 59.071, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.905, + "computedY" : 323.119, + "placementX" : 29.905, + "placementY" : 323.119, + "placementWidth" : 535.466, + "placementHeight" : 59.071, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 59.071, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.905, + "computedY" : 371.335, + "placementX" : 29.905, + "placementY" : 371.335, + "placementWidth" : 47.893, + "placementHeight" : 10.854, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.893, + "contentHeight" : 10.854, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.45, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Period_1[0]", + "entityName" : "Period_1", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.905, + "computedY" : 371.335, + "placementX" : 29.905, + "placementY" : 371.335, + "placementWidth" : 47.893, + "placementHeight" : 10.404, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.893, + "contentHeight" : 10.404, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 91.83, + "computedY" : 382.189, + "placementX" : 91.83, + "placementY" : 382.189, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 101.987, + "computedY" : 370.885, + "placementX" : 101.987, + "placementY" : 370.885, + "placementWidth" : 7.617, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 101.987, + "computedY" : 370.885, + "placementX" : 101.987, + "placementY" : 370.885, + "placementWidth" : 7.617, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 101.987, + "computedY" : 370.885, + "placementX" : 101.987, + "placementY" : 370.885, + "placementWidth" : 7.617, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 101.987, + "computedY" : 370.885, + "placementX" : 101.987, + "placementY" : 370.885, + "placementWidth" : 7.617, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 101.987, + "computedY" : 372.729, + "placementX" : 101.987, + "placementY" : 372.729, + "placementWidth" : 7.617, + "placementHeight" : 9.461, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 9.461, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 1.843, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_1[0]", + "entityName" : "Marker_1", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 101.987, + "computedY" : 372.729, + "placementX" : 101.987, + "placementY" : 372.729, + "placementWidth" : 7.617, + "placementHeight" : 7.617, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 7.617, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[3]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 3, + "depth" : 8, + "layer" : 8, + "computedX" : 109.604, + "computedY" : 382.189, + "placementX" : 109.604, + "placementY" : 382.189, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 4, + "depth" : 8, + "layer" : 8, + "computedX" : 125.826, + "computedY" : 323.119, + "placementX" : 125.826, + "placementY" : 323.119, + "placementWidth" : 439.535, + "placementHeight" : 59.071, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 59.071, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/TitleTable_1[0]", + "entityName" : "TitleTable_1", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 125.826, + "computedY" : 370.885, + "placementX" : 125.826, + "placementY" : 370.885, + "placementWidth" : 439.535, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Highlights_1[1]", + "entityName" : "Highlights_1", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 125.826, + "computedY" : 323.119, + "placementX" : 125.826, + "placementY" : 323.119, + "placementWidth" : 439.535, + "placementHeight" : 44.325, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 44.325, + "margin" : { + "top" : 3.442, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 29.905, + "computedY" : 262.073, + "placementX" : 29.905, + "placementY" : 262.073, + "placementWidth" : 535.466, + "placementHeight" : 47.504, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 47.504, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 29.905, + "computedY" : 262.073, + "placementX" : 29.905, + "placementY" : 262.073, + "placementWidth" : 535.466, + "placementHeight" : 47.504, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 47.504, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "entityName" : null, + "entityKind" : "HorizontalBandsNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 29.905, + "computedY" : 262.073, + "placementX" : 29.905, + "placementY" : 262.073, + "placementWidth" : 535.466, + "placementHeight" : 47.504, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 47.504, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "entityName" : null, + "entityKind" : "RowNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.905, + "computedY" : 262.073, + "placementX" : 29.905, + "placementY" : 262.073, + "placementWidth" : 535.466, + "placementHeight" : 47.504, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.466, + "contentHeight" : 47.504, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "entityName" : null, "entityKind" : "SectionNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 29.905, + "computedY" : 298.723, + "placementX" : 29.905, + "placementY" : 298.723, + "placementWidth" : 47.893, + "placementHeight" : 10.854, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.893, + "contentHeight" : 10.854, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.45, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]/Period_2[0]", + "entityName" : "Period_2", + "entityKind" : "ParagraphNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 29.905, + "computedY" : 298.723, + "placementX" : 29.905, + "placementY" : 298.723, + "placementWidth" : 47.893, + "placementHeight" : 10.404, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.893, + "contentHeight" : 10.404, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 91.83, + "computedY" : 309.577, + "placementX" : 91.83, + "placementY" : 309.577, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", "childIndex" : 2, - "depth" : 3, - "layer" : 3, - "computedX" : 105.796, - "computedY" : 262.073, - "placementX" : 105.796, - "placementY" : 262.073, - "placementWidth" : 459.566, - "placementHeight" : 47.504, + "depth" : 8, + "layer" : 8, + "computedX" : 101.987, + "computedY" : 298.273, + "placementX" : 101.987, + "placementY" : 298.273, + "placementWidth" : 7.617, + "placementHeight" : 11.304, "startPage" : 0, "endPage" : 0, - "contentWidth" : 459.566, - "contentHeight" : 47.504, + "contentWidth" : 7.617, + "contentHeight" : 11.304, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2771,25 +3671,25 @@ "top" : 0.0, "right" : 0.0, "bottom" : 0.0, - "left" : 20.031 + "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]", - "entityName" : "EntryTitle_2", - "entityKind" : "LayerStackNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]", + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]", "childIndex" : 0, - "depth" : 4, - "layer" : 4, - "computedX" : 125.826, + "depth" : 9, + "layer" : 9, + "computedX" : 101.987, "computedY" : 298.273, - "placementX" : 125.826, + "placementX" : 101.987, "placementY" : 298.273, - "placementWidth" : 439.535, + "placementWidth" : 7.617, "placementHeight" : 11.304, "startPage" : 0, "endPage" : 0, - "contentWidth" : 439.535, + "contentWidth" : 7.617, "contentHeight" : 11.304, "margin" : { "top" : 0.0, @@ -2804,22 +3704,22 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]/TitleTable_2[0]", - "entityName" : "TitleTable_2", - "entityKind" : "TableNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]", + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", + "entityName" : null, + "entityKind" : "LayoutAnchorNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]", "childIndex" : 0, - "depth" : 5, - "layer" : 5, - "computedX" : 125.826, + "depth" : 10, + "layer" : 10, + "computedX" : 101.987, "computedY" : 298.273, - "placementX" : 125.826, + "placementX" : 101.987, "placementY" : 298.273, - "placementWidth" : 439.535, + "placementWidth" : 7.617, "placementHeight" : 11.304, "startPage" : 0, "endPage" : 0, - "contentWidth" : 439.535, + "contentWidth" : 7.617, "contentHeight" : 11.304, "margin" : { "top" : 0.0, @@ -2834,23 +3734,23 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]/Period_2[1]", - "entityName" : "Period_2", - "entityKind" : "ParagraphNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]", - "childIndex" : 1, - "depth" : 5, - "layer" : 5, - "computedX" : 29.905, - "computedY" : 298.723, - "placementX" : 29.905, - "placementY" : 298.723, - "placementWidth" : 47.893, - "placementHeight" : 10.404, + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "entityName" : "marker", + "entityKind" : "CanvasLayerNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 101.987, + "computedY" : 298.273, + "placementX" : 101.987, + "placementY" : 298.273, + "placementWidth" : 7.617, + "placementHeight" : 11.304, "startPage" : 0, "endPage" : 0, - "contentWidth" : 47.893, - "contentHeight" : 10.404, + "contentWidth" : 7.617, + "contentHeight" : 11.304, "margin" : { "top" : 0.0, "right" : 0.0, @@ -2864,13 +3764,43 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]/Marker_2[2]", + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 101.987, + "computedY" : 300.116, + "placementX" : 101.987, + "placementY" : 300.116, + "placementWidth" : 7.617, + "placementHeight" : 9.461, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 7.617, + "contentHeight" : 9.461, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 1.843, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]/Marker_2[0]", "entityName" : "Marker_2", "entityKind" : "ParagraphNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/EntryTitle_2[0]", - "childIndex" : 2, - "depth" : 5, - "layer" : 5, + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[2]/Align[0]/LayoutAnchorNode[0]/marker[0]/SectionNode[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, "computedX" : 101.987, "computedY" : 300.116, "placementX" : 101.987, @@ -2894,13 +3824,103 @@ "left" : 0.0 } }, { - "path" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]/Highlights_2[1]", + "path" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[3]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 3, + "depth" : 8, + "layer" : 8, + "computedX" : 109.604, + "computedY" : 309.577, + "placementX" : 109.604, + "placementY" : 309.577, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "entityName" : null, + "entityKind" : "SectionNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]", + "childIndex" : 4, + "depth" : 8, + "layer" : 8, + "computedX" : 125.826, + "computedY" : 262.073, + "placementX" : 125.826, + "placementY" : 262.073, + "placementWidth" : 439.535, + "placementHeight" : 47.504, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 47.504, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/TitleTable_2[0]", + "entityName" : "TitleTable_2", + "entityKind" : "TableNode", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 125.826, + "computedY" : 298.273, + "placementX" : 125.826, + "placementY" : 298.273, + "placementWidth" : 439.535, + "placementHeight" : 11.304, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 439.535, + "contentHeight" : 11.304, + "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" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]/Highlights_2[1]", "entityName" : "Highlights_2", "entityKind" : "TableNode", - "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/ExperienceEntry_2[2]", + "parentPath" : "VioletGridCv[0]/ExperienceEntries[9]/SectionNode[0]/LayoutAnchorNode[2]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[4]", "childIndex" : 1, - "depth" : 4, - "layer" : 4, + "depth" : 9, + "layer" : 9, "computedX" : 125.826, "computedY" : 262.073, "placementX" : 125.826, diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/violet_grid-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/violet_grid-page-0.png index 5a7fbbaa8a76351a062d448f81df5effb2bf0524..0c6bae50619f00e14cafce72e5d94ce88a710b95 100644 GIT binary patch delta 86487 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

      OfvNbt+Py3^#p?}< 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 AdrVJTxn9- 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 UBQ`Jnk{N)&)78&qol`;+0J;!|SpWb4 delta 86543 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≷wiU_iHW`zH%sQ+mam}$KtnWe@6z8l&o{%J;F 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

        U7GZr}MAvakl8 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 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java index ebe330d8f..a14d5bb2f 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java @@ -4,13 +4,15 @@ import com.demcha.compose.document.dsl.ParagraphBuilder; import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.dsl.TimelineMarker; +import com.demcha.compose.document.dsl.TimelineRailExtent; import com.demcha.compose.document.node.DocumentLinkOptions; 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.TextAlign; 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; @@ -31,7 +33,8 @@ import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BULLET_DOT_DIAMETER; import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.BULLET_PITCH; import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.CONTENT_WIDTH; -import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DATE_OFFSET; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DATE_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DATE_TO_MARKER; import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.DISPLAY_FONT; import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.EMPLOYER_SIZE; import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.ENTRY_GAP; @@ -49,7 +52,7 @@ import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LOCATION_COLUMN; import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.LOCATION_SIZE; import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.MARKER_DIAMETER; -import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.MARKER_OFFSET; +import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.MARKER_TO_COPY; import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.MUTED; import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PERIOD_SIZE; import static com.demcha.compose.document.templates.cv.presets.VioletGridStyles.PIPE; @@ -224,10 +227,10 @@ static void renderTools(PageFlowBuilder page, SkillsSection tools) { /** * The dated timeline. * - *

        The entries host is indented so its LEFT EDGE lands on the rail. That - * is what lets each entry's left border BE the rail: consecutive entries - * butt together into one unbroken line, and it stops at the last marker - * because the last entry does not carry it.

        + *

        Three columns, which is what the design has always been: the dates out at the page + * margin, the discs on the rail, the copy inside it. Each is stated once for the whole + * timeline, so the dates cannot drift the markers and a longer date cannot move the + * copy. The rail is the timeline's own, drawn from where the markers landed.

        */ static void renderExperience(PageFlowBuilder page, EntriesSection experience) { if (experience == null || experience.entries().isEmpty()) { @@ -238,43 +241,69 @@ static void renderExperience(PageFlowBuilder page, EntriesSection experience) { page.addSection("ExperienceEntries", host -> { host.spacing(0); host.margin((float) HEADING_TO_ENTRIES, 0f, 0f, 0f); - host.padding(0f, 0f, 0f, (float) RAIL_INDENT); - for (int i = 0; i < entries.size(); i++) { - CvEntry entry = entries.get(i); - boolean last = i == entries.size() - 1; - int index = i; - host.addSection("ExperienceEntry_" + index, body -> { - body.spacing(0); - body.keepTogether(); - if (!last) { - body.accentLeft(RULE, RAIL_THICKNESS); - } - body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, (float) ENTRY_INDENT); - renderEntry(body, entry, index); - }); - } + host.addTimeline(timeline -> { + // Each gap is its own: the dates' column plus the air after it puts the + // disc's centre on the rail, and the air after the disc puts the copy one + // entry indent inside it. With a single gap for both, the dates' column + // would be whatever was left over — 55.86pt, which breaks the longest date + // across two lines. + timeline.markerOnRail() + .rail(rail -> rail + .stroke(DocumentStroke.of(RULE, RAIL_THICKNESS)) + .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .leadingColumn(DocumentRowColumn.fixed(DATE_COLUMN)) + .leadingGap(DATE_TO_MARKER) + .axisWidth(MARKER_DIAMETER) + .markerGap(MARKER_TO_COPY) + .gutter(0) + .spacing(ENTRY_GAP) + .keepEntriesTogether(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + int index = i; + timeline.entry(entryMarker(index), e -> e + .leading(column -> period(column, entry, index)) + .content(column -> renderEntry(column, entry, index))); + } + }); }); } /** - * One entry: the title line with its dates and marker, then the bullets. + * The disc, in a box the height of the title line it belongs to. + * + *

        Declaring the line rather than the disc is what keeps the mark where it was: a + * timeline top-aligns a marker in its column, so a box the size of the disc would ride + * the line's top edge instead of its middle. A box the size of the line, with the disc + * centred in it, puts the disc where the layer stack used to hold it — and puts the + * rail's anchor, that box's own centre, through the disc rather than above it.

        + */ + private static TimelineMarker entryMarker(int index) { + return TimelineMarker.custom(MARKER_DIAMETER, ROLE_SIZE * LINE_FACTOR, column -> { + column.spacing(0); + column.padding((float) centred(MARKER_DIAMETER), 0f, 0f, 0f); + column.add(markerDot("Marker_" + index, MARKER_DIAMETER, + MARKER_DIAMETER / LINE_FACTOR, ACCENT)); + }); + } + + /** The dates, in their own column, dropped onto the title line's setting. */ + private static void period(SectionBuilder column, CvEntry entry, int index) { + column.spacing(0); + column.padding((float) centred(PERIOD_SIZE * LINE_FACTOR), 0f, 0f, 0f); + column.add(text("Period_" + index, entry.date(), + style(BODY_FONT, PERIOD_SIZE, ACCENT, false))); + } + + /** + * One entry: the title line, then the bullets. * - *

        The dates and the disc ride the title line's own layer stack at - * negative offsets, so both are placed relative to the line they belong to - * rather than at a measured y. The title itself is a two-column table — a - * row here would be a row inside a row's cell.

        + *

        The title is a two-column table — a row here would be a row inside a row's + * cell.

        */ private static void renderEntry(SectionBuilder body, CvEntry entry, int index) { - body.addLayerStack(stack -> stack - .name("EntryTitle_" + index) - .layer(titleLine(entry, index), LayerAlign.TOP_LEFT, 0) - .position(text("Period_" + index, entry.date(), - style(BODY_FONT, PERIOD_SIZE, ACCENT, false)), - DATE_OFFSET, centred(PERIOD_SIZE * LINE_FACTOR), - LayerAlign.TOP_LEFT, 1) - .position(markerDot("Marker_" + index, MARKER_DIAMETER, - MARKER_DIAMETER / LINE_FACTOR, ACCENT), - MARKER_OFFSET, centred(MARKER_DIAMETER), LayerAlign.TOP_LEFT, 1)); + body.spacing(0); + body.add(titleLine(entry, index)); List highlights = lines(entry.body()); if (highlights.isEmpty()) { return; diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridStyles.java index 81554035e..e417c7997 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridStyles.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridStyles.java @@ -294,11 +294,23 @@ static double px(double pixels) { static final double LOCATION_COLUMN = px(200); static final double ROLE_COLUMN = ENTRY_WIDTH - LOCATION_COLUMN; - /** The dates sit back at the page margin, outside the rail. */ - static final double DATE_OFFSET = -(RAIL_INDENT + ENTRY_INDENT); + /** Air between the dates and the disc. */ + static final double DATE_TO_MARKER = px(18); - /** Half the disc, plus the indent, puts its centre on the border. */ - static final double MARKER_OFFSET = -(ENTRY_INDENT + MARKER_DIAMETER / 2.0); + /** + * The dates' column: from the page margin to the disc, less that air. + * + *

        Everything before the rail belongs to the dates and the air after them, and the + * rail runs through the disc's centre — so the column is the rail indent less half a + * disc less the air. It comes to 61.93pt, and the longest date this design sets, + * {@code 2022 - Present}, measures 57.01, so it stays on one line with room to spare. + * The measurement is why the air is stated and the column derived rather than the other + * way round: a column named directly would be a number chosen to clear one string.

        + */ + static final double DATE_COLUMN = RAIL_INDENT - MARKER_DIAMETER / 2.0 - DATE_TO_MARKER; + + /** The disc's own column, and the air between it and the copy. */ + static final double MARKER_TO_COPY = ENTRY_INDENT - MARKER_DIAMETER / 2.0; static final double BULLET_COLUMN = px(16); static final double BULLET_DOT_DIAMETER = px(6); From e6f950dfd036a94a237ddb61e2e5ab744be432f2 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 16:07:35 +0100 Subject: [PATCH 73/85] feat(timeline): choose a rail's two ends separately A rail had one value naming both of its ends, and the design that wanted them different could not be asked for. Professional Sidebar's education block draws its line from the first dot to the foot of the entries. ENTRY_BOUNDS gave it the foot and a 4.650pt stub above the first dot - half a marker - and MARKER_TO_MARKER gave it the dot and cut 26.690pt of tail the block draws on purpose. So the preset painted the stub over with the page colour and redrew the line below it, and measured against its own baseline that never worked: an accent draws above both the fill and the mask, so the masked stretch stayed visible and the only thing the construction achieved was drawing 2.5pt of rail twice. TimelineRailEnd is ENTRY_BOUND or MARKER and rail(r -> r.from(..).to(..)) takes one at each end, so all four readings exist and the two mixed ones are the point. TimelineRailExtent is gone rather than kept beside it: it is @since 2.4.0 and unreleased, so there is nothing to be compatible with, and carrying a second way to say two of the four would be carrying it for no one. TIMELINE_BOUNDS went with it - defined, not implemented, threw when asked for, and on one page indistinguishable from the entries' bound. With the ends separate there is nothing left for it to mean. Each end trims only its own page. The start trims the page the first marker is on, the end trims the page the last is on, and a page holding neither is bounded by its own entries whatever was asked for - which is what lets the ends be independent across a break rather than only on one page. Trimming is min at the top and max at the foot, so an end on a marker can only shorten the line and never invent rail outside the entries. Professional Sidebar now says from(MARKER).to(ENTRY_BOUND) and gets the line it is drawn as: the rail starts at 187.084, which is the first marker's centre to 0.000, and ends at 118.054, which is the last entry's foot to 0.000. Four pixels change, maxDelta 21 - the stub - and its PNG is re-recorded with all 126 baselines hashed either side. The five other presets and every existing test say the same thing in the new words and are unchanged: 45 timeline tests green through the reshape, because the two symmetric readings are the two the old constants named. Two new tests - the four combinations proven to be four distinct lines, each sharing exactly one end with the symmetric pair, and the per-end trimming across a page break. Sabotaged by tying the end to the start: exactly those two go red and the twenty symmetric ones stay green. japicmp is green on both baselines. Removing a public enum is invisible to it here because the enum was never in a published one. --- CHANGELOG.md | 37 +++-- .../compose/document/dsl/TimelineBuilder.java | 21 ++- .../document/dsl/TimelineRailBuilder.java | 48 ++++-- .../compose/document/dsl/TimelineRailEnd.java | 44 ++++++ .../document/dsl/TimelineRailExtent.java | 49 ------ .../document/dsl/TimelineRailOwner.java | 42 ++++-- .../document/dsl/TimelineRailSpec.java | 2 +- knowledge/api/authoring.json | 45 +++--- knowledge/api/authoring.md | 9 +- .../api/TimelineCompatibilityTest.java | 12 +- .../api/TimelineRailGeometryTest.java | 139 ++++++++++++++++-- .../TimelineVisualScenarioGeometryTest.java | 30 ++-- .../visual/TimelineRailVisualTest.java | 12 +- .../professional_sidebar-page-0.png | Bin 81044 -> 81027 bytes .../templates/cv/presets/NavySidebarMain.java | 4 +- .../cv/presets/ProfessionalSidebarAside.java | 8 +- .../cv/presets/SerifHeadlineMain.java | 4 +- .../templates/cv/presets/SlateOrangeMain.java | 4 +- .../cv/presets/TerracottaRailMain.java | 6 +- .../templates/cv/presets/VioletGridBody.java | 4 +- 20 files changed, 344 insertions(+), 176 deletions(-) create mode 100644 core/src/main/java/com/demcha/compose/document/dsl/TimelineRailEnd.java delete mode 100644 core/src/main/java/com/demcha/compose/document/dsl/TimelineRailExtent.java diff --git a/CHANGELOG.md b/CHANGELOG.md index bb08d106d..4c54491dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -349,19 +349,30 @@ follow semantic versioning; release dates are ISO 8601. markers' and entries' resolved positions, and contributed as one fragment per page — one logical rail, however many pages it crosses, bounded on each by that page alone. - Two independent choices, and they stay independent. `TimelineRailExtent` says how far the - rail runs: `ENTRY_BOUNDS`, the default and what every existing timeline already draws, or - `MARKER_TO_MARKER`, which starts at the first marker and stops at the last. - `markerOnRail()` says where it runs: it aligns every marker's declared anchor with the - timeline axis. With the current centre anchor, markers of different sizes are centred - within the axis column and share one continuous rail — a 6pt dot, a 14pt numbered disc - and a 24pt square all sit on the same line rather than on the same left edge. An entry's - body moves with them into the content column beside the marker, so the line is left with - only markers to cross — see *Fixed* below. A timeline that does not call it keeps the - left-edge anchor and the placement it has always had. - A timeline with one entry and `MARKER_TO_MARKER` emits no rail at all rather than a line - of no length. `TIMELINE_BOUNDS` is named and rejected — on one page it is the same line - as `ENTRY_BOUNDS`, and across pages there is nothing to measure it against. + Two independent choices, and they stay independent. `rail(r -> r.from(...).to(...))` says + how far the rail runs, one end at a time: each is a `TimelineRailEnd`, either + `ENTRY_BOUND` — the entries' own bound, the default, and what every existing timeline + already draws — or `MARKER`, the marker's anchor point. `markerOnRail()` says where it + runs: it aligns every marker's declared anchor with the timeline axis. With the current + centre anchor, markers of different sizes are centred within the axis column and share one + continuous rail — a 6pt dot, a 14pt numbered disc and a 24pt square all sit on the same + line rather than on the same left edge. An entry's body moves with them into the content + column beside the marker, so the line is left with only markers to cross — see *Fixed* + below. A timeline that does not call it keeps the left-edge anchor and the placement it has + always had. + + **The two ends are chosen separately because a design that wants them the same is only one + of four.** A sidebar whose line begins at the first dot and carries on past the last one to + close the block is a real design, and with a single value naming both ends it could not be + asked for: `ENTRY_BOUND` at both ends drew a stub above the first dot, and `MARKER` at both + cut the tail the block draws on purpose. The preset that wanted it painted over the stub + with the page colour and redrew the line below — and measured, that did not even work, + because an accent draws above the mask. It now says `from(MARKER).to(ENTRY_BOUND)`, which + is 4.650pt shorter at the top than the first and 26.690pt longer at the foot than the + second. + + A timeline with one entry and both ends on the marker emits no rail at all rather than a + line of no length. **A leading column sits to the left of the timeline axis; it does not move the rail to the entry boundary.** The layout is `LEADING | AXIS | CONTENT`, and the rail belongs to diff --git a/core/src/main/java/com/demcha/compose/document/dsl/TimelineBuilder.java b/core/src/main/java/com/demcha/compose/document/dsl/TimelineBuilder.java index 3258ac1ee..2458722cd 100644 --- a/core/src/main/java/com/demcha/compose/document/dsl/TimelineBuilder.java +++ b/core/src/main/java/com/demcha/compose/document/dsl/TimelineBuilder.java @@ -39,7 +39,7 @@ * *

        The rail is one logical line, computed after layout from where the markers and * entries actually landed and drawn as one fragment per page it crosses. How far it - * runs is a {@link TimelineRailExtent}; where it runs comes from the marker anchor, + * runs is a {@link TimelineRailEnd} at each end; where it runs comes from the marker anchor, * a gutter to the left of the markers by default or through them after * {@link #markerOnRail()}. It is drawn beneath the markers, so a filled marker * covers the line passing under it.

        @@ -61,7 +61,8 @@ public final class TimelineBuilder { private final List entries = new ArrayList<>(); private DocumentStroke railStroke = DocumentStroke.of(DEFAULT_RAIL, 1.5); private String railDeclaredBy; - private TimelineRailExtent railExtent = TimelineRailExtent.ENTRY_BOUNDS; + private TimelineRailEnd railStart = TimelineRailEnd.ENTRY_BOUND; + private TimelineRailEnd railEnd = TimelineRailEnd.ENTRY_BOUND; private TimelineMarkerAnchor markerAnchor; private double gutter = 8.0; private double markerGap = 8.0; @@ -145,8 +146,11 @@ public TimelineBuilder rail(Consumer spec) { Objects.requireNonNull(spec, "spec"); TimelineRailBuilder builder = new TimelineRailBuilder(); spec.accept(builder); - if (builder.extent() != null) { - this.railExtent = builder.extent(); + if (builder.start() != null) { + this.railStart = builder.start(); + } + if (builder.end() != null) { + this.railEnd = builder.end(); } if (builder.stroke() == null) { return this; @@ -501,13 +505,6 @@ private TimelineSpec normalize() { // One owner per timeline, allocated here. Every marker below anchors on this // instance, so the pass that draws the rail asks for it and gets these markers and // nobody else's — two timelines on a page never merge. - if (railExtent == TimelineRailExtent.TIMELINE_BOUNDS) { - throw new IllegalArgumentException( - "TimelineRailExtent.TIMELINE_BOUNDS is not implemented. On one page it is the " - + "same line as ENTRY_BOUNDS, and across pages there is nothing to measure it " - + "against — a timeline's own box draws nothing. Use ENTRY_BOUNDS or " - + "MARKER_TO_MARKER."); - } TimelineRailSpec railSpec = new TimelineRailSpec(railStroke); // The gutter is only knowable here, so the default anchor is resolved here too — // and it is the same model the opted-in one uses, not a branch beside it. @@ -516,7 +513,7 @@ private TimelineSpec normalize() { // Unset resolves to the marker gap, which is the single-gap layout the two columns // either side of the axis have always shared. double resolvedLeadingGap = leadingGap == null ? markerGap : leadingGap; - return new TimelineSpec(new TimelineRailOwner(railSpec, railExtent, anchor), + return new TimelineSpec(new TimelineRailOwner(railSpec, railStart, railEnd, anchor), railSpec, leadingColumn, resolvedLeadingGap, gutter, markerGap, axis, anchor, entrySpacing, keepTogether, keepEntriesTogether, List.copyOf(specs)); } diff --git a/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailBuilder.java b/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailBuilder.java index 2dfbeaf9a..8bd459f0d 100644 --- a/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailBuilder.java +++ b/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailBuilder.java @@ -23,7 +23,8 @@ public final class TimelineRailBuilder { private DocumentStroke stroke; - private TimelineRailExtent extent; + private TimelineRailEnd start; + private TimelineRailEnd end; TimelineRailBuilder() { } @@ -41,19 +42,37 @@ public TimelineRailBuilder stroke(DocumentStroke stroke) { } /** - * Sets how far the rail runs. + * Sets where the rail begins. * - *

        Independent of where it runs: an extent is the line's two ends, and its x comes - * from the marker anchor. A timeline that sets neither keeps - * {@link TimelineRailExtent#ENTRY_BOUNDS}, which is what it already draws.

        + *

        Independent of where it ends, and of where it runs: the two ends are chosen one at + * a time and the x comes from the marker anchor. A rail that is asked for neither end + * begins at {@link TimelineRailEnd#ENTRY_BOUND}, which is what a timeline already + * draws.

        * - * @param extent the rail's extent + * @param start where the rail's first end sits * @return this builder - * @throws NullPointerException if {@code extent} is null + * @throws NullPointerException if {@code start} is null * @since 2.4.0 */ - public TimelineRailBuilder extent(TimelineRailExtent extent) { - this.extent = Objects.requireNonNull(extent, "extent"); + public TimelineRailBuilder from(TimelineRailEnd start) { + this.start = Objects.requireNonNull(start, "start"); + return this; + } + + /** + * Sets where the rail ends. + * + *

        The companion of {@link #from(TimelineRailEnd)} and just as independent: a rail + * may begin on its first marker and still run to the foot of its last entry. Unasked, + * it ends at {@link TimelineRailEnd#ENTRY_BOUND}.

        + * + * @param end where the rail's last end sits + * @return this builder + * @throws NullPointerException if {@code end} is null + * @since 2.4.0 + */ + public TimelineRailBuilder to(TimelineRailEnd end) { + this.end = Objects.requireNonNull(end, "end"); return this; } @@ -62,8 +81,13 @@ DocumentStroke stroke() { return stroke; } - /** The extent this rail was given, or null when the caller set none. */ - TimelineRailExtent extent() { - return extent; + /** The start this rail was given, or null when the caller asked for none. */ + TimelineRailEnd start() { + return start; + } + + /** The end this rail was given, or null when the caller asked for none. */ + TimelineRailEnd end() { + return end; } } diff --git a/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailEnd.java b/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailEnd.java new file mode 100644 index 000000000..8dfd086e0 --- /dev/null +++ b/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailEnd.java @@ -0,0 +1,44 @@ +package com.demcha.compose.document.dsl; + +/** + * Where one end of a timeline's rail sits. + * + *

        The two ends are chosen separately, because a design that wants them the same is only + * one of four and was never the interesting case. A rail can begin at the first marker and + * still run to the foot of the last entry; that is a real design — a sidebar whose line + * starts at the first dot and carries on past the last one to close the block — and with a + * single value naming both ends it could not be asked for. The previous model had two + * symmetric constants and no way to mix them, so a template wanting this one painted the + * top of an entry-bounds rail over with the page colour and redrew the rest. Measured, that + * did not even work: an accent draws above the mask.

        + * + *

        Nothing here says where the rail sits horizontally. That comes from the marker anchor, + * and the two are independent on purpose: an end moves the line's start or finish and never + * moves it sideways.

        + * + * @author Artem Demchyshyn + * @since 2.4.0 + */ +public enum TimelineRailEnd { + + /** + * The entries' own bound on that page — the top of the first entry at the start, the + * foot of the last at the end. + * + *

        What a timeline written before there was a choice draws at both ends, to the + * point: measured against the per-entry border it replaces, the two agree to 0.000000 + * on every page. The gaps between entries are inside it, because an entry's spacing is + * padding within its own box, and there is no tail after the last entry because the + * last entry has no such padding.

        + */ + ENTRY_BOUND, + + /** + * The marker's anchor point — the first marker's at the start, the last's at the end. + * + *

        No rail above the first marker or below the last. With one entry and both ends on + * the marker the extent is zero and no rail is drawn at all, because a zero-length line + * is not a shorter line.

        + */ + MARKER +} diff --git a/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailExtent.java b/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailExtent.java deleted file mode 100644 index da2f6a5c5..000000000 --- a/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailExtent.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.demcha.compose.document.dsl; - -/** - * How far a timeline's rail runs. - * - *

        The two ends of the line, and nothing about where it sits horizontally — that comes - * from the marker anchor. The two are independent on purpose: a rail can start and stop at - * the markers while passing through their left edges, or span the entries while passing - * through their centres.

        - * - * @author Artem Demchyshyn - * @since 2.4.0 - */ -public enum TimelineRailExtent { - - /** - * From the first marker's anchor point to the last's. - * - *

        No rail above the first marker or below the last. With a single entry the extent - * is zero and no rail is drawn at all — a zero-length line is not a shorter line.

        - */ - MARKER_TO_MARKER, - - /** - * The union of the entries' resolved boxes, page by page. - * - *

        What a timeline written before there was a choice already draws, to the point: - * measured against the per-entry border it replaces, the two agree to 0.000000 in both - * ends on every page. The gaps between entries are inside it, because an entry's - * spacing is padding within its own box; there is no tail after the last entry, - * because the last entry has no such padding.

        - * - *

        Page by page is load-bearing. An entry that spans pages has a different - * extent on each of them, and its box as a whole is a coordinate belonging to no - * page.

        - */ - ENTRY_BOUNDS, - - /** - * The timeline's own box, rather than the union of the entries in it. - * - *

        Defined but not implemented: it is indistinguishable from - * {@link #ENTRY_BOUNDS} on a single page — a timeline has no padding of its own — and - * across pages there is nothing to measure it against, because the container draws - * nothing. Asking for it throws rather than quietly resolving to the neighbour it - * happens to equal in the easy case.

        - */ - TIMELINE_BOUNDS -} diff --git a/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailOwner.java b/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailOwner.java index 5a2af7fc4..8608f4447 100644 --- a/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailOwner.java +++ b/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailOwner.java @@ -42,12 +42,15 @@ final class TimelineRailOwner implements ResolvedLayoutPass { private static final double EPS = 1e-9; private final TimelineRailSpec rail; - private final TimelineRailExtent extent; + private final TimelineRailEnd start; + private final TimelineRailEnd end; private final TimelineMarkerAnchor markerAnchor; - TimelineRailOwner(TimelineRailSpec rail, TimelineRailExtent extent, TimelineMarkerAnchor markerAnchor) { + TimelineRailOwner(TimelineRailSpec rail, TimelineRailEnd start, TimelineRailEnd end, + TimelineMarkerAnchor markerAnchor) { this.rail = rail; - this.extent = extent; + this.start = start; + this.end = end; this.markerAnchor = markerAnchor; } @@ -103,11 +106,19 @@ public List contribute(LayoutGraph graph, ResolvedLayout /** * The rail's vertical extent, one segment per page it appears on. * - *

        Both extents are built from the entries' resolved slices, because those already + *

        Every segment starts as the entries' own resolved slices, because those already * carry the one thing neither the markers nor the node boxes do: what a page's content - * band is, on that page, after per-page margins. {@code MARKER_TO_MARKER} then trims - * the first and last of them back to the markers rather than deriving a band of its - * own.

        + * band is, on that page, after per-page margins. An end asked for on the marker then + * trims that page's slice back to the marker rather than deriving a band of its own — + * and only that page's, which is what lets the two ends be chosen one at a time. A + * middle page is trimmed by neither, because neither the first marker nor the last is + * on it.

        + * + *

        Trimming back is the whole of it: {@code min} at the top and {@code max} + * at the bottom, so an end on a marker can only shorten the line, never invent rail + * outside the entries. A page past the marker that bounds it drops out for the same + * reason — with the start on the first marker there is nothing to draw on a page before + * it.

        */ private List segments(ResolvedLayoutMetadata metadata, List markers) { Map byPage = new LinkedHashMap<>(); @@ -116,7 +127,9 @@ private List segments(ResolvedLayoutMetadata metadata, List segments(ResolvedLayoutMetadata metadata, List trimmed = new ArrayList<>(); for (Segment segment : byPage.values()) { - if (segment.page < first.pageIndex() || segment.page > last.pageIndex()) { + if (startsOnMarker && segment.page < first.pageIndex()) { + continue; + } + if (endsOnMarker && segment.page > last.pageIndex()) { continue; } - double top = segment.page == first.pageIndex() ? Math.min(segment.top, startY) : segment.top; - double bottom = segment.page == last.pageIndex() ? Math.max(segment.bottom, endY) : segment.bottom; + double top = startsOnMarker && segment.page == first.pageIndex() + ? Math.min(segment.top, startY) + : segment.top; + double bottom = endsOnMarker && segment.page == last.pageIndex() + ? Math.max(segment.bottom, endY) + : segment.bottom; trimmed.add(new Segment(segment.page, top, bottom)); } return trimmed; diff --git a/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailSpec.java b/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailSpec.java index 6677091ad..ed6c1dd8d 100644 --- a/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailSpec.java +++ b/core/src/main/java/com/demcha/compose/document/dsl/TimelineRailSpec.java @@ -10,7 +10,7 @@ * configuration for the layout to read rather than an old shape and a new one.

        * *

        A stroke is all it takes to describe, because the rail's geometry is not here: how far - * it runs is a {@link TimelineRailExtent} and where it runs comes from the marker anchor, + * it runs is a {@link TimelineRailEnd} at each end and where it runs comes from the marker anchor, * both resolved after layout. This is only what it is drawn with.

        * * @param stroke the rail's colour and width diff --git a/knowledge/api/authoring.json b/knowledge/api/authoring.json index eeb9c172a..c263a71ff 100644 --- a/knowledge/api/authoring.json +++ b/knowledge/api/authoring.json @@ -23,9 +23,9 @@ ], "counts": { "types": 237, - "methods": 2108, - "constants": 237, - "generated": 1126 + "methods": 2109, + "constants": 236, + "generated": 1125 }, "packages": [ { @@ -15617,23 +15617,37 @@ }, { "kind": "method", - "name": "extent", + "name": "from", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineRailBuilder", + "params": [ + { + "type": "TimelineRailEnd", + "name": "start" + } + ] + }, + { + "kind": "method", + "name": "to", "static": false, "origin": "source", "typeParameters": null, "returns": "TimelineRailBuilder", "params": [ { - "type": "TimelineRailExtent", - "name": "extent" + "type": "TimelineRailEnd", + "name": "end" } ] } ] }, { - "name": "TimelineRailExtent", - "binaryName": "com.demcha.compose.document.dsl.TimelineRailExtent", + "name": "TimelineRailEnd", + "binaryName": "com.demcha.compose.document.dsl.TimelineRailEnd", "kind": "enum", "modifiers": [ "final" @@ -15642,24 +15656,17 @@ "members": [ { "kind": "constant", - "name": "MARKER_TO_MARKER", - "static": true, - "origin": "generated", - "type": "TimelineRailExtent" - }, - { - "kind": "constant", - "name": "ENTRY_BOUNDS", + "name": "ENTRY_BOUND", "static": true, "origin": "generated", - "type": "TimelineRailExtent" + "type": "TimelineRailEnd" }, { "kind": "constant", - "name": "TIMELINE_BOUNDS", + "name": "MARKER", "static": true, "origin": "generated", - "type": "TimelineRailExtent" + "type": "TimelineRailEnd" } ] }, diff --git a/knowledge/api/authoring.md b/knowledge/api/authoring.md index 3647ab55c..8c8c941b6 100644 --- a/knowledge/api/authoring.md +++ b/knowledge/api/authoring.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 237 · methods: 2108 · constants: 237 · compiler-generated members: 1126 +Types: 237 · methods: 2109 · constants: 236 · compiler-generated members: 1125 ## com.demcha.compose @@ -1165,10 +1165,11 @@ Types: 237 · methods: 2108 · constants: 237 · compiler-generated members: 112 ### TimelineRailBuilder (class) - `TimelineRailBuilder stroke(DocumentStroke stroke)` -- `TimelineRailBuilder extent(TimelineRailExtent extent)` +- `TimelineRailBuilder from(TimelineRailEnd start)` +- `TimelineRailBuilder to(TimelineRailEnd end)` -### TimelineRailExtent (enum) -- constants: `MARKER_TO_MARKER`, `ENTRY_BOUNDS`, `TIMELINE_BOUNDS` +### TimelineRailEnd (enum) +- constants: `ENTRY_BOUND`, `MARKER` ### TocBuilder (class) - `new TocBuilder()` diff --git a/qa/src/test/java/com/demcha/compose/document/api/TimelineCompatibilityTest.java b/qa/src/test/java/com/demcha/compose/document/api/TimelineCompatibilityTest.java index 2b70f78a8..1ee51e292 100644 --- a/qa/src/test/java/com/demcha/compose/document/api/TimelineCompatibilityTest.java +++ b/qa/src/test/java/com/demcha/compose/document/api/TimelineCompatibilityTest.java @@ -5,7 +5,7 @@ import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.TimelineBuilder; import com.demcha.compose.document.dsl.TimelineMarker; -import com.demcha.compose.document.dsl.TimelineRailExtent; +import com.demcha.compose.document.dsl.TimelineRailEnd; import com.demcha.compose.document.layout.LayoutGraph; import com.demcha.compose.document.layout.PlacedFragment; import com.demcha.compose.document.layout.ResolvedLayoutAnchor; @@ -152,8 +152,8 @@ void everyRailFragmentBelongsToOnePageAndStaysInsideIt() { void nothingInTheDocumentMovesBecauseTheRailChoseADifferentExtent() { // The rail is drawing, not layout. Two graphs of one document, ENTRY_BOUNDS and // MARKER_TO_MARKER: the rail differs and every anchor, and the page count, do not. - LayoutGraph bounded = paginatedScene(TimelineRailExtent.ENTRY_BOUNDS); - LayoutGraph trimmed = paginatedScene(TimelineRailExtent.MARKER_TO_MARKER); + LayoutGraph bounded = paginatedScene(TimelineRailEnd.ENTRY_BOUND); + LayoutGraph trimmed = paginatedScene(TimelineRailEnd.MARKER); assertThat(trimmed.totalPages()).isEqualTo(bounded.totalPages()); assertThat(box(markers(trimmed))).as("markers").isEqualTo(box(markers(bounded))); @@ -386,11 +386,11 @@ private static LayoutGraph paginatedScene() { return paginatedScene(null); } - private static LayoutGraph paginatedScene(TimelineRailExtent extent) { + private static LayoutGraph paginatedScene(TimelineRailEnd both) { return timeline(320, 170, t -> { t.spacing(14); - if (extent != null) { - t.rail(rail -> rail.extent(extent)); + if (both != null) { + t.rail(rail -> rail.from(both).to(both)); } t.entry(TimelineMarker.dot(8, INK), e -> e.title("Runs on").body(longBody(30))) .entry(TimelineMarker.dot(8, INK), e -> e.title("And ends here")); diff --git a/qa/src/test/java/com/demcha/compose/document/api/TimelineRailGeometryTest.java b/qa/src/test/java/com/demcha/compose/document/api/TimelineRailGeometryTest.java index c95244a8b..85989784d 100644 --- a/qa/src/test/java/com/demcha/compose/document/api/TimelineRailGeometryTest.java +++ b/qa/src/test/java/com/demcha/compose/document/api/TimelineRailGeometryTest.java @@ -3,7 +3,7 @@ import com.demcha.compose.GraphCompose; import com.demcha.compose.document.dsl.TimelineBuilder; import com.demcha.compose.document.dsl.TimelineMarker; -import com.demcha.compose.document.dsl.TimelineRailExtent; +import com.demcha.compose.document.dsl.TimelineRailEnd; import com.demcha.compose.document.layout.LayoutGraph; import com.demcha.compose.document.layout.PlacedFragment; import com.demcha.compose.document.layout.ResolvedLayoutAnchor; @@ -80,7 +80,7 @@ void markerToMarkerStopsAtTheMarkersAndEntryBoundsDoesNot() throws Exception { PlacedFragment bounded = rails(timeline(320, 300, entries)).get(0); PlacedFragment betweenMarkers = rails(timeline(320, 300, t -> { - t.rail(rail -> rail.extent(TimelineRailExtent.MARKER_TO_MARKER)); + t.rail(rail -> rail.from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)); entries.accept(t); })).get(0); @@ -98,7 +98,7 @@ void markerToMarkerStopsAtTheMarkersAndEntryBoundsDoesNot() throws Exception { @Test void markerToMarkerRunsBetweenTheAnchorPointsItIsNamedFor() throws Exception { LayoutGraph graph = timeline(320, 300, t -> t - .rail(rail -> rail.extent(TimelineRailExtent.MARKER_TO_MARKER)) + .rail(rail -> rail.from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)) .entry(TimelineMarker.dot(8, INK), e -> e.title("First").body("Body one.")) .entry(TimelineMarker.dot(8, INK), e -> e.title("Second").body("Body two."))); @@ -115,7 +115,7 @@ void oneEntryWithMarkerToMarkerEmitsNoRailAtAll() throws Exception { // A rail of no length is not a shorter rail: nothing reaches a backend, rather // than a zero- or negative-height fragment for one to cope with. LayoutGraph graph = timeline(320, 300, t -> t - .rail(rail -> rail.extent(TimelineRailExtent.MARKER_TO_MARKER)) + .rail(rail -> rail.from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)) .entry(TimelineMarker.dot(8, INK), e -> e.title("Only").body("Body."))); assertThat(rails(graph)).isEmpty(); @@ -130,13 +130,95 @@ void oneEntryWithEntryBoundsStillDrawsItsRail() throws Exception { .hasSize(1); } + // The timeline-bounds case went with the constant that named it. It was defined and not + // implemented, threw when asked for, and was indistinguishable from the entries' bound on + // one page — so with the ends chosen separately there is nothing for it to mean, and a + // throwing constant is not API worth releasing. + @Test - void timelineBoundsIsRejectedRatherThanResolvedToItsNeighbour() throws Exception { - assertThatIllegalArgumentException() - .isThrownBy(() -> timeline(320, 300, t -> t - .rail(rail -> rail.extent(TimelineRailExtent.TIMELINE_BOUNDS)) - .entry(TimelineMarker.dot(8, INK), e -> e.title("x")))) - .withMessageContaining("not implemented"); + void theFourEndCombinationsAreFourDifferentLines() throws Exception { + // The whole point of choosing the ends separately: the two mixed lines are the ones + // that could not be asked for before, and each shares exactly one end with each of + // the symmetric pair. + Consumer entries = t -> t + .spacing(14) + .entry(TimelineMarker.dot(8, INK), e -> e.title("First").body("Body one.")) + .entry(TimelineMarker.dot(8, INK), e -> e.title("Second").body("Body two.")); + + PlacedFragment boundToBound = railOf(entries, TimelineRailEnd.ENTRY_BOUND, + TimelineRailEnd.ENTRY_BOUND); + PlacedFragment markerToMarker = railOf(entries, TimelineRailEnd.MARKER, + TimelineRailEnd.MARKER); + PlacedFragment markerToBound = railOf(entries, TimelineRailEnd.MARKER, + TimelineRailEnd.ENTRY_BOUND); + PlacedFragment boundToMarker = railOf(entries, TimelineRailEnd.ENTRY_BOUND, + TimelineRailEnd.MARKER); + + // Each end is whichever of the two it was asked for, and nothing else changes it. + assertThat(top(markerToBound)) + .as("marker -> bound starts where marker -> marker starts") + .isEqualTo(top(markerToMarker), within(1e-9)); + assertThat(markerToBound.y()) + .as("and ends where bound -> bound ends") + .isEqualTo(boundToBound.y(), within(1e-9)); + assertThat(top(boundToMarker)) + .as("bound -> marker starts where bound -> bound starts") + .isEqualTo(top(boundToBound), within(1e-9)); + assertThat(boundToMarker.y()) + .as("and ends where marker -> marker ends") + .isEqualTo(markerToMarker.y(), within(1e-9)); + + // Four distinct lines, not two dressed up: the mixed pair is longer than + // marker-to-marker and shorter than bound-to-bound at one end each. + assertThat(markerToBound.height()).isGreaterThan(markerToMarker.height()); + assertThat(markerToBound.height()).isLessThan(boundToBound.height()); + assertThat(boundToMarker.height()).isGreaterThan(markerToMarker.height()); + assertThat(boundToMarker.height()).isLessThan(boundToBound.height()); + + // And no end moved the line sideways. + assertThat(List.of(markerToMarker.x(), markerToBound.x(), boundToMarker.x())) + .allSatisfy(x -> assertThat(x).isEqualTo(boundToBound.x(), within(1e-9))); + } + + @Test + void eachEndTrimsOnlyItsOwnPageWhenTheTimelineCrossesOne() throws Exception { + // Pagination, per end. The start trims the page the first marker is on and the end + // trims the page the last is on; a page holding neither is bounded by its entries at + // both ends whatever was asked for. marker -> bound is the case ProfessionalSidebar + // wants: begin at the first dot, run to the foot of the last entry. + Consumer entries = t -> { + t.spacing(10).keepEntriesTogether(); + for (int i = 0; i < 7; i++) { + String title = "Entry " + i; + t.entry(TimelineMarker.dot(8, INK), e -> e + .title(title).body("One body line of this entry.")); + } + }; + + LayoutGraph boundToBound = scene(220, entries, TimelineRailEnd.ENTRY_BOUND, + TimelineRailEnd.ENTRY_BOUND); + LayoutGraph markerToBound = scene(220, entries, TimelineRailEnd.MARKER, + TimelineRailEnd.ENTRY_BOUND); + assertThat(boundToBound.totalPages()).isEqualTo(2); + assertThat(markerToBound.totalPages()).isEqualTo(2); + + PlacedFragment firstOfBoth = railOnPage(boundToBound, 0); + PlacedFragment firstOfMixed = railOnPage(markerToBound, 0); + PlacedFragment lastOfBoth = railOnPage(boundToBound, 1); + PlacedFragment lastOfMixed = railOnPage(markerToBound, 1); + + assertThat(top(firstOfMixed)) + .as("page 0 is trimmed to the first marker, because the start asked for it") + .isLessThan(top(firstOfBoth)); + assertThat(firstOfMixed.y()) + .as("but its foot is the page's own entries, not an end") + .isEqualTo(firstOfBoth.y(), within(1e-9)); + assertThat(top(lastOfMixed)) + .as("page 1 is not trimmed at the top: the first marker is not on it") + .isEqualTo(top(lastOfBoth), within(1e-9)); + assertThat(lastOfMixed.y()) + .as("nor at the foot, because the end asked for the entries' bound") + .isEqualTo(lastOfBoth.y(), within(1e-9)); } // --- the marker anchor, which is a different question ---------------------- @@ -256,18 +338,18 @@ void theLeftEdgeAnchorStillLeavesMarkersWhereTheyHaveAlwaysBeen() throws Excepti void markerOnRailHoldsForEveryShapeAndForBothExtents() throws Exception { // The extent decides the two ends and must not touch the x. Same three markers, // both extents, one answer. - for (TimelineRailExtent extent : List.of(TimelineRailExtent.ENTRY_BOUNDS, - TimelineRailExtent.MARKER_TO_MARKER)) { + for (TimelineRailEnd both : List.of(TimelineRailEnd.ENTRY_BOUND, + TimelineRailEnd.MARKER)) { LayoutGraph graph = timeline(360, 320, t -> t .markerOnRail() - .rail(rail -> rail.extent(extent)) + .rail(rail -> rail.from(both).to(both)) .axisWidth(28) .entry(TimelineMarker.dot(12, INK), e -> e.title("Dot").body("Body.")) .entry(TimelineMarker.square(12, INK), e -> e.title("Square").body("Body."))); double railX = rails(graph).get(0).x(); assertThat(markerAnchors(graph)).allSatisfy(marker -> assertThat(railX) - .as("%s must not move the rail sideways", extent) + .as("%s must not move the rail sideways", both) .isEqualTo(marker.x() + marker.width() / 2, within(1e-9))); } } @@ -295,7 +377,7 @@ void markerOnRailWithALeadingColumnStillPutsTheMarkerOnTheLine() throws Exceptio void markerOnRailWithMarkerToMarkerRunsBetweenTheMarkerCentres() throws Exception { LayoutGraph graph = timeline(360, 320, t -> t .markerOnRail() - .rail(rail -> rail.extent(TimelineRailExtent.MARKER_TO_MARKER)) + .rail(rail -> rail.from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)) .axisWidth(28) .entry(TimelineMarker.dot(12, INK), e -> e.title("First").body("Body.")) .entry(TimelineMarker.dot(12, INK), e -> e.title("Second").body("Body."))); @@ -507,6 +589,33 @@ private static List rails(LayoutGraph graph) { return graph.fragments().stream().filter(f -> "@timeline-rail".equals(f.path())).toList(); } + /** A rail's top, which is the edge the start end decides. */ + private static double top(PlacedFragment rail) { + return rail.y() + rail.height(); + } + + /** The one rail of a single-page scene with those two ends. */ + private static PlacedFragment railOf(Consumer entries, + TimelineRailEnd start, + TimelineRailEnd end) throws Exception { + return rails(scene(300, entries, start, end)).get(0); + } + + private static PlacedFragment railOnPage(LayoutGraph graph, int page) { + return rails(graph).stream().filter(r -> r.pageIndex() == page) + .findFirst().orElseThrow(() -> new AssertionError("no rail on page " + page)); + } + + private static LayoutGraph scene(double height, + Consumer entries, + TimelineRailEnd start, + TimelineRailEnd end) throws Exception { + return timeline(320, height, t -> { + t.rail(rail -> rail.from(start).to(end)); + entries.accept(t); + }); + } + private static List entryAnchors(LayoutGraph graph) { return ResolvedLayoutMetadata.from(graph).anchors().stream() .filter(a -> "ENTRY".equals(a.id().kind().toString())).toList(); diff --git a/qa/src/test/java/com/demcha/compose/document/api/TimelineVisualScenarioGeometryTest.java b/qa/src/test/java/com/demcha/compose/document/api/TimelineVisualScenarioGeometryTest.java index b0f365848..6c7330fea 100644 --- a/qa/src/test/java/com/demcha/compose/document/api/TimelineVisualScenarioGeometryTest.java +++ b/qa/src/test/java/com/demcha/compose/document/api/TimelineVisualScenarioGeometryTest.java @@ -3,7 +3,7 @@ import com.demcha.compose.GraphCompose; import com.demcha.compose.document.dsl.TimelineBuilder; import com.demcha.compose.document.dsl.TimelineMarker; -import com.demcha.compose.document.dsl.TimelineRailExtent; +import com.demcha.compose.document.dsl.TimelineRailEnd; import com.demcha.compose.document.layout.LayoutGraph; import com.demcha.compose.document.layout.PlacedFragment; import com.demcha.compose.document.layout.ResolvedLayoutAnchor; @@ -68,18 +68,18 @@ void oneTimelineHasOneRailXHoweverManyPagesItCrossesAndWhicheverExtent() throws // The rail is one logical line. Across pages it arrives as several fragments, and // "one line" means those fragments agree about x — including under MARKER_TO_MARKER, // which changes both ends on the outer pages and must change nothing else. - for (TimelineRailExtent extent : List.of(TimelineRailExtent.ENTRY_BOUNDS, - TimelineRailExtent.MARKER_TO_MARKER)) { - LayoutGraph graph = paginated(extent); + for (TimelineRailEnd both : List.of(TimelineRailEnd.ENTRY_BOUND, + TimelineRailEnd.MARKER)) { + LayoutGraph graph = paginated(both); assertThat(graph.totalPages()) .as("the premise: it does cross pages") .isGreaterThanOrEqualTo(3); assertThat(rails(graph)) - .as("%s: one fragment per page", extent) + .as("%s: one fragment per page", both) .hasSize(graph.totalPages()); assertThat(rails(graph).stream().map(PlacedFragment::x).distinct()) - .as("%s: and one x between them", extent) + .as("%s: and one x between them", both) .hasSize(1); } } @@ -89,7 +89,7 @@ void noRailFragmentReachesOutsideThePageItIsOn() throws Exception { // Scenario 7's hard invariant. A rail derived from anchors could in principle be // handed a box belonging to another page and paint into the margin; every fragment // is checked against the band its own page actually has. - LayoutGraph graph = paginated(TimelineRailExtent.ENTRY_BOUNDS); + LayoutGraph graph = paginated(TimelineRailEnd.ENTRY_BOUND); double width = graph.canvas().width(); double height = graph.canvas().height(); assertThat(graph.canvas().innerHeight()) @@ -114,8 +114,8 @@ void theTwoExtentsDifferInWhereTheyStopAndInNothingElse() throws Exception { // draw: the same page, the same three entries, one argument different. Scenarios 5 // and 6, asserted against each other so that "shorter" is a comparison and not an // impression. - PlacedFragment bounded = rails(extentScene(TimelineRailExtent.ENTRY_BOUNDS)).get(0); - LayoutGraph trimmed = extentScene(TimelineRailExtent.MARKER_TO_MARKER); + PlacedFragment bounded = rails(extentScene(TimelineRailEnd.ENTRY_BOUND)).get(0); + LayoutGraph trimmed = extentScene(TimelineRailEnd.MARKER); PlacedFragment betweenMarkers = rails(trimmed).get(0); List markers = markerAnchors(trimmed); @@ -138,7 +138,7 @@ void entryBoundsCoversTheSpacingBetweenEntriesOfVeryDifferentHeights() throws Ex // 16pt of spacing between them — and one unbroken line, because an entry's spacing // is padding inside its own slice rather than a gap between two of them. If it were // a gap, this is the scene where a rail assembled per entry would show it. - LayoutGraph graph = extentScene(TimelineRailExtent.ENTRY_BOUNDS); + LayoutGraph graph = extentScene(TimelineRailEnd.ENTRY_BOUND); List entries = entryAnchors(graph); PlacedFragment rail = rails(graph).get(0); @@ -164,7 +164,7 @@ void markerToMarkerAcrossPagesStartsAtTheFirstMarkerAndEndsAtTheLast() throws Ex // about the other. The first page is trimmed at the top, the last at the bottom, // and the page between them carries no marker at all, so it is trimmed at neither // end and runs the whole band its entry occupies. - LayoutGraph graph = paginated(TimelineRailExtent.MARKER_TO_MARKER); + LayoutGraph graph = paginated(TimelineRailEnd.MARKER); List rails = rails(graph); List markers = markerAnchors(graph); List entries = entryAnchors(graph); @@ -291,10 +291,10 @@ void twoTimelinesWithDifferentAnchorsDoNotShareARail() throws Exception { // --- scenes ------------------------------------------------------------------ /** The scene both extent baselines draw; they differ by this argument and nothing else. */ - private static LayoutGraph extentScene(TimelineRailExtent extent) throws Exception { + private static LayoutGraph extentScene(TimelineRailEnd both) throws Exception { return timeline(300, 250, t -> t .spacing(16) - .rail(rail -> rail.extent(extent)) + .rail(rail -> rail.from(both).to(both)) .entry(TimelineMarker.dot(9, INK), e -> e .title("Tall entry").meta("2023 - Present") .body("A body long enough to run to three lines on a page this " @@ -305,12 +305,12 @@ private static LayoutGraph extentScene(TimelineRailExtent extent) throws Excepti } /** The scene timeline-dsl/paginated-marker-to-marker draws: two entries, three pages. */ - private static LayoutGraph paginated(TimelineRailExtent extent) throws Exception { + private static LayoutGraph paginated(TimelineRailEnd both) throws Exception { return timeline(300, 150, t -> t .spacing(14) .markerOnRail() .axisWidth(24) - .rail(rail -> rail.extent(extent)) + .rail(rail -> rail.from(both).to(both)) .entry(TimelineMarker.dot(10, INK), e -> e.title("Runs on").body(longBody())) .entry(TimelineMarker.dot(10, INK), e -> e.title("And ends here"))); } diff --git a/qa/src/test/java/com/demcha/testing/visual/TimelineRailVisualTest.java b/qa/src/test/java/com/demcha/testing/visual/TimelineRailVisualTest.java index cac5344a0..7297276d5 100644 --- a/qa/src/test/java/com/demcha/testing/visual/TimelineRailVisualTest.java +++ b/qa/src/test/java/com/demcha/testing/visual/TimelineRailVisualTest.java @@ -3,7 +3,7 @@ import com.demcha.compose.GraphCompose; import com.demcha.compose.document.api.DocumentSession; import com.demcha.compose.document.dsl.TimelineMarker; -import com.demcha.compose.document.dsl.TimelineRailExtent; +import com.demcha.compose.document.dsl.TimelineRailEnd; import com.demcha.compose.document.node.EllipseNode; import com.demcha.compose.document.style.DocumentColor; import com.demcha.compose.document.style.DocumentInsets; @@ -224,7 +224,7 @@ void entryBoundsRunsThroughEveryEntryAndOverTheSpacingBetweenThem() throws Excep // Entries of deliberately different heights, 16pt apart — and the line covers the // gaps, because an entry's spacing is padding inside its own box rather than a hole // between two boxes. That is the default every existing timeline draws. - try (DocumentSession session = extentScene(TimelineRailExtent.ENTRY_BOUNDS)) { + try (DocumentSession session = extentScene(TimelineRailEnd.ENTRY_BOUND)) { VISUAL.assertMatchesBaseline("timeline-dsl/entry-bounds", session); } } @@ -234,7 +234,7 @@ void markerToMarkerStopsAtTheOuterMarkersOnTheVerySameScene() throws Exception { // The other half. Same page, same entries, same rail — and now the line begins at // the first marker and ends at the last, with the tall entry's body hanging below // it. Read against its twin, the diff is the two ends and nothing else. - try (DocumentSession session = extentScene(TimelineRailExtent.MARKER_TO_MARKER)) { + try (DocumentSession session = extentScene(TimelineRailEnd.MARKER)) { VISUAL.assertMatchesBaseline("timeline-dsl/marker-to-marker", session); } } @@ -255,7 +255,7 @@ void aPaginatedTimelineDrawsItsRailOnEveryPageItReaches() throws Exception { .spacing(14) .markerOnRail() .axisWidth(24) - .rail(rail -> rail.extent(TimelineRailExtent.MARKER_TO_MARKER)) + .rail(rail -> rail.from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)) .entry(TimelineMarker.dot(10, INK), e -> e .title("Runs on").body(longBody())) .entry(TimelineMarker.dot(10, INK), e -> e @@ -296,7 +296,7 @@ void aHollowMarkerBreaksTheRailCleanlyBecauseTheRailIsUnderIt() throws Exception } /** The scene both extent baselines draw; they differ by this argument and nothing else. */ - private static DocumentSession extentScene(TimelineRailExtent extent) throws Exception { + private static DocumentSession extentScene(TimelineRailEnd both) throws Exception { DocumentSession session = GraphCompose.document() .pageSize(300, 250) .margin(DocumentInsets.of(18)) @@ -305,7 +305,7 @@ private static DocumentSession extentScene(TimelineRailExtent extent) throws Exc .addTimeline(t -> t .connector(RAIL, 1.5) .spacing(16) - .rail(rail -> rail.extent(extent)) + .rail(rail -> rail.from(both).to(both)) .entry(TimelineMarker.dot(9, INK), e -> e .title("Tall entry").meta("2023 - Present") .body("A body long enough to run to three lines on a page this " diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/professional_sidebar-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/professional_sidebar-page-0.png index bc1d27f317634cf6d5c68231b05f58cdd44c34bf..57fd32c53f0d10dc478c9cab2c165f568d0cd2c0 100644 GIT binary patch delta 31604 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
        ;3)2(3!mqrt&D1j~1qOFFk? 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 OB`>WaRsG&L@c#gh392Rl delta 31614 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 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java index fb8e7da91..cf067fe65 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java @@ -3,7 +3,7 @@ import com.demcha.compose.document.dsl.ParagraphBuilder; import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.TimelineMarker; -import com.demcha.compose.document.dsl.TimelineRailExtent; +import com.demcha.compose.document.dsl.TimelineRailEnd; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.LayerAlign; import com.demcha.compose.document.node.TextAlign; @@ -190,7 +190,7 @@ private static void renderExperience(SectionBuilder section, EntriesSection expe timeline.markerOnRail() .rail(rail -> rail .stroke(DocumentStroke.of(RAIL, RAIL_WIDTH)) - .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)) .axisWidth(MARKER_DIAMETER) .markerGap(ENTRY_TEXT_INSET - MARKER_DIAMETER / 2.0) .gutter(0) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java index 100b4a38e..155cf9b64 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java @@ -6,7 +6,7 @@ import com.demcha.compose.document.dsl.ShapeBuilder; import com.demcha.compose.document.dsl.ShapeContainerBuilder; import com.demcha.compose.document.dsl.TimelineMarker; -import com.demcha.compose.document.dsl.TimelineRailExtent; +import com.demcha.compose.document.dsl.TimelineRailEnd; import com.demcha.compose.document.image.DocumentImageData; import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.node.DocumentNode; @@ -323,9 +323,13 @@ private static void renderEducation(SectionBuilder section, EntriesSection educa EDUCATION_RAIL_X - EDUCATION_MARKER_DIAMETER / 2.0)); holder.addTimeline(timeline -> { timeline.markerOnRail() + // Begin at the first dot, run on to the foot of the entries. That is + // what this block is drawn as, and what the mask-and-redraw it replaced + // was trying to fake — it could not be asked for while the rail's two + // ends were one value. .rail(rail -> rail .stroke(DocumentStroke.of(RULE_MUTED, EDUCATION_RAIL_WIDTH)) - .extent(TimelineRailExtent.ENTRY_BOUNDS)) + .from(TimelineRailEnd.MARKER).to(TimelineRailEnd.ENTRY_BOUND)) .axisWidth(EDUCATION_MARKER_DIAMETER) .markerGap(EDUCATION_TEXT_X - EDUCATION_MARKER_DIAMETER / 2.0) .gutter(0) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java index ed4f4c1cf..e2217e56e 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java @@ -3,7 +3,7 @@ import com.demcha.compose.document.dsl.ParagraphBuilder; import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.TimelineMarker; -import com.demcha.compose.document.dsl.TimelineRailExtent; +import com.demcha.compose.document.dsl.TimelineRailEnd; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.LayerAlign; import com.demcha.compose.document.node.TextAlign; @@ -118,7 +118,7 @@ private static void renderExperience(SectionBuilder section, EntriesSection expe timeline.markerOnRail() .rail(rail -> rail .stroke(DocumentStroke.of(DIVIDER, RAIL_THICKNESS)) - .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)) .axisWidth(MARKER_DIAMETER) .markerGap(ENTRY_TEXT_INSET - MARKER_DIAMETER / 2.0) .gutter(0) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java index 40edeb3fd..6cd796827 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java @@ -5,7 +5,7 @@ import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.TableBuilder; import com.demcha.compose.document.dsl.TimelineMarker; -import com.demcha.compose.document.dsl.TimelineRailExtent; +import com.demcha.compose.document.dsl.TimelineRailEnd; import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.LayerAlign; @@ -152,7 +152,7 @@ private static void renderExperience(SectionBuilder main, EntriesSection experie timeline.markerOnRail() .rail(rail -> rail .stroke(DocumentStroke.of(RULE, RULE_THICKNESS)) - .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)) .axisWidth(MARKER_DIAMETER) .markerGap(ENTRY_INDENT - MARKER_DIAMETER / 2.0) .gutter(0) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java index c82f280e7..22cab8056 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java @@ -1,7 +1,7 @@ package com.demcha.compose.document.templates.cv.presets; import com.demcha.compose.document.dsl.SectionBuilder; -import com.demcha.compose.document.dsl.TimelineRailExtent; +import com.demcha.compose.document.dsl.TimelineRailEnd; import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.LayerAlign; @@ -175,7 +175,7 @@ private static void renderExperience(SectionBuilder main, EntriesSection experie timeline.markerOnRail() .rail(rail -> rail .stroke(DocumentStroke.of(RULE, RULE_THICKNESS)) - .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)) .axisWidth(MARKER_DIAMETER) .markerGap(ENTRY_INDENT - MARKER_DIAMETER / 2.0) .gutter(0) @@ -318,7 +318,7 @@ private static void renderEducation(SectionBuilder main, EntriesSection educatio timeline.markerOnRail() .rail(rail -> rail .stroke(DocumentStroke.of(ACCENT, RULE_THICKNESS)) - .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)) .axisWidth(MARKER_DIAMETER) .markerGap(ENTRY_INDENT - MARKER_DIAMETER / 2.0) .gutter(0) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java index a14d5bb2f..9e32317ed 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/VioletGridBody.java @@ -5,7 +5,7 @@ import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.TableBuilder; import com.demcha.compose.document.dsl.TimelineMarker; -import com.demcha.compose.document.dsl.TimelineRailExtent; +import com.demcha.compose.document.dsl.TimelineRailEnd; import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.HorizontalAlign; @@ -250,7 +250,7 @@ static void renderExperience(PageFlowBuilder page, EntriesSection experience) { timeline.markerOnRail() .rail(rail -> rail .stroke(DocumentStroke.of(RULE, RAIL_THICKNESS)) - .extent(TimelineRailExtent.MARKER_TO_MARKER)) + .from(TimelineRailEnd.MARKER).to(TimelineRailEnd.MARKER)) .leadingColumn(DocumentRowColumn.fixed(DATE_COLUMN)) .leadingGap(DATE_TO_MARKER) .axisWidth(MARKER_DIAMETER) From 4fae35f71fb48e887a4c413164c9c26db94cc618 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 16:57:51 +0100 Subject: [PATCH 74/85] feat(api): let a list item be styled in pieces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A list item was a string in one style. A design that emphasises the opening words of each bullet had to be built as a two-column row per item, and that stops being a list: the marker becomes a table cell, the wrapped lines are the column's business rather than the item's, and nothing about it paginates as one thing. ListBuilder.addItem(Consumer) and its nested overload take the same RichText that ParagraphBuilder.rich takes, so a chip, an icon, a link or a coloured span inside an item is whatever it already is inside a paragraph. ListItem and ListItemSpec carry the runs beside the label, and prepareMarkerContentList builds the item's paragraph from them — the marker column, markerGap and contentX are the ones a plain item gets, shared rather than reimplemented. An item is content whatever its runs draw, so a row of an icon and no text stays a row; it reads as the empty string exactly as an item that draws nothing does, and the runs are what separate the two. hangingIndent(true) is required, and a list without it says so and names the call: the older layout makes the marker part of the item's text and carries one style for the whole item, so rendering the plain reading would drop every style, icon and chip silently. Runs do not fit a list of labels, so one rich item makes the list carry an item tree — a change of representation, which must not become a change of markers. A dashed flat list still dashes at its top level; a list whose author declared depth still resolves every level from the per-depth cascade and markerFor(...), the contract that is there today. The semantic DOCX export carries this one, unlike the geometry around it. Word holds a style per run inside a paragraph, so a rich item writes one Word run per authored run with the marker leading in the list's own style, and image, shape and SVG runs drop with the same one-per-kind warning a rich paragraph's do. Laying nothing out, it needs no opt-in. Which kinds of run read as text is now stated once, in InlineRun.plainText and InlineRun.textRuns; ParagraphNode.text() and inlineTextRuns() come from those, so a new run variant has one place to be taught rather than one per surface. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 39 ++++ .../compose/document/dsl/ListBuilder.java | 114 ++++++++-- .../document/layout/ListItemNormalizer.java | 7 +- .../document/layout/TextFlowSupport.java | 35 +++- .../layout/payloads/ListItemSpec.java | 25 ++- .../compose/document/node/InlineRun.java | 72 +++++++ .../compose/document/node/ListItem.java | 74 ++++++- .../compose/document/node/ParagraphNode.java | 28 +-- .../document/node/InlineRunPlainTextTest.java | 95 +++++++++ knowledge/api/authoring.json | 143 ++++++++++++- knowledge/api/authoring.md | 13 +- .../document/api/ListHangingIndentTest.java | 196 ++++++++++++++++++ .../semantic/docx/DocxSemanticBackend.java | 44 +++- .../docx/DocxSemanticBackendTest.java | 61 ++++++ 14 files changed, 896 insertions(+), 50 deletions(-) create mode 100644 core/src/test/java/com/demcha/compose/document/node/InlineRunPlainTextTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c54491dd..2dd5169bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -342,6 +342,45 @@ follow semantic versioning; release dates are ISO 8601. it was measured and rejected: a reserved-column approximation renders a gap that is not the one you asked for, and misaligns outright for a marker wider than the column. +- **A list item can be styled in pieces.** `ListBuilder.addItem(Consumer)` takes + the same inline runs a paragraph is made of, so `"Status: pending"` with the label bold + is one list item; `addItem(Consumer, Consumer)` lets a styled label + head a sub-tree. `addItem("plain string")` is unchanged and remains the short form. + + An item was a string in one style, so a design that emphasises the opening words of each + bullet had to be built as a two-column row per item — which stops being a list. The + marker becomes a table cell, the wrapped lines are the column's business rather than the + item's, and nothing about it paginates as one thing. + + Runs, not a second rich-text model: the same `RichText` builder `ParagraphBuilder.rich` + takes, so a chip, an icon, a link or a coloured span inside an item is whatever it already + is inside a paragraph. An item is content whatever its runs draw, which is why a row of an + icon and no text is still a row — it reads as the empty string, exactly as an item that + draws nothing does, and the runs are what separate the two. + `InlineRun.plainText(runs)` is that reading and `InlineRun.textRuns(runs)` its styled + form; a paragraph's own `text()` and `inlineTextRuns()` now come from those two, so which + kinds of run read as text is stated once instead of once per surface. + + The geometry is the marker column's, unchanged: the marker is measured, `markerGap` + applies, and the first line, the lines it wraps onto and the lines that continue on the + next page all start at one x, with the marker drawn once. Which means `hangingIndent(true)` + is required — the older layout makes the marker part of the item's text and so carries one + style for the whole item, and rendering the plain reading instead would drop silently + every style, icon and chip the author asked for. A rich item in a list that has not opted + in says so, and names the call. + + A rich item does not change what its list's marker is. Runs do not fit a list of labels, + so the list carries an item tree instead — and that is a change of representation, not of + markers: a dashed flat list still dashes at its top level when one of its items needs + styling. A list whose author declared depth is unaffected and still resolves every level + from the per-depth cascade and `markerFor(...)`. + + **The semantic DOCX export carries this one**, unlike the geometry above it: Word holds a + style per run inside a paragraph, so a rich item writes one Word run per authored run — + the marker leading in the list's own style — and image, shape and SVG runs drop with the + same one-per-kind warning a rich paragraph's do. Because the semantic export lays nothing + out, it is indifferent to `hangingIndent` and needs no opt-in to carry the runs. + - **A timeline's rail is one line, drawn from where its markers landed.** It was a left border repeated on every entry section, which is why it sat at the entry's edge whatever the markers did, could not stop short of them, and had no way to be diff --git a/core/src/main/java/com/demcha/compose/document/dsl/ListBuilder.java b/core/src/main/java/com/demcha/compose/document/dsl/ListBuilder.java index 685096e18..fe8cc2ff1 100644 --- a/core/src/main/java/com/demcha/compose/document/dsl/ListBuilder.java +++ b/core/src/main/java/com/demcha/compose/document/dsl/ListBuilder.java @@ -1,5 +1,6 @@ package com.demcha.compose.document.dsl; +import com.demcha.compose.document.node.InlineRun; import com.demcha.compose.document.node.ListItem; import com.demcha.compose.document.node.ListMarker; import com.demcha.compose.document.node.ListNode; @@ -19,7 +20,21 @@ public final class ListBuilder { private final List items = new ArrayList<>(); private final Map markerOverrides = new LinkedHashMap<>(); private String name = ""; - private boolean usedNestedAuthoring = false; + /** + * Whether the items still fit the flat {@code List} shape a list had + * before it could nest. Nesting is one reason they do not; a rich item, whose + * content is runs rather than a label, is the other — it has to reach the + * layout as a {@link ListItem}, and the flat path carries only labels. + */ + private boolean needsItemTree = false; + /** + * Whether the author declared depth. Kept apart from {@link #needsItemTree} + * because the two answer different questions, and only this one decides + * whose marker depth 0 takes: a nested list resolves every level from the + * per-depth cascade and {@link #markerFor(int, ListMarker)}, while a flat + * list's marker is its own — and a list of rich items is still flat. + */ + private boolean declaredDepth = false; private ListMarker marker = ListMarker.bullet(); private DocumentTextStyle textStyle = DocumentTextStyle.DEFAULT; private TextAlign align = TextAlign.LEFT; @@ -50,7 +65,7 @@ private static List applyMarkerOverrides(List items, ? item.marker() : overrides.get(depth); List resolvedChildren = applyMarkerOverrides(item.children(), depth + 1, overrides); - out.add(new ListItem(item.label(), effective, resolvedChildren)); + out.add(new ListItem(item.label(), item.runs(), effective, resolvedChildren)); } return List.copyOf(out); } @@ -129,13 +144,77 @@ public ListBuilder addItem(String item) { */ public ListBuilder addItem(String label, Consumer body) { Objects.requireNonNull(body, "body"); - this.usedNestedAuthoring = true; + this.needsItemTree = true; + this.declaredDepth = true; ListBuilder childScope = new ListBuilder(); body.accept(childScope); this.items.add(new ListItem(label, null, childScope.snapshotItems())); return this; } + /** + * Appends one list item whose content is styled in pieces. + * + *

        {@code "Bold label: normal description"} becomes one item rather than a + * row of two columns pretending to be one. The content is a {@link RichText} + * — the same inline runs a paragraph is made of, taken by the same builder + * {@link ParagraphBuilder#rich(Consumer)} takes — so the library has one + * rich-text model and not a second one for lists.

        + * + *

        The item lays out on the measured marker geometry: + * {@link #hangingIndent(boolean)} is required, and the layout says so if it + * is missing. The marker is measured, {@link #markerGap(double)} applies, and + * every visual line of the content — the first, the ones it wraps onto, the + * ones that continue on the next page — starts at one x. A rich item is + * content whatever its runs draw, so runs of an icon and no text are still a + * row.

        + * + *

        Seed the supplied builder with {@link RichText#plain(String)} — not + * {@code t.text(...)}: {@link RichText#text(String)} is a static factory, so + * that call compiles but builds a separate, discarded {@code RichText} and + * leaves this item empty.

        + * + * @param content callback that appends this item's inline runs + * @return this builder + * @throws NullPointerException if {@code content} is null + * @since 2.4.0 + */ + public ListBuilder addItem(Consumer content) { + Objects.requireNonNull(content, "content"); + RichText rich = RichText.empty(); + content.accept(rich); + this.needsItemTree = true; + this.items.add(ListItem.ofRuns(rich.runs())); + return this; + } + + /** + * Appends one nested list item whose own content is styled in pieces. + * + *

        {@link #addItem(Consumer)} with children, so a styled label can head a + * sub-tree.

        + * + * @param content callback that appends this item's inline runs + * @param body callback that adds children of this item + * @return this builder + * @throws NullPointerException if either callback is null + * @since 2.4.0 + */ + public ListBuilder addItem(Consumer content, Consumer body) { + Objects.requireNonNull(content, "content"); + Objects.requireNonNull(body, "body"); + this.needsItemTree = true; + this.declaredDepth = true; + RichText rich = RichText.empty(); + content.accept(rich); + ListBuilder childScope = new ListBuilder(); + body.accept(childScope); + List runs = rich.runs(); + this.items.add(new ListItem(InlineRun.plainText(runs), runs, null, + childScope.snapshotItems())); + return this; + } + /** * Overrides the marker used for items at the given depth when no * per-item marker is set. Depth 0 is the top-level marker; depth 1 @@ -404,18 +483,19 @@ public ListBuilder margin(float top, float right, float bottom, float left) { * Builds the semantic list node. * *

        When only {@link #addItem(String)} was used the result is a - * flat list (back-compat with v1.4 / v1.5). As soon as - * {@link #addItem(String, Consumer)} is called at least once the - * result is a nested list — flat items added before the first - * nested call become depth-0 leaves alongside the nested entries, - * preserving source order. Per-depth marker overrides set via - * {@link #markerFor(int, ListMarker)} are baked into each item's - * resolved marker before the node is sealed.

        + * flat list (back-compat with v1.4 / v1.5). As soon as something is + * added that a list of labels cannot hold — a nested item via + * {@link #addItem(String, Consumer)}, or a rich item via + * {@link #addItem(Consumer)}, either of them once — the result is an + * item tree; flat items added before that become depth-0 leaves + * alongside the rest, preserving source order. Per-depth marker + * overrides set via {@link #markerFor(int, ListMarker)} are baked + * into each item's resolved marker before the node is sealed.

        * * @return list node */ public ListNode build() { - if (!usedNestedAuthoring) { + if (!needsItemTree) { // Back-compat flat path. node.items() carries the labels // and node.nestedItems() is empty; rendering matches the // v1.4 / v1.5 flat-list behaviour exactly. @@ -441,7 +521,17 @@ public ListNode build() { } // Nested path. Source order across flat and nested entries is // preserved because both flow through the unified `items` list. - List resolved = applyMarkerOverrides(items, 0, markerOverrides); + // A flat list's marker is its own, whether its items are strings or + // runs. Only a list whose author declared depth hands depth 0 to the + // per-depth cascade — that is the nested contract, and markerFor(0, …) + // is how it is overridden. Without this a dashed list would render one + // bullet the moment one of its items needed styling. + Map effectiveOverrides = markerOverrides; + if (!declaredDepth) { + effectiveOverrides = new LinkedHashMap<>(markerOverrides); + effectiveOverrides.putIfAbsent(0, marker); + } + List resolved = applyMarkerOverrides(items, 0, effectiveOverrides); return new ListNode( name, List.of(), diff --git a/core/src/main/java/com/demcha/compose/document/layout/ListItemNormalizer.java b/core/src/main/java/com/demcha/compose/document/layout/ListItemNormalizer.java index 9fb9aa229..0e3561801 100644 --- a/core/src/main/java/com/demcha/compose/document/layout/ListItemNormalizer.java +++ b/core/src/main/java/com/demcha/compose/document/layout/ListItemNormalizer.java @@ -77,9 +77,12 @@ private static void normalizeNested(ListNode node, ? item.marker() : ListMarker.defaultForDepth(depth); String content = ListMarker.normalizeItemText(item.label(), node.normalizeMarkers()); - boolean rendered = rendersSomething(marker, content); + // A rich item renders whatever its runs draw, which its label — their + // plain-text reading — need not describe: runs of an icon and a chip + // carry no text at all and are still content. + boolean rendered = item.isRich() || rendersSomething(marker, content); if (rendered) { - out.add(new ListItemSpec(depth, marker, content)); + out.add(new ListItemSpec(depth, marker, content, item.runs())); } // Children are walked either way: an item that draws nothing is a // reason to skip that one row, never a reason to lose the sub-tree diff --git a/core/src/main/java/com/demcha/compose/document/layout/TextFlowSupport.java b/core/src/main/java/com/demcha/compose/document/layout/TextFlowSupport.java index 58a4a7345..f9ee65e47 100644 --- a/core/src/main/java/com/demcha/compose/document/layout/TextFlowSupport.java +++ b/core/src/main/java/com/demcha/compose/document/layout/TextFlowSupport.java @@ -238,7 +238,26 @@ private static PreparedNode prepareMarkerContentList(ListNode node, List items = new ArrayList<>(geometry.size()); for (MarkerContentItem item : geometry) { - ParagraphNode content = new ParagraphNode( + // A rich item's content is its runs, wrapped by the same inline + // algorithm a paragraph uses. That is the point of expressing it as + // runs rather than as a second rich-text model: the marker column, + // the gap and contentX resolve for it exactly as for a plain item, + // and the wrapping inside that width is the paragraph's own. + ParagraphNode content = item.spec().isRich() + ? new ParagraphNode( + "", + item.content(), + item.spec().runs(), + node.textStyle(), + node.align(), + node.lineSpacing(), + "", + DocumentTextIndent.NONE, + null, + null, + DocumentInsets.zero(), + DocumentInsets.zero()) + : new ParagraphNode( "", item.content(), node.textStyle(), @@ -320,6 +339,20 @@ private static ListNode flattenNestedListNode(ListNode node) { private static void flattenNestedItems(List items, int depth, List output) { for (ListItem item : items) { + // A rich item's content is a sequence of independently styled runs and + // a label is a single string: there is no flattening of one into the + // other that keeps what the author asked for. Rendering the plain + // reading instead would silently drop every style, icon and chip, + // which is a worse answer than saying so. This is the only walk a rich + // item can reach the legacy layout through, so the check belongs here + // rather than in a second pass over the tree. + if (item.isRich()) { + throw new IllegalStateException( + "a list item made of inline runs needs marker/content geometry: call " + + "hangingIndent(true) on the list. The legacy layout makes an item's " + + "marker part of its text and so carries one style for the whole item, " + + "which cannot hold the runs of \"" + item.label() + "\""); + } ListMarker marker = item.marker() != null ? item.marker() : ListMarker.defaultForDepth(depth); StringBuilder prefix = new StringBuilder(NESTED_LIST_INDENT_UNIT.repeat(depth)); if (marker.isVisible()) { diff --git a/core/src/main/java/com/demcha/compose/document/layout/payloads/ListItemSpec.java b/core/src/main/java/com/demcha/compose/document/layout/payloads/ListItemSpec.java index 5ec2bd98c..8dc57b214 100644 --- a/core/src/main/java/com/demcha/compose/document/layout/payloads/ListItemSpec.java +++ b/core/src/main/java/com/demcha/compose/document/layout/payloads/ListItemSpec.java @@ -1,7 +1,9 @@ package com.demcha.compose.document.layout.payloads; +import com.demcha.compose.document.node.InlineRun; import com.demcha.compose.document.node.ListMarker; +import java.util.List; import java.util.Objects; /** @@ -36,7 +38,7 @@ * @author Artem Demchyshyn * @since 2.4.0 */ -public record ListItemSpec(int depth, ListMarker marker, String content) { +public record ListItemSpec(int depth, ListMarker marker, String content, List runs) { /** * Normalizes nullable inputs and rejects a negative depth. @@ -49,6 +51,27 @@ public record ListItemSpec(int depth, ListMarker marker, String content) { } marker = marker == null ? ListMarker.none() : marker; content = content == null ? "" : content; + runs = runs == null ? List.of() : List.copyOf(runs); + } + + /** + * Creates a spec whose content is plain text. + * + * @param depth nesting depth + * @param marker the item's resolved marker + * @param content the item's text + */ + public ListItemSpec(int depth, ListMarker marker, String content) { + this(depth, marker, content, List.of()); + } + + /** + * Returns whether this item's content is runs rather than plain text. + * + * @return {@code true} when the item carries inline runs + */ + public boolean isRich() { + return !runs.isEmpty(); } /** diff --git a/core/src/main/java/com/demcha/compose/document/node/InlineRun.java b/core/src/main/java/com/demcha/compose/document/node/InlineRun.java index dce057960..9fe17454c 100644 --- a/core/src/main/java/com/demcha/compose/document/node/InlineRun.java +++ b/core/src/main/java/com/demcha/compose/document/node/InlineRun.java @@ -1,5 +1,7 @@ package com.demcha.compose.document.node; +import java.util.List; + /** * Marker for a single inline run inside a {@link ParagraphNode}. * @@ -14,4 +16,74 @@ */ public sealed interface InlineRun permits InlineTextRun, InlineImageRun, InlineShapeRun, InlineSvgRun, InlineHighlightRun { + + /** + * Returns what a sequence of runs reads as in plain text. + * + *

        Text runs and highlight chips contribute their text; image, shape and + * SVG runs contribute nothing, because they are not text and inventing a + * placeholder for them would put characters in the reading that the author + * never wrote.

        + * + *

        This lives next to the {@code permits} clause on purpose. Which + * variants read as text is knowledge that has to be revisited every time a + * variant is added, and a second copy of it elsewhere is a copy that will + * be missed: the reduction is here once, and both + * {@link ParagraphNode#text()} and a rich + * {@link com.demcha.compose.document.node.ListItem#label()} are derived + * from it.

        + * + * @param runs runs in source order; {@code null} reads as empty + * @return the concatenated text of the runs that carry text + * @since 2.4.0 + */ + static String plainText(List runs) { + if (runs == null || runs.isEmpty()) { + return ""; + } + StringBuilder out = new StringBuilder(); + for (InlineRun run : runs) { + if (run instanceof InlineTextRun textRun) { + out.append(textRun.text()); + } else if (run instanceof InlineHighlightRun highlight) { + out.append(highlight.text()); + } + } + return out.toString(); + } + + /** + * Returns the runs that carry text, in source order, for the surfaces that + * consume text and its styling but cannot draw a picture — the semantic DOCX + * export, and text-only tests. + * + *

        Image, shape and SVG runs are dropped (emoji lower to SVG runs, so they + * drop too). A highlight chip degrades to a plain text run, because its + * background is a fixed-layout decoration while its text is content, and its + * newlines collapse to spaces to match how the PDF tokenizer lowers a chip — + * one line — so both surfaces read a chip the same way.

        + * + *

        That collapsing is the one thing this does not share with + * {@link #plainText(List)}, which concatenates a chip's text as authored.

        + * + * @param runs runs in source order; {@code null} reads as empty + * @return the text-carrying runs, chips degraded to plain runs + * @since 2.4.0 + */ + static List textRuns(List runs) { + if (runs == null || runs.isEmpty()) { + return List.of(); + } + List textRuns = new java.util.ArrayList<>(runs.size()); + for (InlineRun run : runs) { + if (run instanceof InlineTextRun textRun) { + textRuns.add(textRun); + } else if (run instanceof InlineHighlightRun highlight) { + String chipText = highlight.text() + .replace("\r\n", " ").replace('\r', ' ').replace('\n', ' '); + textRuns.add(new InlineTextRun(chipText, highlight.textStyle(), highlight.linkTarget())); + } + } + return List.copyOf(textRuns); + } } diff --git a/core/src/main/java/com/demcha/compose/document/node/ListItem.java b/core/src/main/java/com/demcha/compose/document/node/ListItem.java index 7a17a0357..4799bd7bc 100644 --- a/core/src/main/java/com/demcha/compose/document/node/ListItem.java +++ b/core/src/main/java/com/demcha/compose/document/node/ListItem.java @@ -16,21 +16,89 @@ * item. Direct {@code new ListItem(...)} construction is supported but * should be reserved for record-shaped fixtures and serialization.

        * - * @param label visible item text + *

        An item's content is either its {@code label} or, when it needs more than + * one style, a sequence of {@code runs} — the same {@link InlineRun} sequence a + * paragraph is made of, so {@code "Label: description"} with the label bold is + * one list item rather than a hand-built row of two columns. When {@code runs} + * is non-empty it is the content, and {@code label} is its plain-text reading, + * kept so that anything reading an item as text still can.

        + * + * @param label visible item text; the plain-text reading when {@code runs} is + * set + * @param runs inline runs making up the content, empty when the item is + * just its label * @param marker per-item marker override, or {@code null} to inherit * the per-depth default from the parent list * @param children nested child items, empty for leaves * @author Artem Demchyshyn */ -public record ListItem(String label, ListMarker marker, List children) { +public record ListItem(String label, List runs, ListMarker marker, + List children) { /** - * Normalizes nullable inputs and copy-protects {@code children}. + * Normalizes nullable inputs and copy-protects {@code runs} and {@code children}. */ public ListItem { label = label == null ? "" : label; + runs = runs == null ? List.of() : List.copyOf(runs); children = children == null ? List.of() : List.copyOf(children); } + /** + * Creates an item whose content is its label, which is all an item could + * carry before it could carry runs. + * + *

        Kept as its own constructor rather than folded into the canonical one, + * so code written against the three-argument shape still compiles and still + * links.

        + * + * @param label visible item text + * @param marker per-item marker override, or {@code null} to inherit + * @param children nested child items, empty for leaves + */ + public ListItem(String label, ListMarker marker, List children) { + this(label, List.of(), marker, children); + } + + /** + * Creates a leaf item whose content is a sequence of inline runs, reading as + * whatever those runs say. + * + * @param runs the runs making up the content + * @return leaf item + * @since 2.4.0 + */ + public static ListItem ofRuns(List runs) { + return new ListItem(InlineRun.plainText(runs), runs, null, List.of()); + } + + /** + * Creates a leaf item whose content is a sequence of inline runs, reading as + * the given label. + * + *

        Use this over {@link #ofRuns(List)} when the runs draw something that + * does not read as itself — a row that is an icon and a chip has no text to + * derive a label from, and {@code label} is then what anything reading the + * item as text gets.

        + * + * @param label plain-text reading of the runs + * @param runs the runs making up the content + * @return leaf item + * @since 2.4.0 + */ + public static ListItem ofRuns(String label, List runs) { + return new ListItem(label, runs, null, List.of()); + } + + /** + * Returns whether this item's content is runs rather than its label alone. + * + * @return {@code true} when the item carries inline runs + * @since 2.4.0 + */ + public boolean isRich() { + return !runs.isEmpty(); + } + /** * Creates a leaf item with the given label and inherited marker. * diff --git a/core/src/main/java/com/demcha/compose/document/node/ParagraphNode.java b/core/src/main/java/com/demcha/compose/document/node/ParagraphNode.java index 888f15f21..0f1ba15dd 100644 --- a/core/src/main/java/com/demcha/compose/document/node/ParagraphNode.java +++ b/core/src/main/java/com/demcha/compose/document/node/ParagraphNode.java @@ -60,15 +60,8 @@ public record ParagraphNode( inlineRuns = normalizeInlineRuns(inlineRuns); text = Objects.requireNonNullElse(text, ""); if (text.isBlank() && !inlineRuns.isEmpty()) { - StringBuilder concatenated = new StringBuilder(); - for (InlineRun run : inlineRuns) { - if (run instanceof InlineTextRun textRun) { - concatenated.append(textRun.text()); - } else if (run instanceof InlineHighlightRun highlight) { - concatenated.append(highlight.text()); - } - } - text = concatenated.toString(); + // One reduction, shared with a rich list item: see InlineRun.plainText. + text = InlineRun.plainText(inlineRuns); } textStyle = textStyle == null ? DocumentTextStyle.DEFAULT : textStyle; align = align == null ? TextAlign.LEFT : align; @@ -338,21 +331,8 @@ private static List normalizeInlineRuns(List runs) { * @return inline text runs in source order */ public List inlineTextRuns() { - if (inlineRuns.isEmpty()) { - return List.of(); - } - List textRuns = new java.util.ArrayList<>(inlineRuns.size()); - for (InlineRun run : inlineRuns) { - if (run instanceof InlineTextRun textRun) { - textRuns.add(textRun); - } else if (run instanceof InlineHighlightRun highlight) { - // Collapse newlines to spaces to match how the PDF tokenizer - // lowers a chip (it stays one line), so both text surfaces agree. - String chipText = highlight.text().replace("\r\n", " ").replace('\r', ' ').replace('\n', ' '); - textRuns.add(new InlineTextRun(chipText, highlight.textStyle(), highlight.linkTarget())); - } - } - return List.copyOf(textRuns); + // One reduction, shared with a rich list item: see InlineRun.textRuns. + return InlineRun.textRuns(inlineRuns); } } diff --git a/core/src/test/java/com/demcha/compose/document/node/InlineRunPlainTextTest.java b/core/src/test/java/com/demcha/compose/document/node/InlineRunPlainTextTest.java new file mode 100644 index 000000000..48b59a4ee --- /dev/null +++ b/core/src/test/java/com/demcha/compose/document/node/InlineRunPlainTextTest.java @@ -0,0 +1,95 @@ +package com.demcha.compose.document.node; + +import com.demcha.compose.document.dsl.RichText; +import com.demcha.compose.document.style.DocumentColor; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * The two reductions of a run sequence, and the fact that every surface needing + * one shares them. + * + *

        Which {@link InlineRun} variants carry text is knowledge that has to be + * revisited whenever a variant is added, so it lives in one place. These tests + * guard that: a second copy of the rule elsewhere would pass its own tests and + * drift from this one silently.

        + */ +class InlineRunPlainTextTest { + + private static final DocumentColor INK = DocumentColor.rgb(0x33, 0x66, 0x99); + private static final DocumentColor PAPER = DocumentColor.rgb(0xEE, 0xEE, 0xEE); + + @Test + void textAndChipsReadAsTheirTextAndPicturesReadAsNothing() { + List runs = RichText.empty() + .bold("Status: ") + .dot(6.0, INK) + .chip("pending", INK, PAPER) + .plain(" today") + .runs(); + + assertThat(InlineRun.plainText(runs)) + .as("the dot contributes nothing rather than a placeholder character") + .isEqualTo("Status: pending today"); + } + + @Test + void aNullOrEmptySequenceReadsAsNothing() { + assertThat(InlineRun.plainText(null)).isEmpty(); + assertThat(InlineRun.plainText(List.of())).isEmpty(); + assertThat(InlineRun.textRuns(null)).isEmpty(); + assertThat(InlineRun.textRuns(List.of())).isEmpty(); + } + + @Test + void textRunsKeepStylesDropPicturesAndFlattenAChipToOneLine() { + List runs = RichText.empty() + .bold("Head") + .dot(6.0, INK) + .chip("two\nlines", INK, PAPER) + .runs(); + + List textRuns = InlineRun.textRuns(runs); + assertThat(textRuns).as("the dot is dropped, the chip degrades to text").hasSize(2); + assertThat(textRuns.get(0).text()).isEqualTo("Head"); + assertThat(textRuns.get(0).textStyle()) + .as("a run keeps the style it was authored with") + .isNotNull(); + assertThat(textRuns.get(1).text()) + .as("a chip stays one line wherever it is read, so its newline is a space") + .isEqualTo("two lines"); + } + + @Test + void aParagraphsTextIsThatSameReading() { + List runs = RichText.empty() + .bold("Status: ") + .chip("pending", INK, PAPER) + .runs(); + ParagraphNode paragraph = new ParagraphNode("", "", runs, null, null, 0.0, "", + null, null, null, null, null); + + assertThat(paragraph.text()).isEqualTo(InlineRun.plainText(runs)); + assertThat(paragraph.inlineTextRuns()).isEqualTo(InlineRun.textRuns(runs)); + } + + @Test + void aRichListItemReadsAsThatSameReadingToo() { + List runs = RichText.empty() + .bold("Status: ") + .chip("pending", INK, PAPER) + .runs(); + + assertThat(ListItem.ofRuns(runs).label()).isEqualTo("Status: pending"); + assertThat(ListItem.ofRuns(runs).isRich()).isTrue(); + assertThat(ListItem.of("plain").isRich()) + .as("an item that is only a label is not rich, so it keeps the label path") + .isFalse(); + assertThat(ListItem.ofRuns("Done", runs).label()) + .as("an explicit reading wins, for runs that draw something that is not text") + .isEqualTo("Done"); + } +} diff --git a/knowledge/api/authoring.json b/knowledge/api/authoring.json index c263a71ff..81f3a8a42 100644 --- a/knowledge/api/authoring.json +++ b/knowledge/api/authoring.json @@ -23,9 +23,9 @@ ], "counts": { "types": 237, - "methods": 2109, + "methods": 2118, "constants": 236, - "generated": 1125 + "generated": 1128 }, "packages": [ { @@ -9221,6 +9221,38 @@ } ] }, + { + "kind": "method", + "name": "addItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "Consumer", + "name": "content" + } + ] + }, + { + "kind": "method", + "name": "addItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "Consumer", + "name": "content" + }, + { + "type": "Consumer", + "name": "body" + } + ] + }, { "kind": "method", "name": "markerFor", @@ -18698,7 +18730,36 @@ "kind": "interface", "modifiers": [], "artifact": "graph-compose-core", - "members": [] + "members": [ + { + "kind": "method", + "name": "plainText", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "textRuns", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "List", + "name": null + } + ] + } + ] }, { "name": "InlineShapeRun", @@ -20353,6 +20414,10 @@ "type": "String", "name": null }, + { + "type": "List", + "name": null + }, { "type": "ListMarker", "name": null @@ -20363,6 +20428,69 @@ } ] }, + { + "kind": "constructor", + "name": "ListItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "ListMarker", + "name": "marker" + }, + { + "type": "List", + "name": "children" + } + ] + }, + { + "kind": "method", + "name": "ofRuns", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ListItem", + "params": [ + { + "type": "List", + "name": "runs" + } + ] + }, + { + "kind": "method", + "name": "ofRuns", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ListItem", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "List", + "name": "runs" + } + ] + }, + { + "kind": "method", + "name": "isRich", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, { "kind": "method", "name": "of", @@ -20413,6 +20541,15 @@ "returns": "String", "params": [] }, + { + "kind": "method", + "name": "runs", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, { "kind": "method", "name": "marker", diff --git a/knowledge/api/authoring.md b/knowledge/api/authoring.md index 8c8c941b6..0cba02ff1 100644 --- a/knowledge/api/authoring.md +++ b/knowledge/api/authoring.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 237 · methods: 2109 · constants: 236 · compiler-generated members: 1125 +Types: 237 · methods: 2118 · constants: 236 · compiler-generated members: 1128 ## com.demcha.compose @@ -751,6 +751,8 @@ Types: 237 · methods: 2109 · constants: 236 · compiler-generated members: 112 - `ListBuilder items(List items)` - `ListBuilder addItem(String item)` - `ListBuilder addItem(String label, Consumer body)` +- `ListBuilder addItem(Consumer content)` +- `ListBuilder addItem(Consumer content, Consumer body)` - `ListBuilder markerFor(int depth, ListMarker marker)` - `ListBuilder marker(ListMarker marker)` - `ListBuilder marker(String marker)` @@ -1404,6 +1406,8 @@ Types: 237 · methods: 2109 · constants: 236 · compiler-generated members: 112 - `DocumentLinkTarget linkTarget()` ### InlineRun (interface) +- `String plainText(List)` +- `List textRuns(List)` ### InlineShapeRun (record) - `new InlineShapeRun(List, InlineImageAlignment, double, DocumentLinkTarget)` @@ -1500,11 +1504,16 @@ Types: 237 · methods: 2109 · constants: 236 · compiler-generated members: 112 - `boolean keepWithNext()` ### ListItem (record) -- `new ListItem(String, ListMarker, List)` +- `new ListItem(String, List, ListMarker, List)` +- `new ListItem(String label, ListMarker marker, List children)` +- `ListItem ofRuns(List runs)` +- `ListItem ofRuns(String label, List runs)` +- `boolean isRich()` - `ListItem of(String label)` - `ListItem of(String label, List children)` - `boolean isLeaf()` - `String label()` +- `List runs()` - `ListMarker marker()` - `List children()` diff --git a/qa/src/test/java/com/demcha/compose/document/api/ListHangingIndentTest.java b/qa/src/test/java/com/demcha/compose/document/api/ListHangingIndentTest.java index c57f55a6b..e3edb3d88 100644 --- a/qa/src/test/java/com/demcha/compose/document/api/ListHangingIndentTest.java +++ b/qa/src/test/java/com/demcha/compose/document/api/ListHangingIndentTest.java @@ -7,8 +7,12 @@ import com.demcha.compose.document.layout.PlacedNode; import com.demcha.compose.document.layout.payloads.ParagraphFragmentPayload; import com.demcha.compose.document.layout.payloads.ParagraphLine; +import com.demcha.compose.document.layout.payloads.ParagraphShapeSpan; +import com.demcha.compose.document.layout.payloads.ParagraphTextSpan; import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.engine.components.content.text.TextDecoration; import org.apache.pdfbox.Loader; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; @@ -21,6 +25,7 @@ import java.util.function.Consumer; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.within; /** @@ -171,6 +176,188 @@ void aMarkerOnlyRowKeepsItsPlaceItsMarkerAndItsHeight() throws Exception { assertThat(firstToSecond).isEqualTo(secondToThird, within(EPS)); } + // --- rich items --------------------------------------------------------- + + @Test + void aRichItemSitsInTheSameMarkerColumnAndContentOriginAsAPlainOne() throws Exception { + // The same reading, authored twice: once as a string, once as runs. The + // point of expressing styled content as inline runs rather than as a + // second rich-text model is that nothing about the row's geometry knows + // the difference. + Rendered plain = render(200, 240, l -> l.bullet().hangingIndent(true) + .addItem("Status: pending")); + Rendered rich = render(200, 240, l -> l.bullet().hangingIndent(true) + .addItem(t -> t.bold("Status: ").plain("pending"))); + + assertThat(rich.fragments()).as("one marker, one content block").hasSize(2); + PlacedFragment marker = rich.fragments().get(0); + PlacedFragment content = rich.fragments().get(1); + + assertThat(texts(marker)).containsExactly("•"); + assertThat(marker.x()).isEqualTo(12.000, within(EPS)); + assertThat(marker.width()).as("the marker is measured, not skipped") + .isEqualTo(4.900, within(EPS)); + assertThat(content.x()).isEqualTo(20.900, within(EPS)); + assertThat(content.x()).as("the same origin a plain item gets") + .isEqualTo(plain.fragments().get(1).x(), within(EPS)); + assertThat(content.width()).as("and the same content column") + .isEqualTo(plain.fragments().get(1).width(), within(EPS)); + + // One row, not two: the runs are content of a single item. + assertThat(texts(content)).containsExactly("Status: pending"); + assertThat(rich.glyphs()).allSatisfy(g -> assertThat(g.page()).isZero()); + } + + @Test + void eachRunOfARichItemKeepsItsOwnStyle() throws Exception { + Rendered rich = render(200, 240, l -> l.bullet().hangingIndent(true) + .addItem(t -> t.bold("Status: ").plain("pending"))); + + // Word spans are what the wrapper produces, so the authored runs are + // read back by their text rather than by a span count. + List words = textSpans(rich.fragments().get(1)).stream() + .filter(s -> !s.text().isBlank()) + .toList(); + assertThat(words).hasSize(2); + assertThat(words.get(0).text()).isEqualTo("Status:"); + assertThat(words.get(0).textStyle().decoration()).isEqualTo(TextDecoration.BOLD); + assertThat(words.get(1).text()).isEqualTo("pending"); + assertThat(words.get(1).textStyle().decoration()) + .as("a run with no style of its own inherits the list's") + .isEqualTo(TextDecoration.DEFAULT); + + // And the styles are load-bearing: the bold half measures wider than the + // same characters would have if the item were one face throughout. + Rendered flat = render(200, 240, l -> l.bullet().hangingIndent(true) + .addItem("Status: pending")); + assertThat(lineWidths(rich.fragments().get(1)).get(0)) + .as("bold glyphs are wider, so the mixed line is the wider line") + .isGreaterThan(lineWidths(flat.fragments().get(1)).get(0) + EPS); + } + + @Test + void aRichItemWrapsInsideItsContentColumnAndEveryLineStartsAtTheOrigin() throws Exception { + Rendered rendered = render(165, 240, l -> l.bullet().hangingIndent(true) + .addItem(t -> t.bold("Lead: ").plain( + "the rest of this item is long enough to wrap across several visual " + + "lines while the item keeps one bullet."))); + + PlacedFragment content = rendered.fragments().get(1); + assertThat(content.x()).isEqualTo(20.900, within(EPS)); + assertThat(content.width()).isEqualTo(132.100, within(EPS)); + assertThat(texts(content)).hasSizeGreaterThanOrEqualTo(3); + + // Wrapped inside the content column, not inside the row. + assertThat(lineWidths(content)) + .allSatisfy(w -> assertThat(w).isLessThanOrEqualTo(content.width() + EPS)); + assertThat(lineWidths(content).stream().mapToDouble(Double::doubleValue).max().orElseThrow()) + .isGreaterThan(content.width() * 0.75); + + // The bold run is on the first line only; the continuation is the plain + // run, and it starts at the same origin rather than under the marker. + assertThat(textSpans(content).get(0).textStyle().decoration()).isEqualTo(TextDecoration.BOLD); + assertThat(rendered.glyphs().stream().filter(g -> !g.text().equals("•"))) + .allSatisfy(g -> assertThat(g.x()).isEqualTo(20.900, within(EPS))); + } + + @Test + void aRichItemCrossingAPageDrawsItsMarkerOnceAndKeepsItsContentOrigin() throws Exception { + Rendered rendered = render(150, 70, l -> l.bullet().hangingIndent(true) + .addItem(t -> t.bold("Lead: ").plain( + "the rest of this item is long enough to wrap across many visual lines " + + "so that it has to cross a page boundary and continue on the following " + + "page with its indent intact and unchanged."))); + + assertThat(rendered.graph().totalPages()).isGreaterThanOrEqualTo(2); + assertThat(markerCount(rendered)) + .as("the marker belongs to the item, not to each page of it") + .isEqualTo(1); + + for (int page = 0; page < rendered.graph().totalPages(); page++) { + PlacedFragment content = onPage(rendered, page).stream() + .filter(f -> !texts(f).equals(List.of("•"))) + .findFirst() + .orElseThrow(); + assertThat(content.x()).as("page %d contentX", page).isEqualTo(20.900, within(EPS)); + assertThat(content.width()).as("page %d contentWidth", page).isEqualTo(117.100, within(EPS)); + } + assertThat(rendered.glyphs().stream().filter(g -> !g.text().equals("•"))) + .allSatisfy(g -> assertThat(g.x()).isEqualTo(20.900, within(EPS))); + } + + @Test + void aRichParentsChildrenHangUnderItsText() throws Exception { + Rendered rendered = render(220, 240, l -> l.hangingIndent(true) + .addItem(t -> t.bold("Top"), c -> c.addItem("Child"))); + + List fragments = rendered.fragments(); + assertThat(fragments).hasSize(4); + assertThat(fragments.get(0).x()).isEqualTo(12.000, within(EPS)); + assertThat(fragments.get(1).x()).isEqualTo(20.900, within(EPS)); + assertThat(fragments.get(2).x()).as("the child's marker starts at the parent's text") + .isEqualTo(fragments.get(1).x(), within(EPS)); + assertThat(fragments.get(3).x()).isEqualTo(32.684, within(EPS)); + assertThat(textSpans(fragments.get(1)).get(0).textStyle().decoration()) + .as("a styled label still heads the sub-tree") + .isEqualTo(TextDecoration.BOLD); + } + + @Test + void aRichItemThatDrawsNoTextIsStillARowOfItsOwn() throws Exception { + // A row whose runs are a shape and nothing else reads as "", which is + // exactly the reading an item that draws nothing has — and with no + // marker to keep it either, the two are indistinguishable by text. What + // separates them is the runs, so that is what decides whether the row + // survives normalization. + Rendered rendered = render(200, 240, l -> l.noMarker().hangingIndent(true) + .addItem("Alpha") + .addItem(t -> t.dot(6.0, DocumentColor.rgb(0x33, 0x66, 0x99))) + .addItem("Beta")); + + List fragments = rendered.fragments(); + assertThat(fragments).as("three rows, content only — a markerless list draws no marker") + .hasSize(3); + assertThat(texts(fragments.get(1))).as("no invented filler text").containsExactly(""); + assertThat(fragments.get(1).height()).as("a real row with a real height").isPositive(); + + // The dot is a span of the row, so the row is as tall as the dot needs. + assertThat(((ParagraphFragmentPayload) fragments.get(1).payload()).lines().get(0).spans()) + .hasAtLeastOneElementOfType(ParagraphShapeSpan.class); + + // Rows stay evenly spaced, so the shape row occupies one of them. + double firstToSecond = fragments.get(0).y() - fragments.get(1).y(); + double secondToThird = fragments.get(1).y() - fragments.get(2).y(); + assertThat(firstToSecond).isEqualTo(secondToThird, within(EPS)); + } + + @Test + void aFlatListsOwnMarkerStillAppliesWhenOneOfItsItemsIsRich() throws Exception { + // A rich item makes the list carry an item tree, because runs do not fit + // a list of labels. That is a representation change and must not become + // a marker change: the author asked for dashes. + Rendered rendered = render(200, 240, l -> l.dash().hangingIndent(true) + .addItem("Plain") + .addItem(t -> t.bold("Rich"))); + + assertThat(texts(rendered.fragments().get(0))).containsExactly("-"); + assertThat(texts(rendered.fragments().get(2))) + .as("the rich row takes the same marker as the plain one") + .containsExactly("-"); + assertThat(rendered.fragments().get(2).x()) + .isEqualTo(rendered.fragments().get(0).x(), within(EPS)); + assertThat(rendered.fragments().get(3).x()) + .isEqualTo(rendered.fragments().get(1).x(), within(EPS)); + } + + @Test + void aRichItemWithoutTheOptInSaysSoInsteadOfDroppingItsStyles() throws Exception { + assertThatThrownBy(() -> render(200, 240, l -> l.bullet() + .addItem(t -> t.bold("Status: ").plain("pending")))) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("hangingIndent(true)") + .hasMessageContaining("Status: pending"); + } + // --- nesting ----------------------------------------------------------- @Test @@ -443,6 +630,15 @@ private static List lineWidths(PlacedFragment fragment) { .toList(); } + private static List textSpans(PlacedFragment fragment) { + return ((ParagraphFragmentPayload) fragment.payload()).lines().stream() + .map(ParagraphLine::spans) + .flatMap(List::stream) + .filter(ParagraphTextSpan.class::isInstance) + .map(ParagraphTextSpan.class::cast) + .toList(); + } + private static List texts(PlacedFragment fragment) { return ((ParagraphFragmentPayload) fragment.payload()).lines().stream() .map(ParagraphLine::text) diff --git a/render-docx/src/main/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackend.java b/render-docx/src/main/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackend.java index 713ac5c93..de47d0237 100644 --- a/render-docx/src/main/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackend.java +++ b/render-docx/src/main/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackend.java @@ -338,7 +338,11 @@ private void warnUnsupported(DocumentNode node) { * no signal at all, weaker than the block-level drop path. */ private void warnDroppedInlineRuns(ParagraphNode node) { - for (InlineRun run : node.inlineRuns()) { + warnDroppedInlineRuns(node.inlineRuns()); + } + + private void warnDroppedInlineRuns(List runs) { + for (InlineRun run : runs) { if (run instanceof InlineTextRun || run instanceof InlineHighlightRun) { continue; } @@ -389,7 +393,11 @@ private void writeNestedItem(XWPFDocument document, item.marker() != null ? item.marker() : com.demcha.compose.document.node.ListMarker.defaultForDepth(depth); - writeListLine(document, list.textStyle(), marker.prefix() + item.label(), depth); + if (item.isRich()) { + writeRichListLine(document, list.textStyle(), marker.prefix(), item, depth); + } else { + writeListLine(document, list.textStyle(), marker.prefix() + item.label(), depth); + } for (com.demcha.compose.document.node.ListItem child : item.children()) { writeNestedItem(document, list, child, depth + 1); } @@ -403,6 +411,38 @@ private void writeListLine(XWPFDocument document, DocumentTextStyle style, run.setText(" ".repeat(depth) + text); } + /** + * Writes a rich item as one Word run per inline run, the way + * {@link #writeParagraphRuns} writes a rich paragraph. + * + *

        This is the one part of the opt-in marker/content list the semantic + * export can reproduce, and it reproduces it exactly. The geometry — the + * measured marker column, the gap, the shared content origin — is + * unavailable here for the reason {@code hangingIndent} documents. Which + * piece of an item is bold is not geometry: Word carries a style per run + * inside a paragraph, so writing the item's plain reading in one face would + * be dropping something Word can hold.

        + * + *

        The indent and the marker stay one leading run in the item's own style, + * unchanged from the plain path, so a list of mixed plain and rich items + * writes the same markers down its whole length.

        + */ + private void writeRichListLine(XWPFDocument document, DocumentTextStyle style, + String markerPrefix, + com.demcha.compose.document.node.ListItem item, + int depth) { + warnDroppedInlineRuns(item.runs()); + XWPFParagraph para = document.createParagraph(); + XWPFRun leading = para.createRun(); + applyStyle(leading, style); + leading.setText(" ".repeat(depth) + markerPrefix); + for (InlineTextRun run : com.demcha.compose.document.node.InlineRun.textRuns(item.runs())) { + XWPFRun docRun = para.createRun(); + applyStyle(docRun, run.textStyle() == null ? style : run.textStyle()); + docRun.setText(run.text() == null ? "" : run.text()); + } + } + /** * Semantic chart fallback: the semantic export has no layout pass, so the * chart's compiled vector geometry is unavailable here. The chart's diff --git a/render-docx/src/test/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackendTest.java b/render-docx/src/test/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackendTest.java index 588cfed06..be3b6f741 100644 --- a/render-docx/src/test/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackendTest.java +++ b/render-docx/src/test/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackendTest.java @@ -13,6 +13,7 @@ import com.demcha.compose.document.table.DocumentTableColumn; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; +import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFTable; import org.junit.jupiter.api.Test; @@ -142,6 +143,66 @@ void nestedListItemsKeepTheirCustomMarkers() throws Exception { } } + @Test + void aRichListItemKeepsOneWordRunPerAuthoredRun() throws Exception { + try (XWPFDocument document = new XWPFDocument( + new ByteArrayInputStream(richListDocx(true)))) { + List paragraphs = document.getParagraphs().stream() + .filter(p -> !p.getText().isBlank()) + .toList(); + assertThat(paragraphs).hasSize(2); + + // The marker still reads the same down the whole list, and the + // item's text is all there. The geometry hangingIndent(true) asks + // for has no Word analogue; which piece of an item is bold does. + assertThat(paragraphs.get(0).getText()).isEqualTo("- Plain item"); + XWPFParagraph rich = paragraphs.get(1); + assertThat(rich.getText()).isEqualTo("- Status: pending"); + assertThat(rich.getRuns().stream().map(XWPFRun::text).toList()) + .as("the marker leads in the list's own style, then one run each") + .containsExactly("- ", "Status: ", "pending"); + assertThat(rich.getRuns().stream().map(XWPFRun::isBold).toList()) + .as("and only the bold run is bold") + .containsExactly(false, true, false); + } + } + + @Test + void aRichListItemExportsTheSameWhetherOrNotTheListOptedIntoMarkerGeometry() throws Exception { + // hangingIndent is fixed-layout geometry, and the semantic export lays + // nothing out — so unlike the PDF path, which needs the opt-in before it + // can carry runs at all, this one is indifferent to it. Word owns the + // layout here and can hold a run's style either way. + assertThat(runStructure(richListDocx(false))) + .isEqualTo(runStructure(richListDocx(true))); + } + + private static byte[] richListDocx(boolean hangingIndent) throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(595, 842) + .margin(DocumentInsets.of(36)) + .create()) { + session.dsl().pageFlow().name("Flow") + .addList(list -> list + .dash() + .hangingIndent(hangingIndent) + .addItem("Plain item") + .addItem(t -> t.bold("Status: ").plain("pending"))) + .build(); + return session.export(new DocxSemanticBackend()); + } + } + + private static List runStructure(byte[] docxBytes) throws Exception { + try (XWPFDocument document = new XWPFDocument(new ByteArrayInputStream(docxBytes))) { + return document.getParagraphs().stream() + .filter(p -> !p.getText().isBlank()) + .flatMap(p -> p.getRuns().stream()) + .map(run -> run.text() + "|bold=" + run.isBold()) + .toList(); + } + } + @Test void listInsideASectionIsExported() throws Exception { byte[] docxBytes; From c05cebe389d2e686846949f8c312af2979b3b7df Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 17:27:15 +0100 Subject: [PATCH 75/85] feat(api): let a list marker be drawn and carry its own colour MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A marker's one span was built in the list's own text style, so a design with an accent mark beside near-black copy could not be written as a list. What the designs that wanted it did instead was a paragraph per item — the mark, then a run of spaces standing in for the gap, then the text — which buys the mark and loses the column. Measured on that construction at a width that wraps: the first line's text starts at 25.246 and every line after it at 12.000, because a paragraph has no marker column to hang under. The spaces cost too; rounded to a whole count and then measured at each item's own type size, one declared 9.175pt gap came out as 9.308pt in one column of a real CV and 8.356pt in another. ListBuilder.marker(Consumer) takes the marker as inline runs — the same runs a paragraph and a list item are made of — so a disc, an icon, or a glyph in a colour of its own all go through one mechanism. marker(String) is unchanged. A drawn marker is measured as what it draws: a disc's column is its diameter, an icon's is its box. It is measured once per distinct marker, through the pipeline that measures the items' own content, which is why no renderer needed a new branch — the marker's pieces are ordinary paragraph spans, and whatever draws a run inside a paragraph draws it inside a marker column. markerGap is then points of real space and contentX is markerX + width + gap exactly. Everything the marker column already promised holds: one x for every visual line of an item, the marker drawn once when an item continues onto later pages, a child's marker starting where its parent's text does, and the marker riding the item's first baseline without making the row taller. One drawn larger than that line overflows it, the answer a marker wider than its column already gets. hangingIndent(true) is therefore required, and the layout says so when it is missing: a drawn marker's plain reading is empty, so the older marker-in-text layout would render the list unmarked with no signal. No lambda overload of markerFor(int, ListMarker): null clears a per-depth override there, and a second overload would make that call ambiguous for code that already compiles. A drawn marker at depth goes through ListMarker.ofRuns. In the semantic DOCX export a text marker keeps the colour and face it was given, because a run's style is something Word holds; one that draws a disc or an icon has no Word analogue, so it drops with the export's usual per-kind warning and its item is written unmarked rather than taking a glyph nobody asked for. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 39 +++ .../compose/document/dsl/ListBuilder.java | 43 +++ .../document/layout/ListMarkerGeometry.java | 29 +- .../document/layout/TextFlowSupport.java | 105 +++++- .../layout/payloads/MarkerContentItem.java | 38 +- .../compose/document/node/ListMarker.java | 67 +++- knowledge/api/authoring.json | 68 +++- knowledge/api/authoring.md | 9 +- .../document/api/ListDrawnMarkerTest.java | 331 ++++++++++++++++++ .../semantic/docx/DocxSemanticBackend.java | 75 +++- .../docx/DocxSemanticBackendTest.java | 45 +++ 11 files changed, 805 insertions(+), 44 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/api/ListDrawnMarkerTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dd5169bc..c6ba7fd7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -381,6 +381,45 @@ follow semantic versioning; release dates are ISO 8601. same one-per-kind warning a rich paragraph's do. Because the semantic export lays nothing out, it is indifferent to `hangingIndent` and needs no opt-in to carry the runs. +- **A list marker can be drawn, and can carry a colour of its own.** + `ListBuilder.marker(Consumer)` takes the marker as inline runs, so + `m -> m.dot(4, ACCENT)` is a coloured disc, `m -> m.color("•", ACCENT)` is an accent + bullet beside near-black copy, and `m -> m.svgIcon(icon, 8)` is an icon. + `marker(String)` is unchanged and remains the simple form. + + The marker's one span was built in the list's own text style, so a design with an accent + mark and dark text could not be written as a list at all. What the designs that wanted it + did instead was a paragraph per item — the mark, then a run of spaces standing in for the + gap, then the text — which buys the mark and loses the column. Measured on that + construction at a width that wraps: the first line's text starts at 25.246 and every line + after it at 12.000, because a paragraph has no marker column to hang under. The spaces are + a second cost. Rounded to a whole count and then measured at each item's own type size, + one declared 9.175pt gap came out as 9.308pt in one column of a real CV and 8.356pt in + another — the same constant, two gaps. + + A drawn marker is measured as what it draws: a disc's column is its diameter, an icon's is + its box. Nothing is counted in characters and nothing is approximated, so `markerGap` is + points of real space after it and `contentX` is `markerX + width + gap` exactly. It is + measured once per distinct marker for the whole list, through the same pipeline that + measures the items' own content — which is also why a marker can be anything an inline run + can be, and why no renderer needed a new branch to draw one. + + Everything the marker column already promised holds: every visual line of an item starts at + one x, the marker is drawn once when an item continues onto later pages, a child's marker + starts where its parent's text does, and the marker rides the item's first baseline without + making the row taller. A marker drawn larger than that line overflows it, which is the + answer a marker wider than its column already gets. + + Because the marker column is what makes this possible, `hangingIndent(true)` is required + and the layout says so if it is missing. A drawn marker's plain reading is empty, so the + older layout — where the marker is characters at the front of the item's text — would render + the list with no marker at all and no signal. + + **In the semantic DOCX export** a marker written as text keeps the colour and face it was + given, because a run's style is something Word holds. A marker that draws a disc or an icon + has no Word analogue, so it drops with the export's usual one-per-kind warning and its item + is written unmarked, rather than substituting a glyph nobody asked for. + - **A timeline's rail is one line, drawn from where its markers landed.** It was a left border repeated on every entry section, which is why it sat at the entry's edge whatever the markers did, could not stop short of them, and had no way to be diff --git a/core/src/main/java/com/demcha/compose/document/dsl/ListBuilder.java b/core/src/main/java/com/demcha/compose/document/dsl/ListBuilder.java index fe8cc2ff1..5c6c76c73 100644 --- a/core/src/main/java/com/demcha/compose/document/dsl/ListBuilder.java +++ b/core/src/main/java/com/demcha/compose/document/dsl/ListBuilder.java @@ -264,6 +264,49 @@ public ListBuilder marker(String marker) { return marker(ListMarker.custom(marker)); } + /** + * Sets a marker that is drawn rather than typed — a coloured disc, an icon, + * a glyph in a face of its own. + * + *

        The marker is a {@link RichText}, the same inline runs a paragraph and + * a list item are made of, so {@code m -> m.dot(4, ACCENT)} is a teal disc, + * {@code m -> m.color("•", ACCENT)} is an accent bullet beside near-black + * text, and {@code m -> m.svgIcon(icon, 8)} is an icon. A marker's colour is + * its own here; the text form takes the list's, which is what a design with + * a coloured mark and dark copy could not say.

        + * + *

        Drawn or typed, the marker is measured and occupies the marker column: + * {@link #markerGap(double)} is points of real space after it and every + * visual line of the item starts at one x. So this needs + * {@link #hangingIndent(boolean)}, and the layout says so if it is missing — + * the older layout puts the marker inside the item's text, where a drawing + * cannot go.

        + * + *

        Seed the supplied builder with {@link RichText#plain(String)} — not + * {@code m.text(...)}: {@link RichText#text(String)} is a static factory, so + * that call compiles but builds a separate, discarded {@code RichText} and + * leaves the list markerless.

        + * + *

        This sets the list's marker, which is its depth-0 marker. A drawn marker + * at a deeper level goes through {@link #markerFor(int, ListMarker)} as + * {@code markerFor(1, ListMarker.ofRuns(RichText.empty().dot(4, ACCENT).runs()))} + * — deliberately not a second lambda overload, because + * {@code markerFor(depth, null)} clears an override and a lambda overload + * would make that call ambiguous for code that already compiles.

        + * + * @param marker callback that appends the marker's inline runs + * @return this builder + * @throws NullPointerException if {@code marker} is null + * @since 2.4.0 + */ + public ListBuilder marker(Consumer marker) { + Objects.requireNonNull(marker, "marker"); + RichText rich = RichText.empty(); + marker.accept(rich); + return marker(ListMarker.ofRuns(rich.runs())); + } + + /** * Uses bullet markers. * diff --git a/core/src/main/java/com/demcha/compose/document/layout/ListMarkerGeometry.java b/core/src/main/java/com/demcha/compose/document/layout/ListMarkerGeometry.java index a7316b130..c01ee1497 100644 --- a/core/src/main/java/com/demcha/compose/document/layout/ListMarkerGeometry.java +++ b/core/src/main/java/com/demcha/compose/document/layout/ListMarkerGeometry.java @@ -2,6 +2,8 @@ import com.demcha.compose.document.layout.payloads.ListItemSpec; import com.demcha.compose.document.layout.payloads.MarkerContentItem; +import com.demcha.compose.document.layout.payloads.ParagraphLine; +import com.demcha.compose.document.node.ListMarker; import com.demcha.compose.document.node.ListNode; import com.demcha.compose.engine.components.content.text.TextStyle; import com.demcha.compose.engine.measurement.TextMeasurementSystem; @@ -45,12 +47,16 @@ private ListMarkerGeometry() { * @param node the list, for its marker gap and text style * @param availableItemWidth width one row may occupy, inside the list padding * @param measurement text measurement service + * @param drawnMarkers the already-measured single line of each drawn + * marker used in the list, keyed by the marker; + * empty when every marker is text * @return one resolved item per spec, in the same order */ static List resolve(List specs, ListNode node, double availableItemWidth, - TextMeasurementSystem measurement) { + TextMeasurementSystem measurement, + Map drawnMarkers) { if (specs.isEmpty()) { return List.of(); } @@ -75,10 +81,20 @@ static List resolve(List specs, double markerX = depth == 0 ? 0.0 : contentXByDepth[depth - 1]; boolean hasMarker = spec.hasMarker(); - double markerWidth = hasMarker - ? markerWidths.computeIfAbsent(spec.markerText(), - text -> measurement.textWidth(style, text)) - : 0.0; + // A drawn marker was measured as a line of inline runs before this + // loop, by the same pipeline that measures the item's own content, so + // its width is the width of what it actually draws — a disc's + // diameter, an icon's box — rather than of any text. + ParagraphLine drawn = drawnMarkers.get(spec.marker()); + double markerWidth; + if (!hasMarker) { + markerWidth = 0.0; + } else if (drawn != null) { + markerWidth = drawn.width(); + } else { + markerWidth = markerWidths.computeIfAbsent(spec.markerText(), + text -> measurement.textWidth(style, text)); + } double gap = hasMarker ? node.markerGap() : 0.0; double contentX = markerX + markerWidth + gap; // Floored at the width the text pipeline already treats as its @@ -91,7 +107,8 @@ static List resolve(List specs, ParagraphWrapping.MIN_TEXT_WIDTH, availableItemWidth - contentX); contentXByDepth[depth] = contentX; - out.add(new MarkerContentItem(spec, markerX, markerWidth, gap, contentX, contentWidth)); + out.add(new MarkerContentItem(spec, markerX, markerWidth, gap, contentX, contentWidth, + drawn == null || !hasMarker ? List.of() : drawn.spans())); } return List.copyOf(out); } diff --git a/core/src/main/java/com/demcha/compose/document/layout/TextFlowSupport.java b/core/src/main/java/com/demcha/compose/document/layout/TextFlowSupport.java index f9ee65e47..74e2b5f41 100644 --- a/core/src/main/java/com/demcha/compose/document/layout/TextFlowSupport.java +++ b/core/src/main/java/com/demcha/compose/document/layout/TextFlowSupport.java @@ -15,7 +15,9 @@ import com.demcha.compose.engine.measurement.TextMeasurementSystem; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import static com.demcha.compose.document.layout.DocumentNodeAdapters.*; import static com.demcha.compose.document.layout.NodeDefinitionSupport.EPS; @@ -41,6 +43,13 @@ public final class TextFlowSupport { */ private static final String NESTED_LIST_INDENT_UNIT = "  "; + /** + * The width a drawn list marker is measured at — wide enough that nothing a + * marker could reasonably be will wrap, so its measured width is the width of + * what it draws rather than of the column it happens to sit in. + */ + private static final double MARKER_MEASURE_WIDTH = 100_000.0; + // ------------------------------------------------------------------ // Paragraph entry points // ------------------------------------------------------------------ @@ -208,6 +217,9 @@ public static PreparedNode prepareList(ListNode node, private static PreparedNode prepareLegacyPrefixList(ListNode node, PrepareContext ctx, BoxConstraints constraints) { + // The list's own marker reaches a flat list without going through the + // nested walk, so it is checked here as well as there. + refuseDrawnMarker(node.marker()); ListNode effective = node.nestedItems().isEmpty() ? node : flattenNestedListNode(node); @@ -233,8 +245,9 @@ private static PreparedNode prepareMarkerContentList(ListNode node, PrepareContext ctx, BoxConstraints constraints) { double availableItemWidth = Math.max(0.0, constraints.availableWidth() - node.padding().horizontal()); + List specs = ListItemNormalizer.normalize(node); List geometry = ListMarkerGeometry.resolve( - ListItemNormalizer.normalize(node), node, availableItemWidth, ctx.textMeasurement()); + specs, node, availableItemWidth, ctx.textMeasurement(), prepareDrawnMarkers(specs, node, ctx)); List items = new ArrayList<>(geometry.size()); for (MarkerContentItem item : geometry) { @@ -287,6 +300,56 @@ private static PreparedNode prepareMarkerContentList(ListNode node, new PreparedListLayout(items, maxLineWidth, totalHeight, resolvedWidth, geometry)); } + /** + * Measures each distinct drawn marker in the list as one line of inline + * runs, through the pipeline that measures the items' own content. + * + *

        A marker's width has to be known before any content origin can be, so + * this runs ahead of {@link ListMarkerGeometry}. Measuring it as a paragraph + * line rather than as a special case is what makes a disc, an icon and a + * coloured glyph all resolve to the width of the thing they draw, and what + * lets the emit phase place the marker's pieces with spans the renderers + * already know how to draw.

        + * + *

        Measured unbounded, because a marker is one line by definition and a + * marker wider than its column overflows — the same answer a too-wide text + * marker already gets, rather than wrapping into a second line the row has + * no space for.

        + */ + private static Map prepareDrawnMarkers(List specs, + ListNode node, + PrepareContext ctx) { + Map lines = null; + for (ListItemSpec spec : specs) { + ListMarker marker = spec.marker(); + if (!marker.isRich()) { + continue; + } + if (lines == null) { + lines = new LinkedHashMap<>(); + } else if (lines.containsKey(marker)) { + // A list shows the same handful of markers over and over, one per + // depth, so each distinct one is measured once for the whole list. + continue; + } + ParagraphNode asParagraph = new ParagraphNode( + "", "", marker.runs(), node.textStyle(), TextAlign.LEFT, 0.0, "", + DocumentTextIndent.NONE, null, null, + DocumentInsets.zero(), DocumentInsets.zero()); + PreparedParagraphLayout layout = prepareParagraphLayout( + asParagraph, MARKER_MEASURE_WIDTH, ctx.textMeasurement(), false); + if (layout.visualLines().size() != 1) { + throw new IllegalStateException( + "a list marker is one line: \"" + marker.value() + "\" measured " + + layout.visualLines().size() + " lines. A marker sits on the item's " + + "first line and shares its baseline, so it has nowhere to put a " + + "second one"); + } + lines.put(marker, layout.visualLines().get(0)); + } + return lines == null ? Map.of() : lines; + } + /** * Widest point any row reaches — the marker column and the content column * are both candidates, and a marker-only row is measured by its marker. @@ -337,6 +400,21 @@ private static ListNode flattenNestedListNode(ListNode node) { node.markerGap()); } + /** + * Refuses a drawn marker on the legacy layout, where a marker is characters + * at the front of the item's text and a drawing has nowhere to go. Its plain + * reading is empty for a marker that draws only a disc or an icon, so + * rendering that would leave the list markerless with no signal at all. + */ + private static void refuseDrawnMarker(ListMarker marker) { + if (marker != null && marker.isRich()) { + throw new IllegalStateException( + "a drawn list marker needs marker/content geometry: call " + + "hangingIndent(true) on the list. The legacy layout puts the marker " + + "inside the item's text, which can hold characters but not a drawing"); + } + } + private static void flattenNestedItems(List items, int depth, List output) { for (ListItem item : items) { // A rich item's content is a sequence of independently styled runs and @@ -354,6 +432,7 @@ private static void flattenNestedItems(List items, int depth, List spans = geometry.hasDrawnMarker() + ? geometry.markerSpans() + : List.of(new ParagraphTextSpan( + text, + toTextStyle(node.textStyle()), + geometry.measuredMarkerWidth(), + first.textLineHeight(), + null, + null, + false)); return new ParagraphLine( text, geometry.measuredMarkerWidth(), @@ -542,14 +636,7 @@ private static ParagraphLine markerLine(ListNode node, first.textLineHeight(), first.textAscent(), first.baselineOffsetFromBottom(), - List.of(new ParagraphTextSpan( - text, - toTextStyle(node.textStyle()), - geometry.measuredMarkerWidth(), - first.textLineHeight(), - null, - null, - false))); + spans); } private static ParagraphFragmentPayload paragraphPayload(ListNode node, diff --git a/core/src/main/java/com/demcha/compose/document/layout/payloads/MarkerContentItem.java b/core/src/main/java/com/demcha/compose/document/layout/payloads/MarkerContentItem.java index 066028c69..ff7aa7a3f 100644 --- a/core/src/main/java/com/demcha/compose/document/layout/payloads/MarkerContentItem.java +++ b/core/src/main/java/com/demcha/compose/document/layout/payloads/MarkerContentItem.java @@ -1,5 +1,6 @@ package com.demcha.compose.document.layout.payloads; +import java.util.List; import java.util.Objects; /** @@ -40,6 +41,11 @@ * unexplained inset * @param contentX {@code markerX + measuredMarkerWidth + markerGap} * @param contentWidth the width the item's text wraps within + * @param markerSpans the measured pieces a drawn marker is made of — + * a disc, an icon, a glyph in a colour of its own — + * and empty for a text marker, whose one span the + * emit phase builds from the item's own first line + * so that it shares that line's metrics * @author Artem Demchyshyn * @since 2.4.0 */ @@ -49,7 +55,8 @@ public record MarkerContentItem( double measuredMarkerWidth, double markerGap, double contentX, - double contentWidth + double contentWidth, + List markerSpans ) { /** @@ -62,6 +69,7 @@ public record MarkerContentItem( */ public MarkerContentItem { Objects.requireNonNull(spec, "spec"); + markerSpans = markerSpans == null ? List.of() : List.copyOf(markerSpans); requireFinite(markerX, "markerX"); requireFinite(measuredMarkerWidth, "measuredMarkerWidth"); requireFinite(markerGap, "markerGap"); @@ -78,6 +86,34 @@ public record MarkerContentItem( } } + /** + * Creates an item whose marker is text, so it has no pre-measured spans. + * + * @param spec the item's authored depth, marker and content + * @param markerX where the marker starts + * @param measuredMarkerWidth the marker's measured width + * @param markerGap the gap applied between marker and content + * @param contentX {@code markerX + measuredMarkerWidth + markerGap} + * @param contentWidth the width the item's text wraps within + */ + public MarkerContentItem(ListItemSpec spec, + double markerX, + double measuredMarkerWidth, + double markerGap, + double contentX, + double contentWidth) { + this(spec, markerX, measuredMarkerWidth, markerGap, contentX, contentWidth, List.of()); + } + + /** + * Returns whether this item's marker is drawn rather than typed. + * + * @return {@code true} when the marker has pre-measured spans + */ + public boolean hasDrawnMarker() { + return !markerSpans.isEmpty(); + } + private static void requireFinite(double value, String name) { if (Double.isNaN(value) || Double.isInfinite(value) || value < 0) { throw new IllegalArgumentException(name + " must be finite and non-negative: " + value); diff --git a/core/src/main/java/com/demcha/compose/document/node/ListMarker.java b/core/src/main/java/com/demcha/compose/document/node/ListMarker.java index fa19caa25..e8cfdbc90 100644 --- a/core/src/main/java/com/demcha/compose/document/node/ListMarker.java +++ b/core/src/main/java/com/demcha/compose/document/node/ListMarker.java @@ -1,22 +1,74 @@ package com.demcha.compose.document.node; +import java.util.List; + /** * Marker rendered before each item in a canonical list node. * *

        The marker keeps the public list API small while still allowing custom * list prefixes for CVs, reports, and template-specific layouts.

        * - * @param value visible marker prefix, or an empty string for markerless lists + *

        A marker is either a piece of text — {@code value}, which is all a marker + * could be before it could be drawn — or a sequence of {@code runs}: the same + * {@link InlineRun} sequence a paragraph and a list item are made of. Runs are + * what let a marker be a coloured disc, an icon or a glyph in a face and colour + * of its own, independent of the item beside it. When {@code runs} is non-empty + * it is the marker, and {@code value} is its plain-text reading.

        + * + * @param value visible marker prefix, or an empty string for markerless lists; + * the plain-text reading when {@code runs} is set + * @param runs inline runs the marker draws, empty when the marker is text * @author Artem Demchyshyn */ -public record ListMarker(String value) { +public record ListMarker(String value, List runs) { /** - * Creates a normalized marker. + * Normalizes the text form and copy-protects the runs. * * @param value visible marker value, or {@code null} for no marker + * @param runs inline runs, or {@code null} for a text marker */ public ListMarker { value = normalize(value); + runs = runs == null ? List.of() : List.copyOf(runs); + } + + /** + * Creates a marker that is a piece of text, which is all a marker could be + * before it could be drawn. + * + *

        Kept as its own constructor rather than folded into the canonical one, + * so code written against the one-argument shape still compiles and still + * links.

        + * + * @param value visible marker value, or {@code null} for no marker + */ + public ListMarker(String value) { + this(value, List.of()); + } + + /** + * Creates a marker drawn from a sequence of inline runs. + * + *

        Its plain-text reading is whatever text the runs carry, which for a + * marker that draws only a disc or an icon is nothing — the reading is what + * a surface that cannot draw falls back to, not the marker itself.

        + * + * @param runs the runs the marker draws + * @return drawn marker + * @since 2.4.0 + */ + public static ListMarker ofRuns(List runs) { + return new ListMarker(InlineRun.plainText(runs), runs); + } + + /** + * Returns whether this marker is drawn from runs rather than being text. + * + * @return {@code true} when the marker carries inline runs + * @since 2.4.0 + */ + public boolean isRich() { + return !runs.isEmpty(); } /** @@ -121,12 +173,17 @@ public static String normalizeItemText(String value, boolean normalizeMarkers) { } /** - * Returns {@code true} when this marker has non-whitespace content. + * Returns {@code true} when this marker draws anything — non-whitespace + * text, or any run at all. + * + *

        A drawn marker is visible whatever its reading says, which is the whole + * difference between a marker of a teal disc and a markerless item: both + * read as nothing, and only one of them puts ink on the page.

        * * @return whether the marker is visible */ public boolean isVisible() { - return value.chars().anyMatch(ch -> !Character.isWhitespace(ch)); + return isRich() || value.chars().anyMatch(ch -> !Character.isWhitespace(ch)); } /** diff --git a/knowledge/api/authoring.json b/knowledge/api/authoring.json index 81f3a8a42..9a84fbaa8 100644 --- a/knowledge/api/authoring.json +++ b/knowledge/api/authoring.json @@ -23,9 +23,9 @@ ], "counts": { "types": 237, - "methods": 2118, + "methods": 2123, "constants": 236, - "generated": 1128 + "generated": 1129 }, "packages": [ { @@ -9299,6 +9299,20 @@ } ] }, + { + "kind": "method", + "name": "marker", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "Consumer", + "name": "marker" + } + ] + }, { "kind": "method", "name": "bullet", @@ -20590,9 +20604,50 @@ { "type": "String", "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ListMarker", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "value" } ] }, + { + "kind": "method", + "name": "ofRuns", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ListMarker", + "params": [ + { + "type": "List", + "name": "runs" + } + ] + }, + { + "kind": "method", + "name": "isRich", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, { "kind": "method", "name": "bullet", @@ -20692,6 +20747,15 @@ "typeParameters": null, "returns": "String", "params": [] + }, + { + "kind": "method", + "name": "runs", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] } ] }, diff --git a/knowledge/api/authoring.md b/knowledge/api/authoring.md index 0cba02ff1..5efea33dc 100644 --- a/knowledge/api/authoring.md +++ b/knowledge/api/authoring.md @@ -28,7 +28,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se **GraphCompose version:** 2.4.0-SNAPSHOT -Types: 237 · methods: 2118 · constants: 236 · compiler-generated members: 1128 +Types: 237 · methods: 2123 · constants: 236 · compiler-generated members: 1129 ## com.demcha.compose @@ -756,6 +756,7 @@ Types: 237 · methods: 2118 · constants: 236 · compiler-generated members: 112 - `ListBuilder markerFor(int depth, ListMarker marker)` - `ListBuilder marker(ListMarker marker)` - `ListBuilder marker(String marker)` +- `ListBuilder marker(Consumer marker)` - `ListBuilder bullet()` - `ListBuilder dash()` - `ListBuilder noMarker()` @@ -1518,7 +1519,10 @@ Types: 237 · methods: 2118 · constants: 236 · compiler-generated members: 112 - `List children()` ### ListMarker (record) -- `new ListMarker(String)` +- `new ListMarker(String, List)` +- `new ListMarker(String value)` +- `ListMarker ofRuns(List runs)` +- `boolean isRich()` - `ListMarker bullet()` - `ListMarker dash()` - `ListMarker none()` @@ -1528,6 +1532,7 @@ Types: 237 · methods: 2118 · constants: 236 · compiler-generated members: 112 - `boolean isVisible()` - `String prefix()` - `String value()` +- `List runs()` ### ListNode (record) - `new ListNode(String, List, List, ListMarker, DocumentTextStyle, TextAlign, double, double, String, boolean, DocumentInsets, DocumentInsets, boolean, double)` diff --git a/qa/src/test/java/com/demcha/compose/document/api/ListDrawnMarkerTest.java b/qa/src/test/java/com/demcha/compose/document/api/ListDrawnMarkerTest.java new file mode 100644 index 000000000..134ccb4d8 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/api/ListDrawnMarkerTest.java @@ -0,0 +1,331 @@ +package com.demcha.compose.document.api; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.dsl.ListBuilder; +import com.demcha.compose.document.layout.LayoutGraph; +import com.demcha.compose.document.layout.PlacedFragment; +import com.demcha.compose.document.layout.payloads.ParagraphFragmentPayload; +import com.demcha.compose.document.layout.payloads.ParagraphLine; +import com.demcha.compose.document.layout.payloads.ParagraphShapeSpan; +import com.demcha.compose.document.layout.payloads.ParagraphSpan; +import com.demcha.compose.document.layout.payloads.ParagraphSvgSpan; +import com.demcha.compose.document.layout.payloads.ParagraphTextSpan; +import com.demcha.compose.document.node.ListMarker; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.svg.SvgIcon; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.function.Consumer; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.Assertions.within; + +/** + * A list marker that is drawn rather than typed — a coloured disc, an icon, a + * glyph in a colour of its own — on the same measured marker column a text + * marker gets. + * + *

        What made this a gap rather than a preference: the marker's one span was + * built in the list's own text style, so a design with an accent mark beside + * near-black copy could not be written as a list at all. The templates that + * wanted it built a paragraph per item instead — a drawn mark, then a run of + * spaces standing in for the gap, then the text — which buys the mark and loses + * the column. Measured on that construction at a width that wraps: the first + * line's text starts at 25.246 and every line after it at 12.000, because a + * paragraph has no marker column to hang under. The spaces are a second cost; + * rounded to a whole count and then measured at each item's own type size, one + * declared 9.175pt gap came out as 9.308pt in one column of a real CV and + * 8.356pt in another.

        + * + *

        Numbers below are at the default face, 9pt, on a page with a 12pt margin, + * so an item starts at x=12.

        + */ +class ListDrawnMarkerTest { + + private static final double EPS = 0.001; + private static final DocumentColor ACCENT = DocumentColor.rgb(0x00, 0x88, 0x88); + private static final DocumentTextStyle BODY = DocumentTextStyle.builder().size(9.0).build(); + + private static final String LONG = + "Coordinate care plans with doctors, therapists and support staff to improve " + + "outcomes across the whole ward and its discharge pathway."; + + // --- the marker is measured as what it draws ---------------------------- + + @Test + void aDiscMarkerTakesItsDeclaredDiameterAndTheGapAfterItIsPoints() throws Exception { + Rendered rendered = render(200, 240, l -> l + .textStyle(BODY) + .marker(m -> m.dot(4.0, ACCENT)) + .hangingIndent(true) + .markerGap(9.175) + .items("Patient assessment")); + + List fragments = rendered.fragments(); + assertThat(fragments).as("one marker, one content block").hasSize(2); + PlacedFragment marker = fragments.get(0); + PlacedFragment content = fragments.get(1); + + assertThat(marker.x()).isEqualTo(12.000, within(EPS)); + assertThat(marker.width()) + .as("the column is the disc's own diameter, not the width of any text") + .isEqualTo(4.000, within(EPS)); + assertThat(content.x()) + .as("markerX + diameter + the gap, exactly as asked for") + .isEqualTo(12.000 + 4.000 + 9.175, within(EPS)); + + // Drawn, not typed: the marker's fragment carries a shape. + assertThat(spans(marker)).hasSize(1); + assertThat(spans(marker).get(0)).isInstanceOf(ParagraphShapeSpan.class); + assertThat(((ParagraphShapeSpan) spans(marker).get(0)).width()).isEqualTo(4.000, within(EPS)); + assertThat(texts(marker)) + .as("and nothing typed leaks into the text layer in its place") + .containsExactly(""); + } + + @Test + void aTextMarkerCanCarryAColourTheItemsTextDoesNot() throws Exception { + Rendered rendered = render(200, 240, l -> l + .textStyle(BODY) + .marker(m -> m.color("•", ACCENT)) + .hangingIndent(true) + .items("Patient assessment")); + + ParagraphTextSpan markerSpan = (ParagraphTextSpan) spans(rendered.fragments().get(0)).get(0); + ParagraphTextSpan contentSpan = (ParagraphTextSpan) spans(rendered.fragments().get(1)).get(0); + + assertThat(markerSpan.text()).isEqualTo("•"); + assertThat(markerSpan.textStyle().color()).isEqualTo(ACCENT.color()); + assertThat(contentSpan.textStyle().color()) + .as("the item keeps the list's colour, which is the whole point") + .isNotEqualTo(markerSpan.textStyle().color()); + + // And it is still a measured marker column, not a coloured prefix inside + // the text: the two are separate fragments at separate x. + assertThat(rendered.fragments()).hasSize(2); + assertThat(rendered.fragments().get(1).x()).isGreaterThan(rendered.fragments().get(0).x()); + } + + @Test + void anIconMarkerTakesItsIconsBox() throws Exception { + Rendered rendered = render(200, 240, l -> l + .textStyle(BODY) + .marker(m -> m.svgIcon(TICK, 8.0)) + .hangingIndent(true) + .markerGap(4.0) + .items("Patient assessment")); + + PlacedFragment marker = rendered.fragments().get(0); + assertThat(marker.width()).isEqualTo(8.000, within(EPS)); + assertThat(spans(marker).get(0)).isInstanceOf(ParagraphSvgSpan.class); + assertThat(rendered.fragments().get(1).x()).isEqualTo(12.000 + 8.000 + 4.000, within(EPS)); + } + + @Test + void aDrawnMarkerIsMeasuredOnceHoweverManyItemsShowIt() throws Exception { + // Same marker on every row means the same column on every row — the + // property that makes a list a list, and the one the per-item paragraph + // construction cannot promise. + Rendered rendered = render(200, 240, l -> l + .textStyle(BODY) + .marker(m -> m.dot(4.0, ACCENT)) + .hangingIndent(true) + .markerGap(9.175) + .items("Alpha", "Beta", "Gamma")); + + assertThat(rendered.fragments()).hasSize(6); + for (int row = 0; row < 3; row++) { + assertThat(rendered.fragments().get(row * 2).x()) + .as("row %d markerX", row).isEqualTo(12.000, within(EPS)); + assertThat(rendered.fragments().get(row * 2 + 1).x()) + .as("row %d contentX", row).isEqualTo(25.175, within(EPS)); + } + } + + // --- and it is the marker column, so everything else holds -------------- + + @Test + void everyLineOfAWrappedItemHangsUnderTheTextAndNotUnderTheDisc() throws Exception { + Rendered rendered = render(220, 300, l -> l + .textStyle(BODY) + .marker(m -> m.dot(3.238, ACCENT)) + .hangingIndent(true) + .markerGap(9.175) + .items(LONG)); + + PlacedFragment content = rendered.fragments().get(1); + assertThat(content.x()).isEqualTo(12.000 + 3.238 + 9.175, within(EPS)); + assertThat(texts(content)).as("it wraps").hasSizeGreaterThanOrEqualTo(3); + assertThat(lineWidths(content)) + .allSatisfy(w -> assertThat(w).isLessThanOrEqualTo(content.width() + EPS)); + + // The claim the workaround cannot make: one origin for every line. + assertThat(rendered.glyphs()) + .allSatisfy(g -> assertThat(g.x()).isEqualTo(24.413, within(EPS))); + } + + @Test + void aDiscIsDrawnOnceWhenItsItemCrossesPages() throws Exception { + Rendered rendered = render(150, 70, l -> l + .textStyle(BODY) + .marker(m -> m.dot(4.0, ACCENT)) + .hangingIndent(true) + .markerGap(4.0) + .items(LONG + " " + LONG)); + + assertThat(rendered.graph().totalPages()).isGreaterThanOrEqualTo(2); + assertThat(rendered.fragments().stream().filter(f -> !spans(f).isEmpty() + && spans(f).get(0) instanceof ParagraphShapeSpan)) + .as("the disc belongs to the item, not to each page of it") + .hasSize(1); + + for (int page = 0; page < rendered.graph().totalPages(); page++) { + int onPage = page; + PlacedFragment content = rendered.fragments().stream() + .filter(f -> f.pageIndex() == onPage) + .filter(f -> !texts(f).equals(List.of(""))) + .findFirst() + .orElseThrow(); + assertThat(content.x()).as("page %d contentX", page).isEqualTo(20.000, within(EPS)); + } + } + + @Test + void aDrawnMarkerNestsTheWayATypedOneDoes() throws Exception { + Rendered rendered = render(220, 240, l -> l + .textStyle(BODY) + .hangingIndent(true) + .markerGap(4.0) + .marker(m -> m.dot(4.0, ACCENT)) + .markerFor(0, ListMarker.ofRuns( + com.demcha.compose.document.dsl.RichText.empty().dot(4.0, ACCENT).runs())) + .markerFor(1, ListMarker.custom("-")) + .addItem("Top", c -> c.addItem("Child"))); + + List fragments = rendered.fragments(); + assertThat(fragments).hasSize(4); + assertThat(fragments.get(0).x()).isEqualTo(12.000, within(EPS)); + assertThat(fragments.get(1).x()).isEqualTo(20.000, within(EPS)); + assertThat(fragments.get(2).x()) + .as("the child's marker starts at the parent's text, disc or no disc") + .isEqualTo(fragments.get(1).x(), within(EPS)); + assertThat(spans(fragments.get(0)).get(0)).isInstanceOf(ParagraphShapeSpan.class); + assertThat(texts(fragments.get(2))).containsExactly("-"); + } + + @Test + void aDrawnMarkerDoesNotMakeItsRowTaller() throws Exception { + // The marker rides the item's first baseline, which is what keeps a + // list's rows evenly pitched whatever their markers are. + double withDisc = listNode(render(200, 240, l -> l.textStyle(BODY) + .marker(m -> m.dot(4.0, ACCENT)).hangingIndent(true).items("Item")).graph()) + .placementHeight(); + double withBullet = listNode(render(200, 240, l -> l.textStyle(BODY) + .bullet().hangingIndent(true).items("Item")).graph()) + .placementHeight(); + assertThat(withDisc).isEqualTo(withBullet, within(EPS)); + } + + // --- refusals ----------------------------------------------------------- + + @Test + void aDrawnMarkerWithoutTheOptInSaysSoInsteadOfVanishing() throws Exception { + // Its plain reading is empty, so the legacy layout would render the list + // with no marker at all and no signal. + assertThatThrownBy(() -> render(200, 240, l -> l + .textStyle(BODY) + .marker(m -> m.dot(4.0, ACCENT)) + .items("Patient assessment"))) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("hangingIndent(true)") + .hasMessageContaining("not a drawing"); + } + + @Test + void aPerItemDrawnMarkerWithoutTheOptInSaysSoToo() throws Exception { + assertThatThrownBy(() -> render(200, 240, l -> l + .textStyle(BODY) + .addItem("Top", c -> c.addItem("Child")) + .markerFor(1, ListMarker.ofRuns( + com.demcha.compose.document.dsl.RichText.empty().dot(4.0, ACCENT).runs())))) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("hangingIndent(true)"); + } + + // ------------------------------------------------------------------ + + private record Rendered(LayoutGraph graph, List glyphs) { + List fragments() { + return graph.fragments().stream() + .filter(f -> f.payload() instanceof ParagraphFragmentPayload) + .toList(); + } + } + + private record Glyph(int page, double x, String text) { + } + + private static Rendered render(double width, double height, Consumer spec) + throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(width, height) + .margin(DocumentInsets.of(12)) + .create()) { + session.pageFlow().name("Root").addList(spec).build(); + return new Rendered(session.layoutGraph(), glyphs(session.toPdfBytes())); + } + } + + private static List spans(PlacedFragment fragment) { + return ((ParagraphFragmentPayload) fragment.payload()).lines().stream() + .map(ParagraphLine::spans) + .flatMap(List::stream) + .toList(); + } + + private static List texts(PlacedFragment fragment) { + return ((ParagraphFragmentPayload) fragment.payload()).lines().stream() + .map(ParagraphLine::text) + .toList(); + } + + private static List lineWidths(PlacedFragment fragment) { + return ((ParagraphFragmentPayload) fragment.payload()).lines().stream() + .map(ParagraphLine::width) + .toList(); + } + + private static com.demcha.compose.document.layout.PlacedNode listNode(LayoutGraph graph) { + return graph.nodes().stream() + .filter(n -> "ListNode".equals(n.nodeKind())) + .findFirst() + .orElseThrow(); + } + + private static List glyphs(byte[] pdf) throws Exception { + List rows = new java.util.ArrayList<>(); + try (org.apache.pdfbox.pdmodel.PDDocument document = org.apache.pdfbox.Loader.loadPDF(pdf)) { + org.apache.pdfbox.text.PDFTextStripper stripper = new org.apache.pdfbox.text.PDFTextStripper() { + @Override + protected void writeString(String text, + List positions) { + if (positions.isEmpty()) { + return; + } + rows.add(new Glyph(getCurrentPageNo() - 1, positions.get(0).getXDirAdj(), text)); + } + }; + stripper.setSortByPosition(true); + stripper.getText(document); + } + return rows; + } + + private static final SvgIcon TICK = SvgIcon.parse( + "" + + ""); +} diff --git a/render-docx/src/main/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackend.java b/render-docx/src/main/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackend.java index de47d0237..0c4a49101 100644 --- a/render-docx/src/main/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackend.java +++ b/render-docx/src/main/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackend.java @@ -373,8 +373,15 @@ private void writeList(XWPFDocument document, if (normalized.isBlank()) { continue; } - writeListLine(document, list.textStyle(), - list.marker().prefix() + normalized, 0); + if (list.marker().isRich()) { + // A drawn marker's pieces are runs, so the row is written the way + // any row with runs in it is; its item is still just a label. + writeRichListLine(document, list.textStyle(), list.marker(), + com.demcha.compose.document.node.ListItem.of(normalized), 0); + } else { + writeListLine(document, list.textStyle(), + list.marker().prefix() + normalized, 0); + } } for (com.demcha.compose.document.node.ListItem item : list.nestedItems()) { writeNestedItem(document, list, item, 0); @@ -393,8 +400,8 @@ private void writeNestedItem(XWPFDocument document, item.marker() != null ? item.marker() : com.demcha.compose.document.node.ListMarker.defaultForDepth(depth); - if (item.isRich()) { - writeRichListLine(document, list.textStyle(), marker.prefix(), item, depth); + if (item.isRich() || marker.isRich()) { + writeRichListLine(document, list.textStyle(), marker, item, depth); } else { writeListLine(document, list.textStyle(), marker.prefix() + item.label(), depth); } @@ -412,31 +419,61 @@ private void writeListLine(XWPFDocument document, DocumentTextStyle style, } /** - * Writes a rich item as one Word run per inline run, the way - * {@link #writeParagraphRuns} writes a rich paragraph. + * Writes an item whose marker or whose content is made of inline runs as one + * Word run per inline run, the way {@link #writeParagraphRuns} writes a rich + * paragraph. * - *

        This is the one part of the opt-in marker/content list the semantic - * export can reproduce, and it reproduces it exactly. The geometry — the - * measured marker column, the gap, the shared content origin — is - * unavailable here for the reason {@code hangingIndent} documents. Which - * piece of an item is bold is not geometry: Word carries a style per run - * inside a paragraph, so writing the item's plain reading in one face would - * be dropping something Word can hold.

        + *

        This is the part of the opt-in marker/content list the semantic export + * can reproduce, and it reproduces it exactly. The geometry — the measured + * marker column, the gap, the shared content origin — is unavailable here for + * the reason {@code hangingIndent} documents. Which piece of an item is bold + * is not geometry: Word carries a style per run inside a paragraph, so + * writing the item's plain reading in one face would be dropping something + * Word can hold.

        * - *

        The indent and the marker stay one leading run in the item's own style, - * unchanged from the plain path, so a list of mixed plain and rich items - * writes the same markers down its whole length.

        + *

        The same is true of a marker. A marker written as text keeps the colour + * and face it was given, because those are run properties Word has. A marker + * that draws a disc or an icon has no Word analogue at all, so it drops with + * the export's usual per-kind warning and its item is written unmarked — + * rather than substituting a glyph the author did not ask for.

        */ private void writeRichListLine(XWPFDocument document, DocumentTextStyle style, - String markerPrefix, + com.demcha.compose.document.node.ListMarker marker, com.demcha.compose.document.node.ListItem item, int depth) { + warnDroppedInlineRuns(marker.runs()); warnDroppedInlineRuns(item.runs()); XWPFParagraph para = document.createParagraph(); XWPFRun leading = para.createRun(); applyStyle(leading, style); - leading.setText(" ".repeat(depth) + markerPrefix); - for (InlineTextRun run : com.demcha.compose.document.node.InlineRun.textRuns(item.runs())) { + leading.setText(" ".repeat(depth) + (marker.isRich() ? "" : marker.prefix())); + if (marker.isRich()) { + writeInlineTextRuns(para, style, marker.runs()); + // The gap after a marker is markerGap, which is geometry and so not + // available here; a space is what separates a marker from its item on + // the text path, and it separates them here for the same reason. + if (!com.demcha.compose.document.node.InlineRun.plainText(marker.runs()).isBlank()) { + XWPFRun gap = para.createRun(); + applyStyle(gap, style); + gap.setText(" "); + } + } + if (item.isRich()) { + writeInlineTextRuns(para, style, item.runs()); + } else { + XWPFRun label = para.createRun(); + applyStyle(label, style); + label.setText(item.label()); + } + } + + /** + * Appends one Word run per text-carrying inline run, each in its own style + * and falling back to {@code style} when it has none. + */ + private void writeInlineTextRuns(XWPFParagraph para, DocumentTextStyle style, + List runs) { + for (InlineTextRun run : com.demcha.compose.document.node.InlineRun.textRuns(runs)) { XWPFRun docRun = para.createRun(); applyStyle(docRun, run.textStyle() == null ? style : run.textStyle()); docRun.setText(run.text() == null ? "" : run.text()); diff --git a/render-docx/src/test/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackendTest.java b/render-docx/src/test/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackendTest.java index be3b6f741..c27b6bac8 100644 --- a/render-docx/src/test/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackendTest.java +++ b/render-docx/src/test/java/com/demcha/compose/document/backend/semantic/docx/DocxSemanticBackendTest.java @@ -177,6 +177,51 @@ void aRichListItemExportsTheSameWhetherOrNotTheListOptedIntoMarkerGeometry() thr .isEqualTo(runStructure(richListDocx(true))); } + @Test + void aDrawnListMarkerDropsAndATextMarkerKeepsItsOwnStyle() throws Exception { + byte[] docxBytes; + try (DocumentSession session = GraphCompose.document() + .pageSize(595, 842) + .margin(DocumentInsets.of(36)) + .create()) { + session.dsl().pageFlow().name("Flow") + .addList(list -> list + .hangingIndent(true) + .marker(m -> m.dot(4.0, DocumentColor.rgb(0, 0x88, 0x88))) + .items("Drawn marker item")) + .addList(list -> list + .hangingIndent(true) + .marker(m -> m.color("•", DocumentColor.rgb(0, 0x88, 0x88))) + .items("Coloured marker item")) + .build(); + docxBytes = session.export(new DocxSemanticBackend()); + } + + try (XWPFDocument document = new XWPFDocument(new ByteArrayInputStream(docxBytes))) { + List paragraphs = document.getParagraphs().stream() + .filter(p -> !p.getText().isBlank()) + .toList(); + assertThat(paragraphs).hasSize(2); + + // A disc has no Word analogue, so it drops — and drops rather than + // being replaced by a bullet nobody asked for. The item survives. + assertThat(paragraphs.get(0).getText()).isEqualTo("Drawn marker item"); + + // A marker written as text keeps the colour it was given, because a + // run colour is something Word holds. + XWPFParagraph coloured = paragraphs.get(1); + assertThat(coloured.getText()).isEqualTo("• Coloured marker item"); + assertThat(coloured.getRuns().stream().map(XWPFRun::text).toList()) + .containsExactly("", "•", " ", "Coloured marker item"); + assertThat(coloured.getRuns().get(1).getColor()) + .as("the marker's own colour") + .isEqualTo("008888"); + assertThat(coloured.getRuns().get(3).getColor()) + .as("and the item's text does not take it") + .isNotEqualTo("008888"); + } + } + private static byte[] richListDocx(boolean hangingIndent) throws Exception { try (DocumentSession session = GraphCompose.document() .pageSize(595, 842) From 708722b3437a4b60874adb712dfc0cd264e137b6 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 17:39:05 +0100 Subject: [PATCH 76/85] fix(examples): re-render the Professional Sidebar preview Its rail now runs from the first marker to the last entry's bound, which is what the sheet's design draws; the committed preview still showed the approximation. The examples module is outside the reactor gate, so the render and the preview move independently and this one was left behind. Co-Authored-By: Claude Opus 5 --- .../examples/cv-professional-sidebar-v2.pdf | Bin 53177 -> 53171 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/readme/examples/cv-professional-sidebar-v2.pdf b/assets/readme/examples/cv-professional-sidebar-v2.pdf index 401700151eb7b331ca1e08c5791d913237a0ea8b..59801874b7a6c4f981db3e6460bff636dc94e30b 100644 GIT binary patch delta 3687 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 Mk%B-fIuO!-0Td$s8vp Date: Sat, 12 Sep 2026 17:39:23 +0100 Subject: [PATCH 77/85] refactor(templates): put Teal Pulse's dotted lines on a real list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TealPulseStyles.DOT_GAP declares the distance from the teal dot to its label as px(17) = 9.175pt. The competencies, the experience highlights and the certifications were a paragraph per label — the dot, then a run of spaces standing in for that gap, then the text — and spaces cannot deliver it: the count is rounded to a whole number of them and then measured at each label's own type size, so one constant rendered as 9.308pt beside the competencies, 8.356pt beside the highlights and 8.806pt in the closing band. Wrapped labels cost more: with no marker column to hang under, every line after the first returned to the label's own left edge. Each block is now one list whose marker is the dot and whose markerGap is DOT_GAP, so the gap is that number in all three places and every line of a wrapped label starts where its first line's text does. Measured: 7 named nodes move and every one is a placementWidth — the sidebar 0.133pt narrower, the three highlight blocks 0.819pt wider, the certifications column 0.369pt wider, each exactly its own gap correction. No x, no y, no page ownership, still one page; these are content-sized boxes, so the correction is all that moves them. 22 883 pixels of 457 555 change at zero tolerance, maxDelta 192, inside the 50 000 the gate already allowed. The baseline and the committed preview are re-recorded, and all 126 baselines were hashed either side to prove only Teal Pulse's moved. The rows are one list node per block rather than one paragraph node per label, so the snapshot has 96 named nodes where it had 121 and the per-label names go with the paragraphs that carried them. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 25 + assets/readme/examples/cv-teal-pulse-v2.pdf | Bin 41604 -> 41472 bytes .../cv-v2/teal_pulse_layout.json | 964 ++---------------- .../cv-v2-layered/teal_pulse-page-0.png | Bin 113663 -> 113782 bytes .../templates/cv/presets/TealPulseBody.java | 25 +- .../cv/presets/TealPulseClosing.java | 15 +- .../cv/presets/TealPulseWidgets.java | 46 +- 7 files changed, 182 insertions(+), 893 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c6ba7fd7d..c9ed91440 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -898,6 +898,31 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **Teal Pulse's dotted lines are a real list, so its one declared gap is the gap it + draws.** The sheet's competencies, experience highlights and certifications were a + paragraph per label: a teal dot, then a run of spaces standing in for the gap, then the + text. `TealPulseStyles.DOT_GAP` declares that gap as `px(17)` = 9.175pt, and the spaces + could not deliver it — the count is rounded to a whole number of them and then measured at + each label's own type size, so one constant rendered as **9.308pt** beside the + competencies, **8.356pt** beside the highlights and **8.806pt** in the closing band. + Wrapped labels were the larger cost: with no marker column to hang under, every line after + the first returned to the label's own left edge. + + Each block is now one list with the dot as its marker and `DOT_GAP` as `markerGap`, so the + gap is that number everywhere and every line of a wrapped label starts where its first + line's text does. Measured: **7 named nodes moved and every one is a `placementWidth`** — + the sidebar 0.133pt narrower, the three highlight blocks 0.819pt wider, the certifications + column 0.369pt wider, each exactly its own gap correction. No x, no y, no page ownership, + still one page; the blocks are content-sized boxes, so the correction is all that moves + them. 22 883 pixels of 457 555 change at zero tolerance (maxDelta 192), inside the 50 000 + budget the gate already allowed; the baseline and the committed preview are re-recorded for + it, and all 126 baselines were hashed either side to prove only Teal Pulse's moved. + + The rows are one list node per block rather than one paragraph node per label, so the + layout snapshot has 96 named nodes where it had 121, and the per-label names + (`Competency_*`, `Highlight_*`, `Certification_*`) are gone with the paragraphs that + carried them. + - **New `receipt` family — payment confirmations.** The fifth family on the layered architecture, for the document a bank sends after money moves: a transfer confirmation, a direct debit advice, a card receipt. `ReceiptDocumentSpec` carries diff --git a/assets/readme/examples/cv-teal-pulse-v2.pdf b/assets/readme/examples/cv-teal-pulse-v2.pdf index 73b531b291e77dde23269cd0801d7918a6466c34..72277c2dad6502bbf9a9a942ee92d7711b7fad6f 100644 GIT binary patch delta 11457 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

        >%9cPm-I*p@`V}YNb8ZMkV4MwXeb$( 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

        Bgqxdt*L0ou@y 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 WT-+pCx=bt+;Fpsf!nO$>ob?Zs-U}xH literal 113663 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 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java index a0562a1c1..b56d5f10d 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java @@ -57,7 +57,7 @@ import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SUMMARY_TO_EXPERIENCE; import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.compact; import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.style; -import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.dottedLine; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.dottedList; import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.sectionHeader; import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.tracked; @@ -122,15 +122,13 @@ private static void renderCompetencies(SectionBuilder section, SkillsSection com tracked(heading, competencies.title(), headingStyle, SIDEBAR_HEADING_TRACKING_EM); section.add(heading.margin(new DocumentInsets(0, 0, HEADING_TO_ITEMS, 0)).build()); - section.addSection("CompetencyItems", items -> { - items.spacing(COMPETENCY_GAP); - for (SkillGroup group : competencies.groups()) { - for (CvSkill skill : group.entries()) { - items.add(dottedLine("Competency_" + compact(skill.name()), skill.name(), - COMPETENCY_SIZE, 1.0)); - } + List names = new ArrayList<>(); + for (SkillGroup group : competencies.groups()) { + for (CvSkill skill : group.entries()) { + names.add(skill.name()); } - }); + } + dottedList(section, "CompetencyItems", names, COMPETENCY_SIZE, 1.0, COMPETENCY_GAP); section.addLine(line -> line .name("CompetenciesClosingRule") .horizontal(SIDEBAR_CLOSING_RULE_WIDTH) @@ -199,12 +197,9 @@ private static void renderExperience(SectionBuilder main, EntriesSection experie .margin(new DocumentInsets(0, 0, ENTRY_TO_BULLETS, 0)); }); main.addSection("ExperienceHighlights_" + index, highlights -> { - highlights.spacing(BULLET_GAP); - for (String item : lines(entry.body())) { - highlights.add(dottedLine( - "Highlight_" + index + "_" + compact(item), item, - BULLET_SIZE, BULLET_LEADING)); - } + highlights.spacing(0); + dottedList(highlights, "Highlights_" + index, lines(entry.body()), + BULLET_SIZE, BULLET_LEADING, BULLET_GAP); highlights.margin(new DocumentInsets(0, 0, last ? 0 : ENTRY_GAP, 0)); }); } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseClosing.java index a466210c0..3dd8bd146 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseClosing.java @@ -17,6 +17,7 @@ import com.demcha.compose.document.templates.cv.data.EntriesSection; import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import java.util.ArrayList; import java.util.List; import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ACCENT_DEEP; @@ -51,7 +52,7 @@ import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.compact; import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.style; import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.columnHeader; -import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.dottedLine; +import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.dottedList; import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.icon; import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.tracked; @@ -155,13 +156,11 @@ private static void renderCertifications(SectionBuilder column, EntriesSection s } column.add(columnHeader(section.title(), TealPulseIcons.CERTIFICATIONS, BAND_COL2_WIDTH)); - column.addSection("CertificationItems", items -> { - items.spacing(CERT_ITEM_GAP); - for (CvEntry entry : section.entries()) { - items.add(dottedLine("Certification_" + compact(entry.title()), entry.title(), - BAND_BODY_SIZE, 1.0)); - } - }); + List titles = new ArrayList<>(); + for (CvEntry entry : section.entries()) { + titles.add(entry.title()); + } + dottedList(column, "CertificationItems", titles, BAND_BODY_SIZE, 1.0, CERT_ITEM_GAP); } /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseWidgets.java index 1a40b3a73..c2f35dfeb 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseWidgets.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseWidgets.java @@ -12,6 +12,8 @@ import com.demcha.compose.document.style.DocumentTextDecoration; import com.demcha.compose.document.style.DocumentTextStyle; +import java.util.List; + import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ACCENT; import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.ACCENT_DEEP; import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.BADGE_BAND; @@ -131,23 +133,41 @@ static DocumentNode icon(String token) { // -- lines ------------------------------------------------------------- /** - * A teal dot leading a near-black label. + * A list of near-black labels, each led by a teal dot. + * + *

        A real list, marker column and all: the dot is the marker and + * {@link TealPulseStyles#DOT_GAP} is the gap after it, in points. That is + * what {@code DOT_GAP} always meant and never got. Written as a paragraph + * per label — a dot run, then spaces standing in for the gap, then the text + * — the gap was a whole number of spaces measured at each label's own type + * size, so this sheet rendered its one declared 9.175pt as 9.308 beside the + * competencies and 8.356 beside the highlights. Wrapped labels were the + * larger cost: with no marker column to hang under, every line after the + * first returned to the label's own left edge.

        * - *

        Not a list: a list marker takes its item's own text colour, and here - * the dot and the label are deliberately different colours.

        + *

        Markers are left un-normalized because the labels are the document's + * own words and nothing is prefixing them with one; stripping a leading + * {@code "- "} here would edit the data.

        */ - static DocumentNode dottedLine(String name, String text, double size, double leading) { + static void dottedList(SectionBuilder host, String name, List labels, + double size, double leading, double itemGap) { DocumentTextStyle textStyle = style(BODY_FONT, size, BODY_TEXT, DocumentTextDecoration.DEFAULT); - return new ParagraphBuilder() - .name(name) - .textStyle(textStyle) - .align(TextAlign.LEFT) - .lineSpacing(leading) - .dot(DOT_DIAMETER, ACCENT) - .inlineText(gapRun(DOT_GAP, size) + text, textStyle) - .margin(DocumentInsets.zero()) - .build(); + host.addList(list -> { + list.name(name) + .textStyle(textStyle) + .align(TextAlign.LEFT) + .lineSpacing(leading) + .marker(marker -> marker.dot(DOT_DIAMETER, ACCENT)) + .hangingIndent(true) + .markerGap(DOT_GAP) + .itemSpacing(itemGap) + .normalizeMarkers(false) + .margin(DocumentInsets.zero()); + for (String label : labels) { + list.addItem(label); + } + }); } // -- heading bars ------------------------------------------------------ From b5c60b2340471c267827d0561ed7cf9930512d7d Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 17:43:14 +0100 Subject: [PATCH 78/85] refactor(templates): put Orange Ops' skills on a real list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each name was a paragraph opened by an accent dot, because a list marker used to take the list's own text colour and these dots are accent against charcoal copy. The gap between dot and name was four literal spaces — a measurement of the face, not a distance the sheet states. The dot is now the list's marker and the gap is SKILL_BULLET_GAP, the nearest round value in the sheet's own unit; the constant records that it was recovered from those spaces rather than declared by the design, so the next reader does not take it for a measured intent. Measured: one named node moves, by placementWidth +0.067pt — the difference between the four spaces and the declared gap — with no x, no y, no page ownership, still one page. 4 784 pixels of 500 395 change at zero tolerance, maxDelta 15, under the tolerance the gate already allowed for most of them; the baseline is re-recorded anyway and all 126 were hashed either side to prove only this one moved. Eleven Skill* paragraph nodes become one SkillNames list node, so the snapshot has 103 named nodes where it had 113. The committed preview is left alone: cv-orange-ops-v2.pdf is one of the four whose drift predates this work and has not been explained yet, and re-rendering it is how that explanation would be lost. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 12 + .../cv-v2/orange_ops_layout.json | 320 +----------------- .../cv-v2-layered/orange_ops-page-0.png | Bin 171081 -> 171036 bytes .../templates/cv/presets/OrangeOpsAside.java | 51 +-- .../templates/cv/presets/OrangeOpsStyles.java | 11 + 5 files changed, 64 insertions(+), 330 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9ed91440..225d2b501 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -898,6 +898,18 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **Orange Ops' skills are a real list.** Each name was a paragraph opened by an accent + dot, because a list marker used to take the list's own text colour and these dots are + accent against charcoal. The gap between dot and name was four literal spaces, which is a + measurement of the face rather than a distance the design states; it is now + `SKILL_BULLET_GAP`, the nearest round value in the sheet's own unit, and the dot is the + list's marker. Measured: **one named node moves, by `placementWidth` +0.067pt** — the + difference between those four spaces and the declared gap — with no x, no y, no page + ownership, still one page. 4 784 pixels of 500 395 change at zero tolerance, maxDelta 15, + so the pixel gate never noticed; the baseline is re-recorded anyway, with all 126 hashed + either side to prove only this one moved. Eleven `Skill*` paragraph nodes become one + `SkillNames` list node. + - **Teal Pulse's dotted lines are a real list, so its one declared gap is the gap it draws.** The sheet's competencies, experience highlights and certifications were a paragraph per label: a teal dot, then a run of spaces standing in for the gap, then the diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/orange_ops_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/orange_ops_layout.json index 3565acc9a..3401abdf0 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/orange_ops_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/orange_ops_layout.json @@ -715,11 +715,11 @@ "computedY" : 554.212, "placementX" : 23.134, "placementY" : 554.212, - "placementWidth" : 144.763, + "placementWidth" : 144.83, "placementHeight" : 160.179, "startPage" : 0, "endPage" : 0, - "contentWidth" : 144.763, + "contentWidth" : 144.83, "contentHeight" : 160.179, "margin" : { "top" : 0.0, @@ -764,325 +764,25 @@ "left" : 0.0 } }, { - "path" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill0[1]", - "entityName" : "Skill0", - "entityKind" : "ParagraphNode", + "path" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/SkillNames[1]", + "entityName" : "SkillNames", + "entityKind" : "ListNode", "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", "childIndex" : 1, "depth" : 5, "layer" : 5, "computedX" : 23.134, - "computedY" : 678.345, - "placementX" : 23.134, - "placementY" : 678.345, - "placementWidth" : 144.763, - "placementHeight" : 9.84, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 144.763, - "contentHeight" : 9.84, - "margin" : { - "top" : 3.672, - "right" : 0.0, - "bottom" : 0.0, - "left" : 0.0 - }, - "padding" : { - "top" : 0.0, - "right" : 0.0, - "bottom" : 0.0, - "left" : 0.0 - } - }, { - "path" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill1[2]", - "entityName" : "Skill1", - "entityKind" : "ParagraphNode", - "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", - "childIndex" : 2, - "depth" : 5, - "layer" : 5, - "computedX" : 23.134, - "computedY" : 665.932, - "placementX" : 23.134, - "placementY" : 665.932, - "placementWidth" : 131.487, - "placementHeight" : 9.84, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 131.487, - "contentHeight" : 9.84, - "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" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill2[3]", - "entityName" : "Skill2", - "entityKind" : "ParagraphNode", - "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", - "childIndex" : 3, - "depth" : 5, - "layer" : 5, - "computedX" : 23.134, - "computedY" : 653.519, - "placementX" : 23.134, - "placementY" : 653.519, - "placementWidth" : 118.564, - "placementHeight" : 9.84, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 118.564, - "contentHeight" : 9.84, - "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" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill3[4]", - "entityName" : "Skill3", - "entityKind" : "ParagraphNode", - "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", - "childIndex" : 4, - "depth" : 5, - "layer" : 5, - "computedX" : 23.134, - "computedY" : 641.105, - "placementX" : 23.134, - "placementY" : 641.105, - "placementWidth" : 127.199, - "placementHeight" : 9.84, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 127.199, - "contentHeight" : 9.84, - "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" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill4[5]", - "entityName" : "Skill4", - "entityKind" : "ParagraphNode", - "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", - "childIndex" : 5, - "depth" : 5, - "layer" : 5, - "computedX" : 23.134, - "computedY" : 628.692, - "placementX" : 23.134, - "placementY" : 628.692, - "placementWidth" : 113.218, - "placementHeight" : 9.84, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 113.218, - "contentHeight" : 9.84, - "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" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill5[6]", - "entityName" : "Skill5", - "entityKind" : "ParagraphNode", - "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", - "childIndex" : 6, - "depth" : 5, - "layer" : 5, - "computedX" : 23.134, - "computedY" : 616.279, - "placementX" : 23.134, - "placementY" : 616.279, - "placementWidth" : 111.668, - "placementHeight" : 9.84, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 111.668, - "contentHeight" : 9.84, - "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" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill6[7]", - "entityName" : "Skill6", - "entityKind" : "ParagraphNode", - "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", - "childIndex" : 7, - "depth" : 5, - "layer" : 5, - "computedX" : 23.134, - "computedY" : 603.865, - "placementX" : 23.134, - "placementY" : 603.865, - "placementWidth" : 108.962, - "placementHeight" : 9.84, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 108.962, - "contentHeight" : 9.84, - "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" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill7[8]", - "entityName" : "Skill7", - "entityKind" : "ParagraphNode", - "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", - "childIndex" : 8, - "depth" : 5, - "layer" : 5, - "computedX" : 23.134, - "computedY" : 591.452, - "placementX" : 23.134, - "placementY" : 591.452, - "placementWidth" : 112.668, - "placementHeight" : 9.84, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 112.668, - "contentHeight" : 9.84, - "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" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill8[9]", - "entityName" : "Skill8", - "entityKind" : "ParagraphNode", - "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", - "childIndex" : 9, - "depth" : 5, - "layer" : 5, - "computedX" : 23.134, - "computedY" : 579.039, - "placementX" : 23.134, - "placementY" : 579.039, - "placementWidth" : 88.536, - "placementHeight" : 9.84, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 88.536, - "contentHeight" : 9.84, - "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" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill9[10]", - "entityName" : "Skill9", - "entityKind" : "ParagraphNode", - "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", - "childIndex" : 10, - "depth" : 5, - "layer" : 5, - "computedX" : 23.134, - "computedY" : 566.625, - "placementX" : 23.134, - "placementY" : 566.625, - "placementWidth" : 139.564, - "placementHeight" : 9.84, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 139.564, - "contentHeight" : 9.84, - "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" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]/Skill10[11]", - "entityName" : "Skill10", - "entityKind" : "ParagraphNode", - "parentPath" : "OrangeOpsCv[0]/Body[3]/Aside[0]/Skills[0]", - "childIndex" : 11, - "depth" : 5, - "layer" : 5, - "computedX" : 23.134, "computedY" : 554.212, "placementX" : 23.134, "placementY" : 554.212, - "placementWidth" : 113.226, - "placementHeight" : 9.84, + "placementWidth" : 144.83, + "placementHeight" : 133.973, "startPage" : 0, "endPage" : 0, - "contentWidth" : 113.226, - "contentHeight" : 9.84, + "contentWidth" : 144.83, + "contentHeight" : 133.973, "margin" : { - "top" : 0.0, + "top" : 3.672, "right" : 0.0, "bottom" : 0.0, "left" : 0.0 diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/orange_ops-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/orange_ops-page-0.png index b3d58007a71682612a17fc66e8df64fe369ec9a0..96a2e2f37d7629495f4ca0aff86b31ea9038f723 100644 GIT binary patch literal 171036 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

        + *

        The dot is the list's marker and {@link OrangeOpsStyles#SKILL_BULLET_GAP} + * the gap after it. It was a paragraph per name, because a list marker used + * to take the list's own text colour and these dots are accent against + * charcoal; the gap was four literal spaces, which is a measurement of the + * face rather than a distance the design states.

        + * + *

        The design draws one flat run of names, so a section that groups its + * skills has its groups flattened in the order they were given; the group + * names are not drawn.

        */ private static void renderSkills(SectionBuilder side, SkillsSection skills) { side.addSection("Skills", block -> { @@ -123,22 +130,26 @@ private static void renderSkills(SectionBuilder side, SkillsSection skills) { names.add(skill.name()); } } - for (int i = 0; i < names.size(); i++) { - String name = names.get(i); - int index = i; - // The section's own spacing is the item pitch, which is tighter - // than the gap under the accent rule; the first item makes up - // the difference rather than the rule being nudged. - float lead = i == 0 ? (float) Math.max(0.0, RULE_TO_BODY - itemGap) : 0f; - block.addParagraph(p -> p - .name("Skill" + index) + DocumentTextStyle nameStyle = style(BODY_FONT, BODY_SIZE, BODY, false); + // The section's own spacing is the item pitch, which is tighter than + // the gap under the accent rule; the list's top margin makes up the + // difference rather than the rule being nudged. It sits on the list + // because the list's first item is the block's first item. + float lead = (float) Math.max(0.0, RULE_TO_BODY - itemGap); + block.addList(list -> { + list.name("SkillNames") + .textStyle(nameStyle) .lineSpacing(0) - .textStyle(style(BODY_FONT, BODY_SIZE, BODY, false)) - .dot(BULLET_SIZE, ACCENT) - .inlineText(" ", style(BODY_FONT, BODY_SIZE, BODY, false)) - .inlineText(name, style(BODY_FONT, BODY_SIZE, BODY, false)) - .margin(lead, 0f, 0f, 0f)); - } + .marker(marker -> marker.dot(BULLET_SIZE, ACCENT)) + .hangingIndent(true) + .markerGap(SKILL_BULLET_GAP) + .itemSpacing(itemGap) + .normalizeMarkers(false) + .margin(new DocumentInsets(lead, 0, 0, 0)); + for (String name : names) { + list.addItem(name); + } + }); }); } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsStyles.java index 8b3ef65e2..8e466e0d0 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsStyles.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/OrangeOpsStyles.java @@ -244,6 +244,17 @@ record Face(double lineFactor, double capTop, double capHeight, double capBottom static final double EDUCATION_ICON_COLUMN = 69 * PX; static final double CERT_TEXT_INSET = 16 * PX; static final double BULLET_SIZE = 5 * PX; + + /** + * The distance from a skill's accent dot to its name. + * + *

        Recovered rather than declared. The dot and the name were a paragraph + * with four literal spaces between them, and four spaces of this face at the + * aside's body size are a fact about the face rather than a distance the + * design asked for. The nearest round value in the sheet's own unit is what + * stands here, and the difference it makes is recorded with the change.

        + */ + static final double SKILL_BULLET_GAP = 15 * PX; static final double DATE_COLUMN_RATIO = 0.30; static final double METRIC_SEPARATOR = 0.6; From 1a440ea1874dd36f7746d32d24636e3a15c54458 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 17:57:52 +0100 Subject: [PATCH 79/85] fix(templates): give a wrapped degree title room instead of the line below it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Professional Sidebar's degree title sat in a container of exactly ENTRY_HEAD_HEIGHT, centred in it, which put its centre on the rail dot's. That works for a title of one line and for no other. Measured with a real degree — "MSc Advanced Computer Science and Software Engineering" — the title needs three lines in a sidebar that narrow and the box stayed 9.3pt tall: under OVERFLOW_VISIBLE the extra lines drew rather than vanished, putting the title's foot 16.840pt below its own institution line, across that line and the dates under it. A declared box that stays its declared size is the engine doing as it was told, so this is fixed where the box was declared. The title is the entry's own paragraph now, with the band's surplus over one line as air above and below it — EDUCATION_DEGREE_AIR, declared as air rather than left implicit in a height, so a title needing two lines gets two lines with the same air around them. Nothing about the canonical sheet moves. The paragraph occupies the same 9.3pt, its centre stays on the dot's, and it wraps at the same width, because the container's declared width and the timeline's content column resolve to the same expression. Zero named nodes move in the layout snapshot; the two EducationHead_* wrappers are gone with the containers, and the pixel baseline and the committed preview are untouched. The regression test states the invariant as the geometry rather than as a pixel: a degree that wraps must not reach past its own institution line, and a taller first entry must push the second one down. Also dropped two sentences of stale commentary above the block: they said starting the rail at the first marker was not expressible, which it now is, and named an extent constant that no longer exists. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 19 ++++ .../ProfessionalSidebarLongDegreeTest.java | 99 +++++++++++++++++++ .../cv-v2/professional_sidebar_layout.json | 88 +++-------------- .../cv/presets/ProfessionalSidebarAside.java | 64 +++++++----- .../cv/presets/ProfessionalSidebarStyles.java | 20 ++++ 5 files changed, 191 insertions(+), 99 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarLongDegreeTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 225d2b501..71b1d63d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -898,6 +898,25 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A long degree title no longer draws over its own institution line on Professional + Sidebar.** The title sat in a container of exactly `ENTRY_HEAD_HEIGHT`, centred, which put + its centre on the rail dot's — and works for a title of one line and no other. Measured + with a real degree, "MSc Advanced Computer Science and Software Engineering", the title + needed three lines in a sidebar that narrow and the box stayed 9.3pt tall: under + `OVERFLOW_VISIBLE` the extra lines drew rather than vanished, putting the title's foot + **16.840pt below its own institution line**, across that line and the dates under it. + + A declared box that stays its declared size is the engine doing as it was told, so the fix + is where the box was declared. The title is now the entry's own paragraph with the band's + surplus over one line as air above and below it — `EDUCATION_DEGREE_AIR`, declared as air + rather than left implicit in a height, so a title needing two lines gets two lines with the + same air around them. **Nothing about the canonical sheet moves:** the paragraph occupies + the same 9.3pt, its centre stays on the dot's, and its wrap width is the same number, + because the container's declared width and the timeline's content column resolve to the + same expression. Zero named nodes move in the layout snapshot; the two + `EducationHead_*` wrapper nodes are gone with the containers, and the pixel baseline and + the committed preview are untouched. + - **Orange Ops' skills are a real list.** Each name was a paragraph opened by an accent dot, because a list marker used to take the list's own text colour and these dots are accent against charcoal. The gap between dot and name was four literal spaces, which is a diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarLongDegreeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarLongDegreeTest.java new file mode 100644 index 000000000..f24c2e3ea --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarLongDegreeTest.java @@ -0,0 +1,99 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.layout.PlacedNode; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.Slot; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * A degree title too long for one line of the sidebar, on + * {@link ProfessionalSidebar}. + * + *

        The canonical fixture's degrees read {@code "DEGREE NAME"}, which fits, + * and a title that fits is the only one the block was ever measured with. A + * real degree — {@code "MSc Advanced Computer Science and Software + * Engineering"} — wraps in a sidebar this narrow, and the row it wraps into has + * to belong to it rather than to the line below.

        + * + *

        This is the block's own contract, not the timeline's: the rail, the dots + * and the entry spacing are all the timeline's and are unaffected by how tall + * one degree is. What is asserted here is that a degree which needs two lines + * gets two lines of room.

        + */ +class ProfessionalSidebarLongDegreeTest { + + private static final String LONG_DEGREE = + "MSc Advanced Computer Science and Software Engineering"; + + @Test + void aDegreeThatWrapsDoesNotLandOnItsOwnInstitutionLine() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + ProfessionalSidebar.create().compose(session, longDegreeCv()); + session.toPdfBytes(); + + PlacedNode degree = node(session, "EducationDegree_0"); + PlacedNode institution = node(session, "EducationInstitution_0"); + + assertThat(degree.placementHeight()) + .as("the degree needs more than one line at this width") + .isGreaterThan(12.0); + + // y grows upwards, so the degree's foot must sit at or above the + // institution's head. Overlap is the defect: the head band declared + // one line of height for a title that needed two, and drew the + // second over the line below rather than pushing it down. + double degreeFoot = degree.placementY(); + double institutionHead = institution.placementY() + institution.placementHeight(); + assertThat(degreeFoot) + .as("degree foot %.3f must not fall below institution head %.3f", + degreeFoot, institutionHead) + .isGreaterThanOrEqualTo(institutionHead - 0.001); + } + } + + @Test + void theSecondDegreeStillClearsTheFirstEntry() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + ProfessionalSidebar.create().compose(session, longDegreeCv()); + session.toPdfBytes(); + + PlacedNode firstDates = node(session, "EducationDates_0"); + PlacedNode secondDegree = node(session, "EducationDegree_1"); + + assertThat(secondDegree.placementY() + secondDegree.placementHeight()) + .as("a taller first entry pushes the second one down") + .isLessThanOrEqualTo(firstDates.placementY() + 0.001); + } + } + + private static PlacedNode node(DocumentSession session, String name) { + return session.layoutGraph().nodes().stream() + .filter(n -> name.equals(n.semanticName())) + .findFirst() + .orElseThrow(() -> new AssertionError("no node named " + name)); + } + + /** The canonical fixture with one degree title that cannot fit one line. */ + private static CvDocument longDegreeCv() { + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("YOUR", "NAME") + .jobTitle("YOUR PROFESSIONAL TITLE") + .contact(new Contact("+1 234 567 8900", + "your.email@example.com", + "City, Country")) + .build()) + .section(Slot.SIDEBAR, EntriesSection.builder("EDUCATION") + .entry(LONG_DEGREE, "University Name", "2016 – 2020", "") + .entry("DEGREE NAME", "University Name", "2012 – 2016", "") + .build()) + .build(); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json index 06ebba451..17e496e80 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json @@ -2335,11 +2335,11 @@ "computedY" : 160.394, "placementX" : 33.6, "placementY" : 160.394, - "placementWidth" : 91.656, + "placementWidth" : 51.713, "placementHeight" : 31.34, "startPage" : 0, "endPage" : 0, - "contentWidth" : 91.656, + "contentWidth" : 51.713, "contentHeight" : 31.34, "margin" : { "top" : 0.0, @@ -2354,44 +2354,14 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_0[0]", - "entityName" : "EducationHead_0", - "entityKind" : "ShapeContainerNode", + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationDegree_0[0]", + "entityName" : "EducationDegree_0", + "entityKind" : "ParagraphNode", "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 0, "depth" : 14, "layer" : 14, "computedX" : 33.6, - "computedY" : 182.434, - "placementX" : 33.6, - "placementY" : 182.434, - "placementWidth" : 91.656, - "placementHeight" : 9.3, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 91.656, - "contentHeight" : 9.3, - "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_0[0]/EducationDegree_0[0]", - "entityName" : "EducationDegree_0", - "entityKind" : "ParagraphNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[0]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_0[0]", - "childIndex" : 0, - "depth" : 15, - "layer" : 15, - "computedX" : 33.6, "computedY" : 182.704, "placementX" : 33.6, "placementY" : 182.704, @@ -2402,9 +2372,9 @@ "contentWidth" : 51.713, "contentHeight" : 8.76, "margin" : { - "top" : 0.0, + "top" : 0.27, "right" : 0.0, - "bottom" : 0.0, + "bottom" : 0.27, "left" : 0.0 }, "padding" : { @@ -2785,11 +2755,11 @@ "computedY" : 118.054, "placementX" : 33.6, "placementY" : 118.054, - "placementWidth" : 91.656, + "placementWidth" : 51.713, "placementHeight" : 31.34, "startPage" : 0, "endPage" : 0, - "contentWidth" : 91.656, + "contentWidth" : 51.713, "contentHeight" : 31.34, "margin" : { "top" : 0.0, @@ -2804,44 +2774,14 @@ "left" : 0.0 } }, { - "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_1[0]", - "entityName" : "EducationHead_1", - "entityKind" : "ShapeContainerNode", + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationDegree_1[0]", + "entityName" : "EducationDegree_1", + "entityKind" : "ParagraphNode", "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]", "childIndex" : 0, "depth" : 14, "layer" : 14, "computedX" : 33.6, - "computedY" : 140.094, - "placementX" : 33.6, - "placementY" : 140.094, - "placementWidth" : 91.656, - "placementHeight" : 9.3, - "startPage" : 0, - "endPage" : 0, - "contentWidth" : 91.656, - "contentHeight" : 9.3, - "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_1[0]/EducationDegree_1[0]", - "entityName" : "EducationDegree_1", - "entityKind" : "ParagraphNode", - "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationRailHolder[0]/SectionNode[0]/LayoutAnchorNode[1]/SectionNode[0]/HorizontalBandsNode[0]/RowNode[0]/SectionNode[1]/EducationHead_1[0]", - "childIndex" : 0, - "depth" : 15, - "layer" : 15, - "computedX" : 33.6, "computedY" : 140.364, "placementX" : 33.6, "placementY" : 140.364, @@ -2852,9 +2792,9 @@ "contentWidth" : 51.713, "contentHeight" : 8.76, "margin" : { - "top" : 0.0, + "top" : 0.27, "right" : 0.0, - "bottom" : 0.0, + "bottom" : 0.27, "left" : 0.0 }, "padding" : { diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java index 155cf9b64..20e53e85b 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java @@ -35,11 +35,13 @@ import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ACCENT_PRIMARY; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.BODY_LEADING; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.BODY_SIZE; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.CONTACT_HEADING_TO_BODY; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.CONTACT_ROW_GAP; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.CONTACT_TO_SKILLS_ABOVE; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.CONTACT_TO_SKILLS_BELOW; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_DEGREE_AIR; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_DEGREE_SIZE; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_ENTRY_GAP; import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_HEADING_TO_BODY; @@ -298,19 +300,15 @@ private static DocumentNode skillMeter(double level) { * The education rail: a hairline down the left of the block with a dot * on each entry's first line. * - *

        The rail spans the entries, which is what {@code ENTRY_BOUNDS} means and what the - * block has always drawn. It used to be the section's left accent, and the first entry - * filled its own head band with the sidebar colour, masked the rail's protruding edge - * above its dot and redrew the rail below it, meaning to start the line at the first - * marker. Measured against the render, that never happened: an accent draws above the - * fill and above the mask, so the rail stayed visible for the 2.5pt above the first dot - * and the only thing the construction achieved was drawing that stretch below the dot - * twice. The mask and the redraw are gone; the rail is the timeline's and says what it - * does.

        - * - *

        Starting the line at the first marker while still running it to the foot of the - * entries is not something the extent vocabulary can say today — see the follow-up - * table in the integration plan.

        + *

        The rail runs from the first dot to the foot of the last entry, which is what the + * block is drawn as and what it now asks for. It used to be the section's left accent, + * and the first entry filled its own head band with the sidebar colour, masked the rail's + * protruding edge above its dot and redrew the rail below it, meaning to start the line + * at the first marker. Measured against the render, that never happened: an accent draws + * above the fill and above the mask, so the rail stayed visible for the 2.5pt above the + * first dot and the only thing the construction achieved was drawing that stretch below + * the dot twice. The mask and the redraw are gone; the rail is the timeline's and says + * what it does.

        */ private static void renderEducation(SectionBuilder section, EntriesSection education) { sidebarHeading(section, education.title(), EDUCATION_HEADING_TO_BODY); @@ -379,19 +377,35 @@ private static TimelineMarker educationMarker(int index) { .margin(new DocumentInsets(halfBand, 0, 0, 0)))); } + /** + * The degree title — the entry's own first line, not a band of declared height. + * + *

        It was a container of exactly {@code ENTRY_HEAD_HEIGHT} with the title centred in + * it, which put the title's centre on the dot's, the dot being centred in a box of the + * same height. That works for a title of one line and for no other. "MSc Advanced + * Computer Science and Software Engineering" needs three lines in a sidebar this narrow, + * and a box told to be 9.3pt tall stayed 9.3pt tall; under + * {@link ClipPolicy#OVERFLOW_VISIBLE} the extra lines drew rather than vanished — 16.840pt + * of them, over the institution and the dates below.

        + * + *

        Nothing about a one-line title moves. The band's surplus over one line is now + * {@link ProfessionalSidebarStyles#EDUCATION_DEGREE_AIR} above and below the title, so it + * occupies the same 9.3pt and its centre stays on the dot's; and the width is the same + * number too, since the container declared + * {@code SIDEBAR_INNER_WIDTH - EDUCATION_RAIL_X - EDUCATION_TEXT_X} and the timeline's + * content column resolves to exactly that out of {@code axisWidth} and {@code markerGap}. + * What changes is only that a title needing a second line now gets one.

        + */ private static void renderEducationHead(SectionBuilder rail, CvEntry entry, int index) { - DocumentNode degree = paragraph("EducationDegree_" + index, entry.title(), - style(BODY_FONT, EDUCATION_DEGREE_SIZE, TEXT_PRIMARY, - DocumentTextDecoration.BOLD), - TextAlign.LEFT); - // The dot has left this band for the timeline's axis column, so the degree starts at - // the content column rather than walking in past the rail. - rail.addContainer(head -> head - .name("EducationHead_" + index) - .rectangle(SIDEBAR_INNER_WIDTH - EDUCATION_RAIL_X - EDUCATION_TEXT_X, - ENTRY_HEAD_HEIGHT) - .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) - .position(degree, 0, 0, LayerAlign.CENTER_LEFT)); + rail.addParagraph(p -> p + .name("EducationDegree_" + index) + .text(entry.title()) + .textStyle(style(BODY_FONT, EDUCATION_DEGREE_SIZE, TEXT_PRIMARY, + DocumentTextDecoration.BOLD)) + .align(TextAlign.LEFT) + .lineSpacing(BODY_LEADING) + .margin(new DocumentInsets( + EDUCATION_DEGREE_AIR, 0, EDUCATION_DEGREE_AIR, 0))); } // -- languages ------------------------------------------------------- diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarStyles.java index aef9d29ba..37a76b04d 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarStyles.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarStyles.java @@ -83,6 +83,26 @@ private ProfessionalSidebarStyles() { static final double ENTRY_HEAD_HEIGHT = 9.3; + /** + * The line box of the body face as a share of its type size. + * + *

        Declared because one thing on this sheet has to reason about the height of a line + * without measuring one: see {@link #EDUCATION_DEGREE_AIR}.

        + */ + private static final double BODY_LINE_FACTOR = 1.200; + + /** + * The air above and below a degree title. + * + *

        Half of what {@link #ENTRY_HEAD_HEIGHT} had over one line of the degree, and + * declared as air rather than left implicit in a band height so that a degree needing + * two lines gets two lines with the same air around them. As a band the title kept the + * air and lost the lines: a box told to be 9.3pt tall stays 9.3pt tall, and the overflow + * drew over the institution below it.

        + */ + static final double EDUCATION_DEGREE_AIR = + Math.max(0.0, (ENTRY_HEAD_HEIGHT - EDUCATION_DEGREE_SIZE * BODY_LINE_FACTOR) / 2.0); + // -- type ------------------------------------------------------------ static final FontName DISPLAY_FONT = FontName.BARLOW_CONDENSED; From 951133c26fe9fd81e98a1cb6be3c48c0e44bda8b Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 18:03:41 +0100 Subject: [PATCH 80/85] chore(templates): drop an import the dotted-line migration left behind Co-Authored-By: Claude Opus 5 --- .../compose/document/templates/cv/presets/TealPulseBody.java | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java index b56d5f10d..47a2cc99e 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java @@ -55,7 +55,6 @@ import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SUMMARY_RIGHT_INSET; import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SUMMARY_SIZE; import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.SUMMARY_TO_EXPERIENCE; -import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.compact; import static com.demcha.compose.document.templates.cv.presets.TealPulseStyles.style; import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.dottedList; import static com.demcha.compose.document.templates.cv.presets.TealPulseWidgets.sectionHeader; From d0c946ad4e9e6ffd0f3dbc1d6e3fb2fd9a6e5043 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 18:35:08 +0100 Subject: [PATCH 81/85] refactor(templates): hang a stacked row's body under its name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every themed CV preset draws its rows through one shared path, and that path put the bullet inside the paragraph's text as a bulletOffset and indented what followed with a run of spaces measured to clear it. Decoration.stackedIndent — the two spaces under a stacked row's bold name — carries its own contract: it "must visually occupy the same width as bulletGlyph". Measured on the pixel gate's canonical document it does not, by 0.720pt to 3.078pt depending on the theme's type size, so the body of every Projects-style row began slightly to the left of the name it hangs under. Each row is a list now. A bulleted row is one item, so its marker sits in a measured column and every visual line starts at one content origin. A stacked row is one item with a markerless child: a child's marker column opens at its parent's content origin and a child with no marker takes no marker width and no gap, so the body begins exactly where the name's text begins — by construction rather than by a count of spaces. The content is inline runs, so the bold label of a "label: body" row stays part of one item. The gap after a bullet is a quarter of the type size, which is what the trailing space inside bulletGlyph was approximating. Per preset, on that same document — page count, the row text origin, the stacked body against its name, and the pixel delta at zero tolerance: blue_banner 2->2 38.437->38.391 own path 7422 maxD 12 boxed_sections 2->2 38.003->38.063 36.180->38.338 26085 maxD 201 centered_headline 2->2 35.273->35.221 own path 8709 maxD 12 executive 2->2 35.819->35.885 32.864->35.885 29553 maxD 202 minimal_underlined 2->2 42.003->42.063 40.180->42.338 26300 maxD 202 modern_professional 2->2 36.280->36.000 35.560->36.000 32165 maxD 98 panel 1->1 33.858->33.802 313.451->316.440 29990 maxD 201 Blue Banner and Centered Headline render stacked rows their own way and are untouched by that column. The row text origin moves by at most 0.280pt, the difference between a quarter of the type size and the space it replaces. Every multi-line count and every page count is identical before and after; the one structural change is an extra fragment per row, which is the marker's own. The stacked pair states its own item spacing because the name and the body used to be two children of the host section with the host's spacing between them, and one list is one child. Without it the rows closed up by that gap and content moved a page — caught by an entry body that jumped from page 1 to page 0 on two presets. Seven pixel baselines and seven committed previews are re-recorded, with all 126 baselines and all 118 previews hashed either side: exactly seven of each moved. engineering_resume's baseline differs from its render by 306 pixels for a reason that predates this work — verified by measuring it against the unmodified code — so it is left as it was, as are the four preview drifts under separate investigation. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 41 ++++++++ assets/readme/examples/cv-blue-banner-v2.pdf | Bin 39347 -> 39380 bytes .../readme/examples/cv-boxed-sections-v2.pdf | Bin 48101 -> 48146 bytes .../examples/cv-centered-headline-v2.pdf | Bin 38156 -> 38190 bytes assets/readme/examples/cv-executive-v2.pdf | Bin 37991 -> 38034 bytes .../examples/cv-minimal-underlined-v2.pdf | Bin 48057 -> 48103 bytes .../examples/cv-modern-professional-v2.pdf | Bin 4368 -> 4416 bytes assets/readme/examples/cv-panel-v2.pdf | Bin 38584 -> 38602 bytes .../cv-v2-layered/blue_banner-page-0.png | Bin 112104 -> 112125 bytes .../cv-v2-layered/boxed_sections-page-0.png | Bin 100546 -> 100598 bytes .../centered_headline-page-0.png | Bin 110540 -> 110488 bytes .../cv-v2-layered/executive-page-0.png | Bin 118283 -> 118330 bytes .../minimal_underlined-page-0.png | Bin 98937 -> 99027 bytes .../modern_professional-page-0.png | Bin 149832 -> 149962 bytes .../cv-v2-layered/panel-page-0.png | Bin 153133 -> 153163 bytes .../cv/components/ParagraphPrimitive.java | 97 ++++++++++++++++-- .../templates/cv/components/RowRenderer.java | 33 +++--- 17 files changed, 143 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71b1d63d4..453583921 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -898,6 +898,47 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A stacked row's body now hangs under its name, not a couple of points to the left of + it.** The shared bullet path every themed CV preset draws its rows through — + `RowRenderer`, `SkillsRenderer` — put the glyph inside the paragraph's text as a + `bulletOffset` and indented what followed with a run of spaces measured to clear it. + `Decoration.stackedIndent`, the two spaces under a stacked row's bold name, carries its own + contract: it "must visually occupy the same width as bulletGlyph". Measured on the + canonical document it does not, by **0.720pt to 3.078pt** depending on the theme's type + size — so the body of every Projects-style row started slightly left of the name it hangs + under. + + Each row is a list now. A bulleted row is one item, so its marker sits in a measured + column and every visual line of it starts at one content origin. A stacked row is one item + with a **markerless child**: a child's marker column opens at its parent's content origin, + and a child with no marker takes no marker width and no gap, so the body begins exactly + where the name's text begins — by construction rather than by a count of spaces. The + content is inline runs, so the bold label of a `label: body` row stays part of one item. + The gap after a bullet is a quarter of the type size, which is what the trailing space + inside `bulletGlyph` was approximating. + + Measured per preset, at the pixel gate's own canonical document. Page counts, wrapping and + vertical rhythm are unchanged everywhere — the correction is horizontal: + + | preset | pages | row text origin | stacked body → name | pixels (of 500 395) | + |---|---|---|---|---| + | `blue_banner` | 2 → 2 | 38.437 → 38.391 | own path, unchanged | 7 422, maxΔ 12 | + | `boxed_sections` | 2 → 2 | 38.003 → 38.063 | 36.180 → 38.338 (**+2.158**) | 26 085, maxΔ 201 | + | `centered_headline` | 2 → 2 | 35.273 → 35.221 | own path, unchanged | 8 709, maxΔ 12 | + | `executive` | 2 → 2 | 35.819 → 35.885 | 32.864 → 35.885 (**+3.021**) | 29 553, maxΔ 202 | + | `minimal_underlined` | 2 → 2 | 42.003 → 42.063 | 40.180 → 42.338 (**+2.158**) | 26 300, maxΔ 202 | + | `modern_professional` | 2 → 2 | 36.280 → 36.000 | 35.560 → 36.000 (**+0.440**) | 32 165, maxΔ 98 | + | `panel` | 1 → 1 | 33.858 → 33.802 | 313.451 → 316.440 (**+2.989**) | 29 990, maxΔ 201 | + + The row text origin moves by at most 0.280pt, which is the difference between a quarter of + the type size and the space it replaces. Every multi-line count is identical before and + after, and so is every page count; the only structural change is one extra fragment per row, + which is the marker's own. The seven pixel baselines and seven committed previews are + re-recorded, with all 126 baselines and all 118 previews hashed either side: exactly seven + of each moved. `engineering_resume`'s baseline differs from its render by 306 pixels for a + reason that predates this work — verified by measuring it against the unmodified code — so + it is left alone, as are the four preview drifts under separate investigation. + - **A long degree title no longer draws over its own institution line on Professional Sidebar.** The title sat in a container of exactly `ENTRY_HEAD_HEIGHT`, centred, which put its centre on the rail dot's — and works for a title of one line and no other. Measured diff --git a/assets/readme/examples/cv-blue-banner-v2.pdf b/assets/readme/examples/cv-blue-banner-v2.pdf index eaf9a6052a13918504e5940cf703937c5bbd10f3..acdc018f05942ec17a83e2f516d193b3b1fa07d3 100644 GIT binary patch delta 4283 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
        Ab9-ou}wal`O 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 NmV%E@!$_0je*it=E8_qF diff --git a/assets/readme/examples/cv-boxed-sections-v2.pdf b/assets/readme/examples/cv-boxed-sections-v2.pdf index a2f8fb368328b0f5f7026e7497b286dc749f4685..6904d64d97a2c80ce6876438e8c669809f7c69a7 100644 GIT binary patch delta 3112 zcma*j`9ISQ-~e#VmAP`Z%{AtlVROw{8HOBPh-5vv@4IsQY;wfIibZ4$MaWSk*T|L7 zJUs5)=R;P=%B{Yy?;r4ey}tjz`-k`1J}Bz|^u!&cqfIG3hX5L!1A`@Wg%#ClD%{nh z^3N8BK_K-|>R4IMYSt`%+fL59uB~BSwLg>~DbOt1w0!5ec+>H*E_KbSRXzgYAIQ5m zFiQy2qelIgCwuAs#rx5xkN=#0N_kwrG_%zjrBnirzc<%Ij(ZLuAYfCltVV_ zC!*1JBGABB>d8(`cv!0DcWrkhF3p~~nLb%P4rM*vjWAMJIBibW1mHzGsw+lUZR*I_TsnC4aKlT`ZQoc!{fKmOW6}sp;%R z^kUwJrglEzg!~FoN%d5GU1_)eg}xA|zUld``W0ctMhLCIt}N zcsNzeQ@fZdX_J2NqHCv`Up}o;UaaCR$rK`!=rZk?vzj@Y-L=HP#8H_ek<~1l|9saa zr~g^pZod_DZbG^9ki*)L~hRxVLu*=N->Ef_cVBou_8 zE)L%n;ohmc^(fDRjw#}_>=s76-S!+@swcHpVX!F^0pyJ=*AC<|P;eY`aOJdAW|E8<j&6GCJ}cop3^X#E2;bK8jQxr%kt#rcI@ zcXJyTBa3_33qYMKXz8G8QB3+u{4EMNUZSL*v81Pc*vEP((&-SZt|$b}Xn^&0ha06}@Z#_gY7^(k^`iKON)bNL9{ zJM8sEQZ75PegVXH-Ci?mBqm|w% zlLTn;drvC&D(}ICzSnQdgy{R_yJog~LjD4KNW11t%EE{`!gR}sJ>M0&1fCl#4FONe zr~H=*te}P8!8D|;Mb)n4j!6XD1RZbr)nJ7t*@l+St6>J_a2X)W&h5P{c#5*Iu*v zzNKK{qkotfD;-ZfoQHgAdYw6v{1BaI$>C7PudC~nSImUDX&Q^%iGH8wD2b7stDFFC zSzJ3wTkkM%C>&O&XPPE`Tzd{WT>Fe1AeMd!Q1f%}Rw=RSv;Q76DcRf&C$cTc4U^WM zL%p`xEiTA*i>KjK1Nr}4?U$L{`J-Bt=47Hh8OV2gD!~ky#0NPTQ28bYXP?v-3sfQM zSOF%#S6xF!#Tn;>yakS6&WXP#qTB$|&BAT-qp{hY26`d$d{^MV`qblE)t=TGjm{YM zS<&*(%=5WD$)fS(<-O};1-uL+PDRDR-{J10TfVR#kGfZo*_on80#UT8Z;Mjv4qk*$ z8%@nX~wX_daZ?ev74HJcRuD3=gc#vOP=k&2L=#cb_w@8 zMVAY5YERGd8PHrIVUyi)SeaTleWlB3AX!-JQ7O|_D>yuYH!X&&EIyx6Ad8+(7N){U z5bk5&*@|k+$pz!ws3NyF?|?CGd+|zYE`rbH-4|a!wt|T`_cMcY1RMmER&RUiv{MW@B-nUGh1IBgv!47vN!Dk@wJhe#T{I z?6jm!&Q<7TJ zani6p?Dx9~R&K&Qd~YCF+ppFBpW2e7A$w{`HkA`J)D={Bh@4p`)9sa8CRy_a!I0ym zT4aTxW?ct-TO#%*rh-4Q8jF?Qj~Jc}NLbBJ-W z(EecbxfC9)f3|0+z4~nPMGCDFwtOqw`BlaZ*z22zd$!~a0L9eowcgM4qIGUx#c>3w zUlX_4mb=^ZQ3&5Sr}W|eQTXTq$@3KjwhCSRkxwuD{%I4{tyM5#?Nc!R5+oAaon9Y2 zbRVMDR7Z0g2_;BK*v5v-VlG|8zQ+~gb80!)E+6I1NeMillwAjLb^FM_d=inn`dW?r z)ns)4KaMe3hr+fL-flHo>`0K5al(n5pWTX`PsJ_bnhtICK5B|AVddr5AL=H6w-ZNI zOy4{xB)O*QD4?jXo!v+6H*Ws&PY&1V05a^tO(~VDP7*x71=+*|kd%MzMCw&}VYL7T zjJ^>Zd=IVx$G~rZ(U;BOw~cUSx>^`*b4_hceT52R!aiiG+A?qdqTy`vo}MS2ydA!&YUZ~VY``v q!H1B~jbb&s?hkodPYjrXZCv6z|NBK5YUKm#YG{BJ6!2Hg!T$rw?82e| delta 3062 zcma*f2|v>h0|0OoB68$TnK`l|GsiZ{Irq)n{N2obm#cn=Ih#A0B4

        x4A-0l;ui> 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 diff --git a/assets/readme/examples/cv-centered-headline-v2.pdf b/assets/readme/examples/cv-centered-headline-v2.pdf index ae1f63cdb2275920362db092f3c0c6d6927fbc03..0632c0ef2935e5dc0288b0a882193d3f7d9acc35 100644 GIT binary patch delta 4062 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 DJM6Mj delta 4019 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 E4=C@@-v9sr delta 3548 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 KD2RE81^x%`&&DtS diff --git a/assets/readme/examples/cv-minimal-underlined-v2.pdf b/assets/readme/examples/cv-minimal-underlined-v2.pdf index c4d1082cf36022a8fc7059b8e2de3dcbceadca56..505478f170f22bddd04197742b85f6d4d1953185 100644 GIT binary patch delta 3063 zcma*fhde8^62e* z*8I^QpF6oo5L-Tb(wpi1X1qUBG0h0)sJo{vg?oP z)d(g7oWR%sh&9B;VdGT?INy6xXz?U#U?TH^O~JrV-a|zB8FLv} z>U;hm&+~=O6$IMqhOnSKYc>wCA|UGz53KpHN&x#ARSCNb zXmFc{Jzehx>tf>I#$@ljIF-7G89djen5{(@tgI zYtraCxW{}9ectBTvhF?oPsX&T91 zkP4@zsIKQ}O$oMd<}R|_O9g%1)X@+G;YJ3gIx`3S#toFUObig<<}^-4H%5~LYs_AI z@C!SDk$08&`UJh#5PM*%e)Z?MkOOZS^<7d<68HRH&3oD}FV#gNd}SEd-05lGya;*o z(-d|qVwA=)v(1c!Km5tpWMDDBtJvw5MURlR%ffiB@#x!4_Q_L_YFx52c#<|g#5UVB z|3-RPQhy6&>FM^+%2Os*s=+MJ$fD1(m_$y)ARvRKEKc0e@Q-x0tilf$x8AT;OK?>u zB?e38d#y87caUEAO-UQ7GhESWaA>!V+YV2`@VB{_1!NRZ@;kBn@jt&EmfKNwnaJ40ryEe`CK{IIlFOfh*m6rgUDi zyAe;WS?+bv8k!B!4`qH#bna|PPz42d@pw+fR51zcDy~<4h5s8#hHqY(UHXrKOMdTDxcqex=qcRILz`(8M>`q&be9fsgKho_#cJmWRhU3 z>k~sZm$-Hru4ZL_4?=pio503XylQWSsT2qz&<&=O@SDMci42Iq1$bbXh{igeZh{qk z5F_Hi@I3^eihmY(yH+n(*X81wG!t&@Q#AU$DgF9^X|}VaU*{uNP-XwjHpYn=zjMQk z8^l~;zo`rE86S#_zVal(0Y$Ic**(! z$WG|dFzmPD&B0(WXNe|i>m_QuWG?rYSv_^_`T`VS`YAUH72CFVgtK49auM`0kjWgW zg#iARXxkpIUhQz0*VCSe-jt}O%q+G6;fZF0nr!-ciyji2cqom-j$V`?Qu*+rZS(DX zkv|u*+bf&D+zq~-HD-FE=9J;s_S8HJ%Zw* zWn%bpILNePSjF0`Dk$jj4|?h?WU5V_S1}-I5i|GUX@y66%ae9(3A+{TGU9&=CA*-l z?1z%S6ITuEw=-e&BFf?gkHwrOl{E3jX#8aC7M#+uzyR9jmtnYr)%}4!b$KY+zT^F! zUlb|(t76OMv-#-`wG;bvz$<&E_m$M2``xjpwo6>Doj2EmVfQWFJwGy=e&>H6osI*z z7}zdVF+(tY*dC@xjZt2CZHXJ zqIX<|Xbb(^xRf`}qnvR&(O$n)nF{H8qT6RUtuy5fU1vAHYOnrOoVo_u)#5=+e-Jfkin-zqV|pdf4VCbA zY%h|}1?`ZL5-f`S?ZFgEmh71Z*UbU~s&G|vv*8b4dk|j0V8XP1$j&j}QnB6?GKP17hvKB3+SbHZ*ulzH$2Q7s^_V`Y4@U-z6QD)JgM1;4GV<&l<09o> zu9xMaK5DDA0>)TqzFRUt_tjWUq&*t`k58^Iih0DK^2&n7IhkLjmd zBW9o4%Lm<0siN5@#TNXx^*4ii;!$(*KB z_Qws}NJ~NU-aNxG5VmG7+#-^!*3hH>Txp6go)*VlPS2X!aJ>-|3Q-dT2jDZdFkv}A zr{4Q^hK1Glk5Zvaf@4Qgv(26ZSw-2hOt|~AW69-1KfA59RKDU@>(d)cLf){25;P;% z?RtX$s>yFE9G<^t>YK`v;oJ%0K~DdcfDvg&e)<1AqSgI?Sh8)53ZqH^0r4yH@V)#f zrQQLz+AgV_^PAT#FCu8G+aszkGC8D|Ol(Gpr{P|zx+?l>&WrAxqo}p`oPV4o8U7m8 z4r1|CmHFeaW|L;QJ|2il&t@gml z`>)6Y^0Wp!Q`JigY+UZ8@&Lw!bbn}z;l~qJll>q0;hB+E=7K~9Sj^i7ZdK}vqKhaq z*bFDgXJMuVxq$kH6XtOa9M*{zJr;0E%(!cf73$qaoC*@6ue;^6wQ-&>7+m#iHh-HJ rzA$62HnWvA@!>@P}19=?21YpaJY_%F30}>0HLhS delta 3017 zcma*fi9geg;{fm+bKh5Ui#9jg+&RZc2f~7hK-?9-_<6o?f|ZUQ+?mv+)Wx;W>2>JpK+^w6`xy(coDZ7D$e z4@v9u-?~2s)%;$(FCr8?Fy+Z?ylUf}C&gouy;vdJ(aw{qu@T^GdqgsZz&#gccs3ii z#d;PB%#6$#hVT^-Ns`z8_BG61)ckyXPMhoMpJ_R6C-drDNo5H#cg=da(bIy@%KRyF zw6_;}xRys=)!M#Ri79lXX@%!5N43NrUp=d;KWz(V&O;vpg$bd#&ydNttF{bvjiEX6 z;i@0bOW(&f?yp4lDV6Fy-_>+zOcqeJC(H%|J=d3P_Xv6e5V1`C)8kaVKquFid1EIz zdZVgmb}csv9#&l&7Jw?#WRu45A!mLzL^zA^br64~3EduIF$mtn9GwXnRC*wxJAdKA zMsuszb1S&jz8Z=AJI|SeBOvvTxIk_hpTCWA87DSuY4^_dpg(^5*Uj_pB zsXzs9k;bO)4vh~sRI1ENmDHf5kHVgZh*hvhK=eyTNy~1maNFZLaSU-C9Md;H`uI+A z!rzqneZG@3Qs{kUk@;H!qjJkPhJG&TcPi7}A|c;NEIMJPA_@)g zR=SrdVO-nHk?lx_I>x_Iym!p#udE(~;=bH#T`PAit}GX1BP=Gp80sGTrD3VBy7j1D zl1MypUW?(xD;MjlljYO8lBm6FZ4aa)f0?vK-2wB;p|>-p6hE2>(mlkWJt0_E4S8dITh4jqFj3h=OWjmShvbD4~c({ z7)y2=$C|lK;IQI`A=(ai1;ciF2Ydh*SioM-P+e5oKFnv<`nc)&0YQ^=RhFgWp@3#< zND>`f03Zio0Ia^xX1#TM94KjcD;fRmnHN)7nBR$W;%L(5Mi0s9X>fW2PK>2@N{|UQ z*Ziu~(qzyLZ_Zv76=$GtMo=Lp82W+w7=Fbh9wyQMj!K;p(SgQEMLnDxt?mt~7F9$R z#&1iExe5|Cxy9@o);LPPv3>9+u4)X=yruD$%)em*CWC%>`u#os;4^XO;G|t{%YT7& zHcv{$B@)AFjFo=1yPZ0Sk*J{r`6lGM!#*hmrmrmQMc^`vwb);K<4xxNR&`TyA4c_U#vb{gp;Ksq4gyv&^T|y7K$ghDmedcfkJnA zH0D-Eof1wf)q`X?!9l86a<^7##h85maml2Xv^IRY&tsq{%~U0Xp+8b$c=*y&URC2` zf;}p$!o_2ii&eQL;lTbCDj97*S=}RX%m|!ERWQ8~?a4}0)c5gLvAQcgYHaD}`|W2* zQQ8R9^lHqe(ZU4SMNB8{>Ozhge32f7SGQ@DGp+frs6=1JDpuhF#A5<5Ol?Fd=ViU) zsDQt}3S;Lc5e3U+v4{L#@HY`&xl@k`f(+M#out+MJ&H6FotY9A8^MqRjQ&T-**ii+fy92L!P{+ zQQyZYs>a;F^vi^{7<-ccuW&kIH-Hu{7{K*B=ds1Z44zgI#>@5JXX2xamms&lq0Eb? zB8S-5A@izq7QMWJ^1h3Z0dJjqNWcKtyqm0s6k7KwLoXjdo(L2o%uStJS#ZC>Sd487 zUBS-qdy8yIJXf>b{kk;wBT#c(s6zH<<<5MQ(Ax2&-lOq%!o#t--MePrtI24TZ~#dt zjFe%_LC?aY;`pDEvl#x}wSe#ZhzH7LOM%XxW6aJw;x1@(b}U?F7JYlafTY47VjVe= zAdYB1!7$;BE7s_@n&lND<%STqaPTyGS5kUG$;izlh2nNi{~zz)%N$>2sRhmXd&O># zK4_2w$Q{i*+aLP{8aUrFVe`0E;ZHc^&*=L|*54=gzh322x69A!zCd`tkaqP6UUe(k zMWi9xOipAKXlAk%)m3ZH0P$P=&#-#diHyqcGNnh75^9X;T&Qzh*E`=eDq&vl;FHCN zKfSzNr7dI>g1aa5wy`=(dE@x*{p^eUDVG(r_P}CVL@e5HU*bSsaD!nljc0U%j()Z& zJ@hFVPq2`Igj12Dl-QYBFsT2U2Gm#4+8CdI3=Y0G!u_cR=iNtk&t1#@hT7Wny=`n_;R75?pH^i;&UJiM$s*k+R_k^fjW&(;|x&X`8` z_18b`2e!A~sow3lKKmh)q(0p~;o!e#-%fP+xRd#I&9RX(&ho{tX7nd;TV@G+`JT5wE zOelI6Qh8S8XNze%Z@rG3*y}gE%qRVQ7;?A}Dq;D+KnPUm+oO!x>ePM$KJ3eXPZBSU zOkzu4%^E+f%K33WOtB?gfv@1x#7K?UFaD7o-o?zPj_t25u@5qj2_Xv3e3RrBs=JPR zZnVU&x0V@*3?u5((-9)3b==xTnKYc+P?Ch8fxYrPG^f$tvmQ*Xjyq+_TTT*k9J1cJ zdSrOa@WDmsJ(OLh0Z?O8wej~4k%CLXq-@w!Z=j@{^)%E>wPA3W8p0H%VGPrT8N-lB zq&i#;rKOJ4(S)Nk)r}EaC?v{QM+af51B0Vr8ag^KZ8*XVVWNZ7Mj1%`zYFmHb!5+f z!~*!ae%yvGhNm?FRXfb-@+3%<-p)ARcd(bM`;^&gpIR856=PqUIuVzN^zbto`DnwI zZz2H_ur?MJL|dDP!$r&~D0aWHm48ztPQbX8epgF_pmo0UR9HWw?N`DC(O`hMsx^J9 vb~<8srnEzMUgfpxUIf%_ZqHA~Q2H+&BLQ_eBl}ak6f0bZ4FWN>GGqH6jsU3* diff --git a/assets/readme/examples/cv-modern-professional-v2.pdf b/assets/readme/examples/cv-modern-professional-v2.pdf index 114f66c5f43babe3fde9c6d14a3b0d9c49ee4650..0677aaa2e98121056e6d82cbb16a9bcca8920a46 100644 GIT binary patch delta 3071 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 B)Mo$y delta 3027 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 delta 5557 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 diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/boxed_sections-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/boxed_sections-page-0.png index be81d177625679628b953f4fd314a69e3c7b83ca..4e5c970e14567cd1cf81a163eec4f7f61924926c 100644 GIT binary patch literal 100598 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


        dJ$}$l; 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 z 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 literal 100546 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

        8q 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 diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/centered_headline-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/centered_headline-page-0.png index dea90bd58e06fd761995663fca438217296036c4..26a99d35432f8a71b79973c449da5f6e7ae54b04 100644 GIT binary patch literal 110488 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%0D>(%Kt%!9H%@o>}nHu?rNIoX=M&)%l7`@)+ZcwZ6 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 literal 110540 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

        oBwS64X?biho;`4sLPH7y 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 diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/executive-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/executive-page-0.png index 98f3ad4d82aaeef9aefc983e79fb27fc81f95345..6b4fe69eb4e1d02c11afe680f987adb604072fbb 100644 GIT binary patch literal 118330 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

        JD6V~KKiW-BU`wtH@ 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

        jfa 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 literal 118283 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 KkgJoii1=TFCrifw diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/minimal_underlined-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/minimal_underlined-page-0.png index adfa1806fca809d5d06e1f5171aba3bdaf42e8b7..13e1dede62eada1d7c12c2aaf43078cd7c124768 100644 GIT binary patch literal 99027 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 literal 98937 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

        3mTR}u=rnqD(Gj&3QNO>q?z7r6 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�o2Rx0{_4;(7EzEAR-*+at+ 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 R8ovi#hUZQ7O0icW{sV}L;GX~h literal 149832 zcmce-RZv`AxGjpi1b27W;O?#o9^8XNf;GY2oyIjlAi*uTyAy)Dgy1yR=w12uemIY( z>QvpAeptO~)|~V6F~*A4(on=iBSnLOfx%Q(lGA~KfzyS7fmcR>1D=$VaNfee1i>iF zNx$jkFR3kGDTXVyKZFr{!)~2gi3j+fELhxoGlU>Kg^#M6XtT!sX+hY(=D&lA zwQC))p>aY23?Sv3cAVGG*^TG>DP|C?fRj#^N{4l%`1H+d-|^gcuTxqFy3F{2n7}%S znb0ryZK<#Iy{$(O=UlY+j<$A(_f}!JX;9#9&EOdh#1!{os=47Bh|E^0I*SdPW|0sbx||z6G6IqCbnEp!fXk zMHd~Tz;l!L>RD){dY12&J{A4!5xg5#Ezs{X*&{s>v9 z+4Iuer2Ll~<4>`j0l$@dO1f_U-d=5yl|H2t&1;GqBHr^$^=(}NJFoRG)Uf@(VYw)U5r zfTuk1&tU9LPNDioGQohZ_!C|;o^Z3Dwhf(S%xPiJh=c-*UC_Q#jn;v2y=?;~Ilt|< zcy{|4k?zKk)4w;&s2yH6LpcQjuIE?J5)Vzgurn?*5frBHOQj-4F)y??}bbY73pG%uJ2NNM>qy@I3mdya;x?5fRlyo zjjtdU)snKrjcRp#UfB3L-*q@6j+_ud71uM_6io4$&=}o1!6ex+Au{=;o=4l*$=lL21v=OH8m>ar0-B4A+)#KX?pAFDsdhmb!D zVB5_iJ!HB1-%I-+tqrmXkQX;?%NM}{yMaI6(AD;)g=Giy)3LC1ho>UU{hLKaXsaF`*%>cY#8Mj_j5ovH-m)r4-`MM~T@6x=+vT>N zn#r%9-AdLfmWIPNU0cH$pMPLy+eWA>OY>)h&ES=2*% zd=>mQ9_kV~4(hrg>dE_xZmJeM*`yx|#&+!G%58CSZV9&P!Z5nDh#t0)C@9zycA=I0 zEzgF}+1>$NzQZ*3uK8U*Zd~wc4u9FQMxsF^&qH^;sTC5;s|D98@cF@i2No@vx=|$(5XxXA@kh;)K{(TPJ{diI|2= zZ=NrpPS%;wpIF3J{fLX|>}Dzl4QwVCNhZ@xPoc*j*<&muyfF_$2#!&Yczkkmb&^%} zU6-=Ve!HI9zFSDV3>)wU*GykT3s4X#CKMEJ#~3k>yUtY)zWA$P{AW?8ZNGQdy-`YQ z;m~pT#YH&9F(YyBN+rI?GL2k`^R;B`JMGQ=kAe&{yi^)>V1y<%n3o1%m?XA zAXBwBh9Q7LLoKtgd)7Qqr%b!fy3ku4cLfBEcALdd7}{0Jh+8KFT~@?4-!m^hOuB-M z>{id<_2Am`%J>r-erNv+Z=dEZjqAK_uU`?nHA@!>0SZfQ9kOJmEjD&knym^MRRU|g zoBqE@g=QgjKEIx!YJyzTPP#i?A-3Qeo5L3YZjsw&|JZ;TgCZ4mvU{&A>|6=&(SY89 zwDs@fF?L<(nKjE*pJy?P$0sH{O14{;?W+Wxy}2kPKP7CBj5ZL>&G9)Et}^e29++?2 z`lnmO`;X=Yd z&QvM$`*Q{hB={0r;==QH1pYKAXgkE8t2?;l`Mg;%zsH zBLj3hwGCfK4B{)TIl|owbTOZvwV{Rwp5;=PbcYT9m`j3Y zG{CA}w>#O``&2gH4D{OL!gaPYH}_v174z(=a&yjotO7Fl(u*z^pMdB+?#z3Y)N@*{$}jC{`p*>7sxUtAOO#9<%7aI*8kZWJ{WBHh)reIX0ckF zPWIb%{Zs^Va7#~(e2>0HTQ=3#*Y|}ONv@w90{O0hs&I1Je%yRQ-}J1gff9P9f3|<< z$uN30a;cm0xNXIBniHapxV+qQ&`{stOpB^KdY8&go!$Aj9Uo(jm#mGLx6ny|RMMC9 z5NT}6xp!n_q|tp%Tnrr%Zn^U{O38eDDxkL=!DpzT8I`fT^nr_r8t4~=QoQT~9#4|4 zPdn=m*XX4F>!0z95dUSvBCRmOf0ZR%2FK{XNI{dgm;S$dffC)_-M!a;Kn%aG4m(hO zJ+j^V{9tb{(3XaQfq{dAgN=<%LgMw;&B@70j^KIsiDp=2M$D?N?s>P;nJ580J$-A= zh}*-AH5Ey8bo6ajoRdwcX7o{h2GEEA+qpET&@I4X2a%-v1)THq=}Pi!I6Bc@qw{L>ZKGy^#M#mRUMwa0 zCrWDxlj7Ri+MDCwcGd`8O5V38%btf*-woc|Nnm+!f6mpZw0y<>Z)n;co4NYti zZ|2D1bb(nH$hYX75k5rPKb}mG5na%O8*;kV<~diYe4A#uP;EHRyZQ6evCt>*`9h^` zDwF2H)=)f|dNzL%AvZ&L5(&P235P*#5FF7b6`D+r_E*$p`B=hUx7!8F`-^S$907uZ zP(9-&$9)n9Em40~#8$tXzg*oQ7jVPu+ZvicC@vx>SRL7S(+NrTf7B>JA<)`am00gH;%kFae=6cD^=ot z*A@CTrt3dHm0^hc-=@tc(Uk}3>;sVrx{yms)P@W8hdBQF z=DgB4D!$&~3u$%V-FqkZfbyRo#|(#zgDNX4werZlPnLLSY2l7B=G|g`4WU#-zUcH3k-qg2fp~ORVPZm+~1xeH*Ww_ z0URZtt=i-5X%RV=%lc15vz<_xPux@;BP{QGK4RE*VUh{-RHvb3KkX(;(!cfo_IWyA zJmpg?AqN(vn7!tA8wA1f7hII%Cp!uL;n7%D){oiGWhbRBvImi3%*rdqexRjd42;9 zX9pe4v)@8C5^Eo3$7!(|93P6u2u+|A_XBK@J9fuYXkg$tp26WE^7+Kz4!;{Sq9NJ` z3nE?c{CIaa5tAQ*Nk%E+g;EZlzrXhp0(`8$buix@PxzBAv+)1A6O7$N7LOGe7Jmsa z4-hdjFtz%hKQ|{%T!dw?8`k?=T7plVRvK9-$v{D=$i4TpuA5!YfNMaPeKr91iLM3w z15`6D@yO1?GWx^qa^eC1j>nW6qTSqJH~o`l2ePbNFs+D|&icN%apB`|0tFZhzPJW% z=E6qMWzD|i=4{>n>Hczt)h6`*@%m^tzfULEgQy&z7%LQVQmH=RnZ?D#6lnp=(sTW8 zG5_=VM!>Ic?|pJ_z4ph_UCJc{%a-m}uZCJ|0YfOR2f|wg|RyN6Qu#-evWCN#xFghPa=uyv;PM zG3!3d&lmNcT0}p9#I*=IukfQR4P8#`F`4dOAI%S5?&F)XZ&$_+49Inu3LmhNoNjcs z&&)3^8ED7{B_jQoxqTFHC@DEVN>IT9@I=yoLzWL?t%TVA$*&$r=}w)k_gFX?cH%+* z2s9i-(y_Nh1m5soIo;58y~_ppPdyA&pFAec=Tl?lk1Yk9;P`S9->Ton#l-<>W#uAI zasHOPyI_1Mpt773+U?Zk5J(d&v1OcKh<_o<#2&4w#PZaCw*^@I%t2wXQ+XUuBre{W zkJff$sMP-lSE2vu%n)?u zAiU_rgNhu>!qD;~@ZHyHrP_>HJ2$=tG#dIgBFNuvbE%NC%E=LR-`R}Pqbgix;~%J^ z9s(u9d#i|^F)#QgdwXlD>Vbt}xWY_#l#*tJcK5b}3D#zX=x9m0S~6TpDz_PN$ookd z83&w3hCexce@#7l?Zm8apfsKEiCOnD*xjg6bA6j}^f4c*fBv)78V0&V5)A&3LidM< z1?$HR9G8)g713bLda6vB+zLm89K`z|d%!tzp5EjB(#w9XO*AOSUHJLyCZl(Y*#E?> z4HmEko>y9y3o5)kpZYj4t%a#)-Y8n}RCx1u4y{SJ-%DmjY zuI{oeX>q^?)q%v9BXVd>eXLBR^XuA~0FTQ+M^L-+PHUXA;t)oGzxURJX#C@5U+=mf zH^J}7H+`<_qc{g8BCT@J(T&b-X`&5mnkd8#+5j|R>qQC!CRWZ!G##REn_lME_k)*v zs;0L?J7Cug8sP$%aOh{n(i<@0R+d8*t~t9A&52e}ssdN5Dxpv>CuAE<6^&oZV`bk^JBzBiV8v+0l1b@08us|_7t z)_G*U_FBk{7IBVI<$tJWJ}L@iTjN8_*n!vnR9a9&lZf^~yPsxTz`hlW&3nE#~u}LIEv7FP$`BtKX{_y?lKg$^8)D{xV*4qbC^*Pw3GFCc7l2}JK^R=t8#-IOR3&ID<9vK&GXmXZ7NdQj{9TB&gGYKAfNI$1>#js)30&&@ z*XW7iy*cQA8jT~lC8|P(peCDJ+X!Hj#kWO%af=&bk2&P>#$jH}2!&^YOmfm+Ht>8k zg~d}drOaX(^xnf=#A~LO=%%yd<8DoX`$3bxmKA>49gpco92RC4LPdAf<9w;y#!a|^ zy~gb|^+DNUI2i_eyJX=6#5X9EC!|pOHofnB@107>dDQ$+@0ryRL=Z8{^@C3khnv*p zTp08MhsH?xvwv>~RYKv%eG5ciMzm)y@Ec?Z#|CK@BSni)K2NZIQeI)$gdO4t>_nt~ z?atyqO^t5$P_dXh~yt*X^T+x`Gzm05x8% zfn%;}u9C)fcW$n~Pzi6qPl)|WL_lTTWpJffoP-Oe9D}gsVwE=rNV16e;8;-H{5sQB za|jXtp#Kh6(M?}&1<0j_%Xd>|*h%CJho6h2inVp&wrfcuSTEE8=b&O|n2%Pj^v!@) z10jb}Di#M5HScB4-;af5Zt~JhPAFS>krNkqwtR8OVflRr>VsR zvKiVjUoGGcHxmN^>FN{F3Shi`@K;!1XGXmaPO~agoH^|wA0O5XWT47)s%hr zr|=V$(T2}rz;>&aU#W`JEM>UY5PAAN=?*s;-g=06b4Y2U3o^+M?rTlKernYDi?x5Xcf9&&r6w}K)DTOazSYauX{~HpE?qmN01DOBc$H)I;1DhDQj3h7Tx&{To=dREW;UTw)HT)(26bv#*5E z%l!tP(fM1Gqq+y{-|0+tC!HSqQ+RJm{?T4&gC%@sCCicHHyij*$K5Xz;(=>ATYezF za9Cq!N1I_-SFB})hxz`Re=C}FrLuk!_TcCZoHQT#+AuB2+>t}`Y3Q7 zg~t|{!T(1R92S^MOqee6KKf|6%Pk3qA4g!SNR3?~hhlrtgz4;z=E%W>uX)s9<3&$Ebc+I#p;(rtXZ}367qz7Yz#ND}q zH#IO3cIw@pJYG3k-7UusDLOQSBJO{e4V#^0o>PAjaJkFitMl+bt$bwA`Z9S)aT6!( z(!JMO+EX*SMz?4n%Pp>7;8#h_A|@}^*6sjZBpIvZI}K9*zSC2SD#|&=z-8aeCwRV* z(`{_VE8}^Wnt7;UWCmp?i{RDAHtN2Whbr&+H{p}9I6Z%A(LE}C z4#*lWorLMi-Vc|sn^CqWk4)?Bair2&!3oO;rEHzWdJD;a+gFpFko2J-%C)i)Hpof~$lA?Cuk~jy3K~{f*ATpGw8d;x=`sX1KqC)5d>x^KP8`wJ!HurRKIe0b32zaRwhkO4VOe4I zLrQSdxue<~JiRvVL8vGRtd@FZQ(DF@qvsXX@Q%sYX&-3d&@o4T*jh>2TIP!(F%5@| z&d$d2=u$)jR+AAi&D~;FqkanRfq$EMM$W>)Nw?mVmaC3Jm*$%7Wu1rZ40ZWGT&H~3 z9Xu^@*dMoIL%N*_M`)N;lk2`-?+LM9W-`rOQn8=o(;$;e zTY}5L+cN%(#2r0D zakv9q#9jY4G$vmxh_fhBA+0nfAKC5kT#znvZ8aU}$Vy`Et#EkoUL-_X2{{$+Oa5A{ zB1(53zaSpm+AfI)?p?T9x_0}|>L`;>Vyqm;FQLqtP=)Y3E;~xjl_T}F)|N=brH>aw z4W_V=?Xe{SL1%PNo2emsE(s5KPMqV{_DdA1F;Kp*M2i4#w#>>t$I}VO0Tr-K0Une8 z)9q8`dQlD>?-OW^QkdX?OyBKO^<~aBQ>78esJYa(yilBP%N&LG%dkB7*B(&j#oGVuz2y!*-{ooFw`uxrXPIcC>GoU5;6M~F@6`b19j_O! z<+v}Ihu~Y);_niaSr^wlW|?q_19$!7dybZV&8=~_k={{7nf?~piNgrCdZ*{{y{iKa zmz36BKiJ^g?%93R`O2WH^*v$b+*J9woh$CX=ARpbS&(`LaqQBlP8brVNBySF-Nl6*U#)!UzHpCG8;MJH8iC`v%X5ldUMvrgguU?( zKWttz>vt&=*E_b+^DGMtp5=qwW}jX1@9p3P#cJa`?=z%)x5!xHC&FWpkHBvmQwq<8 z3pzh!X)faV%5!g?z?tG7_y_K32;cBf>2TOR$%}cA&tuxQp{1vf^ntDne#3PeBEj;< z>@jdu{db~#BuE=sJI2x*^Ll+Gr}RT-17$FIXykwyz^48j391Z-=e`TR_q{V>7h3tW zuN)^aOb!x#Tl-a;)>x%St)L@4?AMQ5|NHn5=ybFwS2`ayj*<>nJd1|8m>0{=H=WV;P_S6iYgUf!1 zLJITZ8`-Eqz{EiRQTgKVp<4X8(=ZBqcqD|#FbS&D&0#{?y=(cMB^askQc8tE*-1pWL0JWa(3S@)zgUd-*NSxkGn!>bn56@zTgD?J@R5)xLwXp?t&*tT`w zaUb;WH;KY%$ryGRP1TMwHe@4t8IWf2(U<<}i^@Q!jp7=Y22QZemdQsRfzke5#9@;o zxhw}DPTx0==S7gv{M&m&X!#^)Yb=kSJnxloNvk8KX-a`r;s7#X#bNl%a(8t=Cp-5#s;Yygb;7e-|LJ1lKYu5q;hHOUmc<#?F*wNeGiRxMd&`LOBG=2d6hRcij|Q z)n6kq-u`>wOUZ&BcyeAc+iqR-m70}jy$h^J(p(Um>bqXv10vedkzn^}RxDu`_tT}c z82bfSX@od@Q+J8vJ>+eIAGp^Q>cG$VF+-$@uig@d^CLx_xnz_AT4t z{p0|={@Iu+qQn5BoyXD04T85_YB5Z@OfHiPBhtCmmDWI3T!?oW3r%V66Nn39sKre# zr#hsGxfc~lL6Xi~laTgCCgvCV#uK2~iLpZtB!#fNWJIZ=Ufk_{fF)|nHQd`t{MVxe z3IL6+CT@-~|1O6+( z`hO%t{*P{UED3tH*49uB^LTeYJ%x4hr_TF)BP>it!q5!>#Mjn(7-#i=n1K20rT|jn znP&_a8Jn`S@nwc7QZdgc(T^$l`DBR${>RU4O|+=+G(KM5X4lQBBY+%$T&XnbX7fvP zYt6QM!*5!GvPVXJ?>YZ!zR|h+ZroyPV*{;8Cw6df5cNI?TrTlR!VxY;)z*e?Qu~wR z+lWxY${$Igx?k;$9{+|&hFy8Rp`uFs@*s;T;Iy=b%?hiLC-UiZ1#eY1bH}1lc|LGk znq1s3&E**TIaMoS!W)2u$I{sndF+4x_|W9|tM&*WAvoSibwA&dhm$Ad-bZC*YtZ77$G;CSOcq?P z`?&CYg6=zVf%X>nSL0mU-`-d0Me|BB#_&><4OVEE^z}o!p-=V(-Cv${_0o5T6JLS1 zUbI5*HvDVCtR#r&6cb7x?`5e70Mdzy-(Krd)>Mod zld7&rEQ*KcyUikUk?mhq`jXJS)X`L?^VOE~U;1Y0j2238h#u_l{8{jPb#B{z5F`L} z9xmne`q1IS;|{X2I}10`t2Ut7Zl!y(3UD|8O=Ux;2ABvSA^@gI)^*^pWM2tPoBTBk zDefry?MLRUPi@4<$@LrrEV`^NIQyZg6>!J^9f#o~&i9iZ{Sr#d(tWdNY>fs1_^5>T zituTq=Zk)90ye$I2|@FoAZ*E}BzSr#WLi>{T)|gqv{MzXOpq2Y_XMD5w0zu7(>4C8_de5YtX1oxiS*bcGn^H0-319&P9Oec-6{e=9Iv`ei0wh-HSq1Dq{l`kKz+?^@`^p?` zYis&3DOe#Xg2Txi#r5cDVqG1$0{T*#49*WRO7biA)K`it3kfI)U!HG%C%p-845#55 zP&Fk+Ibv)??*j_Wk5Xk+7O{Axah1y%DqMOwMh@aPg-L56ti|yBR5A*yEEpxz0?sRI z9lk)ZS3aEzx@v2=vxD3|URBVQqv(z?PB8g} zR5O!hM>nRXz!jt`#N`M$7fU;TZloxe7fuV$#`cR!A!T}8!X zG>G_G5r_NcowOcy5Um9{aZGf*1)G+BJ@rR69gRwK!^f<|7(C4N<_X2RSr7@8F3jr3 z5pi+xJj>Ypk%0&s2|wnQ5Th7M9Tdw9<)Zx=r|dqqv{%Vjs3t(B zRgS;D+(}w`M0-`>?9(K509@VOdEhIVNaJYnuxt0Tz}GOiD76jWLy9(fQ;KExQC_O( z8Hn~V8UgE46>&nQ*%$DXf=~;c8#6587ONT;0e%lHbI(?9=ur~`mhgjw0CN4$X18Rqg4WU`kjBT|&<3SSO4WJDfsFD^rwk2Is&a;kcA>_M zO1sdu5uJ6|J_x0e)T4wJAfwh|LuMDF(A$F;J<$b1JS@psBqMS_m56l2GNn)NGA#R< zF?1zfpFF?C4QR=;hGZ8x)z;fctdPnVkMYCa(6XFJ4Eh|EWxf%*)W*gr;~=2@u3tmx zry4&(daOW#qF9=S?2uZbw&e+9tmScag_fmxZGH3i*OEPg{I1GoQ9Zz4masTT(`#zd z(CumZ5;v@@aiG1W;OD7NL0O2!VX_T|qn7vEMqD8~NvMhRgq(TgfOK->;j$lt(k0+}rv`!LiPDsp2F6 zg#-c$WcIsBdda&rCC6)=pTagJ_56bRM{*{X23)t`Zu%%Cp11gOdJSsY%@cQHY&C^; z*KVa;4W`9i_BnA`#LXiJ)GCZt{Bj2*vaU@9{zpz;*m4sr6M_K8J6(&O7X!}|g1gMe zh#J1+8U)AV__flS8MbC5DGYvE%w)i+ZGuVHV#&RJcSvxtdUyoibS0iJyljoSD4Yz(o;@7;8ar>99oKXNXCP zE7^c&0(l+n5w1FA9Hir})nKchO?f$%idzriF*{vp65r+jrvagLq~{_8``0O!9uV;V zOoVbH->a?3SkFmM4p`kz5F>KPpgPFqP>@FLjPmrAa@&W938iJvNj;?pOHRhL0hIpY zcVmBB2{gKW5~k2E8nQ`EX;fChV-`8w5BWR_vGVKLYrw}mNRHT<&>k+awVSP!;mJi$01hVPmd~6E5p?5e^ZiM- zD3G(w-R3m|sB-ZV)~Jx~EK&CrZZ3Porchk_v|>t69V2`UeFBxjiV?Ka6jdeSO_Yb^ zh@{&l!9LmIA?t^O9M?XcD6A_+Qcl<=YVziYmV?Qh;nv)g8Sm1BC5ABe6?xi4JE>lK zvuslg(mKv&$~mLs+39F7^f|p2<;@BvY_zAU7Y)(7Zua{64Xh}B+u zq|jquR%r%H1W? z511zPO*N`>@MVhbHvKrrzJ{ABA@q45!B9H@TsQogFI$>DsUlwLD>oI1uPtHhm9Bt&G>s}Zq_>{esob^oZ99kUV9jel|J)X&;%2P+~+qO`tCf=);bqzo-@hX4Km`T z#cIgWo0)vP$xDkc6EB2X*}kp({4U>Pv>#^C)@$_(flry@=DzJ?w>)F`jF5XcvF zuG4B^gO#LeH&1S*VL)`QIBLST!EDzP}(>t%p)XqqT4=kK66?S+>KJz1hC zROP113vpCgOd&dhwJB_$ReVFrvRdEU)CWpar#~mapf;B<{GfEUrpi-z-?ALW^q=UqqLV%NB_K{ z%}HZ<&kf;;>JKqbiw+%9RSttjaasKY7C{`6GT&E@IitbheuHum?2kdbCjR;a;p)1l zWgTR>4PPViR{PQ zU}OlH!kusl&gm$@-05e@V(@#&1})*!MqyDS4|QBStH@v4KLC1Pzkbpff0YD#e{Kj( zU|lWYn$m8H56}VCs;5P+XmiOZ<&HgMVH?X{TJI#N{=wKU*L45swk=aP{)fp(T76ao zoI!LzC*46Zz2u!;=yQ<6XNQIC^(GBaPRrssPQtDu*X^2e`(4E8mFTCn5d%sW+EEC% zQ3fxbG>R)Qc@=wDTaRxMIE&EJ9o1rR;-pZ}^}yk{VDWZxJ*L50H2b+r)hRcqcm zp{ObME&nKj6QV7)COxK>474zj8MHj$ce3(>S~KH+YVVyr;{3)j1O^g`!=b?3WWgj~ z38x|>Tt+}ludU8bFRss@#6BZf70ek1h(xg-Lx2AviA7!oK1@Ohn_X@5Je-jty*}>& zUB>`1a1Vz=4v%cD$dHWQEaiuT8E0CI%)1<3h=cci{Jk&Sbdp^DcF84khTXN!J-ii7 zY9!p5ycrLzHBA?sGZKxj0^J~IPhb+20(h3wkFM&3cyPui|8mkM;j$+f-oSAsy?9Pz zfLzFpTAtP>YKE`>c59U61m$^>FW^1pV3CEF3>LTGlIV)*0{Xt&X%`GdvFeBrjI;e_ zmw0$71}e7koVxPM`Rj{jb)p?3?yM1#*+RH9%!*lw0%jamMAr3muCVNl&CemeeiU|` zFEFyU$>}iB+CdLUR|_A$>T(nEGw8vG^7>udyWo73H>M_6iM2j?KNOJhtx{rtz##Rl zx|Hg2x@f*(=zOQYx3DccZC^PI3YF&&&(Q^uRhZt)pT@K`jgp@BYc&P>t7^ECpn;Px zZt>iz8Qin4KJsw<2vY}~BS^7Q3d|gcB_TUc7B))c@6*my+5>^P%bsYz)V=Z?5F3e? z@9ohpB2ZAP4L`-LB8^S|? zHe3&ACsVI_u8DDqNAH6Oi_oHeC?-pjx|)8AONP}5Gl-Kkd@T~`R(p~4(QlX_|*t z*b(Wt4NoIPWA(SYpO~a`IRYyh7Axbnro{2FnZKVbBBa!J3p?==}KbzMM?cj+huO{1k{IdY1MEkT^d- z+(05FqSFGF8tf7!|6IB~KYUsn1Cq&aKp1-;?55nqy!s*BzRrDj2vGJCerjSK7#?0t zU(UbuYxg?ZF}bt4+!^e$BogT<&z8q*aiH_v2QAmz$am&Ep)fZR4+g=uyS~T~s-ewr z`c^D=_}|yB*PXk` zlrl4ysB>{iSex4Ey?|C<$k)boKoJVyD}TG6Dwt0j$^fY1cZGI8rUgO}j4QF0fcETf zK#&U{pkd^qpQ{0lvd-4+=_;2=tCnTRuy4;Ucv!x^wv0G!ma;q%-tgn($dP-LY zans)v!>^Z_qjF3FgISaV9#31YK8H0j{uTckCH^FXY%>Dt^t+Mi2MR>+)Th4-NA2fb zAD8RPs;8e$TQ)_!&z=Biu87&77#Lf|juA=}6Ne(DLIJofCoRny>Jyfr+J3ivT+^+<{=-uLWjrhf=6nQMo1JTpz+rg}`ZLk)nw6=Up;Gdx*2vB@U=u+1T!u3jv0(9zLh zM&hLrCFz_yi$b3)+PnAUXUnucVu3fFuE=07DDg2V`^BnP%^Z7$xaOk#ywdd1GTB0+ zx&dLu``%oloqq~>Oc~4~#vsR333pY5R`CW+8ReQ~gS+@3jj(9355$Z;rWVz)_lA;E zgJ2{XzAk0G-TM%imI2*eeJFuK6*9`mj-A#|-C|DD_-hrA=LY@|*!mXE?oO~)0Qe%o&e{=o-yy!))g{HXavgA*Nes@t>m*gqp_gwmSCl(Vf- zQASab!?g+zh~Zw~8mr+1;JXD%_kVcR7&g(Iptkl^F+tL65{)b~{Vv}F4y$#51g*JD zrO<)C85yYajD^JsbFL-1zl#+LAo)vIo*Neukvp=;;*nj2;x>8;OIkU1jgshi*z|wIJ*c?S*Jw&W!?Ha@x7!ZFxr?M4-F60| znKbk1bw%<^xoS9z&Sv;1va0LS5zru`zbY!2-R=MQ?4YFZwxkMO(YQN>x$!km+el;? zY>)$pRSfep@TJ1eS-1k*Oy&qa8LOyvbb~x9&-*Z|Zeq+HkQb{HGXl(XTP&|h0k(g# zoq$8ysfMY~c6h+!EsbEdnvy-xa56_cO3dFK+_VEZcf|3F0#p3~rDue@9D|U&XDbCN zHN&_Cis4eo4u^4bwN^o*Lb7I*`BYee$w5g4pecu7K%TW~34+G+wt%#;UT1|IZI!;4 zf`axQ3S5M`CpB7H3~M1xeI=T+^ye@-PZd>ysBZUNh3goc^p2z8E*w06)>Q2z20aWc zsaF;Pmxq5e$Xz%$>}T-M)kJILJ^c$%JxYF!1gG&F8|aYeT>qJc7e?PMQnF8uWBOxK zAB?V_oMQ*feA3-Ms8_aR&M|tayy8T%uBvc$=&^XxM%y_dEv`kdOH(({RvZ?d=Kiz8 z>=pqovo1BAIP5<+UU>CU2?<{>iaqRcR*u2p$uoRL9F}r-wUlS2W#gbAFU}7?<$ldL zFGReAG)Kh%^8<8b+-;BT;sb%F9a*`xdHQFBS#o3rVKmx-53y}`yg>s!2 zd2p#Ko6?VSTp5Xc8+j947wcpy4d$U!I`D7cfuoRKtl`N{Rzu{bVvSTzBg)jqT}c?D zl|^9d{Hj%ejXr^b3#*d_OjrDsmW&7`y98O3VM}p$Rb@b# zIo5U9*8^W4&F&*ySn}TtDf#hsVzoEhPLeL;Hrz)N5>q^|+6)=!Iz1|3ydSE&2SSF< zcQjV$T7-uRZd*V&s51#ecxMTih{fZ7Vo-`@VaZC;B$O%#*O_D#*`N#Nw2p%;FL}bx zY@@jgChlqeDjYDFOuPwD^GmQBBJ2ZwM#3hcRW{-AunRlpE$EQ6D}O8`X$zkl`@+mG zZWU{OVAaDWp23(Z!7iHMH}&PsZ9A-&)k+2Z1ak67KK|!NhfJuwck8mhTeI$lP_qxf zgAGQ|f&hQB!o$J&g>!p_W{Olud*wnNtrd`9q3%G(|7Ir`YTY5P%noU54AwL+7~`%7 z0C}U-DVevG+9oFC$&wF$=te`}=Z5RY^(Y!+TU{#3F6y*M;d;p~ax;(J*9WEmFr>L% zGnRu{_<@>hVi`wAdxFVzz9cD)B>jG|BmNAWd6-1AKJf6I0kwX#QXr0_yif^8fxZ1n zd?2e=PZ4crBGrfpRfPsjAY-NyNswE*E4mT_UkNdog~?_wylYNKRb9*aDA1d%`>qqv z0WVi+_nNw23#Bdc7Bt0wm~3V-fB`F{^ro6zVL+Bm;SXsTUdDWI+6ekV?=q%n{bWKC z+njE=BFlS0*UI3qqR9cYrSiA8J;41+sPV6;WoiC@ti5Galwa64N_P$2F?2JagmkC0 z(%p)*f-p#ThZ53_f`p`mG((pnAngc<2nYxa`ELHtyVi3)oeyW7FFK0_6ZgI6+Sm1~ zEv~%S6(oVnlR5_X6M303Tp`fr5Nf41;wY&jKU|*iP&C*?@OUF_!HG%qB&g1o#V;}K z{6!y}5-qC#l0zn-Bvj7x@}tWG`S~1si}ztkYLJGO*$G=40co{)!yi5$U0MU4^Ki;$ zDA_+=7tcb8j;p;S+Sm8@%e6pG=uhcmkJxLazIEAp8E-F_vkET$-yzGb{;gSt@^L>w zJGsj|Qo7A%ePcB+n-`M2nsmvT5`VDy`uVE=I7ug?m`1ub-kWz2o2}S${@{hxr#Vv} zPEhL+q^ab}jIbx!mnGR#XLxf#sVEV2!%2H*>1QyqAH*LC7$=o6ooE=^IqHTa1Q$-y z-xH5t{(JF_Ioh8rbY*$KNzOpLnD}N?fI7X-w80*jaculTg@$&>N}>uKE$F7Q-FKsS z9LdS&(_{fu6|0%%DiG}-KwDrZ$1CU%ZoBpU)ARQ$7id%c-I+<1;T6SvJPPGnuVv<7 zPT$I4&J6AA+weZPYxT;`Yb@`gR;*`<;nX8zH;s^4_v3tuDFM86!A6e8GuGpg7i0s) zRC~;2c$Spo!|<|{t?Bk1``#2bI{Y+BA-RjVHBE^IhO+?ds7O?q&9p3`Q#atNHT6`s zz<0?+=8}MEcUQFVE9?lWey-P)hF&tY{qgOAh=zHiBmOwI@3%p*wWILh6xoj^IhXOl zJVit~dR#@cO0$bQwhJn1ZT8m*c5-UgxFn1U*mM^7$9CAR^$3K94!OfKHNgAw{PYz+ zGETJSV?Yw_R3Q;$_=G~W3A1ypgW=~N>}wBcHe@mxo;bRy;Zpe8P#(`rv56TL1t3WP zMEM@OfX72fwY=2uzK7ydy1nD9Zbi`APisVcxATsUPn@r&oQL0Bp(0~vkV7dGZ;myT zPy3(ekpAea5|ok2+gBOk<(tQ%=D>>JWw~vWkHL7%Oz}qj57F20xN42S zR+dG|ZfoyFvGOxt6}Ek~>00O6eXz6V2_&jX^?B|gg zIS(BQSZN(UV~<8h-)_s_{!I)*c5f%Ye0?2Dmz+u{p8tsg{S0G8xehGz8>kRZ&U^^i z$9UnzijF}~j_x3pR7G02DDm)TQde)pg6 z8q?!NWmcyFH*@b^^TQD~wlce6{`5@Ai$t_(y_e*157@9CM8Q|0C}sNLWn5ybU$Qz} z<$Pkw@p>P(5mwGTG3J3n!?Aw;AOiT29Wd0Xd@gktI-c>ZrYU`i0i);Pt2uQYA8vb7 z_U0`yWo`1yXjDPazSL~xN4Wdx2$8cKpRRAIZ4(JO^_FtF2L4=cC{9$`ujOe)I?+Ox zB|}SSVy3AA9o?d5=OU)5;MAU+`W(4$464W9yf>?7Ahe|8M93Q>mTO-M)*dN%`p{@P zFY<@RViZGaSTNUi2j9|qPVGCq%0i74@}P|zDT0@8NX~4{X2)+n4`kv#7fC(ninTm0 zz7L(A8{kfLW5i2m;Pl>PW!YT7bx)k0F^8tg1@fMn^TpEAy;Ww`2z_N=H{0A6zdGi} z_=;9+Sc4D-1r6AAI5RPkUYL~M=^Y@uVv*38iQ#I1SDecQ3pzx zDzjRfuw=%OgL4cc?JZHzv(lg;ktE)Q)FrWGh!y2~;zz7lwDj*4EgXJ3-Sn&meS!ae z+P-*}-)B2r&dbZDq=qMMLqEg$TqpZFARAkiN?IeV7GJ?t)Q}|F0(++X=N6q|0SYfK zvj17*sIpv4f*qBnp)jR;;-c-6uN><()y~^T;`F)H+;ZML49^6=Xta5{y>1figvyb% zFbq0ivEG;U-i#c-?A+Z*#rbk&z{-e% zMNfTfMk|_l1UJewjYQv+)Vg8ND`n1$8HRT{bq|Oge=j+OCN($=#}6$fc4DwOpqCkD z=A}^&`|*^8O{YfxMla=sOsu%U~;0;or?B3{<_R!gJ({sNi*H#&4eYqA@Zk-c~=ZHLsqxmZzr;9NWBiCFT7XZfaeB z`Dcw*#Fgndj26$jMNsZZH_2`a4SlG%mjvBuZ;fh~!EttI&>PvHx(>xWQ;`b{=dvo! zpYiEG7VYJhng#Ma)b0@t-z-}-F8A))&>*~q66q3IYW2)2Y+VI>(Kd^5FblVSWg@4r zqhBSOrLPNZlA5h2uoJ5(?Hg~eF$c6Vh`SeUw)uecOOzTMf zjpYIvO5JYr9Vo+k1Gcj3T&4>4DXL5A9Y@GfJYgMPKg`g^1@+3p`x9hphaNhtr}0ivVVM9 zj3aepcu~;VK6r(EnU{@L{5C#_uAAu+HbQnFezLd{cTQAV{%Kx52vlF6FZZQGs+5Yo zfJSO~L7bEGC$Mv${?yN7TPA!dH}Dle7O2OM@}&KBv!|G7Ec*QcWe+U3KOjI8)AHo& z6EH^*dHzu-!2B@U@1?dWG68_6WG3k?ix(SoV?HN424mDjsdNV&6t#?A^m`8t&HMfk z44s_#>Hai(z}ut8@z$=JV>@Tm5C?|B(##tpu7*254sa zy)a%xgNr%AS7^mQRN4HC9JH`|t##$(<1W*hTG^yb3LY<(b^%CL#`;bup~R_`ozPI3 zWPUIcIx>nkRnJsu7?6e1c!M)5Wf;{LBkCv@*apY_2j=)RMWM$vz~X%;s6d_#(%6XP zRVGY|7XFSrWc>(!J_3E-@#XCYAsfR2`H)vY4xyGv+ncnoS=W6L??*mf87X@_vB?s0 zmG+;XU=%EnDO$0fFYeVmeGSNE{_{7SYtwB*&rugb2Vvr&r(l^=e<*Q~;BG+Srcegt^x zO5J>|hp@Ru;>d?Kt1G~l&C_nw2{0)D{-9yr(YDF-_X)n61A3=B_|ovHe`_v4^g>Q% z)FoLc^-k}F|I(z}-%t}(N^BngHVey-O)euV?F>!v0wR!Uz;ysju1kL_qRLegQtGm5 z)t_JPj=1{tG9{IaV;Vf6^F;1T=V0;XqKd}!%TF((}WVn<-HMZ0} zM^7B$VoOLma&FZ^*~^2-#U^_2LdDuC!%b*hv3NWtpWKBXbY;EIvxKZ1Wv`{NgLq;I zo54&^1atn@txbZC2t!k5wWv1WGvs<|uT?F=GmZA zi3w6~e%)7Fqonoabx!VxMAh4iMh;Uul+gwg;`Xa~VR}$FFI{jJ^uv$-I8o_??6xQK+YsqY(T`Rsic-M_x^23wNaBdew4+X)Ja^AHBS!=y zZ)m`38EYNw<$N_}qNMeD%d_vaYS}Bs9*Axyq^dNOZdbSV?*gr%zKxbru1bVr8s;D9 zcW=nYfUS&Y$2_k)xpW-=t_()0b|!YEa^N2AzU|6NLvK%IM=81ONQKyWYdNhrg>|aC zUt&*oA)`hOd@_pxhXbJ8!TbJMwL#8^*dEQCz1R^iMQalU5?9EsdV|;m^Xq#_A}nlv z1SJL{YTOiDI$jjUJW7mCWAGQ!LTcC9&mYu}KUEZev5$8l<+qa>j4{w=0Y<)iy?f+r z!+UwW5G)Yt1Z`A~baC#X4eW0mlrUrRu3lZQfO+Dd+}xtO;W>Bn^|KFT!U&@H#_B?P2ew1h9oub)|X6i;ZWc z@lNQT>SoT_Nca7>+3W<1A}f=*qg^`;4{gOJ#4cUMLfM(@j0nfzr&5KPVLm0E_arn8 z(rmX%KNfvbxkIApHrV+6pR?fm1Z8kN{m!mPm`s1qK#v4y2~uOO5=#fS*~7;d6hs=cQaY)Vq{yT>Q>G95 z0nAN34)@v13096w;Uzs&;#;_HCJ=Fd_ccCJ+ zk2-OK<>KT$mL;nwTPv))0t*(^AI4Jm3o@7!2po@4C%i$i;tO1Y%DIR0hX}P2Mb&5$ z>#}M)2uq*1pNey8pc1bb*$-f8?u@L4*6pN+R-*Xl@R`e0cb6NJ-Rq6uH0%1-^ zQtZc7`n_V$T7xfNOm*_=V8V(ZQw3YB0I7+1JNPzp<&*5(XgAgOfw=hi5>-cjx+%O= z#_I4I^f!Sc-|X7X0KM?Wzrjsz2zMu3iQbf-fsV2nq~RRm8b9#e(pjX^5ukht7(5N? zHoQR*mYN7@rO`~Sf}I|Cwn-vA8)ZskT4vs-4^)2I=(KXmGTD9Kos~7-^{fH@1S9|f zxv|Gw1#!1k?jjjeV6@{cEMP#iH>@5XAFsfn{Msr?Mv8xHn66YHnw5aY z|F|Yr562F%|4IJ<2rw1Hcnjd2&HymZMyNSYJG|}i2W!Y5SLg>q_kd4E4 z7+%Kh_bO*5nNPm}@BFhE{a3JlZ3|Nxo9`FwLe zOzQL^sOGwGE<9HJY8(?@>=rPkp((y?%tHxk*ooK0+m8HF!cSEl-H<7@=nvGUdS~}m z;G4q*7f|1?D~(kF1KBBk2-vu~8d-sMY97vK?yud`ZdA0lgMzJMwCcCS@+ECs7u zMGjN;zIrgN`@>=jn_6sfvJ7r!y>Qe%`Xb7@nBB&|oMmS3LV>JviJ7z_dk|tga2*@A zrx2@S`I&g}Q;JxyLN?{dYdbIOXBwSh#N1{k%F`?(G*XxM*d9Fi#38&oax4>4^_M20 zIy^MJjUZw={LHZ^;6sy@zLH5DPwm0A5~G$0D)=3C1J$R{40~K*gU8?lPQq`dT}b=D zzr#a8*d12#O!`spuvsSm5o90q@{poeJeI5ei>MDexU+YBOa%SgpwUq2AEr{!?HB(~ zNXq~Bc&q=1qvLadBWF?hsy0+oe=>uPn{57?(FMzJ24;$SHg3z&!XpegQW!_Ph={yb9qb7aHA*^(FcdY8kA@+j;r@VM3yEznz@6>c%U z@nl-j(a1`@&N>Jg9=8Abm#00~A=?uSeEa@t1`t5T2}OU~@S3}NmBb;oYt zpCh$w=l}c-C(5n@HZNYL|BgqBIRiDR!d)jx-TdpzbxMvbJqYVtdy~)Oa@EQHjoh}b zYT!gXAz2g7cC(pt5D2G_LT0(h5mfybO{_-@K7`OJVMERn>Pd0AY~i^$Zg2I%uIKaj zo3|(hoIFXLyO%qIenU%x>SUQL$z8ek+-oQ!{HU3_)67Jy%w&$g7SQuJCZNtnc)6rL z-mt`+*Cr9c3BL@(TNXNmu;i#L__oHnXm~AUnYSJa-Gm z>@R+rfcy7sdlNa^)wiWx8Do?7z7O79u@|%wka2VwxM^KADYjn`>1XkLwkvqAh0v$N zvqemby>dQNA^cQb^OSmg_=VYqFb-;z$nozuE^O>8aL@|M22vDG(eygWX|3AMvn8+5 zcK&hKX*9`Q)U9e5$?NY{5-$ig0V@H}su4Ks1OZQh#5#qX>jdvz@t*A!( z?t=Gv5Ys0Ffja?y)r`d0p}f&)=X>vS8+IeMx72h7V-FTee) zPTAyGB>EnKVo{JxBGW{HT0*(^GJ=xqr?jc z#uaW_r?v*wJsf{-+0_kBk9Bw$y}*4F>_bI!Xz4z>p5*fLUFY{htQ^uFmOMkm!%7F; z6|MB=>2;(e5tNs8@|yPHJBocfvBi{@I?{n5 z@H^GZmYGyyzSj9VmvE1x`?{D#4a(Pyi%jqJg(f-LhZ7k=xkdK1lw;$IB z2LH2612D#M9iCg!#qpj+ZLf6T_S$y;zV)sGxf5f_tK-kD6(g>;SUQsn2fofHBtMg+ z3%Ilp@!sYnA4q6qJ0kydo^bBMc${IvDkGM{$JS^`F|--5Q_*8cuc#Dwdj5xoVUj?` zb??(rS#UF&f_5#n8d);obCfP$j?V#6KfK#9LQ(S3`QY+oUH|M4P;~!1eIe=MBW*0m zW>~-fUU$=jxvPNHM3pNbhw*!@*7n}#p=uFX1Y(3;g#$I0*I(K<<=Mpatz>-0~ zi(?0g@4{IB|9LV0cjvx)?*EOpi~^2Y0I^th!`tOga)v>8V2j7fE~y|fwSXzm*I>R2 z*_pns`!|^{eFwei)?Au4I*tIN&d&hgr2?*`kE!jtkorz{_a;PWU0LTXUJRxyxIpmL9Y0-zze^13xfgo<+i_=68x0$WIe#g3;?YZ28l_Q zi*X0=W;wZE+uF_n?fTpN{9y2If$LCMLL%!2816nF_7SQkVb-sRIgcL_{Ruu@bb-Ob zQhr`|?S82SvVGs_Qgu?EL+~+ymhDWPk4S`*TAq#Vu(<+QQM+z$E?YgYuD=`7Y*cgLMfYL-a7 zG+lskG+R4*m$nW>eFE=X#{0CiwB^+@&5W5+bzgp2{O5La}2D+oE-23lAj!k5f=UPDxJ}^@15tKv6-~d}4eBS@ON5{q4`4!N5 znd%VL3j45 zSq?AoYil95vIP`B+17w-u@lT&UzD;*>->OO){8bB#3|BAP(MJd54Ela{sxejI1;!? z9liG!8UQk)WB{CC{lS@uI3$c3a9Tpx4X{;4?yY^k1veM?a^D11_krBTkc(g3QrEyB z((1Y9VMJ}ZMWOG$`v_ptU%vEY5&DBHLFe)8I}_&C58AEYAmFrM2jo@qsHo;TK5Uch z4Zb)j7NI0%yKK@{KpDJ7A{~=QHi0INk@bcDi3lLes_(*^A>lyjW6|#O^Uh(LSi`X6 zAg7}TUW2yGK`)L--g_KhtZTd|#{k;t`NG_%77j0UrKmx=u2CbydZu%#>@Qut!K9;0l;3L1_Vg5>0`(ZfE#ZMnbN7TD+-Pa;JOAz zy@`TkMyW>HEsze%{HW*!c^~U~zW*v@DEwWPfZ66TYQDxyxt3RLFrI3Ih`_AckW>1b z3xt7za2Nr*zvS6ty9pq^NN!Hf-f%~idr$yzqI)K8DY)jTsj7O%!LXXNusA|FMq+!h zk}>o}|Gd3A0J>n>s7tv$6Sv1(fZBVOMGE!&JN>u)b(hi0OoN z(N0fi7W}n@tVft(D>z=s3}JDo>TvXk#8&wK(05W30TH*Vt|de{2h+vMQ?h4_nd>+> zm+&^cR2C1GE36Ux=XUSfu%_(RHbU=AR#1wGVR*Lf2F{*bH_7AI+HDa)wl;jg#z+FP zx`caglw>TSkzQA-BpM(w&tub?68ksMyfdmB2K*hQ@m>)r;yAxulqMDCkFQ9&6(;B- zAmD=%K*RCkSy>fTu&F4>DSu)rswj+*V~t1+n{ZUIh9eV^jH*7#*&Soz6*R8==?5D22ZPvz?rN&v==OZa^253`geN43hkR8pAyqjw0flK zvA9FUdLm>q0cu@XB`=F)w>5+ZD181P5WIv2b4zy$5Xt=chK4qufW|W>%cLI&D&+F_&ZFaRpM4`MqLgm>yF(Ssha=b5!kXJby zbbak)>_#{rZ=SOQqo&DM0m zXDj|->quB8VBmVIB{IJ*+|^`fsp)3l!;CJG94dUp;aA!sCFP^X&#y z(H!+U;2cSm_^q(rfVVf3`6#C~jS>Zo5emGohSh_IvW3WlI)Gj3hp&L~uQ~)2_6J5E zETu4nDh{TE?PtUSVu2h7&sNRmCnOQ@|52zFEU)lu!d*s1Q*)O>YoRvT>JiJAK zs^2q?^{!;zE21Vv$7d~52*U^*J_^HSMsuxgrJV-SYD}?p{s4tkMR)a|SkO$$Dl{Z8 z6k@AOaV^~GwTcXZ-EWiQJ+6*D9zh_hFCH9;X&J2En=0&sP?^Ajolw&jF%ZRPyMerg zDVbv;_6b^)ElF2nZZW{8AhMWl>nDKY!DpcswsuG0!gS~{%zLDYXsTFGB4db_nSVi8 z>B*H7X%6RLvT4JtTBN8Qs-9A(M_c)ty%h0mEPq)XkbDMQGi*8zLuya;H^N< zkkNrX+%-tBr?f+~ANuAsph1d2w1DvWJ5F^BnnZRgA)D^yPwEr%7I+#(Y~dQ$ScGm) zfVx~C0D;QT);>4>Fh){f?gbPSko3-_d|!%z1XBqHT3!wHKbj*M(?x zmFH!9$mb2Rd9+*lw^96wEj2{jRfBP+lb57wX*?8$nGjOt;>WnehNxDhF<$$2aJPqhJn0(=g5_Fs0u8_HAaT z@K>O<9DB`AGd45}@LI4OFI*B=LvDkg(WGjah5?C?t+nC=Fo5y+Y5_-03@J-DNag^| zw@Hnu0m~3E{XIN){p5#u(qkwf)b_fImj^s(Lf_vdF?HJ!;L|{q4G25t7Ql~2&a3^Z zTxUwwse^|$vv`egezUZ9<`b!O2z;$FZ~&H%G_fd_SLekc2f&;7`ltzHsQ~7=gq%np z{Fm85@)U!jzS5R?9KI1n6ZvQzow%2gH7Pe|4eV!qT_9S+zLz(&u2gS@{p^{XTH(kn z?hzO~oJ!EOx571>3KWVQ!1rA7KG}YbO95nBluXA0Is5r89^jqG30MvpGbw4Qq^^#v zpweuwmJ3}gby{MCtr5w*5|0NnKthu~KBF3CVZbInC)QN9R+bQx6dli_cV9q13YaYTI5p#Rcc}(IkJOvI(%Szoo zzy3v`l#YqQU4IECj}#_pE=q&+)qr9K2v@mM6alP1J@asT-SEnNOM_z9NTItdvkMWU zHb{nn?2lESe5y8j*BnZDGS!iFM3W$L`hM+$BIyEdVzhknxVJ!YZ#gGliSs1SdnAat z|L8PE?L`<-l~M$5T<^6Ds?^VaaEIzQ+W!A&RIzlrSv4&~4|ero&8H93+xGnO44wFt<{jYTy0N zo;rm)2;TopNa|E3oy+lzI?G_qTu8JVCwtcBfX*ohZrM>oc2B6QxxF0J=h~2Voq044fcTz=$Z~C-)KqVY1-jL*&)k z-8UWe6&xEtkOyja!!YxY5a`)R;HFBah^QvdE=Iy^S`F6`Ie3gw;_`ho+rOc-*tM-jgQd zh@V;H%&`8XwH6A+et9=`2wp^=T%c#fE?I;9{}SIMNB>aGdkCad+}DY+jD1iN&P*j> zO2&)P{{GSXip~mxaCV6Uutk;DbKrKNdC!RAj3ogj%}+l4Z@>{XSu}YP-@V8Ox-+?- zlg%09To7hu2OPU@-I5;-aAjlNQZMDk7>;9#Yr`RYWjUa`$~(A>8XCDmEg+M z1%m)FX#p+0r(v+#!45ZPxio0XpKT!CSo<(Iu^$zeE8tzM7v4iA$#KoZ?iV zyd3NWMfVWaP8fE48O`jI&V2FI70Sjki}R)kGnOWRNCos;DUZp7iPQ;OrO5|V%@YUN zQ)I#odM<4Ddjr}OO(P~<&ln-jv7$Tp8`!eLoQam>+Z_$AOj;y!Z6;66;xSNqdgpQJ z6n1z&Hkk8Otni~HdkDzVicbA_Wre9;&7u?ZZzJ3^3S?gDv*|?aD`~r7Y)4SPUQK+3 zL9~qhJ+6?J_hOvU?%b77y!&XBzX;;qw7dv4?KRDO@cKmqrKxZ9dKP*_9D*W^R5LaB zBu!WglTF7?U^mKB1B1xGHcevzTcGio)c^-n>A{ef$l%r!4k*htu2~MRK(gmnJv(0Z zt&?nqF6p02h(L3GOfWJ+zTO+itq?sRZeutVeG>GXS@@gs^Tc+}YMHB3+eN$^{}knX5(ir zuT@(jhE27=2-je*D$Ch-=$3$kP?tj?!1g$ujGMhq^jNx@LbZeg$7-EYS#E>}6Al`= zOh@fxwu|VN-$e8a?;i07K=%@t?Q>hEm2syJ%k0#VhFI&~MwrY{O!eRE;zOz?uv{KH zWDOtg-GL~cezUXB3F4<=yrj$h1MAJxkHYT7$E&ujW-H4PQT&MNQW9pQDS`5%ZDdZP zXpd%6pZQZM%f0J+g67b$yrx3|$3$Hvktc~H^oTjA%lP3?xP?*r40iTdU+buJBch`7 zh9hTSW5&2yZ4FUbHH`1ELKpQ)Pf|&L-KW7Ve&j5tkGnYUuwLNtIicyv4cFFAaSZdO z^^huV=C>p?a}gYUyMczd1;r1d3bN0X3TknjsbM`XB{*D^GO1Y=W)-C7$a_dJn5}?H z*rEK7uezyIervHyP0AXECGrb?OmoD8Y8P?i+8X-Qa17P$wC|JHFkKb7F-?99R8y8V z@|``OqTC|Ip~a=6s?gO^y&dLbRl4uN$RF~>Qge!=4JJfnq-fj)LC@^^xy@Btq|hQB zp}9xgUR6%5Yb) zlWAybLcE{~t~8&*YH2tW0%Y-G(s>=2W|idztUBh|UigW&tpBQeK|d2R{vkOSnPI2I zEfxWf%Yq~O7wqnn%_o{j8${!>z*9vCee1-$)ZT|Iu-}^)S5H)cT<}U0#?KKvaEq&y ziu+Y;wI}D^D>N<92TAzxmkySEnwRpjHkS1{mD)&Z%6iYLQIV3WU>ihbA>dlXYim5`lh#j(C^%LxUb?s56k#^KqXj9Kn1WnL zvk_K5HkwEznygQW(z(X%eJGvQvh?oea zju+(KhB8_#dj>q?5(@FlyM9wmoakJHTiO4>KA{i=XN~XD9H7KQ8FSA|Tg^ z^ehsoG9@!wtzA3xNFv*ibSR6t2#B(Km@!X8$L>SOn2Wg!w!QAOOpMc6J?8=V1OS}a zd5?19*>D1{wGg;ueUJVrGKwHe8E(2X!s|2QG9E^If<9OIp%3@DlkgE|`l=V($*Vuj z-z4X?<0QZ7Ox4@<>r2((e2S;s++sazGpJeyuu&Z0-^x3v)6p4GN#kgbXnp?sF@eKx z>F2vDoK=d@Beq4xb7r2vF{?;c<4JUrYk{d>Y=yEGM`?P!F>E%VVFs;SvRvhL`x-UFd$5|1^ZVN;Rb#U?~podUna2RUe)?SHqiGOgN!l8qMziAk!NClJNoB1O$eurvd0ki z;YW5vr{8Swbx2Y5AKSEIEN{FwWwuDrLytxBG##@e5uxZ66i+eW7JBaDa3=SGZ!#%s$yRjDbhC_(hD;3Coc&YQ)1eNPak3en~0V zgor+9!jDF1Th!Zzk@7{uHOzsivJIk+J|zG_9pckwefHH3M8wz@5uT74Ro`c>C({Mp zZ zMSpb~o$#g-$?gjzsxB(>J{>Di$G~TzKEFRSRwDTQ*^;y6v8;kJtPgU&-^0D?Ifsr` zeY#!7a~Mq`AW7VbqsC-!ed6NT=4$C$TJXe{w~88}3Gc_AI17FT$rYw<_E=dekhK43 zug3!MaNwF(vBZeMYwvjneD$i6Wltuk-zt&L(0vaO_Q6@2PgYs5`GS)%fKEhtR)3Jh z7co+{QiCUn73pIP>fqZi$%VINj1e|34&6dsaB?L{MGQiQ>FmfHdg6s-bQV zY8KVxr@v2~;U?;+>RkUN(gSFS8&>J5U^Bz3)mpEw`;h}ANuRbSKK7EPt zJ%>cnw#H*u9O_J|;~}eFpZg$(>Gm)42P&P|<=t|nds-Iz~LVe-tPTWTVyAZuTR6<0zq}{sVLf?j;ukdNGYU zGH#{qg>UR>{cNVgsbBd;5)04a>GvWdt$RaMVtFgr${*sgLn2SrsN+!jwplyR)+xqP~VRqy-fxhEjbjmDO4AyiJQ< zt&U@Ka9T$8DzpSd)U%cBhqc> zO#5klyH{MIGFke%>^4OqY4t~%66^o)n{_^At$x-u-CZcnl`gam0JAlgl&OUL)x-n4 zK6ldUJZ|@{163534|j0?aWZszvfzg^1u=*djiucoDGP;%-6&?eG0vVZN=E?P>eqon z&^ATy^u(*&;MQqS2pz@_{AnOzsKO4c(P#hfAQ8q9HUTAoj+RxWlHhmnOfZ#y$4*P9 zB+wI{mhs9rDgh1*cnyvKEGSyYxidfHb8+H!xivnUrm|1mk2>DgI~8}F-nM_t$~*Jy zHY25MAU4wxnGE&5V`S($F9HBP!{Ec3ktt~w=i-wMd=7bI1gzh{C0Yu=YtzjXqAI{Fw&HLD+>93_vjPrH9;72>SqH{ZV_Sii z&l;#iFHZklPD&r_^oIf{#t$6c_Ucyt*P=_|!>e5xH6oGIE>ymP7B66-M4fCkwSX6+ zOR%oq1DqlDCSe`mDTgb`AyHuO%@|=KJ^3qbt!u9~5fZfuxW1F4nt11_0;V8tisn(G zbD%NQU7IvtEf<)r{TgxquyuMA-5m6%fs4DoV%L`lp!5T11x1?1X4)hmi&ggfMRj+7 ztO20b+kIq=M%cQBw8{IsRLJR`8S>Xg3`=tG?}t&A&5^GFkiXFG%k5O5SLor9CD*yq z71T;zM@CisdZ4ce4`=WbrBr1~A*H@J+4})ka1VM?uH9!!uv^zHpOyg>(6C!QPjrv+ zAMk%9kG?mqo&~47?Utdfgi2k67j(4wFEzQH&^@{ZueejdqTWX_b~W%aaS7lo8u?(P zZ_QwZ^^c&T@SI2y_io7pf54IK(`2n;-@r#icK%7kOxR&#G@8Y%a9`^V&YKySnNnwd8MzNR z*)j5dzqs~dGBxF|)>YM;0#kc*J`*jze@2EX=$G@%9%A5ZY@iBtu7M!#qJF=7evbNc zl9yw6qmx{%@@p7M<1oXM@gB}dl)C7Grzx@egHPEZn^MGC>lE0scx~cy>_c_XCm_@8 z@qU_S8m{!#i!n}qZyA2kI@l%0Q}Xr^`6O(a$QFB!LPozBy?&xQON-Xd)~8tYb- zTC5q+mJsyt6)kH9w7HSU`VbB*J-H84J!eW(#owk~(iW0v5Cd0x;%^+}&ihluzj^?@ zU6j}a4q*Ml)S8fX$=(F?k-jhBX*VJaw|j6oBBR|)?|E!}!CtTq$*f_C|fu?QMkD4M2G~rYB$HAMo~< zU+#AZAK7;g^ch>%n8I?ms3S=;COCU)K)$k19=A@mf_yC|2)iQFztusm>r3U*<<7d3 z7qb1u#37od##NH@qiP|mg0#72N$%fKWUV0N1=Azcx~}VV$x%3}GzFgK>qBRYv}c{1 zi~OY-h)^#@V}3~129Dk=;>#9U3ZEi^1MO~=4e$nwJOgO28R%{dvVnI)HCYNA`naK% z4MM0zM1K4oW~n>|gi9S*Yn^nh!wjWG1t826_L)}k-C)+Xbz9iaC*M9W;eudh7X$*w zq1wEeZ=AAex)7l5u|eYyY=FzEyqsh>GC-Nw1V_=8EPwz6679<=DGTcGcl(HnaDOF75VvIz`*z7hP<0X+)Yp_nRbJ8b%qwPi#`Xd#)r zAh=;D(o#o1N7RYjce&>nfPT++ro&#zfe;N^C$8{cMa~{q7r*POi-CRS%MdL~;11iK z=-%#1heTH(aON0DT$C;sGqR2^pARv3ia09EO(%Tl<999&xxE1j5_P1=PatW(!+X~; zby{TDOQ^csuiG<{wg&wkUG6%zTvB3Pc z?}9#@KR@k=8nNTQ+y0qlOX)lg?A@G&sauBU9*WW3~HIRMQ;bo7sz> z#J1+tTArsW4s|D>jYbwXWdA^f<@lTh10w<+oim9e6EYpk5I~@)D0Bc>9VODj!U<*+ zbap|8H`r-IH8!HkTNTAB#9=wAM5yT(iM*S!SYxG?qzib7X@ZqSL^~Y*Za<82-^hn4 z{zVsvhFd-Z6dLl%BNN@rUZ00b;2|mMP^X!fzspeVr5E9Mw&zN|UKumWIwGq$&KiiA zuhWld$((f&F8HGMZ=c5=sx<&4iXw@;B=1m5kEfS;NLM2B`Zw4+XOtMn)o)>TMTF7# zlvo>37imhCP(Aw0^i$B4>kmXCYD3Ip1&|J*v1?%VtU_0g{uhZkdK&ox1~+oz;lFT#gpj;sdcp2X@1T}Q_O-&ja zE_7YNN~}4+#9m_Qd->(*ADSexd5jPBBo--?P;u76pK;(2st2DEpYP9<;=+=Kbe|E_ z^>TC)+&KJxRM2h55<0TbC(tB#nyUNP z+yZW>4KjVxkm?ENA0t^EVjTsIFIq$>GLucdOze+b-Vase1h1xXomH;You&zq>YG}R zl;onYzT7T2q*QYRJ6l$XnMYKK5zcztR;H$Sye;wx-DUF`byS<6bI;$K)k%YwN%|h<->!0?;xtKA3Q#WZ<&t_xIg5O z3-VE`6z~k88+|C3851IY!vQU{F@39QYh%n-q$>{_4baOoiMILt98$8k?V~b)t~6QY zoS0QYJxxia>T(!f{TLDBYMyLm%=8BXW&GC8MW8Z>2(`m3j-B7smN9C8FW>-%r4;ud z9Ef*c3DA$tMT+~T4)(s;@U-{np<-h}*afNRN2E@PCYd#^&=$A4vhGe;I#f4AJi+cW zFMhAZ@T@d?TLj%g(?SQmb{#`~@`dXoTz6^-IPzF97a-~tXk*&TaZYxurUcQ63q2vS zpB>M)=E*G15iwZKiEsi8JP7hroWf%wIuTD7GQmVHrXCaaeN7!hWp1YS=lb-n@GQeFn#AQ&*%!_hiG|su+kiR#lM7H0#-;6s7A)GqO&lPAUXt_E^eogmJ1i zWb&zcaaNNZS1XKgpb*ixe?4GO#Fsin-rL^;dJqxo3ff3DJA)TNlek)LChUajhZ^hF zfe2ie^-gap8sbP>%6gIkj4<*vJ-o;gyNY_WSuG81VQa!~_0R+6OSh?;9iBO&S9Fx+`>{p{lHa}uTX9xqkJxt?lGzrOP`W4mVd+hqh6Y4>W?mSd zSRd_R4rONWP~o~ZzR-mn6*F5NtqCZkdtD#4WILC?S0izp$97Kh-4xNY72^beld#T0 zym(jOOB@-$wD|G1GAh!*oJvh6SUF&W%wYHMy z?*gf?r4!g}^+m8y&g*wAb;@6gw*{0a+e~JrINC|C*3Uv}Sntsz$*y}G^DMcN z-`O@tvPHueM3b2C#tY>`GKo-MN>Wp7!`bFwlK5pg5m2OqYoB06oqn;BIq??JmLYx( zU3UT7;_BbF@1vqbCcnfhme-hgea8H~7E(zuFdZj;v8C}(N>UJH)O|XO2(|FiPO-*Y z2MRhBqCdDHtSpVhXFMq(3Il3-O&o-zy`=SYke}3iimRdua>YSNXyP4_ruDt|5dya^ zl*LpT4TutckYx?~?42G)058sI7wDkZ9_-TePB zc9v09g>AQ{yBnmtTS1UbH_{E#Ee+D$9RdPMcL-7nD4konRHS2rfYQ0i^YDIWjPvIm z-#EYcLu_E}wVr$4*PQdS)6%!lhmaSfEm?u*JJWHZNzbz=s%S?xpS^m6|DB)JkeOLA z^~ElZCw8a}ahQ}*&RLqqw`qlgc2?V#ld&Yt=R_>9Syvo2f*Lj>d4!Owb#zQU*xPn% z6D!H+pca`wpTss0ZV1x&6fuL@cL~>#7*9Y%OUbEWj{vWP60T zTqE2ubd?mcX~ZI}QR#G(gV`JMTZ2^u3+!n|U^)HR^6F17!ra@8c|{M3W-As3TYqv( zfp9F>Vcg-OA`6_tF3T_ra;He-#Pkgu*2qFEMJaDQ{uC*`1EE>V^mi-mgIHJe$wtM@ z(+KAn)>AGDxOA`z3%<b}q6&aI3^f2Bpk?^%|^+mj~vq(MrZAta!5j~VgO|slXE;98c$*^=OqWhZxWT8er>X65!&cIhVhnOxfEd|>T}=w*Myz` zUoai4oO4xC!(A@w2QZcaiyGY!U2E<1GN~C}T zS=9?omrqpkc!aypvUD(W5L*^~P{#1k7akDJ1Q^BePqeyW=7*&W`$_piXDCZ09akSQ z6P9LBJ4!lC%adKn+3E-q(!ii$79n%X)>gAiPoXzHkUz%Ciz-q=LZtK_*?@6aOhQg- z#vz&mK_&NRyX&dsYx$@=hb(p#VrRRC3Z^w7&t-*QJIE*T@7DWs+xi&C@;`G4?%J+= zc=|dfPpO&FKHsTbqP8(vHU`IXjg=JoC5nKuC$Q&}E!h<7#FW)PwgBd{AI;iB>_d#- z<)YF9{T2C8V4Ne4ux||O!Nl_6K^Fzu7lb28`v}%)sy!Sb&owJB|Cahb#F=lo4aE^W zi*&;|U`L95+clnU9VKP8`;QG8D}7l%j5#b%Gt`Cbd~u=ZLolJJ-}M^-e*0_cfZ9s) zgcXs9(b`ljh{WXK)&PV4*Xt5LoNmO=7+?O2uzIP6+0K&Ky+H^@IO>8{ZkM);dwQ*6NwL*x^cdcZ`T4--mUOd`prliAW1;}oeh{D ztlYNh%sSu4WQsjg2(tym9c{o)F*wc*ezH}Xr5T)Di9<*Q2+ZHb&)h`THk$YP$ZnnI z@49M7@c>0`4B+0qU!NX8835=TxC4#%$3(lDfJX$Ztf1peSphG633vAvehTmsOMuMg znpbGkaf56pnb~CkIz3_(kf3>OfBA#W_A+z&v%}R;fJz@XJGOZ5&VV`|4uJs1@NZuY zzI$(EyJZoa1H{Hl6BJ5-lu_rE4kHdEhb>?Qw!bcTlbI`b4}QH7L!`ohJr27XKp$3V zM55sW1f85OUCMnE06K|QzBF?=MxLLy|QV|MV8~rEOrd`ulOjC$=0z31ER|3 z^4yIl3r#9gR1@sM;&&*vjbCn=(SW2i2jI*dQZggiA_mo9x%{Q7GiqHWFF=kKwGZ@# z=%uS79EN5Mc6J??NU}3;YfDxqtUoz9p0#475=6G?-00Dcnqp+&JAdsRKOn5to<#?e z3%brK?cS#qf}99jE*&*trnHR%QVJp-^fDBZWK3Y z?BAZ`D-(e87!VQPJfnWm%xswi%|;Y3nze!Y&ZK7vAiC9P)0PkCv3YtWX|Smq zbeJ6v#E2U3q++6vIH&o%&I9me-}v{)+%vWeD7shDWcp1@Pfl2e07q5KVIZ7|=%je? zy>||dSDSorMcJo0ZQ}A&K-rT=is^CbgAtqJsj7thZJGK(lTAbT0po}QO!j_C%+`q? z2@V0pF=4n**@2_N)3AtN1s?v~?_VRZ1m)lpegsejkTC>8PPAejkd*`50%qFoO3VO8Q-Hx*rph)G#?NLAA+H_N5fC3_M)Pr2E zn!PRA%W^mO3ShJ17S%g7x+qXvOX*9I1|MRYMtnw_g2X7fzTqVpnIS> z-GOjdpxw_3s+9Kj!~*BSz=*lwzUvbY>;^#bnf#bnmYOmU*Ews|7$Mt{OmN%d%wRh@ z0>7uFN(&+45J{<&gdt;a-(<3~kbcq8$oCS7*8vqkYQmR`13Wds$1kMRDnObI5-D#8Q0k%EF2UU(=`)?qgEMhi7sp3mAVc0UEqRF-5wL z3^&3XAjhR6vr(h2DdwI=1p)r>GeWK3@kRrAt}c7nnq|;2LlxqS9v7AOyM`nt`vYx> z>n#!DGF(d7Px}?9X1bb2p4RBrzh}M0IV#Oya#H0(I!(v#a}1OBHmlaDeEC6PEky{i zO=02#;fVm>nOr?5g#}zm8qbR3x@cKwhKUZI<9i!c>q@Si;|z_JwD$s_UL(ax{JsP6 z9UGM_Q;WBN4U`}!32B72hitzK$qVlr4K9GllEor5jM-)6C<&p8bd1?TI>d_OD(*@q zL|Q{on0E6QwFK(9H|{o)0HFh@WJ+G2%sVr@dMjL{ljY<`<(0KasBxH|zHmm3UN}ca znIEgPQwgEH3>y2r3wW(;XQwIY;O_nHQAWjwH6oQI`nMnZ^F8TBHN!nxtJ8iTc6N{MkW1YW4X?*(gH6^tqkqn=gBI#6} z4>Qv6XQc$vh-TxBs<+bI0M|@SATSk0gyR{;BEK%cxFaO;ez%t_GN_NoRo7>Vg3vzc zi3qPJSF7ssmrjb0P=-P)!S`r10@Nr3Nk~1>_9S&9OT5& zf3wVl=oh7O;xmLs6REDuOp<`AvUGY}oK`rJhjiBfPiqjk53KXwoGz=Iuxr%`!$$o+ z>nPhY4cnU<3PZ)hrV$E_TV3mr-ba9ySH*I^%0=EJkq=Wwx=C~JcU$~yHp2Eg;n(e% zIo>(P+RZHW+=dMnz|gf{$x!G-yXm7>=BYZUI8T#y=vwA1*HvaS37;aCK`ACoNH&w7 zKvhi$3K@%SyMe~`6*YoPt6{9LAd*@A1x7k}i==)4v~tXEE@lUrNQ#85Izy;R;0wOq zw5$CbQ%3l9)nfW-;*+luasa62NtbfgJiiCAMt8GrrbR>}rNawo${ooPGKT#E}C|8GFe z7!I{LG^(2rgbk3L3UtQ=`EA*q_mq{r_6E+ulhtQPmBFxns*2d4Y(Dd6!X>RTkn)G2 zjn^WWgc%2adSDc|SYG~M zT&wAkfyN#`g`IjyDf0HW`N^B0aH&Z^N=hgr{E+DDeENm}|8gTj1&5;J6UNlKp7PZl z5XA-q9(H#2nR6-WP}L9h3jChZNtAr!`lO|r(hc>|@B?D%dLR(MXvO9{53Gbe#g%Cy&60=3$V=*ZXypx7<6 z^dj%C{sIm&Hmwoe*UpIY?)qlWf#cPUrJX%v&fyoWOvK zP7NJ&`Lnz`$wmPW(ZRMJ9%o-5T|N>rowEECth3AjgM4(_up87F>rEC~L5F$H-U-Z* zd7}1nIKGsdaP0!CowH#WI&8CE&~}7CmJL9ae~4zKR~zOq7_?RJDLDivCHHa32V&Bq z74BN!l(hJY6Jp*Xj5yrUA(UD#jV?{2@Jk^^g?BM{Uc_LZj#5S?)cVOm^ad-N57co%uvy4-_Hx&_p8+i?v2CLa?X7F3JAMFSe-{%R9HaA3b1JGQ-dY+ZI& zIo?VX51dEYu@jlT0D#;15>wH~8m1o$^3Y;6>gon>4Z6<;SM*xxa-6#MRz_qSL0DQJ zVymVQI%}73vPW^w%5nnrOwsoXkd!Ha2prV;_jqQF405jfB>gT@GIVWPsk~Ov)_NX9 zA6~Dv46f{#^A?IVNg!}Ndh8>`YTw`W@?oraPp#w=dZu?Zd z^~ot?+6)PAR5_7A7tHb@#E93P*^pi_Ck=6YTpLFU8jI z(Z5uAPUt*$F5_n^@mwI~`sfZ@sXZ%C`TdJne7yQR!^%)Qur;H0th6r?`n?Q~qG&*Y zxDM%TVAWd5e&+*^fp+^mRBED4M2VPEJ=(i~L9;R{Eqz8d9&vxKEGq4xQFtnLDX{ov ziFjw;KZt%4K}d-!q1!ULF8{!bt{v%BPjTHDl}KBrci7F0S>K#VQF;b%XH(fPR>}%K z7|!@GPRx*$aJP8`s>qm2+MZ!YwLn#m8A1R0jlD9RZ;D3USZ@@Oab{#KIPF_@!}$Wf;IKnspbvrM z2N&R>y6riX)aYUG5DHlYwE~2TNn%sWGXFDf?`+3arH9R%n_+qTYDslH`fac>zp+0$ z)gEm)|J8c4#eM>)(A@x)7~v5$*YjrkNl-2;?rFZZhn&x?4c4fkpl}wrDt-U{99IWs z4sS49m{tE31|6s1Kn^B*Y2}WjOn$Y@ob-VzU_NIaF@sGb#nkQ(&^O0MfXF1xC&I|-UQtpCHv5K$O>A!=W-DF6fg0H=fq)svjP1Yf z;qtJ@FQDo^s-Cm* z{t+xmCHWxI7u(Vism9C>a7a1=gl|5KnV-3GOG?2tL3i64F&}QUQi~P%cCI`=r$t z5szmzOJiPI3@8vIhVTD@aqAqU|CzrmzvSTBZUY;r`|R^pwZ_R9&6=_g|JEp>HlRTG z43y`f_%<2=oiaX843YEkX0~&B3Qqnh96xG5b=9~rQVI^bs%$v`uSCUhbF17~qAh;> z68Wo&|u}{m%Uv;uRz9ESQ;AFp2(Nmo2|ruhT4FB%b2Yl zs|KP_`;vA%T5k>swoi;%iv(8ZUi2I_t9D}2HUWTW)glnZOM%d{B)vF z(k;*z`&?ll@z27cwg# zLf-hWIo*A+@VYA8(|Ti>c~WX6T)J_ z?rVM{Xl$$5-@*?hRw=>EU_v4-t>08y5zd%E0Bxnxa(J*V5JB+dsS`}kJwGbwv6@3c zLC*4puM@=qk(pvWvPGnV9Pz?(39z0UvxSkO5C9fPK4~zB2}{$2ruCR?8b>m{*1o{s z4hXq(kK)&y=LdX#thO?5&b;ZlB0(trzv$Zg)+4Ak5BVxFnHN(>ADNCGm{}Vp(siUl z1PRBWV9Ww9BCyuT$oLUo&AzHGbET&f>T3g@ejaCmR{HrR_1XCy;8lYh4-k(LevNFJ z;uWMep(h;A5s1WNvO9}O%;XK&EzIJWCJD@g-t13Y7b43H$N5=xpnuJ2B%v=V71PCaw<#$cS=HoGp8 zDy-OTp200?a3J21&t9Y0a5-1xC48?t1B|dglYZNft&v(CfdweXFW$GxiF2h}xMk!a zKzvATANtTMwI1bYO%TAfNdUx1uw~EW(2)|Y;P+Wkge)PSa|ey#c#nJkF&6g*~GE`8Fb z*kF+MJy`(O-=OX@z%qpw)8m6fr`FFe?+6`E#MSHB&xoBL#zP<20|nr*eO*~ zMw(moV*I%J2K{EN=gK?sD&l0|$^I9Pt1|!5Na*1$hRMTDX{sRafCRASSfIVbv+3)Y z(Q6UDAYPRAmnN(rqd|cGqqN*kPbCvDtg5=bq&NvzX!@|j{4eY6>v2kPCAy3DDEb`F zHVMBY3ztpucIqswiH1tus`Xi~_x+hYYO{K6SPxojz)kmfaHe=VhCBPRFx-cm$|7bT zc~aO=4Q(31$F#cL;tdYmBJmkd39?Ek3-EV2)2qvL0Vn8UzoeLkKX;o;K@UaNKN2g` zR&dAm)A5?_QEh<9fep5FBEoot!0}}qz+b|v7De`Hr zqC&>;Rm0PqoOuoJA6A-Q6)`YQep?4Q;_0i^4mS=`GXXyaa2;_+n??a|NiI_h3HNkq zA{2hZUMwT*S3bzX{Y$&G6Yqg^Mmj2fEt!_RPl}$J36NY2Ig_DcVQ(TGW3+Kl78Nn7 ziiads!!oI`i2w3plhgo zaIQGe3yv{Iq)`M(KsjZ7rQPfIyws$@TL$8y8&5_b(&k~XTregB@n`t8goc;b`X@*L z#+0pL;@3SQSZB?*`(I5#K|uN}sqNkt`%|fD86|@k^bLM_>9$;l0_Z&(V>A z_7z8nnM74K!#VUu_m)cqVSQ>)fh40uCT?d zSSH%CKSqH4{g4bC8oN2^Z#-Z~++=Z(l_v78MwH`ZU5ed~@tG}&%H{_WI0e$61;nWX z^qy)`&PHbS4utW#Bfn0$lizPF2&q@1vUSQa;#c;-5kW#bLbq7swTOw2$-qf)<+mk4 zFluC?)?{Fc#so3NwlhKid0e!Oh`0O7l&wPd(<2^FNP4VVLOq3=-m;XCv@IL)M4*2D z`fULRbq9@lPy*84?TzRzL_)^xUp9^1qhKPQ%Y@a7|2eQR7@e&|GJFbos9F z>mUr#-zJjrAi;NH{uP;t1M-7{wPb?FooJI*7NVfo&?nb}Xrn#N*@R`1!=#}LKN3e<& zE8I-wYx1;@-JGi`o%_ro`o) z#lYSTxs9*uoq-$jO1G%vf2a3z_*7|a8ni8UFddyR9o5~4AR+f-olSPA4{Jh8wUgI! z(1HXF<8MW7dF&EKKc-n@b9$ou&T}7?3#vQ1J)hcEyncZz<&OF{#_19GHyjJw&=A4H zi?{qABV(Z&R(mcU_!l$8Me-)@a<2XaIQ{o~^2`&%?>?O)5H<1a79x=2t)D3bt0V|zyvi9yKxi8D&jAYTD z7HgwW5%EvyJr|RqsaG+{Wl{@&O7ncTDR|!!&pDHN2IYYD)sK(U#6vQ}!h`Rxp`Cfk ztsG2THX67|?&dc6N2xA+Buv-T?Z?{B!;-g4ba0I5o}0d*d$mTE6P*jZ^0&^n)AJ!r z02{c&hGx^0(Hw?_gP;#%rRDWUwxouMHi8t$Q+edMppIus1#i*nuxVOh}eq4gnFMx*Ez>i#vJD0($i!y%Ujq>?Y zt%>(cQ1qiU@yop**r|)F$lRJm&WuPj8y~o_p0sY>L^|D9L@LMAGwrg88L{=5cQ#Y8 z3!(g5k6;fR5O6+~7;Y<3nop-HzgnxnFLUQwt zBVCiMd@g=E2KPzJOSzfaa945QQdtf>>;%UmR}d=&Qc(`S9YTUjBT13pZOAYGas+0X z)chqNuYg=Hn-6Ef4ro#PT-s%EYBm5)Xga~|0g43J8RLJ5f6NLv1%kx!haC}Buq+1k zmsF)gWZkC|;y}2F%T`hV!{Eexi=`otL7Ya?7FgaDJaeJC1!IpY_^WKN2r7cqivThn zI}m@e;UZb3FB%}U$OpEsx^z_FPUd>^!sR9fd*q+^wx`+Ym z{bg8UTVq}&PA|d6U?Y*X^@OHd$X=w*Ki1)2)KA|$pJ*(eI|2=oh~XAlX9=QBfI=k6 z`KRq(&7TcqwCF>=Y|2x@MM6y24FKU_=3dzEP`@RW5orN|E|m({Uyx~uu?+S5K^BYW zHpp=k{srcM;2(+AC2v9dUxdg0$(M+4o?9x7R)hcQ96nlVWb;wb`s~fcU+e9Ibvs5t z7*<~?nCv%BvbhY@f8%w-w?Evc@PAtx#1W3%#CUM;s5oC-MKd^2w@ zL_+&kOj-ndTf~Yyo*aBt#QA!zSX;_#3c#fFD*6q^Gfs}&@P|2N#9+DzS|gFTb1fTx zgB?Pz-hGV7vFwl%^81v6^qZ1Gf14bYgcxB?om$vqn&Ze|_-*a0HmB;wX-(2u9vR3t z6*|%WAB~PT{bTQ+s*d5)eOV=Y#6w8p_N4e8${6UPyvf)#={@13gxENU2Dy$C#N>>^ zZ4YZ?Z4oN&VZ(J#c~d^mLlHq9j5`x6cnb&_pROZN4}NqHb7$h67fm9UiYQ0pB=9vJ z?yBX_DrJ*!+@t5kf6PehR#d@&^{9l^PJ1P>%|c2T&`p& zgkX^0Lz2*e<%R6`yThVspV7s?vp}2_vmGG`LqS$d3;!ZS;2kekO(!m23R3O2!zO0Y zuaIS@w7(8e?3w_M*)kO*BE(;mgvc<>wE<6`aO_>5nR$nw0GMMPAT($%s)$K4-wa7V zW$WX)RYqzpy-OZKKWsP4^_EWRy46M#2(5ikuE3xI4T7){CGsCLUN%__1exHyO)Mal#eYCzQAUCg z|ATjSxxrGF8O2|ULQ^?M7SZ?*8A)Lyzq?%}NOam}25esl+7nCi(kj3|XN7I7Nf5|i z8n>B70%^z|YlpL77CaSL)pDk44ft3LA~Dy9b)-t!)xll93h{}|IP{6S4eX0$@eAZ$ zl_?g{Bz}HHrR;xM7~c@l!}J0o_5>71sue;hXzKb;0T{v0n-KmPDE@N2)fbx0V|qwQ4AE`P3_?EI3LMAj{`^ggxDG*)~YaaD;O-bYMKI^B9+1L0&;c%(Y1`mhNw5=8k1g>(X1=cue zAOYaII(U$N4)YZ%oLi*jLK(5DWdROlN;QN<(UusTm4WpJCA~R}mV_|HLgKRr&aFX# z$4545WH>jbge@$xbgv=N)nOQi1-^yAmC7nqrzX)HU%#htONt{=+CRWg@Ubpcb{^aR zi2_M;xr`bb5;DYSC?Loy2Z7&O;j=it)$DBfldYsJ(&jA)Mz$o!iGcVQOAeiW9yK!J z;iw3a+kp#?FBMWCkR*!$`}Zahnre)8l%ACsyP65bYX&;6kyo5jvC%`0&^s%_SkpWqAj-ycJ?63K;%7pBzxpm84oExb^o&|gD;5((?2Lq zBnrML3(}MZdT061S){9t{vh9Z$MFQLfEjI-1?3?p3?l6IVCGL3^1?tIQgR2uCEpuU zgRWk_O|=?K2;M)r@WdRA+b26I#utFe66{76d?a|n5Gn(aKw=hE;-kw-!(UCKV$PR= z5Rj`O1!CaYJZ*5LApZx6LDREIYU(ENqbE!?)!eDP?>8k%GLEsOM{kanRBzq)k+5uv znwXK5h3Ke~n6Of)4oCyr9^!*hrl(<~mvOPSnBDzmV+}$n^7QTt1Pu};rDD+R1S#=) zfk1#aXH#ZJo@0uG8<`IY{))C?zrD17aoeot!Ky1D;Atg5=7mzPQvr}xG87BO&+)N! zKH5TGOkRwQIkA=Y+n<~^Sd>KtH3lm(ur7q2jLcnuITCYl+p2gcD=oE{qf#hJ2?Nf( z@*{}yWH+BRDsPdpZ9g3whx?@z#LBhq$V>TNpYdeShucz+!g(V^xzfsko6TseyI4@?&f@X`ZqiWY+eD zLED_L3m<>F?JBPKC^&;kpYpk#|`xagvuSn3>jaFu||k@Unv6VS?;WG{QHN{B$HR7?El749@_405^tLLHRN8}0(E71Apip?Iws*)FI=RneOk8q}UH=o4_C zO=$XSg_j9JOM*~{m*NC-z7&0>M?Z?hmA?dfX#V~JaXY&6QUqqdngs^%;L5VaPk!}1 z#ABXPrUE$?8%ohnj})=_l5}}rY->D;t~~(*5c?~^r#$ z=L-%Uuh6a0p3iA-g5xG$y&&TY<~#($vh2XSKS5)kuQEvBZKE13H0}E|1WGspb@Xm) z==*>N=`%tT?6EDXunXA8?lp^)N=j)l_E%sUsJXzs$U=l-*b=zj7hMKLH;9(%LDL@4pjOl!YdtaE zvmaqZhcDPfLSAe=lYIuWHVyEMZ=UH64P_|&ViNAgIq7Ui1Q#|_Bj`x3^C1%Mw_%R` z{uE|S8~-1fC!dr#KE3{F9k(4`xVa0+^E!x9_#r-(r&2_Fv+-(g#o~jc+qQ#(Dvdk6H zau=O_0hax|b>6^!)Nk=qOv(WWuAlnl4vZo)pB>|70}t&EkH2%WSzm>nFbaPU%4RYs zoRhkd{_8WUo%+;mrVKNzxbm{?G+-rVciK2jgIyLpYkMf1J7G`qrFjIzypvY;aLGx3 zZu>isn94M|@JUc4lGvm0cFjnU>L@*C==WXbhrS`_r1VTrPJ^(qzjJYxq! zTha4d$}8r1SizNkc> zZ5z?GIwWYH7h^u3qSiOVrf9$jw}h@?>8#7&0E5g{`q4q{wb}6KJJeM%tB((CrVu}7``Iz&GOd7-uBaNr-V;U`Ly<; z%5V)<%A11!PV{@NJs^#~7E9V;_Hy~u7lH1Mu%#`4Rz4Zn@I+1IZOnYBEr4}4!5tNdz#}Sc5nlIap6st@OjyQPsO~jg z1(<)rm(*B7nt9gj^Q{(dP)965i0aM-fgR1|>K7!4$A%o9$)0$|(IsX&X3+kR4{Ahc z+4MPSj9(^Ai>O)o4?)rZizt&-ic3f?X;T&NRQLZSN7ywFN<-{);IqJ`?{SJ_X@!FWiF{C3gnkqYpPOp@sh9 zp-b**ltztzP*Cv-+jo||10C9H;n3fU=3b8&jBT_l4Sa>VQE)3USNWmg9=wKk2atNC zo0;&TMJ1`_MWzS!^P8a~(w0SU&%FcY-_o(_4{+y6)S>VQ7rSH=kIjMG)lbV0a(|vf z{ucbZ{<~CXG?I|GIPKR*bzNFmSLsr=@E-Y-n+sMS>7n4S_x+^oa|iZ#L)_gSZf;7= zB6O}ocZZ$ySS`8oO!7(+;0SFqWLD#;$|V}#f`rrWmDizn z=cb=fNf06*>bKriZEBcQ{l0uwu%F9`GyAL3RSOK1MN+!mDheg%?(iXXjdAAQyU+26dJA4t4 zV!3iC)$)DdGn!WXS@-I_CR;4;%IQUw9(Cr8U9VoNwVyU4OdH=imG=3n*TjXqcoQ=@9}OEx72a{yO6i)`nNvQ|HfnEsn&Z8Bwcyazr6j+^(^u^m zaYzhZbpr|QOMuuhxcYv-Nq$d68|3iev)CAhFx>weSSWDIr(ol~tbaK(oY zrG0lU2O@&#z;R+QnNj|m*m6knP4~mAP%4q2@3dKbKONPNCw{qn?U|(2l=yvaP}FF# zsCygO^-G5L{L1#5%HH8=b@heBMIOG_$MQk+g$d4Wi?`j^*81jN5`~A1Yz?sZ39o|d z>t9V0+qF`oho9WOy;s6%zeuzF$*vG|liqwRLmSM0A(D`F5E8kpB0jG6N(P3{@7L1L z$APDb`i#Ey+Po}y&;S02`6Ke}k2i=_4|$)Q7QA;f+$jPlDpQV!dwLg0V%q|ju*Ea< z%@uvckZX1gkBkD3R;~YNIFN(SLAAW!Ig-U=h4;Ul{!uUKrdL`dc#d5RCuXLDcxmNJ zm#olq*3A9t_Dl-(I_a}rrhUBnb1OeGn$L7gE@LMM{iK_lXL^B9trL zB}D!SI!|aA#)V>YK3uP^oGAFmMLYqOIYqZffw%@f7di?+L=c&s@-sL zxKY#JPd^hpt#5Xa5F$P0Lgb(I)v!yQuDn z;Xm&@RG#|ge$L{s#)90r1}6koRbN^}2XR#E9HC3*l6T(7a-|27vJd({&#tdXATx*; z?9OeL=xmL9yuR3xM>tOiC_EpUmv7Iey45!j#&kvXM#QXdqi;?hMePf?~bHBQ@~1fGQJWt z@2VU$;j07v<*(0qOQ7{zZ|d@&{M$Z7aU~B(CDCk*svp{G(a+;9E;lx*KRmmMP;0)iU3e)^jAk!b ziS! ze0BbF{8fiOT9=SJuRTHM$EW-<2?!KU_Be`!FQ#AA$CmVD3d3e=*>fZ%YQ<0gkPZ^d zK*sWdZY@bYHlj~Y)sp#D8$*xt4Pf6FA*Lsn!8$DMC6Ld<2Q_9OapEX$wpI5qG z%n>Z@N%#&oEe|u{!^ece$SRht@Oxab;H=+7pKLp;1iEN{+7Da(!~05W{34*P;FMC| z(epDA7chK0)cC^-h`*{x)VNnaQ6GYe`2J1j3!VSC!|%zbp^N~@OZ!Sj^>}9zkvEd> zDl>1ww)n>qP4sGe<3smTtMV=>C1u$zx@V@Tdkr2a1Slw+7Kc82OwSRL{E+&u!ve!~ z%vqt_WPgS2H)Uk$JMD%3d%*mj!vaV!U~a9oOw zfiQ&z{n^fXnM?kGIp;%`z0}%(CqfExZb%k>hOeiZ1eZT`^B8rEntl#E|J2QSZj`wZ zmY~(*HThC!W(5(j60c{?n5)Hu0*~ifIB!y?^8>U#(c?eJ;#9-S|ofmWU0j zmipsAe-J#_vd<=|AM^q>7JgwwNnc=pJ-r5%n9as|v=hguYyQM2GQ zb(rT^tZDj{X0OG6MX}>>P1EOv0fBH6b?XL{)PFHX1nWn3e& zu5caYC>fIPeo(Z{J@nx#{LW_Ja4icM7gRxq^SreRyw6y8JR^=UFN>Yfi2Ew@QM2Cf1_w-oM~}U$*xBrmEE}Kcka~4kHv)#3mG-%w zAOpF9M&84)qOo{NUO9q?0yhg*o6@*czB@_FrWvYB`b}JcRCt4SPtnSdQ^i5)#3pp37U&_PUkw-$V^!I-&j$(yEbXB6cE(?@`i`sV6 zKti%sPQ1ml^QUoQNA^?!gzjFy_)PHr4if)R3%#Yfpq8B6pZ!I5MyH|R8Xea6<>*N} zxs&K-_qZzMI61N!pYqH9yuH)FA^v~X!A0NF|C{Ulzf2$hI|u*Yh8dtp14P_x4^+O) z>6(Gn@tnr1PQWCBtvToj^IhvXUwRNJ1Ny-@$o~MF;$!TGX97K7XDk31a_tN`wsMd~ z^@Qv3h3?c>02c9aeE>p9GN1j=KyzW6VSRQk@EAC`Q#)bGTIIs_k3rdFWBmd zJ{s=;gf4D15O+2HQ1+N12+ERw?oZtucH=j1M7t6Tgn}2CT==pObfK7nx|rnX2aq)# zm+da>^Utte(Bv5VaSZe}&;qI3W`X;k!9rXDe3v4cpI0D>#SJ9Rf_OFiv7BN-fWHQV zI)ae<=WjA}5t_g!f>2HYyC4t)5u%5p1UfZbW-DF-Q~Ou%-M(C~Vb-tF-32*>kL63% zD9EZ?JjN|OEg>Mz>npbAM^FI=(#39TToamT;8PlJ(pN(Tpb`vcAgNFYAEB#p>o?-ZZ-lLX%afptB zuYqXVM-MU_zk!uOdUFYIE;z$}{*n3w5_q8w*7YBR9f{hZ_zeRjCXat2CU))58ZVAf zeneDb9rhS-4tD_Wuzqwk@nQ%JN+@;&7VE3iQ1piId3x%G;l?z#vz=+IWq@3YW5-^C zqA(CphfeE952${S#&}j6uvcBV5`6iJ#_OBW!=qt30N5{dKx6{^R7YeB^u~>0^K~2n zGW1?D(0;vOuu8A z@9xc{?SW5Zzaq;aXjJ)~Pvft6A>rk7`GKJWq|AXbg)va50TeyQshypj#{xDC62#VC z4MX`BOk&ow27o7}2?X5YYvnTZKPIvf*|9UTc>)7E1Fcw&sy7drS-YqFGipc>#cyLE ztbz~$v56RSut@@K4?|#&6?{4_GB@oAX-gXeRu#N#jXcqGC@`=vXzb;1=&+XYmnzOu zzts^&lT8Ni*Rd?FU%i9!Mr!Na$ zv;$f`K@&7Y!IDRN*8yt^e!q2udmSiX_DxzG))~`yP&`hzUk35r#`^pp!rn3}$~F8K zmQIJEYv@L4kfA%JK~bbZQfVn^hDKUS8l)63P{1N3bfgtUlrEKWKtjNC&HlgV%Q@?; z_tRc`Z^UPwx$mofaUEZinS~W)V1!65)@^ETZtkqQ_8Kn4fxpQPeq95fYA)fc&KerV z;7LNqVz?R|ma)M+3YMh8jUestBPH7=o*?+GcU4P&tr5&m>Cdjj9HN1ML8Q~A3vvRZ z_YsOQ+zMA-1c_L~?hHL<&94)6rp!1VC#@~P$2>6FuEK&JKlfSp;gUn(3v^c}U%aBs z!_zIrwd?Tw##N&Pks&6{ghNLkXAA!YZr2{QS zNpNOp#~Un#K5%##i&tVDRTqAS@x3aa1Q7&{>&Ts4W)*TFXJAyfKFVdf07^!VSerz7N*9FD5|eEuH9 znk?tw0y@7y8ri=H@|+ZEU}5U>=b~h#ChcV>rQZiez@pA_6d4U?dh~>VHpvsCfsDg0 zfU&phfvC|xzqp%487dR7ecWOVW}0z1=0=!rTG1|6wrwQ}8LwgQ6dZDM;`y!N2&;Cm z#zb|YG7iDc)9@LstadI#yom>Go-`I@E*jdhxr7BDfz(2I4LQ66I)UWOdS}vZJYj%b zo0g71F#ZrY8(R9HQS{W<8o?HHGg}Z>QNgx${eRsFU_rw}Y%Z{(74zfuBKZHdzdKIw z2x4iHSfPrFCq_Qgo_MJuEkx*?Vb8M-0@n0&m~pzqyQm5h@P-=kmVAmiT(g$wiU=<- zpfZ!Sb~*xes#a9lKcg7SeS^FI^UeDf&Agld?#N;-8XdSoP1v8Hv=aYy*O8{wtlq40 zPG}Q-W#$wZPPXKm<~DJ>+qiAvSM5%{q|6!zWRhHa1zI6kJiC;^==qH=Z;pRo)b#rF z(BK%+y$3mT0cSc^o z`r)e6(dDN=%UNU9MwGpK8-z{j)WqVs14EB}z9}+y<2as`#Zmz8Qj28%-_9Kmo<8bB zxM*K={5o$Q{FUZ%&A9Ob;5Z0QXnkYjxAB1$5A=m6*+2Cf`B3^DANaHI3JQ{5{u`~U zTA`Ry2@E2oPE+n1+H@icBhdt7crZqLlSf0vy`|oCs1PWzWIAhmw{hBB}(~q zx4sw)vE9=*WZ9_zIZeHHfp@RWQ?m04x%Ako08SsT4KhyuoqUC3*QBF33-C(5ESo!-> z1Ivtn7elJ0sHN!qCZ3E&@vWyMyr`hGpuPxFh?tV0{r~+_-#7U@?tX18EOGfz>H{`F zaEoGpMysdgCK8s@%lpiXwy@23xsJr+6@*1H1Cdo>^F1W{mUJTyQP&~9OYBO2!c8%g zi+lbta(oo^)EWP`$fplVbLCwCw+)WPHGs5=KYi0uhDA{b5>+86PhLU#hR~1K?ni74 zu>gw<;`q$8KQIn`CTj2ewGRTm8s6e{%$PBFbB4kpQLFrnG?%Q08G6zYe!nkq_VqUc z7xQm?dvR$%vLwIR9;8&iJ$f({Hde*tVB#C3wl@p39ym!7b}umJ?@3=z{Y0S@y3L)f zAP@nh4j={QB63PpBrc?hBffpj`*E zaH}J?-!Q=T!@|pE0$PS80O&@!A-T9{98AiTuX;L32`7RA+ zZ?1ZPpf-tfjwjh2o&rR)V=YI(o(qQ(5LRJnQ4qt{&dPrD$3G-CjwFqRQZA%39dKdW zi6cpu)!F?xZJ&9J@k;ZXWzW;JMTpK_>D-RbcQn%%Xce&lXZkrw6@LN55;42Etm1Dl z87d@T4nK8vLyGD;U-R-3z12-;(!h5?{RafBxjZ6S;oXOftwWS=`U08|h9zM4g||3* z*5z1VY7^Kc^3XsQeW1fw2Se zY=B&3P5b@VuDJRKH8uR}GJR$d5z5V6im^pVBLJ6mX*Om$=!=rYtrC+jJi)ITkurA~ zlwP=~6n+}`9?DJet524qnGUGhJub&%AUD=6#PGymYKgIF?@c>+Xr zlpICr;0c)}8{T;9oHk*&*cGuT#_R+}VJ7#m`^DBVev8mcMcr7`9ru zOQ_>FdHjzM^ZeTW0WpY0HRYts@gYOXQc|>ljz5;YS$T6>gSPD^6ap3)i<*FmK<$1 zI6(&&kuRm64_u~G2xTN4&$amd>ZjI&MDLK$<{TMP$GYHrb?tYe7>;~otV^i%v-Y`O z+_H$P?&Waa)ZwqsyqQ@W&-ZZ!H6OV0E)MauZj|E>F>mak^ej8k!^GtDj0}^%4=C`_ zk|pk7Uy@7nU2u~OMAcrI9SJAZ|NeU!{r?w79VA!q|4ZvAPU^p3GtSIA7(s?W)vr~9 z1{eg^qvLr)Lqn*f>hSO2&t+j@Q5Gaed=ga>4+V7132U#6KXi$pWAU1-hb32DB*UwH zkYSl2;~^pm7Zw(P18WI74&ZbCn4(UG2`1Fvj!Oo*SuskEAP82tS*+3dhbDTH~yDAU^V| z25%3rK$`;ct)DzZH-z5aEBJT%4FhYf&uzY3+6#wD{Ot~us%qTBma2G7+2_w!5Fkq& zf97p{qJ5%(Z}aACBu%@a;JJ8LG{GVCV4H{G-1}J;VOfZN-CVcR;W0o39xLn=0Y$^e z;`=&1`qn@Uyb5QvWyAPW=rLQ_zjz(C0&U*ui~yM5+o~-&bOc=I;NrI$hR`VV z=98up_~MIG@PYL{Z)5FVa=cTk*oAF156Rkmal2`p{4;LT-(xmkmuf%MB#*wh{on zW(7E*kBa{|S!gawh86-dDF2RnskE^_Z~C<7m^B?#AJ&nnX?+(`1Jk~Soj$(`;}JXo z9q)Vu1uCy4G3o77IspGK6Z!iOQPOPS$gqOLaWP=qba zPp&J=981Q$lU`~KZWgUK*L%P_+-?|6OYrrP%5jnK<-wFZkz@!Vn4+{&nrHr;nBb#`fMcn>Qfu>LiOYU z+}(x9=uE8=z8Xz$NW8yEd1;($^mz&0IC*EBx3I7bGVxp7F-bbzvdimrPR2 zD)wypO`CKB8bkAaT4Uo0e?33Soi5!U-XrDZ8XG9}5m!wINw-J2=Gq<9YUmU{-qAf# zDbq6LQAX(9Hip)C-Q81GXU9e*FF59W+FG_BO}s^&Cn?H_`oNgWy!3Nvqfqo>PR6m0k1dq=RmpC@#iXT_3sMrQ^) zGX$$J!l<~~`8UOF#dv0XrKF^0N}N@1BytZWO$@w|UucG9OfJGmhs5%aQbvh8p%Hg8 zs{2&@V_f2dARY)^KZ8Ubcz;+{`RDHqvj&B(r(M;&p(SkgjM2u8z^NwxQAIFMIx>qQ zTIrfv+^Ot`*!duMH+%3}S9j%WztPYuH~4zMoy5?=vFyUL3Nzcx+i|HbZ|yW$u$y;@ zzB6Ug(CZIVqD4O3Qg#scOJU;EGV#<3*p7J4UAY?A(MNEiKiqy1CEmoJ`cdSF?tOzV z@WJa5!Q-lpWB4J|0mu;tv;G9JhmaR)Y>?L#Q^uyO2Q6vppR4as{wF84(Gk31Bj_qx ze+((u+i^`PkrBh7Rj(NP}CPzMfZP)X@ZBi zO0OB6byl+`OJ<~yF(PNHua2u|w4ymELsK0O3weZRwBBd&)udCIV3nVVt+qBV(uYt548|uvH!l|_xb^wM4qhQIcX26Z zSeGiuZ%C|5BF{%g9je0Vz6KJetnXvo`s9M3)Jo>B|k9j_}k?mqY_ew=8hoN-YlEc_&3uVY7t4TS$XsVL%G0| zM9o@NS52o|uXX&AZUIp^y?B0Gi9a?Aq+PNeqZQC= zDyQeATfeud-|K1^lpEwEOX|}QM&F5C^;9nq%j$)eQWRHw7G(AaFOro1v5nWlaH zc22iz$6VWd zj7^$7Z(c=gj}{fBl!!Su&=gpmdN_!AfXx`v@DUfo@kj)XknJ$6EI#l1=d6&h;N-ub z2jdfoS}gWUkx1HMp|7TSy%DumTbL*10?Vw1X1X@%e9SiA%*X+WK4E5ch+C-a)<}j$ zc@ff>A?|5~cEDoU>{|Tu`%>A2vgGn=CPiQT@vanSIxSo5Rd$ogF8x^>BWkgNDd8_| z?jEinVgYBmS31`^_9KcLaa=aVu;n-k{NfGAANFY+54k&$-ia>|BEwcpIg*Hv6+#g> zNquIoVxyioeSj_;#glduGukL>JrSIIHM3{i-|XRPXKwXTpZVgbh)aKZ_s{i7+-rqu zogPB_niGRKdG{_eOI>nRHoo}gQ3|~k@y|o*ar|Je`hmLN^D>#6%dXXp8|NDnO4h?` zMNp$t$hy^+cAkPO1b&P~7fmMyr=P@U+&*6rdb+BXPRwR}`z~gU>w2$8jds8%F)fWv z(MV&<(Lz^7tJcCKNr4q8C`S$kI9IeLX;<7v!=u>2cBdRY165zgm?|~9kNgpWr`i3v zbU&3Wb38`<67rpEx~BuJPd+U2u2<}quzaMEj_|l*L-d4SOopy!{`SZ}LrXq_yVyIV z52PsEu#$zWOEbeW4yo#VYhPJKH*0T-5|p?F~L!f-yYDa`HAL|3XWN@ zGhm{F%74@c&a+2eqq=J$zLD8WH$P_BZCv1YX^C$~`*PtAd+~8{20a%;**T*knXotS z`XpZVJDpjh64_tK&$l)jk7R3CO}qP=+T{w@ zD>LE5u}ZJtebn9BY67WiF6lq?Cj;omUcuLDM$d|4Ez2O6E}v(twC0{4?Ib+VXl;0P z{GNd1&*%LL(%uI|%WV;d0q7RIxA$TGS4Tg|mA`)paRFjrBwsG(h(T}(3g1J zs>J0P7!MlW6=ghk+34H|n5X0W$tB%@whdhv7JvbIPy}=`(9Bvv%4vY7D~F~>P*!}Xz0<)<=K#|Q73?F!Z=eu(dM3-*k#!H z{t<)0z|Tj3mE|PfOUJ|m|#3i02v%@;HV+)R$4PDjCVs|dh_&Ayqc zowSDUd5z2lXy0xF(J|$8;8zwHY3R+58v4mBF>Ce}nV$R8qdRH%)v@ZUDu}b8G`0MA z@^|066u+1(0=jeG&XZuc;@>V`(}Z(Uf8lV{PjUdJyeiQRwkyp44o9MapLQmtN^mH5 zLG|Bp;B?wHEP+sitduIi({#1ojOXrm7|jA=0`KfTEVY7mH5``kwYDo|OI6g+JiIwt zK~N+dHp)_%nM$ms98IsWkjwMqIiOjviP7E9qu>Wr{ov8O1ce_z8>*#r8@{l&)X5#D z&^|qjXZr&x!}uST98En&a*r`=Qu_-23z$`3$3AMR?{6nz_TteIp6W6qX&1g)8qzw| z4UM#`av<;TUt`q+|IXr(3~QpzNwM8oXg@)lUadRRxRAx05e|?u%$`S0l!&XazgI^x zgHkdwK9v<90Lz%D+6c9KC12F*7w$G&|Tk~zkB}b z6PR>|gR@(olel`~C?`FcwiJC9w9UW1zrF{G0dD?N8dhoICm2q!5S#>Le@#?Qj`5Ta zQPU%k0f<3{6hz;ewTcRa%7%7l_^Ew0v=p20{$V7nH3z^}_6AB)AhuCT_uFDwaL;nk zcR&L4VV>O&V+9NEEBVOq;?2%2-*XO?nk3Vd^E63er&&i!x%k%|c(CoX-%3Bs*Vfmk z{kedyh=7_yF;AK2#*K;u=uX$u<>7Tsk+e6#Y(kO=5eNr|^1S`4_6wproEuWBhu3x_ zzpdgoLLNMBO@qE+dn3FoDeW>$sERfGut~l`czL-nv*$eTE9C!NwAofqdK_WI>tJSF z#A~A_SlgI(&N>qA-4VmBxD48V)i>%dlxPo6x0CtIg@T{r1c$zbhhZp;m9SUl&=Z z2uz;{#lrD<7XgiXb=Orl78LixGBUmLQ+UrdZba?e2sf^> zQYBiA?b2DD2OM*7j;-*KbbC5hLd?7hqx!8Y*E>XEWcDrzYn{tLgvK1rRMWKrd0%_w zr<}GL7|=0{Pe=g9=#es)L<_B7p&vnxBajVz>Nc5m`ie$W#A+DP3B5@9X4Pa-5>26S zs!)JM54tw)Qj)2sPN#px$@AUs$mCKp5xq(IBJyu=#{63(4%`yo<2q}3vgmj^!TBtp zqVyeLLxz8)-HTuy8ZB&)AjWktO}UsR--I89saRDd!1kY!-PB46`J0g4UcwHy~Amd%@~kn zWkoz@#9sCE4y1?PpCpF0;LaFsxPG|xW0!Lk&N?7jfnz8f1mv4=g(>@3VK(v)MxzH_ z{A9euEzOZkBqq5zIcRn61%11A7uD3-uIO%TG$XN-PMIEjxI3c<}Y$zst0*~1kL)>|Xd>m*lsn+lb{{vu|DN}B5_ z#eo|UqxjT>iNBu(Nil1wK;;(WP%Rfem? zO6rUt+Ovp8rXFEMrsi}kQ{)R8{=T|Wb(dtZ=L1A8-PC)uLIZkqC1qC_X;fEL`K_!;GEYc3z)BqeCwBtS_OF)z;eNk@ zrP8bK?q0k~u*+43`rXT_Nqm%{>xYG%jLP+{P}YT7`7d4Mj>9HN2kvRa&i6e#*@qDB zSqhIJ?=_kH+%J|-FXINl2?`2YWMu%5 zM{Vha+l3L};)%gq?RfHOQAGuX4y`1_Am0*0Y|V8}0)dyBJUY^PF6;4ZWcp*547*Oj zdEhJxJ&GH^1jIiA7L8WZdJRPSbsYc@PHIg`e;g8N&I-OA7@#jtp<5YK%^MWh2sS1m zJIkg`UbMDO;JW^tFB78cjpY2XPpggJ;BOZR2W@UmYFe6$$((BypaHKGv%)uT(PVw@ zN~x4ZpwP&43X=A%tI3Zb!Sy*v#;vM-q*|%gi7Ddq%3K z-MZ-BD`7bMQ$S#P*JRZ|*Eq)XObX&0@_*Moj`;7CI&n7vKn#F=cYp3#_d(j;`=&<@ zbcDdpXk@cPXIWt(1U{+#TOQ;F1_oE|UYMtvFY>;l%9Qta+<_NgYR%u`d4dgrC=1y& zNy`Cc-D3aIxt52TQyJZ!)C-s)AR8>q%*^!k^c)-~pRH|=E@=tRQ}M{jJp*ueesuLr zYn`tWzUbO!=6!-^6Xe6lpTz^v%(WU|GgY*LlwS)S3+oCrOEv%)gNMuUz`)>Mh@XG0 zj%w{K%oDSI02~0PVE4Gi4gypNkft(*3_Aso(BjOtIHC>H9EC4+W z+A)6$-we#bYw?H@`)OpL`@>}vk!bWi0}}PHUiLQD5JW=+5udAspVM$xsCx*s2nDJ zJa8W#Jy6o6pZW^HG`qB`zO(ZJM3cQ?#!MoymzPsyc6!N{F^ z@?XIQ(f#Dpc!?ne1%)uk;xPNS?D;v>Lf;;;Wv}l6S59&ihGJ6j7B3(~=HSQqEM#zV zs81_$P{}JMPM3L+ca(un77U0rL{1ow$CV6~ldmbeuEER<7F`&P)s#wKr_9S_TVV*U z@t?C!tqvBy_TL90hYy6O7rJL238*R8+zjWYC{c}_E{Ji_2Mp>Xy^zVwidOMMKuB%W z1fY15D#*zpG!BqcRAl>vc^pSA3p40ZB^~}!rU(K*8VVw%OqzsTPiz9+g9&z0U~`luj-hh<%~EkhKWie^`hKpQ>8kPkqM zZ-#QF(o8^%6&q4HSSTi>CQh|DaLrt;25h5SKG}y){bth3?xfYN>ekR5XX2kga#H@M zA^yc8a?Na~Ql;<~B=~TnRHo|-J&QVgKFh+*mi1}q9z6K z9WaNE$*`lT8q2MQDPHZ|xCg9|85yt%0>%=*prDsQ9zfezztE&5Ph0qQk5i3*XJh#Q`u`(9MJYiROj@fa`=`qFA1TXB&q6(D`C;dyR*uhUlxk`Y=MgJTUFL-v{SEtt>B5XSV* z^*~KzQUCBhrBxq}S#rYC43Qjjkoz1GCIg|YprEdjLc8x}&-+3rbiMeluZ5P@^-Ud- zLEUSHQ^A-!P=#VlbY8q3dfSf=mfMLt1yWpwKYjQ7wjkN~`}=#m0o*;Q<-c&|fa(07 z22azlT0e|Xcw-r+PW7xLsO=;Ly**t|6;#NFzxnK2H?DS z;wktdWq+SufSpuF_dn!r*NlZiu?^)eFeI--P@MN}iGf8UfW`}_DzdSR|1QS~C+{-s1;PMK`#<5PXU3|AH?IWzriF^$V^2 zztve$3G%Lo-Q6T3&rR5v$`rgnB3r8GX~ED zapV}ht~{BYBVS*66A=a+l%C2=Kllh+o&Qu(KdK?KVqFTqO5LS!xJ?2~jGju7^f)2kbR^9!#~OXdW+#kuOY$r*=G zNR2_B19nIWEX~60`>lO^z+7h|C>A7|e8?njtKS0;DT+jZ#kdTn#yG9@h3ua$-qbS% zeyQ;jBjYK4i~VOu9Qj4-zy1oR|oK zQ&MJBptv6Bt1MfexOI-qB6%yWmNw>o(Vj4gbyl^zA10Nf==E{S%ys%X%1-UK8mZV__xI$<)6;>-t7JT5kVs-@7?H!|v*1ha79RfV4h_-MOasGj}B zm+2uZda;RyL$Obw$@0bReV_9+Pd!`(@>T+|Npx}L!X|0o=Jq`UbvVJJT<-pYhD@O= zvIE#3lZ5fPxw$E(qK0`@yjhk;cQP^%(p+N7(11%Xb(SIV{dLW9VgC)tBUV-nw<>2T zgyicEvl2gR>FWnt%B`?kDFB5OSAGT3E4}7>?=WHypk+sWu2@d(i=Z~YbL}06j9dEZ zzt0R0+O<~|Kj<}4)KLDxS;o)nz~q<8OO>1`^Gl5ZeF>DHMMwKvBTZBv=cgPKpdHU= zXK_y=qxSg}-=@PeZwA~|OaU!!zB(FqJ{m{Kos+O>6^;sq3U3yO%hQ$w(fcqISgaJL z9eIo47{MIXEe1mG<8$IIWGw(<_7f*{`KW~*%1e;=4@ zqf{jp31Ce!|77SNNCE_$p!pmkX5uHjR823Ee1K$B$Ys3KJvrRv6zvvOW}E0rKE2#XZ^ zF_{EI)TZe_8zCB(k!4?3CGUT|+RKMt>1`85yrCFLYs}5+c{&$a!IUjva<;sg`8Ian ziBO8mgm`3_IviS(c9-UbzuSVL=Qc)|6&dyS@TOiYtK=tLipA-RXMxdRummy5vn5!T zwV7)+^`@a_*}N<;$`dYh64buP2l+O&FT$UdX!O>|OM@_t63OQoR2_=A@0bE$6i;@T{PmhOnnN&zhKvexTygS8HB zoVmmg@&XSHrD7`@v3fa6vLEm3>#shoU6n`QV!(~P+AR%;c^xOFi}J{H>kjbJes9S; zj~(Kc8Hr{d&WfpxB{k1yjzmB=vA)SoRwy9~KTh-;V9nrSekD%XU|@dQGE6Zgk0=BNj^g8GG0|dw$#)EA)8nkmk$w zaEay(Pc_GGHUE$c7Fbg%fN=wm(25s>}~^+MH6?XTdMp*Qq}c2 z{*b%l*&&Mkg^;;=W)u@*3*EaScF)%dYi<}4_@^Guv|V7(kRdI~{4?2WPe4>bu%E|B zs)wctTCLBB>bVx0xVuz`S? z@PGhmIoJ>Z*k zg{fDfghTP+8Z%qc4e0OIjXheRcP-JR!HVi1FsxKdi6je-_kQKZjSZr*Xqq(SSYva9~eCQk0oE&U_BAf9P~wm%3E)NM6>z zOE>+!d+dpvppxPuk?Phwq|NOQlJEe|$UDEi;}re=bk=Y5R9mz-sVvtk78Z0>S@|K@ z0rGCE@EM%^j^onpD4NC{r#Bc3aii(e(XHa+v0s0BMjS&;w6hNV2)gT>zE|JDwA)1= ztqUdiu|s-%3H8d@*jPybZqYFA>*Rc$83t|qq~~b`u6?!0c(Jqt=YPpnCluhhT>sxi z%h95Aii~sCg}MVoq|`A*+s_9HF(!-scbIwnJATzf5O+_Z7NPq)l;)iv%56o%CX z?6Mven9nqpUN0TP?+o`SFVx#U9H-YwB#5142&R#i&C~KRd%rZ4`#4|unQ6`YB0)_n zCsDaurXDKMkGd0F2SXh-b+-ajzfkK-yVi_}WY$X zRqkXJ$zHj&+cHoIr&!A<3TZe{2xIq{!=-m;39agAGJ2R{e&-!0HS0jZAgPE( z6%RiGZ0Y1xH#f|bDDJQy8KiVOhTi$VxS0Rvc;x@8{r@jy325=(z>O4O8~peM2Fg(T z&d?Q0U;q{Yp`fb!G{7~aZNp)nFy(s&O=F?meZ#v@?BBPGRTP7EtB&L(>C2iD^El43wbrfH0DAZ7!}AR-}zP zzZYjboU{A3p2iyoiK`xVC{98Yg$IlN^TpjE>hM15h>GXJg$tlZnU4KabO2Lz*fqz2 zh}0O}g*`NfASC1N1d4^(5ir(zv&SpIsnjMj2uPox?~B=MyYWSHnwC!&1;RW4S%5(l zhW@aq{`=qYsu~+{>sK7^K7LY0;8FA!9{y5`eQAp7aL1L$&eL`#e_OiajP@a9r3hg- zAYUDVmQgcFJD5F)%0`#Pey#!<0}P1a@K&T4Jn-WIj93$o0nS$*fYr6W*?|TdereNz zL=tpGFe~2q>+@j^#$9+Q4&0Uu0j>*lJc4$5abbZwLNrrx(y)($f@1VGc=rey70y8d z%5q441pA3DQ5n@GxTtQdQ0_^~SJDFAR=wSg3-G2%w=%3q;Z>_98@bls(vi9;KJzyO zxj{Mb`}j4c@Va9cG;mx8evGUaZm<{~euND_rHYrZ188pd-%d!BQZQC(7G|YI-z1&a z?3&1o5inHe#k7`K_}{OpMB&UyNQs*!!G3qh!Am>M7}RdrlhAL?jgLbsi{zQxpCNVC zkMma@4W=9_Rg!-*DE2Kw;_Vk+qSj+YAC!6JMZ#AVdp~((ZqAiRIH-=X7r|cQ1b&-U zjyz#=UJ;QY9P@yl`LS`4FHE^Y{ZbqVoV(s~sYR9eW$>I?AuNwN5@BOq;m&HbcnrNR zULxbHel)kwfz!a?0UDsiBgdv+$e2z4n=5RAzUL8JO%B9u2ueVH&owHn8+`(jz#5rC zjaMK{-9Vnp93h0Ms4te3*k|xM+{{}1|7F$6I26VKINgryGU+*^n`Zkdlb~( zif0K5>fPPY76~4=O_-gae}#UebTwDNnZn^n{<>-n9j8LOJBtnD_(GQXXSL!=+{9@^S404+dnT&0h5c>_1U37lu4X@-_K3g&n!ofqe9 zmM)O2U*%OvI<4*)GG?!%SbGZdgqM~YZf%|uq(qO1DH(8{@hWE&8dm!vtYV*_N54xg zbU-mrn^Rb*PcF*IrxMMHnSS8VsajC@O*rE`1CDmq|0`U3v_0HWtX^3bFOE;s)~8cbWm`L~MRdxU6wl8TQ|V-z~M}wY5rg{5ZrSgC7bj zd^q@ZKUmzvE;UZV4+9!*2|zM*w8xP}nTm_quqwOCa*~>jBwCCzc7%ak<^<@>kiU_1 zjfj<1xOCPko&F7FE^h!z;RzvCj=K%YjpMN7+(A?>yOlqDo!|p1tx*VG&`;@JlP7pr zQob8UOhYc)dWA#qCnfUzo3js34$+(m-T-M?(syo2LJ-hajSpmSoLdR}o1#X8le)>H z4J=ti{R@y8JL^JWz(Q<04LhuDR-oBt=K)ZZ+ZC8UsNB?iY&IWE>)J2s`;{x;4+YB4 z@=?a~^Lxkpaz}J=Dd;}Z-uW3yX7Td{%ZD%XWUfy6Ly6+=j5gr!1G0+BKUVhh_11PV zCHD)GCtys2&`oEFb$#K#n7Hb@Xgfx>$x(MS?r;k#3+`1oi9lR79*OhJhDF44fD<{Z zzTS;vmN^LbhS6=ntZ)b5P%l9lZu>4rfGUt+AfmMgmX)3;Ki3lGU+9 zskMLKMzr#0uX~C^L_UG-UT;91g%>P@;<|QLhD%?9!TQsPxgBx)SFlP{Ls=%u;$?RA zA0%U{IvT+$-qit;crNo~t-ubRtihXr52QxG>&N#y?l3EYSi(P?Z`FPRiAXf=ukP=y z2Zv|G2!BQ#E*HSnZ-IvA0&miB{SQEZRXS-QgqNPP77xO2psFAs1Wi7EHI4^qlde|Z z+qbm;VEXSD1=0fYI@)jNF30j`5gVz$^xlLIO!g!}NS{zd6cW}qkMj&X16gKJ87FIT zmsa{-K~=b0bW4FeurhP+gxpTw-SNzqs^y~T`jI^1<^{UQ=P=Lh;SritBoi_znG@yH zS|VO%7O}t-0xrRiaEUXo%El;PcdZDaIE2|(rIzq>7?zZEriDO$*S`dL&dms;{(3Na z#9cLKgz}fFFPujf&pp-VVuD0)IAsV8VM%(z%h&n0m-<*N!O-=6flt& z2S5PwA4Ed~b2?vOryT7OeukL_NDu*4xD7WL`h@Q|0_Gp?VaNDQ?NQ1m2k4mf7O$%keE`F&z8D}?sAH1VHkQ=s@_30;2tZ;o zKE8;b;U5gZ5Ie~^zDP56^fLgjPT4R@73K%MmI5AGxaWFxoe3SnYhBi_DAblU!qZ+zzh?pF0sDnj;>cK(sd)dbGPPP7m)x z@;Dx;v7*IEBA-d-clRqDLD@up;?ZZ~gu2pWG{>UWi?dY=EEPTebS}=$tvhBIYvLTj&;;|$Qjzdi%X@hwNZB@Wz5O96~T9X)~85HQD(`ig5F8!bIRPo|@% z@2zYBp{);bw0#Z}keFs+Ac24vx%-fX(fjoEn)Qc1bGUN_X-&oY5j-h7hsq`epL3)I!LPs5@kj^6I z40_@2ET|Uu!fG35R6&qMkvOVR)){O8F)V&wA_*c|QarGMF!JxMAP_fiF=9Q`L%bD=*_LCL*)DX#<+iVKHo zRjaj{DWI-oJ?d)_5qs|Wj2YW20l+m1Dr`*Q3+VKK_6D?8AnHjsJ*r0c032~{MeAV& zADFvqsiyh?3<4sY_Hd^&&Kb%e7Fm&|9SsA<3$K<`xh&U*Dh{#M;QG~x&U`ORQ7ppd z?Io`lAn(1DRBZ8riE{h+t&az<&|+rp+n!Y_3Vx0d&WNX;MZhZ2Y2Wagy9ke*&}yaRv1PwX(AS^s?TtS;DVu%}7hD z_S#epFd(lagD~>*zLRQkHewni^M$?;mM6{gbA{ql1@8wj@SJ7O`@5?e_JY8OI9(`E ziYpSYA7krg%8-1e`$}QO<>BHWH#<4?Py#bJZN=1XYtMaJ_VEM(JYdpqU_VBMEDXI0-7nTD%cfD*C^{H8B+2?V+gU>wCb2d}eNuoY4h6ih_@_|&8Xa73zNkeFc?MRB>rzD!Th>8glJ9*>;Wii;Xsqy!fLjcbC=oOqZ$J1y zyYjxPLgn_}51n)7*GGKM+LW!ly+je645omo9gT1+>C?PH8Tr{5Rwd)0{sek)Hl13cmmi| zGslWKQZtKliB9EWg-loMrwRtd8pp1Hu{_8$;7f0$#JB=(3N_tK{O4-^7nv+NGgM2a zcu67*G9wMivP+cKo{p$4)_Ozl*_(J)C3*=+yG3r8Uyr?DtU=Aw#4u9-^YdfATa`gJ z@diY%P5)USKk^es8fH$A^F(?|zM}k&!byp^x$>d65m}hkzl13I3@w*pC9=9+5%DfD z%?%_N(_n6k_?^(GD<4RVlwSba?(FTLfgG8d9wSzXbge#8;ZdB>y%%lpR1d;rHw$0d zVC$4SJfD%W?>FY#FOmk|Ll8b0|5bLIljsqB?=B+eYgrL`U(zSevR#`Ie-<8hSpK!Ng`Wax;&>5Bedq_iB>0J@A(Kz2~j?6NI>aFniM0_%ZFr{vG zwk)lE&W)ny6PLkUswX?;kUZ%O!<|o-qJjctorR%mo>i&wP$gh-%4~V~M6xH2c@MJjjy|=j0l2T(V;X5{{2+&kYqgNZr;F%?$AN0Nwr>ZE za^`i_5#JK1VtXw<>$>h=rikp)*JAIWes+!g%lICs3J-H-x#GrgDsugjLNWboAx{#B z>Tdz$)it)>Os<%GY&XzB_RC89=erk{Dns1Y#55la3&^uk;#er05mH=i)8^T80lGpO zni+??!5?rA>0_!3Y9kKl{l{1`3F%va-L#Q*x~RJGr)K3JYHK1ds0=Qpn`rN;CLG#k z4!VWVOZBfQO$E*P%t&Lc3v;S0rHJCcrQJl2;8wYo`b*ACRl3)K{(%pW+M9gYm`*ps z_uC(zhoz*XywLKKeVfL-x&rh&r>e6j9)|BD@2jxJk%K?e!0YyaIq`8XMNuyr3)g_S;8<`!5-|Vun zxwOSLRP^BUqN-20`AT(=N>SbZT_&~)0al*1sE^FL?oqfBtTm8m&RX%G!hIao*nQ(; zIuOA|QPx7zz;Sa>xgY1C<@Uc=`^vDW+wV_78l)l*Cn5yHYTzH3##dAG#r_3m9eQ_uZ!sOl(rM~Vo<0Uht2FWI(OmC5!qYnQ; zH7z)Xxp1);Seb`J7hbJfMaGG26>O{e@YqK^gKuoLy|{zk;{6J2d+L5Q^m3Kq%V}0G zU>U>mPQ}_xCc8g3^l{OSgyA!#`^v(yK(>(}hB12vk=CCiMTsC^lGtDK{dVsuC*q!O zJN>#m5R3jLHiGZ=B-sqW4=3#su7@l$2_7mnych=(28}M7|CUc6Y3R<3D}3op_c2!4-jRZ~ z0b~D1tMWD%Az%Ha^<64n#j`)J)`2;rLEZ6D6h^-$-*T#l)R-KeV%!Y!3Cr3#932f# zW=KijvVjH-qbkeMNB(Kj?h)~Y=gTK)_(N0!%KGeP-)Z%1+SoZY){bNIx930%kMk&; zIF>}y?w7{%@Tl=2OE&o%Jqxh`&66&38Y%WRcl;JG$o4Y4QQs9~hHKayD6vtfms0x_ zza^H_|Ll@a!|$JDCFWlZ$N`+EUvf261bTW3)XG7tQuOzs54%$wg*MYE6!b!ypAzgD zM`C#oK8i$nC9^e^6;I?(($sE5ZktnZz{f1a)7)lIQc@BswQBAw1cue{UrIrf3nV== z_ys}d*?`px`-{aMzB?>reSl4;y%!i9*JCaZ@oWzpT;4};?*0%{QpVTJUKu%2USLs(6>bQi5JL;MA4UdjbiNlD{k|CPWWOA^YR&O3$npQ-4G0L}!@8uR;@p5>%WazOL^O zYYcr*V6dWH*}kQH(sv5iI(9h?!-aG|%E z-`UwrYnGqzNW!8#6E#W40gxt7n!FIRzO7unTf`WDz!}h@^lZ9*eCN;W^58ign^PI& zXvy!E+y2MaA)}j{WFj22uk(3}qG>}g`U5>-Fd)0koP1p17v1oot7W#zQap!Mwc(#bqq*C5j`u(-AdsjGr;7?Y~Ix*j# z2&yi(&cPqI<$g?ght3Z;}w)dmQ&ZTRjF-18RzR}F*0d}46y%8QF{rO2Hd?s8$7mo+@@ zlsIyE=H|OH*U>9(ijpiI4Ij=0{w(s_0*DA$BeV;KqCi>9kU)6G^Qy#Z%Y4$1zMRRz82XsX~vzok5Cg}#;GKNOY6 z-tjwRI%L5&+&e)tuU+Osz_zpppr#DHgAHDO8-`uKez(P1V%2q;tJpjzCOh3Nl*xUP! z?~0}THP3E)x}xRfzWwJFn87PxckN>LaIL?OyT6Yp{7`efmF4PA0ZXmE{sh0zRtpBF z#6xHOlX>JQTXgff&)S!N=Dig}>q*PCaurvU9al-{P5=3)Ui%V_RSqVF?p4ozdZPMf zTvcAP*=jgg8k>8)Eg|^R0<($UO8b2`bE=41Wt-W^TjRFOns)y>kHSd)!uF=Cwo3;i zHFwc@wQKiGKcP|I>ubuErUXrvFVC=|>P6z!5EqifVk?lHM;E5Gp z&QH_H>v_HZd-eXZxBO4pAauinX-BtJbyUz<2z~iW`yV&%tE3qgvk%U%{bUUIa@##; zrj<$ssAkYPd0KB9Tta8`uk_Fg`yPA}bgzExWV^0Sl=al$(J%Ls(nxe$?{eCN4gX9%b6C;V0? z?!ZBCatrRI0*LKu+GFMh1_W|)AYS9|w`cFC>;7|f;eo5mRK#UH;L+3K@8(?vA%!)R z{{j3cP6aH*W{U%GtKND)e3g(6pPPiN$*vSog@(JMna2~(H0&2Z z-U@j34uH!TG+NW4j69fNf&CBYLJ|P8Lg)!V%_b;7D`-W1laqlU$wL@KIzKSYK0ekNaK0MIr?$PZhfypcX zb#Q@!(6rdq9=$QoG{_yB2K!elb_)Y9$b)9!*?5`k5euJP%_O5wKti+<+Qu&ufNZ6t z^f~}`XqXu=NZ@Ob4XOi3EC^r%U-kEY8pgo3#)6^t7T~U6zDZ?1K+%0CGTaB>(EuMD zP*o`3;p0{40x?K4B*8Jng~j9xFK(LhhvU-NI}N^)qt)ws6EteL$rrDfp|oqz!u}8h zLrw#N67q9M?qd5U>{95-ur;>T6=f5FgQpU-s4!nDJ)ch zYTgB?S#g3aT6{7hBG48!zR%(WIXhdxebPfEy+!t38|;INPIeJ?-$Y?Q0ntfQ6d<9p z0^4@7;K;-69Rh4BRS0|daR4g4rEl}F!Vh@F!vW8qKj!c}5~(Da0T4IgTg5((a?{%{ z-3M4#qtF6@Rt1>ndKppit;MXVPOC&-CgNMmi$);!{xUn*g9rOq93{IRkQL<6HaRGu zOt-y&0-lQA0PS)S5ZW9uZbJ?Lu=((W3SSa`J<5ogDLnjhF98u!b(ok%mzo&D8f3WP zQ?4BWWL$6x&{$|n=)M*m2SDQMUIpCD09afB3>FK<5jT*B92cfUAK>vMrid{@=cCOSPY%G(NSBz;Hjre|-O-mDA&89QkA}k5-5%dO?#rTa)YWe6*_)L^G8ZMQ*I|q6c5EMz8s6Xoy_b|Sh$;NX|pm+!z8!ns& zW=0Z13y^hbDTe+AA1-9h))WGK5mI!YNQJ--Vq9GMRKSv1+JQBz7GD3n1TZL~*2=uH zD0Ae(Y)`V22IRC#zVE4flnR3d8Pla)DT$_SZgdPNN(4l?(-qbr?^A~jd6c`#Qj&;+ z_1!a|4|H7ksABMmDFY>&6AaO}iGuU9gMj^c0UZC|W42Tt+~8#?lE6@t(W6I3rIrOj zqU&c3()t@#&wK;8L*Ic1wKhvJ3Ltgc%fRzQ@T8(oLsBR_dU%L7>Jr>BRm3;+rn!$V zADes-M^Oa)Dlx4@tKB3GE+9D)Qg| ziNRx(u1`DzNZimPkN%jiT9d&~6eK&?8NXl!0rkFdsI-uHWpA50c1{u|k}>YrRE8`} z(SIP?qf`+X-*%A;QxSmC@&p;Q$UrOWE=>mX`dLYsJxsKV&tUYPs{7Bj1#cNQJ}?jG zy!wW(AA#ky;UEzp3HLsjEnbMOPv5oS%4b<4O=#<(DZ8j6Gv$?ULX@t;^iEd zA+#m)@&dzGv=B(Dxq4x&`3PLYaxeXpvN(l>zsSFT&T^IR z>pD4@iYM=TpYy&QKu>4YLi=+{^UBe4>@A3hoz#nMlSFxfy9|<^Cx)5+6>#$NXW*|0 zY=`8AO=5%_@LVSC16m2yySV(M7(x`JG8Uy^*#$T&@G6h{P=tV3omL^_US{N5U%0s^ zc=%6~@X4y1!Q(5lNb$0he;I>4?>JobqZSQHk}LMh#(+n zn%rF-~7)!Bb&_O zd$IQ9zLyFLu1cUD`6ZF#_S7Z}r&p?&*}MzfG&&#Dk>r@LKw|h5<;bH(I-?HAS!g)G zi@>T)@z@@<%@jNC!f5iNi2NxY7g8Q`OB~=jS?TcOA=UwcW8ictwP7VS!G6jIHpJ%^ zyXmQr@rF(AJQ(oUb(qx1ljvb&cQadZuV|zP@e3Sxv&q~N5@1hkplEz_-nuv!iH_NFY+EpIi{uUHvu?K zNE>7b1Y2m`?@e?q#ah}6(yD90HBl1Z-Ulh#GPY(p0(GAXq`}gL7=aT9xU#DAAKdF8 z9wPihpmv%Ztpyn}2e5G_7ygSz*xMQALPgE0UPmCZYR!{Ir@$k9eNvH)2YyhZdqJo9 zmw)>}|MBX6l+-J%fOoAsn05hE=AnFuS0Es?6xet&MQeFQA?em8?EUR$ z$&H|3;1w?c#5BEJIhNm*sk`o&w$4>>@+ z$>QImP2Tly8euVVs*O&)hZM;8(Q>%-H*R|rYk%e%tGp%b_f2BCtX_%OuY2o z(JdcO9q_ATLal#DMKdAsX4*bNp2KOSIn$oh*7>+QSq|(Xdz+8nJi`o=FcZ~S2W8mf z+ltI=m-nGAMc%~f_S;TPMqs0LfIwG3l3->o&;|V4;56?djmYApy81!~10FVHK%a*4 zKZ%kh!w_sg?#2gUux^FNT}bg1d~8E$^%xaq@{4+iQy{0kyxyYy1_hPS|M8k}BR$m> zmiXU20kX(oeEizz{)Ykn^6dur6aTZvmHn@*mW>4Nb-<+=UINqaEzmafX3|Do|2sZ> z{EswrZRRD|nOVr+fxo%61;|lK+(3edPN~`!Xjjfnb_!kv5Q9R}4c?4mVIH8R^+I}q zUDpIRtFGS4l)C4jZ`p>_TFTIiXrpn4C4RKGO z2GpDDX%h$ZAYZKU@yCanSjiB7Z2*LkrK`Txp!}QmU4)qD>hFL&Pr>KEkiHuS=S?0f zFM+ih3x*4ZS{Kcq=Q(ZD7?t<-Ham6;0{(Dv7u@v-?dGMT!>-X@Y)U-f z-ry1Xc^!lc5Z+I2pFvY-<~1#2$(QLWwuvi8YXk`bo`Rvdd!|a=BccELtVGk6z51g#tq&-+E4= zkDxn<6To}*HyPqJKyJrtCYr^H-?)PxwBom$ANUf|31qtTuMav8KYr!^`KGCi^z*9E zPZFayrw3q6I2(BZesA0+)5Lab&SXn(<0!|^o42yb zq~h52eD%S~0)4flroP3UE!AKo;13g;Q4TRU{7GIV>{?A64aqe1ckooIfACQ)O6ly{ z&HN)nssXyau&s^`KG)STU2~e5Mvfcc>f%s+-fiX|6#!V?T$eAb*Tvt!J3R&)-k;87 z7<&vidc{mJpE?&j&pH`|Wf(-<*>-i1o6O;@;E_SzB`$JMmISs?_v@Ue9zL9eM3Fz2 z_P5niSxFwK?gJx3K%8uJ57I$@BhyX*%|bXyAK!lKODjMlE*N{NICcTX@ERn`)*k3l zcx^|eBxe5szXQ@~*6xX1u&@9CpK0RLGev6bCZY41KYMu-1O>ETZpM{o1m7N-eO~bx z1zpOkdVOMEy*W*V57`j2HA!sQL@K|XbUlhU2J{sXy-?ZAay88ys=&X~F=r*M>}m8W zO$!&+d*vPKrlnMl#jirTnqRh!PPg>|VNQ+VoSv~eYJcpz*wt#)3p~MJ?~Yo3;?lCD zD2~g0wv6pk#2ot5vi0k1M2={a$z`YpL&qdQ$6M^9G*8UlI>XgMy!^Z7?-1^c4kk_r zwePQxL|)QJS+*u~Tdt+L&ufm)(eP+G?ye4%Tr}Z~nQ5lUO$wrk!CoU_O3{wfGNd{m z_E}uHbkDy?`jsEsWvlsrwMt-N8?z%Gdw0W}=Z4H>|0V>LMEy`etq*FK?@f~aLmw1A zsZ`Y^hsyi{KUj8kD{r@oS8NjaRDUN+;ad1EzGD9nU@t4DLdZCvsl;xx8UGKAZ>rdS z-7+$xcRRtM@4rdg_6wLr8EGQ>T+0{tnO{C*~GSV+i4M@-Isz{8+e{{yYnNWEpEd^4{MhOK?mMCnOyw(by`151&11EdEU4HC08R^b7pY zVpJNAVjV4;u`dX}_Cuk{q+_%14LXQ(GVObz{&rt`Urdb;r_zu6_}uR zOnFzWVTxhlr4*?<9tE-X`9d-wpDt69kjSrV7U+$xp2*R4b?{<|N>fAJ)9UBLV|ALw z;8fqq|70CRav2!sicv59E_s9`{|HqgF&{e&?dhZd0mIv?70*fMk-ukAuWv#`VO%y( z)B=8mpeLiqal8AbJ@OmL>~<)gg&x*6C1&*=Mc}|Bcp77$OQj;j^@)jqeOSxi+=Ss} zKyU_Pv6wZPeVDnLbF zN7V($XhkZ-{XfDB68M*gke+KeRcW58et5c>fXeI;qCF-Ho4?0q!zgOqI~hiM5>9EZFTG?MW<%?i9!JgL&e#m=bS9@ZWOhx6!j<{I zg|nn8{CploBum!B5c82GTr|bdL@SzO_A#h|oO9%^KUOZecMeUKt?gmW(I`P#B9(Dy zWoO5){;h=dQcpIsq~gdh^fo1&xgs%-qteKhP`L&!*FI&lqqAj%Pt)t-w};~un{5-W z8_>|Q45sBA=U!pstPHm!z{>;X3kQqM;ND4q*%r54X-u*(#DVS z`l4AVZU(!f^as9tEz<{TU6oY2jl3Of9Q^CAmWLj^lU|>4tHkM6llEta@`=^fNOY zlXV&@k%~C6Y3J(k#1r`qks3;85O&C+<#^-J^={lvmbsN?`j?;$znzdRIXni#!@^Tm zr9<0ylkkFj$~s@Ca}Vua;TQh$BJZd;kV~8PWmaDahn>*zc7Px2Wd$=_=e+Wa!I(?2 zwn7_g>7>R(K|-9kuG;?;GQBjWps!zjWEfZI+BnQqOBdNs;+LjX5O}df0zbcr6purM z^CX@&>4_Lrw>?{lmS|3UH>#60%QZ-)H77i*$RV1|tj!ltjw<{+9dW5Mpz0CZ3-uWI zy>kK`M)DI63+B(RcdLFx04ohC8Sv0)63G5!VjqJ5S z?cAwo23K@S5W~?B67RE-zt&wR8C?9FmAu)L7RsvcAl)|Z&Xik|;4~?+@H4H&a1LjF zcf>pm<$kE3NoUNn<{QY;+9S;n+I~&e@)*T-xw$upQh$SK7G1%K3y-BH@5!%_!u<(W zWZEYfIyha`q*8cJBrqO#ApsIX*bJ(bEl#WT&c9x$hPkc5sI-lTAS2?QImN^B# zijI|G`kj7)=urBR0;AE`APiA)65H&X-Al^FdklAA>v?t0_7;#5@QopP7vpLUxoX!k zRGi_L;KyL<_h6~Co1eANvg(?TeNrNwS6KK#FM`m%FA1sWX85dQ|nywyF$h!m;#F1&h%mA&aYg}ZSX_lJq z&fgo@N6I&!LVReTClWSt3bp!md;9g#&m<8R&&gB4&U;kSu{vtTBA=8m2dmvF#s%3) z=frq{Ld*5@Nz}3h}b?iZT>CzX~Gt=*o z9!qn*cLBqJtEt>mm#KEGS@NLftomvtVV*NE0!(|-jzxXDjCsZ~8|%LEZj|rv(ffW@ z-t3k>6u}j@UQFg8=(zXCCl@_XUa2=8XPWJ*YA~r9O?)JdF=qal*2KzW>oy6$UK#v# zx9?97);c`Ntj{1z%4WL4{m{kdrxt!0*l7m*0%)LGN+lCWZ-lr*5xaDMby0dJ~s6GZ;OGe7DVh&eTAvZysVh>cLGZ zL(5_Q(IE!Zd2~4Iltw;+k(nCD&-we|vY9)oUvYojK394y7GY`rS9#dHT$Qtmn!j_{bomMEeHy!;lBg3&x*ro@oIbd#HdM#7eFhF4;cFOkt z)!s0)y}FoHiLF&~%w_ls(B>$9Uyee{R0Gm3 zmU(^U&lYTb`I3^{5T4G5L`;77j--#$GCl=0`C~DsO{v>)48&MNZ?O8Li0oW3H2Jvs zz)O!>mHi;NJ#L;+ZMd(VV9J)TmQlnFxE zs0wGAK35xv`b$kN6Z}j4*8xpba}dP*#;yz%Vlf$4_R?#Ns9Igi);(FuIK z^^GD1ER`@VUtjU8KG2z^o)Mjnr(`Oa81z=)_>;>-$Njm@P0cW}tp4bwp7Ak?VAC zf0yL#z5XGYvl$jDPEb^ROr1A>`Hlw@q=CfVSRS+=D^1o4x00gIzUSZ1yXedFFk`1~ zXb=pYBB*!eDx^z0_rSKF+t$=;Z|gts;M$+QvN(RT&H8tMp$tQZ`u*l=f1b6>4(4#R ztytoKWIS(yDe=!4WR=c=1Zp1lJW)9&3mex{o2F+f4BIp3jlq7%#%=Nj4mp3*w`#5| z^&F%>(0VG!Z9baZD9Rrs5PV*=jN1>G z+z)=-%dzR|dYd3sHY&x-gY8jt_H6wx5}eU=(#8BJ&575Uj1ltD{idd!^*xyKH;EAA9R`O>=#fARv*m=XeLHd4_&;-ZF|i zlW?yB10KX5Z?%HI`XxSC_GYU#gYnFur!sUn-JpG+Dg0B|DL%_t0ew;}6}5zPI|2p% z>HX`|c2oC_2-1wW<(X(eY)lZU1pxQm^&R&#@X}W7jKugKM$;!=0!(WGEML9oG7HsG zd*z+LH{S-N=08RJ&4Da2FX9<09ER!6pN^X`PTRkjd$JrDz_Uu3%?*tHtL2>YWfu1_n-R*I( zTmpL_VOx^SvxMlI>~Zi(bcwcl_CM9*9ba36>A3U!gj$wVAJtX%XrB}Fu4`D>s^tGg zX|Z!uHr8Sv_&F;IJ3NmV#ih2zyh=xC!l^;aXiO^g5M#9#aIEuwn`jYv$+4y`5=T`G zv8^Jo>J>%p^J_Q{!ndAu&W6YD0y;C~*xbZT0Y=Ud*$Os$-fUE7eG?}06?xaPAuG=K|^5CJWSNn7i`QW`p)H7 zqc%G~0YD3@m-U?&hH(gDBH3o=gpQERoTM8-)ZaxD(Em-5BdG^1xJhz&vas_U^p2t` zLr>oVm4TrT2RNsqz4Fn`K>Of}jzcRZswRpK2xtc>& z)c2m#!9Gv?XcoE#aFaJ&H~7qsK8bGoObG3=X!)%9+4a4wjzmmBoTrj5a`7y3 z=sPL(OdaYEy!G>xC^v%|NfdvA91{hbj-9^hpxp&o4@ZNQ<5CzUFdD|pzcJmcJ+PZM zpeQH!Dk@_eKT)z) z4v5#S^ef@c(yrI@*ei}oIcnc6klL^f2D@zNmAyPbCkG3B=@Kv{f&LJ_0tPjbji*I# z1}x&)Ik#YDyUUcwK2TlM!zl}&Z?zU(f_QsXZ{wWhbLAIoe2shni!#IVs&g3vfL8GH>vRs_IVD`!aH zn1g=uCehRNm+3lBF_gWLbxkp94*tpJq$k_of%CVlzh*|_XM?7#XPStM!!xRqo{oYA zXI$KIWQGx`&Gi3J;#6U$h=20{pr#@e$C(o=BRYHr9*yKo00=HL`-z=(geI28vMt}} zud2!d#Xjx0?HzmJ;nb_kyXu;clKcj2lGh+Qg@sx7Tq%UL34)UUZyf69ehCnvK75St z5KnrQlxb_R08b=17|crjgkzZCK2}byj$#Lz@fDDgfsX2siJE0e`|n5-HW>}*6y}6l z0lm?5<;^L3%^&kPo2Mj+m0tU?WU6RRfPa(fb}^#=_FL%g+@XM}$1vl#zz^kD&rj++9Cz+1K`q>wi63pB=r?(&N~W7Y1;T3U#@UUBj?dnQ_zi(&yB|C{2+F zLM+slmmx#1{(L#)5d8I@~)M7~ozpB0p<|)lncd`{m1-m7}Zx z;D{g>KlMdabaAasM2Vo=JX-C+LW;Jxq@N$E97-QKGVeWUfyWHCAGXh)MZWhufr>x3 zSuvIN?yp{`LE-1>g-@5D0dLqViL-s_NJ@V+4E0k)6{;eLV8HZFT(}lF?kLURX3@m- zd6likmK@rW)0;n_vsQ`I*LW5=&wpMGk3dMii9n2O9x{-gD`wm92iS=DDYuVQVi2M0 zpdkcyg0k>p*y6lnC39Snt5DN9tEFagmWoq94S~>YX`grKgv-ukjOc4 zOip@a#r|gK*pvH%e4}6gJGBEMcaXF7YZkxK?~Q35vyj3M`g2&hz}7fr2(|DSZWiBI z=5H_!P0??{NeuXXmfnnDC6uI#2JSQW?wT)90#xwDv@f&_GvyW~ zYiMP0J{{Qh@1c7hlfJ>vuCBB`R#|#>@KI6eQ=GQhY@Ba7!;@YpNCaXTePQ0Bt__d1 zob&B1XNK>jZ}&oXG$J6hHeDLQ6Sja@P=WDGlYh0(6|i_B_lQxAEvdSzB-*1Fy7$_B zWieODJXO>{l7ywo5jJ}C8B&Rd0jKM|8PsWsxF_6R5Rx3VhDYm7U%guA{G)cN@&xswXeJ-bvww21iw*!TN!R z==dARSmsxzL7ITtSc#&)$7qyq-qCz2Vk;vS4%L2PFaXt8iO1ja*l&as3Uai=nnO)o zkSxWb^1Xg2Y$L$>XZaUl1CIPK+5G4VIi$2V>+|cLZl4|#hw@)oi}kOBoEy@$Ki11~ zZQsd|3Mw(3PZxMD^H>3e8f8fU9nHzS(XrsPRe15!*TMdc^DxUfrajj;9gOf52)$i1+Wxx;g~JBR*$nP{4iB5EQqV| z;VwRRYMmFFsR;dO{fB;u((thO=^!4h*vjwZan_j$s7@Vz-g}YY@lh`iTtW(5E{~mG zVC}q_eQ|^)P0NKPMOaBm9LE=Vr`Bsd7Xdz)l()2vgFH)8O;!u6PB1FH`JKWxNuxw| zDA}iO7zNRc+iaGROT*$r&IG7;iWI=7Xn3tE1lX&mRfg)JTJ;TC6td;bHu8jW^Ao;} zt(9B@FB_`XRlOK&t`;CmY}^yCw!pT64&$3WP@BZNx!1w3Zme$AZF*5Yv*JBjUc_0t zkwZ<6%P?E`a6sv8kOvvO(GSk3JrAvPoAHl)0;kh>0;@LBc`c&H5yj+_870)O_-&QqblO>p^v$PK@O#7B-RG(4I`O%M{ojg8f*o_3jpvAtKH)nP;qnWk zA94u~Qw!SJe011q7^I<>n$`Jbc1GztTS9-cKw)lM$7}QHLKp@r4o|u?8!b7Dxx7t9 z^%Z$xqj1nvx%%a!RP3jxf@wT{-Oa5*)gTj&E$A79Jz^7-5A<*&g_>dX)As2q*ow(WVP z+w#}SU!Z|A0My8p=P$r6>K!tsGMyb&Ud$WBIyp9f_Su6dopw(`s|uHmDnnsBB|NwW zKK1p==^fX>j}=2~)8XAnn8}-_CTmd356o+I(`#2wp)nU0qC5-l?69=Uk5s^|>UeX^ zV+OJfK%~=@^dR&<|FxKq{QvWR;N*dz3))*&Tepp*+6JMP^MQ)i&WE)EU>dmQTQJs| zN3N^bcNU_~0fVdQac5BL*BH*O%T3U&+<`%Z+E`Z+dWYDhb*{x-mbAV+`Ht6Q zxeZtw-L48=_Dhgi<8$uxDZC;oxw+72-f*1q%@fS!<+{S_DxgI@ogl3KlDr564h8)VZpqblP3 zv9P2acINf#IQagntiQ>J6Y#>WfzXx+AbRo2w#hI6cSDAuW7YcYpSPqYUK%>V>dnxs zI=osyPz_SQr3#(C2CHTk*KW0_yrv|8xON~IcLF&Qu(J{Ch)+st#^5|4BsWk=jXw=N zkJCP{BpcB?4Ii!?}{(#wEK#vwB=G7QCq>-U7IZiTBG!Ypr4I^lh0)LoP70G%#rKJe0#@h5is;+ z5@4y`m9f_E5J=E2Toc5J+yml>_x=V>q-ln*w^TC*lacChW$4*z38)3j1|SCT7L2_% z3z3vAdn;!Izrac3Jw4<$t9PRDkS}-$(b_R90IloWHLn?!rBGFEZ4ebS0YoGZYDI7Z zeoK0pa0!M*rR<0^N|!deeyvnQ*|)?obiMqpZ^+nG{(Hs4Q~k(a4au9?yYFw0o649y zmcf?}>~n|IK8qHB1bZ5GQi4W*U#jKE7d%af)C(QYQR@u?m}aI1u^=km`$|ZmwXyW* zKLqj?qcV%cQxQPX_GoZMJaoUAm8n2btXH+{)F~hEg$PCA;~`Kfw4ONq)ry9MDcTe% zwrwSf5LZl`{p9#AkO!-j&Xv?X|51wjsT>O11c9p$@1q>IPGJy=ILR%p19KF@-j8x6^s&8S zMES!j_!titk}Y9B8V=bz3~YD;wTQ0u3i!|-wj4A~2p`7tOnh_1gSv6fHvnFB_H}YuNQl7f?sA;rnr8i=fRm?_e#!sQ6Q; zPVY?yYg*_gHG?)F0Eg-6{F`+^Lynqpy*Ie_15~)p5mM-$?>Qk9G-?hhtk5T}!h+`m zb& z;r{iYa%}MDt*)Q^L4@ji0(gvj-s@VX%wSly9U&>CFpJTpM0i71ontHtmAXiu;EvGG zeE>YGQJ+!hUxp_1EuGP=JR$&hcfn?rEa5X;q3z@}idWf5=KgZu+9ZxuU_`J!YVJ5b zBZfU*Va?g)=ByA{1lUAv_3H-q4-V2~+GakWIhCn@wQf)|xc>83mbDxZ(W z>qMx+=;Ea5nu^QF_!)|(q+#{AA0z4Wb;DH2CbQv4CQ zIGn=j(6MsZMmsBsk!4lgWVZL6n$Qk0e?}9&zBS8wsGDw;91vu^T2QO^NeKoQ+(!yh z$=eKzZK(@TWbHTgti_Nr)c`QlP#=D9gTrZqzdtyu&U5RTxco>*+pT8BTH5Z(=!JR_GTJkj zSazkLLkdj01MRcgHUQY1@kufc;guG1ce@n3;f z5VL~mn|^sFD0zI^%g|mKtspC>hWI=bStV;S?O@Wk*GHd8N5h9qvpMJVEyT9HfZQkj z&(s0;=*uQhD1K&<)hQBHoTf@|fJsa<@lErztd0qs;A=JOMp>$Ablhacw@dU$t)ImjB)i;#mgGCHrHmvLeZx-mr@NISD( zDS&Or@Yb3_7Kx^+4KM3hYI>e$PyN5C$x5(|?V|gY=v(QHQ~JIyb~HYEiSeI%1yA%u zoa_()&mSs!p-lbwZqScY6}+x7#W&~Q&2RIU1G_>YW_&x<*T#Hs2a;1QTm^j!o==^K z_!KSW*ph5APnE~;s{V0bp-%9P^t?3h%609^4#3Vq=ou5O_uHSE{L1)&<=0A276n#g z?E}xrKdE;^fnw#6^2HrnKf(Q%WD?pEZs_))p3+g0d^hv&r|avx`f8%EH~%PUd5^!v zOh|4(&%>a&`1Wsz-9e2pb!a0iBV^QZ5vwXM+ilZIZvyjtvgN^3Hg==!4sbSFV&p4M*y@9!Xf8o zSXkGVkFKt!ZTp5^{=&4NKgMPqZPL}bpeXK=R zU6g}?HcD8_ykU(oy^cRjVjY=jL6q>T-gzpw3Rl()h|n9)G5Pwtan$zQxizmKG3Q@a z%@+!6D;;mv-|tq4ixNP*$IN%*^Oj`LTetdU$i}CU%5&!Ro+JvvvW(YWpL}~Pbp#Xs zdL#QirOXx^Tw)(=G2to#kiwG6PVWn}O>#jubJNjlzGtSpxGQ6lS;wEx#h<~9z(td5 zq%AXZ<}-57pM2Vj&3O~IhH^Azf!pI6gGdvJEx4Fpq5)>9!*ijr>`-u<)Eih%2!c^f z!9n{s9f){k)ND-KSoxop)e}uvoIm z%x~!k0)sIq6<<2fGk<|+U>#68Bi#=duz|*JQVWoX%k$62+;cxe>{(f>Y2F^~iu)jS zT|X6QrfOdj{v_&PJx;$!INchYOli^pwIoP?`9y<-4C_PbC)$ZTG&@{sX5rGR{HD81-4k^ zCEM-P7*zD^>4%T5#o;`F?RNyhG z+!k1t+W0$$+4MtEXRxb7W8p>opY{8@w+KCJR;d{i9@N&FesZrxW$!9RR<~aQudFdg z#IiV>){VmkGHm7U`aRiUPLia!_O8xFd;>-4TTNW|84H9t5V^W?gIs+5(PK_WUZ1HGiSk{63dn5y(=L)*Bsfau${@k(3 z!!z6<9pK_aEk@>v!jGt~3)*ORuq`c*eObo*YCc;#?+P8}qQH_bx zQ`|#is_%47aD>{4S1x6b>Jh#)Wcr-!$5Z$Hnnwt98F3>SKay$b0e| zO_|f0Q9Ga=-1XI3h#^UCTQVAqSXbuz7y=dXF?dnC0>8)vtZ^W3oB(8G4>}5lP#V!G zk;_(W*g<)v^1y?Jnr<0r72slEHft1Y)Y8X{qZ0K!0rUGGGah!7hv8#+$vo@{N5@Go z=s2TXAJmxI5`+cG<*YFy0S~i2IQ501JB&8Ac9|8;-#i!9S*Obq_EzE_Mtk7LWPrb@ z@6gPue_2C^v%w(N4#s+$+1)%(z^Q)%P-Yy3!<3KZo_ro528zoo;RW%W7hY2gb}o?< z;qhQBfqnXpJ4#ah=lm&ln9idk(6SF?p^G$0vaV(*6q9$i)X#uwoAbz4eas)!=lm9M z(6EVwGEcyB&wR9Vhy~CyXhtH>=-=0TumC_-s>CK*;!xSDcgpXBd`jm90-62Llyw2UIup5>&MujsS++?F9tFMHYuD>dOUmT2}lH-V+HT#{Stoxj4U9kXUSDD3%F zbafW?&I0`lT)Pk`^8mz9!S-JVld#o^FqUVQS)}!rBsTl(&EGySJnfU^bAY5+#7*)L zH(c5$9|-Djzw6}1))9M5lQJFfxDCI z$_;O`I$@GGZcI7rIt&WnPN5R1j1OM4uKE}$!qPzpf@3N2>)qow)5vy{(V?K*nTq+H zeQrxYrR89%9J}X0V~|L<0(3e)4;9hyncbRV2Vk-davFFZHD&X`l^OHZTaGSTGyY)b zj8(>O;by6sp;LQJ0l~GYiiMbqnEAJNwm;0@sbKY>_aiHf4+f2)=KtyjnUjt9Icnpi zVGl#1FHuil`H-t^Q=$a+bE671PD_m{L@d`-9j2v{ZPcK{5ja#Xt?v*x8MrFXTi~S~ zR#?++LMdk|_>>brWU3Gt$w)b;kV1efl&ENZw&;>4bh5}RAzBzkYINh8O54vAjVF<4 z{8rnbGgs||cJRaF-h3Xi4iE=Q#vCP9%__tP&U)HcXG8SQi3Mz<8$_2Ch^?wD(TO_F z=Z$KFwS1KM(sR`E%Ga&)e`|gNTVLMvy38+HW7Xv(CEWsYdY4(5`FsZq-a()N-{U+O$*FcMFmkLaAL&MIQxuh9Kzp&*{B~i=e4u1JjUJn$&7ANR((_my=^r{ID&v0} zd=m##;gMZiRcT~oIq7kA$imbaJKEuoLR=lkNL%#0-;GK_4D>6j*QItT&oBqIy?2&h zz}efkQ&=(j5(69=YI7wjG13eck-?4=72u@WOjy|NlYTSGGmjcHs)rp>&6Iceiwd zbV@gGpbW4MP0!qiANSA@YC?E!!rC)fA4LBnM9z4@I>e|ajc!c?RKw|ZQr3M7sYBMV== z;9ihb1`$;(D#ug&4q|(}XQE$+maXoOINRY7EhKX=6ll24IZkL5i|+oCB+&FH{m~f* zlIQ!A2W2tuqzdxcV?CLp#YcW^LysQ>M2$r;OoQ+tJQQjjrpUJ}DOV*lvn&^_UDPAS zV&vdtmX9=dR-V05_YsveDjOx6v8EpWOw`cHs_7Et(50Oi37;Fj&xnoagq_E%BWhJh zT+|F*K5T2|BYqTynv|L6argBMsw0fu#smNPWpOw3?k)%(X4Im65fcM8X`^=CK<2S8b@xG|=Ve2qRMoM*&78BO9S`kAp& z)rbdos(eBzUj*m+Vz5kHJu$3(!Z#IiSp2x;)5-S!-7}K~ zfvVg`+2Q_*1G*HUO}j5Ns?}93n;z!dm~oIk*{3Mktv^lGlF+2Clp=-&E=Tq}ljPSj zoX>BslZAxjyN7uzBwH6WJLESnTQs4`3h7=xp*$5z7}js#GiN|i(iGALc`+)v*%mer zJq6)`&5vgVgN?E142@(o(mZXR9Piu)<%-A7XBOZ_Q+cZ`)~m$oc;p-uwrM3=%-W*< zd_D7($9KHhc#*#WZsoYs9`vnsY}V%xFa3aPmCRpLy~ayu^*T%StV3!GPS`mRJ?Gnb zbYTRC+u6=Sfg|B#OhE<_g}0S``Lhpv7k?a$ko2D&=yTPzjb`+`JV<`v*~}q#-&t9* znvZ>DVUOCwOwi<2avY@<5r}$)7%teudxJRGz4@0G^=C$tAmZ$gt!H#S!E6s&mfgPv zH!-VT(>^t1jNyD_8496QOM;C0&l}&}*(y$B%1CxoMWlD_yZ9+;wwW&2)Zv)euxIG` zCKa0{521olzHt|#j+QtyHEmsa*4(62pQP()^BY4&S!Jf=$L$~XpB|P0RAX$~_m$o( zBsQ6;SnuuTqLF5aKcWiUv|srM;U*FU)m7GK-(cdfK4f2f+x&AF;w(#E z&?aR3qe2Pf+I)YNctBX^rzGG=EcQ_J>BblF%+W$AM~l674bSfwG1sEDmks;@U2^|BN~g=&D`Rnv=&x(?9%fl6>!vDY5ubeSa`VE;--$Qvsc*5pY5& zNTDb<#iK{Zi+S4>3n@|hi8c!(HqA&YH{svtY1z5SwjD)9-yBNiPH%+qVCKt`FUgKf z%KwsHI)9JE%2BwE-BhV3I9_!Jt$`4Ela9`kZpBg;#bx&(vAZ;z#@Ra(9`)DmPM^hs zrQUtE=J4d@fj85;%?y=iRO@)W35t$G13FPgw*QR0FaDJSqg!2?Nn9{T^#IG_%je2e zJlqjp26D9G8*RxcQJc?n9nc&Hu&gSkVSAxtq|pkdJf4=fB@FYgy|`cG zto5&G9$Ak{RZ4r6+je#j@dLo|49XTU=1$8JVnCmw2g5BM-h4B>EuXX@^VCOd(-2kR zk7vKIhc+ZWq>d&z{PmG!Cg#NUF#mV>NUY^ZlIT+*0zP~KJ%mVSgoUHI4!O-MTQ$xe ze3J!wgYN=TK`sfLN29XtYR<|FK}_*={y54}+?(Hu%ITek!o&GZ-hJcTpG(#-^KD+x zA9}*)%Emyu9~6*VyfuYGIA66AG356;d_8e{qj3G&Mur}1+${c~E)VmA4-dY0KMtI} z0lIXn>}hpT`k<{U>)|7RTNSzvLY?m`0M~4H85tWUK z;#M`!;!Nxi(c!P~vG!;SOPko(#KJ6DSJnFyU-L!UH&yz?pCTpi5z_^u?`vidX(=cg zB88@6ERS=yP)RIY>p1HUOM}0mfo7=T4~p^o*{WM+EXScswSvvd#uboaSL?p#Myc1- z{h0_W;r?iYkC_?u18iwOrUc_2v}_d$jp}NME{{DD+RSpMRr?)v&O=@VLgQWOk@Y## zVcGIvI50PLMnOXO&knX_7zN_?Bx$}z?l|?YFS>lGR!}UP^H}GR<620}-Q0(%`V7Rv?VK5tqgl)MZi)Ij$S5KyhxHTB?*f=BG!PMNw5d z6V>5y60GnJ2+;2Bv?|)#+?INDv!ed6+Wv(O$3+)Qf_SD}mSf`W?a|I)^?HZT5qsRy zS;W)kcgaWpw9$U7?Bwp)i9GNNw)j}iyJYumK}7B_s(65}XON~#LEO|^HS@RY`OAh{ z&x$g1;hxco^#ajW6{i)eLF3cMemA$9cf)PW@RmcPOdJi-xS8f`SXVV{<%Nu$rP{IP zetDgjo%l=!C0Y-^-j=hAk}FjVj_;@)p-WyqVNiH15u?b$_fH2+;bmAD{?^9*(+c&z z#WAm>`?cvcxe=ozL5nwhBk+i|Xq(G0}iwfqIUvM?ut0Uj__^ z4GZjeE5B^3j+H(N%!^K(ET1$h;O>>>6WhWG&NUv|bGdOoK|YQ8V@ZpyUz(C?(^RNp zn!us%^Ny$0PfL#X_%_mYTu4k26_~Fo-oY|ql)1V-n<8ZKtOHds-XSB!JSt5Il(2u0)P3HdCzH?P%e7I z3ZZN1-qW{UQmDA97}Cy(gz;XXrlOUwQGDMsQb@%!JrZMw+Ko3Vb}*2CY#W#3*ZBwx z%S+DHkiX^+wR<^yst?^Nd06^IseVUGKkgrW40_e>U(Mq~&SU<|J&$_0 z*98W{_n!sf{fs}=(yd`f;!pWsmp~WpT%V{PU99gK;GYjFp9?10g<||WT6nBEJ`Ej_ zox!eKF&V@qk(SkQA*iRi=jk^ECYP z5%6mb59Hq1VBFO3!Ic9(4+9;x2VMMBd-Ax!)b{)S#h$bxQQR2a>EFPrssO_JU|eEJ z05e4i&~CSH%dHscWQwTof0_Up__b2$#6E+jV(tEBs)>>1`2*;H0pLGXtmuZOsGio-CV=RLry&M>-~`y06b z>(oU$=S_L{MINE2NM+WYen48luiG}6A>f~0JODL;_Qm4n$bW){6OBg_jx6D0w|Mte zj_b#OgqQp<$+&_Lyd&`Cffvc|=L6@43$f<@4#udV0*gMyS@^ukRS;mE#Xs$Aq&4#9avPl1Zi-Cc__ji}rR9;3=VUz&4HUxxw z;8a=<3+mPTUf|n=ks}9+N`4&SLs}*H0G0wOU3+hv8hFO;a=!t&n7sgfxkbOA3E~F^ zm7_6q{(ew@40dh>)E;JWeZ)B}L?6&hk!v%RZOOxWJydGP1SbJ;rzH))+VoyF1XhRb z*45-h!sOD279u0T@OqA?!@v3feSQw&nF{R&V83|-aGyQys9!7Y4J;u^$t@t^;RKoqeat| zPL{cz*qbgqQIc74qx8$++95hCjCGkhxM}+V3|c>dvgqU${o*mrqas}xg@ImS`P~Ph zZ;S1NAVtHze;0qef)K|ov zIRCdwzhP%d+xfMQKt|EwH-rD}62$a7vHvtQi1wNPe}DUkya!U`_kjKGKa;qOzC8q9 z1xbkT0?|jO-#<8i{PT{*(XS zz1e|L&F7^41NEsN8gwdavMr>&@_>7<+0~H3X>w4@*Nq8gc;P7xI_n8Rk$%wZKxoE` z{r3`)fOlhL1m1V{F)M6G^N|F`LH&Da;G(ndZd||w*Ao&Z*_m|MzwUs)g@RprvPl_n zwP6}i%`#+^#2eX)@L4Q}&>b#P$RevqRgVw@T)Yo}az^wt@ZK^X?z>vZD0t0W6Z(Cw z%Q1-QdiS5r#Vr6+55KnL31qzOctOX$&*8xWi;l7YgB}4E3J99J;^r>>NzwDd8PG-xhh4FY2r&RkduYWB_Co z?4@AL#5YKkQ+grX`?Wk=NM{pbqvwo&CFNPjK`9muaThb7gts?iID^yHoZ`v{-~Z3!p8t(b#(Lk^c*5>AV#oajpT?S3tMp&x-!{Y@x(*eAu3fR(ec1J*ctjTlh zNzhU?_{P&8VCa^GCq&?XdCJ#^*+@eq8$fWg8B3mlK4^X`m*z0>FT`u??zu?)9h!)bEon^UmPoWB5hlT&F4GTy@vbMgFI z`4RD3!7pC+Ru8zkVr^B7fOFp}h!)Eif^mU@HMA(RpifqwiBlj!eUemtAXbgrLm$j?dM@EkaBiBF2jiNA@+niKGV#s5*BCr zd}bTI`Qr|z>rZQ+*XO^zlcWUy${Y^;5B(HeVzFKBm-HmnU%>?IAyxu|deHJL=e!5m zkQd=SjEYGs09c+03XIIypqgrN2{@=bR{C$kd6)e`Xu(obqmh^Jm3HqhIWzk=zp@|| zf0lxI6lgwTBXtAeaGf+^!pKm{wbUTN)Z?jGhx~tgZm4-Y9FkqK$hhyJu(r870Ng@2u=UV6M?f6;Cl$F zeZ7oZ4*S97LgnErvoBW@Z6IXkCpc>yQcgsK$N4)S+E@`&QONK=}DYt3+!J*0XpGH`W|~>aEza5 z{;b5%a5yNroKFMkC>X@uFe>!g;@aMja&k@m?&-=im5tC#sl^eeJKZ+D6>i%1-KK<1 z^WCNFy|M7KEg$v(-sef|WA(+|wA{ad^Ol7pov8aLf&=Ki8E37Z0^-mh8Pe$SdWk*# z!>gB+*khj;?}+meqjjomH)&Cq=;=!AV{)yCx}MX)rMU*5prwE;9X;4)h|;I^(u&2{ zW?-v$?iTj=a04-soSTcuS%G(&Fa%ESdJ0b{MM5ec z)ty2HBS_|k6UZZYTm0i#iTH5WK^l~J40ryM`lfrWpWrf0D>}pEN0j%*vxMp#(?5WY z|8mL9zCUsZ<4${ zjz}MkXe=u=Ut#rsg@x0!%V5IXe8hPM!XE~%QilrS!|kYN>Vx#U$u zf{}9;FpD}xdSH&te+(mVs%ubiQN3vhbydEJ`6>OtWY0h7Es^x5KrzCY)SLeuYy!n1cR9z}m>%+0GKeopQLm1=e3sAL+NSMP2= z2-U}_B@=oG8=1G1Kz=xx1V^nQJ7yr2;M!dveSc4e*IE_Z_WrM&qE~$+!5YZ${uSJ> zhrb8@-CPIV*qWxynYm#Z>s@1`*Q6keq@~AX(5x%|h4*bFyAk6GBsyF(<98Lem*7MS z1GJ4-p-ME}1&17fu|H)C5Bo)A{NF+^OFA zCpqn*6V8~x(FZvwV7s+6$5HRJS-E(eh2eT!B<6(6;yuJm1?X~yL+yOKAMJ71;l$L$ zA%+er&B{OoMF!pxFnPIOTPDLsvK>VxfBce&sm z{$I*&H;}*j-8s)KD;+-Hf7UMMZ!w#rOa`Lq^X(h&`PDst=1yYN%Df2Xd`wD{;i-y# zsjVrs6l>rP{!!@jJ0YVT1St$b(II$c^1wF||Bv~faSjz*`@fah*Pjg#HI4ZmUqwC3 z2J(Nvd5p1nLT$GW7wlgaJR(+dOfx}ni7Z<{4LNO&XPs#mq^z2CRr@ss^sp{?_ZdU&< zkS{-i*@#fW#g#8BH-3Hc8SZXSfsIWLsK8}$^gfEql;v%{%^$d#{`QX}n=q>6lf{b> z5~G-wjIq#~xQT3@r}sWQfKvS&PV={k)$TU0y~z`a|CK8Uf}$Z5)S?Y_8Z|DvbF;@s zWlIq?QO$j~k=vs#t?asXE@CzE*oA7NR+sh(stb@&VcjZSjM!GD})a?TGZK0_1 zpeF52m^xglDA5BlgO2ou05~R~+)yeoTCsweFYz{`6H&x+k5u>_K!lM zKU%u?Jcw$QekkfxPO8^Pq`{_Yt}|60*sX7nJ~0-6AJYeZ%#Oahc(3kNGVDJi#aOQ} z)NGiqikkS6_^~6AQD*F=8a&GmxQ_bZp1?d+C^*n>6n=E1|KV!_*zZ6vnAK@wni~HR zP1c*2YpcG&Np+h8`4m2(Bbb1(50cYg|Jt)v^@MYP!>;>>#sioJtFYfOcVs~Y1zP|w zCCAYh;ul~6?#R}ttEaz!9vb3PYcP!)%3h6_Vn?X(jy(*}{ zb>*rT0p1yr+IQ-Q$|a7{0d|n?#K+J*As+c_)&6jcd`^U8NP-7*Q(=U%gxd(`ez1Wq z52Rh4vpO~vzo^Ra(u(foHlDjE>IdgES*F>Pc)^OLW(r*}ThYe@X`y>uz^lCFlTc_Fo4fG%qFeuKOW14xI4 zYOQEoCaG|qK*pNmztbf+!g}hpH^y6C#|nJWV<1o5UKg}?$`b*_l8ZF1mieMUjU+xI zS@dZu<_fI(T_2I@3OIq_K3Hq(cd5e(45;bD5b5VRM5arzX5{>_>ws6_SzCsEB42$j zwmJPx!vw0qNdO5B`%?pUtad1UsYJXGxLK7G;bJ7!I*hh6Y5fNYeuTGz3#DugGmP@% zS#Evn?3N_M4Y0V1v4*-zG$yN?-1nJ=`uzT%pBsXTqm~O71iylX3ZwjZ3Ll6S+B~sX zlILP!vqNe-Mdu0#w0jvZ-hYLK@8t;spQWhOua;AiWcj!_>Wc@UqxZ>sw*`$Yfr0m` z=R%)HQXSf*2~zP2b+>}^)0Qbdx_Mtr<3491X?y|I^|WpY9kHBD zKO9Zn6SWtvlK!!Bl*^>^IDvbYS3nSNIoX{dGqIMT+URDl2jO(bwLC`>Ze-1CsJdQf z+;zhnNk!sT!N^Qb8agLs%KF&A)Ov5Uff@}viI29W5J}#>QEsCmI$|oO;IT2?T&qg# zP3p@a7kZQ(g=SI=)hlh|;ad zs%-AblC7_hB?U^IA1)PjivguB&_?>+s5ugjRydwFo2Vwo8fR+kK^2t8HQ7Yx3qKJ- zj&-fw_VqFB`7`Al0`N+ogu*b&G5TicP8G8V@dpq@O@6NO3kHOOCKM;M{mlWikx~yX zDMG5(EqZj^N0P#kNX!BByjc=XXTh5 zCzniIA5rC!vhuudQp}3Eg}x4eRHIOkd~x_4#dOBpGO0bTU@aj|Fa^qWVta}j)i*36 zUrBGNaW_YB-78*`JkjIN09Kaay|_9O3w1$IoqV$oRA-@y0HiAO=U8awyA%-X2xCmUFrB-h!?Bdvh~K}RvaxP^gvKsq zK`sJ%sHWXyrqOc8c?IXe7|ezuiN3_0%n%T6aC0656}8Q1yfW5=9KX@ZpV(zXHk`)3 zM)L|4F3-n5FwythWCz}Y_&h^tTQJn5D<0@DY`*iV_TDw0jN_ZGBvyFC73Z)VuEw5^ zi}gC@k{Yk0bokC4n>UGc)1A*_ZkRR4LI487PiV?>L(+hbd%7t@Qi-@w@rhZGjA^T6 z*CaNF#XG{-_FGz0*qQ_CSL8Il&311Q?t5#P*(cilx)wq88|KX~rwnY)1L?VNMTGAY zUdpwV=Y$QrUi!>M8655-KKVC&N|*EUjsDE2m9g3txo6S!wu}pBFQZxz-K;4oLE_A> zd+qlt9V0&9Hyg1(in=sd7e3oV>C>Z9E zdHr2Nox&b24*zx!3Wg|xaUAb!NRx#TGB)OGX&LBur(xvNA%33SNSQmYYxsmcQ&L8M zfn@5-(6QaUjZF}G@ho1;C86BQ(MLzsg(PSP2C-@TiamviCl#kYHLP;_>7nG@2khLB zMBCNU39>E|9h%&?ka!-6XhB@I{dk*d+Wn)&`y3Ar>L;JJ_>FjyE~o%w@DJLI&vcV5 zN2I1nj@Gke;s{J9*~g9QfP0B}!H4hj1qs4ZqX7K^YfVakJ9(tZ`|8ip%{qYgBTiLZ^NLP`!9uarVKteOGs5k!&G(1}|$!F4z>zrKP7R_JA&T5MjUDC`c zLNYmph&u;s#ZW#qa^eBp&zAzbM4xu&2mzKco<7WqeDe0$warH1H8E^A)A+b)^ACyB~jp)!+E)haMs zuCe))8(K!>U?689^z1<*qfZR>j?ESyvfkERze)u8B_M+erI)$&Dlwh$#FT4(ycBk4m^pafQA0LlJwkI1Wpyf_p?!Ly_`(xC$gH%kAG} zPw6=;bMjpM9D@W`wAi9cW`~*ZG(!d-rnlHY&69WPSwGxh}L9en$Rg56Ql}Q7bPcss&n1=f;^ZBDS$Udv8??=DYnkeOaGm-C3xBc1SZGo}3+8c4?U^sT( zO9R9;xnn(IqQlk$n#0_`;ilhk_F^uv+@4G@znw*mnj)pPm2%M2i7p+ZIgE`Vc#9|7 zvT-=!R)7tJ_poJ(b)0&9b>u&Dsl$=l>)s{4hU?4rLG@eoSk8lziqZ}HvQ}Cy1)TU* z0eKUyd@X)rKfc+dSu8YaF~*{|o>AD9@3sb;i%U4guqVGu4E7d!F2p>9kfNZ5uX+mh z9PJ^ps7!T|(SfYy^8%FuAv1*AbI~5}sI^{CPoTXlG^E{iS?y+YnvM>@XP)0aW$x21 z%6j<0E!*(IvZ6l!N5v@v$GNQOSA%V;pX45tHQYYgU|aPi$&`L#0D*!Fv@9c}lkYk^ zE@|fGC7K|vHj65zBBs~hd6kPgZX5(k2x95A+oX$n8z!SG?w9mx%HK|OI zt(5iE#xG0}s7w5V;iz(rM_$UhRt4p(X=VmDX@pC1%rdy{5)vc1({144B=WfEQ*fWp z7H;Gu7o90BEnKdN&qgY@?|7qO4%kp$Ad#6H#7_jeWmXoc$-(5|!;uuyVgEnG!Xh;Y z<$|UD6~T#_6bxCc+G0YU7tlg@XuI%nh|)eq;;GSglTDZ{ZpI7TR-yK+YiZt-@3AFb zXVw=mnrd_*jIU3Kv!f6ex?GcP<88Ne4amo1=IgJFc_btTUFxOj|3xbBVs{qY zIGs{rR}+MUVHxgpY+nN7Qf&5MrH%_b$$ZW~>*m-|`4y%ER0H8h-PCBB!-<5$jaZ01 zmNO+QGd=mDkv89ss%U`L>d7<8YP4Y7V>c7OcY572;aQyJsq_-u3_*(O-zLEJqJUas zK--{*xf=cy2o@W_9TD=S>wpmhf+V$*g7@T^Dx3yPB8O zDZg^)nt3FuaX(pw|D#NyGMQ)pv=LGXWSC>kZ_W(d-121cE993o8Sgg;b)v{8ZGF%n z`zeR!FkkSN#v5hmJ4qi>-zqPw7m`w}i-NL2L9Puh>NLJ|C$C3m{WMo1?{5s-YYE6j;)gTeM8E zkvDSsWqnp@uhoVD=KgZ3BR7oB2ze~I|I^xtH!a?=r>Jrv?|!3T#W5Z>9=red6%>CA z<@wa!f#GFkK@!55qP&H?`ObO~Zqey^(_R#dJcS`istO|F`?CP-FR!hnw=T7pbep|u zD{ku6wcOKCH!_>&eYNsAzS=F^28)TDNXC|iqi9NaMcBKLwb5y=`jriLGWF_6u>q;= zf)OuSSU$5luW@rec1gzCdvl(UFXYkdwza#>mcNKn5W}&ITRq)54?m|35VB(75}j*3 zQ*EEHH7NJz<}%$PoIDk`&Qb)@Fy;YtcC}Hl%eC$mu2-FHLU}dQTew`Z?C&uwc^s@n zE=-gLCAFGexl_|oAMqy^SF5k*!y8xT(lJGp(}&ck*6m9MW>K;nir~xC7qPhY6c6!H z_N{e783$>Sdryex_uw%-YJ7{E_yky^cXz6u$Rke>y=g@*g3Gn}SCT`w+p+@WUcKZL zY4q7>e-i6SeHR9hC{2o*VwazxHosN6P%}8I(8a#$8MItTmyIxwcG?i_vSqm$l2<18 zPRHyHpAvIjv%Q6@(;o$OF9)KA-AmICJ2DJ3wXzC{NsN16@qbnZ4pg6OBeJ6?ovlzx zZWi5fY3=>ffx zWb`d-d+q5<4hv{`4@0)hq`B*Xo$2R$BlAy^xk7Ru{Wm>t^B{6zfqHfp^m!*)( zfuB~t`1bg`OM&7e4;v&B7vJ@lhw4n`bnaDqIHq%JdQM46qWAKqb_NI}*A1=_b#Ol? z$UpCz`Av-XFp`0bmn)t8WkEXm^p$Q%?Jc-->q1cUqey5#msO5@pwFit2ZTjsFHo9) zE@Fz>a;v7fOKH$%4}2ctiN%XQC3pdbSHq8tlLOMghq$_3yU>#^q;;#l%s(Z`#rxLD zY=C7efL{*nnstQDWz?*3;H!SUsQ>w8uJ-M^P3}d&0zjVI-go>wa=oqiO06xG%yxCZ zZ5cXY^IN2&yrjFmgixXKncoTDb}nbYGF5Cl4tK)?YPXZu;9Eni$xGk{@%~?*kQ_~W z7WxXnSSX3@<^|sXsgvhyUnZkRBxny3ynEb30se#;?`Vt^_O%87e}s2 z`$fYkb*zI34fUrHLQ3wA=Wj$o<8jtbe8=+m=0`|N*#&NFB75(DH1~!K22aBnaDWX1 zzF3pRZZI4~4M;Peqyda*!}tYwwmmRB8bobnj}b(tE1!CS3)&7SK&BHQAGgHHAR1or zEdwr01b+{v@WTv?@3nik=L}_(fTdkX2F@LjplAEj#NiM++;kJe145%3iGEZ2B%^89 zYBA9DA3$I0P!x=Z0HwDMz5-0l{|Be(LqG6Czvvs*A-oSAT^(~`%(cR+y#I+;R!9Nf z0%z_w5MB%b-TN{s8hv0bT}`hNaR%=pTj3Rk=W3HB&Ewa%u{87PZ}iOjB9(FD@ZA=G z%gPNp7#Q=xTR-RoMlFb>aPqWWJ6iyet6R$nwKjVv2PzNOe%Ev*>Eu`y=;k@JQv4@j z_!dZQrxeMWSM{gk?+q0{=oD^7$^HUNPQCo%A;j!S`!lz@OU-u|a zCQ#Io;2U_#%&n+V0zZ^7QxP6?N)sGn#OO%IZi{pJn1fzx3kk;uR~)o2gaIc*KW{8M zw&+Xy3>=?D$-1VwQvMI%EvKhm;u@kb#LPi&sKvnZN=GEE33apC-&2kMNPgy-N64Ca zOoM|-_3vB)B&j`4^ZQ{Z;!a&v-sIs7aOQyzl-dg*6$q$E0qsA}8|h6JkidW~p?`tF z#nUk606UfCu=YE=sXl--J_7NA&*XnS#N9hZkj84^$72`eT$e?K+TG`?6Dw}YZ>i_R$oHn}0m9~LMu7Ecu)8~~YFWp7rC zA?Xo60MDMz!r>L#d+67@Qw=NZHqFDgyV__9G8BNG{}jNk3_f%o0e8$IfoBLzM~TIc z^8Xf*GCVA+1z)PV4S!SNzz;x**)Z;OGMvQm&n&24RoZG<{6h9_0TMu>J^KG$gsEVB zW{c$q=yL2{{vT*h-0bUOHL?OC+K)^g)nYwV24%>DXVmUKW`AwgRqugUaL#ENBYja@ z15u;5WyjF^i37ZO`YCWIWlAA)x@>NnYqziUQvYu+mhF0?3boF@F{qfSzr9<9p$cIo z(RgU1d}(|J2*6u42r(u95e4uCJov)@n4T-l5lX@T$#P@^(MT@Mm+W9NF2I?%d=_|)#Dq{D0U*@%JOuHebOYs?jWI9&Ed{Ouphr63OzovC zt({{*T`@9>p|*hsxy33k@e}&pnr0_}CP5WJ0{7Vq$c3C7zzBu*8X_d3fDR8Vi=|20 z!o=tW|NIE@qp$0NRX2Z*GTyHxKgr;&Kir%{i>)kC9csM#H^-~yWc_i!N9_hyMY zkfQ!lTrB9gU8m-h;jMukbk!mnO)_I+p=5np<; zs9Fi&T8-W;m}hJVgg5J=NgakSMkD_#dkd%e!@>wT0~i%&8zO1^LHZ`*`WO=i26_(O zf0m>ujufqg#|#UdKmgm5TPkf9JD9+=hv$7qHjT`xkGsal5Ytvag>)-4R-z5gM zyL5lR@M2h(@yHNou)bx_i-0P#IPVJ^DkFPgx~K@&u3rD%jhI&duBhDFuBku*W2=rb zT5d6SYn8`0F=JI43O;m%!w8#Cis!Sl5T-L0eMNq}NvLZ%${dqdaamjeSU(X9i8!jZ zKZ*PpE92mwCrKGfpE(mhbOu4(#1odGaHHVfoo?7>DnucMLIE_z7YB@i=NfZuRpVW(B;D(a}$F`;eX8KJb18Gw1X7hm{o@KN)Tk zW2Pbe-`C|} zP#QS(^XVX$x^CGa=p-h^UNdc6*>#hC9hJxbv9_0!qc0u+w11RYD(%1n(x- ztb+gLoEaE*S??@(NX|E#6mfp4dN-l?%^>au5_p&liiL`NS)%c$6l{p`ah-0W$F*HA z?)|u8c|8(69^Y0=a<|kQhFR65nwNCVFpr9}PS=Q2rTWR4!Tk9m>KrVdx=43rs%99n zIUIY$5v#T}BN`aD86fUeitUp9Iy`A(TthAh?|JmsmFbWxtja~bdObQQ zC5x&F6=m||Ep|XPb$81i#8m!0+Bvi$R#H?vzzfVkJCUC``c+9tE{mr`g^6~-)UW&F z)@ww+{6#~Lyap9q^M3#hCLWUYERu9pHZFq5`Xmay+TlG!k05N@D79*KfLUWB6x1zj zS7JX`x^9Y(g=g~^kE-!S?5?!)XxZZ#Y2q|zNuYgEhUCZYdF^jn`GzZPhp%2Q^bHWrm#%DH z%AaF*%{P8#JrL1%AmW5xSWYJqXn>(}uPm6d>BP0J`Ns_t@OjV^z7~ebqlNGV7>oMr zPKpH`wBpY{a>sG}k;p?+?Y>TM8^`)3obm=MmZk+6Z%%y|D<AjaR!!+A1V?ZuRkwGrIB6bc`v?i1XUp`<<>&V~x&V-d( za!RmnBC`-@GoeIFkbo2q)!-J0%6(2x9^J;qZ=vulRdKSy^g-G-F5wZW!-Y z{K>sEKN7C9V2$D^k$B{(Y&0w7AL-Ih!KHV7Vf2mkoEA2>d~!xId#!&mjZmJTO?lU4 z9c*$o=g_gvB^(b0X5P%T)O|-oyjNT?!Au5)(lE{Ofb7&)?>bWZmK4_Y!$dTVu>EqK z8IKp;v2{-%S0AdxJqb-FKGrShk3bkx9;Bf`38MSnU)9NFBz)?Lh=>zm2_Cz=#x(t8 z`36A0t8VqOAK&t!OH3rP~c)8ktU8eVxwo+Xx7>ceT^9cS;5@t);$eR}9V z5zaJD({snxK6%1yyb+%(`T1Az)LKBu zEA}CaS6bq5gWaFwJ9!|lQ~p&W&HAEwN40WU0>eu3%pI>ajd~&AqSKh;)e#Vzz5}wjm{##Zf%B?u|USe}9X7OZt$W5e=gQ zKMDGpl7Hg%z033~)zUj|k<{g&yrSYgk^IX$%-LFRq`D@a^>NCiyvS4Deb|lM+Z$)& z=8kLNcD+@@n`$7sz1DTB;`Z`3$ZB}cFV6pNq<=b~xqhX9buRTR_@z!F9HiXi{!)@% zF2ePj!W7rz>*ZAJy8LwcdUvnK!JNUUlAG^1LjphX=l^v4OmS#}6H`-Ai!Qi@(t5@x z)fGJZDHg|0;}&_FUD3{Lb`Oe$&x)AVS-J61U|^sqcC|*-OQ+@l4to|7w?wn|>W=(0 zwyYXU_>{y{s;ZKYk0i(V@c1|K?wJ~EXjkY|d@nVAC-!`J$=YN_)kqiTy&7uW$nonI z`3sl1vzubw#RYTEb~XOwW-te2UM|{YLG5?Wi0LJ0vojz5{5fv+hZZ3sa#_NvObu7f zAVmR-sFBj>*S&C%4B9BSh2FT%UqJPcDgmv5mLn2#{PXRy%f?`A8t%WKNZ-VNR2$?X z9w9cDZqI>ZchD1axL;B{jD1{Vd_R8ZdkLQV<-Rr=<-a12i6|>#u;+@d|J;8bPF$`u zsHgVj6LGRCnTtn>-%t20h<_r#Y`~w)flv8whu{y#BQ~r2J1|!+bVC=R_#p77PoeZJ zVHmXx4v^Z~TCfb9Z63BmS>%Q;)e(8Rjoo$oz5MO1vqr2Fr32f(Fj@kGu4J5=8(<&!*i*KInuVrRt zj-EtGf1lXA?%I0Q+uJ++Pu><35$~n7VG}BeBTvrg*wK% z_SUd$7}lQo6jot$350t&wm7Mhsy+S{S(+!}Sb{+4Skztaob9F7V-rZq7@%?Mhhfum z%;OK>(CyAB;xn(!_#i?>CUw_x?Km%Ljl57Pi+)RCN5 zWh94>xBD#Ao4@VDyA02aHe8p9l|aDt8!<#~*q&HCOsk?>6;1c+iFswhBFji%{AHJgAXKo(%SXzEz?#`|i+LYRVU>IHBG3_VWO%&Kju zmibAzJ6{*=f7C^?Dr{q-OMbPDwEum2K-rW|B;M?lMs0AYy?v39Db_Q5tvBBsZd=>xx&TQ2Yc4t*F?Nr<4Ncb0M#%fdfnHn zyB)X*b^6y8+Yl8s1H+Xzcl!4_ktFZ;ub5Mmi8*vnEk8?X<<}wEDI@%f5TvH&_RP|K z!%IEpro&g@Tz)%PcvtT>9lm)LjAEx^KKpF={o3>VX0=$NPVtthD3+0e(rFSkKdge( zh!=?TlIjN8NDnf4d~lCYU7;HK0nlz@TH4|Vu2JEtIlFx}6o(8|EW6GLz&3N8!B_>;B24l1G}g4zS#J4B-l)=}c70Bk?W-R8TTeVGE!26K-YDhP`cIgP>!N*oh15n= zDTTD}ZraWne88KA*GS@&Dx%t2{*3mwh;(VSdR>X5Mwh0=Fx+6KG5l-K`1e2=x6GKq zNwgNFA8+II@J1+qr1dzK(x|j|wAga-Ft=Iowu|y=xgj^3qF`HNds`Iq)wNrqBjGtl z=f`=^6GW#F#$m6oh4dC)x!c?@_i#(=8H@uCY(`vt2P9?O<dJ#+Lf!tk^0NxSCVK&nj~jnczoOqF57~lB9gGW#!?=E>pTbj zzbNQhzrMv(H$NO<9&>bMB`5!lat%UPT`Pr9*PRye9L?s;k}H}7!SXqEd?M=#aY~Ah zpUGH0cbC2P>{H;4tmFMPE5dR5!i49K$uKg+gP3ofPx$1uuw7Fbu-$m61uRLFVgyYj zQeJ#`eGN-|>9+vX%m!RHk@3iP;W!JgZcj&pggmRIMBI&xM{iIx(`WxfA0w%1) zT{BwOhCNV`BoxcgN%9?s&UFPgCeRTdRjNnUbm9sqVcQkHveuH=nHJ2yy6B9!A-oU) zxN`>Eda1YbcwDA_Ha&viadjD?eV`a?aRb^R81Gr>)YgH^leUf#m|?ycVVc7H((Z~A z_SO(VpbG&Fs;4b|m?9vf^y+JBwNxvlAwH^{Z90>^f)5C0M8R@aQ^aMH;xjG{QTupLjx zjhLHW#@14x!FjKlPvv=|9C3Bv>fJK#6sA-%pM+d03t80M^SqS1zh}HhRZ2>iZ`!31 z-iQqowr;YQbNyX3uTOBKq$vnx_#fuWfp3uE2V|{gvtbb~OqrK94Y{&-Ldbfv>{3T7 zO1UY=63}0xvbgkjNiIiz25RM7KmS;2H#BLY0_LU##iWOcH@(Pjh2KD_e-qZLHlusm z6pHitwWowN4LL<|tYZodUy6s*RJS?_f)hz8p2@g(@?ltY^hjb=b2gOmz4dg!+7-IL zk_rE+^m1p5cv3+|YE?&}b_3f==FLnxFE#htGW|_+>^ur}y1&~*I#&wyZ_|lb#~;n( zKQ>c3vSgycrq@G6xhnt8u&z(rtor&`jr`j1wa&8D??J5f61(rA)rsOyVo`|*Pe9MG zKR9A@nvYV(KmQt{=y~5|+^zc8iT_~6CE-T%Ow(&Bc%|i}TS(ceF^m{|Mur0yVJys1 zs-5xgT$DBZ$4NNP;5ah;e(x&LyXBdr;WRXvf@@yAc)y0`&v@x=6RWt$g3M?LG5W4q zATaPmU*8^dN`rwtiK_2rI!CORh;>x*1c|W9-RC;C*M}Q z`rk;%x3F1rNZKTiD zt!~WWAm0AUMx;v;nYCo8PQ_+X)SD2eGFbdY$xZ!JpHZ6^6szs`3U| zW6ZwGJ#|$UY)jUZO+@ZIyby>|9ZT>SSN)YOKL6NNd6scc)Ioi9Vob5=hkr5(n?mNurwpd#%zrS@fOEAa@-N{UFoPJmAk>VL}Q+B)`TRBo^NLHKRoci*@+#BePQB;c6<3_rJGZ|@v0oucWk_LH?mp8Cx#|6}!>E?~FQi?fL z1(*&^ENG~GB||q1-CZKhkkV2T(k0!Xbe9SUQi7D^ zNFyQLAf1j1p3U>T>;JBIy=$Eh=kUP~fHyPu?0fI)`qf2RQ5Yvb^N6u0*ju`$)?CM# z&^AZV?FbIu)-dOAaPH&RyHYZ(gK3ShMDE=}$x^{Y0m$0L&REMk=8eo?=3IPd>gO6e z$zU@$K`aW=H+gHKJk}SwQNNtHO31Hz7Ve0J?8uJ?L*^9F-&cgt>(9}knb^pTcT%i_ zk}Q?USUwyVIW7C5$R&f6j-sMJ*!=~NQz-HX5DjQ*JhedHu!O5jY-D&dN9GUnjB4kU2<5&CB&pM~AI6$d zxMtuIq7%j4$#o9bUrj(bk)toG2JYEVcD^NNB~tQgQcYtT?67dcc~@ukMJ6~*t=6=W z34M~TBVbIs$X0HOF2(>XE1H-jW>(USpKtOIs>Ltu!Y@g}37n8)B8%F(n&Z@M@rJV- zlY|-yOGx<)eL?GY!ai_dj%24IwkXiUe+P>gB=$>f3;lPGAuf2yNbqeH!-uT2OdwI` zdZ{ZnB_BfOgRYFFUR>*4N_&|G#3AFTAzFol$_pgwM|hNiJc5GsY@~v{78tJ^dEFR8 zlWT~`=+Q-jb`?w@5JjbGbdk94B|X1bC)sPYv-WxNF`KcUiOEe!j?0?<0RXCHDq%$U1Ca=7RiE{B9to!{S8}t(ajhEPo)V ztnXJehT?>9R;6}<#K~JYK;M`TnJ5e7-BunchU;njpa{NWCnsT%$T9_ob ziel6xw|+SgY?zf?wlo>pcdG)E;X%2E7ILZTlo2Km;^~t-d z(Gwl8w%y==Y6+JhsrJ|^X=5>MaUu0$=VO#U&CqOhJvr(ZKvj zo~ohVPe?eMeHb;ef|H7+hK(8N)*a2?#w%5MQoDrFP^}Qv`$fFPicl-sIRjQ=C6jE} zD}Cw1;#{1Gm^Z2If20`o<#i_MwF1jzdrya{JC!4^^k4Z(U@njEzDJJBp{gC57?-2yMWoLt{a_J@$v4tvRg z5T=^}nXbuF>}}X#&u0M zP~p=v;2ZC<#M47Yd%R(G7Dnfj(Ta?f2rbsJ&!0j?-=aF&7ODp9{-MSYUYC7&OQ%C2pMjJ@8)c5wCQXO;@aqH= zJNI1Blz&VY1eb&|KRd;HF$wS=zEXw~qy~Z?a2?R%L~>&^4FSgGWANVK1KiZlObvj; zi!Jc zSgp4r_LeC>9}uh!LizUsYXA1CeJzqbJR6`N-6Lx`xn1LN+`wJ)J% z%1OZBZ_pi#`1LEm!bqk%@Idfj z_XV=Qd@P7bd9J()0BrE}l=(JyV!=)4nvJuZl#=r4=K!y+ecTE#A3eO6*vx+LSzjji|M!B>ZLZ6A7M(XhCG;2A z$=-;1yaG@I8Lt_^af|EX1;AZS06w!XzV@1wo6ERfbyLFku)LxI-~e@iw*Y7m$WLe# zK?8)9J-A8VKUnF^s=fgrmh-8)z!aXsfB#5cS{9r<|qH6#` z0vIwXG#v5Y`*W`punXW(@I9;lKQ!4ZSQHDsRPG}jW&X3Y{yv@v{?FwR*oFVSzy-O~ zCBUNrBK_olb0NkQfwky5(Uih2@12;nsHKOMxCPnT$U7a%lUzIQ6!~S+z1DGBIdmfH z%b9-#_53+r@cpA7nfsS!>(1dm+U!AENqX(`TwULNhU{O#dS#P{?IuI+7of@xqY+D({uk1>#9`@9;$T9LSvO4EJT=Cyvs+T!%5gr_YE3zl7S?~<}a1Fp<4YkZ)G zKHWF}aNi0sq_{3aqd=&<Fk zw)kztnSK1<@t;uf@ISEbE>7|^*xBjq*Do@#+~;k6mm;zPA9Eo};1M z8SgRN`Tc$e_Ac$9ceL?^3EF#Yst!L{G8(?W_I~C^Q!mup_qL;DbJ#xRlg;?K|2@jJ z6ZKeQZ9n*t!u2dSC1~$d>SWsA^7Ee`&JbF1Hdjd>W%kDb6%!X-Yg#EgT+X)1%e?ZY zS-I*{-`JJ@NlCh&y}7GF;-hSr$z%G2zI!#zXAv7~HnD`*f*16Er(Lh=R4idBBz|!; zef`$lMOZr9)t?4Io$*dn)2)@EWN~1h-eKUzs{Is(R<+80xx(F{ghBGHh`A5*E&h21 zwZ~ffi(i@@sj=^*!*Im^Ss0TtI}#Z6>@Fgdd~zcewWrO6 z8}gC=WZ=V#t%DEYb?MrczcgaT{Hs#EzpWZ@lE1%x+L*)C!MCUoWPxlq_sH4viN4bA z-iP~ZH=9G9pG)xgJ>?6`o8*VpJHFv1u=ehU|LB$3w-GeLXNdNlb;@L`{kEeFo42rK zX8(fizr}NE(f2a%Ou+h@f>$w@M(o)TYRe}D9_`&XeBmPG<6LrndPXEZvE-#`67*z^ z`tyL*2wh!16#tu_GOcP*%g@)=nyJJ9&U$ehqzNi(-n8&EbcD98&FJ z>YJihHJ2Cb$M%2fwHlYzH2>|C@2|6>()k~GfB-RYKeX5N@=p7q)I#DhHEvS(CmFI3 z(6z~m#e@}q%Wr!w>S2fFOC;GXb8xl&F4n3scqX9F&;4naDCzB&;+8@JItSW*UUz1R z<(xn-^Vt&l?A2zo@^;~Z1*<-)2vXZOIh{O1h296FNzard$}e|He-TqG-c|8IA649& z3ww>(%*hT1lfPdH?!PY=Ps3!-Io1x}HoSacGOZ>LuL?Yo@e1dt%6&)5TDkV>y7EY} z9Pb4IW{ndv&kHbl9g)HykQq~r7r4IulT*@14L-E?R@#I(@12H361CnW+BZkOs(Ev! zzz_cT92M#3bZm9sTXuP2o0JuYSgRdq5NjW@zv-E4^fP-q9z8bl^txWmGh}?+D+ug) zQWBT;_jN)}k!&Y4mr#=vzQ+V-qsNIu0fK_?3bN>A^CI`1ct#)JtHG0c{$j?ENk`ilfDt@Wy|ooUWRjYLg`tNL&XbH28ET< z_~#J%U_WlV?vCIuJ`T}};xUJrSoDbZDCTps_x2zKcon5};I|PgJf!>ABi7wi%=d53 zzr+0`I|rQGNU1{h-lOTkl}9)xti*r3&!-OZFZ}*cLB*a`!^wlk$s_E#*Qs9(IOZQ@ zlV0+UzeWsLKJkBga#VItVifjkYcHN!{h7op{q3Q6Hkocu+MB#ttGa{64#;rumkAB4 zEHf`_GI&*uIK-+()}+1eo#Wlt;7Pjr5uI8jBfHMEPv2(C*X(R$Y;}9|L zS3VTE%eej7_^AGJD1EecV7A|Jx}Wx!Z%-|YeT(~A4Y#N}Ykphmed_5=0oc6zk+`S~ z-Umm(s~oj;6B6>Z3%}Gl`o5|CR)}amjJk3ZWMlj~@VbJo0O6ESI6-=vP8SX}0sGW< z)}df`HEgZPyqAqb22U)BTX}yJl-9*gm=BtGzTMidB^$$F+%2mTySKaNv*-%GGdA>o zQ^@cp)V6!r!rxKyHve;R-BuZ%5q)<}S;*+Gjbfi6`Jq8RxfPn>#fML7FZBn!m8GBR zl`Jz^opi__J*`b=$|`WPQuA$T6Q3x*w70FraK0Mce&&C|5m7G~czOQ9#ACIaI2c9| z^2@z##$!hY=dPVwwEN?8NB*`^ASkKgvt+L4aiW)dzmOrnP~ywP7Yr{%T;&pwEe4+9 zw0OfRvt({Zf@Q~-)q*L1XM`4~W)2HOc1khIGzZIMhJuCAYZZ1|RNVNSFfB0;lNS3X zuu#5#r4f(i|EigV=7u4&_tvJ0FPh-ed9cZ;${u@Dn*k<&9Fe`X;|7}uo-8lbiE0n@ z;DU6$n$~}hXPI#_L-O-;{^fRk4ipnr+^_wi7TZSkev6Px8CERt52eRn$@N2=jHVG> zhC`_FV^$-2-aKy~9n?(NMf}W%P%cP&>+BPeEh}l1v{G4j>Kf}d1^M#_?P_%TNdF4J zx7CefBMvQs=j_l+VJ-foXkwQ}t=zK-9O;D=MF`$Wuf3`XGE+XNIP#{xy;YwlJ^4Bs z3hM@E$b8DL=Uz$o&4)vOi7&%j{+#ed_=bWbX^uL)jjN5PS0nmp(rF=m%LwCvaguixBQ)f^k}l_s$fe+rf4jp3i_ zLb%sg&^2%!)Qw15Z{C1d%sN>)LvOR8XiRe#8SxHK>$smMj2vp+%qGlVW&fTx@WU}H z$V6z}Oof~AethCJk=(AqKOkp8cIwVAa)-o{M)`NZNbIeK!`nx;gD+0~%Csqv9# z_%HZv?~p`gk5=8P`g-?*38r&0N`H(e;fsteVBtIqD&A?%9o%ZYw(P!j8vJdPan2Ux zDQ>?jy6CaeEy%u0fy64N)Kuo=|Ued{An?M0)!E`0799Ia(p&{>Ohy^z-5~`0ZNEe`@j+^yvS~+Wdct zd|fEhWenfof|0b{_{iR;TH5 zHL)5cb@fqz{)@G}x(mGfeT_}ZHT%Kpi)ShN5EyM@Ashur?O5U!l%L<A}(JXGO&g^c= zu6`hNC}6FB)_Ri78|vov&lE_re6RMUMU%(rz{3fUZ%@k{J`3ab=1+m74WtL$48&h~ zOswJqdEu9kKR0KKL0dq+8U&zwN6;?@|2hMzDKM#m+Q)P(o43xehDh7x{6WC&zVap# z$oaTNlAN6nir4}aX=H+PmtTQAnLNscRu3z&Dd~pLf3Fs9|02GKq})98Pg?mvi2o3R z=)HqQW87$~ghTarzWs$GUlNsYt^et26jl@~_@li&eW9Ky?tj5_h1VpU-q(j~B0EJO zz7B}3fJbc`%;~%2J!ldJo|Lnh?lZ>C6Ju{MJ3do{;px>(KD`5E&q=KU()9;{hoUXrAN8CYzlNrX)*U*SbSm zT;_hAjz%C<%j`@uymg9Xj&nUOcfWx)oE521LtY+Pm=iS7V3rWjQ8lP%ai!({BT*DJ zAWjE_KK9b?U_3E9Fp8ukQHxflIKp$GoFGPt8uQh^JO92#pxH%N0rI{t-TVx@*k4~p zdBMa2ulBJ>xr#Ln2TcpNSiC8u0{GF-&(EFE(1%?R7dv1m{bPN3hT-tD%&P!=)x@h| zgC&KPxN;ER*HvRsMaAvL6{#u4IS+qm=)yfumc{q#0n9-CeDU+kOEAfSLQ*G2Jo*RC zqBV8nDvfnrqsGo?)>sU}ef2Y@a9<8ZE9ma+em3NTkAcbWFVLZ9q^I*gcUx-ijkBrC zItHvR2cf}Qqn*lopqjV^6CfC*AM;v%4ghj408|Xx%I3F^L3caB>UjtY@7V-wEBI`( z8%wT$47(qaeFqXofLN7cnh^>{0TIyWSRO?_qG6>l5nB{xNc5z$A;ZQ8(4NX{w)JU#rk*}TtGi3tgj{yoe@ z<#^D=h+P6{zRnw=k-4FVyUrLEKX@GD(U3vGIu4>6`<2KCJC;l}<)Hm?z&DGjmUL%cpXP5r;e+`Ql_3`%h^m&k4elHO=^bFOX_GcVh=>I*lBIr%TJem(b%>!`6NWmE^}DE(AeTSpry)9 zJopX-i9cUlgCvNawKSTzz0_wT>8w*I3pqFH6%0yEK=GDc_fQEBDLnEh3_AtT)1da3 zky-+?hrmtsFt-5=1wESiIum^D2sn6_T7aN>dwbiAOwa+|^9fik_L`yqV3y7pjd*Xa zwq{Acm8f+;g&YxPzahU#hVu*PP%tzad^^+$4deCEaH$5823Sn>G92?#I+!@qLMBO#l*1rrt4?_@CWAf7rZ-k}Jnts|96A(xrog^N`jfwmy&HypFrbwUU7rX@M z{nucCKW*m5WyqAJFzS6nancqOyi^m%*t3xtK{`-#-=7RaLV1{*=A+^0`DP%vN@wkE z^YedhPFODL7-u97*d%U&K8l(;&$*WYC+acTlL+t*Ul&;hpDX2iFaKsHLlx{@)JD%u z=@~a2ot5HhmCFOqVM2U-iMb}LqFky0z`s@^plnU$=1SNv3lO$;c8vUOv29W7nOg;t z{?oNUZ|?%EDi4|&{c?;L8R}gHzlZoB0A=FD_aO;C|GrHGp9i)z-KT&*d5_gj7`stL zP#OY4Jk4v(T3o)qCIzDFtfdu=}%o3iHzR(S2E`_YjA9sRQKwedW^{9^weCi|C zGIreNZJrx|TG^oa%X~RCGmK?|kPi*)>!0&O$aYs^I`E72ygrHz$WO8hFtla(}H*ri2aV2TFQ8SVHSN|D5l%gb6<}5W5?6wm9T3q zUWTb3PD8VY2}aVoaG^g4M|(3l4Sru8*d5Ixb(0b{I0%S(tR}{!;T$rF>^zc6|cNovF*?%qAi)t3i zPS7|aB%b}U4> zAD!m^r%pQl(b~eJ)E01FYTN`%0V>U??-=%jfOq<6^$q&8Wau3yCnxY6{2R)DcpFlM zuG>79w7>!Z+?y}zwEx^3zr{T_@APv6;5$vdMW-LAjW)(YRe&n?#u)(B)jMf@vp|-h z^`;rj&fn=4SnZL&Fa=`uHmrP$lsQ^mCJfe8r5h(~n&xrMf zd$}#F&uIGRH?MTCKoZEJOEv!k7)!f4Z%ttn8wpvnhW;BjQStuYw2E+aPwOxZ>{5 zZ3+b>qR2dYH9{Cj4{_pKXhjw}{hyo{H8yU6bze*tS1;Z7Kf> z0_EPINbHjPVp9cRDGYr<#Zyatosyhv*=YMUkx~%ZKJY(!YgwDM$b&*|BLqP## z1GbXC^G01WT2#{5QHJ{Z`s*Jpy8>4lCvP|uJ3;=N=aQTaZ>#@T~3eOB>o@B zA1|$cP~Ph>iFuBJb4U%JIbE=kR&ne>3yXOVmUCOqI=)Lek9Imf4m#~gD?z^=L|W!( zwM){AZfXx`5tHl{H_cxC{_yiZ4PD4K1Nf}pct`PK^kF1|XLlgfEya6l5LaG;uh&r> zKM$$|q`gyupMW{!@FU9EB&blp)~MDVaBdr*8q@~WJDG`t?c`1`@LC9|a1lH?d^F7@ z>ehob_jO>viH$6<(tVO$DI>)xYdxL1_1VDJuTwPVG*^`#B5Z7IE=3b{CLf5X`Vx8{ zIuoFMW&;(e-|6Z*Qf_PTc!T8|ZC%V4l9$uq3Q8|bOw1)bQmolR*T1u^=U{uU#GL^A z^C+uof|CbGS;*HzeYxI)v{RIwO-4v)!{gtl!~gt2NuIK-oJc`PON(1k0Q@$|v%A?3 z1LU6V6R$=zH=B~wYHMj3xq}lZ!fV74>>HW;9C^Q=chcHEZOaf68d%WTm%d5Cdw}Hv zr2N4Bf|9DKsY$SfMII(vxC%Iq(=dGk!Ju+V4Q29j6iy&)8x(Co0GrWmidwTzeL^!Z zG(_ErU2WX7ub&>>2weahcv48x$H(a*m+3aQ-cs~t0|7=foo<=aSp5Q5%Z>+pfsN)t_sgy%RS{gKZj zDET2a_n!^sAA_s_*f0<4pMGq{Z3o9htja5p)%gGLEja%hz6HF;0-zY5snpu|c-sRi zk4RY$P~L-u4L+{-W-VL+GUT4%8P;t9+irb$IYvu{`7Cl7B>gy9NKLsS; zI>KBoIQYRX7U5|2$@S$ELE1i$#aHW3@B$aml3H3?xJBO}ApSia0*8W1vu~ab^+7!k z`m8?3q($J_0EI--N^}(nfVn*tmsYke1jRI!%v)ad96s8=m}>AM*?-{a1l^Ih2~aJ6 z=$fJ@nFECz7inH1wJ4wGie|nTAsa^F%cJ6%PT!wE?mz4_TTPhE_KsRQ(C3%gryd?0 zdYNGGK!6<(+iJ{C%=d8iA!NKn{=x9es!kL0L~M^k@NM7z}EY_I6X=PMn*=!GffhU z2_8}^Wh-5=FRgP z7m5u7nOAz5$`=O8?TMLzZYaim0lPmA@8C^<701;e)+?-Gc_*n$Vyw?t# zM`cO}z6VvAhqggRIkDVi3eSfri@hS>XDE15zSX-jaNdq-suuEOvf5~kLY!YIaE5^(@DLVxmjO4eP`ZIRC7pHDrCke zy&)Any@j0b)L7^^>J>B zgFfzY^Pa6tt;!QmeF%L>hvP&c`Y7c$$MRytG-`8!anB+kzNhbroSv8^U8Jg|A}Dgp zSt!#LTlILS_sPcjBlZoP;?ta5t%s_s?te>AD9GLF{{x|*89^5CAxd-l-&0E7<%*7z zNyR;w*C6y=7>&e@{Br8cwt|%)k#i=hQu~tAD(uKgb!f_T{w*FTA-1Hv4P3wRLv?g< z+>}+{aaiEdzo+%nGlA|=PO6dbwfgDqTjjG(RxK_@ZL!b`5bKWrbmFb(2gP_IAF1EB02-Pi&Q&`0V;dM4_zW^(f!fi= zaPk|CHQ9rgq#oxxluv4)UZDH}EP9Wb$|P>8KNldA7BWcj7eqbt;PiTd6+D#-u3&kCj6K`{`!!`bn1xLU zngOL~&V4YybHfGfsj|P;QK-g}IOvbx0hp*m+o%S!pIRCyCk6Zvpt&g5;}@lrKqfAB zJF(YggrEt^SLT&JlqZMU$O{RtHgH;|**R5v#B2uA#iOS?!1;W0x<;=z38RX5TEfEm;cL77koNFiF-E$t z{EJfn&>LvQz$mK0C}YNfqb7M{^+$VpSkip5IIQKq7_UDWI4aAS)Tn{tc`9|?No7_D zJxd|o5a+nB3J*f>!dY5jT| z$-$ndDYq;awULmwIS#OLGqDaspKb#p2E39CqW3XUKHa{ifw?rR!qT85YqWpq@~TM+MT0 zFqu@8r%=`A0=5}Ba~l(hd-SDiSL7G(&pMgyt97Nc=aT!1|SGLp~$EHB^Ye)4%g3^A~ zSkbvszca&Vyyo&txi6Ej!N;~9OU;~)st91u=QnktEg1F!hzk}uUt;t&*99!N#Ce$& zJW5V2jnJ3j$d4O%eT0lL;u)E|E4dNzp+}!u||3)bPgvGTb z@G(ei6FCy_WDUsMGBq@tVsiCEq{npB5p_oY2)F4jZFKiVTPXL2CRSm z)V3q&a*$Ngew2VoC;*={^tKj4>sQRxF-A+F&`N6BcSy@a=<+OJ3uGiH!sNC~mTWos zZ!_P!PI2Y4LFj*nZ*nPcfpagrB42l5YX>24~=d(!@6fAPV zKyY#|BamAG)Fb(G8)$`R5b1ap%LZb~jD-=;(U<`3wq!ydcwgZ%R}O}i;O#H{yX zL!yuYW-+B${M8acmW@u#CN)(bP@iI(-gOTWnUq)YBZOD5!~JItvbPKrC@r3ysN zI3q>L$}tO%siL1|lBYaV*x6u*cX@|tm59195l;C(%tq#$qCHesZo?jmkFQ~o!L{M0 zN#x7oGE)D>QUomLo%N5*<90b7F*VxBM5`O3>0qe2D43AM$Drrocj-%M6)}D> z*yJKAljJ`cjfz=IK#-g!H+jNi@APSDE}c>QnMmCkLvPC;b>^{NihmmlvqiP(250b3 zBHwHp5*emEg3A!#;Tk+-{LNOwqO#_HcLOgA;CW+3Hygfgg#DrKWHi1k`VRA78j)X$YzhUG1=0Apca$gM8 zI%2MHP?I719pzJI%}#op2mtoJV{gI0^;PN?1;ApRUH+h=*o(f0`vx7 zldsB?loLLlhP5RvQPmkLCK*zTOgHn>(%Qw`ZC)yEJ zt;g6xMLnjYiQdjgoSPD^W76lAAO4k)2VM1%Aac8{>Wfg$K|3f=RpC8e?STWl)~r-*<7g7p%dl2lb10Z2 zKUYUYW8*{P$6^w#Z;*obil`AcxZZBE0`^u7i-=vbg zaQl!BvRH61T8c)GoD#zu!oISh`51PBYXERN+>e8eR5YkRtoJoz@Fq?{FDAxGdcRRi zLFJTzt&FWoF46PhwmvSX9^-ERv1e&n63~Tlll=t~iG)6h7W~}Wj(5Y-R-7T9#6i*m zeWJ6#?zAv*t>;t9KYxj`7%0Et3l!C}bcAQ}qyH`~ZzQ3H$y9YwFa!dAE#nkf)~1~Q z_xo_uydX$XKH9e+$z5!hv|Rif0Y7_6ccx>bIFF+o%_f)(37vhh@73ehvTFApCL|WM zs=B;|PJ+u3pXs+wof%wMWe6kINV;KS#7}mG!jkQd1(>bOJd+URA8d4|%RnJ^>fL?~ z1ts6YlS)P~M`rTvEP9MXc{RQGKX7d6j>3B`2+&B>Rri?CBgBKn*jp!^zE))WL2e+w z2k{hO*cQO~de6De&x!sUW88CXQsleX{-q=6BzB2zl7d)G_cH|DiE`~EGXHJL4<^{j z#N#o>A%>xZvL*a%^RTht<~X}NJRvd-`A%I`o{x4i-^#4Z)-CMbN#sm6g0928_ua-G z$iE_k|C0@0wv!2?%;K`Mr(jIQT8Sx90|;>?UL{P<7F|%#3RvQHu2b>RRx14A?2*-K zZp~O1#Uw^3&#^Dl!ro`aS_0$NK5EfPwuK!UQV$tFy?C*Zm>3Sfa%FCc234c!%i6uy zgFPkEFpL_xV+u|#&Yy#-{b(f-uwf(h4fa}{GpH2m!R8D5{$NuZu1C_=A!n3n`VPDO zJWOOJlxE?F8R>A!iHze5)j>g}875bxEKCUfQAFnu13NM^tAOM7z8ac|umiypLNs*g zz$;y`>R!!LCrJ-izB1{c-5C;M%|uU7iMVPBGU5KUJtDa;8+@0WVx0Mj*lIA45p;2# zp}Tez{RDBzevrPbtU@J7VZ1;jJT^fKH!Y=60G^K6*OH?4o)I!jMN~`qeOt(TvGDUg z5C8I=9F2W{+mnX3h1}e+v34?tYU5WJzx&(DK&wr_u-x>5e>ymZ(G3m{PQ-Y5MWCDw z_Xj9WEhA^iBcKv>Fn_LFW*3(!KcZeDc#}qjmWPjN@B<7j5in5~Vx-=UWN~7+8>6I3 z=BO4|(62QDXbF%bQv4y*nnLR$Hh0zsD3(_Eq;Mi9ngFS`hDI5t>Z^bEckhi=6;fLF zCW_WTaEF9E;amBhNu3;7lpDa7DA-mj0<&ie?UzTFHb?|iwkpv=0g>(!G>J5mOm9-U zr!gev~9k6RAiVZWHXgLZ<0VM zz)3>{9xF3riDn3@?$nY-{KtACChBx5cmnh&HO7zj3AmEIN+fMKc_n%_6`XyDvZVu_ zh$Pe5FAHq@ps8Dj*)XMvd9mhk4qhw8KllB8Zg)Z#&Xyx+&jx^_7m{JT@mhYW89 zB7sIFqEFbJ1SvI($lBHu4jH)kZf}`{TP!|OU0nD#R+2K7g7&b6l5`N~U2%mEy~3OG z^*$>Y1q~Vn6i&&EN;%DpLnMV6i2hvO_=+SZ%e9fJd?1e4-bD|ES?jk#3j{Z{0yf;p zww%aHN~@b>4Ii?uykD*})l!aR&cT>r(-PjV(@-bSDP#lwh0FgfuCaR!{$MrO_Nqd1; z`KfM)@$)Gp<)_#$&KiYW_7y+V48GA6aSO*c|1{VUqkSo?rE=$siOFC?kwdd@W%^BP zf}(S9;9Z@35GxFIn3tda9%_NDoJ7R@f`|dPgRcLbnw^~mRz9h6zB$2sDZm;w(WbJ@ z&J}|cgsaBQeV;=3bgf@|w#e@ZR}yqGNx_COD%@2iDFO)fyq+AsTgVX%bjNi{z?{Xp zc7W;8qmdKhlgjb8A!$21XWi>BS-%u*X|_jm({(+$CIcGIr^%TS|Wk%1N*s?-$FOEy~N}j^By3Yv{ z4sB~)yugby@Oql)E7>5kF^2yb&U9DNgZ&R}CgwbF(x0mdm6FRbmx8+VUZa+UYJf@>LQQs$remrdov&ssw9qrzTa{OfEBMhHMy z@lF9-zMH)wD-ri`&g!9YrIapw=|dpR;TRE6@X}n|5oL3ir-)Mq71*j`Zew~7AD+Hu z$3YDSfGvK}^)TuGsDA+$@uStFsB#PnPDC)S$ma*&({6IWdsXDn&`}W*686p^0VoEW zmn=Y6QAx@9y=;`q#G(xdy#XC8c2NuW_{vySdn7=vpA#a$7&kjx+rFGrln2OyueF`r z0iIieZigH`oG0ig#*jVDOgZqQT90{Fc>;ewdOaQ0=4yW`W#Mt)tmBbg%6jt|?;o^1 zs{?PG6ff~MY9~yhJQ7gNN#OYtN@!CjiMgzvfi9m-oPu)<_lQH^SPknYpOoPJ zg=IC21TTrKT3QKEL37z(J1|N@7a~WvFVNess90 z&8`R!V&G3VfgSl<*GJD$Wyi(@k@H7^pE+msmZ9+CcUiMcW)C@0o}v?sfM(zBs3R-( zkE;hDhd;Ku1Ct_;MV^5Dd!P;nj(@v&fF@l6hIiwU78q;?Dn7v4RIj!wybw60y9G03 zWJ`lNR8LK40j2&6=K>&>DP97C)cdq=hav!VL*QV{920+b#?V_xc8k{h}fi6 zpqkJcQ%>%LsX_8H$NGMwetC~4Hn#v_OXS;h>JJWBb}s+`i1fKpyi(ikjE*epBG3tV z&Vi*caSVEi_D?0#)N6o0V$P4?KImBw>-0k(X2Odq~nE%oi+c7{$i zpT%o-OMoZvDzlpE8ME+HLg>GvTBX1YF&jZ=5%$CR2_6)*!quOVHvtK0fXU+KnjtN zm}t1tyhZqK%TEC3eUeZ%0z`tL2ZqzZoCtfIfrjD&4C{$zdc|`J;>X{b_z5$ueSKLtpoOsfv4{iJj&Ypia$DxtsTCVx@m%b-!6L;B5w2{sM_s+eOBLb zDMM>(XWTgG^-|dd6cHmgb0$`9Q>D=_{5hHd8pt9y12_h^BRgj_8HL2|?}3onbmgh9 zCDlFvyr3$?YH4KOXHl1rcS0V|Q|1n-swn`19USuOd3BRl`l-rwtK^`0?6ygmM9Tj- zL)M&3W&FX?;zMOrF8+vWYYRqxZ^FwGaaf%x&CUmVa*;ARQ4WT8F1}J`+2{m7cZ=Ov)ic|C4u}r> zJXyPK{_cN;YJTyyHunNC2Jjk|Pmh+0d8RwT?;DBqS4_&_gJ z6`m5FGZ3JmeY3J@owa3A@C7j{!eGs#JaS%tn?Y(9){C-OJPD(qrsmcdT{nzV-fo7C z5Rr5N^@D1pi@~$;3`?5$Wr|iD!*4E3YOSwVP(cjAdvdzrqCo9j{_sNERBM4Y#ZM2= zNsKEYL79}I9QO^A=nJ=xo?>yA=@5)*R`^@EmbSncN5d zQWVffS6Qj5y(>N1g$kj5%dw`#BIBv{A2~OhbklTl%-bb_G;XHrl#w_i6J*?AGXeo_j&)X+CHPe2w4>y`5%^eDl7XH;{1- zIxW}VLWl05{Pv6Cdvi)>hU^Q!y)R(&m|Vhj(9_hax3>mgt3|d6aW+dJ!fs%%o5tno z^qVAg>g2&ehPEcnDImyT$sg3_?Ru*tSLbH3`3CjbmMTPPoXG#8mW-k}WNyd+2#Qpm zsK3{5JIsZ1K|bh!XIA--vo+=DLaS;C&88ka!IeB+C7mP1@~Mq=%<8U?AF2&2KkZcx zmnQqP{wQmNVx4%()g;!TTF8|*m)TGfn2tt+GxRbMtqkQ0R0N4J*5?RQVO)T|>@lI8 z@T7^BrC|C2$`qrz@|RMzi^+3)&~Wpr`moS8db)pIHoL7TM}6sfoAY0FJPir?trWYdI#L6L@}lBM}m^Xos4`HSKR zLgq9q+*2G>RiBdbnvvM;n3H|wW%?vh)eG&*oUihXri4igAso zsiWRzLQ#t-mLrZ9L#BehQp;MI~=ei_gdSn zscP3IHC^WsGb>0?QLBIAC%a>^^FLdMQo5I$)abLCNXX&;d79W9^pd(R0Jgbsr5gv0k5()y++O(SG4Fr&fPD+aHWO%>Z=a#7^Blby%_~rFxi$89Hlr`DFl~oI2 z%IPrbb&o4t3w>x{Xc1ENPOtWb4+o)UHhk~KimaIIRt_q;8l9Vx#w{Z3*NVH3yF24R zPF2W(c5FlsrlvhV(XurhcI##4h?#kNuwN*GvHkgmxY%*U{lOsU0Oo19tKiL9!DE-u z?}%_nyct+;)PInn<)ygr4;o3AtE<=*3k5hoHj66o+UYBU?!LHSVHnK*-r~W?&0YVq z;NQCO>}@nzGeatY}Wn)2^=k2uOr z(fd8h{eiz!Dp z+?0=-rtzrGC=C^*6%;TWF*f}#i=sG(k<=bC@wyUS>t9yrYSMkem%u;K!@E2%@=tv8 ziL1i4n(Q8W2Ek-De=9M4dV=c(=ljkpcsXKcCfP&i{p5L}99 zcn_TjzrODYezQG$w*BS#7~h}QUCATHFO&xHh;va;)((5YY3s&nrY_hCJ)qBM`O;8h40t^h*f3AC{oCY3JptIh!Xf6m|1n7(OkA4JCHb> zt+~w*=Ac-?;F80vyC@tS^08g1!p3YsfQFLi-Hd8G`JQ_a&GL%o6Pi(_V1rYD#FAQG zc(3XM=|UB$?(A=}%%@4DK>L;sCPU-NS3;KSjl-&RmXZI_MkW!@xR8i)@I(^-4D0pd zF?|U(G~cRvG(ShZrmssbhinus%Lxe8n)+(~r@eQ#wlekj;>`4eyf+cX3LS|ZAWVXx z7&p^Ma`}a@;N=vmKozMef%pDwO@>QEHoEBU!beAZ2+eZ7^rgkew;TfH;uFQ`^Gpn= z9qAGK>e8ZL8KybigJ{ufN%A$I7zB)bQUYnx!r#kXQ0(jZNf|EJ?UYz__G5bcT;q8l zafX`Dw8g}B1^p~gmPdGXsocV^r-U>|LIkYT)v*rJC<0BZbxY(J54s=gSM*^Jgedf? zV$J{w6pQ#SHZqY}6HJW*0%8h>34&s?Xk>zaDG1UZmdFv<)xKPE&BdpjZrAhMavqNN zQh7#!F&tG1(iY2e^u5TtNqPwmrhb5SPQ6nI%D&8giA%x%=v+Wf_f@MNUY5Tlb|VIg zOXOYm00>|^V88$oj9Hn_03Ve>dRZcp_?@FOO#2-Mgr0VYqrdzwVz21pP#!)c_SJNX zxmr3Mf3PW+%?IT!?JL3M#;A4Y{tUq-r3U{MhI%!A7`XNPDb?J{C?SQeU)V}gL=T?U zYaGcX=#oZel4G%%S=fwlzvaqL2w zetiF+w&-U_De5KkKDiFUUb5}#wnC;qR7y1O1iFhHd8&xuT6qFW=ah70AtP~{H^uUH zicCyQ+hsQM!_bt@afe{vJMTf0k7^7WxR)iwu=f>KDgxcdDpRwm8naPMsvq#zz2u}v zo~FE{X*PP>xLr%*)M7T|$;!rS)f4B!!$0s-{YifPS$mZAO)QTv600t% zy_ZG70I_=2NrE<2hCEtGZ6($KI|6M8HV%7H@r`V&p_ zTHoN7*9;M|L!5Uc_U!>PR_RuAG2skNz8T4x$@a@AA_JPIdZM*a#ZIp>3%Heug^JDR zCEM_)#ESz!6y~y7`r8{xt5BT)au;E<@No_~m9^@uZsnIOXIg%oq&I2GX{&ikuSy+Q z3hlr6QBJ?FPE5g2SG-bka(?fWUb!JG@K0N`Z_mo9$Kfu@9C39BohRF9x+5#2-U3qr zrjfo)4F>&k8{=8OczP2_nuz^gqHHw4aHbl62ZX^|2r3vd@2|)}0G9FRNhy5o3)kK` zhjjzQ{90AGsw7Q^BJG6^Tf@7y9~2lz8vD^-Qc()&9|3B9<0IWm(t(IytYYYZPk!Zj zdl-y85ge-E`D$>B5IULiHh&Rm0+T>b&vMG7y5 zksAk#17O1NsI`4Z))s)f<@4_s zA6^`S23QaN051Tb16Iq`h~38Kfnpy7@;T4z+O@L(1x>lj_xh)G#=N&*IdEz|3FB{q zMj9+v7Rnq3WIO*4e+M>!0RFp!H%$8}Anc}9CZj;;C8(%-?t*oJz6q%G)vSt2Sb-3z z-#|yYf_6r*42TaO((D_9zI!G3bp#!SA+8vyH!QP8a3ZDvCe%@o`5;oe;Kgtr&Ezag zY4$mo20~s=AZ3|y)WI;bR>ZUBbgTYfjJ;J{lg-c4#WrO0X?NtubuV#j0YqgDjW_gaa-{}M?}IzGxn1ckeI{pb{rGpe$13anl%a8 zP1Z%lt;O~2V={L~{L<23%?L$w`-`({6+H@fx#vo^lAKI_>xSt^I{@fwln%h*$I$2C z*)Y5i`Pn{T##r9g;Ap}dn}wUpJ%_@<&q3ZCZ5DA!Kb;tawsIsRYW>qRf{xsM^->=r zw+5&;O-v_C6vvDYqokm_j-GCt z)7|>_f0}Qgm#^9thf|zIQ2PSh1xlTj_4`8x*4D-EaeRRvBGDPJtz(WN4kJtzu*!|1 zYpBq)o2rdGR_k<-he^~yhC@pm_~o`Hc_y8_vP!0|EqwOk5@0sXgF6NukF|mKbVD&3 z{NkI2ERX@!8H7~S(xX`1yIG3>agqO%&`n0coZ$YGk;39vl6u!nn8WJz4eL;egSSpW z6O2ASb<|L7k7zYVUfQMRiBTg~Z;Hdz0i;#+{m*PF^ZTfL7K?_K*Vecor zS!+G^1X-w7^dANCD%wpJdQdZ2FeI0*%iY7g^0K7Jp6t4C3;`c)&OCgwj}=x#9Y#wB z6BZ^L^|!(hpK?1of`fSV8(jP^;k-~%M>E)fE*Hah{P-uf)GaU3KncvqZwGAr5`4CQm(;uBw84HS}xXPO{ z^>>|ue{J8KE}X(*V@SGp!-+=3DZkSBlW|k=vy%0HSwPy<;meZL`uUw+L?nejXfOW8 zO3a%J6kccgV=5vdqBg{)QYZTDU0TV=$PgmyqFg~?lMjGVNBL6di3pOFsVs|8u@Xs#Lb6`0M>&(Re6KvE!WD6isb z{1~QoMghYO2zRY_=*j~y!fW208&oH&-5&y|SsaUUpi+`Txl8YR`B~5j_$t1){4L8j zs?U?vRpLM)IvFlWsmf?kg3Dg`A;&Fe4x_M0|Nx+7QuY`jE z-X|MK6_yR^or0Ohi!=i15|A)AtB|X&2t-qo&)gm1(E(^vwW zl)}zr2paANa_wL-Jb?)x8p;-CFF`jxcVIie3^nFh>Amx!!R4dw0B+0~q1Iur^!vBy=Mg|B z%koHS76-=|+$fZ8 ztZ)WcfPC!ZUXEbZ#3F#5fMSnZlbDS6Hyp87w?WkPzQcd)-NkOXem+Azy=h=4utr}CfnH5Xgy&7&kIxN zCSg7l5g8f$1uplv_;>+xB)O$MEYkZ-kAWllyB!LLqqPxi6grm#E>9dXG;{QR4m>v} znxE8srZ)u8F4j`gzg${^aClgdB*lRyNyO}n z(7l=r^Jd@k8(XUB4{|b|W3m(jnA774@a$=^ow72rBa-S~i_BZ_IBMKq`dMwEb~N&9 zoVor^)8Da@J72i<>Y{PU8%-#Lr9Kd@RGIY_rA7T`e3Qw8rkI<^*lt?jg=(je|M-Irzi@bc>6NpLKB`0=|FscEkP> z+4O8=L=0!ny|wl*m;#M(mHgqPn}op%496VDHdOxe3*RxN!%ne>dj~WVZ_?>#=*8<+ zU>yOgmd~xefW-mm?3mV{v|uA>YHE_gp?VRB6&Du=JZ6H+AI>tbavMy@fmr^JR&6H9RFf#Rn0g_xV@Heinl`=3~+m4iC z-+STzQRz2-8=C(|r6-8e`=4N%AnN}zF@ky+qCKX$uK{lqt-E{>tUoJaHz{Cpa(R` zlan>M`5pUtADvgoKl_Y-=I5z(1LH{?R}j5~fK^W5K21bS;v1J6vR(-^k8z;R!1=~- z)t_+fen9e-t5?_de6#8^|GIxwBYOHEC*9}V!4H)=QQbRfQ)W}f>J2$>RTONGE{&kJ zt>&-MF#&0Xe(>M7pqf1jzGJXDBgR~JyztiBz3;}prZmJYM zg7Lit>kM#!(&xgQ-;|U$^vp3AaASzuY*XP5Y-{rDUEN3g%nCl4@o&_=az$ZIQRcDM z_1jU75K-p)!Ejk&u|cH==RFqMV(IuOmr?cArn1;vJys8pMNvGI#_?dEkZm)SdektgpVgRl6&$E*o3 z{y7Nm+n1xVtAXSxbZ(qxp{fMvTrXGrE-WB1>ijPl9fQzSmQ1H@u8L_C>V@;~*9gws z?_ScLg|vVtm&2C-Nx>)yF;1JrSFOUd0`HEov48owq_Xnl*QQq*Mpblw(RJVjz zk(RzEy@t814DTN-z}MFuX*%(R4|msP@G*0`gH(W{*?SRGGTI>wn9wQ`zF4fFAut>1 zc+g4X{Wm9+hBDS;x0_ky)_sc=h)x@-F?=k#UX*tx@%zoShS&PbMW@2eCn^()I5oX= zd*2>CUWKHhLVlenl8z|aOQ;RVP}MnK$%X!8eYAkoG2>ZsTFQx07lw$y_D$@qkr@)b3C!enJCX z%kAvlL(O;jH((+-654u8>~FlL>TRXkCrzgpK#>bdnL14UZkD8=mW8|z3Rv4%tDk+d3`}iR)ofNAC{~l z+sUu%1!=G8mG5@_x}0u#6?rr17fYOF)DER9Q-&Nx1=DEsv5 z*gZNIZ01~5>6(w;z+V31mJwFtGW!U0&o?$@r`~>%5eQHt@sc^8TA?OV*TW zhgSUH6U%Igw&aSsD-3;^FnSj%)3q!2aX7ZPn zS{{&Mj?crs5iWnjf6qZk z(vL6n!mLT~=L-hbJ*G5UB4WW^b&_%O)Z0O-A|dGw^+2hx4mA zV5qy@;?u>JjgzsAh)+Xypg2LPAIhgZNa@}^5jE8SRi3oiSOpm2q@?-4~6Zmc!Lw6Aln>7y2N+FX(i zoP(sFLoC;Vd#2YqE6$hlCYa6$6*c0Y5T*>8+zM!Z08xpHOkq;&dNfv3(j2M8m>e*0 zHh*GoRh+7=V@4`Jri?OeK?O%Q*yU0@TO+C@zm@d3T`=gxwr>_kKXbZ@rva7a36&OyP&ZIw51&-7f_`hDP1B$O43d`6NHZGtR^ zi?o-&45fJlskx%mWIAlPstA8yr?Sl^z2`P6_*<_C|6GgHKkgEaoJPp4q{JXlkPQ0n zTvpvLT4M~&iA-5+osu7Zo68@z*MupRVJ~u7KCN(L^{)!ZTVfc}yT*@cdL$5jo-T4J z1wNn1UWrw$@(C*`6yOYFS0$nz4*5~xjACfMV^w^kjlW01iY@i+U_xu16z7+;lIu0% zLE=0UG1bnteCt5I)mksKkvWH?g~D6vm-gQdWUh#I>koS3fAmi&`N@&|llJU4wuh{= zDDt5Cf#$T}GjB3IhsV1^_=TGM<-=?AWt=Zr@~&qL+0igrI2z)L^?bLB&ZIHcxgC}K z;zc%t&Iyj2Lze1V4r^t{USe+cwkt;3kn8 zSyEXg_Lg-IRAJV-wZ8Cm7WEr4lYH4VCdxRgDJ&zrZZrn*cj*$t+0$|@T>F{3Ia386 zln*<8IXz=ryK^bUIzlWVP!S)?otq7fJ zd<~7e2VE*4H-yCG$rNKM1xwybbWwD|E%DTFtSsL%xlr>h1kunu%^<4 zo*65NjMluZA~LBJk<3FqiCv}B9_4z0a?|`BNam9=Kq6olqCz56)Bi49Lx#w6_x6Gr zlG)vA@_5w2HamB7O!c*fol1#^uHENn{eop7w(D^*$qzQuW>ZtsWvzJUUN>%Z%q)@Y zsT#Y`5o;$$vD?42BDSJ_Z2gqm0j={@W&?}SCZ>ghUgyDtkYIpn^m^~&mW+Bua{YLHHGGar4(t@m=W7+En zqKf9snhL(1{;2+wZ1p`rG|_9fy~#;hqvc1#C^eKdBVVRNv$-&6oqqpNQu{k9A(`~D ztK8{Zt`+xrC1$?{#X5M%8w!u;hi8%uv^O8|7+wr(Bet~hRlI$Ydle{N_VyoO;+qmI z;_bD2#bCF$Psqh!)bP*Nr}QI&42N$#w-`<4F5r5*!DpCctdp8a__CaA67@#w1H#}j28!7LXdKf@;*|N3NZ#g0h&FrgOlC^)0Yg$=?X6hQ!qRR4fw`Z+rzh3!7atJK-jjlK|S zAsxBQ<($DbZ9pddLj<7qbi1N@S@nlE&?}5L@Lk*VCkJP_)!NG7qGIm7ot&1E&9Q!{ z_=CJy_HAI#VMQNFMKp6PQBuG79`*SydZ4{DUWV+ITB z8Xv92kwasxtCSGwZd5%ZN`1|NZuar3dV)JQ3s2oBxv|Ec9V#=sq)p^0{$RLsX>d~l zkK#?wNn^pY&(Mecs`EVn?w>NcLg1 z7pT4@K{=O7_*rxytY6gvQbAwNwKu_UIY`Imqki+TMRHXCD+bj!8!jmXACG+a!lvWf z*bzPuA7Kg=hZ|)}-n#M6g^Nvew~rr?a0@PX))egC@@7-m8? z)7h-ImNC6nOF@gTX+JZfcxrNNYRT-U@RrB$sN?ZS=t=Copc93t#zB^i;Rfqg1dbW* zUgZtvViTVf0aNQngSrp8;QTxDt!Tr|ugv){7jkY*`SK&OC!E!lod&{zi9qf&Od?>t@5B z@)+MqV1p_>bjF&K!5tJ>;dbkuF3fqum%#DlSBa`uwp92{_l~&Jw~iBd5(@7tF7c4B z8l%=VNG^I`eGbmYiGCI|YpKZfx2=#zn-k@v^5{uFx(y1ad^}ucY>U+W;+h$AAAh)^ zi1Uu$zRFdd_ZP|WMXXOvdFq=cYwiRDHJCFWt*_PO^{hyxOvYlb{Mf(zqkhvjdV6m> ztl%KReUP}h{y|*nH)O?5Z20b3szGIgatWEVYJpgkYBZIK`U9WAz5DdXd`Z1dN}u;- zDtEC6e8pE#Cm7QGqiLz>Hlw)eSBRwfNq&Fb>*r6aAD?nDH?(k36i8GG4ocZF#hJ1@ ztHn}FYJsDpCTSI^Et#LN%cPYd5Tw~Jc;#B**pm*w8R&N?a|eW2+`8}Wnwg(^_OKQb zaukBUJ>DD%vF(v`g7x>t_`wVD9V7Ez{^tRB`yFd5#Ecj!?|)@>wHYSZv}jrP+dlnt zU-|g+ioM1-ebFyjA+5JU`L$4A1adYlWG9|%LJ^wIF5C60QephXX~6XUkD3S(tyqm@ zy3JYJM6rPPlhPO(oZoVpzhVmBnBW=1RE%fCiEs{h~6?Q+n6pl$thC?Z)AtTCO zsj=vzc#kV)3koSu1qQ#nhFlcsoU8n?C(V0Exeu&FsVhwh zNlRM~@;0k8X8s}c_oqK^Fgpa#P!aCYcF@oqOvR1hQ3suP9X&@HYN7sR{szCXO@rx@ zV{`uvr^0*cy2Owv83uuY6KHgt0x7+U+#{a{1jzCl0LexYCSkZ57nkdcY z9iq>t4W@i9yxAQU|KB=rRlhv2suJj-~f;N z*^^{F&FRLYKdWOuuxZnEZK}hk5vKr_I7$D3&~45N*MYlB6II>N^Dymo;i`&*)Wq$V zQK-oJFFanOmLQmi?Qdq>&Ucwv(ZN+{T3OriY~%bgUA5c8p2UoYqWtZWu?r|U0%5B(3+TMmq1OLz~pq(8NfWTjhYddx(u+5uvBiBr@`MweRAm8Cj1@I zx4*n-PCLpKh4$eu6UPw|I|l4RR9Y;H;p_R~)ba-wQHg&_fxB2U%mtFizXO}Lcn+{7 z!K-gqaw2`<&&y|)=zQ-IbL3sf=$hGdzUmygn>b(k`Te=Y)uakc_qfm-y8>Ib3ot~Q zgkm_gV!gvQzyZ}oh%1@ZT^u`Ok+5=$Lx9^H$+TPiZlasLUb%5)=BJ31fgn!na&RQT z`uMgjf^yGbVjzl|g2}vl{@2kO`M^ z{#NfI(x@x?p7c}#g?Y#(RW5&}-d#S^W>p0^|H8X)qLZ{uwV|(8{D$Tln(LW@uKM8a8G}**~ zeSk&Dw!&xW(BHS`QQT9%@E$(j&wblZKdvwLMVNc_Cv9-;rQ8=PD8?6_-iEh#2_R!z z8j}aqer`QD&voqt`^!02U4LNR;Q&NZRk-tM$9~R=(SkIAM0}e|HuEUa04m&?epuM2 zpJy#PnnJiF($AfKOWNz<`I;Ii4iJIQB=H$D>4N}Yx2qYFJ0nRUtjIHTF{sAh+mRQ- zvw%n}TH)8zU`}X_`}EEJF6#Mn9g@1``E`&H#SV^Nb zQT0=KuIv56DIC?WhVczYO1VU`zPkZ@{QMoyo+)d18KAf_MmPBP6PSAITns2$xRFUU za_pz2QdPr2k%HrTdmvF!>n~(3=%_c2$4lvTHkNsOE5c0U-4fy~_?9MrYP#^#-5&pf zK8Iqd%_1Q&@LXMZvX9rE*xpBUJYT#?ZU!;nHRxmFS+=Re-}AhTvDEj?FD`g zwz0~z4M<_f1sNwE%-tW>kYoSi`OOjO)Q|UO4*?yVzj(0>Ca1A`L&NVBRuc=QMcf&l z;*4z=bgN%e;n#W37I(+QNr9K&dsvZKmO0JsUhwPW+{^x4ZM2CT;80Sx1f0S2bo5cE z)!RHz!NGn$l^7~+ne&j^t!82pGp1i35?>bUWw9XL0RUy|P|hW%{GbJd7P>#5oYTnu zE(5I0UsI%~ihviE=Y+WJx=SSi&-o93uS( z#7YJ~@}-*p&1{9er{DRG)*d{Jj%_hBC%wzRC=k&qEGn6<{4UI5FqC6x%+8o=FbZj* zweuidHqpns&gYB3miX;Xwvy6VY~65jTJha3284Pk7kk_?p$UtKp+Qzlo(?qfrdU^n z60sKGC~V8!RQc!PYcR7MVk}hpUQu8pcrd-us_}-xNI8nIP;d4NeuIs)dx~0c{p<%K zlgB|36s!{cW|1k&h*AjxN(To;x~Ff_xYSCBWpk9fl=M}+KdNwj7*M>+)v!u`YXRCD zYDvU{A(8uCY$9`xop+PiAI66S5V4Z3^rRgwXXwWsD?HTaI z9Jz>?;Oe;j)1p-;@dI}JJ^KfPk2bS;4AaH-dK=ZxG|YbpSYl>Bg$A z?;p9XsTw@8>)TJ~=DtOFiy+ffqw((?&z_5z?1sS@Y@62);zRrKqZ6H8gqL^8;9qZ? zcIu6B=umP_?|qc&HlsA$i}6QX^*Pn!M1U!u8>X?9tzh+-pEfAeJy&eDRu#|DX1bf? zB0+bT{ryuCw8KvdWwv`gzO zg4P$d{+Tu|mF;9V`@%%T#*FVmli#}?Q*gbckf9n>F*o#j*Gw|p@4NR=V}QOd!z&|M+H zQLAvq#KDctbt(OQGf7TkI_8iQboqOHwRTW{y?P13B1DsX*^ObVPuM=-dszLI_k%Vy z_u&Fwu#8LH*HdGe0CG{Xq2+Jc1+KSsD7b#C#&JGbc1DB7UrS`3>d=PSt(*p?n3tGg zG5ISebH61JEIVXTbfmbSa|DuvNBPmQH9t%pMC-*!nYwaN%_-ajNqf(it*b1h`d-{0 zKXOZHYQnRh{njeL4+w72!{2|lo>^rT0p#o3CR(A%0S!NQ&TerTatf;gSPLSk~+`(%#%)b7nuBHCf7R!KFUjb z_7-E`L_ZdM}$}ch9_7hrGec$30msSjR!;ft*h7 z2fO!~-x!zj-_AS>CQ-^~Wg>dUJBs`^J?_D*n$9xy$SN$ZQsV~?t*5z$r;l!v{$yQ| z2gLziN>nvF_dDi%v#jBpP6a>Cym!`OwVtq^tJJdLrrg`hfCAdnv)0N`XN7C3t%LqkRQsy*q4k7QB=>54F=*Lx9;gUk3`G^m>o1xEliR(-^;qh1_( z(j#SNBpF8~^?|?oRa0!b#I)~P0Ot~SuuDVtOx1aYOa>*4H zD(8k%oO{bZ(s{BR6I8hXFi^cGU~)U$ef-W(OxK8owc6L)Plk$kXzx5nzZn$2&O9C? zBNwoivv#nvSJe} zBYI374=R&9nt5oy$WC`4px1CFe2RbFoghv&`DsJC>Ko#fUCL9o z4%T{YtDdbm(Nc%TN?nXiaT9!cw2}BK&O5fjak)o*2a2P-P!Ip#;3bFRCV3?iU*}z) zUMldIsRo;&SV#H$5_!VTd)kMyzLaur$itcmGwvO0C6m60^&4Q?yX*1W|1?{qxE{tu z%Y=~wn1UPa_|F|-s8>99rCX&hzZmizaVlFFU7m%M7L{f)e_S_`yyy*I*9zPZxP^>9 zN&Q(Emo{X?WH1)qesUd=`{w2AC+yK};(S@Vr^+Gg)7APXNj^^lQ+R1Lwq@vJ+YUrV z_l+b;Pi=bIP%ckbAALPV{t3@L<;z;5d%CPrv&(PVR1l@2V*fSi1d~vJhrKQ&bA&y^ zFi*dN%Yv5{w`1Zi2x|o*Z2lNYrpncxK8j?7VLCsVG*A8MfE6DxBkLQT_x*8c%@}%L zWiQab%;zNIIv--Waez0~%rhjS3-Q3hI3I=nt>%u@OtIOGaPBX2VMyd|O0@gsGByPh+xAXiB+a zpHuiQUZO{0ko6oT%8s(riAHsW~;!_3iTF-}1bPst(aB${Sn>;!^>|%ae40Mu+u#Lp3?_ ze9X*lv^|A#;h8nD%T=jvj1!yn#hleNGs9DxW7h@mD_BjYY)YmT@)w->W79lZNq6mb zO3$Sd4|8bJCCy5BTh8`l)kl+zxmcb3tFq*y7mxIAnH8QSsyw0YW?ppd0cK<`<;pvu zAB}mGY)S1DPhYbi-gS*Wf06!_o@OfefYnEbNe}E-)0M2XfLeakkkS8a@cOvWT5Ql;)1TB8+}Zluv{yYgWpikLx+!WRmbKj2Wg7!cXWv3`sJe zd-m!LUj7?1&*p+LOiCsDURjc=zV(mGrP=AjHC}HgH9K6A8n1aJ{KF8H`-_>(2L?*u>3^(+$Nra;W5uogtnFx^U}@S(M%+SXCcAd}<;84Z zMN(^mLeYZF58-YE*l`ipZkfxH&PgFAd@<>Sb599|#i$PfLOG;u?x*dF%cq=SHeaD? z@)I(XA=(52#%KBSCp6pNLh(MD+L9XHX;MU$fB>MVDEYDosjUG&yr0xlDsth+_*D*{ zp)CBgf0r_Aia`JP2lpUI(LdL2CY-RLf3B0A#+*o=EX66_HN6`#@dF(DKOzRa2%Rxk zigOx2^?^raLq^Id*G;}Oa31afJ7n*p=V(ky>nn_$B_!Q;m%7oyjl!7z11} z>vwq$a{lw(8PC@U$OArk`=M@7;%GXK`!2YQekq1l@)bB#UmjHWZ3vglK0FxJT(4Y7 zYCdDcl__VN11BXkB!yTjwHg;D7qWffu5u_M+suy+_V{!JgxVy1w~1XVsunM>o^O21 zNA9OX1Koq!w;u)i17)R?*~+`MAYiD}C8(|T3qgJvl)8DagwP=yF12h(GcMM&MO!C+ zSOZRzsfvZ)1~MX;@z=@MbMt3k2;fQiHS`9phvXS2dWNf`Uq=)EcW1EKawC&JpV{(t z2fKjx;G}AJ%LBe>72*&OnXmI9ROMf0y^NZ4U)M9zY9j0PEqb+AOiHr8%*E|A0;*+k zPhG|X@;Vk{s(9>w{>c(`WlL>)J9ic34NRcK7slc0r=;3?J9)I{H*R12#(vl}Zfp;X z58BJ)PPbD4{dB<{>SKoA#a@;o#XNW2?*JfS5IrEwGVZah?h|?o?Ip%dj%c;b4BykW zbv@G<*&AQD_e757*ShFEGnv~F1wt{PV zTM6d^8s%JqQ%`_*1U4`l`#;MI1AbOpaQ+_CPW|_%)?4i7A7N1+mrL`tK6L)NOmsJk zb=B|uV7z_=p^C#C&zZB=Klbyd5PF*|L42ye}rPztV0;y35?&` z-l~;k75*e;^ZDdJnVs zT@yeJLBwmM5|r0GAazImj_txwNi>b7w*9W{gBs!_lnw zO5P8PbVs@FljoqU+0{}qYAQHynNwuWXdBo9{uCIL$MZPEIu?3V>fN!M9B8yy%=F$A z0US2%u+b^)b%WJF9POMNs@GKkHfC~Zn7YHY@GufnSHONre^x#;q&*+Wy137JYcG3zPn*!3I?cXG#3(OP=&3m%3=Ewxsx%qbcb6@}Ou{P-Ju!{$rVP|J^!d!aXY>>3U($?lOo$Jk zKS9Mc=i0Gm#C90VaX0?uGXY+tPoj=_3ZcP&*TEJ(lUn9kEA52?PzB#Hv_E2Th>|$` zef{J+tdHh+_`2euR7-f5yKq)sHl(8J7T+)0ztxqCM4P~JO~Ww-^iHZ8^dYqn{4^V3 zaXi(Fcsj~^H+~?v8CX(x^j&U;e+5P@Y^aSS&NGQWrPZ-?M4BhHTfovpz?m$((K&^8 z0FWilR7?|}r(77zvaZU%zZ^|9w1TI7vb~R#hc@sCcfjUlZ)30~th+!ZjcGp4EA|3h zryZ?FW-a?%)=lM%ZuG3^^a1;66J`$Ifa%)PnjR&-8+Jv$&(l$=X85SV4Sfk7;drVx zx!Ys&rA#1_lqDqWw|q8M232}^(JK(y! zp24}eX{>QQ=RO!v9DyK?)p^pYaCxWyl{vG4!w;+(vlbZM zJHf)YR$|PPj{*ur)&DAh8|S?UxHo-rKKKEl6Ydv-k@5jIIPuW4LV%Dnn`;eyPt2_5 zKyS$9eX|522g*78ul*|j%FhGVL$H>}LPccHYYpvla?qE4al-n&S|I1rSBPS!`a(KL zHRl#mjB&V=*Q8?_o~;D!IQp9v9n%2mcMBAgUjbyi7+nB*=2uuPAhK`+g7xB8xZD1~ z_fScJsgn%NAqc`$!O002a-A>CNb3sD`?E}U;MUi81bihZu4~~|`2)vweD`u2@Ps#D zH9dZn>H%N);^L^eq_FhH#g^ZtZi_Y>o;ru977C7P=hp*6|CK{q?C9bLnk51g_i>JvS=vZpwth9EQN_-`U;(1Q{fJ zc6M4o4=A~D^_}|!lm9{*)+QI@o265yG~B%^@pPvi)=QsH=!$H?`z_Rx@X#f6^y$W0 z{f<#UWKN6ZFp2!|_vCjVfzv$~fJDO7Q;#ogtdi8bMMtsv`*6oaZeu0J_pfF7p0Zwe z0}8I>X&OG&!{%(#@eW?UMYNe@F|%2E(lZBi1;N&&3#;0D`v-O}k=;qG?1*pEYcTkN zrPcNVXnnrF{jrxUU_NrDB0RGXA2k!ev`e6mFIk*8*=8dY`!NJpJp0ohz~K|U3_yCU zt45{mfC=~Uv*B5PIIDfGL0PxxrcmN>1wZ&?9$^0 zQd{BGzS(wCpum}c$~AZ!ZK0+2t0u(|(7Ar;lc^dDvp!_{1JJC-qbb%cF(*p~Mu2O>BXlqua6L{RC?uxY&KY$ZFr%&u^z*AieAwBKDN8ir6JX=9C zTf9qYw_)I>5Bu_)w*`(@LOWsVAp;G};Z$q;4z>yw!)6nXjXTjLS%P(x|FRtsU`#@k69 z*Nj=Sn){Zn*CON^>K%uSSJm#v^Y{|(h{}?M$#sw(>XSN zACFTi*5NOcsM6noi7@Vdi!bzx?q9eIm}rB&fixJM8OwbIiYW$wSrhu=P1FtGP z;rYvtR)He_Jxim%z_s^sA9!g~*1kWu4wu{5%tKnjKfe1z@^ID;d)v}{g87s@u{r+L zWvH|@E}Ebg0{ZjomE*H3Exi_QO~XT#NzE4r73ft!Hq`j1*%2-D@HrU!=H2`p_*ff& z>W>QdhJ?$ZZQXfjFROrF{~A6qPFCFBH#nx?Cg2r$4PO@=$QmECAolo(!a$gUfM!L5 zCMp6yZg1xaQI+&95z{|qU*0F98$4pw2akELrw?$8LxCms_fsnj{(FgCQ?{T#69*AQ zyh{<)CkI{1NwgFLPEtfSiwNyaarlECkLqO;MRj4l1aE+9w67r#Yxi1f_aO|Gm@S_T zRQMjS&!~F>q*;}!9Kl#Dy7hIhs1aAT3Ee{AN0c_%<_x)fHYHGDUKzRiF@czYx?Jcg zL!jbZKC4W`zbx2*=3coSLkiqlN^j&=+Ro1V?0rW}(oJo;+MM7RTNDXi`(QO(qUAbe z_a*$j;13&{NiDAWrPwxIC&`nzo`XTT5xJuaq5?0kfC;z^lq7&-;ZBytztwDgd+6kY ztSEYbtawhwN}f3ii}an&hZjSC zgND|Aar^GPRS}xFPeW)jG!JE0Vs+VN2YDYi7FscEiWKPl-2*X4l=Uatl9&$ygw(B%m&`8|lEm zKzBa-WuU~BYrNHt!>1N9Qe#MFl9M0N8<`}zH6&$3Z#|jdL?FKXUAb~iD2>Sy*j^1F zmaz=mDc%D$uI(fv(+!pG5mm9WUc_HZIFrX|k@C(inX;eW7U)+yw1wS19dPh!`k_dm z!}YIkm<;NGL+wtd<#5ih;N zL9EkhiBjp)g4r4-x8wQH>R|L(UR3(4K)Sww&pQQz1I?oaZ|{riPv62=+!+|sE-p}o z3JBh&)X_M2fO|{Dlx|qcgl(%hT{U(C+Kq0i!f=@6il3@LeOMAMUyLMw+Lh{-&YZeK0zU_ z;*UHZ-npsElCr$)Qp&t>?E1FgnI=u=BeEB-u2z3<{J{3tEPq;HfT~rs-{KRp)i6SJ z66Mp1FKjxnep@bIYM2W@Cb@hvTHNf}Gim-U@eJG(y0{Ng?U(|#c~&FwK>8cG%1jg! zq?{+yJN?TiO)${az{`mWCzMvN=Gx1lKEMAgq~m;|m2u5^q#V&p zC6tkFzwvpTNv@5q%xZEeM0wPTu0{zvQQuAHLO-wc`>$t8qpK=s7HkRm;{3fQ(AZFz zjN{*}HLPe!Rpx6F%swL-4nty9jkA+I);kpkTMnu=meE0h*7+t8NALX;Xh5f+EWHG{ zAlWf~L|Ir7!xINh@!f((l)J7+yp+ z2{{P&6&hCTt!kDKqiHm;q}{96#-0esJufYV`7?#2v!=mk>R^e6c%`IKF#`dStkab6 zScH@w#fiE}oT}uUCn|4R?tL{Dp6vRm7Xs zlcSmnzUpX%d<}~=N>)vjW00j_r9=MZqn&?h$)6MAarS6A-Me-ql!vyppWdQI2ziGA zQ#JC#JdLl2BXRH`g+xBD6(gg_O)hgXWKzP|4S$>o!nPqAKMe?GDBw;qXhbGuyi2LG zJOb~4h>N|X=L>y8Lm-5cL`tbwkp3>^-RLR1wgBAhiyI!v+ zsrYZJ66}%ce8ja%VK|+s5fRnSlvYVYY?E|7x>8R1F?p^3dpB*&A2nlxyy{TiG|MX7 zy_`cQohmEOeT#?xbX0|VXO^A{H+?X-ng(#1VBE=jW5b}no5&W`b zN6|Uu=1C3Q?O3BKkTR^_Kjz1EeeyBRLf#8;b$0pcGpYQ7XKm5`gVu}mEWVGONivm{ zA0yP?$W&i=4{DO{IUb3~_|^1Att=)r%*5^Ctc&gky0@|nvGoNpqBGfRwXOCyQtQfiB^*Z1*zY5V{|e%hpuy!cxT0W8<|ZonL6=r z>)o2iUnotO|Hx~oqnjllFli=vH;>c&$9C)6o+Y=88>C0a37tzWbhzz&9cX@xcPAIJ zGa==OgznLFw>^1kG~+jzJ%+dV^Q4gC$6Qz^RjwwSYe^*i?BX9!Kcmz)WLThYelJ`XHQtz;E5b)3utV9MP&lMpJ>;;^6YM@QDGW*&P^Y4&7|D$7KV@m6An z-%5&F(Pv;5RMAqBq2jJn+9lsx_N7@ z^RuMxS6>)?c-26H!}~SxMQgl^{rv1u{lK`HWG3S{?=Pci&H6LD$p=;UbyId>AU84t zy+>#OAKr9aEQh9Z@Cl38h}R|ND8i<^CcDA%X>yeE;CepUSA^$T4h&j<8c9-}aoDFF z$2)h+mKCUEcn%LH%yF!jWtx(Xik5Y~>~d4S$+#m!#B|RZVK!+eicDfM??A{t-z7kH z<}B5w7dME|+P8GY&@b}loW|u-ATwP27rDkc|f5G*%wNXz9_k;tjI7Y6$}R>F4-jtt{CH_lOmR7VZ$DW(!=EU zx$SY%dv9sjMU8wExhk1u-PaGd6($fxoaU0o%Ngm)nF(xu;XG3b5cTk}g1D?k6I_c=682qS4W64NSz3*%^i2uIt zUUAtV!eV0I8~a8>g&NVDrVEpaJJYboEim^!Dp1yWcPF~O{}Uqk}`A)aD<9^x7{F-(7UTo-z>l)5ZhYx>P9m^+bC;+onO z%7fo?yN(#y_d;|=uNxv(QYx&@?`9NK8A*z^G2W)$s)jZpb`tsjnmhAwDEBswpYx(q zB1<7o_85d?OW7%9$-XO2_GN^_k#!IqTV-En%!tgAkM=&--5Qb-n++^Y>iOJaaw2=Xc$|&-Z(OZ(QHbMn=9Q7oB#8SwtqEe={X?AQ97% zQmrLG4bS+&w%=mZ@a1p_{>!>sLOwoUS@@iO+;Dpb=&2<8^;S;LWmNZ5IdUmYzj#yN z4aEHpUP>j$$v_KqL%!PP5_eK%xkJT|6JX&m%+g33pQOK23A2teVhu{H+&L^j4a0Fo zb`7#+Tsy}{{B6*9$jh)=xKu$#RZWA6dON&F#icixoMOybG*OdoP=9Bgzebnf;&4|E zYP6X0)LwdWOC4MM0wZhsYB7$$aGmO=i1v-y=24Os_12fVNbQ zWp~mvR@{o^rIz}tin%5Ce1s7IC{`5r4VBiU-94Ai?!OgNw3 zeae>MHyck)sATxgxYEV%Pi2xYN0uAbU@A@8U#>ro>vz(2I``p5ah4VBt_xG73{53~h*}4pucKz=nL_rt{X!ZfA^DV%*(@iN zB3UZvw4-ie=to_Lqy;&yfX9OYtDWM63-yw{Qd!Jlo;;)N#Ui+}m}4v@ZO;n`U1APH z-Xw0;lZNLoTvzEr+QMAje9wbdO9YQBb1>Pt&a7$B1uS)KjVoOU1o5OYF@8FegFc^7 zWc{;C*L(dZ46-AqFDi68ojJrU#Ziq7L$OK`R+nnx%2d-mSx(t)L?;%xWfqck8xo%y z-bTH7$kyu1A}!Afm$0% z6kkPtOj}+PeeWw1hvvH~$K)3^p0aKi6B<$ImOqD2D4UC)%`>sP>>A>5hc{ERiDsa6 z^OmGX=bIvLZ#Op;(G{z}se3)mVZC@&CRH(~*Jd!pV28QJTyo=(X}SAWU75Os3GW-S zxq?MU?7^IHZ-FSMy)@bar?d zEhM8=REqx!TR78Rr#&j^xC{?F)lVl!l<&i@`Fe||qEK4oNT?Nq>$HmU_a`93;dAsq zTH6cChQS;#_KZ`J^SMmZk)f8``y%Ftx_+ZD{EK7a^*Z!0N86+~m*#o5PksODb4!53 zM(%S=1cT@{9b~W{t~t%qzd&EDKc2hmb#zeVY5IdF%%e;{NLcPSiI{yDKVr=`@az3w zD0=Ullu`nJWF8nC;jb)O&wUp_kQ;a#-X>qpLsC9u`wfIYSOxs_bwTH=bl9H=Z+nvIdNIza2%v#^4#ZG= zedG|4GxzNC^qIgv#`EppZq^S^k^5d?KoA94$T+|PnT)4)#xKnTukt8I_TGFyaK8+V z>6)^}y9l4qtS1&Ck}q^H`~~G;&8tM#o?lhKZk`vkWEAndcv=ft?9l?AOo*Km`FP&LZ_<5`A2%s+*{Lqw7p%j zIgJmxu6dRBTbxfGAge!t9BQLYJ zksj-m27>G3=E!j%VsVoSP7wn#hjj#lUyCCCT{S*AQ9_HlbzXk|9%w`NcDprVaU2F< zZ-rG?Q8$5J=8b4nI_v%*fHr@#0OT>EZ1IVla#F-wz~R^5kS7op$S=S33-BWB&5Nh; zxNnUE?6f84&Tpi@5#iDwq}7USjwBVwfgWRHhs2G{K1NIgkWbOmJXtOAq~Cc_PhM(e z611u2wNI);*k@`rmxe}=gzw0#O8rt;ps9 z?GGIMN*)jt0&29iW9=^V?Hs(RipgC;s7W%XvS=>&2cYfm6D(ZWi_;yE%N1cSxeSo! zj~0T+D9}F&9tL~2VNSl5X8a*5%-NZhj|8Itl-`1bf?G}a&_^YhWL@lyGE`4G&rZ48 z66vK17G0x54Fg={z6B@r2*AQ!@x5Bq&!7qffV4Mp_P`VCT<1G#qFBJDb6v*~;>s%+J?V?ckdz7RWdzONYK&9KcW>Iy&2%vB<)5>5~{Gn!z3;*<|~ zKq819KXcNT-|m}=%sj|?-=*C=V}{g&U_>jym5AtK3-Q1>h?BdPUN#V9Ye) z3?iSi4_0t&G|pR(1A{PMczXt>&W2m;A3>j LOuzDiOZ-0p+JfCr diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/panel-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/panel-page-0.png index 7aabda0a4850915cc84b61cee169457f7142fbed..2f3a0a58887942eabe926186589e5c379d359cab 100644 GIT binary patch literal 153163 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 z

        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 diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/modern_professional-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/modern_professional-page-0.png index c210db266367bbb53b613ceafcfcad1972dfc619..561c3277e88f4d16d728191027d82b2be49b1c36 100644 GIT binary patch literal 149962 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

        >)*r=iF8Sned6)*V!VdJX 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 KTPAJd|Gxm(fK%ZB literal 153133 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 JU*-<1;_ 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 quarter of the size, which is what the trailing space inside + * {@code Decoration.bulletGlyph} was approximating — at the sizes these + * sheets set, one space of their body faces measures within a fraction of a + * point of it. A share rather than a value so the gap follows the type + * instead of needing one number per theme.

        + */ + private static final double BULLET_GAP_EM = 0.25; + + /** + * One bulleted row, as a list of one item. + * + *

        A real list, so the marker sits in its own measured column and every + * visual line of the row — the ones it wraps onto, the ones that continue on + * a later page — starts at one content origin. It was a paragraph with the + * glyph as {@code bulletOffset} under {@code DocumentTextIndent.ALL_LINES}, + * which indents continuation lines with a run of spaces measured to clear the + * glyph; a whole number of spaces rarely equals a bullet, and that + * approximation is what the marker column replaces.

        + * + *

        The content is inline runs, so the bold label of a {@code label: body} + * row is part of one item rather than a row of two columns pretending to be + * one.

        */ static void writeBulleted(SectionBuilder host, String text, DocumentTextStyle style, String bulletGlyph, DocumentInsets margin, BrandTheme theme) { - write(host, text, style, - margin, - theme.typography().bodyLineSpacing(), - bulletGlyph); + host.addList(list -> list + .textStyle(style) + .align(TextAlign.LEFT) + .lineSpacing(theme.typography().bodyLineSpacing()) + .marker(bulletGlyph) + .hangingIndent(true) + .markerGap(style.size() * BULLET_GAP_EM) + .normalizeMarkers(false) + .margin(margin) + .addItem(rich -> MarkdownInline.append(rich, text, style))); + } + + /** + * A bulleted name with its body hanging under it — the two lines of a + * stacked row, as one list. + * + *

        The body is a markerless child of the name's item, which is what + * makes it begin where the name's text begins: a child's marker column opens + * at its parent's content origin, and a child with no marker takes no marker + * width and no gap, so its content starts exactly there. That is the + * alignment the row is drawn for and could not state.

        + * + *

        It was two paragraphs, the second prefixed with + * {@code Decoration.stackedIndent}, whose own contract is that it "must + * visually occupy the same width as bulletGlyph". Two spaces do not: measured + * on the canonical document the body began between 0.720pt and 3.078pt to the + * left of the name above it, the amount depending on the theme's type size. + * The indent is geometry now, so the two agree by construction.

        + */ + static void writeBulletedPair(SectionBuilder host, + String name, String body, + DocumentTextStyle nameStyle, + DocumentTextStyle bodyStyle, + String bulletGlyph, + DocumentInsets margin, + BrandTheme theme) { + host.addList(list -> { + // The list's style is the name's, because the marker is drawn in it and + // the bullet in front of a bold name was bold before this. Both items + // carry their own runs, so the body is unaffected by the choice. + list.textStyle(nameStyle) + .align(TextAlign.LEFT) + .lineSpacing(theme.typography().bodyLineSpacing()) + .marker(bulletGlyph) + .markerFor(1, ListMarker.none()) + .hangingIndent(true) + .markerGap(nameStyle.size() * BULLET_GAP_EM) + .normalizeMarkers(false) + // The name and the body were two children of the host section, + // so the host's own spacing sat between them. One list is one + // child, so that gap is stated here or the row closes up — and + // this change is meant to move the body sideways, not to + // re-space the sheet. + .itemSpacing(theme.spacing().sectionBodySpacing()) + .margin(margin); + if (body == null || body.isBlank()) { + list.addItem(rich -> MarkdownInline.append(rich, name, nameStyle)); + return; + } + list.addItem(rich -> MarkdownInline.append(rich, name, nameStyle), + child -> child.addItem( + rich -> MarkdownInline.append(rich, body, bodyStyle))); + }); } /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/components/RowRenderer.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/components/RowRenderer.java index c52daff12..785d6f271 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/components/RowRenderer.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/components/RowRenderer.java @@ -61,27 +61,22 @@ private static void inline(SectionBuilder section, CvRow row, } /** - * Renders the row as two stacked paragraphs: bullet + bold label - * on line 1, body indented under the label on line 2. Both - * paragraphs draw through {@link ParagraphPrimitive#writeBulleted} - * so only the bullet glyph / margin differs. + * Renders the row as a bulleted bold name with its body hanging under the + * name rather than under the bullet. + * + *

        The two are one list: the name is its item and the body a markerless + * child of that item, so the body begins at the name's own content origin. + * {@code Decoration.stackedIndent} is no longer read for this — a run of + * spaces cannot equal a measured marker column, which is exactly why the + * body used to start a little to the left of the name it hangs under.

        */ private static void stacked(SectionBuilder section, CvRow row, BrandTheme theme) { - DocumentTextStyle base = theme.bodyStyle(); - DocumentTextStyle nameStyle = theme.bodyBoldStyle(); - DocumentInsets topMargin = DocumentInsets.top( - (float) theme.spacing().paragraphMarginTop()); - - // Line 1 — bullet + bold name. - ParagraphPrimitive.writeBulleted(section, row.label(), nameStyle, - theme.decoration().bulletGlyph(), topMargin, theme); - - if (row.body().isBlank()) { - return; - } - // Line 2 — body indented under name (not under bullet). - ParagraphPrimitive.writeBulleted(section, row.body(), base, - theme.decoration().stackedIndent(), DocumentInsets.zero(), theme); + ParagraphPrimitive.writeBulletedPair(section, + row.label(), row.body(), + theme.bodyBoldStyle(), theme.bodyStyle(), + theme.decoration().bulletGlyph(), + DocumentInsets.top((float) theme.spacing().paragraphMarginTop()), + theme); } /** From 9b4f85683472a18943ea12e198727a68346ac436 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 18:39:09 +0100 Subject: [PATCH 82/85] refactor(templates): drop the bullet offset the row migration left unused MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ParagraphPrimitive.write took a bullet glyph and applied it as bulletOffset under DocumentTextIndent.ALL_LINES. Bulleted rows are lists now, so the only callers left — writeBody and writeSubtitle — both passed null and the branch was reachable only that way. Co-Authored-By: Claude Opus 5 --- .../cv/components/ParagraphPrimitive.java | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/components/ParagraphPrimitive.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/components/ParagraphPrimitive.java index aca84c0e6..f440061fd 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/components/ParagraphPrimitive.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/components/ParagraphPrimitive.java @@ -6,7 +6,6 @@ import com.demcha.compose.document.node.ListMarker; import com.demcha.compose.document.node.TextAlign; import com.demcha.compose.document.style.DocumentInsets; -import com.demcha.compose.document.style.DocumentTextIndent; import com.demcha.compose.document.style.DocumentTextStyle; import com.demcha.compose.document.templates.core.theme.BrandTheme; @@ -29,6 +28,17 @@ */ final class ParagraphPrimitive { + /** + * The gap between a bullet and its text, as a share of the type size. + * + *

        A quarter of the size, which is what the trailing space inside + * {@code Decoration.bulletGlyph} was approximating — at the sizes these sheets + * set, one space of their body faces measures within a fraction of a point of + * it. A share rather than a value, so the gap follows the type instead of + * needing one number per theme.

        + */ + private static final double BULLET_GAP_EM = 0.25; + private ParagraphPrimitive() { } @@ -41,21 +51,9 @@ static void writeBody(SectionBuilder host, String text, DocumentTextStyle style, BrandTheme theme) { write(host, text, style, DocumentInsets.top((float) theme.spacing().paragraphMarginTop()), - theme.typography().bodyLineSpacing(), - null); + theme.typography().bodyLineSpacing()); } - /** - * The gap between a bullet and its text, as a share of the type size. - * - *

        A quarter of the size, which is what the trailing space inside - * {@code Decoration.bulletGlyph} was approximating — at the sizes these - * sheets set, one space of their body faces measures within a fraction of a - * point of it. A share rather than a value so the gap follows the type - * instead of needing one number per theme.

        - */ - private static final double BULLET_GAP_EM = 0.25; - /** * One bulleted row, as a list of one item. * @@ -148,7 +146,7 @@ static void writeBulletedPair(SectionBuilder host, */ static void writeSubtitle(SectionBuilder host, String text, DocumentTextStyle style) { - write(host, text, style, DocumentInsets.zero(), null, null); + write(host, text, style, DocumentInsets.zero(), null); } /** @@ -156,16 +154,18 @@ static void writeSubtitle(SectionBuilder host, String text, * that need a one-off combination not covered by the convenience * methods above. * + *

        It used to take a bullet glyph too, applied as {@code bulletOffset} + * under {@code DocumentTextIndent.ALL_LINES}. Bulleted rows are lists now, + * so nothing passed one and the branch was reachable only with null.

        + * * @param margin paragraph margin * @param lineSpacing optional lineSpacing override; null = use * engine default - * @param bulletGlyph optional bullet prefix; null = no bullet */ static void write(SectionBuilder host, String text, DocumentTextStyle style, DocumentInsets margin, - Double lineSpacing, - String bulletGlyph) { + Double lineSpacing) { host.addParagraph(p -> { p.textStyle(style) .align(TextAlign.LEFT) @@ -174,10 +174,6 @@ static void write(SectionBuilder host, String text, if (lineSpacing != null) { p.lineSpacing(lineSpacing); } - if (bulletGlyph != null) { - p.bulletOffset(bulletGlyph) - .indentStrategy(DocumentTextIndent.ALL_LINES); - } }); } } From b62838f2d29aaf49d1928437ee9c31ebea417c4f Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 18:46:57 +0100 Subject: [PATCH 83/85] test(api): prove a drawn list marker reaches the page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every other assertion about a drawn marker measures where it is. A drawn marker contributes no glyphs, so no text-layer or span assertion can tell a painted disc from a described one: the layout would carry the shape span either way. This renders the page and counts ink, against the same list with no marker. Sabotage-proven — with the emit phase ignoring the marker's measured spans it goes red, while every geometry assertion beside it stays green. Co-Authored-By: Claude Opus 5 --- .../document/api/ListDrawnMarkerTest.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/qa/src/test/java/com/demcha/compose/document/api/ListDrawnMarkerTest.java b/qa/src/test/java/com/demcha/compose/document/api/ListDrawnMarkerTest.java index 134ccb4d8..7a22f724b 100644 --- a/qa/src/test/java/com/demcha/compose/document/api/ListDrawnMarkerTest.java +++ b/qa/src/test/java/com/demcha/compose/document/api/ListDrawnMarkerTest.java @@ -230,6 +230,28 @@ void aDrawnMarkerDoesNotMakeItsRowTaller() throws Exception { assertThat(withDisc).isEqualTo(withBullet, within(EPS)); } + @Test + void aDiscMarkerReachesThePageAndNotJustTheGeometry() throws Exception { + // Everything else here measures where the marker is. This asks whether it + // is there at all: a drawn marker contributes no glyphs, so no text-layer + // or span assertion can tell a painted disc from a described one. + long withDisc = inkedPixels(pdf(200, 120, l -> l + .textStyle(BODY) + .marker(m -> m.dot(6.0, ACCENT)) + .hangingIndent(true) + .markerGap(4.0) + .items("Alpha", "Beta", "Gamma"))); + long withoutMarker = inkedPixels(pdf(200, 120, l -> l + .textStyle(BODY) + .noMarker() + .hangingIndent(true) + .items("Alpha", "Beta", "Gamma"))); + + assertThat(withDisc) + .as("three 6pt discs of ink the markerless list does not have") + .isGreaterThan(withoutMarker + 3 * 20); + } + // --- refusals ----------------------------------------------------------- @Test @@ -280,6 +302,36 @@ private static Rendered render(double width, double height, Consumer spec) + throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(width, height) + .margin(DocumentInsets.of(12)) + .create()) { + session.pageFlow().name("Root").addList(spec).build(); + return session.toPdfBytes(); + } + } + + /** Pixels darker than paper on page 0, rendered at 72 dpi. */ + private static long inkedPixels(byte[] pdf) throws Exception { + try (org.apache.pdfbox.pdmodel.PDDocument document = org.apache.pdfbox.Loader.loadPDF(pdf)) { + java.awt.image.BufferedImage image = + new org.apache.pdfbox.rendering.PDFRenderer(document).renderImage(0, 1.0f); + long inked = 0; + for (int y = 0; y < image.getHeight(); y++) { + for (int x = 0; x < image.getWidth(); x++) { + int rgb = image.getRGB(x, y); + int luma = ((rgb >> 16 & 0xFF) + (rgb >> 8 & 0xFF) + (rgb & 0xFF)) / 3; + if (luma < 200) { + inked++; + } + } + } + return inked; + } + } + private static List spans(PlacedFragment fragment) { return ((ParagraphFragmentPayload) fragment.payload()).lines().stream() .map(ParagraphLine::spans) From 0fe8b49bdb9321e33eca0d0d2bc8592251c4896c Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 19:20:53 +0100 Subject: [PATCH 84/85] fix(examples): re-render the four previews the merge moved, and one baseline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Provenance, measured rather than assumed. CommittedAssetDriftTest is GREEN at c587a17e, the pre-merge tip of this branch: every committed preview matched a fresh render there, these four included. Immediately after the develop merge, with no template work done yet, seven previews were already drifted — the four here plus Charcoal Gold, Slate Orange and the receipt, which later migrations happened to re-render. So the drift is not older than this integration: the merge caused it, and the examples module sits outside the reactor gate, so nothing failed. What moved each one, measured against its own pre-merge render: invoice-consulting-v2 5358 px, maxD 213, bbox (62,326)-(184,469) The service-lines table: each line's title and description sit a point higher. Those are composed table cells, so this is develop's composed-cell anchor work — and a composed cell emits fragments but no PlacedNode, which is exactly why its layout snapshot did not move and no gate saw it. invoice-workspace-v2 339 px, maxD 158, bbox (509,808)-(567,817) A right-aligned footer element moves left by about 4pt: develop's fix for a row child's horizontal margin being taken off twice. Its layout snapshot WAS refreshed during merge resolution; only the preview was missed. cv-violet-grid-v2 1168 px, maxD 150, bbox (263,377)-(566,735) Same row-child margin fix in the body column; its snapshot was refreshed then too. The dated-rail migration moved it again later. cv-orange-ops-v2 1091 px, maxD 159, bbox (489,271)-(572,565) Same fix, in the right-hand column. The skills-list migration moved it again later. Each is an upstream correction, so the current rendering is the right one and these are re-rendered rather than reverted. engineering_resume-page-0.png is a different case and a genuinely older one: it differs from its render by 306 px, maxD 99, in a 60x7 region at the top right — and by exactly that at c587a17e as well. The phone number is drawn underlined and in the accent colour, like the email under it, because it became a tel: link in 61f7ea61 and 77283a53, both ancestors of c587a17e. The baseline was never refreshed and 306 px sits inside the 50 000 budget, so no gate noticed. The link is the intent, so the baseline is brought up to it. All 118 previews and all 126 pixel baselines were hashed either side: exactly four previews and exactly one baseline moved. Co-Authored-By: Claude Opus 5 --- assets/readme/examples/cv-orange-ops-v2.pdf | Bin 41968 -> 41972 bytes assets/readme/examples/cv-violet-grid-v2.pdf | Bin 45165 -> 45158 bytes .../readme/examples/invoice-consulting-v2.pdf | Bin 91956 -> 91964 bytes .../readme/examples/invoice-workspace-v2.pdf | Bin 30164 -> 30163 bytes .../engineering_resume-page-0.png | Bin 92706 -> 92710 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/readme/examples/cv-orange-ops-v2.pdf b/assets/readme/examples/cv-orange-ops-v2.pdf index 8ef08dad6df273e87ffeb87a69ef84d6d75c5c71..e31a502c1efbd3fe5a8a0340aa4f7a10915e3c9f 100644 GIT binary patch delta 15241 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 SN?0vGhGm5(Cl^x?hyP!|9?@d} delta 15244 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 Vh=q|bUO)oN3{OEJp(qLe{{ZBm@6G@K diff --git a/assets/readme/examples/cv-violet-grid-v2.pdf b/assets/readme/examples/cv-violet-grid-v2.pdf index eb94465c65ee4028c35f3d3c3274b9a27e91ceea..9d165c9c7a2ffecc2ce6383da0b1875502bbf1e8 100644 GIT binary patch delta 14934 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 delta 14907 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

        R|O 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 Q`D5TQGBDSFq33q*U#o^dGXMYp literal 92706 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 Date: Sat, 12 Sep 2026 19:35:15 +0100 Subject: [PATCH 85/85] docs(templates): say why a timeline goes in through a layer stack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Seven presets build their timeline in a holder and lay it in through a layer stack, and none of them said why. The reason is that a timeline publishes a row, a row cannot nest inside a row cell, and these blocks can sit in one — the stack is what insulates it. Two sites already explained themselves: Terracotta Rail's education cell and Slate Orange's role line. The other seven now do too, so a reader deciding whether a stack is load-bearing does not have to work it out from the layout rules. The stacks stay. Removing the ones that turn out not to need it is cleanup with no capability behind it, and it would reshape every timeline snapshot, so it belongs in its own deliberate change. Co-Authored-By: Claude Opus 5 --- .../document/templates/cv/presets/CharcoalGoldMain.java | 5 +++++ .../document/templates/cv/presets/MidnightNavyMain.java | 5 +++++ .../document/templates/cv/presets/NavySidebarMain.java | 5 +++++ .../templates/cv/presets/ProfessionalSidebarAside.java | 5 +++++ .../document/templates/cv/presets/SerifHeadlineMain.java | 5 +++++ .../document/templates/cv/presets/SlateOrangeMain.java | 5 +++++ .../document/templates/cv/presets/TerracottaRailMain.java | 5 +++++ 7 files changed, 35 insertions(+) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java index a57fb7a70..d94a8882f 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java @@ -191,6 +191,11 @@ private static void renderExperienceTimeline(SectionBuilder block, List } }); DocumentNode node = holder.build(); + // The timeline goes in through a layer stack rather than straight into the + // block. A timeline publishes a row, a row cannot nest inside a row cell, + // and this block can sit in one — the stack is what insulates it. Unwinding + // the stacks that turn out not to need it buys no capability, so they stay + // until that is done as its own deliberate cleanup. block.addLayerStack(stack -> stack .name("ExperienceRail") .layer(node, LayerAlign.TOP_LEFT, 0)); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java index 15dc03a05..fd8a62294 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/MidnightNavyMain.java @@ -146,6 +146,11 @@ private static void renderExperienceTimeline(SectionBuilder block, List }); } DocumentNode node = holder.build(); + // The timeline goes in through a layer stack rather than straight into the + // block. A timeline publishes a row, a row cannot nest inside a row cell, + // and this block can sit in one — the stack is what insulates it. Unwinding + // the stacks that turn out not to need it buys no capability, so they stay + // until that is done as its own deliberate cleanup. block.addLayerStack(stack -> stack .name("ExperienceRail") .layer(node, LayerAlign.TOP_LEFT, 0)); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java index cf067fe65..761bc90c1 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java @@ -200,6 +200,11 @@ private static void renderExperience(SectionBuilder section, EntriesSection expe } }); DocumentNode node = holder.build(); + // The timeline goes in through a layer stack rather than straight into the + // section. A timeline publishes a row, a row cannot nest inside a row cell, + // and this section can sit in one — the stack is what insulates it. + // Unwinding the stacks that turn out not to need it buys no capability, so + // they stay until that is done as its own deliberate cleanup. section.addLayerStack(stack -> stack .name("ExperienceRail") .layer(node, LayerAlign.TOP_LEFT, 0)); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java index 20e53e85b..c88f8dd4d 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java @@ -355,6 +355,11 @@ private static void renderEducation(SectionBuilder section, EntriesSection educa } }); DocumentNode educationRail = holder.build(); + // The timeline goes in through a layer stack rather than straight into the + // section. A timeline publishes a row, a row cannot nest inside a row cell, + // and this sidebar is a row cell — the stack is what insulates it. Unwinding + // the stacks that turn out not to need it buys no capability, so they stay + // until that is done as its own deliberate cleanup. section.addLayerStack(stack -> stack .name("EducationRail") .layer(educationRail, LayerAlign.TOP_LEFT, 0)); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java index e2217e56e..cc32a700a 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java @@ -138,6 +138,11 @@ private static void renderExperience(SectionBuilder section, EntriesSection expe } }); DocumentNode node = holder.build(); + // The timeline goes in through a layer stack rather than straight into the + // section. A timeline publishes a row, a row cannot nest inside a row cell, + // and this section can sit in one — the stack is what insulates it. + // Unwinding the stacks that turn out not to need it buys no capability, so + // they stay until that is done as its own deliberate cleanup. section.addLayerStack(stack -> stack .name("ExperienceRail") .layer(node, LayerAlign.TOP_LEFT, 0)); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java index 6cd796827..80802e7b8 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SlateOrangeMain.java @@ -168,6 +168,11 @@ private static void renderExperience(SectionBuilder main, EntriesSection experie } }); DocumentNode entriesNode = holder.build(); + // The timeline goes in through a layer stack rather than straight into + // the block. A timeline publishes a row, a row cannot nest inside a row + // cell, and this block can sit in one — the stack is what insulates it. + // Unwinding the stacks that turn out not to need it buys no capability, + // so they stay until that is done as its own deliberate cleanup. block.addLayerStack(stack -> stack .name("ExperienceEntries") .layer(entriesNode, LayerAlign.TOP_LEFT, 0)); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java index 22cab8056..fa43204bf 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java @@ -208,6 +208,11 @@ private static void renderExperience(SectionBuilder main, EntriesSection experie } }); DocumentNode experienceRail = holder.build(); + // The timeline goes in through a layer stack rather than straight into + // the block. A timeline publishes a row, a row cannot nest inside a row + // cell, and this block can sit in one — the stack is what insulates it. + // Unwinding the stacks that turn out not to need it buys no capability, + // so they stay until that is done as its own deliberate cleanup. block.addLayerStack(stack -> stack .name("ExperienceRail") .layer(experienceRail, LayerAlign.TOP_LEFT, 0));

        jWB@sLsBE-f;iyHSgvI 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 delta 2265 zcma)*c{~%01I7`B<<4@SbCb=O$tGs5y@`f}Ft?Y8HzDL*GHlLfm?O&7;gz$r9B-~Q zcaf{;hq2_o6`|Mf{r~s*{Qh}9&mYg{`_J<{ErUES2YDXkb3$l#9-PW`tyyQ#Q$$Md z&5Ivm!Zv_naYol<^catpK3-ZRKe|Id7-NrPG$C5Qw##0qGXrWmB2Pbxn)y)}PA^9U z6&aR}M6xOJTl-KuYBui#f!D1`Nvdq<3NiDuJ0CuExXt)WvVItJ*5}8a8rHUrZ?T`T zG)aCpC}+mNKJ7CtkY&kIgT%k&Oi4OydzpY=>e<(1(P$y1>hp>rDBl)*IU!9Z%DFTy2>*ZqT0dC~@N%(bP3QErNp| z)10mpK5kCejCg}|bp!p7F%7V)PT&*Ji3Z-P?OKH1vq@0`IyeWe?SeVOauxxZ$~U$`vUc(}5N_zPDI zt`3zMJDk|im}45D5n)kRN*N|CN8FTiRh~*|$9Ym1XyA9kE#T&6AOCxY&dHC?iA>P; zTz0C_*myX3cuv{l=U36c`jO#e^isx~F3kw0o40tA&xJbvFBCak2~lqB9ZD$hZH6vv zr0UNT|lK{)S{@A;#R#k{ABilcuIcLFnph%G`kbK_;n1HX&MOb9G{@=Ya| z{{cn5q+UBqc(N2c;%FtZODiLde8Y%bCs_gxOh6fh8l{Y0PA(E}@-(PN?I2T#B1r_} zZ94vw+?~Ffs2XW4&@vKdEob-<-Nu9~ex=$_$@NfVaEq(rT^;VSJwLrSiEFD)g3@9f;Z;d85d$9K0cy0bwo^tIbk`)0!2=E4>UrdW_M)jWR9qasnL zAxU&^XC^6fKnj;1>n}hak!?tFTFP+g)V$5C@)B=S)6qt0=xC?s0JHv-wF?gP(yCcV zF(!OK^_}ZiWfm?xZ=@t*0OUO)5EhoEIv-~Ze5<5WUgi|&Wn7h@5+XX4#1$KJ$%3uKPeTNtGJKwEg_^xN4mRm9br4(wE zGsWHD94^?&wSJ?K=T(D9WxBIJckS)DKt)#;rj18rO01sC+vhTw z@5!2D%A*!oBLph$p*iuJZb1w@m&0_EgLTOJ*+W;7k-*>zU?VnFI6i3Dpasj^}V%wfZnir;DO^Ke_x z&A@tYZEv$R>@jhGFjTH@>7JTBnESmG|555#-f-)EGT|OY#xK#e#$=^fEtM9pY~PX{ zYf#tW=jwBTG<>StrIETXxK6O~C>~Vny5!yn5M#@V^{*L1KSU&YibAWJL}S#ywB*#U z#E7iiN5<90*&^wP65C9Npd*#E%PnHF?=AAgqX; zT3OoAVg-xM3+cJn|7fA9!Zm~OvQdzokbDq6`x(1Z-L?2hJlZ))m%xYE5UCZDVW)pB zCi|x^gWJ~JdRn?kgqzR1 zJ_o7E0$B6Sj%x0N(dQwK5le#=f>yeoejzXD)lFkP)FWb7Z;DWM-jqGrj2y-j>g4-PQAb4Ia#B>05NMg3)(Dx_Fdh4cGKx2A-;EKnduwKW+@ z0ZLMQ#D6NOZLv&cQtrb=nWhtaeHM?!V=i)D_*#4=es98o?^_ijCw}eeQ~nRJU&jyd z^II8iI<3!A3gBW9LmbuXt;qAXGf&oh)Lmr=(Vk$%*X!Oka#E}u#2zCXVX!KnT%b|# VZy_|*08T+(J$@Ax3p-2xe*mMFEEfO( diff --git a/assets/readme/examples/invoice-workspace-v2.pdf b/assets/readme/examples/invoice-workspace-v2.pdf index 0dd4896b3148396fdd3c042eab56cf0c4bfdfc7e..365b8ebc52aca1a1637431a1c83b673657aa380d 100644 GIT binary patch delta 1435 zcmbu%`#aMM0Dy6~O5ai@Cq$S_nx_u4v5TQ?w%i+~+;ZGygxtkrNe`Z)!`#Bk zS~}Vyx5%}LgWQ*FMUCe2*mCM`I6uD6`#hhqFVfsE(u^}|8p(>B%tdDJc7{56jn$b% z7NVnX7^X^$ZprqLT5Qy2U8PN^1`!UFLP1y49J{GrAfqv{GNmcwVc59M&`aXi`y%Y_ z*Nbr#HUU0$mbzi7R4jlOF8e)`3hDP)gyp-fP*i>-buCw!z}c5xOx=p0A@0jx-u zv!M@2qkbtK&Ht2rl6&Z&q!D+$Aa*;(d46fn@4FRwI$s5^tX-gYVL`*+$k>0>LtCx+ z+LjwMD5O^Hg?S^5z;xJ|9Hh8veg0Oqsosm=*U_-Sc5)0If<2KSXXJelekrPol&#DnbN)2-B-ffV?LZ2X!t}qid~ZjV?b{#w4%(b;zi=5 z83dI)EhKRBr(9b=dTA=gDa|Y@hwq_UBj)mvlIgal(!@D7hrAs9RV?vj3ra+o2Fj(0 zoJ5I0pU$CdO8i9V;YW<8u-BbJkbQ!qBstfh{X-`UvW2 zjt{+fJYl}^7JHN@1LH0rr_T*R9At_$H8{K$caPyO$b#zF{PV{fESqk+$%g?V!@T1> z;QVE1K{57_@%qHo-dj+n332isZvp?oLo~t~)46a(C zaI5^J(2Qc4)!n;RnSG~TxLqr^M0waxT%@+m@WCb z52g3U3pY|6ZAQij6rhI1tHN1o z%H!&(5hdw5RT?X|dh_+0ks3E3r!xvXc7z`OSDv<4TINmrq`yPrGbnMTdxP1`9bx{oBB!DA} z8b3-KEXF95cX$q3NIB&swTGajwv2=vV3_)6j0FWxBqB|bI5@)E6lID+K~Xpu4v$A5 ziAW+GX$^zH%*@PSL=*J6TY^L_lO YZm}fUzQZ=uhFGw?F`%zcxIhH{1CZ~qfdBvi delta 1436 zcmbu1`#%#10Kmhjhce< zS}`YD_mrRK^}#t7khc^G6#J~7HN9ctp=(!{JtasY^<3MZiG{jZ*CQQSMs0VdQ&?q) z{k{AKj(R3}cE>-qcI|Vh=l7w-h7-V1cQAz2&4R(eq-$pBy-bcKEJx825irUge}4r^ z)7F;Nl}_oi1?vgnw~4@HY6dI)oH@uFjI$^6r-CvK6qHm zzR@usQ?uuZi$BYjmbs6;rABa7+WO~c$-d>(1|Gsbl6Kx*^LE@_DFLu4 zpo@xb#pYNO@^g2;maA=d?nV*jKn!JB#Qul!-P*PKN_;+D-C@nYT_!P+cV{+`)22Et zA5hx&ccyqp!IgnN>bQ&AAt#cm8~R!t!>@PK9VTLqYK=WW}RhWgGU0rAhEA zr%Z+l>!LefzdwT-ThN=c7=|A?Ls0{Bg={A${<=X*7D=~FSYjJi;Ax~|iiwY;n8^in zXHbTI_8=c(mep1jLI6`IwJGu|AF6bIP3r!guDJjO{4ps(fObK9wv))9!31bcuA9jd zUVmytjES5#F4$*X)(GIyw7_#yoo!^ioFn5^*=qdaWy-4nn_^9eZ>5*B>m}d4{3$>V zNHbGl9UD<=j#;RL`8h{q3H3|Ds>YUsR{CCddOkpqDrO2tEt8dQ<^VXJrPG)YbrL;G zD@$@DqYeNTn@1gC^APYG-49b;#*`nT#XFbM6ad^pTwbUG&;F7J*T#au8q&T8fXmd*4$Xrn z`MT#>8;iu+2d1~4IjIWLs`dgcm(lE6Lh-{DF{qEKHA-M+R%=P=m#P|^a;)IAs= zwN+CQO!69B+ZSTBMo%b8YXG0@{|h=UUw-dq3iJjeHr$G@#o41PEj|7ISbVL1o!_S_ z!m&eRZb$GGe)t@{=)$yK4A}_c)Vx&Vt)7e8*DPBv@7%_xD}Rqgq$P&Gy?SJ)L++v2PJ6Yq4zo|L2pi?kS^AWn)U4s+tF$aq^(?bXH^Q$FShAfYZ1!!KBf zyWjhHRN93(BQ~`)><3cZcF8@KcR!^v_Lc7_FuKnRhsK^cEk?i250E$-ZTCj@bks3} zf$JZmkJDNX4-2c7xl&gd5zlBi$;}JHz91G`H_(WVGb55racDiFu^Cn$jYMJ4`a~q^ zfQcq3l!-p+BGJSEi^L&KaX3>wQyfOm7^#mV9YkoN0TPQu6QKD2vjF_}V6O#wN!8zS ZV><+qr3Q~!va5sCWsx8ljAUa5`WLx7oj3ph diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/engineering_resume-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/engineering_resume-page-0.png index 8965d885514c2afbf52a6703d56b400a974bd58d..d7e64901f0b52677c84585ca06bcf244d086c864 100644 GIT binary patch literal 92710 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 z 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 a list: a list marker takes the list's own text colour, and here - * the dots are accent against charcoal text. The design draws one flat run - * of names, so a section that groups its skills has its groups flattened in - * the order they were given; the group names are not drawn.

      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 @PgSQ~{h4zIu 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 Do7!>n diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/terracotta_rail-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/terracotta_rail-page-0.png index ee8cfdaefe58dfb34ecf0ed583dedfa2c014bf45..95c8e16bf73cdffc91d270e57e42837c6e68a860 100644 GIT binary patch delta 63932 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�_ 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 Date: Sat, 12 Sep 2026 13:28:30 +0100 Subject: [PATCH 67/85] docs(changelog): record what the timeline and spacing campaign changed The seven rails moved onto the timeline API, Serif Headline's bullet gap becoming a measurement, the Timeline Minimal marker that never drew, and the receipt and both proposals giving up padded spaced caps - with the figures each change was measured at, and with Violet Grid's two API gaps stated as the reason it keeps the rail it has. The Public API section already said no built-in preset calls spacedUpper; that was true of the CV and cover-letter families and not of these three. It is true now. --- CHANGELOG.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b18718867..1cbc6c1ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1562,6 +1562,68 @@ follow semantic versioning; release dates are ISO 8601. its budget is a fraction of the sibling presets', and a third test counts the ink of each status colour directly. Removing a chip's fill turns that one red by name. +- **The rails seven CV presets drew by hand are timelines.** Midnight Navy, Charcoal Gold, + Navy Sidebar, Serif Headline, Slate Orange, Terracotta Rail and Professional Sidebar each + stood their entry rail up as a left accent border repeated per entry and withheld from the + last one, so the line would appear to stop at the final marker. `addTimeline` with a + `rail(...)` extent says that directly, so it says it: `MARKER_TO_MARKER` where the line + runs between the marks, `ENTRY_BOUNDS` where it spans the entries. +

      + What a reader sees change is that a rail now meets its markers instead of stopping at the + edge of the line box a marker sits in — a few points, at the two ends only, and each + preset's own figure is recorded with its migration. Markers, date columns and content + columns hold their x, no preset gains or loses a page, and node accounting is exact either + side of every one. +

      + Professional Sidebar's education rail loses 56 lines with it. It filled the first entry's + head band with the sidebar colour, painted a shape over the rail above the first dot, and + redrew the line below — to make the rail begin at that dot. Scanned in the rail column of + its own baseline, it never did: an accent draws above both the fill and the mask, so the + masked stretch stayed visible and the construction's only effect was drawing 2.5pt of rail + twice, a shade darker than the rest of the line. +

      + **Violet Grid keeps its hand-built rail**, deliberately. It is the one of these presets + whose timeline crosses a page, and two things the rail API cannot express turn up there and + only there. A rail's extent on a page that is not the last comes from that page's content + band rather than from the entries on it, which would run this rail 55.25pt past its final + role to the bottom margin. And a timeline's leading column width is fixed by where the rail + and the content sit, which pins this design's date column at 55.860pt against a longest + date of 57.005 and wraps a line that has never wrapped. Both are measured against an + overflow fixture written for the purpose, and both are recorded as gaps rather than + approximated. + +- **Serif Headline's bullet gap is a measurement rather than a space.** Its highlight lists + asked for the air after the dot by writing the marker `"• "`. A list marker's authored + trailing whitespace is stripped and a single space re-appended, so the second one never + reached the page and the gap has always been one space: 2.067pt. It is `markerGap` now, at + 0.256 em — the body face's real space advance — with `hangingIndent(true)`. Every dot and + every first line holds its position to 0.001pt. What moves is the wrapped lines, which used + to resume 1.518pt *past* the text they belong to, because the legacy indent pads a + continuation in whole spaces and cannot land on anything finer; they start on it now. + +- **A Timeline Minimal marker that never drew is gone.** Its module body lines set + `bulletOffset("-")` and rendered no dash: a bullet prefix reaches the page only under an + indent strategy that asks for it, and the site set none, so the prefix was built, measured + for the continuation indent, and applied to no line. The call is removed rather than made + to work — plain lines are what the design has always shown — and the render is unchanged to + the pixel. + +- **The receipt and both structured proposals stop padding their spaced caps.** Eight labels + across `ModernReceipt`, `EditorialProposal` and `NorthlineProposal` built the look by + rewriting the string with a space between every letter, so the canonical receipt's text + layer read `N O R T H W I N D P A Y`, `A M O U N T C O L L E C T E D`, `T R A N S F E R D + E T A I L S`. The tracking moves onto the style — `TextOrnaments.SPACED_CAPS`, on + `ReceiptStyles.eyebrow` and `.groupTitle` and on each proposal's `DOC_LABEL`, which is what + those styles' own javadoc already said they were — and the text is the text. This is what + makes the note under **Public API** true of every built-in family rather than of the CV and + cover-letter ones alone. +

      + The receipt's labels narrow by 5–9% and nothing re-flows: one page, 130 nodes, and the nine + that change are all width and none position. Each proposal's label is right-aligned inside + its own section, so its node does not move at all and the change shows only in pixels and + on the text layer. Both families carry a new assertion on that text layer, because it is + the reason for the change and no pixel or geometry gate can see it. + ### Tests - **The schedule fixtures no longer carry a real venue's staff.** The weekly-schedule From a01f469bd9d81208dff21ce4b716003c35748ab1 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 13:28:47 +0100 Subject: [PATCH 68/85] chore(examples): regenerate the previews this campaign's renders moved The examples module resolves the engine from the local repository and is excluded from the reactor gate, so a template change moves these committed bytes without anything noticing. Eight of them render presets this work touched. A regenerated PDF always differs byte for byte - fresh timestamps and a fresh document id - so each was compared as pixels against a fresh render instead. Of the 115 committed previews with a generated counterpart, 18 differ. These eight are the ones whose presets this campaign changed: cv-professional-sidebar-v2 2 px cv-navy-sidebar-v2 4 px cv-charcoal-gold-v2 20 px proposal-editorial-v2 438 px proposal-northline-v2 600 px cv-serif-headline-v2 771 px receipt-modern 2624 px cv-slate-orange-v2 10445 px Read out of the content stream rather than out of an extractor, the receipt preview now stores "AMOUNT COLLECTED" and "AMOUNT BREAKDOWN" where it stored "A M O U N T C O L L E C T E D" and "A M O U N T B R E A K D O W N". Worth naming the instrument: both PDFBox and MuPDF synthesise spaces from the gaps they measure, so tracked caps still extract with spaces between the letters through either of them - what changed is the string the file holds, which is what a viewer copies and a parser reads. cv-midnight-navy-v2 and cv-timeline-minimal-v2 are left alone: their renders moved by two and three pixels at a maximum channel delta of 8 and 2, which is below anything a preview exists to show. The other ten that differ are not this campaign's. None of their presets appears among the files these commits touched - arabic-article, cv-orange-ops-v2, cv-violet-grid-v2, engine-deck, engine-deck-v2, hebrew-invoice, invoice-consulting-v2, invoice-workspace-v2, linkedin-carousel, maven-banner - so they are left as they are rather than folded in here. --- .../readme/examples/cv-charcoal-gold-v2.pdf | Bin 35782 -> 35766 bytes assets/readme/examples/cv-navy-sidebar-v2.pdf | Bin 34375 -> 34375 bytes .../examples/cv-professional-sidebar-v2.pdf | Bin 53213 -> 53177 bytes .../readme/examples/cv-serif-headline-v2.pdf | Bin 83081 -> 83129 bytes assets/readme/examples/cv-slate-orange-v2.pdf | Bin 51757 -> 51735 bytes .../readme/examples/proposal-editorial-v2.pdf | Bin 41473 -> 41593 bytes .../readme/examples/proposal-northline-v2.pdf | Bin 74570 -> 74671 bytes assets/readme/examples/receipt-modern.pdf | Bin 5368 -> 5559 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/readme/examples/cv-charcoal-gold-v2.pdf b/assets/readme/examples/cv-charcoal-gold-v2.pdf index ae9b0340a1c7ed80e69be7882e78d8f9da153633..f3190db15471c5b4ad494789741ce09c894df8e7 100644 GIT binary patch delta 12340 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 E2k#^%?f?J) delta 12313 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 UJ~1Z}6_JY*iH1g6MF#2r04xC=p8x;= diff --git a/assets/readme/examples/cv-navy-sidebar-v2.pdf b/assets/readme/examples/cv-navy-sidebar-v2.pdf index 5ebdbace0f9f726095f61d846ca779a581c919b1..d9356c094ff606f9174608ea2f0665feb270e621 100644 GIT binary patch delta 4332 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 IBVQ5z5C1MV^8f$< delta 4332 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 diff --git a/assets/readme/examples/cv-professional-sidebar-v2.pdf b/assets/readme/examples/cv-professional-sidebar-v2.pdf index e739b293747c39b7c58828dd94f348daf01d19e8..401700151eb7b331ca1e08c5791d913237a0ea8b 100644 GIT binary patch delta 3756 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 aNjbHm2ly9I#?T}MiQqF*5J*`EO8P&0<0?7; delta 3798 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 delta 15970 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 diff --git a/assets/readme/examples/proposal-editorial-v2.pdf b/assets/readme/examples/proposal-editorial-v2.pdf index 6b9df97cb4f608fb70e91b882b7810cda6ac7609..45f0ccd6b8337786dd498a613b89cb4b8d09a1b6 100644 GIT binary patch delta 11147 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 delta 11020 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 z zBQ@S;T&|x-inF=|7H7T|Rgdp%eI}cG5ONFtE~*O>Igw|J#OdKCRFRS-JT*_e4|RV_ zBSVGbY@|J;Y_RwsWn^H$Yls(h&lAWSy3Hr$SZkiMmD3jl`1Q;AY+4skJv8P-TqSh@>5(BAw7 zw3!tgBm0`nVSE3j{H1%1ZHSAc$XXZSAK>pEb?g5PeR}Xa&yq>j7HyMZq zjq1IFHd?$N;j%?3I%X!SWk_cKP=0l1NHW55tkDq5Y$1e+!8gp3xhn|1_4ZydIqcpY z;CY~!o(wwlj*$KnAfj&_faK!{LJ2JJi_?$3u?CSyUoaf7xFzX_6*ycy@4;WUIWrq) z?$p$1kru1kEiA?1o%$`@5E(2{+ZZ%mxw5pR>>gk2B=TW#i>eHEK(&(Muf@SWon3>4 zxTLFL0^q!94`G_q6t0w5a8(@Miz9<^^JSbwRCPrJn`8u_tjRT6@^+Xy+~HUmGj_Ir z8%%)PR75&jMmMS2h>}f~gIN0Iw!TFeeyThpOdH?+ivf*g`tv_O2x5!#pCObD>1H5- z;`(pyr~ZP03mS^Eo{~8d3IfHBQ{TlR1r5#34}oUCgyMwUu-8EG)E96-K|!wn1)Dif z=%4_Qd_7%g9=`f#Jya4%9tR$T7$gZP;KZ$W2I(?Fa`pZ@U`WUyfjsHq5O8q|@F8>P z__$b8a;Sf?*LHVA=1`;LhSXvcKuj_a!90SJ&b%uYQ=brN~Z50+Oh z%^>GZvqHv%A6gnp>CkLRYW^)t`o0O*h7X!a;7y>-WmGhoR01>hf#;(Q&?d(xd-=B% zGK~YS9;0(Gj*$I!u$m&Qg$||?(r%}Qn!#Hl!4&Zi4+_pmY9+$2SeBT?r&F|f;B97$ zj1ZobtDxX!gIE_9u3^qr*vmd!0bXKoZ$z_mWO=A8TSV-FV<-0Dt4$krk>pQ;k(iIo zu$_|5951Ozugj)$Syxl_jFXyo{X`Hg+`9>ghO8q@FZxUVIz_qlppC) ziK&47A=w6v{a*0E-=wp^zujE#;NPjt872N-tef+*drjF{Oqatg9H8t4ghcuk{tb$C6{q-(PvN#*3SC!B;Z#T|x~n+fTS=JaUh>(c zt2jsZS8;l55ZX2Y*o7S7DNrYhU8ubwJx$)>2Mj`!!BTrzI^EiL^W=JSg0_FX9-6?3 zCOtF4dTN7OgsXo6A!9|u6A-QHD2zl<(L$P?_!>swkSRh%_tuHP?Y1@h0eiyBc%5%g z?mT$yh;1bL!uZq79n~G%r{TMa69zU)r>0M^h-nM+&^ty?;4$<*d7pY&{4V049C@K? zpE6vOtikws$^hvj!z$8{yX&2_7h3;uG6s|!m)Nh{}PS2F4(Z%P*FO7@= zpVdz3K3i3Xu-pSQy=zk!yzUn0ya>B`<+H&h7bo9RRz@q@K5w@}qN`319-RHbiZ25! zQ*HK(DnqxchLfBA4xo{o9|&=5dg$)%-nr1p`b5PbK2fMuwPza@VIDhQbB7F8~AU;t6){BP>;~EH^%vghD~P~_CS|U=-5_z zbaGQzTCpP*RF0Cscbub+l#Cg}L;hTC-@-NRqc=YHZF$M&RoO=>V0TnzJ^7u`jMxs; zl%4MgIc9f)TSSKlNbRNpVX7_uR{clhYENbN{9l;X(bA89MH?3a55fZrAaiIrJG)bI zQF2mhA#*6oP#TMH%Lz!y$nwcaatiWGaSHNr%5ZY=%SlP{aR~tA_&EjT_yptxI03TU zlCm;V{E`5EK5i)~K1pdgIRKZ8oPe|#<^MN?$o~`L^ZzaG23poO$Q;^szSfky-2WIl zSy_8i8gu^JKr-_{1) PI02l)M+t>!Bn diff --git a/assets/readme/examples/proposal-northline-v2.pdf b/assets/readme/examples/proposal-northline-v2.pdf index 16accac341acab98738f87d85eb5546e66a8c055..4216dc4e52dfa13800ae9753923c6e07259edffb 100644 GIT binary patch delta 11498 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 QOMs6TnTAG2RTlYw0JPM1y8r+H diff --git a/assets/readme/examples/receipt-modern.pdf b/assets/readme/examples/receipt-modern.pdf index f5dd1485f00991680288f1375a00bd38747d880b..b77dedc96213c69972ca7d7043b49890174e8881 100644 GIT binary patch delta 3737 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 DKX(4X delta 3566 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 From 7dedf8a0e1055b041387855dd80a03dab19d0f12 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 13:41:35 +0100 Subject: [PATCH 69/85] chore(examples): regenerate the two previews the drift guard still named The previous commit refreshed eight previews and left these two on the grounds that their renders moved by two and three pixels, which is below anything a preview exists to show. That was the wrong instrument. CommittedAssetDriftTest compares an exact digest with only the machine- written parts dropped, and says so in as many words: a budget is a number nobody can defend a year later. Two pixels is drift. It also renders with graphcompose.examples.displayVersion pinned to the version the committed files were rendered at, which a plain exec:java run does not. These two are copied from that run, so they carry 2.3.0 like their neighbours rather than the working version. The guard now names four files, and none of them is this campaign's: cv-orange-ops-v2, cv-violet-grid-v2, invoice-consulting-v2 and invoice-workspace-v2. All four presets differ from develop and none was touched by any commit in this work, so their drift arrived with earlier template-promotion work. They are deliberately left alone: what moved those renders is not identified, and re-recording a preview is how you stop being able to find out. --- .../readme/examples/cv-midnight-navy-v2.pdf | Bin 37051 -> 37022 bytes .../readme/examples/cv-terracotta-rail-v2.pdf | Bin 40785 -> 40771 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/readme/examples/cv-midnight-navy-v2.pdf b/assets/readme/examples/cv-midnight-navy-v2.pdf index 738becf1fd332c6ca8640ed9ec03505807f9db8b..91f11bbfebbc834c8b31b27a37f214fe45285cbb 100644 GIT binary patch delta 3437 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 Bt8oAT delta 3435 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 HL$Uu0lWwIV delta 8180 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 From 361ff8335fb93dcfffb6836470a14a3efa447020 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 14:55:36 +0100 Subject: [PATCH 70/85] fix(layout): a box must not open on a page its first unit cannot start on A timeline crossing a page drew a rail below its last entry, down to the bottom margin: 55.25pt of it on Violet Grid's overflow sheet, where the drawing stops at the last role. The rail was not the bug. A box records its top where the flow stands and places its children afterwards. The only thing it checked first was whether its own margin.top + padding.top would fit, which for a bare wrapper is zero and therefore always fits. So when the first thing inside it then had to move - it asked to be kept whole, or it is indivisible and taller than the space left - the box stayed behind spanning a page it holds nothing on, and every consumer of that box believed it. A timeline's entry anchor reported a slice on the page its entry skipped, and the rail, which is the union of those slices, followed it to the band. That is general, and it is visible without a timeline anywhere near it: a bordered section with no keepTogether of its own, holding one child that has it, paints 24.6pt of accent at the foot of the page beside no content at all. A section carrying keepTogether itself escapes it, which is why this had never surfaced. So the box relocates too. This is the keep-together rule already in compileComposite, asked of the node's leading unit instead of the whole node - leadingUnitHeight was already there for keep-with-next runs - with the same fallback: a unit that would not fit a fresh page either has nothing to gain from breaking, so it flows where it stands. prepare is memoized on (node, width), so asking costs map lookups and not a second measurement pass. It moves no content. The content had already moved: measured either side on the oversized keep-together case, all five shapes sit at the same y on pages 1 and 2 and the document is three pages long. What changes is that the section stops claiming page 0, so SectionKeepTogetherTest now expects startPage 1 - its old expectation, and the comment that the section "starts in the remaining space on page 0", described a box holding nothing there. Three layout snapshots move, four nodes between them, every one a box whose recorded top was on a page its content never reached: northline_proposal Header y 6.539 -> 775.890, timeline_paginated's two layer nodes y -10.350 -> 117.175, available_fonts FontSection_Ubuntu y -43.554 -> 736.466, each startPage 0 -> 1. Page counts and node counts are identical and nothing else in any of them moved. Two of those were negative coordinates - pages those boxes could not be on. On Violet Grid's overflow sheet the page-0 rail now ends at 65.394, which is the last role's foot and the same number the hand-built rail stops at, to 0.000. Guarded by BoxExtentAcrossPagesTest - the box relocates, the child is where it always was, and a box whose content genuinely spans still keeps a slice on every page - and by a timeline case for the rail. The existing multi-page rail test could not have caught this: its entry is splittable, so it really does occupy the foot of the page. The new one measures against the page's content band, which is the only reference that tells an entry-derived extent from a band-derived one. Sabotaged: both go red, and the rail test's first assertion passes even then, because the anchors lie consistently. --- .../document/layout/LayoutCompiler.java | 23 +++ .../api/TimelineRailGeometryTest.java | 58 ++++++++ .../dsl/BoxExtentAcrossPagesTest.java | 138 ++++++++++++++++++ .../document/dsl/SectionKeepTogetherTest.java | 13 +- .../proposal/northline_proposal_layout.json | 6 +- .../document/timeline_paginated.json | 12 +- .../fonts/available_fonts_preview.json | 6 +- 7 files changed, 240 insertions(+), 16 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/dsl/BoxExtentAcrossPagesTest.java diff --git a/core/src/main/java/com/demcha/compose/document/layout/LayoutCompiler.java b/core/src/main/java/com/demcha/compose/document/layout/LayoutCompiler.java index a518eea7e..bb4872714 100644 --- a/core/src/main/java/com/demcha/compose/document/layout/LayoutCompiler.java +++ b/core/src/main/java/com/demcha/compose/document/layout/LayoutCompiler.java @@ -275,8 +275,31 @@ private void compileComposite(PreparedNode prepared, boolean keepWhole = node.keepTogether() && outerHeight <= state.activeInnerHeight() + CAPACITY_TOLERANCE; double startReservation = margin.top() + padding.top(); + + // A box must not open on a page its first indivisible unit cannot start on. + // The box is recorded here and its children are placed afterwards, so when the + // first thing inside it has to move — it asked to be kept whole, or it is + // indivisible and too tall for the space left — the box stays behind spanning a + // page it holds nothing on. Every consumer of that box then believes it: a + // section's accent paints a stub at the foot of the page beside nothing, and + // anything deriving an extent from it runs to the bottom margin, which is how a + // timeline's rail grew a tail below its last entry. + // + // So the box relocates too. This is the keep-together rule above asked of the + // leading unit instead of the whole node, and the same fallback applies: a unit + // that would not fit a fresh page either has nothing to gain from the break, so + // it flows where it stands. A box whose first unit does fit is untouched, which + // is why this moves no content — the content had already moved. + double leadingUnit = leadingUnitHeight(node, regionWidth, prepareContext, + state.activeInnerHeight()); + boolean relocateWithLeadingUnit = + leadingUnit > state.remainingHeight() + EPS + && leadingUnit <= state.activeInnerHeight() + CAPACITY_TOLERANCE; + if (keepWhole && outerHeight > state.remainingHeight() + EPS && state.usedHeight > EPS) { state.newPage(); + } else if (relocateWithLeadingUnit && state.usedHeight > EPS) { + state.newPage(); } else if (startReservation > state.remainingHeight() + EPS && state.usedHeight > EPS) { state.newPage(); } diff --git a/qa/src/test/java/com/demcha/compose/document/api/TimelineRailGeometryTest.java b/qa/src/test/java/com/demcha/compose/document/api/TimelineRailGeometryTest.java index 234fd0b31..c95244a8b 100644 --- a/qa/src/test/java/com/demcha/compose/document/api/TimelineRailGeometryTest.java +++ b/qa/src/test/java/com/demcha/compose/document/api/TimelineRailGeometryTest.java @@ -38,6 +38,9 @@ class TimelineRailGeometryTest { private static final DocumentColor RAIL = DocumentColor.rgb(150, 158, 172); private static final DocumentColor INK = DocumentColor.rgb(20, 40, 70); + /** The margin {@link #timeline(double, double, Consumer)} sets, so the content band is known. */ + private static final double PAGE_MARGIN = 20.0; + // --- extent --------------------------------------------------------------- @Test @@ -397,6 +400,61 @@ void aTimelineCrossingPagesGivesOneFragmentPerPageBoundedByThatPage() throws Exc .hasSize(graph.totalPages()); } + @Test + void aRailStopsAtTheLastEntryOnThePageAndNotAtTheBandBelowIt() throws Exception { + // The case the test above cannot see. Its entry is splittable, so it genuinely + // occupies the foot of the page and the rail is right to reach it. Here every entry + // is held whole, and the one that will not fit moves — leaving a gap at the foot of + // page 0 that nothing occupies. The rail has to stop where the entries stop. + LayoutGraph graph = timeline(320, 220, t -> { + t.spacing(10).keepEntriesTogether(); + for (int i = 0; i < 7; i++) { + String title = "Entry " + i; + t.entry(TimelineMarker.dot(8, INK), e -> e + .title(title).body("One body line of this entry.")); + } + }); + + assertThat(graph.totalPages()).isEqualTo(2); + List rails = rails(graph); + assertThat(rails).as("one fragment per page").hasSize(2); + + PlacedFragment first = rails.stream() + .filter(r -> r.pageIndex() == 0).findFirst().orElseThrow(); + List onFirstPage = entryAnchors(graph).stream() + .filter(a -> a.pageIndex() == 0).toList(); + double lastEntryFoot = onFirstPage.stream() + .mapToDouble(ResolvedLayoutAnchor::y).min().orElseThrow(); + + assertThat(first.y()) + .as("the rail ends at the last entry the page actually holds") + .isEqualTo(lastEntryFoot, within(1e-9)); + + // The assertion that tells an entry-derived extent from a band-derived one. + // Comparing the rail against the anchors alone cannot: when an entry that moved + // leaves a slice behind on the page it skipped, the rail follows it down and still + // agrees with them. The page's own content band is the independent reference — the + // margin this helper sets — and a gap has to remain between it and the rail's foot. + assertThat(first.y()) + .as("and stops short of the band, which is where it used to run to") + .isGreaterThan(PAGE_MARGIN + 1.0); + + // Nothing of the entry that moved is left on the page it skipped. + assertThat(onFirstPage).as("only the entries that fit").hasSize(5); + assertThat(entryAnchors(graph).stream().filter(a -> a.pageIndex() == 1).toList()) + .as("and the rest are on the page they moved to").hasSize(2); + + // The continuation page still opens at its first entry: an intermediate page's rail + // is bounded by the entries on it at both ends, head as well as foot. + PlacedFragment second = rails.stream() + .filter(r -> r.pageIndex() == 1).findFirst().orElseThrow(); + double secondTop = entryAnchors(graph).stream().filter(a -> a.pageIndex() == 1) + .mapToDouble(a -> a.pointY(1.0)).max().orElseThrow(); + assertThat(second.y() + second.height()) + .as("page 1 starts at its first entry") + .isEqualTo(secondTop, within(1e-9)); + } + @Test void theRailIsDrawnBeneathTheMarkersItPassesUnder() throws Exception { // There is no z in this engine — draw order is list order — so "under" is a diff --git a/qa/src/test/java/com/demcha/compose/document/dsl/BoxExtentAcrossPagesTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/BoxExtentAcrossPagesTest.java new file mode 100644 index 000000000..6d133fa53 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/dsl/BoxExtentAcrossPagesTest.java @@ -0,0 +1,138 @@ +package com.demcha.compose.document.dsl; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.layout.LayoutGraph; +import com.demcha.compose.document.layout.PlacedFragment; +import com.demcha.compose.document.layout.PlacedNode; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * A box does not claim a page none of its content reaches. + * + *

    6. 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 BGT{IK literal 82687 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 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 index 88c310867..603e57a66 100644 --- 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 @@ -3,6 +3,7 @@ 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.document.templates.core.text.TextOrnaments; import com.demcha.compose.font.FontName; /** @@ -188,8 +189,10 @@ private EditorialStyles() { style(BODY_FONT, WORDMARK_SIZE, DocumentTextDecoration.BOLD, INK); static final DocumentTextStyle WORDMARK_SUB = style(BODY_FONT, WORDMARK_SUB_SIZE, DocumentTextDecoration.BOLD, INK); + /** The document label, spaced on the style so its caller passes the words. */ static final DocumentTextStyle DOC_LABEL = - style(BODY_FONT, DOC_LABEL_SIZE, DocumentTextDecoration.BOLD, INK); + style(BODY_FONT, DOC_LABEL_SIZE, DocumentTextDecoration.BOLD, INK) + .withLetterSpacing(TextOrnaments.SPACED_CAPS); static final DocumentTextStyle SIGNATURE_LABEL = style(BODY_FONT, TABLE_SIZE, DocumentTextDecoration.DEFAULT, INK); 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 index 51ad20784..ed1fc8051 100644 --- 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 @@ -96,7 +96,7 @@ static void renderMasthead(PageFlowBuilder page, ProposalBrand brand) { label.spacing(0); label.padding(0f, (float) DOC_LABEL_INSET, 0f, 0f); label.addParagraph(p -> p - .text(TextOrnaments.spacedUpper(brand.documentLabel())) + .text(TextOrnaments.upper(brand.documentLabel())) .textStyle(DOC_LABEL) .align(TextAlign.RIGHT)); // addAligned, not addLine: a section stacks children at the From 5fd1fb5294d43b3a3fb52cb8235074a24df96bc6 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sat, 12 Sep 2026 13:14:15 +0100 Subject: [PATCH 65/85] refactor(templates): track Northline's label instead of padding it The last of the padded spaced-caps labels. Same defect as its sibling's: the masthead label was built by rewriting the string with a space between every letter, so the page read PROPOSAL and the file stored "P R O P O S A L". DOC_LABEL carries SPACED_CAPS - it is the style's only caller - and the widget passes the word. Like Editorial, the label is right-aligned in its own section, so its paragraph node takes the section width and the layout snapshot does not move: 351 pixels change on each page, maxDelta 254, and both PNGs are re-recorded with all 126 baselines hashed either side to show nothing else did. The text-layer assertion goes beside the table-text one that was already there for the same reason - the snapshot cannot see inside these cells either. No call site of TextOrnaments.spacedUpper is left in the templates module. The method stays, deprecated, for callers compiled against 2.3.0. --- .../presets/NorthlineProposalSmokeTest.java | 10 ++++++++++ .../northline_proposal-page-0.png | Bin 116268 -> 116248 bytes .../northline_proposal-page-1.png | Bin 89800 -> 89780 bytes .../proposal/presets/NorthlineStyles.java | 5 ++++- .../proposal/presets/NorthlineWidgets.java | 2 +- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalSmokeTest.java index 4e7d7ac83..9c10fdacf 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalSmokeTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/NorthlineProposalSmokeTest.java @@ -83,6 +83,16 @@ void canonicalRenderCarriesTheTableText() throws Exception { .contains("2 weeks") .contains("TOTAL INVESTMENT") .contains("£19,250"); + + // The masthead label used to be padded out with a space between every + // letter, so the file stored "P R O P O S A L". Its tracking is on the + // style now. Whitespace collapses first because an extractor + // synthesises spaces from the gaps it sees and real tracking widens the + // word space too — which makes the negative stricter, not weaker. + String words = text.replaceAll("\\s+", " "); + assertThat(words).as("the label, as written").contains("PROPOSAL"); + assertThat(words).as("and not padded out letter by letter") + .doesNotContain("P R O P O S A L"); } @Test diff --git a/qa/src/test/resources/visual-baselines/proposal-v2-layered/northline_proposal-page-0.png b/qa/src/test/resources/visual-baselines/proposal-v2-layered/northline_proposal-page-0.png index 895525f2241282a60b845515f351b1066204d0d3..707752f16f32b158c1b9e9e2ff6c1584a7df2932 100644 GIT binary patch literal 116248 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 z�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 diff --git a/qa/src/test/resources/visual-baselines/proposal-v2-layered/northline_proposal-page-1.png b/qa/src/test/resources/visual-baselines/proposal-v2-layered/northline_proposal-page-1.png index bd2540df445aba02a1d6607dd2d934b10a9dada3..f4646b8a1b656ae9e21a2df9f9a0841f614a232f 100644 GIT binary patch literal 89780 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

    kqGDl7Qse z6B>>$8a;{cvxa4fu(AUEMYE|VnL({dY#eG>@?OQt^1gk zyHES=q30?-KzOztMe%bw^cB`fkcP#(Bl5&IwAJHP8zKbIFjDYlTNRGD+onZaqA3;73x5o>E=W`{T1r7_4iN-VTv0^ zldXXsXR>&BPeOPC?PCa*hZ}X8EEkzj0xdkOcTm0M@H5QC27UL=O@*1ic#SH`%Ki!s zjeu{0XHy(&zKK|sgc0Lqu0D^5M*DW-dHfWbkeZ4~TUR3zk9GlQojPi2*ug#Bb1SL< zpJ4EZul;)6Mq~zHchA$4zX*iscP7X2G#{T2Sn>6@n%}ZjwVa(xJ}9WPp$FQCEc(UpGyR&Tb3ka8A}5=R52Z9NwEY$2Ys^6rO%w`Np$u{8&YA+X^JLX`sQkyH#Sy^V25^E)I1NiZzfJ&K3`+E z^;cqjP37&u>?@|v&(a?AXupD!QBt-6=oBDX5g>7FWH)uS_Q9ZcZfZ)(@A|BlvnBwa zBaZ-`-|a59+}OrYQSS9a0cQ$XUsd%3zO8y?x&8NK)?cq6b|3Y4Hd;+h=IxK)kdY3_ zF=ug2X<^7wL<+fxHKK)+p}$PJ(WE*QKi28~3qUD_KOK zKQAsudeoBKzwkfF1#62e1Ggb~I=lwc@n!w65*vqSmFK+nj2K>ec4cK{c6K(9GT%53 zJ|0NZ4rSZYI|V}HI@HO86zUCJP;fPg0_!a`(3UNGw6oNrF6R~B$G*W#1 z76bV#)B%WNKj$F$y*!+sH)w0I(fU26bTCZ&Wz4m{wwfq)*z7)x&Kv&f)tL$cEQgN> zC-PqKm7I+v$OBKmet9h;BZH74hJ@#TCY-8A$^o3B-3dEhNezVHzamwp#M%?9OL8`6)~-^#aH)l zWs2C1kaKS1{huAxFnIZHnqMnU#7@7K7twC)Yv%hulNEqc_6zDFuwBMD!+WyyeMXxR z1Ecl7Tz;y(Wj}-o)Fa|L`P+P2kPMaIxjY9}nLby0oc z9TFlh_;uTO?d7Gguh!%LEZ+dX9YDh})XOeb7iKb3LWqV9o~^R0*-MfRJOc6(K7yGM>aiv+C&TDy1~Ez68s4QP-h#CzqQ9~>ubaPq#KH5GMcKkwphNK|T>g9dID3qZwH zq)ksC9e;^OdjILAk>b&gw^#juce>KwBJ6Pe2U$esk0Oxn1_GS8{D3E<-;$E-dN&QU zC{4{NG;vTeghAXMTr&)HFl95ScisauBs4MV&$<=_iY`xy7!f>t|1`Hy|4j7;*mivbG+t*egWFHRVk7pR2mGNi`5w-WRSoI0Y%Ok-P8~j#7jOawH zOH&V8ALGkp{bz3HZ}*!~IHVyQb#W*tV6}UTyORji8!<{wy+&XFgubA}%xufeq}5yl zv9-0Lafshq`QMHDBTL{x?RY`WJ<%Xdn9~{nii17rI0p_vZ4)=$zk0V|`Vb#LVM8BZ zo3Hc$o59Vzrhu@9Ak@gt4x5#n+wL=v(_E-Ou(GtIIGg%%nCMr*2fvj6|1`zPhGt^e zek0qp)9!m`N&VOba|T8xCN^ef1T#m4%k7n%z7;hYe*#Y(YD13AYtt4P5D)<9jEn6) z@$s6>e&gfZo|{vhffpW{n!I`6S3Z6IM$epxvGQN-@&EPo(*I_jis(H;I5DQx@Xq-h z@^_22Ht}%>pcx*@+#3So6p$fp%+#6g^}uWdnY&z{nF9ip`&nVn-I~-_z?1~?@MU$1 zqMo-Kq29TR5mbJPX}o}jGm|{AwRrR-^3R_fU@w9qf*snfDEeTr;@c&ahXs!%6%+;m zJ0Czib@TEtK&WXkxI;M!p9g3Z3=bz$AA0`KzC2vw;Ha<_uPt5gRS96z=@_cD;NQS@ zf(Q%O`{tGtktH@b4Q8+;R$zu_BHWx9E)RkB*1*)qQCeK;+)~>Vv%B?vV6FxLaj;BJ ztGD!NFU75Q%TnhK$wvI2A`{f~4h!yAfl@n0%g~tV?7uVd!q{Z9unmA+*@V#tqjC=K zw7_Jvfhw#l$Ty}!K{dY+l{e-i(vOml0Mi)o=O zWPZR{RZmY(LPEhi&k_fOuSaiq`kI@|ro8C|&yVq~o~Bw|u)uoEUd|2Sq6%8T-i&q5 zi%o;zs0UtLiJX^9Dr~r>r_7(6oX&HK3$^VBl+@HJ7q18nTYvrf1xy*uu)xj$L3OUd zP{tI&HlsU8SmgQn9UmV}`C$Q=@+|&tAA04RI1IH_(bPN#!jPnc{2K^FW9EgWBR_I% z6(2u2Tv5bD^+Rqt3AY6>>NJ>8zBvUgF!kCvrB;%ZUc0LmAdrUD!MYiWw~O$>ac>4gOL`;K9sQ zu2<>3HHzkmy&CH&=}1@WI#Isb>0{2ELpw~LnMp2!R{c|%(L7bytRJwh6WFyoO8^wY zS}>y$Vf$VPi9CAt+AbUJ&I%_BFNBboJahqslv*k#zYtRc}1SDF}p)SoPyXG3v- zp|s^@!^?CO-3BlOg5wvXS7R#}atchFsS7(EyTBb6kADC&Y?IWyvUbtDa57So<=!v? zf12R}gAKu5x#WU`&aO$?ugTEprGq*P6d-t=M+eu6Pm0ANLIb~IntbOFpuaa}#GBJk4ZS^exrU=PX>|gek?Tl6_&wb=ofq1`q zn|hcKF#5tzB)ln2H$6Q)&R+QW;}gT4ubYW=Kf%lDs^tjDJz5LLKI^3>rEcvAZQo;C z8q-NJ|FCaxhD^?dBr}h4tiE2Pk2ggp0 z3Ft!f-BN0y8FIp2&m`6`0wfc@bJu*#d4DA*5+kYiQC?u+(GP2DdVlr2Gg%^+#n(1* z@p*nC>XRhV!_bYCCo&X8GR+$6-yaQ{H#!T+_^T5nbVA>TL4#{zdnLzYNReag4K$)> z8k&8RWUe2hqP~2|L`bSlypaz9o$BFukN-|Pr7>V`nt|OJicLPF(RKE+fJpaf3Jr8A zyncJs6TYt^_DWGfW-3c4hy?7tUDT|zZH=H5dK-jbR*4E*s6YA=@itrLD%AK(1fNWN z?r_7=<=AW9w4l~dvG2lJT(onyfcL@RbyEAyJ#T6{Z^t{wF^?F(^5kazp%tw2<8q+r z90tK%vcwJsP8RHBT@#2?%P+E5C_nx35a~bESHT;w1o5$hgRNHQgv_-O<{No!~&A<>` z6yD;*^EilG^tN_NN8d9VbcL%8f0CG|)_F&S?D|dgO{si}$+@^#i}pc}%Rat#R*j!B zj!G4OI6>2);Qx5A%d9S+7fV_5b|*W^5aO6`|I=E(w@>#_JNsXgt8 zQ@~6UU^jen-$Nx7ptHdd(+&;_jLV8+dYSVm<~L;J-cLT8=-Trte=68AFHK33Z-ZtI z#Qi;OS61yF2BH2N@JTIW@xA9p+}nOt2AYzp{O4>1X0+>3j4~geJ|X%R7f~lrP4%Ql z*d)l42K`5xTYcL0$HLJJ_4y!{JDw1%lXZ?mDfwsE%oIim<)nH(cpAYmvVJczq8hTk zy!;Xo9PEoa+*r<+EfNrj3EbwTAaGMfC(q~L13R75dNQ%>{sBgiuzsQkk*f+cWW$4{ zbl$wo=F(AKc_w7X3%Zx5^}pGPUE+ZL9H^s;mX2Y97Kx2ZHe=zP$O~7cSswz@QR5tJ z>vfHUVCdR3O|4=$t@-#GBO`fw!!{M8SsXd5ESewR_orRTf6vsigmwu2sJtV(&xyVY zEgx+OJ*IWx#K{kI?E=q}sC?(;N&oDtJenMd6JNgU-g2#BH%SmL)lz~Nk|3G=jKgcy zW*67H073`HWKsC}sphN_o#=O1ee6@0IOc>`d{zm~!iSXk@3u=rU5I$;6!%`-*t>SQ zy~%HT?)3LJ&I_98fUxyLDkT&>?N7K2Zb2{2rR>(8*L74X;2^8Lar7x^SNWM^Ldjgg`5#NrlKP90W3M*T~2G7HsI_ z?n3L;)wvQWSSUI1*h9)$JhN}%VGDA05{Pa~F>814itEA=@ z$FR8%gkI9GNrn4?Ep_~O_-(?!3CBP*&N}0y=oifVaimoTKg7PWB25kbBC>PdGSQt+z z_Z=aH1oG-RKRKqpGkj!uQM|dGe;3UqklUpyP)NPQMA^y?ykz7lv z)_eUv@XG^7E|8Z=l0?=#_36(;DV^^|yH+C~A0-pkVwuTGNlQ^ba}SCTX_I~QfzQmj z;Vjq|JC_kLA;A)F{^a`$p>xVKCLUQzQC1ZMv6cVp9Ac9`1))Ltcv_-urV`$sf_I-{ z0?+n*wHzz*^2au)QjeHE(09^4PuYGV`y`o+?ui1;B4_!TqCPzEU1;5N$z^xUxrs_vU0NjZ+44u*9<<($%imCS`h$a(;#27r?RB5E?Oj7zN@eycqUCL~+%!&qDNINc20?=j|M|?;HEE zIL~Oil}Yk&5V0N5Dta}vw;Ez{uSGK8GD^Xm#QKRqY4~suB_S`Z$U-ttCsXno`?zu# zTKHr>WwOp7itL$_eucVZ z)9p0KNsddn|BChDDSUc@4{i?8!NX5hBEz_2HYFp7AI?IU4>mj zF3B-Fh+OuOo8heLjr%J_+jZ%Lkho>8=rN}A7({fDXuCdb zj3&V!)C-N#xNQ5SE!3%KNuyuC6VgoD8GqL5c|e~ppHIs<%WnKptV1UvA}jP)D>7P# zM(gZ#M^3QnoS*N!daTSOL=5Hmtu~)$(~_b#_-p_95@oJIn$t;n;OMHcfNWjc2-(K>IO+Ij#=Nk=uLK<|hxRpsiiWDn) zo@wLGSw$ciaY$f0Gma>8sCX2IM;g_mO*Kn8CLszMQ=l{596@i6U+i9PG>+oP8aM9= zA!WAviXM>?MkNi=K%my22xJl1iKs^AnKYEz=3EmgQJ_;revee%j)x#RvzwI1;nKzc zmEylzmr)x2er2J_3}X96&zXYu#4-Y|E5V&BU==Fr>!bRLfTcYn-$LFmo5bWnPK%>a zPpVOu(;SKVZo*cmjh2r@sc=A%5uX)dXb4k|#ScQK-D%x3K9oInw9CoC>>;BQI`$ep zC`ZX#tN%h5C&6#tooR>DG)Vf9Uv;`!Vf2&rU?3FBddJ-$VLiXm6Iy`sO0|#@f4ugXXUI( z@b;UGy}w6(mr#n^b~>dDMq$+EL7EmQ!l6vn{h3Ss=5KIkTVlST%cG8(THd`c&_RRQ zf3JPt)RAMPVPL?(8fPkqkFVy*KV4i>qOD(pN?~UujdQE( zov<#{xZ#OnB0PWVm19VanDkhd4;-!ExTx-Q2JoyjnRo@i}uT?hb z>(3lGbJbs(+id~|s}t26Jl|&QIQg?rkoZs}Ya`2M$QVt9q*ra_Lr?5CZaV#h0%z~b zs^?HZ-Ig!R#KyMVwoURiX+~X3r2SyA)3Ig&lZEPiXLfsBG!e%i)`2{xgeAcWJX_g0yE%ZxZuH>-vL;3ANkMQ{Tc!)F*SiTzDi$&#NP(M(kokeQ_ zdF=ND|F*ii#1pch2)wY|knP*oimMCrza&{~5tr66-J+U_-1haAM`wX7rT*3MT6?Cd zEs$O>wp$BKC?IGS|2h~h50yj*=7U~Ab_~dqxG<4Sudw}+ri6D%LAwTedg=}76xkYb zf(7CerkEH-#a6a=^-NQ)N2UK58^#TxG*Xqrpr9eGD_~@0m9VoV#?PO(S1tUQ|m)CKi1g0`$$pn*DUI@P2bv*>|(bROCy? zF*7S2B2iLlsVYShiLB%i>uf`uC3M526LUYHboKz?2;icmRU_<%Jpi49@*MU-OqvBy zR%Jjs(nb9*?Tq*{>n(Jw7l ze~tRCM41~*An8amsj8}a#r93x9-TlDbeqZ|H^Ag<5CjnsU}u-sMekAMLCxt5JyMk> zaB#kMo6d}9Ld`i+&lWaiQM1x|8;X88?O22hWG5g=`fv4bC^R><48(+rOl+CU$rIc% zy;+%MlF!l@FVYzbEV`p}H_B-15eZ3ZqlfB3G%!|etas0pgcbSd@%%{&HOCm2$3E;4 z%u6BV6B&(b)xpzrCwUq)RAOIZOI;EjOb*A3s*1iBNw03=)cxHHfAU&ZKv;uHG=oIR8Zs-Pv(!=-!ebxyf=O$1*{E1 z`3$TmGSyTBr9YET1qfo79ZVuGMz;>epv$VB-5d*ue|1WT*JTx;t_Kjv(mR140vm{E z;?6}p<2uaUO-#C{y0atBK=U{hzCzseB+x>jcaX9&>N0KizrykJ&P(Ii<$V8J{`vL8D0l% zB(xQBEPx36EHjL1SFj*A1T@YIpB3ni%|ADE5iI~p33%4^9*j2}j=IeQ1(kDwII2F6 zi{B8H>+wF^hMjFm1q-{~lY4N*tpCYXHz(>dZp0kdZN`*EavMe#{@D49cMLXlwMgl3 zw3DP30y=TZ{GJ+AOi`hP93o==5HrLk>2j+TE**q5^G7YVsJk-MrFA4M9$*fvMNG<* z4c!VmQf|;$vsscu)Qx`DqM*vXqpAX0k_l;>1qZmVmh-b{$kCJ8E|tf%kQ&YV?4(z= zI1!~xyn;EtPKMAhe5=n6+I3edTLO~bP0IbKxuj6wP9M@90zx=p1^ZH(RP~dLP5eL? zSC@GV1svfELRXQdp#DUMiKb(0cNJ&+AkdI#V?td~W|<`HDub%4E@&0iL(b2av5rX{ z@Y^9X3{eYPu-Jo%&>V7qFh?;KvP@&TPrD=ulGF-`ZAk28Ombkc?!UkSEgOD>_DN?2 zb`&lYTK36yS{-BU_F{>>y86lmcIB~}612*eGQ{u9;yIXoaKl%x$mF+%#G&}}C;2lj zmFy^1xrecpGQ!pTq|qVoEHLr$4fzbE3AYMSU=~AHwSj0U@Svu(q~K&0QQ$FjmUN!6 z8kSAHvVIcmktUHs*2zrZ?m%P-X83%|%mAZy4Gxi3D@y_3lf{(G66ItEO}c$gD0~7- zdP5VZnL5Ftrp$=wv4^w+08AhvIH^#bZG5K}VhX_Og0E)Sabd;t8gJ>yZmK^Lx<{hs zzkOxNZqRCkNaj&Uy{UOELXR~ESyge9d$wa}bn<<aOX2p+uFG1>}ey1&{(8LAqSCchV3-~v*+pnNDzIq$kv(9#-!qQR1T`c{rIQE*~ zpUfq!xr9rRm&0zG&wC`KXZj&@g8`tUQa_C_NDKkcP^z0b+@j*^tHXzGqO^t$?#aK? zY9$F>QFk(<1y={G<2jwUOR`VrM$KlmQ-|z_f52#?C0#$srI^`GR z3>+z0BC13_oEd4}ggnT-CYW93v{g<-Q`k13A6g$Bas=wfqKJ6T$4ot~jJgAz4|Qs! zARlL97ay7K!e^zVTzS8^DH~3+iQrulb(nd_cqAc_x-AwF(CKDOz6IyUreGRSj>)%V zU8`gk{52YrUyBq)g=34?SJw-~|J<&??t{{yh=&)<1y&Wa`pq^Hq@YNxWaNSRnZ*i$ z1&)A`!W&US4zzGAnISFm$p{03ma8a$fT0n(%yVX>By2@>m%5I#25OhT(n}ye*}~Te zvVhPxmLyXaa)ESZnX#y;Ve>Z(v%^cFF$o9zq7p<3shbkyw=SWH6 zVraAFHrnil8>~}0F&GR#Z(_vfb*RXlKa|PDlY6J}OD8G%ZVH1>)SzY$1tBHk$jQkr zRu%4C%1@k$CDA@DTt?onctkUfEXM_t1S822mb&2q`=DJTJf&1b`d)A>{ISi0y{_r9 zM2PPc3;Pn#iz%}Abl6}-5Q)0WVMp}i2Hz(#>~%v`iw2L?ECzHzB*HDcFzM7q5q(PK ztJUimSWp_>Zar(G1;jSH8bNbt;Vl#3K$f;lnrlF?h8!`cDWbliSQa@O={Z6^czOx$ ziEA^6CgEGdAl%A7mXto|NYrV#^okc#g@S2`ihw)j-38)%E}7k(E%`hQNdxk(Kp;%6 zK$P8P;hogmjk_{kVYfDk*Q$C9v?M4j@-TwH~63&@bxAt+ltOf2M%uAv92 zlK??OdMBGX!>5+3@)ieZTZaNr`LE4tVRs?!isEg+EIKVMh>{2Ga4oo6FS`L_AAKktX*9DCcHbU(HuP+gHtQ)QL{8<;0ZYyX24FLcvz{D}{Dlu0@r1!rl6;!Njc!>?JgOTS_GP><-@Phz z09s$fVXdrKGbTS6VqZM}O}e}?ZcKh5l9EGA$-vjokG4szhTNrO&zg+9p%;%+*t8!< z2^Ga8^Z3Z5CS%g|n)EC447Qyw2TU4bMGJwOFk{Z@i1EN50`iFSP!>8xE^l4SWg!+Coa9aZ9hJY$ms zMr%)A0B5Hoe2M2<;|U>{m5=pEdR5Q-NpgX#%c2RFN|Bxu(4X_>0n^JFA@)n7hhWac zLx>5Y*+Yxywu!+yB!}u5@#SUd9-pRIw0N! zD;g6AbHO*Uj>-Rc1X>%Pyn@l`vE2K;$|ej4Nrbb0#E|1jc^{6+KhUI=A%qXZvtRrVbfA)G~lFAsPm9jfUgQ^*Tuk5i*& zk3gr_9~rDhCH;77PXe9I#KAf%UAP}&Wc4EA+zHkC!nr#P1#u2j(e`ko@)u73*0@^q zro&HU&==|IWt^FEsJQxR&KH?`ks;WKzA7=F;9{!?Y$EY{FyBC-bnw0$>g5*xD8A|S zt+PM1qE>$}NHf)oI^IaB7VUK=-2m3aufu(mEYZl2paiT&nq9d!zzs(`xqRN6`z~CM zFdmsgGhEgwv$x};CB;oM-vh0W&NciJO3;nRkG6W<9-L8UO5U=9l@o_JrM z6DeMje4m7$V9`P@%L$6;k(y3^wV-22lZ4fHo4UN0UQm+F*{v0rM5z>*L@i-aSk>N) zSbWd*ql|$W*QZl3&HGG?G|5_s@RbrSZ-j+Bp2BQ4RMQsuyR?{5 z)5rIXsxNgPN{$;Dbd%m@A1UUtBuLQ&KkwFX_?N%;X0nK>fBi|ZmPL3~VIYxa48*KL zt{|J>kgAY@^Oagy5n=Zm4zF{(CvyOgiKgbTsp6|T<)@zS7idvGU6|J+JKp3Xg_al{ zs_iNS5`B*=FK=TapN^NI)*iNHXk?h#zL4b@!v6S0;wtJVEkTrX`Ni18gsvriNl;(( zS=kOV?kSQ@bGjA!vAKG?UAC#}x-LP2sY&;fR>ta-YP#=XFq46UC_z^QiT`i}6O%!O zPC}l8Fx-KojpaMFxfD!I=VFXzXbvs8kolbJ*QD+mnzWs0VR~m7y_6Cbtq7%YAdwoE zR+~rBn=$*ND_{7nsF=@|R;La`)b!KTYW`QI+GcBCIy8(b_wd7)A&^xOpk;lczgMa8q`g-_>6A?2f`v%#220geKxrQOb@vI9$E!Ui4Wd=4@);C z5M*p<3Fx>4>l+`wF78(DZaCRC*v*j(ZnbzmZ~E-xRGW;a9M}URe7O^m9seh`3<1wbHe2n{kMmmLuL=ta&Hw~s{-@ES ziwpFnND&SWO-G+i@vFb-X$^8xFAsmudk`9Pj+;!5+Ukc2KO{CWYV?_SiV|4?7{9h? z07s`$=4rT~X5g>_ z-|uGt{Xa(6p!n5u7LCiFU&nhIr6xfWkNj1R0Mm3>I1fOB47FDx7JT{EUSe;JA+y)1 z$e%MO`B7E~SL4cloCG-`3$x90QnD!z8RZ_E=&(>&NHQaS-~CT%YpcwAc3+E8m@x?@ z>#kxXn?Y^Px8ZW|-Y_(T?a#jK{%{J%cu4UIUy0;<#!HP|WBwFPCq#GAzw6v>m#Z>! zuIL*dwn>C&WSq)KN4jT$rj3b?PNh<|XjEa0<(piC04E{dQn7^&tv3*CMCaXLD+N11 zm$Z!22Bcxlv7&hj(XK7`tzc!7Q9ib_5DFUV!5n2K7voIh#mkS`md&^MgU_f{Mi`>M zu4Ua6y2?@U>2FfAoDHq~Zp?2je?Ta&;)-^~em)jE${=k6)v7LNmrij(Ne4Z^k1L;L z@ABL6ZYBP=+V_89V=BIqiCkc2Jyp4)1YaM}i zg2$EJPddX$KKvqnA-8U)JT(jFnnAVuPjGMVM-IyndkCwpHeTJr{)seU-ntXh3wll@ z0o29XS5#plZJzQ#N5i!rxe{&+9&}!wN`{9)m%5i$e8Px4nIYu2_2{k4ZiA5_1b{bl zIWX}vb8>{KZSOICUG^E;zlf4^I|Ntu_CElyAMXnLbS~@6+J+z#jIr>vcR*pQGi@wO z%B6BA@~_r4pntXd7vP-&;Ft60n~Y{B2z9|NS6)PJnIhUcAX7>z1f?05uz`T~0W7UI z{htW5AVfCfde|i#Z3OB$eIg(OIdw;X^>?1ga)>8VJ~c!wOPZ#|aV;A_&|H!MV#*N> zpLx@Q`V=%VAE9*jsB42OfB!U_8(y+T{_v*t4Qoj3>n>YNh`ff#4aPAX0pgAv0D_R* z@l?I$ZzcdV#k#%Ehsdk}0-@@rli^o5_pUKVcuGQ0ezRLZ&AR2|N;GAOukt%A3emja z9^&1*i-=DEVx$kXyHdYX(qoWt$R7a2+vg0ELZ^oS*qC)VUDEMU;k~=-KDm}u?5LB6 zmk|JiuVLag*c>B?R&WNOFz--hGcaK6()>(f>nAH@s{V?BWoE|actb$rAjH%_&_v;} zk@@m~v2ZyebeWoS4rzi35q^jLlYHT@llk2AzeWvZQ%R(S_sy|7Dz2_n2?(#L(sL&f zy&T`BUO)+e*u;^Egc_NC_xMaEMGKW$`C+$k^e!4Na#oRf2!TLyZYRA9m3Un-8=d#? z=N6za!h|kEF}SqU1~iV6p8>EMjUEU-IOJ@xV$f-$P$8Y&c(jJ?E*&o&Xd1t!I;Sxx z&%ygNl9^+%o`?bcMrq~bv>xu)S>T^YZiRqcR6m5VD<>YamqI`if(@|GO|Ojq(0s2kKDu&6mx zN{=)?b0x62KY>mERQ-_9j=rPJc@!^)%Tq~Vhitxe>a(G=s;T#k%sqm8@w*Q~cj zt5b;nk^~TjrAo@UmM~?*9mvKjW*tQ~XeF4ameBIb%&mz4=09<<(`8}y)mpsODR^{A zffoS4mX4z&s2RXZaSBHut7~teVf}RVarRq(A^#iea3CgwPZb(C6+K>>!Pz4eA>)x5 zgR!I< zG}!71^(BuZrR|h&g4=sDXC@LV{C|+AFswOSr~@rmc-;58+9|2-xSGWl1bCbboD)OQ z2DUht!xNktGVYPM)Jybn?pmK`6iZX77wHr|1e07nxHsr+wBMu6&NQRbIFlwiX&9&t zGi9qI%YM`Du%WG*T)&ZNxMLD~QzRj)A=t6;5VJUprzKx?0MzC~5Q6$?G+{|(wd0N` zt(jp6v{H)DM)a+tE~%4qr(pUoGj zyJV3YZFp?Nc({?K_6!&w79AyAZ{rDy#fBBgG35Z`c)>6=s}}T8bI3Pr8EjLaAfvz4 zE!M^t*1hxpOg~j;#H+>ZR*s}2OMRdhVbVIt zDfG2oafh3WPAVk+t9r5TMUp+qIW>@AV6U^x`{}d2+|+^S%<&hWGI0aW`W{v~0+BGM zV%+#6ZH}!1^=}5tkw-jctWzoOOAffXOu0(^PzA-uNV>jYWvoIoZ>kMc)+S|3?TtH) zJ|<=ns61^lU6yV7SUCT5i`Uz1_iHpn}&zOlAi^o?{Q=O>AWdj>zyuGhTjE_{+_-obl{vnn+`8 zxkXlnilywH03LxaD*9HOTZr`#QN-fwi?PJHf&v&_f|$5&3=~Hji1C-D4uAePs`1d)?zH9u|;gBp0G=nTDk{c?O>7eg~HN21jLtS>QF?nN+ z?TZ8!jcv_+)TfFD7JU$X2`ie!0@X`j+!EvWP-d8Kjb4CD@0Z1t`c(BF_0*p{3>VN* zXuhOr&k1TXpN~Kvk2NM7$K+3JBg>41o|FoB^P$OrkQyfgHalKak;y(jz*R}#IvQZU z(LrQ>EVz+KrL~f?fpE}#A-Blo>^>C9*O3Ph3EUR)QaV$NNfN*53A29K!^((+yLBqo z9fsKsj(igW#Rd}jd6 z8*^znrnt)jd(GkQP-Cdjiiz*MM7ETYGQ-EUih+(k?Um7-61FU=%$=Xo#@;>=HtaHp z-{Q1{a5-GdE{pgkNnr$$S`u`C)SeP(4hblX_b^b4Ch(K&!t^r_ICF!%m*Cx}@;R>$ zXv0-cZa5|XJt_@)jcqg*PF`&C%}Yon&?ESSR^rI-cHY%TV8p*DPO~y3lG7ZrbP1o? zt0&cCcW}En2pQ84fyizit(8_=MX5=WYGjp*sN7&ZVQW%Xmf$K%1zOd{rG4cE!?QS= zJ^%Oul)Q=OFO%!Ot@5rEd+Qq;F5;%fOG#|X*hvmcX**Pg%~r~t_@5OLLA4&Aj` z8x6m)R7#5hVnap6%u1FIZ3?!LPG$yL!5%#%?q*UjX;W%CBOLy1=tJIfGL|#V`c}(i zC-t8bj7x4|7e(90kTH3O=o|{zg$`FmKeV>>R?tdeQ32;b9KKs2L-0N(Qdk_pO^_RG z(FR@0zSp6ggwmnMWO2_hkR1rp{I1{v$11l6c1du@INbWfq~T+but+AMwpn$rTujAD zsIhyz`es(br3Y{DUP~-q1gO8}0TU(ZPL)}T<@Zt)7x5|BoVho?|0Kb}rD87g4rdIX zt%0*BfqvJ7zu2KwBO`t&K1iEGIbL`SoS}a%lER?;ZX{p$-Pj)SgAF}m^j(2+34Ba+ zO-a}gNl!9T%4AMwBEl0b5nMV>`96fIW2qmx0W0=YqHBKKuukdQNZW1j);OG znm9m6=sguGdfXl>FRKf6vQ#)pG@|sxn7p33NQPn>dIL8&E?ZK_rYI&$E<@%~4mX$%i)DmvUZBh>F+XPIKohvGX?;Y)Zj+XI{um zIm-KvXyo5h+>I!WU#!NVMq|Y?nw8?_rhOMK<21m|9a_TypHjVZ!mI9qxa`-Tu+JWG zEyxd;;_~xI%e0PhR1f-G#8d>&INu9?APqvw)H!scK7R{M-P67JfU(LE`HcYEGG7P# z&CBrHz=eU^LbxFU_<=$V)4cgX@C)px3{fVi|>%7qsP7 zLMfFVN(9}B4~Df-Kylb+UlIs8vY&@&Mq{FX1mOoml+2#Ke8nN4a+YCvN0q|d@|^es z5qA*>GsN4FsL5l@P2M(^2?uQ|E_G>>W+~i(>f?y@w9k)MY0NMC1CPsZYw1)HNn}Xr z3dWc(O8fZHi{C@>XH`G6s{J6q9}rYl9-+tRMw$gP7{jao2*bomA7tCq&|t*OBcF45 z(I;n6A8nv1f|HA#3_VN`3a#awNQcn6xpbaIt#*FJ6U8H-dbO7m7Bs8a!vK%!6>TEP z{`(fOmRU(bNK2}_aw6g?!$l!tqPT-kiiy^RIC+$9mOJe8ga(#y-6F_Z!d)j2-+8L6 z?(bZb-?C(lZMQijPHF-Z%QGy;4(?qcF{Z}zK?+Hm`UERKjZKo54t6S`E{Lnk2oKo; zeJAaskps;eJCCY66k3aN{1d^K!;H)?h|#zhJuemqF$(x1coF)1S&G{c=`tw&32n|9 z3_sncycNnc35 znI_|0?G@ReFP8}i;{>8#vWPwnQ#DPCy{7ALEq@)0 zB)BAb29yg*56*Hy%fK-RopAS1`7+5=<6H0aNRSzysdrPgKc-n7pZq@ZhqFKx~5Y)v#I1JirTIO?cL0-k+5Z_ zYrE!(@qKlhifOg#Elos;ouf(^3 z{c$+94Ct@%d+-UXM8{@?(H{RfspZ{}*ubUF?;<~frg3c?D|`P@yv^gshYVt7#;aZY z9XSD21OrCNM9JP7dB;;!k)Gk5XBl&6*3`>dv?Z!ELsP-@?z(j{_VdA02ePIRuc@~Q z#)HT@+Ohpq1BlM?|y%-pVX+wt;*0bl7F%!>mwncE+ibg3v>{2b~B*`wBBvXfUc! zO1{?V7_`ZnqF!8Bc%+d2hS&7H!}xmq32MhuhB_{heotZ5$1uTxjMLvlippT#Auazi zA#E6fpO|#1K;O#$WhWvTAFZsec6>fF7WqX}yygarF06Xth484vK7x`m~et1Cc9K*elwFghd-+T>Q*UlfTfi8c1SZOI_ z8u4vMcIZ0363H80*j2xG^6GCL_kxc5jSW8M;lwshX5N*APMTteT`rzOa!#BrAl@FW zfBd#%BhJU<^V_cOsv_gKVZ{_m7LUq;o(Gl?cLE+0p6d^~|J<0U6yQ1tO8Ci5@Yq*k zr4QKu%9SJ5Z-1zA_4@L?qpPUk?_+bHCR*^)G?Cajve%M{aZ^(i@@sjND-fEu;D z)y9o2@`LIdd+^8VdeDxM0r}6Pq+ZtPHn|kFAU; zr*NjWpvV~^<<2NNF)^{Ihz4?uB8ty~g~5Vu^PekL5rDw3R|MQK*xl+i%;W(sG`vu> zhJNNd)27ZZV9O4h6XaI;U6V%j10iI=!ri^Gr6pbc0WRIVHlUTR!tOr%(Wb_C)89@d z=y%LOYS+2pi|Z6jz^RFU^{(si#Qa-ss~V@L=16V*#jbB=(61V- zKt_@`=`}J>=j(vE=S`b!CiLRkL z=i&Tr?t;O%@zF2WG9dhCr zZJsGrFMYGo=}Be=aY((g7G42te03OliD9$+T7M@TQt7ok`C|3UkC9Dyb5POU^+avA zjkH2o5l&BR`*gjsx2lZ8DSOHimDua7EvIi~_ktjp4&2@~LL({bkMUZy+BD;rnK(aQ zyU0D~v5K7g!gc9#yqLW{=9r%5)QFXP)6L3AIC5CJ*nuUj&|Frn0OykGn1HbG^32Td z311?vjq|3u7GQ`@=q0=|HHTpLHuBQL;ZuxA=H$~%Emz((qLe?P^vMsDlMHdq9DO2B zYtQ~qX;HD1@emK1i%vg%C|%O#WX zAco9?;hqj56w=kHsZB~T!o?Ghq}v{-Zs_Y5|L$>5ku^@NZmUKV)EEs)f!RFEXBkNr z=^}AatFBB!A9}EuP@^dNDgWZ>R~tCORkm0|BG=s6)~{I{ZS}IgfK<sferSS&5(C zGhXxx=^K_HR+6~8nQfA1P6WcWKQ#PRqQj!&WRLMbb9+_VeBP8jA+E}RwE7&r(!6)q zvGy6TYd0UuA8uPTy;AQxy}RccZB}>OMUKa5r^3$#q<#W1*U%q4GY?~UfpoRHJt;SZ zTcRRWgH{KdLadjjLg;BJ0 zlFY0>2LABJ-U6O)@PBpyveO6inY;&C^DV$HRXm)Cm2TYwfiEOd%ot%2V}zG;XYak8 z)xfVxpMlAdk4p7fx9!_&Q|FC)TpwfopOtE>ran2BGLe=G7q$b=K*~1(4BGb;b-PRM zr0dg_bp*Vrz~r6q7_TNhY)nJySq#>J z!3=-)C|@o2w=Y5`4{Oa2fJbqLxitWOVXt|WBB1;3i`XC(KoUTmnOzEh)P|N9Py(4o zdBuK)`~`5?y-$qk{ZK_LJkU0Y2ek8SWm5>4TH%}sk*;uJt9%CXw}?teyWH$5Pm;m| zxM)(;edKK-VylnULoeg}3AdX!#J_{0gYHoEBeYTF>VMm}i^MFjqnTVJ9d1f}9r0Ny zZ1GL_Cf30mq}bujvDe8!h)2kC*#<@w27<#f`d;oej0l&^Lo;Q1pDSP$>?QngHE`?A zC@z2?-nrc|bv`NLD52|2^yUkO#TT-L!s0KdQ9o8{A!_T6ObQ^%Y*cdU8p6bWO`|N(5vJ6tBQ*%UBgK~6{5BHrc$dZ zh;X25GLOLY`(M>kc)GXh0=Q@{<+pelCH$W2R>%@di#Fu&Ix*s zo-(r2Wel@=l8*V>n`Bhq*BqaLsBPJaB;^}-ha1Xk0k6cB!}>iLrzR#XiF3H-$M#|8 zToWf^d&9>|n%MePnC|2)?;+YtCbdAF(^_;8kb!xdnFzLI5NQh1ij~_pw1q7NeHjpz zU%>e~9NQ=xCZBir_431ZC*^~WDE1|+w8K`DinkislmCgGvGCV=A5G7lW28*wuk44> z05Kd+E;b4G#;dBw*bN|t=4>G0Ur5WyMA0w37CkqB2Esglkd1gLK1YNp*Jq*6k`8^m z&W>L31`q37MNaTh|9P9g;_B%lI+KkXFM7%D-0IC3B6hbPOm^x}4T5l90@<2Rc-NnE!z+8;uxGUPSAK>rf0 z={x-Zk8Y_i=902oF-SDAXnK5~cnKqz2*v)Z_I6{JgZ&L)AR^TvCDZ{;XxQm%Xttt^ zK&$)r_iaCZtXcp5|486){`)(x)J5(SA^A^ocO&s%b^n5el~qYu znZl_t>i_mOj={~%-$o3M9{>4%LFxZ28JX#_jl6vDf3E4jy+-JB`oBK>zh#d9X(>?B z!@hsw-MK!l9S9q6H0%P{Hx6&#UayNieE9I^Bt#y1JE(qrDzdn~{(LU4ya*_D6;3R_ z`J=5pdwV|}p6}s#bF|bkxglO#QIRcNA#P}>ukr6#DyQSHD#OlJ=mC0ZUw^-87tFEi zu-80lgDGFwn}Lzh^R8a^&6_6RBp@3>R=vuvEx=(ZSK+x4B8ddM1V;|HP;EayG1`$y zR$C{hckNa}SSEr2k%RyXs_f^0o*I~#*etw8QQM{22_fc7Y2cKN@R)EzTgrpo?l`Njg9^8vy_h?rMCBP zw#Q;O`tCyu;V^${j|EgtV&dY=;{@BC#`mt_)R|+K3L6`brn+gNl;R#dA|l~%z?sDD zC9NUYTpsS0gGApKyIj_M#}7Y+DbQl-n$J{}muHh^FP5t5SY0jg?%BqEO-f1iz%E@~S=QG`LW>|tD&l!GP!A6uEcoG}nZn=ynI?$B z^yvDcoe&>?gnHVXKcGuuX?SAd{bsg+qnOv`S%>s99Av$7kxFYsVNzyLSXdZ$yELDT zz%84C(gZ|^i~7{ZHI0JY|C~0yf`7`u?ME!~Tw7j`9$MN<#A);%6!WE_;dSzs5jlnv zoO}q~d9v;3+V{vK-;J}xt$;c|MxUOzh17}+6>o2$uOWZmym@2!@ZIyc>E?aVmZk-y zlE|>X`)L*@0J>Yh@ck5e_VMK&T!wmbP_^;0Rc8wEetrzCc{&i7zHqbQ6urFqDDAX% z-MRHp@$!I3zqYm(@URx(brD%w2k2UDuc(Y+Om@W}KR(B{Z2b`b@kE*S`Q~wF`^$9& zgj|jxfHM_)^KIvSYE7Xx*#C?hdTC?&j`PG0BJA;$H`&w$4rn~0MGQ*kmfvhb6lksvt9F257m#+(Fr-U7dpr_TY8Hkhxl zpQmwNK5eWc5DRtwEqyuPnBtm|n|9#7ZJKE)8~T?=bH?U84=%WsGS`NeD`fJjpg&!gLoego?u9<6)F<(oIvMw z)m3B6%Vk%W$MY(ny!&_KH=tj__`I_bkd~GqD}bo78j@%W4v&-I%MT4N-N8%T?Ywb{s z!eCsU1a<}{N3gmPeA#cAhFykLT# z?@ia;zzP@5Gz$w#*U5(GD~6v@c8H!KekN3kHW=OV3br3Nb zhL^kKmv;Aap0|$;FOS|1Dyydce?*4R4duN5S;scIGhWWa_XYp>|r-DlC!%C$aFkbT&f&A0;TdOY8cgv6A(us;U}-GkrgFuZ75@JUj$Ee6Fu|eS8Cw3V9fP@h0~vKL6$@BUF}kDM*z+QTn_m#i8lCcEDOFGm5j&SAZg zoPg@mU-Qlen~AR59@eAn&d6C>!-%oHZGZM&aYktzEYHt)ajNR zodZr9^Cj=#0x#hx;dHn}T)f=%*E~WI1TpHg@d*jlFuUVo?`&TyTgE+~p9X|{5sIA; zr7Gxtx1Be%gB!{P4vip6N4b1@>2cslt5dYYOl#M7THa8B(4nn>mzMwo9i15Yhs`IPIx1*B7kEa3@%#w&b*Oof(5U~N zcPQ^=A=(rfC={Qke+UlN>+FB~IUq7Bs+rsLy&MC!jFYD5bA_q0?GR*EH6=4O_35wp z0|p%~A!(chYM5XM^o&s+8%zLuy|pP^%Snv4mEgX<@%;`CUXslnc_E027{URH>Olh$ zf-WMRwzX%U!D)x}LA?ZcH?}hH6<9wI)xj*i@CHtCW6ru>kX(6vo zF1VNEl}o9ojgf>Oy@K%)Egr;CE;8P zD?MP54!e84eU>L*Zu&3@8bg`2G@U8vhwkHZAZ3q?jtgm*X| z%^SzX;Y7#if$kLSzxp*Eu`kM=%(Y2k*7-BgOeI4?E4DrD7)rHCN1Wyq$tqGl zwsiM3p1vS3cRxKm3cgEVJl@VChZ(=kIzB!1JRA+~E$)K~@>u8^-2w4bcG^WzaJRi( zSlVU5iK;}*|0-k$D&lz}N$aA&^B0k4@#p1aM~DF9&y62;WDR64jQC`o&d>NxaX2cT6By>Ciztc(dBsPROmLaiZZU- zJhw;_652#KEh!h5r#>Gt0f&K}bL*7NTj%>$uaY3>ud1ijJEy(doOoLzG)n?6l<2!5 z&Nf1xKEIz(X6A1JcU7kj>x~q>KX*>R)j|IrbHex83LqNzU6O53Qc@Daq!lM}zXvuX z=ftOg(27|O>`3TtGOj+<{7}=2%VF&_ z$SOlU5lxYS%#4tfzFT94ihacGpp#bMJ)ivS0L zNNH$%?GV7gjK{wW`Z~a{bHW8aD<#kA2CAA0k>+Rh84Dsa9t^{V8EWSst%jH!J&kut%kxv zNg7EtJ3G5CkkZje=ocfk@EyVQ*Fwr8p`5#}I`8G}-|8(4F>>G>P|LA6gQ%zA`slq4 zfwUXG1UJa0#Af}Ex;Ae(F6|zT)&T)QLe*HXRk+hDV*+X_a5yvKK^r}vFl}<&6(D@b zTqxzJnmbqe9yoHv(k4Hz7#S0>+l_-hr@sIfBZYZViHK*PTG}~deOBkz92QrT5wrga zpsr&l?^(skFieOH$@mvjV-?{;Wo2dr8x7vR<%nft;+h5`mJXWh8x;xUQ5~Ls^8PVd z0b&eOSux@_y)rKpYVe2_c;o~q!NJoE>>>j@v?uUe&eUq41x*73{+7wlU}Pp~mdri2+u7Ga*7HE*j-%Tgeg@wJ~#HI6ApE!+1nIl-w}i zoxmb9DL2#C-QC^Yosa|#E&+m*0HJYr4K%L7gC@AUH16&e+-Y=f{?Ge9V>LDN zVWw)nB6Yj__C06qeb)MI@W}~zOw1_eHPL~g?tb74`}Gqru}n21&Vx(T!Qn)(5^)K0 zJ?`?71? z#g(SKgq)CF~GXF4a`St5pM1)|G)NwpsoW6+dJ9J5Ei9Rnpo!sBQVG{k1 z?aOSSi9?@wsiTh|>p1 zAe&Wvx*4#VoZZ^usd#*8#_YTXRHLA)>FZEtX5e7>eRlR@oViSIKb=7rO)Sivq3*mX zZ{&s4dZsJ{J{-Oav}rck;J8MejL}ApkAu_2NN=nQqW`?5<)$;TCO+^4a#};fh-<_} zG@O~|e@ET<`c2tI*m3eGa{Xu2nx#f&c7`Dl1pzLuPb#j9rf+*gxP(S_gE7R59{xL7eCY~izn(^*LoE!d1ojQiul$&x} zo+>$b@Or4YExMj9YSn5_h=YJDR&E(@$o+lW~y%AfBPcYOU5lyBr3s?MqJ#3mV=^Z zZ|sP@M|FW-z`?>IAH|f)hNxXlF8V$DP(e^mMUVdG=qO_Xt1^5t51&ZJ!J$n%QO6US zh`Ddvz7vzIl~|xSwt2M3c&e;CCg;fHd=?-DdXMrA3&u@)J)dTKkx{Nc{hnoZ zg4mA7q#NXMR>bq|Jzj)1F|oPN<6X9CVdhw&$8V3*wXb*)lMJ&$cN1OHkjCGk#ff@| zHC)EATPu@ND;n0;96CWyag;3+)6=q#B`7g&NCCOP%{%NV7mN2N=fw;0r?%**mE_~2 z8`ks;PT)Z;)-X2LiYDjH<1N8jI~&W=bCY>CFkGJSv;Jr<(Hyy#`}Cf+JC~tIopy@S zfWVAK{0V1RGsSCXVzIE7PmH>lOF_a`fQBZvSNBOzO)a0k=J7$i3QW0obZ{UiywD|3 z%_j$pE1$bNmI#fY@mWb@Y5*JqbY(aOGMne_Oawc@Y1H-@*oJ0*iRk))jns_KO6X#k zge+g$fErs(%+mQ~h5xB&mUwLI?|DA&RUdezQ?0nzrhuDB;8&hh{^FPZ4w}ps4ar~M zti!sxq|xH24RsYgJWhnVcZoub!ZAkj+S`4VPz4dM%xv*^z6EzS=2DicM?swzOE^=M z`AK@+RaIC5gSz|YE!mg^+k?iaWRv!sT#;qOuEDs!a`Y{FW)hxfX4qJ4toDZR2KVuV z*DK7pbHZWZfi=`>F4x$v1MAo*JZ%V&wB8D=WERgZ(dbFsC|73tXfb1|V`2K{NopJ% z6ln#Ld@{csN0D%3sWN4>XdsH2)N+B-L&L+~gHLAxSbG-vL;TvdJv8Zt#QbgY<&(}e z7~e{I+Le$uMx2fBsb&xagF!;6**Y<{iQfJbZ*Jv_x=ZBET}3XXsc7Js%{D$KC!2Oa zL{p-;Ce7e5wkaemiO5OK^I(izo!+>iL_xou3PJwFOQn~F!8u@c{J7E=55qrTbPHR{ z=cQpKgXt-5p8ln&XsNU*ltK7tUMf{Lr5*<4!j^fZT zw~t~pKg@RV#eLk2MY2q0!f)I=vn7_2maaQz!izaL1u4kV=zZsKJY!=_&;=judAuM%Q&6G|i^<*mx}8%U_oE*Z@v+|vc<@fT`sIYXS^)FAJ@b#UhR z#_H0%l4=uph*p`igA_p2VX5!BrFC%G z6-9-IozIO1r~mr*f!=qr^a`6pJU?76JwIy5crM_W9L5Esii@|oV=AKMq0mz)+ajg` z2olUB?)8}|FihinHPuV5{*h>0F>YoxKG?9%LK6Lo$qzb$V9pV@MQ|Jv`8)(G7^)?3 zB%R&|GKz8zQ`nhm)V*yg=>s7J)F~0@{#uY}%9QYdDB%h0C0%o{v#T0Wgvj*B-7#Is z^U@ZNlXdr&80l#N^s+$-!zQ4X(xH9Zjj2+EdSym9h<+H6d+r0_hmu_}39339E+Dal zHAWv-m%?+_Ti*y62|Fg+yG-`?6HFSu56>j>p*^W~ceR5kkq}&&RbQu>O$mOBN8^pX zi?`dUx<`5793yFn-J39UAq3;df|H@AMKtj{h3=QOUT?-bHFH|kwh2cKnbG1MCm4PM z4~GjA8vX>F%^t0zLJOCffm?kGGZ(Ek(qR1sGML(c-3)7WJF*)zmkW03)_2eF3W&fa zxtd*Au;iu`Rii&4!f=j;9tb3T9*4$e5A?)u=cnx8%k4nm%?O4WQhR~6L!=R;^ynx(>gd}?&kL%oHEXl^Xc59e`g19 zdGILIU>pk2gZ_vi=MWLbT>9Y&f|QHQ92dwiB|Cg=OIW+?gJ5w!y4~$C_{oI zJ0g6j#uXtYFHQ*j48Hat9S;G52I}>&mlnXV$YP4-&qGq@Gb-b@k5(e13hN~vey;+s zU)Tu=Ndu_fB}T_@^4dWZmp0vJ-mv0IS}T7^f7n2PkY0_7TDPeLo-i8LIqsYJzr?&g zm#KPhP4%y$t%!Ktvf=!>z~VIJ^eNM{)pnK^_(#Rv#A#>%YxPRIG z_49ZcbK{ZHPFjt2A>C8S#>5=AlDLzar*Zv1ob`eI=~bPgR|-uJU1qku9@`p zxw#9jc^Y_^7vjlG3&)?_eNGjb+{Wg#J+!>vaeJP)SKpu6$943=a-(V!Nh+ls(|x$kZFcT0Vit9%5o*;cd$KZB7lcj(e_|54y`(6a*HWS!8ttgJhB2W-ny|A}n3Tf8p>tp$#FU z>g<=@{6qAa}(1pA-H%Zu&$O!_!1P<9bu(qKFmAi_AZfkQPS^}#15O-tTka+f2J_KP7||@ zJVf@o9lN)`b@*rv^zp;2(aoi%idu{Nq-duk9m4}h|G4}!$f=8!NnDy{^j%Y1+jd!M z&OHA5GIfGcWk(g|O&e&axTZ$9^Hm^3Vy!FF`=spEs4XL~q0N__iarPcX<_v0$?e>x{V^TZM%zLue76t}PbIZsKM@5Z*dCKS+ zZFY9?U65RU(%HQK_IbcWrT^=8mmQyb`-q`dlY+PMJk1(bU8uo|~@7`mJ30ifxLW9cEd3X-b>hNvz0&yKH?%B!Ha%K93(==guLG6P z8b(Ehw9uZnQv(}HAqhGUB;F7k^s}ou9l@*55IjDG_=HaoX>VuiSTO!umO55G_@l9L z--kvH5iwfx44AB}PvAGY!O)3s3XzqrpBNIVrJ94COL}y#b6gMEg}&{O-DIR2usI=L zZSI~j6w3Tm;~>!0o%aWQ?wIm);>2)s9&_2HmlxPVgX<+;2A;YQ80{Ql z`K!!r5{5Wvyx?YuMH_7F)^OsdIqxhYf#9%1;JcF}>_gANp}gk2CAY^T*+GPEYH`UV zZ4sS1I_hDH&dGL=8Mqvhz3YD3KCH-M7gbf;mKPhNO08W+odYRZ0y~F~c7w6U} z-&cyzo<=`n=R+GZsF$77>Lew=OCE%Y8+^MSoUp;{Oj+_tUpb^APc|dicW$HuEvW`~ z!*G5JhcA}z+lg2px+=5_w)irdo;3PT0c8Fp=B^8w`5a!S<2N5U;N>fd^UW4M31I@8 zUk6Mm0@|RL{vinQ?C{Xa;IQr**P`89@JH;B?%3BAZwFzxtzKlFN(;sD5g2$Fv-ZkL z$0wx3U>WChFsrUjdT3Y}c15ee7-M4ESMU>8{+q_f;CsszKAtWGE$#0zsXG{4^m5vI zk!-2-!FRi=qx)5EAMNZ2mf78?Val>3ycW&Y+6&GP65N=g3&)&czY;OW6j&VZSnkt` z*TAPI(ogsAuk&`#OvO7UjgGKwvz`+LyLfti2~g(Cm%3^*4A=pYjgGVScDNBlvcwEF zo(oU0N#_x{nn@$Ou?PK0d2s=IM3hRQ0+s&)HcMFjw(|ij0X2m2f$C(MvhwpU_ny4> zZt%!E3Uza;*SKq$cxvn@q~OndA6?sN!^YC7Hym!cu|kJtU4C$(%Z=&U5APT$rOVjm zpB!NBsi6+UeabDrm$fa+?R3sSk`7l7UukaU3)d&+psD)2AKT-;Ow#Bz_&LlCn#?va z2Oz^iJd}Y91>KpBX;D0btodq*J)lTgI*r^gzk%|1iU3?uMRi0Va5|p{N1}{-6wE=w z=0KyP(W{*2aE{0_cIat$AZOg$Zu7KXDf^}o)60$c#%lN{yqQD~4$kyBQelSN9CQz2 z=1oWDX{aYR=id2LA$ZCN`?j|2z&F?HcWBB+cD49IY)OOzK*`rQ)R_+wF$crXqa4r9`)823Ypsu;&#zURm^Ni z)?vbx4JMs(zmp)w$hiz<8zZb@^f2e9*0cGdmb4Wx1xBl0YUVeYkQKw=!QQJg$M(u- zZ)gDUI&Y@UmI@a-=tZ`#p1wA#b4ly0e(IN%rc=o09Ipw65=kgR<=6}xjul^K29kJI zs~OO7RL<5t-hp~66#0&D|Fw%VlVjIA7$dLdYsiEBzi(h2vV`>eB%e}%m-|6T@teu1 zA7qf9_v}Ypkw&_i3sjk?zanJ}qF&6XJw8+i6)(gIX=k-VP95x!~cN22!y^llgig|DVzQs(zja)xZmFoi5uT<(V}#hO5dWo=qCCeJLgx#{Q+$Zl z8`Lrz6>tkM$0kXl8KGK{9OmQ>Vfx~qvSF&90w3T^b7`jF%xsxrL>|@oi2X`zcJy2U zJG=Q6-AVt8r>emQ)`d8mJP<_dACz-LCgEFXZo>^z)0vZ_eG9^HVI)yfh+3lZt3h(1 zBBD(RVIdKWgnXz;hN2y>d&9Iz=V-CPILpNaMCc*YB?x81i}&Du&F~ZJW$TU&$06^- z)ebB(%MZ_RR$EH0PA*CuosHC1CyFYyT9W(Gr+%f(Uy@KB4MufW_VK6PU^~uv_;T!w z%n?Ru_HGhQk6_uN_K?LTpAD89o}y$xPrk&f9ECsMM_IZs2aT+569;YOZ_|o(A;YjG zdpEPkCYR?!bngLs){dMU%h7kDp^HJJ)5N+^gfK28+h6NOjqiM=WkLQXN%~xl-@&@Q z2%po~%zB>?DT9&4NqeeF1m@KR=IV>QGPfnnl?W76y+G4_cTEx`8ZVO>%D%d%IoCa5NHlhG&`atSqX5u~5g+ zNOCL?JWN`YG$RI>zIwR;kDdf-MEBBhqxM9sNSycS$h#%l+7bAYDnND|&-gcDa~ zzUQj>!>2Ne!kqs%M0bq8<2K@_mWE^=Zo<1tC?^VK zKn+F4^!j%QH9-ZFbxfFcpKwBdk9+4Rm2di&)l6aR5O}1?lkmGG_KDX~emM5oq zFM=B21BbFvSqK;&9v&EtE(UNX)+M?4cJeH8U;xkK&dH&n;92harOgVUX-|F>h4uGa zdzs9J=5|gTR)q0UTpp3$BnBR;_B<*~+*7hS=jWWkS_|;dtU;}oE5}Z4Uk)PrwX*{P z0yc8JJ8-kHW)dU=&yJ64DKn6ZI3pL$9#m1nYqTgGkFAmxPSMe#Jol@HzT^3u{ik&8`kdu=rYXoi*dAw=8Q z*y>T1BVnf^>*UG&EjMuZh_1mXF5XgKpPhAHO*B2d+D(FcR#Y>+x{6Ew12|tN$0ycw z?Z;4AUs`JadewejeGq(~92#1rPI|YIv9+Bz>0K*WR5l3u#Xe)C*lD(=W-8e!X=!R2 zPcU&-Sa?ma{j3 zlux3uogi-R2sNy1dS>nz=F`t-me#vYyOSsk$?3;>8tA!_5YZ69pq?wp{0qjZWZ&;K zDapxK{Nn5_9aWNCRLT87MN#i0s%8Aqs&ZjUgBpKAsxky)&@bxh zCdvWPr!^=9YB`iqJB8w<8(}X^(T}Q$KYL7w|3klxB%bFrmmQKHL;Z9+2% zhJ;ec*zmv^JYq;q9LAvGOuS$^M9)0`ET7Sx^x4M0u`4!KgS)1ADHJ$P8Ov%ju*aCz zdsCSIeLHkjSQ!3ZLBBQBx`qKmS?6|*jf;&6xL^2Wdx^LOdmX~KR++r7LZnMUz7z8L zwp&k4_R0~5shm(MdpPzpdE@4Tm}b2rW+KkC(1CawE*tMVG7E+Z!a7qe?Lgk*DkXba z*&ZPtmxPkWi+)E{(tdx6jI#z}r@}4g!#vgblMh1u*8l36r<=T>;xrSoiL`0s%NH`< zDD}kIPdArN0w%Q#gdMJn^CIM|eIACq8964Iz!qO_e#)gZCjNbg?1Xn4!mlCyvCA3E zDrny38ZnaEiin8F%j24>P|j@o`tausB;yFDWT*`Fcl5W(Wk9{|m^xWpr316- zITdZcocER70Y@^x;A*T2FtTWGIPG3OsUDm=hYhj4;`Pn;9JiqUO(-$-Mv^y6eK|z* zK+?kU9T7~5p|*D4lfaB1b{Ezb7vVKA;UFK%ol;5KVq_1l+%szZzH~$f=2J;S^m7kZ_Ro|}ODTT-TV|k-9^hld@-?&h$u#*qV7pXddA2)-3 zgT-igm@vsfdn|#dQ2$RAq}FXO#MFBnL|FT5J4z&c^W`Q(64VP9?(-%reV>B zwV*E4vj`y7XRj)&MX=q@byif4uyq|+Hba5FjA@|O5%hUZ__h6KDot6h zbavo#Pe}TASh1ZqM2|f5?wSV;h7p|S)1Z@>Rd3-emPGXSXTzaSQT>&pFc+SEe5~E5 z_6IwORFlQ425cwMr{kewEmVvBaeeu-CR+)v&`a(-T<3Xx-|H*2dEwa$K1+b*wgm<& zX0Ej8!ToPN;uL^KoWRZV|Lkt~?}Vd$-W|vPNFV;UTybNc*a!_pn6(J_zjCU}&(@!bDVG$qY4qfGW-1(43je>)@p zepVhRyFl7zRI_ybvY-9-D)BGbHn^(pkJF*WT82r-2k;sg&p`Xb%pOSlUy7B90!f!U zCs(Kddrjn4KN{pv@pp%HhtY(2-`+95%bC=KAE&+lFURes@a=Ofv2cD2w4`&M^95^Z zU6hXg-!0ODAURsKcmGCcr!XL(H>o;R-?ay69UdGorI9_#2GJ%bvDNy0yZSUBv{%6J zTXCpg*U7qXUM26}wehCI4AVFze`Z$!A^DN{BgAONZ`?2RJw3Flko|83dp&K@2X?ob zPT?NW77`O{E8dnr64+{g2J0H^CgoMO^77Xz00Hc2^#(=z9`9xH2ePhT5Zw<8!}D2Z zAw#;gBJGKrH60K7ezz@4kBf1rY*y>`nvoVXd$@9IOa@!Y68}>8GTiEoKcEPYVY(70 z4adki{bgg>l>uKl;W&uB>pf;bdxVr*Ma^Dx%>Zd&&u%-Y@ z>K27C6EM+^ZiZoej2fZln`ExSa$$nAOL!E)*) z!b9jUS?JIWkPO%Hbuh70{nUWBM?dRzqMU%9O-f7=bHOQGBM?ibo%o-CGLtpj{C^pb z@KDkJzX&A%-#kwM+a)SC@^zzamsDcC>!Y^z^Vo9El6@n&kI!>e>vgOiJRLdL`p~%O$7JLrN_V{>Fzz$SV#l)8bY@a{yXM1}3 zDW|rMbJOPL>Vag)-@gVf(>`rJKYq;8()Pc&#}gZFd-E0i8akC=0IXSO-e(+t+Ii5Y zlFG_RMz9+iJU~yAHpka@m=n0= z*M6H7%eM^%NCdCN;-#uHVkeVzzW@-IS+m;|*)i9kzm=bEf+BN8+9||c87>?nE!2?s zXTN?NWu92(C-P(w-Ly`7?xgc~A-_UkRmSTYIqDlORWeLGW02?^NmXO8#d zpP!T`mL|4+glHKz*ILD}>~)=du43YdI3IJWUIT0DdP>*>Dhyjj%{1DQP07^=u8z2F zw4y_N4bU}Wj_(a}Xo=mYd`(?jUs^E9ED%QU6Yv!xbG76T``xuZEJW%JUl|-DGQb4+ z+>!TiMW_=47U1ajJKJ1;l;CI}1IZC+lt`Jd959Mzl3d70QOMKs+SuK^ny(n5u3#4S zk3q!1ES|beR)XnouO0cVZz@=l9jlE zUC&hu7{Cl)R?NPk5e95O)HV%i>nx3depqXk*O~&eFb?eG<$v_NH|2;7=b{W0Ft=wN zmix>T(a4Vxkx>iQoH6X*(r8S9#!`xg`Gy}zK5Vl@+d!vo-o7+szn)}-hvJCQYWGxT zg^gu5MK{xm=9^ll;&{8^<^j9J;%@V9WtUP2jGtS|(zVGn4=^Eb@?KAw@wQD)!pQ_8RpZVds$Rm>o5Dc$%ia zyN`=y>LuD58WN&#xQ!auj~-R+m<F_KN?$NIHx^Lq5ch5{~vR%!lu3I%n1f27v zav0m(E-x+lJ+7RkJzz@eA;T^%XCbvK^8R%C^Yi4^0{876Dh3Mut}Bttvx^Aq6}3aK zLgMq>nPh&Br-&>0bpUg<)z75O>wdV0YG5zO9JnC zkghskaETuG)LTNJRMsmnUx~J_Ek=a{?9<}jTJ*@g9P?^`1ncO(aMmpU%GgvIHd_Ms zpj9|eOtntpWP!Q@qG8zJ!hRfbA%1*e?{cgbYb7Ss4PSTUaI+ zKJ@ffG~zT24+u8Xeibgek?3-xQ|Vmmlxq)irvZR#2@>-%^fKdLhYe__=b{|IYlJuL zPy%lc+Q(F-3yKI2?;|>(ekm`hhMQ$nv+fxg)Sp|`NDf$-Yw8-pIx$pRm++|Ln2G*O~YM*=q+s08zcsgsL3*C;80KeFMG)cGK=bkt8sOnMB+DnKX<|NgYJsV=lGqngLQ{6dYqF)9 zQ{@MW{!t2f!f~b_#jvf$`i@s%ZLv4?Em_^5UVAvL($chdgK)XiTQoHshlN74e{rq1 zz89q>28Nc6HD4aCwbPm{b)11e3*#xR_htft)B*+3b|IxIvLdv@PY|#j~NVwO7c0fGtIa#wklE z3>*)oBKdJAP06@gwSDJ2e79i?$g>ld3HU zQA0@Wq>B!i@2=SBPa;jKRX_#<*ldBgZK}`KT=j%fa$?Pf8u2_|QklLfARNI)90`e; z93G;(p=z3%lms%E#2CJmPVMGU1iB$CA^0u4 zFaz)-h(v0Ss`<-rPRKxe0zuVsEX}6i#UWD%esuR+I`P}kJ(zA#EVnrJ-nM}n$^(Rv zo4)JqY%UoHo+8r=najy&RJfm)(oPl<94SKws5s)o#rxk2;Fj(#HQY@G0zsX<3~W=j zqay6Cx6F+((DNKW&m&xsXlJlo^Dr7sGaxOey%r3>mF`dEB7TXq?Oy#aTv6YX%>SA-|5xk%|BEsAKW$L|4ZC(frgz1MDyN@cCb&D)m^n!e@vpSI#vCHk}7@*`)L)Oxj|*_Nq~yA zGSm(rbb!Qvi$y*!O?}%Rarug(E4Dk}>u65?NKJUTFdogXkz6&BeV#B(udlv(@;p|I zm^DN}8uqVZCcrlu1ZhjiYYhg_CjfYtnuPP&WTG8+Geer40gc}#+_Pg}RJc$Y7|D&X zN5_7A8p1PP`vG}bR7cJv+WR1-43IbIy(MG)@lqxB+JOD{og$9_3ML0XxT>uB$1|Wv zMs^zsLPm1Ve>&eGZoY5#;z)f4YVcvycccqp|L{EzWJ3psWS^Z*3oLKyUR=N1eyh9E z`ws-`^M>mlfF{~CY6SL#>XD(F3)Y<5qZ5JCcPLl8bTb08?lpD$J)!{lOSMhMHj4@3 zv8^TY2(VPTeLV&`J@4^*Zv!NBg+ViK) zfH^WWUUc-2k`a15{h-3oW5S<;DwM!0vvB};G;?`FTDog#B>Dvzj?ITf8LR@Jiq(@b zY@;zyp~)|ej%Bfi-P2k|&|Djl90wEqoLl?E2z1wr{T&m8aMuvh1b|&IiuXZ4=YfOx zF>ly&Z~3PEf|QumA_ywb;ma!8K9|pDCc&d>Z$bsRgN}4<`$?4j>reE-rSj%nxwQiv zu+L{Z%|bxYLxz)Gmwn~qwU;~&4c^qKjPp?I1#RbCb%6>BVn0y^i}L0?4dXTcvHR=x z4={O-)tCttX!~|`9{E`Sr__)zdL3M-_~C~of6ewE#y)QPE1!!nEe)VkLh!d19QWnR zP2F48>`T%EQh>UfBfiaD^hr$y-4u&@tv`QZOiky8W$hm7tVAz z^%(Wr{3a(BYlY1Slmp8Y&tw~4Q z7O*OXGQBa~bs0FPMy&Bw+U zq!QJ1?_M^u8~`HFT)1^`*>KtG!y)I(j-Sts_xkhW!h+D_=A*X0w(@B7wc2BV%lT#V z?Q_R-z|9S--=&Rq!X%~7J@Y(H%IY7tale zYGPrt8#!Cm_Rz1V8oSzZJB3*PkLFaTvjP65##^v?adBtLBikuUVe@hjTTo}Y{f|bQ&VT4tjrELnjHRU;&&F;QjA#% z07L<2ssM1no`f@vv!x><+EN&dz}(a^2TWOlq!PX3NOrc;b@ehr<(XUL0Ws_fr}BuCz{gikR$M{TIuibrD)X$UBTuDX6(XRO}_4<>=H0K7B@w;1{ckg~>l-C>C zeg0fhUT%2HXxSbc8{6@?CP^U-`dw0TpRs=b&DuJJY!osGI!)VOOk=nbza3#*+%y2_ zC-+$$FNWo$W2;5ump|U~Fb;rqN~IWoiR89Cw#!WmIE#pFX6-}~Ixa-1-9y)a(vsux z#h3c$Py9Q|9K89;2fv!l4zmO|L3$}GRNm4$2Lo1^1q8NOkmtC#+4in_Pr zDP{+7gzR?E=JD~I*p;;#8qW*!DcCSt;jVEEZtfd%_2NR#zUYL zRXZR|ONnnn@CcC?oERcWJ^;1K^z|HokG^HB3mhkzR6N)P5%KNFP&{&RkW;B2e?C-2 z`Q`t)>O>RR&RqcXCcwSBX5r7D`u3x=26|&CuxHWYHcE9vY<7}<^ZHakx!z1nLxFNh z`}{Eb>a#WQdYP2posYWD`Ft$t_j2}ns}nwaH2lFc&=Nqukfc9#Nj~8+z8p!udb_wF zS17>TX-Ym_Tw0YEE+VJJWyKpd*#0GyeBC8n_ApR1Gclo*1hA^(W*VoGFVArr*+S}j zDu_(`bwx!2bact5lWuwfe0;}YlJ|rxegKch_kr^Dxq$NJ=pQ*mUw?7^eyPD2wE5#7 zYy^$qlcuU_@$2vN-fd0kl=r^SzWIN&igk6R-y9BRD0_xii}l?wv{SXG;~4*ZTPm}qFgWp3_niho+yY;&b?3ho#O+Atp|oHgE)&3FnSo#BKbmoC@CY0{3ei4D ziittm3p3Df)PZ;?)Jxuz?~GI$NRUpwJrthhY?{fmd6qM*=wcYBMiE~C1js%s-ifc;%G(o^FeIixu2 z`ufXzK8Aj-54X(Bth_6>%F4ozK!#2vnyU>xsg)c@SORak*^836_?PozJ?suBmD6i^ zc%Oj7QsS-GY{-f7@$sXO%)+m>raPd;BWz%@==Dt}P~ID$A_9&1IJEW0rPZ|@vX2QA zR*^|FjwWM4PfT&Q>xbOm>OQ!2QC^Wb>CM>t2*GzeNHqx^y5uTt(20uO@J?z zK1mEf4Q}BNKn;zdLKuLgVTwU}rvaePGXT4x^!pv`SY>!6Z1l2;NZIkaMoFK8yJwLj z;fycR|ADEvXL6GJHLmT>xr$|Eto1eS3@Q;faO!e!v5;LOetP?R^|XHVTf_3~t-Ht9 zuU2IxEM+K>EKIIr!bl17So+~q`Qb2dGB9vTGE7tfJc(Kax&BD|k6F(u89g7~RAPk; zdyC&SjW_KdSKlt#S9$#M8P^ZPI>&6kT8+MD?Re^_;p^4-$Xgi#4A;5?<;7f!tO zq4Ta)S8lVBF>HN@(*$p+ul6|*PiB0RBjEKDt=N{H_j zfS&vTf*tahdd}Y?y7kX^OoJ*lyAFW0^qAC+k8HH7w40WVjcJe09&R3G90xNxBvi#M z8|znda|#dJNmE_w-0U1@M7Vj44gzKz?`JCA3tD}Q3g(Ynmp_jjiu191ii0!rXw5&) zz03@u%6yA3X1ig(TxI*b!1oAR7GGC<4HF82ntM`}e=hOk(bL3N*jAdh4!uydG$_Q6ym2zg}y;?B9YH=KXFAVT5YbpVB?p z&l)?ZsoxZ(2N6}|*$mW)jrj1uag~7y zY*OT!X?!M#DH|-kT~-0xvw53W`|QPc8$StEeZoPz@aQ8740}cuaBZgoYb~y~4F0+% zvuFf?BEcR;qawOvv&&!EJJ&9?ivwtUQK(wzT9%n>2UC*_q=^v2_lk8_?VC)}OpTsoErgT*`ll;7_#%XPxt?(7*o z&gZn%10Wijrkv;Nbvt{Y6I>gy*(}@Mu>Ret`(Bwy6sA3aR>4D|9bltuDM_J%p-*+3 zjgfYNeCyCQ$>E`)U!|qbX8LdXW?H0Y~thSNotp&?{^HFEq_fAHUfUKnZ77uk<(}pAI2BA+;A?zJCXj7 zoW>zI=VDx)V9>)AY>P9;E)HUFG`J4PicnMDj_~FWHm67NeZMc5oNV}^MHk3E{uC!+ zb2}APdf4)fqS2!&hU)C)*)f5$aT)pY&>Gi04*s2v&O9+xBU=o$wyZT?bKro5e6sX; zAJf`dP~43(@H^&*J$shr6m#DEu$2Koa^7^^^5Jf5_0X)g|!yTuGiGJ zmyoQq$9e0$pO1zRIOW^FH>|U73ZK(b=T7`G=6TD?RDAs8;MC@l8(wu_q9=uF$ib=K zTfy6bY$mXsGeMKO5qQ$;TlQa@@k2QNmS-#*Q1&_v2C^=1@V>JeI=PunWNfW*>e|@$ zzX*E#v=VjkeyQVi!(Q?=t^@kA9z)Li_C%UDyz}Md>}7M^ofAGQsA_UT0aDNZop90L{&1C()|8*L{D!)jE^7l=W`|GX_w&wCzw*Ssn0_Z1Gf4x@ zt$&8mf?5{ZoJ5Gy6)5Zs%tBa&|M8Jflp?qTXZ3k$q!dHPqj`hJUUP*W=5UV^7VOtn zte9XUV^HA}PgdPL`>*@Pqd*ygCzef{0eMN(gNVr-hRqyyvkce7jpkN0D@@h4+pz_T zngI^wA02mCY`E-msWceh9{gZk{7rV8E-$S-_GT(sQ%x6-e|r=_$* za>#c?>tInL_xL!o<00zIAufU*3vNy3bQ5I!7X$i`ZeU>Gpmb-K2t-N)Wqy zM7_4sPK8eFT?YvnZaj9p)8w8S=xAJT%9tL{6&BpfYc(nMUkR`lD#9lc3UpH_#J}TR zQcVcTV?evn#E)EEDQA&LAo8$lT zzmWD8OmRi)79j2fhlb!5+}&M*d*coPf&>UIjT7A6-4a{_1b2rJG&sQ_c%yT2-<_$M znwqLtHNSxFK4-Jn`j&hK-5(uCG8-B$yL>w)Q=8p}yQ8AY#U(Ys>YY4XV`U#-kq$?; z@O*wxaeEd!M*jBTI~3XI<;iA`Iykr}3{6OG6`EsmTJF5sMHRPJ0|AXOofgoCwVXdw z49pf|z%JB;%uN5Ih2zp=6f?6n$yTW_mgQS0r_RDj+AUll$}VpYcL++6`_? zP=cM-pGHC(Ra37WIjU+JI=bew}|1?+JnUN30x+C!QCFT(Q?+8+-_y9Ep6`4ev*$Y<_c4#!X z(|)#(z~R^Zp)8-%($wFBM6KWvc`fOPnBK(c$;o^%N7!iYfy#J;u1`P5KJ>Bok!k0k zIIk@oLZOJ5H?hg@Cb#}L2Rs+Dl2Qbcp2zdTT$<~eg}@C2#>Tb^D$;=14QR%8X^r8X z|02itf(G{|W7pb?MO$h2Z}@8iQC79B1i*fBlU|&GO)-zP78s%2TJ+P+%O4Nnb~E^_ zf4@A-n`PK+nR3L`FnAwYAdyn@a9|X2QoC5I<-CF)GBmUpr|-TR{v?_*mD1fAo}|rq zLroF(gIp}pTEuOLy3e}1vX22!h9u~Rgg^DwIQ;sSuc{nw?q%3Hq9%pO?e<583++C} zGGFWP0Ope!gD!kKr`DG*qZ}a|hYx*W;|Ki< zj8_b!Z9IfgRA7Tf_NL2;9e-0yGI;`nvZviIZa^(!{rkG!l3zc64iA!*5VCTBL;EE@ zuG7e?PGq%%3N>I(gOkV8YYX0CkopcA^@vMi&6yd+;QT)O?P!6PAdbkOZ)hk_%!VVH zo|5tjm66j5u^?wy-8JDe?_KOKWY_M>O2jQU@X#8aZlR%{lt?}ua? zUE);xQ1J%96~QlcLh2CC;_@)7dMX~A9Lt(_Dj8kgS}eIvs~yp82#1^#9n4y^c4}&cIGpS@QNQVH!^cshVyRZ zDB9qMt=m&!BgBZvX$ka>er&gxJ=t~6tR7S(gKEwL+&9D`W5<0Fwvyib9( zoUBMh!ZpJcO?JnG7TY!KQ=d{$TJa2X=f&R6bV^JN_rQ8l^ARAes%ymdaXTTf7WXf* zxt(N^38sZiMQ%pPRiJaY>0pO_%w)g6e&X*ph9L_QC5--6NNb;v8XO@*R6KDJft3wW zm}QRpy9@JHH$NZsd7?dZ=M)R>s3VH^Vk3I}PlQ1bZL$iq6zwSN`8!a_OP&D4u%xCRk*!`WM|`u!XMuH^-# z-4M2XrY~7ud^cW1fg%WrSm}g#A#8hbdQh0p2Ni^@<1nUgU&oJ^ zP6xKtk;bhPu@+{1%wQW;+oF&o9vX5M3Y@cI5p8*kmci77c^h8CPVe@?!%||M8oFWx zH?`!|hzE$Hp?+XFBc(zV!p5#jn8>4h^`}pO)cI6?ua%5<3&H+Hqt*^?2IuCWqZ%SaF?CblVP8 zkC+rgM)9xGh?NMTEAKdeNcfhA{%V3*T@ton$DiOf50aAmv?uz-Pnm}vSB05@fqG68 z7}=F6C4y*jX7JsD%!uhfgl0kC8|sI_mXhg6Qp_Z8GItJ&j1=Z_+F(PElM>?7W=ZMe zU^o$=P3W-~j5e~nt#(5WH)~07Zns=FAZ9iV?(+bP(kOP zDf3}aN3nmyzOwLJIgz16`yC)LL|@L+pks={8UTCGB*kduE~+lEapyhIr6lM?`pI_? zEwy1BXDdYU{I}~Bn_~o-V4MZ|U0nJySR8U`6UN324+vP@6j^=gvj$d{ol)7;zJ#x`Y3Lvm?>V8;JwzfSh2Cm|wugcnxa{ z${O-&9P4NInO}rZmm&SRB_|A1Z0IJYX=?M49@dG+?=}qqi+frNnH8%+`2>qZV2S!WUrGkZF`jxGw6SqXCH|`5PN&g z`w}H9woOGl%87X!SxVthPuz+e;Zjw|ku1oAH^8r-^=9YPbK*(2({KOoc{q5Z=KmadayE01Tw z`QAg%drK8sco>a2c2z*xxs)^}m=WJ>k>d@A^u^eFtD(U!2*Jhs%tu>zQtqmK+ywPV zJi)=sZ7w~&A$Ad}8ma+sx4q(sUs!sjw6mN`Cg|K;$4h>FnS%Pk_EBO8@i`b{~NSqQcH49k7L*&7HE z39)MEYYWPCriOW{D3y4B>LQ1p7q|Hyofn+JrVWEM*&pfKv&7}lHrX2nfRzx$O zyOBabLsQhrR*CjTK(h06MfX|=9IRLc&v&~I7Dij;&7lMnY%(RRm;uNKeI^jy9{>5DPl2Ir67dKCuMzV zvv%EzFz~p~LYZ!J-`n@UCSflwhC#9AAF{*tDADMs>WhL_u!((j^~oiSOf5-~+?Wvl zh&MIIqOyg&booJ8320et&%#-3;CcU*_pPRPU>(_-X1d}pgXD>yxwTt*ZaQJ#a2gDX z>%d{iXiHx%;6BorlcHlL6SwX;(oo9`&>aWE*m1F^F(?x-iVRxS+!shSyv-xl%Uf=j zg_E=~!TAsEW4!cdMy)P?h5K6QN97I>B0U%58|C};!g3RA{TOfFFA|F#`0NpRvXq-S z&u(lV;ZW6`C8#^!ahg~+ymkg;|GQ}Zcl^)iX9D|u>(iCyh%xO33*tEfswS55(MG`Y z>nj@Wm4&m~PZex6lXLzBCDc{lu)M@z{`JtcA_A%0T90yBs)hD#ZcW40XQD^XX1et= ze1HcPW8;Le*6YRomrpK@2{zKm`H9*+wPlW>UTXW;SCx~$^xvIdy;=JPoz%P#jG#QU zxt?hZ2N(<(;9K`~sHA{#{!rh^-YZjETN}6DD>aVYbgXXL@~hH! zA5r{4ZwNB5#vO4Q!EWNfj_;Vpp%6K{8hIfYzev`YN!%nd&l?L@EGlp0EYsEP@|yG+ zy*!n<=(CcQ=fWPik7nYRR%4$W+n2G)N%@G+zJDUOlJn^BwyM?s9j)IqrXL4N6Ke+@ zGt)^FP#07IKB@g4eR^#GI2+ZoUZPd0x&B|9uIa@;qZUv9T@y^C%qRSMR&+ZNI|VS% zf!E22iCgZ3OoGq6-0u!21V5<~Xb1M)XA(je;Ko!4rfK_T;DbSo_SVLeH_9*42D)NI z(_q*DCP~z=&*T?kpO08-eD*bveHa;UoyUetMH5}*D07o@k(HYEH;mF<3`8v&*^HIX zbBJ(uzk8et(G0>_&H%#yOQZ#6Zf-%^@!p)NIlu&b&a5||Jd%4}uE%qpkoWF#AX;9vs|&L$4=qx}Xr zvk=kLm0KZ7`wB=-&N{kwQj9$%^ND#RHgYgug5S!9#@y=5W#jKZ+(@-qZ{iDkT&G+v zs3%(Llw0qs+DUF+xm&pYk*_&Oyo?gW*1lXuZ<%O!BRX85reGVHVISg>zlirsh;dqs z=%13RsIn(YPl)H3Ldyx_{_0Z|q*x*kV25{{oZbNTCWO*b%k@SG`dH1CP=UWl>5Y#w z@9e}|7SHlGp>!3&U{do4$SV;O&6`uaRhP|@!V;XZ42-~{V=-ux>Hw~98?aC35b-@Q ztif)U6*G;-Rb@_-#Ya((_n2X1D!lURCm5F>4?0W0$mxF@EK7ps$jtP_t9tJ84X2)s zXV6HIK?*~vT1saXyP0mbG|v7 zqCM~oyB2Yd|H{XYogv>_>?~P)tXVPeXjO)0tro@-7vld53#)7Gk#4Umnf#whS`Nkw zEkoj+i*@dQ)CA4alo$A!Eu9%71GBVfFmMq?3g;vy-ayM~o-pM03vEtj|A7O4`_gi2 zi@SPvscz9ve*szn!}`*=>&;KEnh`eWeV04Uayi;Dd$P8y!~q6ML1cbuIBhd6q9#nh z4aKn=)vX23ceW?W7tt4qG87yiI=6Y7A)p=BF5z?D{mj@BuZoTy#qSjP<;#~4&bL(N%E$o%_%BzN z->|#_Q7jN(?&U^e-XLX!y`gH-|AYz^kQh;>sOpPBhXSL~GB%C^R4HGLa{i6`5$b%I z>%Tp<6;hdi65{k5f1HycGAAMv-?V~wNt$@+-%U?xFMZ8tqveWJohJ89QStAuV6tX% zh1bbr3a$=7`P-x|#E=rxMo+^gsjBGnB0x!AOvp=!XDr}QkTd>Plz#z##c{Eioqw|G ztFVPbaycsBKZChj$y3FnYKp$k9x*EYcUXUz$tv zaS#)+?j>!p1@%qZAgVDNZP%HC_(vwdU^rY0Va_`a}(ErQ6flA#R;R8?|zr$u?i*Gz;0?IM5 zUxdQi8T?q(eCQxBxXX|)mrAG?I_6KmJltSrq~_eLIt>e7q>TsGib4=%(87VFjicoGDVV8 zhq$-Gh9UzUTSt1ZFmhZ?p>kU`i1R_8$*)IUCa{wbT2C6glo3J(NiAoej1uX;|C}I> zuBxg^yBBa#p+wHcJMdlyAzrkE;|0XM<|2F0tK>`Y^h^pYgBqzMx$kZX7dEW9(7opn~0;Qj6=S zv;QfhP~V7JB;)o(BuHC0G+W4fWgzkT8{f~9{y1%xO<1Q)m1WEM!e#h6xEIjT5nlXN>yoH{pFDmN1>E6_g4sR%|jWfo@kgwq>d@l4~?-c z^k&%IVwMB8w3J^`tVtKC0_xNvj{`J`5-}4n9>up10TnK$_m_vBO(rteOcSLy=qf?tg$ud`Cw22i^3R_dF9xY zaK50Qpf+l%jTFQ{jNlNz#SlWo%!dFpM8(w|e(#J6gw!Q%iY62b5ZtnOMDfTei$Gwz znTDGZu(EZGw98I@XSfnaA|+d>d`=WE`u6oJIyFTdLhC@ZG9D7ZPV0U>%+*(NYhD;Ev;dl}@j%!z6qHbHDnGq5PUw$UK< zs;D9LN6LsTtryPAK{Bfk#VS6mHj7dPz?)}%+sE27#f1*g9ky#QKQ)~u&LtIbc#JMQ zt_Pu+T)PQ@AWj?yI5?F&VVav!?q^npxiO{A=?Y?Ed}Y0012N^`3B{1)?p1O^kRM~^ z`wZ2Dl33GdzepvNF?SSbhP?WK`1~3i2R5k^I$zK%wF-(TLpKunKQ;zwxJ!XC`z z>?*--TD=trB>;XzKBt`4EF;8{lzmZPQL%u=le{xo9VgF>9_Lhm8S`5b?K8? zo|1OT9h$3|`!!awt%;U|X#o);i2b8FMu;qHSAL;oj032cui(Dt?V^0|HE{DRl?kuC z@u{h*+RKi|2(ks2>MO&$QYQ7=`y#!mha>Ih=;p@NGN+=Lr|L!9#Rc|JCG zEpR5Tod0a&sNq0*D}`bsn4uoUkN_gdE;UMtEG;d4_UF79!pDxI0rXh^P-e!7=SQqC z;=JXa5|yeQY93x*=C&X_3}yv*SI9vx(FTWv0UHyGMzGxyeT!Mfhc|d7-#I`UDk|UG zKyS9KOXT0=o5=`U+*zb^KJ>tl#D#99RU(UJGQuD+QsuYAeJ7((OaBis5#C-pa!6#1XER17@+%P!qkS=UoQJ2r ze^XDy()#qd$h#zXfe2z~F?GWEPLQca%x{WJBC>HwE2N)@ZV_~nkeEoiei#j=C#29( z3{BbS6pauzFVq!+i;2K~ucjISRKLxL)5aKjh#x{PL(Bq5ro7|{rfX%8TV3d9=WleG z0b41q39&Lt0pNApq<*HRRzYCx5sYn|nIT^4S7T*iIFt8u{&$x>kU&Yj_g_7ZZzALu z8-Ac6Y~uXH0f(A+sY=oNye>3qdAio!uWwY=)gjQlX@Lce5k4Lzte>7ZpiMQbpSmy5 z{f`!RgYGl*r^Dn;AuH862}b-%-m7_o-upNHG6>B4PWblaVoWQs$NS;38KYfl2c zZN*dnFRktk6j1thEAo@1yE#Uw@&Tof^hWEyt7|R)f-zx zz8F@zw&wR$MXb5`v)bg#-oZ~m%{13MPpmC_a+-U2t7C0Uo4M9?49WY6xCCIkpQYvX_1>xGDJ3uH)%XK zgt;mW_V=i&uBH%oDnmTEV4%I}<<|7PEA~+A?VHe3_4qwS_Lwwnf`adjmWrQlZPipB zb{wSpEpjN<%#q34F!FJ`;zt7TpeoZxel0$jjS2syF^$f?UWI2>DGWj%@f;DcM>}0< z&&Tp0!~=v>G{g8F(y~kpr#Ta{Ai?wU()*QXdFiLXe8Rm&LyHoa z?qnz{N8guKbE5KKn*X*;F8GIK!-QV zXHkO=dV9Pg8nj`u7>@V`Msl(zD1#iQ{|cN9?7j*UAq8~C)+QoxMKP4KH#M(X+WP?g zW@@Ti4o059N@`q_se6lbDCOrox6;u5DLl}iE>MUr7E@HzndD5*GsJ^l&7x_c&YGO= z7ExYoOZD&EuqW2mw+!x|(%z%DlgNmraYi%smAv%LC$y z!q2HBa()k=_wSjG(+s%F*gL%&rR?N6{D2p$mBliRfpvyb2eMSDwO_A09FuiKTo<$4 zl1;dK&&-Qd<~SF+oHx1-`GR~~#{x*7DFa1acT=``6b&rwY;0ko68PDD*kCAC#ZG3I z@V3Hqpq!VpRG(c3;SmM}pX4E{97g``XN)Vr9q>%wkGI}ih->CU51sGwy*t3cxVJwL zI6*JVB$VKtLEP`n>+7=+zf&oH?7Z=UQL(n(W0I#1kEv%qjkdj%0$|Hl4=AZbe}eNb zXA96vWd5L2g=2%plg9fFq0$`K{B~YB-iz#X;n2e-<<|R_Nx|&wW{F51q z!~+LEcDeUi1UXy@=leM_&yDrr_|SJx6P7Dg2}8HH{rT|?bM5L3mF0n+kJB*#YQcySELt=PNb>sh z9229$^lmk_`&rd2Xh@&$obW8mGhDw4`Vjn|Iux!&?IiU6V3yVR5NV7lXZP#lr_1T$Ivi7?*dt|k9Z!Kjf2EOh$yU=jFR{^ z<7cM~4v7E{8zs4XKG8ashy*B!{%#bDPWTaz6h=u$0VS)J>j1!Q3~g_zOlt@@BUDcC zmF*5%?ZQVv1koIRCy}yZ*f`mx7&?43Bp!G?H`O2{j%Wl!80irT?j?2$L@Qb11hxGP zxgMshn~vqv5=cTk1Zj1$4Mz3*YGsq!(ub82KWr#RuyVq$`qj}T&MbT-web^N=+m{O zX)I9ijvVdx{tAT>_DV|Z-U@}p+0ikVAS?k(X4sy45Frv0#AhaYHNq`gMOdJEjf%0l zn??vdiE-I{*XHAD>IsY&c~CB95WmIb^A43X?f2uauB-0NTuxB5S|A}<+snn~Y!mZG z2V{Oqt$&-LX*1m!S5?-bOWh!Ng;F=eLm-Fmf-56dYPMIL?&}3`4|v(JA@3gCM1x%i zH4@vBVY)QPWahRg@f9j`hWHTXIM|Yoc%~DW(Q(SjRPh!~c*L0?{^xclhx$OH@B+3SytsE3Ex?phH_QE;Z(j?^o&}h{xSW1b1y=~PfBousKgc4x zXnzqXrVPJGfp>A0|4gWb8|(*GCMgfQUFcDxrl{zt8mjS(@LMvHgWWwy#o44d*|NYR ztMa7t0Qz)EMP1SIx@Eh=(9wb6Q^lb=tr39q}k05hkM=z=9WqZsWBS9f@9cCR{nL~D%p(v7K zp%Z>MzL*bI0+9F0(raG|k-17~Kagn-mbL-=(Y` zoaTfOA298?HC(By#)y#w!|0eO?)ce=kprIsf)FNH=e&N53kA^^tMZ;dOTcCz;>T>J z)*~mzw@XaLj7*_`Fp{+cU)QIPk4ZAf_K8qEzxeTV^KeDsEHA+3CdTW~kU?JA65}lg zDn3z#nhEj9Z{Yt2JK{s#o!>dk3038JGync;`DKazRmbpM@^zJnGB=+wYGO0I$1;L# z$8P2?d^4Go?70s?&e@B&MP#Q=l_EAMD0U}auz9w(4dA&4d3oz2VG}NS1b6}ShN~-d zCT8cuuQp7@{D17YRnD3EZ0u~Yq-`*nMQ#ISvusUTk&w8p!B$;(Q{0NaiEk%z%0MJR(7%fL z7(~~lf;nI5Nfb%zH^6XV)3K$WNXKgC$hp?rx+vL1(;s_-{Ly{5xC%UYkvgDEfyrg> z`|b@v5F1%}rd5@Z1>fnb33W;NH4o3XN$Fi>^O;C^nE@TQ;>(>MP3A~qjMLYLd1Umz zPTU^ehD=18*iy}b&B*s!sf$!nB&DU@d8kcc!(;>?T~1@N{h1conYv-HvK`?RS?@X6 z{jKCaUciWtbD;&8c5 zPIEZ9eZKDdXRuo+AGtFMEu}<(Q397Pa{H&Eez$X$*_CL;y$**6`JNX|2Cu`T4w|As zYXiAjoe?(tuPhV;`GtI-p+!t#Jjdt*m|bg6HL4*0nM6n4V_ zDJ`cDUTNaI)lVXf;&YB_=J&W$zB^k-7wcpJQd^xKr#>U2z^qwhT+|tu9xpxe^%p!n z!F54a=SJ~tuXh_NY$Zkg?hlT)@T38}oi-_aBXw({siE=3-{+jTa#L=0;t*YWI$Rb& z0l)@EEWk;}%g?|1-ClSeK%5WTlda=v-!Nx&e2E+=G}6D!_~@omo_>kO65E^eeXpW| zE_(A6nsu0W@tX5r?VD^PPx!HzCW2qI+k9Q~LeZmkXUg?qZ2WsYt;J`5{}9`lwiB8W zJx!yu)IISnwp|B@@3n9L3f7kU>z8gub*1Jbxw(Cq2{Z#(Oqk{Cas!07J)led!^)D^ z_tH|G`03TY+2dCI-C`L3UJOKrvg>8gz{!b2M_5-&%h_zPdr^^p-{3Alj5POtr`M8XNqW4Tq{>EPX1 zib%+ta~aQ>rHKh!V=x3Cz$YcBO?;^HJm;Gguq;GehmE|xPC(jDx(?O{w$g7cW$#Re z5MyOBit0g#;GQU@5t8yfrRPJ7*J<=*t#SM;cwM;XM1yIk;| z7UAlRc~pb&G<{FUS()c-KEeZPbo9iAW-uBgSM{JGf`~pwI;N%aU~eg4 zvRu|9WvYu-z`r&6S}NxgkMOSB^%~%p@wLC@5*>{@mD87x%kX;wQ3#6o>>`L+kerpS0|Qnl`b zzI(3-Rla6*j!@=6YtlRa%h@_dL(j=vJRo4C_zjoBrOu_-m9Ra(c6YPB&@`rbBt5~! z=hxITf_Y5^^eTv#tK?2Am}h@h5=O=% zEk%s>1LLib@_Tgn&qButW)WO4GQEj;UD0B-U@~h=n$35@K~mUM6nn7Fev$Y0JCqa_ zCEusT-yUMkWN=G4?uMkCTw$$RZtJp`PVM36|%xu$Fa4fNJN@_tBQmH2p$T%Nfp7t)J#Q6 z^JNoPSEvI6ryGHx%L4*&#JmLGlBROLyL3MXIhDniU84vZ49{f9JjRf*)_z$Dm13$U z4#OGIzDf{IDo5A$JWk66U<;10P)HiJHxjTJku(c4e9DMArMz-+QFp1pVa%-i?+^$- zBp1-pUa&vY>PLlll0{~)1vEYF%I`Mt~u;zuHrPneLWF zWUbWthskf;y2r+t0$=ZwY7p>AXrg&Ff&)o^1CBflp7Dt@4~v`Nk%-yelCk9!$>D9w zGf6HCw0(GxlA>a%_4&Vo&oC;RUPx|@4)kjiuvCsNdr2tL55Xo?qc(1xtO6;pPw_!01A!B$D$aal*HhHESW@vqIFf9Wali|4Q$?L3-FfdNW_?;GdEWQ$8ou8 z?oIaTX8ye#u?3Zx&Y>b|mc~1szvzLyTzw z*ywE|-eN4k0TwFQB+#*yjkJA$3*gZVRTIveCEO?3Efcat@abhe-L6Pm!@&``NZt$I zKVU*uh9wdBDop}p7JBQipgCMvVx=Ib)_Dzqe@;Ol#zs%UQqjG9WB4zKgN+`~A(dGz zlI)sbiH-7ZUA}va$#gwmMr=BR;M)qVt-y~1A?A%2_CBtem7&1a5#$1s_N1`CeYXI+ ztCLgHspYjJ*8z_V!wp$gfTAe^i6?Z+hAA&`%xCCF$_M6`w8ZPCd-?8hz3X>I(<6U=2o$v`SJvzFbl~fXI9^>k!ARvMPIDL8 zu=I*s*cq+*n30!>0$4e8t#fRMucP+PP z>Lci{1hV4MmOUyWIrPg->g!BMs2}0j%|AUccjLyF0MeW!}?(i0` zmj9-Q>XxWKwi!1+wC?_;hY#@}ZbyC}Qy>Ok5FEOXd$RR7p5a4ZR#LafoemmlD0N^j zD>HB7?0ySZ8+z%!FhgN2UI6pL;FBW>PM~8}Js>lRgb2NaDa!y178y!?>W0|== zeC(VgW%T9hg%!766HN|?34*VXq8vi}<32efAsLLC4Ndm$)i+0~u6D>&*;Ug5YL_q~ zh>=SnYLuY|c)vwxuvr8w%NZr6x*bE{Ae>)&#W^5tEFnHPFfb4pMHxx$3^K3|n<#Av zLyzFtP7Q}&*tvp9Ty*eToJJ(^m*2i_=&JCSurSysaZ6q8^n<0f+CQ6llsK)?$L}_( zn?tC^aS%Gpx|^FZVW~X~B+>A;FvoQ_Nk&!}j{2Xo`t2z6&7hTa1YAMU~um ztIgB7!COyiF2oA{XD;gLlLtAF_tCjDwbZkc3g;2m?Dd=L2Cu)eph%BP#*1vzK!tc0 zI9i92NY%6ACPYvgIMSiAR2+wnzgy3}vpEV!(XB$v>VjcK`?s;p-b;gj$-`)9-<`V zcDDP4yZ4%cTGh4r3VrLu(y^;N>&U>D+tAkMekRbd=2_9aOP@!?-oe3_O7Taxeuw^I zUeF%hzuCX=yZLQpg}F=<&42(&(Cgdvw%NSrKe8I$-qso#imD!YPVE@+@86I0Jtofq z!NdRRhx@{gf<(;OPU49;@3oDMxes>C0qQd_NOtm6^-~eg#&Sn0@9?jX=+2GyT(Y0B zrju%(zoU;WoafD2hQY|>q-lF!AdH|$hi_};)s>rM)N;$C(`ML8Ej?hxIr{pSJ!s5X z7lDEX4>7+Nn~t9TPqt@zggjtIT0-szyXgJr*O%wmw=L|kF>~|Iz_NkMe4QUDpUhqp>2RvQU|me6 z(iVODmX}|x=Qz`N_3N8)yb&&exoc9T!x5awHOMmWkqUPZ6FK&q(WoYRX6Ev~c_r^^ z%h}Q9uRsO#`B4duZXF%o>*{ytcjv+w5vap>j9U8M(cOz**WoU=elf=d#fCo&MMW9< zO!Gcrcm<9`?HzwClIjRIL}+juHp!~0bp|Y}hRs}Ay<9HX2b)2~7x@V;E8L$rPHD3u zjsWGqMDl%EsWle@36KS0rn;$2R>YS!(${fcN-8c9)c_7^sM3GU#AquAi;Cf--MGJ(;CjZR0L6O%b z?OZS%zg6B^CW0(llS(=gu<8%!b!_rC^S)*N-7cELLiUp^cWL`Pu1agB^%d?Fkv~dZ zX%u#S##-w2PXzjkb@=_YQW0T(3iN=kB7kA@^~A~J zV@uE}=cj|CpA$I%6IJGEkj<|Q9%?}Q$m&z>P!ihbu+{UGoS>9#&kk9GgG?c&Fg5MB z6>I0s{yQo=Ow#|EDcs;fkE*jAe@|7--9GiDAq9%P_ZF1_+hf2YgR5(5)+jH{t?zYP zQm~LP%oX9CYs_^SZ{u`C?RW8OmcF0+>1uAD4{H3LcEuk-2x`v}9#+c}7faPTBvCO+n_s4>;sSH1ZJ7j+m4Dz0jGLk=< z)IyuAuij8mtf5Un@HqOXy=~fZg{;Y+Qc_cyPb10T8h|<)=IoSVZsFaS+%Jzl_cBw= zhjgMVF(N!+W{Ko+DDcByG^9v72@4cPkbgs-wOcbk1UL3WH%}mYb+HH_Ddec(0#+1Q zvVN)$j$QoM(e=uUkUONuW{d5N_ls{--v!ZMAx=vp#TS8Awrvvx{ix{#2@30#v73?3 z$P17Elk_~IyOb2BW{-c6U28!k5*EMXbv*LRCRyTE?a~a|d~az2SgYt3q0WI2$fGjnWyU-KC(Oze#pKZxTjlUczMOU)|ZzEpGU_w&J}F{eoQ0p_qY1 zyp6p(@AQsdpw`kCb9WvcmV*sMX?-)Gz{rgP3+o{Rg>POZ4)*JF)j+wlW4Q>K_g}YC z>Bk+N{}bYezlL#zrz%FPo#ZFLJ-JJ&u^4~1@oXeb&j1T;k{rGRh`4l1dZiQ*(?sMy z#VGR&B_HA`iv1QsPu)nlsG3g%f42@!W1Pk!=ii9SWN$fliO5jPFT^E~d<>r)cEZgy zZi{w(U8*mLp2EZh)CQxNo)J;`fqV^hbwJFqPEtVCeQq&P(((0$X22c=ws*_}FRPdd z!6YgmL%k631^FX{x|ONgMeBel60tALFE3Ne$|B#Tb%bc5;xO~ia3bwTh_?j3#2ImU zl!Or?HcBzl+@{KCF3t&%Ih5R`iJ~hgC+tnLzu^!bQ~J`ejR4+N;`cK+g_}G3-Br!< z$wi7LhD@VCqoBt2UViezasjce8ox%2G|Rmhhzb8E!TTSy7!Ux9M9s^KIUZ@e|IS22 z7v}qfPs>PzD4o#`s2Z*6?vCgR{bGobw&_T$374%c$b?Us{`v64}RHDAp;JQe~T(v0c!fX^a&|W(nHSEjL7dCz;t0Jrl+Q9 zK>|?eGKp4TQ8E(&D{3(W78LKzbU*~~UC;<%s)_5;K|DIbu#4q4a3e^J=gL|3px z`ph^tV|G2{Js+sEb)FyXJ64Xc{O0`u;LiY|`053FTTZ=MzbRN1W0a1BSkDsTNhrXw z6pVJX8wV0L>~msgjBk>`dR>nh#v&%(XrHI_D(Iwa%ys2TH2eP{9YKEg{#$%ybD*Jx z*nyIB86p;ll3rSl0;w*WCrpqYd(G*R-qM<5Tf6=|r;(UlP}(b0F^s=1)B^^?U{Nd#z#;k=Iknm3)n@b9fKXMbT{Nf2DEExI!l*PyGyWHo6eb& z%v0Mp-%ThbHJP2C4q)P%QHrK;FpkEzmT>Fn{ESSOTwb55&J^U4GWGdd(6w>@^8Cm# zq~@~)4!q{V&K^X%U!cejz;#0~JV7T!LC#nAU0?kI7h-=9)1Uefu@S4nfM$Xx_zM)+X{4#c;5c<9bH4ZE-Yczk&i@_M-|$}E zcv3SQK8XzRD}*-s@XybUFg!ZVouTyKu{g^j3!~yhx?9uvN<-4PLVnmIa2!0NvM0Oj z(=K&;m42s@&y()1`+pdB{_hk0|G!E8|CMa;zxyM&8G5?9`~NKyAo~aEjVAtYodJ7c zn85y_i?ySPXigMW&~%?RQ=qsICpZK3j#i zna-+CW=^Xmxptho+XMaFYNM^GK$#RaQSQ zZ5oKDTD^O$nL$ePt8xvLEl%Msv>1&q`nXN*W~BQ&UvIxm}&y^Sk$;dK4Lb4E=3- ztTOGbQ2Uj^+{>{}X=^%$_~+Wam&~qTc%FasQrGo``hJkC=(f4rd*+3S`qOuRDk$7< zXI<|@jDFqO2rS*1n`?NzdxfsQKldbw2O~dXQ+D zoUHYRH1hT3?!{xQ#O_uTNSC|w@!tIVk<^ux9M;b6fxu4DFK1J{X6wPr1Mc!^#A$Ye zHYO|9uLkvhZyh&Oa0m#~F8t4bcV#&Gx+9ft{5Y>*oyjDeFzn@zR$-maZxtzlK~Z7H zq7YeYuuGqsvGmM|rY8J~^vy{}7rj2%@hozEdPboC4$z~>e|aapIT24wPOh~K$8Kaj z8$FIA?V?@5`Hp2AYeIw{OzFUrC5o&=yrf?TT2^E;sdqQ)-$B27ht+RY1ELG z-l@q{(yd)-qVjpn(NCTGEu>!7Z#eG@DUmqrj8)*pT z`FMG8^k1$`{}0OEGAgbv+Sg#tu^ zPhX$~0fen9BX1NY3R;s2g7a6tA@Ah8wJZ{a83q^vb`Cc^tgKZc+k>0R3N?LSA08sI zvu~M10Qkw|-8=ogalAm z2no(R4SoF{KG(bi+x-`R;|nUmV3j&}C>QLdsBKE$+qW&OIYh*T)<2rLcf0%?_)a~j zD7)WA9YJBA3CG%KWjRwA;&LdS^o)$MzJS$8{hF%b2t)%O=JNsTX0~Qf4gt% zh0)v~00DUO9xAsNX}R&c@a!D?3n6~;wUHsO)pV=!rA8&(}mhyn4Tfkl7 z3josumLjjd?mvomx;o-eh3RKQ`QSwRq4o$9_(YYE%~|)0S=7h9m=!j&ejXHsU0pi8z$P zIH{g5c)St3Em#kO>nxR1{q7gw0gTlW^}GfVqE4k1>?>j|x89-PP}6h6+NB`=BrO?l z{@ju;Cs*tbf~|_R+MhJU^i}I>Z+Co{3kQ&LOswqXTfj(^M8?yzLtSsj90PB%k9Rnv zG@(^dI2QqGlU}P+yClJ_Oi1RoF*>ct;7(lgfl=*V*z5Fk*(WGX&~FcyV-r2Z4Q6vo zrpm!*0-K>xsdo3_^szX+$_BQ#!~FtHA)%5oMx~b)7_%+3r7Bia1>udCOHN(fH_QfY z0nsNHQN8@?gRu-=Jp)dFE_60L)w(<5C{Zm_~AN$zwwy0)12xyj)U zqRO*$xxifOs8>g=<@0y^ZXu-C@4LEcbHrpW(V=C+cg5x9bE|e+-dDNk@1|bLE7u)t zx-wOB10JGba+6$+p5~D6{EuAN`-`uzP&NINV0q!aa z8G>GT3IQty_H)?ypd_-zSl!a~tkOPe&Cy(}ThA33b>i`^nBUGI zjtcnhxHqF>su4}%+n0CLnfEL zG?S0&dIzs6&zEX+K>q@7g0e4Pa(?6=EjnC50@wc9>bPJ70>NgUSZAIPSie9Hc&U!p z?b$HuiRBJ#xp^(@1{Y^J2vMVmwULjDP#+J6=6w=P)2_v_CGm)1po z#1sl0`T0;vv;?CkUE3`I+}9l%>+OzqG0*U9wy*KCeqjCj!0|Lls;dc>YW3fxuukvd zodfN_TyXgt&QlxORE5jK-qA;j-WG>G85$|oq$HeC1PuWM=i18ax1$Oh_di}@3xTUd zt;ZYgmJn0^$NKG`L;)DC!ii03*{JUl%;!JXjpTYR^VT0rIzRjT{K?$&D7;Qh+O*4l z33!N~MmPg*0HmeHOW-r~m0@q&!X=rL&p<@XAl|4)a#Ys)4&a6L4P)fM=%9sBQ5wE3 zzFw|3Hu?Y5_;PlhG+E2E)z;Zb_9OR!Ih97vO#Xl~>@{b zgf*-B$yXx-P1Y6P(HUcphx09i|4ray$p@AOcfAS|CkshB54>t_1q%Vu$mccyVOp6 zBSg?CNV@w8fcsgs_DG5;Ttfdt z^f}*a=PJnwUg!i~h}NGN2VB;rrL_h;aK3)%yx*pL4m(#H%_sK1O zFa=D2-T1H{c$*Oj?diVTb6O7$K2LJ`^%cqn5(~nswM4mOH*SA(mvRu}K^y{R5->si za3MQ(Po*$!}R)rqaK!HuIM{V?qkz)P0lbut_s#`|v|wz-l1F(Ajoj4Dt&@QVb2?5$&ixMUUrrwzRZ_fNyRv+!bWm^ttRO zj!T0m9qIELmGxxRs@~=S$3M+Q=}BxjYO7k6fH{H<9Y6p0TH0RLb6R)DWGPni*~&+l znY8b@3+Y78V@#EJzK248`$9)n+Lo=p^L^gS1q3-KJF_8P^Qk~j0IxT*TpwY3$(y7) zWGOE--|hL9M7VR?`Pw4El`ojC==6v-z zG2d$xHA)d@&AV=ZT6((fb>HtJZjHAbo@&#_YiQi|g+RR(8HhqRc-uaO?=%D1N1?z8 z>tlMnv8#V09Nw3viAWU@4@m&KOkd!i98LVnoANLJa5uWBIt%75(iK{fvH@D`tUB+_ zImKS>EuiDKt%BiGKN@EB;cTr#-5+oB%w<=u+C_x{!rHdpT1}Hp(JPgYwzeaXVmWAr zp;!w1YK`|h3n)UWYB2l@=IZN)BXdzh?J7U_lvlB7F%*e_}(XTAwZf_P_#8 zT!5O?)UkW)p@~pAnHxZ&GWcRm^*^@!vzIR9*)?Ilna(wpvuYIFQLlSdIAkCqZQPv- z`-aW9#S=&?H&CUctHv4N-n?`aG-=ja?Xl^%r}MJ2*HF=qaB~MJqyn89fOA@&U|rgFYC}KpYTaG89bS!31@3<=$FAX0D|&^b~#=O4rjl;quq<$!H<6v1ytA2(kA&6 zAu;S#Ah~k2_kpJvxHy3roGb1=q`zq9mi7>^mfe8N`e4#2rYu!`d;|y~#`*4hf2etH z(qVWR;3&?Yp7wI4Rsd`t-d5o}1jjAdb-AAuvAX#CD4t;{7lg_)wZJozc2Y$dKlX`4 z)6R~RrkLvubqH>+Gq5%?hVBB_Mw0dtv@^^~P~`Am999XhWikr`wnxbVkdDFFRz{nSlyV!C5Xuw{<>0Iv z+%c8F!D*4`KDRD&iNj$(j*cCnQ3Xw)-iW=qp9kQ~Ki|MM!L&IiuRxAlV z5+)!0oWx5iELJ8_SmCWH40`RV9Hh1J6BUA$22+10aGc`rn4B_wNQ{du6XB&WKvdY} zvh|!}`$`4jJuYehhK-wKwNsQ6CMAG#Ng^Du^+^eC;JL-zNpOztU#ZA`N5BR5zU8@o za(BFfA^Q-f00ScjNxyi4xCxWwSsMuScmEsUJv^;W&@yru{7_09%~f{r85ax*=e`bp zJ8e|>d1b*c#?@qiFx^ZQbc>CDY0VLY-LHTR5Z&CyrAy9bY|@n@{eM(H)rObf9Rqv;rpBgP$U&bK`tN;#3Ly0q~@^*<*$VZvbOqGiGw ze@C@7@zB~Wpp0Q(Ymrza=!S%wlKt*)am}uvAq_boW{AxzAm88HLrzlwvM7ZAU5mKT z!g~xIYmi_k=b^$uctR$YEV0uBuVC2ESaEMq${@>palgKky$$#*Z}KS+0qc!9VhHPx zS~gp1O6MW7;fukj`Xnyad}t5CT;FZ8KxS^tNje4^V4-7k4;mlp#QjjO&@e_lDl3SX z@;%fV<8m{=w|ibUAq!nnj30$;18r(3<|a-jLEP~X_p)K`FS;)JPvBo+fa`e+nWC`?tAT^OsBSgvp3Cw4x8R^4FLFNDX&vYEDNeJfKW zIHQasW*f-TT0!+NLPv(7ThvkD(b=*p>`U9Pf{%E^lNJe?6bPTq(I>e=!BOQvAY%K7 z1ho(gx6Zl@$?cmQJ)WBiHuBI z@g|xYT}_D>VTIS$QmAvWhC*5$wYIx_0yq}*QGW5-24N$bAaN8UJ)CJY2&N>MNb1Q) z!=TI~YEIb!Cc+6%eC{D<&M7bgoHi_~E1LgW?VcS+CdKsvFKRN*4;mAEf^uL$_G6cX zjq#dMi4FljBnAj%;8UZuf7m!E9}M4{l{!zfm?Iw6rMQoi!?j#Um%xT%Bf`G>NbN&i z5F)fA5u|TuIObZ90dNASa6fJ^!m`fdXtL<9O>6uosQh-0f{z^;8}JoV2|{eCri60b z^XuW8qO^SXYb13!(CV%34FC|i$H4qhAv&~P7~mo!f?yPZ2@Lah47h+6NdQiRSIwbB ze1r}Eo;%lFhVH$SM7BNax*FJD5;DM(wI0)y4bU_ajTnkQ(Y1e;;UqH zDhLg(h#8W_RtH4xrGPF_=U2e5K(0h~NqPQ)%|Y$Fh4o=% ziCYN;Ho~@&_g`tZ8OSB<&1*+VHqL~Cm`REt|5OUAIboUf%wF*E~gk*@x=F z5@WIM0V1m~0HS=PUulV@^K*+F!A~yk5fWSo&`k8ONd#{7`WVy)=U$?GR67#Ik005W z(c}79T+51+5{XG)k|#Ty0%J`3aDp8WhUUOR?rdY_g@w8`eJqe!(qeQL0*Cz5?boIr z{{Nk$v2t*9*&12LNsaYv=M0r~(AE2HP%2`Q16H7c!NSueDmLNtetXttQ|ahK-IOp) zfL~q_=x?LV?&X+7@8I-gE~G~F7t$uXx0_z=OlXnd^O1EQRpCHJKh+)K#kBdt4VGZC z6PJRo-?=xg%RC&ZAu&dTO53UP+iq5c6eIT!J{cJ$VzzI>e)GJwe9c^}slob_C}dEG`E(x* zW{Shs1c`)7cZa{@O582ZG;S@`GB+*b3KXOSVe|EKjBTp+NT4@KkWghYm(jSrzxTdA z_$d-1l%N_U?+6a|Pr4U>{{xIJkbiQ`Mrw2ZaOtjC3 zfKb_J>)0`sBn8B|MvBL8##@oA4N^CkJ@;RLE_yc^ZgZUZ7bp<`qtePPBytR}bn}cXP;ir{U>4R76Gm$@)zZ$>427=eaFnL!+MgQh3t@4V_+P+iv z^3c)2)K1gVPSYC$eR!|NO;sF(3JV{_M1vAjNTntrfh`%bLq|dv3an3Q`mwT&$c{cZ zbqp*|@t;_=j%;3B^Xu}7a+F0UIbB)ACr2kH?@ICmspYHJ-` zE5%=mf?HZVg|F09^Z9hDrIGkQ(8TR8h|V!X7H9rcO8FLBTyu_)%drCcMG7CmVVdu) zekZ81o8!1{eK+gQ%>@T!BOa0c3_Y}274y_&f-sVjN#nACOHYkiXz zmJ$D|A?O(l9}+6Ho3$m>l%eLl_J@FNF{KEH&)Uk9i;`h)d{Mk?_3|=C8aeTFsaxPe z0d2u_7p--)so@**ViL7Lt3)Oi7QD1XIBspqlU%GEaq``I-p3MvJbq83E70Ab{T1O2 z>hB{rRc=bMKpz-*Yoeoi&v;q)xuLLox=$kBRNk!_uS2mJrea{>cY=Xy3ZN8GCj50M zG~B7{0@V;5OPmqyD?4|iYIUxiqhsmb)wGKZR%p0b$%NsLbeFt@$rt-*ks>e)8_(06 zP%>Kfd-kWnve~V;JF60{<#4AjUuNWX7`xIT6^oW>!nEq%P2Rw=ADembLBQ%;O=|P+ zcHw00zIP`ocaO;G@W{smN#rHqT~{6sF&26^seY{lmx!Hcd!P0MwG!8BX1hPlvqZnA zkj#Vc$}%UdCnXI`KSV-MAj}_ZGOFL(T->ih`euHIwcoAov=t+1v5TG;XOQNw0s5JL{+PyQ6TS zIJ%wvoHg#d3UX7Mghu5YqU6xa!llMT!eo>c)lkAPBurX@tkGxDP`-08- zV`9nbl@VSd(5E64jMyw)}Pp|gaMik7pHsivtbV$r=JsX|Edq+W6rt}!B z3PUyet$NVm%&I(=UbGIK3Y;9Kq9VHKXlQ#4%)-`{sjg{bqFClgzK$}%DobBJ4cYCM zuV+4=b>q^H8V*V8#|>! ziohaBOVf&)j6CeDnVPSp>esNl-B+Z>t%${s88KGqe~H;<;wM{BE^t7w%HZx7GpqiK z6M>brYl%~=!uI15dQU>&fwLT1O!qa{Jw?N(4YAVIiWG#_#Ips0{at}ji&k$YzFglPN`R0~s7A$yBv9xx;L_}-X|9bloID*CVVhk`jmxZ>T)9whR2Dobn;|bizPYu7 z&#P?|M=wUHL`5W2ike;0WFLAk1i{*;6?vzV7=wOA&rlXKIZ~SdviGIJRsJS>ov9PY z@MqXa6)ZNK{1+C3H>K6_cl;TOz?k&4yS4)Jp0tR8z|w@bVCJ7F0`_oin=!86M@jEN zK@FJ=N-|bBD{z0bJ51_{czFLbHWIUeC8PaDvMuGa-IiQ4N(t2Px5E$f$EuR~atpJZ zLNe*Dg3GdN$I2ZAG!u;eHcCUmA@tfmWKh1%#oU)dNI-*c7bd{=lSL$2*wR#s9l)8B zJc1tPRKFYpt-ndCuoxyI8v{GPp;;a6_^C}1T3T!_5(DL$vQJl3JTrmi7I3X>Y|O@} ztJIScX&Tao$TquXO|0U8@Pt{5BpXJ zuBR*d2W1Ex;UOKH7YX9Pk1ElW zZ$Tfr%FlBV9({ye)M-)U5{h9eyv5&XKj}*LvEw`Ho+0^)0GqJ+?eF-E&8U(c>wAyJM_5Q5I9Nxndft>9E}Xl@x(9E>DJUf*&L?P54DL$*Bg~uNcem zb2FWyNlbj*^?ouB#Mnpfln<2X5-CGQ{+I{R{i3HW<`6+UhKyVj`ee$*14}!NxR3|O z1O}Eq`KCL29oH7>XBB()g+X=Ml4!*Bj89JT>?ln}PaQy4B-$2)pGL^Eh4}N)`K~@< zr&xE71nsh)9pKbgHbesh=n-VIw8p>bRGs$9MF_kvT{n9wdQV?XM)VAcg>TE37B&i1 zi4`kDDgcYJz8uO+%4jEJO^%zrP96_gx(hd3$M8c&eg6_^F4m#-T|8_^lH6BzHbg12 zzD=@O!}_ng#BQO_AuwD~f_C^j@X}-YNldXd$t|a=N5P3Wpq7+7rjt9YLF*7JCOGD; zqbZHVj~(YRo$S;C`ldpq+n4b;?==sQlLvRTdWAOF(lOPz51bjTP&m`sMP9i7Hi_$p z)P?%UDDx;X=Nc|0#EWnUW@iXYn|vrjt{~Nj)jae^$9@~4)|2_R&D~aaTGFzd^MQ_n zVqu=&Yzl*w*vjq~e+xeo!upW==P$em!ZXF{4?}X}d0ikG(?0nkT)v>B#;U>|263S{ z=41NcoS!9S3L4vnJN9;VRt8I_TpUToHcC9Yb)!O&xyOD7!d*e7d*gZuZ%ptt;$#Z8Bp--nwbt-4Xo6tYyzFMHR%b*N6FPvxYbUxvV!7W{L>tKS6v&uk@qu^ux0q(#9OSL?+=bn2K4(&@-Rex4L> zK}1Bvup%086@*!dVPIgyXW(Z;8BoT-fZdyvllk8}QsWnRe4Jfq(P?LoQ0_eTn}m-~ z_`~FyuKRbd^faxC0*idzjp)ryQy-=idMRn?6yM;(ZR*M4-|Kl*M%)i!s&!WsvB}Ag zmw`j&QL@o@r2`gc+jzy_E^5*4FH4!&nFGH>cKj^cS{3p5)3rj=5YJZz|Gy7HaQEhA z$llAE3mjv<5Ji_m)m_`@l8>8?T-eu!C=s$p;=>1Za$(Zj%*YrZvchS^w=T$nr9dg} zsZjl-BXc+4q?N~|u2K6F{!%0UC4l$fXUWni>g7|xGiOKJ$5>-@GB!h0CKrty2C!?d&`W*hVf%`(G*bTq9 zm`Mq=U8#xdw6h964MbY-wwi(nNGg4SMnuYbP9z#%D1_}FD*}7Sm96Jfj+54*2ZFcT zxLqNsnVI+J8vADE+v2b8Ki{0e^YeRHhW_4f8&m~WB`@bfqI^|%WCcFVz% zQco;6!-4YZD=0)Pa`bq7Ze`jNwhh1T@;GV{X;KQ;j3o$q5_>RtgO7e?N&;LS4tG)} zBk+%*G&B=A>Ulk3CMeMZ79Y+)LQU)9*gsd6-_^Gq&kB9`OZm~NI=M3 z)On7JyOq-7_wc>Bg+k0-iHBHQH_K9S(Z~Llg@c9Ln6JlA+}`dkB6)UFfJ%HFJo;`+ ziBGhYZG?bep1dGFs;@vo$`!DT<<#Nyc$17LX-E}M@!y~b%}hL4;6!AmZWK-d%Cx1` zO9DhrCI00K?*<7ukDQ!5^^`5Q=TNQ}wS8)FkrNWxTUo8CD0?secF>A-yJ?^5WG0Nu z*i$<{>HTQ*EYs$87W#p*c?k(PVX(T|0H5{JSXoZF^Gm-3K2gS6kJDimwW?o9`!Z6h zv==cPAG462teyc4E^?Q|31V`D|I$A+lU=1GCTm0-Bn^7 zNhSMU_J=v)BFlu6)DmI(1d>SjUe@qEqkB@5>v&MxcehB+ZmLydu0Z%4E#*|QfFzvn9RXdK!UDQW*ND#-)1#{_g$}v0wBa3~Xy2qhZSw%yHx4V94 z!gx-xxuUX1_^fUJ^8aiDQgjU?{a6Z`G>qGoe>8qL8%x;z=8%hM|F$!n!$A-qQ zlC34g!$>_X7)(gg*su6ZR3?m-2JmlRdx7r=;-=gUahW2AMbo>Ai?avC;kEc9hsopq z+X;Jngg;2gh&(UZlpxHwLNbBe>r1ku(MAoTG6vo1BSX+xyr9f6tkO z`>KsQnpa|cm7a-R0%i#P!`>7skrs#M_9tw+oBf%m4L!CO9NsFybK(qS>qbCMV%pK% z>Nu-66HCRiF5K~POII{ba@a)^uovyr($b>sAGo`w=p#nwgCTQ~$Vi4&Hd}`m?tkYV zkNR`Cf8G*rTV3o;9afUw*BmAMSe!XyStj~y)-(D}3Z@i!pvW{L4OU7SM;(`*4`klw zTa>s{j=w_1yKHP$c`U{EV)4J)ZnejWd?g+Agu+FoM|_V$0!Rp|8x$K%hQV<^_lMZs z)nuyFwj?8m4!I6R)mN1wDRqX?3`&@c$bZF67qBoF0XO66!}FW5LN{3JFGqL^3{Et4 zZj*LWve3V!V7(wiB3F|)jE+yC!^p)fLtrUJ^~vf)B6-Q>)tzp<&lB9mQb?Ir13XG7 zAnB@{cm3c@9Z=O*6T;n~gx+j*>M{iyU+G-?*I382dc(qr28b-0xOIS_F`5EIeqb1U z9-Q0%yZ?Q^kNwj$-CH70uU1`8KF{n@yiN-=v@33P;7~yCF?-nLYA=J+n-1r+6uZ|K zaUIQ1meIM4ql!1nQ{#EWA}GQ@l2Wr5EaZ!5Y@7j!Dky(;GnqhmoLA0N;owrxq9M>Y z1-64mx(t#@r_7+6ig_}+M}jQUsixzE+e?2a3F%_*;n@;gZDK3ZPtgVB+-F1(WH=h^ zl@z{{DN$k}QEf*WLc8*R_qky%n#+9P3;&#eyp5|^96zM|n#zMT9ev`vsUKb1N>-vJ zy<4auqGNHY8BIgEJ4)3>In4i5Tq<0Af&ngmf0ViTz)h5`yp*1VZYCd$0ffL22_|iF zSDTrbvZ>y~BXWJyJ-7WUceQGWnb_OWvmW7`v_w7devOI{D&xPGf6&QeSX_ltxp zu^G9b@D(-Px~}|@-la<>7H)g8SIVyjwjXizh>Z=>IuPVpD%}36oY;G`sK~xzwRxBrlkgtQa*rD}jDX&!F{%+)O^NYMptb#Ng>YmO&(mVs;DY7q9G526A z)xTP&nxo7!IvtL@BtbK);AAd&^t%#ZB zFvkm}Z|c%VxYmIaTTWjmWhM+t?D$<)Z|_xiPdZ-dlfk?8UIb^eZW(k#+mLVJZvDFfR;!`21j8P{emLp31kFQx^m`!&f2YST_`BC@DO+dwuIv4IM(!;xkiIBP3Hh+;y>|5LSxTep~4Z9C95H^P@sh z?&PeNQXjZK+$?nb(L9Q{c@SX3e?be2{8noFuVCE@l`jpbM!FtmK90KQQ^#t->cJxk z3m6TucPA0%2*i?f_12-onfiEX;$;Gdwq<03H?ODQLUr0^ncwpW!W5&Q}4dQ=JfYId2y8#ZQUM&93F18$MOM?FP&*y@~8@L($; z9T0MA8=j=<2-L$DJ|-o3LwGFQNr;e()4Wzm2(O~oX5jkhEfB!@%~sL0R=@nZLASZJ??F;L624;L2FFp8e1c#@Hw(IAb> zA3J?W*)&Pb3bUGs%@AT;VPFoow@Is&M~WAR{U?vhQlUn6a^8NP*Rb2b4)$$CSP1p- zb5)2?9gVvRKh-Gvn~ppUem(|_|1Vvf4dnwqjMV=}Z`;}cY^bmQ=|BD}Al6)?+YNNy z1PJ!GF1#UQ!!xr@J5Jsyl0Ze%LB~0oqjJ=`etvb%dr{~H6cMq?|x8@LyT^G}msD829I^%Zo9xPFwY#C7@p` zDEKwsmdq1@uR$91yrO3%KJJf7=NGd;sb25*T8SZi$w|&PVE0^w@8TQ$@=6~fz0O+5 zMX--^4|_}O(yv`QR8^hFNbwQP)E|^=uJ}qH`t!pIB9=&(H9#X$CaUS2`r_G- zrb^W^edcpA%>b2;1(ZLGj`=^w=b6!d5YWzGHHy}~iEN@^pQswLOzT*UGD+Z`{jZI- z0=Wx#?FEG9R^IVaH_Q-z^CmTcXoWm;BNqP@^K|2v9dyrF6o zhotd!PV8hGox^e#mSkN>E-(kZi|=gn@v#UhU_URf6B$bcF-p^lw4O>9a8Z7orI;Jya#4!C zmJ(u$8)_^)0=kSTb!D{hGMY^A;E`zv{Vv&Rirsxbp+aIvk9=e5FBf@PD76GrjZAd;6a`?;?Q2C6?BPSw7%Ac!rHtcn<+YF@I&2k{AWeXCKu;L}U zNV@uJx>toIU;cKR0%R82h+8o}UP*cR2x$iGt&a5+Ate%G8roG6wy&(4GcN}bIxGg4 z?pfyzGexI{Q8ex-o22gEq`rJC=#MNVq+}1{sHGufDhQ2Zz$nJ3knmlI$s8yP2s?bt zGhBgKTfv!GSXeauSg5^_c+oIT{z}U}(7J*aIcPJ3h+t&-H=eo>UkDiqNzQ_rck=f} z<(jPs@BeoEyY7&5dIB)_+@R(bUXKSUqiC^&KSoOy;1+Px`|CM6O#RI!jI)LPNc@yO zS(_@7a~2iH5^*#gjs}r*`FEtsC>O8phnnyFwpd{C49>NW&&y0)Xb3W^)J?B80wF_) zEJdT@>FDWq`2g~u$m3P%T(3guH1sO0brOs{gvo8uN zV!Gw}GBds3MSYnrvM0hOz(B|2)sg=$yGQQ+{wmm#-VB~jHrzf3bVSoOxGrfjA$4-- z$~TJ&Ymo^$;>Tp_X|GJT_jDL2goFXJjbpk@E*|SJs7=N^-K-W3E6IYZx#hPcKPGbM z&w(|m9;&T23Ep)CZuvcUOM%mf$DKbDKGRT#aPrl#9HnZB zbLXq^F_tEz2KdC_xSHifw7llFnYEa$40l0R+qbNf@F}vr6=yC=%&^TV;_@AT6uw_A z5^#$}uuq^&tOvefF3Pf8cJ$EN)3jd(Jk@G=G|BO??aR@!QC2&tFqS+ebTGv4&2-&E zs^a%Yu-yt>(T<x8QDtnyXsvV-U+2u1s4T6#w1!^xV>3UeSMglI2?W7|BG zcF8cJaj7IhbJ;*II+G403aZ%&yFCv6bpI16q2>+5dhu;dMe`&Tj|>L#758;xGY?%^ z;SCR7Dx~+@Mqo8n8%xPW=YJKH$dxFPw^Th`dd3h^2h*PUMSX2OBAeXXN;WIP95(L^ zty5scVrY2BB!{GgS_=<6n`|!)kde!XC&5_JAsQ2oq9i>^PBYoWqLJ)bn&Ip&E>Gl^ zQ0P+Ymq>nl0McAz5?z0T8wsheSZr7I!FEfOmO#3F$qbd{rsPQxUx?v9JZwb$`B$!$ zz(j+a63Maoh#`CJWH&LdnU^v(h&2LQ=Bm{6Fsoo{%I#WAzT*xQ2FtnqGxAH8189}< zyY6)SyQFq~Gx9LJEmw_{M0*46YU0YMZ1jjOHB>AQOpBT>suk92xw|pYDG^C>BXA0-B)#0X;PMio28pjxs(rLlhEX~BqNeD!GmixgUW=(Za zmIo!yFqa)?mUN54XmUkEQ-efWzXkdeckH7>J_xE#P@#Zh{4R5*j||TCVob{A3qKrd zD=VX0j0pRZ`1w~$*?0$E7Fi-t`^yA*HEKO+$i{XoY!HSpVsVlUxQ$(0n6(;eaLS$;y(^gt1b`%T}0$Bon_7352h9cL}Fx%(lyyvl7$jTdA@0-z8^l*&vB# z5{Z``Q_PWWOZ|IVOCgNCsiUv(4Mn#{-iOW0xt59?L?9tmpX0MtE5n9~`7VUpX*=nd z^DPPDg+Nl~iOW#VlfRcb64@K@M-{KEl^I)Gv@_qy(S6xRxmgWrv(x zTonVmn&`rt)~(lnFlH!vp8w@api>y3URJ6gKrU8r*j$mJj3KnPFxVPZxyKdq?Ws~m zNU;RsS$<DvpZffz1*)(;H7#&Rk13$yZl9E5(8vdVz z<2C6P_Zc)+$c9j!l;P{rKMwtL2^Ja%?Ssu;DuGLR-%9(VMWSDHW#ZKqZbV0IxhX8A zh2O~Y|EaTW_GYK1ro82gfT`9Lq#S6|UVQoY|0~K;kp_~i^x^-f4etLpA^-pP7Ysf> z-T^7aJR_}2;EyS~*pmLQy&f@q9b(lTyP-;D-BUBJz2ExDq7LMFq zgQ0%Rbq31EEnNgxY6qv?vf+oNUOsICKo8z=m4&6vkcK(8Jw5sN!rO;{iOOG<#l>6M zhuI+^IbV3VxFj(A{r%(P+#Cb9gr1DEUxuh3wZrt^fEzVRQIy! zArI`|D2)*IVhMo@eSM4+PkxV0L2=dGbH7Jc*Y%u2`T8Wh{;(pA3_thHMY4IPuBysQ zj2qSBtFn0fm-q?T3O|##I zQ>m&N=c5Uzs_n0?C%qn?++JxqWPQi^reoghf@uy#oMI*Yx9E1LeBTH7tb zy)4^uQD`a=pYXmP9MfKCItvSn{I}|AHdfZN!^3{X0mA`tGIDad=fnBbThCeS)|Qq{ zZ!H}yvh<a|m#oCl-v#6TNAX^^a5L)pqfy@`ZdLwf|!L5)YoRva*^^!cTs)>cC_C8B=3n zQD8%R%jK7zurj&$cCH1rFl!>>cJ4bhKK{3LhFxhM-aLG+i&VZ&Cwq@m-Qb$zh~0278?t*yw-fr7JD96t5w7ppVwb+ zkfU|J$i0sAyzYmi6TTja2fi*%-_z^2djDdsUv=A0 zhMA=a)Y^jwvQyR<{qzMblK)!M^S}YdqJ3HE0k2!mXTLs7QX2Q$e0be0 z==M4__-?1TDW6$aS*hLG@R>x&+ev8gDy7Z}u;&8%aTuXUWj9xCEFE}%_h==M}vC2)!M8%;I+ql>JpwV$7?WWY4^K+%l(;ql?` z^bopEHtE^kevU?LD!C#OM*M#GN&aJH)sg4Pbw)wI(s2*xppg~NfGz~AZD6Ocw-x>w zi$Ww}a)kMk>!-BzL}M!HVP0KcP&MQaKwcQ*zOi3v&-ixQ=5dz#;ui2Li&Nm+UcZ{# z-&4bMrjCHlE|Wx%P*o<@K4?NQhH0q8u7b}Y%ygQXWa6}k`%?zITI3}<@8M=o*H{YO z?g!TzgL4GI3?UsQqW9dCwdJGdnj0^GLf`Aaf1uZ48yPasJac;8qr^D+u-f|i&=C;| zwF=+^k_9JEaYB^nqP<{zox5|o*B_9P{`&Q6xGMCDY4q-!M!Asp zZfjjcL~gEt*JdQISQ!!~P-nwlZAOUM4U3~*Nh&+PK?a&1TO3ZVcOgF$D23zQv~?Co zm#gZWKp+%Lmdn*uf2Ze9lfd{)q3?rwXdblp!6QFOuXi&^KfJZ5cx}z7Ks562M#4$A zy=|-gZ3LuHU;@}=w7DY0O_`gW;fJRk$^-qoPlgg{igH2vaD zebvKheJv<`PrC)OyPI~-#P77S6)FWx9jO(yY9fYtk-qMB+@T<^86i7Q2s(SMSZ3<@ z`+7OvRaIA*#uG2>Vs{HTfSqHSTfpDQR%9*JTgD+g(gi< z{K_zY5}|IJ>Fn4~j5Es9fDrkAEj*6!=|XSiJUrjNZQ+&_2ww`CoOyqr7ob{gihl3L9nxyxykW9-jq>-|js= z_B=BNtaa+$-}F3v9_Rzt_1rE5!$*Ry8l{oMQn)Dh^tE&iwLU7C775wbKThpu&EiDt zu1N|dTTlA$>j&!Ve>PH5mir+RxJJVqzJJ#h_=vSh#&kIOdbYT-vO+lko&$Y8T{((` zV87`c+CQAfpDC)Pe7&1o3p|q^0>1^H;Mn+RF$9)jBr;Vb!=mLRT6%B2^ve#ofHQA3vGaOE;IwaMJ%(5Ia2y{0d=9}O9wn={2P80Pv_N^+{ zppnzit#_~NNxAnf&?m1kKi^mj_VAO#^IeVK1KvTfgx_0(VR2EB-xu5atm(ra=7N`h zzj6YF(Fdp)_rH7AEnuewwp~CW=*jjU;Cj92e0`H51w;CPO+fM6x1SV~-!rXINMlw0 zL4!$^IU`NeFKT+AJeR6Ym+VA?hHo!CjhR_l*Qovvinu1MIVf@4uCLxGFSyPJOlqZR zs5Cx%O)Wdpo+z4QklV!seTl zT#ebNOl3-gXb5nqy?@vSK2(ZAa4;}1hD-(r^)5|%6@$HP_REc{?i(u+qd)VFzyDRM)b5IP zdujMHq2bc2jR0z4x|Bxyc(p?pWI0^-n-fkzKtRyvKB0STqp*832|1O8ceHcIPV1lW zj+%kOChObb(mgZwG2x=){(RtTNrgD#OZ$*%=6HOnPjCYmh?aMM(LzX~ImTrj6j`uc zs$^yDfoYqgn%bG$%vtvRm_T!A}*gu602`6KJCPEPDk5vo37;;Gl zO-@#wbo*Lbrp|kuS+%Ysi7&J!e*7pgpPraFw)*$zDCrk~GQ^R7-I$qi_=*4~E=zpA%+>iU$yk+I*yA3V4#$#fG!{91kf-nB1PW<}paJu1t z|J!g|@5|vMgD2LF0O9`OR{u?~s`fDDqA4GyaPJQ0C4ME`0AH>T?4^jY)S(&xCt+T0 zMLUh?aOMurf4H8I?(txz{E3`>)0T?%`g1cxp&Je$m}LH!YWkmR*MCS8@{i+>|I0HG z{6_lUyB=2wF4xU}9UCioR;vRa^x66Ov%k$7=6`^Bd}@cThQvcd7Ic@+&M(X5QD3KK z?YY}7D$C1n)(`fQ-p*!MSDPI#j1SdrJ`G_uHSP5<7)P=3@*cIhD~f{WaN;&pafSTW zca)@MrVze*E%Ge{0(=K5i6@$yeIhR*`ri3xf}AUv-YjdI&JM4i(BA7pHVzII9S#CL zP17F#yuo)c-^Ur3D(|(<+v#~864==xwV<_!YTXWM-qDzWJa!r28#_qHwe7W>*tiry zw@WdBers|{#9R&xH`mUxekI^{T z2kb9JUq{z1yL_a_n3AP09yO+G*F>Vbx(e?G^2YDWcUpbdvQT3(%CfzwYTr#NhwK#c z2FZvFcU9Tns>@EKR`FDp;b)nzBg>J@hBZ?A=I5C>jLZIcr!Ge(95`>Gb)}yiKQH!b zgMxRUOSmTfX)&wKP+#Eb4f&ZUFXA?o<^xJxn7x_f2sqw!fI{NgiUV9kMo65r2$eyX zI(Sy29x1?4pQ-(T9uamPUtShljIcK<%`UH2hEbKyO@#@=qWLAil!6WasNPJnc+Qto z?Bi^@KaDXIc=Jc87(T&r+F(fMv4jE$JFg!w*1TU)0>Jfz1NZx$YV}f?^}|yyS1MVt zZiWClX}OW{QhIb(qPkK(wmjs*RBAxW&XcgC>t&_PMC9I+lox!o9Ok|j@6=HmxBM0M z^ytV$k-(XT;7S^5G^`iW=OZjSu)05FYkq{!9u)kwgLVL8 zwnxZ5lY{-w)l^cF+qdtfN@qt>pbX_Rg_qT6dgDBV$M9bo3|s~a(7L0WxGk%!l)T{z zY0Rv;q7F75CcZE20s4-;bn?uS%nai(<;ZE8|Je|H02nsIfWc9Dl)l>Rure8vWCwKN zp~BN;SiXrryy#rtRf!UE3T4HW$)#3GNZh7IX2d%!O!EZ9lKq;8>B={-z-ma<0IHyZ zeoRF6Y#o3gKUV(atqS@QY6@$g_vIw6Cn*Ww+O)xB62n$7?(FACNTi*ap>`1UdiGa5 ztdgrK;%?OD zG5sY^bVoA=Wr#gnMf|gUN)&LZqpTF+6)gi{B&~p0J`}o^BphrtdifZLQBS`H_Mm~*_IdU=KPKi$Uzi4 z04M|eZ*V&7q#gJiMw9H(T+BrD6e6??<5)w+#2(6N?jc+?Mvfble99$mI4o2!G=#d9 zFCfmiVv3{yKi=MP*8q-W8oqcObwA^7Ip@f-hzxutZi>Y4u}>2?n@lMQK|W63{w15Z*914vpr4v8F#L_onU$5Il;G<6G*2AvA-I7u5n#Ik*z7L5!nIvR1055 z=uji|aRk*vBc8~UgI4edF*c7Sj_Qd@i?Erp>*I3@dN!eCRjVyxhJ&AebudQ1$si*I zXzXa8{7kmh?B^(b9JTTpBjq63?@{SG(EdsBG^@a3RXqjk$qRty&SO*03i$wT zJi5Y6D~yDspQ~Zj`RxoaRLVZclF>3n447F84!Bqzr|QLs8X<^P!xgg72URQOJ(Z#^ zhBt4+v|C(IhD~pr6|#2x7-1vL(Gwr^x<9)m5VO^q2@@JuVXF&QR*{%qC;r)Hxaz(NVt@VBWAJx&{7?n*hWY zW3+B5WhVyFL@AmW;nCjp^~$XTg5mv z;9y7{n{5z6iZ%3pjgGg!|Yf=xsVMoZqF(P>HpK&eSJOA^;Ocrp)d7~ub{GW_w5xvpC<4Nm zP5b^-U!Yi!jV++sED5S%?8cRY!*wIT1453SPijO)j=8a#0`LmmmNP*@^nr)ws?Gaa z6@}$fS80Kxn-FPv`D8X}Raihj%w2C6K)mm%WdPu=i}f8_tvK$lxz8t~ogS}dRv|;bax}?keOAzqk}J|z;ET#K%Z!n3CBS$$UqBDLUfanmv^`iun54gyrNhN`)wqbofG)7h930lbvmgF^JU}DCpJ$k9Y ztYrYQNm+Qe670&CFOc(|Y$#ghZp6~c3bo>OafzO3;(CvNuJu5xDj{(~cLb7zC4SRU zS@ek)N2QPuDhWc0K30%2tpX}y_&aGH(#rKlIe{K4EwQkDA72!XLEzd0+zu!#tw!Xsp8Zjn@Iw$A3 zE~Z3qM&pvBve1F^gX<-2iFed{8C)SL+qCO{LDGd);UZjnm?}UA> zt$*Pof2uOF6qIK>fKf5#s~ZJsn#QD1BiKpeiaWGwKxAN|1z|R?0XGl{EoO{Q@%34& zoz|L`QnZWVALH5pN;-R6!nl*I5YKIqkcGxFpX(7+kiql)V{?EvkkPx%R$1$Cj*}wL zBvQP*F0cu|JS!HD)wfHAu?0xHoRv}ma`m{ZW1s zrEcSQc(pH^DT|6RBQ+j2^4LdGhH(CP#P`6(s0blse%=Z9!OF}`JaoTAw3Rd(6VNCO z2ugl-tH$#q9oF<8%zdLh_{k_oM;cVB529PCjXC(a8oiW<%*50j>DWv_2Ybb4K$jJ? zZ^^4s<)nJ``9C8l>777)PeB0zG@syrmJPlhf$VV4OuI9Z(BEnH*Xb%pIq`=3L} zmh*TVeS`D%u_^HACx4}oPXXyT*{ndu;uC$ldOtn;u0hAk5%FE6R<}q&5r;6NW^4J6 zQGl~1W9UFr5TS*zJc$;{^GSc8z6{jacF*S;pa5kETSUA!*r9bmWQtx$Q4rAq7b4q8 zD#ycq020;W>>#9wvbXk<$g;wmN=aVpOOB}V$oRdIx6y6{Dr(5@Ig!hdhuS;rEu%R4 zw1^|#s}|5bV(ZU-L4rR?4iKD&+@ti3G9?^>Y||jV@=-F?mx!DqNpKDIVxr*?Oe*8% zLd*j=B32GI*s_lqmK?PaYQ%k&`rq zZhz2Po{%x#lou|j@604^`C#J2Ji$nE2NcUb$i#4B_G)CQt(L@5NP~l8N*@zmfq^=13M(;n8?h+_S zK@V^>rn5$ZUR#(8i9pI1o=?+HWL^m?^jFHn5cxs`;=pU6hRNJ7~>$JW#f1Xj~@q4C}lX|t%nAvgTY-IJhHPGP-LlFn*oB4K#qgP z-}~9`F?ZG3-E==^$zg8ZC#ph5>LSeGa&`a2c4>5=$?#O->13G@_RWlDk#h>=6M@)O zKeil*psx)o^=YJmZX*oxJZJ*iX&`x{nJghtweM-Yxsy+#7R0L2Pv~Ux>~vAkdu_*G z1yZ1ptoq%-9KFub5%zc24T=ms+QhK^Op=MI2{?_V9K8)$231|AXRX(T;s8tjyjcsCVhsH2BRiQ&zV%Q zXG6?l97p;}p$GK&mh!UcKCF!F3EP@~VI@+Tu-jKnVqfl;%E z)4G5}U9sQgBh;Z^S#_*ey*4}y_}411KLax&lBPJ%1(L~y7vCU#DQc8Y;t|}Z?9%aa z-zhHvXClG``Lv$%RU+NZPy$^Q0+0V&J0lnmxCyZx5h2GbSmprr zjG9X4>}Z1j+&(o*Q4ABDPPel8=i!@i|E?(#m(UM^abo||^fgRk_>6mozn|_vOsI9$ z4e>yXn=59{DgtWi&FA~t4~D?U2)e={v*pP<#vW&P`bhI@?$tqP-6UMy((Pe$NY%+v z^`!0Hnwy%kCyAI{_EyqeZR(%-IB8qT%79LNf7%klR|(1zmSF68?>Y{(v!J0hk{>X`R(@=ArAy8 z7-PqPVWgptt&dR!wqt#3D=y0^(I!Z+-;0fO4hJ_`I!lp0wptvuA1DIjYBN=aoDR<9 z`Cm(`tAzXzk^t%#wP7cMxi14hK}Es^Tp{-AXM&DXF8k!f76qc^_=&w|9CX&@=@|C} z-9<>3;w|p1XzCR`d`9wrQW#3hq6qRN%OXm4gsvP+O?UBq+v4QJj@E16NXZ{w=6wYt z(WA=T@G%v&fzm$8A;yM^PzPf=-6FdE^=Z9=&mX)(iqN3P`rY>^HH)|Qb53Z1Ppw=!1=lSsypAmg|B;vv>5_g6L`l(8Q&*7Lcxw3Wku4VX+R8_nC?;CwIN68ZkP z-*u{d8s?!YZ*!`gz!3fatzq#W_coJe@W0SoKA@hbUwo99x+Bc2D#Je+(+&lqfqZ;? zd>_*N@0!KlUS9W=>O_YN+JAA6qcfN=Jv}}BSrIAEZ*TXI9mo$1c`O1doCygDrO%+> zTEzcVjt)t4U`?YHL2>v9B9@j*vqp!b>W#77C}*fHvi_hmP5?aLbLqEg#1b(!u8Yd$ zcuzLn+Z*r#-IeppYeP?_!*B9A3T{^_qI1P6}_i;9Bsg<6(})u1)YYZ4?;bcG?p zx#cRRtRa^6a2IszeTcc3n+%ksmlhXMMyRxnf1YXec-Ve_=qi?5{8Bv8AfkxkMP;Rj zg_}&|#;?xJvfuZ)JioP7jRY9r-q_rnK5ebOG!8SXh-B(+C18HHonAF!YIha6!wy3p zFZ^C1vQdzqp9!^?pZtuosIcodeU6KyWV3g#^9MBhW!hm^5pC^Ift=o-y{5mb0Wjfk zKHON4=F~GqnM_%SH}C9c$j2qmeBgHs%`5fky=xl9t`TqTBv@HEAj0qi%vB#F!{#}> zZlE~hZFg@XXKN`av_+Yt`ylO@Ca5ZV-vi_&eNX3MJ%T<9w;zqg!6K>^mKs=}V^U%^L~m!ke(zX)_n zvCH%GwimNjCg{4s$KHcKRnlfZR|o(-Ao8)52)vW^T8FjCAPO_5we3iwh`~+pIRU4) zHn1kTf#_L6UO@~e(E>tK+g(;_d$%K96sx7UNTV7fl(NfKS>B?E8@0SM1uu)TgH&WJk14?pxb{w~G z>pX5np!giay)87%LcYV$)d3VVv!x^6@au=7^{k^+WZw-Set-8<+gSU9iODWL)&Szu zfE{}Ar|C%UG(U+JSu+z@;!i^jT$O>f)0Ry&9D9{1n>%SR!wFtfwR2JOtAIw`Ug^>T z4=)ABk;kak7ehg7Zkz|u-PiZmmQFzSY62;~N+M^qxt`Rgh>^=|lsFS%dR+s9z(x>7 z*U|B@c@)JO5NrgL^vKzSfyjW%ED(O-m=@B_*ucf8{O?(1T%j!X)VA@oxo-z-t^qVu zaFaj?QC%e(kU*V~74e|fUunzF4Ae&il^`uA3k}&-QxMufl6l3-qL6a)AJhgi&eu>U z1TCX9AL9}r?hAwu_xJvs!>`_9hxx2KiZ&8T)3d{-ewi}p)ql3xs!UgUCTOUk!BYM1 z09z~|wHC037#O#fX+VL-AAhx~8qgPaYc=ZV46=<;u4yq61VKd=vbZay*8!gX%dT-% zt#*X0VeRK-VA6mK)5ilD4y2oMGOeRdQ_2S|MWh==BeO6_D3S5j7yy866K8lfn5l@EAy?bBup$4oyZMCov`EzSqU}fx9Y&oO?GsQ1RH}M zoBw~nLKKu&&UM+Di4{ibix*yHR@Tc(F01-9E&&R)QX5phaR^LQi`oi^vE?6cLc_Ai zVca=po zH%+nsQynVM4Nlnu(i9}JJIJ0MQA|-Alth^VvI$pkxQIPQt2R*B4&@2von`*awks=IinM)=c>#-zbh8sG#vLQ= z|1Y3@RVJ!ky@Z>kA57DsWhb)q^!$wfRa{iMWLN8evl0moRNR>$7ARA{wUx!z52k~c zS;l5hlBVciV?@vU`EEom+K7W2vjFkayrmXTa5>Oocm`aLJB@hU>*xo1V`Z5T?c>V9 zeE=MCbYzW@=5Cb@OGM%5>rR5|X*eXcusijFu+$rV7x3!BE+={M-Yet}-vAIeF8X!U zI}lISzJo-GK~w*aF50c-Z$n@_@#Zq7Dn$#HBwN9KXYD_+e5TIT&KuxePu^(E?@Ej0 zu_zOX)IX4{wBS&@ZEfu>J7h(GoPyOMFyM&RtxatC<)Uhe9i5!>Sjvnt)_p!(yn;Av zG7(IGT{civsRJk3PPs;&M%emvA8~Favfx@}H+=`H|0QpAha>kRza9m9g<&&IP64ZK zq3oki$Q}}AZx9v3e?_|y3lX;6Kf*t_L@b2>H}Q(?#yD;iU{BKG3*Jp2dF8pLp$ZP) z&zc{94toxMILwnw0-2KYw`0^qHvl^z*{9&3a4jS z@|Q-;RT^ruQNI#j6hSKVo#pXI*LMenlxm{z$_Q1i@~P#Ip(4?Hc^Q!nO$*#@kr8$U ze~-n!VgH?W?uNN*#>a+zjC9R-fP{irEQQ96lEw5TpUYUVglixiz}!b17HOlGbpYSJ zW+K@#4B}L#lcuPr7}m6LZAj`Svj+u^I?>TUNxg}T9oA0m4+;)Wc8~u{H{8G1MG5fwUDB?{^-UjF0?)p>U@IlfiFeaHk2>~Kr@~&I69|p!cDtV zMN)*D8jnOrn)HW1SF0{zANH1vvHWfFII8BxCtS2JF=kc+-UksDB{R1oa>Z@6le+B+uUqsB*Tjc-JHU7WihW?+&@c+b<|G#`t|2&7G zgUYwj>a)wPHfpc$(3Qn`*Kt}}$a6cGprRuzT$1ADhJ~b~IErh@y#fT*A^a=jt*kKs z5RkMUX6AZjM>eMohdZkJbBn(PgyE7^oGU_A*hNCGf6~~JKU;a_aj90@ z0t(FHh_Vzx=ELf-pv*`kC!@!cmAUxrl^sF877ju+>fqObMnX~@h_nAiynfhqkj0p) z?xF%F0x6-MG^ORs^;!R6>0&~7PR`e)xOR+w2h>~S@+Y9%!^M@uQW6hUDHzx2#30XQ zZeU6LU|fbJ$fIK8(+JFPdU)pbC>&lJ4fG}IV}hz{ za#iU8GUgrtux${8!|y3(r4Xg%`Snc{`I~5^I7m0+Efjk^>O|+(F7B^?@BKs~;#qK8 zxzQ7J&m63Ou}IaVq#indy%7thls1`$(-vJLv>Yr;3gY^S^grLPlpb>UI)v>*Vk~G(manKKm5qHMhrlQ)Dy`@x_wL=hfOj(D zB5JX5z$c{TWm+UWObtXRIodQHyX9Qt-~AgDvUU9XdDyg@*mX}Gv$kV`^jo+hucFAh zMs9KBbpzQ3m1xL?75nM@|J+u;$dlh}NSEtFeQs7aa;PXuq2KKO8B8b?ar~Foj1PL$imKxESBS)RPB&u>c3K1YQlNm&JJ$JxtO|GKjSb|bkR8jHH~vkk{+|b> z5iny?!PS*?75R0)Y}YKEfrW*0D3j*66;%W*YQfhov3@Y{QHfZs-_kC6SFvR9&q%}g z*M(xJ*{_8K>D7m-Q~-eienM8nnAf;FalHh1Oo+}5+_WPtm;c_ZU@rIymSqGB;P7o! zoevWZq<5$;ClUcu9^E@69NqFqp9UtTpa+V^-N1_=3MBgDx^yPs$FVtdQktTQmz^}n zN=4k-)O{(muta*i?SGyk&l5mm!_-t1ysnWbEhV_FUPQPlM}^(KRfAcV>B}0lxuXhr zs))wCSxCv9IE*zJR{t#yJ z^LBg&PjLTXpXV}5G}j+cSkJy*}!XaFOHZ<=O5CR{TtS2!*w*kXM}z*zGph%*P4Bi znE`?Cwy%{F)fEH=e_tDAW_Hd8@W%GB)Nk)V%5krL1}i^0+`?IodcObHHkYRdUbO$c zae*GY@c)X8|M!Z~|8HBBXJDG6m6I8;GpvBa!b$wBXQ-V1y}d3jYTVuH{||GEOT-F$ zbGJ!oXM19Af8>>t8=KNCa@ytlb8vK2+S;0aYl`-NznwI{|G}xl1*x3e^cm;O*L|iL z&Hpos5NSFc`t%n$*1XUXYHfR#u*4*f_tUJKnPe>}IIcX`u?K2kZ=Zesg4t*O=Y+?= zM^_LYg=lr}ob&L;Ybu=x_%)ENEfkq0&w*RgJ@$4v_h&t8v|Cj0b&)4x{(6HT&>oLhS zF|@sXc*6i5g_wV;w5e$WdP}w4=3dioo|%%-c4UU z@y&Y5;|)JBzq0ym{3|o^kD93J>c2&UjhP<{S;eZV$`xhhHFeke``5D0&$zbUxcT|B zlG8I26ZwE^Z&Mig1mz#eNasQ$iEqK#VeH!gg z?=}6NPb_n%=-c!YGcvfpPkk8caS5GRsGtY1cf;3#)0)?-$t%Q~pdFjFPLfz81yXUdN@#XrkhYz1%cp9)s;i;#wn%u9$O6Pjl>bAm>1;N7+bt=XU7AGN^m%~E6?pzn z*$B<%S~*>;DkzrI*xsi2rF3Akgx+Byb# z$RwEJI7y9IHDMhedzIZ0ulaU){7r4vx@1goEaHom3X`fuXISg)HS+&=G-YRGBZwEeX$?x;|tyab@F)r5%RyJwEME}M#)M#_jGUQ-_lX>m1}>0GBecE zwC8p50y!G$cO}&GW^%$A$C{r1*F6N=dI5cvuZI@)7F`UsBfz2&^ZiY75ey*i-9B+yC_-_R61$Qu*>8R#Er^b;47>7>rWhh=6w(CH zW(TV1yOG#1_>VatSoKW#+J)tqg5n683dWOwuGG?=cq#1639SWr(d^7Y5!FAj|laq^VMV0@9gL+po+|S zVOKUBY#_)fBM4Hqz(NA#>+Foq%|(rmXY^9i9^*;?GUfdf>`W6d9&qnXQc53@58e5) zw=U|ddL4TzU$5DADMiePg`;#`S=sIOTVcdE#q2@A)QPap*Sp2Zu{Gjr;+ zuwhmB6y&hI?cpE&H?vnjn(4)Q`L5;8qzSh{rAb}xTIIsXDtqN5QN_WIO%4r!NcbOo z1s@@--|ziZXV55FsFpae!Z9>9O{JF;`6tn`WLmBj7-}j*v!hoK>}ovRJuUX zN&R8_TfcuiX?DBk4&t|qHNt>z+I#KEF$X#9T!W@TM$n@M^c&{K z3DPd+$A0&`Kx^2$AA=BF?`*JkWrDCLH2X$aAT8jP@o7O~%9Sq{*RT6M1_Q|<&}Apd zR3;q@&Mltqft8F59dI`!Mm`gYvZBWBI?RNpR_!h#1S!Ra+rAncDHXOkRQ&0RmdchNMhnYM;TAbd(nir3@JaVF1R zK29doV@-U@&_%4pJP~Pm#9FLVXM|EFEpDrIdGJ^j*SU(#Fwms$bk>>IjQgf)MIi&Q zf?X|POieM$XwE{vBbD#DiH75$>`PH`SlU`!&q8QjRD3~*iK(fYi2-o=yK1?r3Fxyt z)g$-^oSu9E_ey9b4k_)qVVfe_j|N79vp9mXrLQpoP&n>UuedH zT9;BnkH=D^vHO~=Y<+*81}@$p3IJZ_@EiDj<`-BR3p)Lg#iFvj;~*{hS!vX?^?Dyi z>dzG=OHQIE?U3YouG5Hglbn*$b^kke@8 z4+>e{zma?=rmYSQ)L`1WErQ@~`+wRxz5ZjHL-@UojWi}m z%)&=Uncb>s=^jS2X8lsYKi4z_DxA}PP6@#+Ch;UY{FSV$mv-@3=eqAiPvsJhd-KQp zMF)?VCFG;AAywc_8s)wR-L9G2X z3+4FSTvY2ZKN%VNzhn*?lHMieTXfR&42`s^K?MaSv98=-p4ypid;iR-&9AQhN=>vW zD&7ECvVCeAD!}j@cOC?yGFsgk4MM1Xp3d?xshfCt@qI<3J#OG=aMKvg%Jh-?M=d7) zqm?K!7g1HTcTR(iG)Zv^txe%9D4d-%Hg*CD6@p0~$K4cBDEy6%u#x%z2il|%eFM)5amdEVbj>4N`>6M z0+9XZ;Lxp>!e#YU^LSm!v&)elN_Sp`RC&g@_2E=26JLLn%U- z=w>va;n6IwuWU`Qy)zt5%o+=cQuXDdur-rD);lvbx?Jyjx$d0)xU##OSh?x*$j9fE z;tiKSZDOoMDzs&E;51#&^pfEDISmlxPktFH?6;kbtUH8aw_9G<+8d=iMr_}oyJblq zCV08xhQS)TkT{P7Fx`^A1Q1*~T$x|3=}qI~;qk*6ygxt^NDzFkx*>6V=md8w-18?8XG7K3-0TU`R1>| zz%{;yU(e--O~Be?V`IZp0qB!dbWQT_tj^CGVDBrL7Gl@x{o;jI%hPorP#+Hu4@BQd z0BNx^n;D|YFD~s0ivD1(7X`TXp09Ib!b^Nz+Vu0(?thr?xIy*YLeLzilt*&Mf z+Cl;vvgG8cf28ftH)iA#>J8P^iTxSr$;l;fCWDIx=hxTy=fw456DbK0{LiemD(IN+ z9PW-)5B1{&Vby4v8l}R*$sbKTy`V7pQ|k%o>8^W{S*Nqz@kvP@&&^%EchKF@ot&2F z9E72vVq;@Xv)l>A>|3uW`KP`evC`Y_>9&CT`|z-=;%`UJslnl>*=~H-Yyc*9$4Qk# zNkEu6m5t0>`_B^?zuo_5FW|kQ#(l)qZ`A&Q>UO3|UzPnsT!WrBdE1(5i47*E&Yq}8 zXg{Ac2|O@`_|P}#b}QzV=}b~m(gQN7yQ1CJvirAZ`9{6Jq7Pikz2PEsH(JG16KMOL zHNr*c&pKQR)B+fSs%%`t;g7d#g86W98i~9yH+MaBD8TA#dMD}6olYE=9$ojA(xv0V zx2Hb!cf%F-`m5(QtT&6)Ot>65I`CjcuM@OjMgWuw zF6ic2E@7hfyY9sTG2Tmss2}Quy!ufj?%C!S7JTftMigYn?cEmcZaGbNL$o(G1d2W) zn`V>pZ}Ff>7GdyPbO;F2#5C*?B7mn2k7$cn?LYXm5fKS_gxy@6sQZp=Td@6{!-roW zUMe)Dq^NEq@fBqg7b3j-GlXQEw)8FMYxYI_Z7^^YJ9gfr?VNtJ5CR9BUw+x%Kk5UNp*^X=$sizECeU>l$~uyt@)>9*ej+Wz@ya^DnES=VYU?hfA4YXAb{ zEX{gZgl5V`Hgu@o(9DnOX3UTU>!1Sz|HtRSjlQFS5*028ZG$w?c$00j$;ueKMZsY5 z1kcm+hW}TegIkH*xSZWROs(%Ney1q{X4s^TJrur+Yq{V{Wh#8g_oMB|WJZ2g*p)4b zL`XSGh6R0Gyj?jjB>ZZl*_}1?@0w3zK_>@0d8lfUaQ^M7Yu|OXL9@H)j0-rF{)pRKU$+yc@6YBe3rzVlN7qrz8J|Ced%wd9x~sLgSa&+u%?^-Q6v(YSh-!(HdD}4Atqp8{tT13@H?QQ zMH(jd&5h$vBJ=QHm&XO3ExbUrBI9{`tsea?lDyfluGddhBfY1SbvFEQ&6wd-DAdY+$AUhU5>WO`t^Sy8iLj=j3=h*t^VqMohdUHFTfv@i z*aHI-z>N*^{Z{t-`>dbLAiee=Wl5x){@NMoCw*OiuwXhFi{v>49vMv`D? z8VQHTEPj}yw)XUVoEh+1v2HlzKw zhUgfc__9JLqn)gi6R(Go#d-sO%8c8K%9s04)pk8JOib2!UVzZ_Lq~mY^*-T!I#l9E zdBX3*LZpyDGMFpz1Wc1)H}XVVWuEVz=PmPJ&-%f)lpnRb8ZHtjhqthP$hm~|rntZ<`&_^`9=M#Jh zW^d%=5Eccx2v5t(j@b3prKCFnD(QNaI{tMzqj8CvmZ}*$_Z~wY zPx^j>ubdQZmlRr8DDrq(KojG1=qpD6USG!NV(KO|0sFpm3fZ3(@n?EzZZM?DsT+q*PK4($NbRn{d&(9!xot8BnXkGP=xoqi+ZSl}Fw> zHO=>b*ZC%x&39j4gYj<^YCfizJPnyeS1=W$$G|esQKIEyOce@P(`nuO@CQe{Gh_TI zr-f(`NPs^)T7KI_=qpv4MmICW+lL174QYgcmUnanu*fk8Lf(&og82%70l<@2Lr6WzBTuwteT&4srM6a$ z`J<;t;%O8KvMl=Iq(lcLJ?#=2H~T+UP;KVu@z(y&BZz7{F=}doSTi_8W1?OKf8oLL zMH#d*vTWSS{1s1%_+FFjblx{>ihm`Idx^pPsb>7$aeEt^1#jNAl_brtU z9d%uK@m@{uRCJ2PFGv{BX`{R}2vH#t=wV@Ob!3o8nh_jyt`Ea|3^`pZBV>4Ab0I^W zx(wy+Evc4M?EaxCC3CYz{ZfBdv#<;}zjDV9AZws9Xm0a z-arN!LeJBhfs%#!Ee6NC`ce!60^&LUe{0k3)Ia42Y9omChzhVcM`6U#);8<3PavUa zt3WE2H=&~qAKO+AEybWh6Io#(%Aar;vFNUh?6mx6x!%G?U@U?{A$0eO*gEP3cY@Uj zte@8l5XQWyqaM6$m?_esNpo}a2MtZ7=<(UGb(_t1*DA#4MYn63BI6=J0uDh*e@F<8 z54@8RD5&fXHuaXH=&2R4%(Ox`#uuliK!Qd%EjCPxVbbasa#JdTOv%-wGa~{*`e7uD zj5?FRQ z8Qg=ImfBKt66-#O6IZJ$Hl!JIDMa3Z5bKfQ2D)jIaIfPpd&!gAewO7D-vn1L!hHID zl%r!O?_mebVD^)@sNX(IKx?VAv^5oPY`)tq(oR!$qAH6B$yzpFi>D7c>A*i38+zK87Avo7 zg>203fOwHf8?^`gXQ%1F?0eSaGEHl47Zkr_FEx>|b-0hI zIFoAw7mQJFDVbWBORUgG1@oMx(~a?mN01yHV`+_HQMW=41ycS8d;*mhOyBwj+o4D$ z=bQiN`DU5BVzz64&Mg8=+*ns(Urgof<^Cp%KT0Y>J+ff}QCSRdDiU}jU>ofutOXjz zn8CMS$)G!&xza_?qb!WsNKP}5p$pR^h8E3mnCqeCgr{71VM#(999^k>gZ5Lb$W%mN zwY+oVo7XDgYc9KQY;B0hDgEC9OOe3;iVkNM8nJ$krlm;=(nE#}O6#@YB=a^oj6;p#WCcnu*(qs%8bC?u8> z@?a*q`P7l7Ry}awz7Pi+A6+nNv|6a5mXHqV_|Op-EPcr5>I5#-UGSNO12a29-n>Ht z_ho!8?xq@?(;PEeLhB=W5E%*nl}7KOg(z~!) z7wI#Fo*hS1^n2aL|JFl{Io4l3+N-GDa-bjnT2ZFdHl?V-=gkA9HX)i)SrQ)iw-1Xp zGgN%;zfMcfkgye{LYc?9ML}v{aM*U-%V+`^|@f(t;*Y9-2 zASiX9^Z8z;k9#EZ!M?OWd|Hnf=j%twFP z#u{o%Y9809qDzWN4xNL3W-ENdA9ePfkJyD*AT%aJI^X{G@ZAWWUyM_DWT_V~&hL-c znjG;|Xo+?lF(rhpa&b}>d4yCLZPW;5A6;^-E~cz}of!WT>3?%POZ%9km9ZmOAoAK@&%>Qe==5nUL8y`z_%K@cv`G_crk!Q%`yU9S|G52KTMOoB z*3KC=@@;%)RHATuBY);P8tO%twtqlFkvBnQ*2NUhQ0QSt-<~)<@Uhry_U%X($rLv_ zmMlEYbU>rvAWD16zJGnQR{ph~{Qy}PH@Wm5;mkhWA0?lEU08y6(2Bm=IW;OH6YON2 znaWCzsbjm(%yJ7-xcZlYYefD84&|~Md;CgUx2yOn13v!*$72F5sz41jAp4v71|QcV zSWvx1m$J@s_8pnr;@eaS%!9VB{pjD_Lh7+rO7nuJ=Sm33@H{w$h~3F^Eea;s`R#BR z=#Pl2FdAbTU)X~pSHYMy_#6h$kA^x;u|5WeIZA8tdW;u!bfvBEO?;F&7i$5J6OB{v zTeyA}!>5gBU^4(SE0x8nZva-Dgu5$<^H!!3a_GC1xBuj}0$U7hR z23~RS@M=C^h|?~wtn3X4GoH}X{g!~{NqtlJj>O7 zE?8mh@wcsKBlXaGJV!(xCfQ;GV1pOur+Ie2$3*Iz2iGpFS#geVX%PnTkz;AxafkDK zTCn5o{VNSG5#W-WZp%J%dt=jzi0BraP>fHM^B_InNy*FKGK}`B+AYgE=YXK<3q45SldQ`&oeNSh9+u1TX1rL$ZVm6#KFou60ygjh^ ze~-mt1;h;5IqaG%q|u=?6853hv51w6&lT{VxB?)NI*adSnVIZ*ks4>}H8Gqf&B2Ev zzE_t~m%xrNMIAuzjQ7Xuq;_i+ymasYl><1K0FV}zN&kZBFz5dQ*`)^|G?MNSN9XFV#=XVIBpB+`Cfx5|*&?TNM>$?w zOY#uLek!$;fel6d2H%EGIEF3piiFNg2FIBF$R^+Of&zsvo~xCgSozIRHGU){OaOyI z(!bU^9^PviSy?SKOEmR_+4N!CQS%SqAdllRKh*U!$nkwDpL#A#(^R)bJFrr9BoPM2&-+x+ z9DNTK#(hk3xqMa9@*Po4v}}G5mGsX|anm8V;jU0LCN2uQMIg_?CO!<-Kc2DxIrR3) zi|363iax%GLsov$E$5OE>+iBjEZb^UYM1I4o+D-|O`K0iXE@fl6yLmx zigFNYZha|MGA;s9(k2DRcmHJn$s0mGsuZ3r1xZuL-Kr#4H= zzrC{&QK}XQqUY&N%gEr-u5WNRa;#&!k31a7+6I&SmzCM0rbiaZ0GwWF$x@skYk{%F z>*cOQGbwW@su;@*g`!I00k-qigs`vl!qk;KeHDy-VDCi9P&7p$wU`{&*?e@jO=$3t z;8qARh(7)%gk>yYmDl=4TRH{XN*kk6TORbJLh*wWGNe1>jU-?A0~)Tcfur|}%|4t& zV!V?4H% zakAHNU-3x_c}seBD(rw{A}LBa6J+d~H`jaR3lxTd7IO!tpUwT^oK~ubg)8UIz6!O# zS&EHqt#XE5;KH=n6;ENlvju*AdW!Pi6!E(KHU$+>#fX z=7<8FtHL$shgOU)a(*u{Qpbr%IlS&{8{5*xhiJACa@mv;&3us+57C-NjHnOWsh@pn zru+VuEkwG@^drxhs?vC&EiNRh3I9v@giPmjfod~rF<32-S=&GDo!4sR8Gtej{Gefx zy}qfub}w*+#>r&EKulM!S-#ipS^}gYrP7`R?~>sVG7C(GH^Rd3ff9oEQFO9Kbt*y` zVbXaY-wjYq=Nra$VBqv0R^Ai5ua5zas}me6wV$8Ct>NJ+jiT;jl1Awl4^- z%|p2LWt4{wEU^R(!4LjmZ75A+tumD@>#pU5gw|C0M5`@480$Qyot8jQ>dST<_j^{> zA9NKc{ogHO&(ASL!azPBwy&uf*%Lu=E$tn*xN8wgyw^P#xVQEZV}6p}SZ%{Ir^3!$nlb|TN zr|K>@e|t|ZGL>ybRn5KvdB`N_H)7?)MqZ7*8S@kp>Cc`_!UxtZF|;vVo8VEA(Cksa zLB;%hmf_7X6|T1+?|+ZnwLVDTa~YS=Fxakhxf2rs9%xBgA>z-!wp&+dsywPY@IEtO zAthM~B%|vw_-4eQ(bs9vg{6dLn9juDB!814JK=f635z`A(!J&V`(a9HUg1J^+@H)+ znN!OQor|V6IpNeCW#<56;&8&>byu!$CNy%clbghk;tJl5lfWwQPg)TJmaS)^^=}5synke=QYRW*cC4 z`(B)3z#lWIYa_CTx=EvF0oinYyGtl?sj7RBp&*95M|Rxx+A7b z$vlYM*w~A5b}TP1k@Xr78bA1Xato9_^#;NiwC2*>=U-~pE&oOYN(juVifU&3b)g`k z(|Pf0Y96ry!*npX*MGqG!nxd9jHDnb%rh5HJGhvg538HYT?~>joPmA?fFn)UfU1{4 zS(9(K|7RoZYsDr4wydjbtElIvx7IUJH5Mp>v1$=m6-{9nCDEnciw~@A$$wT$!%dSS z?W*Vsy(?PfX;@$&Xeza+5>jKTRyK@IngnB_=^zs^5U&91gL@!NXo4vu^_?ZKJik>A z3K)QXmMgrze}!d5*>{wBA6Js^gcT{3C;gKJ4l2zfYHGLJ1FDE$)?#tE7E<*yE<$zz zW^bZ|Iba|Q*M-dBaI-ErYcW}hopgoNRM?b|XX00~yJ^i-m5A^8y0?A)V8F`G0nyMH zeY6onzi}j3%0knizT*lxk&@BG76Q42oDOoe@&RSY2e>@8)yDrIL!3+83$!nN;6yLl zU{OIQyYP3l?}^#o!x^2X!dN~%aE)CW;#sGwtM&Rvp|F}7UijLfO!E&TK#${#XPF_9 zS~6v4m1=Yd+0q zuEw-UZ>-NdK+m0la^#H8Y)ELF6V%{_mR7|u6(Am_h#N!^#{j{3{BG}SmfG3r-@`cU zaeq&aFq=r(9H9bg>Cc)DZL~DOf7l5WW%r?$Vz?`*MeD7;9FQTCHaVJl;E@9((gi>B zmnd%G_4paLXVtffI5f}YpQJ*y;zXviv_q|FE z_gFOHGFTKtN10Jnr$=VmSyT#8M5ZwW#-R4!7UlR<2p(QwT@>de`G1nsSGib!zuj>M zr7?x*lC`b04J90Ql1C1|;}BupWc~6QsHX~y=Dd4FIAtFr!;xfM?*a+JXWEqCY0%>n zvWGV6(x;e>(N#13B|4xq2+jJ-XAT)&R{c7Gf~H6;@{p3|Rf806Zd>>dD9_Rq{yI^P zyhvitu4Y0OV78FG<4c$NQNOjZG)|+(4IKJDnSd5UQA+XwnXsrtFhTwfkBuIkT|r9< zi~K11R+eCNOmi$nP&M-ClgOiB!S_!#)nff6l++sbaI8v5ORfvVf!T*RalDrFLAM@V zh{NuNgbGwf9{iW?R8OUbd76XQ!6!Z!_U z8+v)-*?~QDJGUO0pTv?Nl2GZ>b2%;zJZ*H!_bMa9!%+A3#Jlo_DPd8+TC$jL>(c@^ zRPAaFJWVo=b=17E=q_-NA)uT04aO`q4XA78#hepw{Sn^w`6EF5O+MKY9ntUjda?y7 ztNGLhio+a0h(+gK@6p|ep*)a#$v3BmD9D^7@hl?59+nGu$Wjy!UK288$Wnv=ANxOA zmHofJX=7??3Tgx;K^Eq?n7}o^j^8XF%T5c7pesm54=-iqIo52G`0l-SQ& zvGG}sfAY*USYpJMIUgK)o0?z)Nl&@Q_czltc?PLt<>N;r}h0I~G(~ zSboL^XQNV_K@Qb^p30Sh7jcjlpRMcz2QHk6w@w%#XH}HQUXn<6kfN! zo{oBY1CL);Za#rb#HTR}&{#%U*LHkG$ah6WmNE(UvGRiu-QBNtPocm9NI`-(19UBK zCKJm;5matZ&$Mq+S|;ww>DYUCxC_Em&rTXQ_WN2=KNB6D%}?gmF$uF0xf~v)AA_dq z>5p%Yi!)H4S(I{%27!&D+NgoRMx)n@&7hrvpG)`&Q?*F?=HkAi)$Dhs{~1Y(9jqRs z!;6B>4X|Gloh=1`XB7Sb6d<`V%FT)lunZG%hV=xk+dQANV2XGjd8h1>>$+bocTH+m zt(%>7cpn2Ta!qcbnQRMC{R;i{QEX_5kXg~49K@{4LhiQ}hS10j(QasH-)FWBrW%7J z(##set!PtV&!Tu)+HF{WeJFhJ7n&zx|0WMm+X{!zQyvFp^3wIQtRy#RL8AO;Nk=^K zx-DK+ozpVxU{PT7=YR2<2k2QKDEw+R&(_rR!rts#*17Th?~Zi#Gsl~m4;2fazBBd% z&uMe22X7*&Lp@3wEtGh-X~V!Rnr!-*0C2|^$?DqAGNzhJ2<+@CP~s}Z;o2he${=0-g$etPF#B{_sKDe!~?qM4^D6z^hsAU6HzZ!;ysCe=?rC}F^tXCR6 zATNil*x0`}- z++uL_$s}9;iaNM6Kmaz@*4Rx{phipi;}G|!(_zXN_aSfw5CzPq^a=y#@`n|JKM_Y7@yY~HkY!_JJph|`##ndUI&_L&tepKzzJCDdcBjf5(K=UnevT4 z*mJy(v2Q^e$$cNtB;Nt6auStPZJIP~4p#uRXG(HDpUqwUT-Aq9pXPv`Xb*)FizZ;S zif@>GI>g24)5M}J;xeNu%>y{GIZ8hF;$7G62R&k>o?Xse#Q$J;YEDkHYl&dI!SPbI z{RMy5;lf=v3!Bn1Yk@xbc94mN#=DcKjfj6S+Kr+3rGFSVd;JB%|9+nk|GJ&aqfh$I zR4lp}o|TrmYg6e-wHPQvilIr85K9GnFv?*|l%R>dC*19pUTMdfrUsn%i&Z*nxfZ5}uPfl3Vv0CN3q z_aTJ#omm{vQ{hR&uN*!oyDxBcixa0bXrEL8V2ss$J0Ea&_^%Sw_smNH0#jc<=ha|N zr2F9oOSaopw7ZZG@nI`=)E z;{H?-qp_&WX))xGNVg3O_J!L3j={1X&_=_y9@vEmVU&M*0MOqcBSygT3GUCw{09MYlKfAggC0Tnzk7ig{lAL=kmi7h^+Er4KL8hmDHsTa094PmJ^u$G z{trV0v_A-;MM(dH68{fN{7>lvd?RF}>$MJ>rY6r1^G*D-jlbi5HveqvdLa=XD>pN5 z1tdMho%+N+(BqQ>iVC$GzI7)*uU>99VGQ7ljoHyb*I&HXs(um^FQ;PsoBZF=Wa8^9 z>v{8~IVDAN!6W0#p(gkhF<4f|TBm<6pOc`qu&XP-`ob%vsgV0FBEC}I1K>~`8L*!lc9oi+Y78CLu zvKb4MPyYAAta5cjA{X{1WI4Y&xCDGZPZp!Sjwic3{7+zM;L>^h(ba+U=i3 zTkTlT^9uiq|7p#>K%L+HIuNAO{dL#fr(e&7(rYs=2qtclibWa>2rGFk+FvBPUN4)1 zUJ^_DEg#%RGygusqFciMX{QS%7kteWe|h=*=lS&C3-sR9Dibl|rL7A|GOOn0W`Ct+ zsle)-vaQYggY)99$W_l1<$nszrxg>Ee~*8HVpns^SCjMd8bS5O?fer|-t9I>aC%A(DDoa%l$0F2yw+d-s)b)&DO!$=jHGfUWv5I} zvfrenT%~MtFO(z(_lB4&j!d#1F)6lQx}MjvaVNkALMOQNYHDm_ zvp>ts1GJh1C(dDAZz(0`oJhGxzf-WY6Qy(|0$j`SPd!1eU`OB%8U~U|(sA=B%0WPM z+~o?dE6E>qK27S6UOLU{RL|rdJk9mRDFM6Xnsl^y{m@~|8Y4h}`JEeNE#k#&M@YcpOg3-Eul#F=FGIJs zoRT55RH_Rl$jC1=+wM1KMsi-K0+3Qvhp#6GOTYaR^2GLrsH$sROew=9`ROm`SOI|V z_p;1s^A&;v?L$giNdW>*5TwDSLo-KSr{+y%xVV(7}8?<Y|z9!j#Gb0IDEd+#fdy6AeM62&A`E8b=%BR`06KZN4 zU_b+!v!(}>7RZ)?aXSeMlalJLc!--9X*{aLaZi=4V$`l*T{C9XQ^SK&%UoG-^8GbcqDnk_5XWSPWdL#PM2N4<#&i9;A$14}9Y`c`7vR z>PQC`39#b>)ceoN4tR2CYpUDdrAthi8y}h@^!0I`eMJzS912|zhHcVK_!bBbeM%Y0 z7&rL2-jV0>=T?o|^6Aw(=Nf+qpzl0Gfc=aF_jaN?T_B2~F+xpp70tpN^~jdBsZy>;kJ#KY#HM*xSy1d8u*f z_P30Z7=jBQaC@4sHs<$&_>7oPc?;uE2t}T_oxE=R+uuOFI`vD`PDM8pvo-$l1};^W z17CqkeAHJ6n#1Qo^2o5Vt8gt??{a?m{7lnXMH@N!(W1r0=90)98`}5CX##y$1CTE} z70H_iIOi*NSr=ppIEe3Pt*xNF#!NgAw;kVAhRL-l1AE26tiM31C%JJXKu4E(g3omf z-OVH}kJ1fVrNKatt$~Mk2yl-DAot17J}n?p#U zep@TwcnVfe=}>?+(-KA?FL2%ZmfHltG_5C{WkR!z5W2ukjTQl9ka^-@qU=XQN;1>>%hIgEEj)0CpYd` z%}R{vw$yZ%zo5SaMrWVIvKLd?4$(ZrwOL(m^=d~R-<|3Zh} z{0(UeX+LAdDH7pMiGJ2V3e=5{GFa+!+`?z3=9(m>W9AP>1C;*WPawOh@lxI=TRoI-$$j~ddvE4co z3#H^ZY+S#IfEf>d*n}{83n!8Z-T`;}<2WfG?r3q?caA~~J@YsdQ7sa_j(o;`HvnLSMJ>Z(JWPrb|oHT>M{FZf|daYHz`;^U?GQmw@Yzkr8GAwHFZZ>%@oT zayd*?f92zAnnH)5?7zgeFT|M8Kv1?MWLgus_$~T+d)KlO6(za_1@DOpk2><;!z3a? zQ80VzYhF%>%2o5dxHlfZkS;Oux8}-LRaNyh_$NSG-1;USeV^>;JK<4EOG|euej0SV zh+Q)$xc#?|PHZ3P-SJE`|IE2hL6}Gd6@cc`hmYM`A|1a(KRTDcf$p%ucLyb5AmRnE z-yIRG{F?`gARgO0s{H0+#upQYEX6o_wjFg_LX~m}!t^-97abz*&xJ9wzB-9h;d!Wj z@mf|RoBR1g-K+~u!b}@3D0v4MMk(IuVsKkj*HhvXXBWycjE0DDV`@-(N;7_d+;cYv zTZwfNw($ts@7lQkyO`?fGiY(lY#{4D)a$T*X{_YoI&gX3Ipt(jp$`kB3Oamlv**m*fPZUPTNFOF zko}ztK#CtTES(YGod=90DWs)iZu{A4_5XD%x=tsJ-*-~V0X+`=I0=(iV1zlY?>OJw z#b0gl8&Q6ah7QimaM#gp{KaT>JVfrbK}q5EO_Nrz9btUP+ieT7v%@ z7+=8YR(Q2yn5ty=c3O!yR2tQZ4Iu*ajc=lz{xr0noUIALltw!{B}=U+Q^Qtba=Z39 zjo+e*ACrFzRWdgNl-D~20r6EmpRv%_6!4(jdSR0^w7-CI8_=b>z*pzha2!)xcJLqB zd~U!&Oh|~&qnH(uGQ(H0kMe&&S0aLlh#@PwkYioYhQz{OWVMh$@Z{zt9Lmrj-N(M# z@5h1&p+j%9oED@waey}v?!UK6An=6lY#Dg_e(j^@V|$;^AIs1qt6><Hm2e0D(g2-Dbnr^G6iQ4xc>Ve&8Cd5^EQE zpm9N0-g&;|1VEGay`*{k|1iE%P(>D}YY@vUf&WeO6Z2AkUF^FNZ}9;gBOo+cQQ+5B z-mLw7gDZq#*aplws~aiL!p95el(DR7Vej3he9VthPd;m zPbkFJ3HASszUFW+L+0Z#yCV^b3&-Qu~sD7hr3%wsNE?JDx5 z)@Eho(he2f?$xh6wOaI!@87*Hi}?U#pQ?s*%Mr+r>6!imX(z1X~ys4!nGyN9KsEk{Fw$=eee>0n98yM&}UH+(X zp^^xvt>7xZ$(Eg%pPK`mRC6qYB^+;8mY1KJo4(5?fT|TL)u>(1(Wcp5+fHUH59nyh z>1Z*ywRM(f^kXV4;JTx>p-?6AfH-c|ymr_zx zesIc_ma|!H+QLn^C#_TCVFF+Y=n6o|Ju$PsL?Lsav4uEr zYiN6KUGC93ldnA_`1)k`buEAQ`%_wTihMaudGl3cG~4_>TU*moddG%IhLn~e$gP(x ztADYitW;T+Dh1@|n^RVP4uDhgs;a_Y>KSh`*P?$<>seixBqn^}rcANr!@sehDJ5t6 zJSfsDZ-t~C*;8VGMSZLHPTS!&fn+IJq%90xp>V~^l&d1kWoa0VRUFGp{Pn>Ac=I9N z6RbV|eJl{Jxm>wM(FLsQK|?@crW<(J1F(3Yo5xDFLKym+C@HrlTIa7PkuKq z&mIBV$X|=3ep5|{B!M8``)u^UOe+fXlIC9|_VjFdSaVACa*7p1Kw7{X^x zg#V1nfCC*Z{^s&sf2n3N(4Z9MMRgf*yE0N>$H(n3VDQ^s3mAz<3G#E-wwfqyvO`x| zPD_{pq+13l97Y#3Ixr_odI+y?kuik(BTh=TN^|?h4sAFKb%qbX*(|C@yw;ZUshGj& zqcm_$4LoG$!E}IFXzBMc_FyvMCcdEI9||=7RPoH~F=nz+a88S@5W_=hmWUlD#_--) zrc?J`o}dK|jA|}>E=N$}v)5scZv}$bp_>5&cMf)kBpLqP4udJQQDXdjRc} z#ud%hwKRROF>NE7So=R-vWEw7dc1Bgnmr7w4C`hO!-N4Kvfng!3I`IiC{a6IpyK80 zquWxMy3cM{8zV$R@cY{vy0Otws}rsd#MF(rIIDn;6eib+Midy9&X31~0_ zZS9Z>uhB7$X98%+F)$shj^OPV|5~S#`f(!Jm!`@$o!mGZ2Z--%b@7AOEh|91Br`X| zPv;5qhm=cKE!(&_DQ+Pm1|QDF0wFm?O7D+`F`KMixd(|CXG1J)Np9m~+IyHuWu2iFXPB?5(FLjcp(rsN>H6JOv7dS+r0`dehaYjVTD9mqV2eASOq zyZh&gzABe?#xsvt4EArZiE~AF@v;^;8?lH5lYh^~vJvE+C|biz!AgUHT;y8ArhwSX z>+C|Pdytu9WRmmI{|4U?&Px%T*pKcRk%q1lk-0mGt*p?7!R|&)h-cCBF%8xgI~nN~ zX38c*P=S3|w^jicgBWavb0dP8o|K0D6Ab#^w;Kmd!_SPKWQ0U=n+go0{u&=2$EySr zq%`b#^@Ztm3S^Vj=%Bh(M(+cPvRz|!bIDPL$vj>pFBB!|9d+8vM#OAbq3j6Cy8AM| zH#9a@C9Ol#y+w7GhRyP?K0itu$L|oZ~Y!&d~NU1&0(8b{|vn~nCm>Aw$%LwgX zGD|%l>a2Eavaq)IsXSweiLEYSATQ#V#zu6Zv_Fk++TsDn7RE4?%YzG;`iAQfUUE$- zlXJxi3eJ((lGSl&4!J7Ny=Go-@cWgWb?RNIMh=<|gp!+WfdYz{KCrMrBG=7_vRtFxkIcp~ zQ4y?;(4J=f!C06UI%8ry5;t-Mz1qp*_BDy!{($Y0%}?_r66G6D@XG*U$u1y(5OF(7 zb%#$z)!^dQ`2&&5>E_R9{}LKxv9$Gr$fB)+4~k${*0Uvk6=p$)LIiEVcv-|gK{7sA8SSKTSr(XdSqApnlu9J5XJNV%7;Sn6Sx_4@@T%xEOyH?4@;@48i!}Sz zfrpPD6J35wEYI}*3tbSPg}{HIAoM~iCo{?*{q}xp2KWsKxRh(DG_Gi#GKZN}k`{U5 z%?*8_M#}Nh?kreL3pfHT25}N{^OmCAmyTP7S`v$ z9b~^^s*jz3p>w)3si2V^Lsf2A6sTE*Xg8t=e*4c%oT{BgtjD%;i}v+DLo!Ujw&y7j zP5gpW{a6r~pFKlTgl{=AUGjau&gbl3&)Bbe%&(Z5ih0$RF7hFxWRT0qxR8w762dmssHM&Wr4>MU-l6t3|4Ckpvjm==4{+G-k1(IF-uIydSOj)uO%?9JO#0Op~7)T;H#MK-$)F{r5a2+6I4fM<$zIBnF`FQrCxAH^fXW!$!odY>wiJEWDY08a)M7o&6tm&BA0lf`YPdBWFjVa)h*L-*D221^LU8kL0TM1#66(Uu5>Y%j4|ta@}ax_l=*?v zXCp9jt!)i`1WPz|Wa12_@rhm~Keg|+5|4B{H?uFCOr-Xt-EZPQ7ki=`gDS-zZm7B- zTX-vxipqH9-94PIj@kv$6Vr9a=&1cH_^S@Ur$58+hz2tCymwoVTG6 zu(%St>Bw2S7Dw9mB+CN=nO zo>HVFc6PoJ753l3k-MK`zJUZ{HEPoqCrHbOk*h}DBRZl8YcgNLY}I}fM(Y%p?~aJi z^;CN(<~u7k@c1N^uO(~*L~1sg`e<{b*W!C_h~D1X+hG&S6Dodme{3cd4M!*?!scSJ zl%B5bRrb|(HSBOmlX*3i+0jB|hzrDlqx*fG$qVVOJ*+3&xhT?77x?4*G9da?(qVVC zOQ12Lq8<8U#8bL{hSlUopbkjuKu*amHW-onp+@AI+weBpafa`PZ(JVQ7`OX|_Go~X zw}zKFv%8X;zgUyo9On(YN5Vh3W)T}Z``;(AM`OMu`k~PDGF@&Syhvh&16q4(EUL00 zE2`w2_NKpw_#Zi>!}lhB{`x+*!p1!@g2E-wyo0h-I$E0fsBhmHJw4TqK)l5p4)hXl zFcf=ZfXw9!gzP3Yp$TGTa?(CCg@*Nsxxa|$ z?adZOJ(q>hvsotDn`{pxofRlfPtC%KyeiU(+PF&P43Q2#pEDRcrZ3a2s#nxt|3fY0 zzVjOckGPfU=<4X#%)_N%f+WUI?+?;f^GIou(rJAVuGr?uwZ2ov8zqWm`Jt-jc$`fX2Xkpej{5|+#K#kbN5^ZSN+;8iQwNZ&1j*XjTWV)rVU7 zU!J&&m8|bPuy9>pJ^J9OS^#owAU>%;Fd!Kb{TL6p{wa8tGw>{leVJ!&53WDT$(4^u z*^*d4AALj&IXMx&x-%~D0nY%j0~frszI<%ym9#%Z(Ju$#N1^!3-45A#TbLhO+Uv7}8 ztA74wWz|wo931>Uq59OyR+BC69j;mA5NGhOzCHS&98KR&=zi`}Xjq>G}XmtjMD3Y@QqrOZqGGrl&%U zAsQVwq~8}rMI!h&rPqI#3gKG=w{2zpL~7Lyy!QLBDnsxjCi?emc@qvmU-~6JskCj0 zBBs7tBjI2#wwJ54RMzjFEIAbZouu@DRlni}b%eE;uTFcSWZ4GHig$ExRx;BTi0;`- zQOiM9g%4Gb*m9KpuNKMEMU*D)-{K(%)rj7uQT_}C93)o4M zu6GqYW?XFYMBL5*EI{oJnF1fm%Ff&e^vD7;kn`kOAK>^^QB)qV|Es9Y!_V(>dc^La z;{t4|q^x&`6$-ILOEp|TgP;9RqEE}`Tb0qUxI;8Eq_3aPXB8+*n@pg>hf>GXSQ$~# zg7v@eCnt9$mGqc6{sZUq(h@hM`1&MiaeSJG{?l<;@F&Z`r%aa)D6}9vW4Ojw?eE8WGWEV z-PmT`1&n7mQKjVp74P9c62FyF1d>mfHI|b!c)j98(QWPD8-f!l$AkL&S*(@F_^O7g#5&V33oPtD$Px3^e-+lH+Qrg0syPz+8AO%p|x%?GsU987c0hurh}Or1~aKGGzrI>2# zorS0K)-VaK({n_q)I6;F@3X%B5p(iZE)_omlc9W0q4y11T4KUqG!P|?=!`e7kDJc` zxJLHp(W=O8{pw8TSL&ML!mX3LuqBs*f?McUuOBf_K35C>01MSnzZMF0C?klbmMA+e zxNklz+$fo(T^A0*J4$;gUCVG)&n~MXd2cS9TZ3Y@HuW`4Q1iFO1db;kHFY>mKdFbW z;Gzn;aFAnYxJjo{Zittcbl<7Wu} zSDs2`2E-ik*>lQlEFMOe9Y+pz8`ptUSR+|4>FKr2!W)!?Hbku;Mjpx&0vi~y1PeZ) zEC$0{&0twKVJd>lbR&N;w)e=GwDj>*C|q3 z8(g+MJC*;IfjS-t3F^)(z3In0Z$>m^p<7zFD>`7sFzY{b_r* z=;C{>j_k?ZnrHWScLz`mVVdZ&_3t5mo{H8Rki83b2TVwH( zUg4fyE(9tAKx3JscO?4bbmh)TXA2c6Nvrq~KLJFEE{*95_~07hRbUhI-(+eJSDMeP ze1mDLOwh|OYbtD+UBS}o+AcRw$q0NQWoJLm=|0X(5XWg}85bIBXJDYkE*$s=nY_n? z{^eGuiBmd^ioBT6B^4UAEr3J{D^)29^Tg2IVc;PRraMc?XH#zh=8$usS|9&Bw*-<_Le}*qgt_Gc`vmiJTcO)3O z)L@U`3&tQtpRRuTe5$K6%ghO!(i%~CuR`C08TVsIzW4i^#Lp=(%Q4mJWieLwGth>I zFy7_!DxL@wc!MML&AEvmfkU}j+YNFj!s>ivK~i$N#X z7As2SB^X3CYcK?W9W!esbllf{HWohG4_r5~8+k6w0$myfb{@Q)p1Jk6d!EJs`+|Y_ z-^uoc*S_xK-3S(Y+80Vd{15+e>$E46A{J1!f--NueKuBfak&5rdMo0n8YQ}MlvPDB?P+0l7QEEr&tviO8JcF z#boO*+!UnYtk~F58sa~4=gy8C8NkhymsDaLd>?mP_3Eog@Sg(L;Akpxf_(N<3O!on znaOWOO-%ToJ|pkMHyYh0e{nB(MKtH*gd+$#isU4sZ$_*;8I!^)3i%ye+~Y=`xOaA)I6)lJKLsGogEry|lfMHRd#@eh57re9MT6uf)IoJm}V2r9tpI9&-I3wsGy*jH^7 zjcCM1W{KhCHNi`tEJzZ=iJ=VWg0=vic<ZU58AGa8* zXSH<>ENEq1xBja1<;$GG8?^*(V3;e}_6%qM&pGA`p0CX=GtpRP0rj>hb z&(lr@+Px(MouZIWts-X(;zk~;Y{jD=Kua@4j0k-BvAR?k8 z5IA*ZLQ}&0N>#`59TMBiN}&tk`|DpLq1K)3hxh#BuPmax1GbGrIKRvrzd-W+85~4t z;~2#?s0g9J7ZUrLSs8)f%E&%)Q}$md@0ksN;Qg;`-#_H;|8$aZk>cRZEhkME6T^^$ z($Raaf0>*F3IZ7PyP~8oGu#k1H??rloeB^-0=iT?UvL`v*d`0&w2hS4=Wb`2z6DU_ zz#H160HEx5Q%+B2jNzD;-rCgSQ^M)SKM6nl)?5JZi*Rgja5Yzka_zC37ahjZX$s$WOy^FC#5Fg zCEjz?Fg6U~HVW3i8jVdzJ;x#Duc0w~`j&z(uxk(L7f3$ipBiMCyVtN zmwUu_K;#pqv)Lr_%du)@uYM=TzM_bWwet__ZP*k0CGg!>8A|jRPk_uj0IzrTQQJi4lyRH{uB819BYfH(0Sw_lOOZ*wo4sD6bk?f z%->So2@>a!nIeefz?WKNlOv)1Lw-t4!u+cpmjd@F#y|p*4#_eDK=MJvK*wcTt?f-V46Vzc|WtkuF`qk*e(P2DhWB}m*TBNgT12eHDu zjIu*}U+iV0vkW6bkaz&z80a2XX5a@-r~O>e2%QTUC(rJ{8~?(s)??JWCv@^6`Ao|9+hQ>BCqOCW1l=H1wEYw52)J3DDM4qtRFIDARl75FV#Jq{r zHIxca(k4Bal<=4rb~Y~65}+UPaO`_~DSRx=Ak#f==8R~c*a6%?WVQ^rncihUxvcVz zZR>JD!i2~Z`;Ki%&Gd-Z@_cM*pVPanC0B)7%)X?pM|Pw9DNSLj_9J`I*-mhccd7$$ z!|vwUv%7x(5Ckf$OET+)^#1o*mYa!`rO9wJp*&3b1a>1GzqU~C7ZijWIa#lDA2}c) zs5$JmN=-_su*MwrQmyJlA8OJAf~?tLP&IfoC91xnEy9jqVeD8o;SKPdBN*~skQfm4 zl>Mb&ZvP1TK3?c5N7^d-3qC=Nac|wEQrNSr@RNCSJ$9Bi=-r|U^VtK`Q*?yRtf_W> z7o9(841yjyU1qq`LZZQQL(;M6u;c^r+ zy92GzYVXw3DX?pkf;D7Hb%c&r7Z(FVGN!%SAsmJsiMu1XO%U3CNR)GPqQe_>VaB2;Zebriff1lqnp6MwcW#^G zj?aQidv9sq(PdW?;mB1=e!-LCdnA)#aGbD{13d|yj56M@9HSr|)aw#!j5^q` zI#d3S;NP7gOIn#vQ>Z?y_@3;u2W?c0(MTzn0-TmDdgkLYK&?ygF!I7}wwy9L9-c7{ z=UO+7UfZ?dB(%bKcI0R(^9TIlf}zaTcS3wO|7%>iB% zGhdQIh;}&fYu^{>oMmz{aO*iKxPOc-Y(PAE>d{t20!k4%I4?mh}s*hh`!w z`6hO^Q4c3+9<%;NL*Z(8ssdg?-JQnl>#sSog+izGbo_j+vmR5#c?RD^PMuEm|G;B~ z5AJ-z=rjDGBg`wkq}QU#Inys;?Or%J z=eL4GrWhDkj#*$km3LY7BFT6Q0t`11Py;bwpZIx~rZxE*;|lwCb8W1VmEstw5!tZQ z7e;T#wCOsdK$LYE8y2$pYav4 zI0jjWEvi)0s4e^moW@uO;rbAXro_pBCRi>D|8RsfaO)6(GcxPdUu_9{GBpa_Gyy&u zCLuM0-3akp8}E*~CWJ!OXBy#nlSjPu-PmY97P(I7=hNZC3nZjUH2kTtkCn4s{3VmG zl4mD@1rNJx`T*?_SKg-@5#0VE`f_P<)~$nilJ>Dd<+tr03NnDwii8l})%V|`GZGu& z|1}m<&=2^@YK_2h%W|5a9-&~`;d1)H(xSEfffZ2SI`AfkhW`t80=jC9zo%CIiySm8 zeU)sLbX-K!AIsbC+>0i!y#Fzy5Q6A>zXQfM#8C!HO-$gcj#gFvqLwxtISLcL`PnB{A$ldfTOz@ z3E5G$P^qfpX?w#Bu$qdBz4jXZl$P2O5)lHb#hkjjM-IKMs$9IHltWJ%ziVnr8ykDQ zpk9eEEJCvwDk`e`RSyw^b~}XS{1}w^>390kQNrF(S2MHAca;cZTL9<=Jj~=u>NOji zHgyq36BCX=qh8^b8$kOP z+jv^^aifx~^(NMUnOHct7LR3?Yc5tW^xP87J0VAWP3_x1L z^wbO!6B7@ehdNOoH`MDF9WvQQOFgm@9k_;gfWWW%0eS2sWBDRg`u=FSeftLn2;@0% z#57jJnoXPJKs$`|teGg}kC#ikDtawO`U)UmIKQ&4Op`x8Y9!CEbU*8Q1`On?nwB-6><_N ztX^H`yTCS-oF_ALxnWw)x)^j;9&&5 zxE&~LW1zM6_Co+UCBT@Pwo}w|WUrWO5)d?Yg8l9XDo3aneZ9S8LXMmAW|uokEdT%! z4;Q-!L^S7cBkcbb5I3r5>PTCtcYA(U8RX@G#@q*5HCP2m+|k4$AMlb9m%AeT+VL(f zB1}xNfQnp#V4Gzd0)W#T&$t%!>K@qVc&Ag_;J)ubGVH!6sF7`NyPt8@|EOVyX?d)Z z@Vl<5XWQ=2_#@cW#k6I3u{5gk1Mh5uph}e#ykiD+NWlc4aGfmSiTP9u7w^)I;1M{z z*4_eGIaF&{*N=G57o~tv0~x@j64_a}A88_c-m9B`ewqWY{9oI%AEEwh-WMcgE;cs0 zPEKG4zsFEaGG7?LAtb550@mo$4PFNUK)v|K9y~usHT$W6d}x(?2)GqwY+^mM78DeS zK0UEPp5|@_KqAUxXcw{kaIq?=*go-dwEz7M@~J=I#GstkZ8RR4{(ROV`V5cu7ySFI z>Y!;ydkYv)#AjyquqC?$>xz|P^ZKn&>$BP{k$UfN#u_Apqx`qtFyH{5dHbKid5>rpM8MvsjK4;cbEIq zTn=hVS67*B^EMF18pUR@%KnAy9I{sHQcp@MU-tFJw~B@@Mdii$5$%xbx3JjkY-tVVVI#3Rujw1tRsY9P z$cOzYiVirNzl`nk=J+#VAT2Fzm!G(ZNnOW7v_BOS9tRbK*T|vZ9O8Tb*i?g8j8@+# zDtEiw0e?G)?Sb|hK6u7Qn^Y~9ka($X_)Vlex&#TSHp1`li-ooz4SX!iY47CVyqW05 zv9mMUFSbf|G}yU|vGD|W^3h2#kQ$rs_Cwo!QlugHQb)dcQwlP{Fzcmd2ME z^NT5RBVfN*lM(5ZPC?mPY^Kkr%Wh1O)A2Hgt)!w;hIbnU2MfIl4+L#?Z^2#MC3Axl z-zWP86_@>)ewsFVEN>l8PK6(3Ki@oKLJtoQw<;GkK6%47{w^RE-Ooe(2Z=vj+WYt* ze_p=pi4GoPMu+wFiBNDsV5?etR$Q@_e;O0o@)*5nyxNA2Q1Lin25p=2XCBwJ5|W-} zS)jiY^K^UNa9f=5(s?Ghsb;Fk%(~p3VLwNpJbO4S$`yZdNh&_ zmH}7>p&`Lt3WN-36^iX^Ya%ad><^X=#>g+INr(kZ)P{OFvovsnWJ~6lSk%wn2aFVNw z@&PAxzjG-qq`25xN8dURd;ldn(m8e;i|XG%iJpqjmLh|T`OJiNe3Mbnw)FV2qd!)l z#p~2*z1Da_{iY-O5Rtv{w(~pr*>}i*xfos`QA%ujybRx`;@;jrmgBW@lv2uzS?5i= z=;Ed(Cg|u9U&3w%njjdU7o_xkfqoHGJyd6jNjBb)vZetej*0@EeI2ma5nFA-gcO80gm5)s$St>~vl-(?jezw^=M zI~8$Yu($Mwai?``&?9>?rMIOu%P_=lgEi7;<^u8TrQ6o=Q}wZ`Xv!#GVoXPx%BCS> zouJfWkCrkAK!Ks`9z9)NUVbhK2h7VW=paYiw%yNduo(N|g4Hfc>0R-@JyG3A&@A@# z3V)(p{Z_WLaI?Y3bQ@qx0J>F7ATi=t{uaSaXU7639SSnjy!cN(=U0l#L z!J$q0fWga^N^s@x-a>0PH*}R?Mg|6katxhVkV1P!S@G1_Qm9sQS||!~9WMm*Uitf% zLRGaqa(6tmr(e?RtW(+R(*se6kZ>G)8p(rYlku+ZV6Ak(EeB9~bvc)+mL(V!h2 z6P8bHDJCKc359^_BwA7ATd`AOzFAlll$HuIFs#n@)l^s0a#0_sSzRU$vqrvMN;i`1 z)l$o8;|?-bYsYW_fgUbIpV)=lioAlqYZL3|RNksE3&W9+L%ub8tv328OfYd$4Qy0% zc9}>wUn9jYEJzYcP+iptE6JK~2mNNBP?!oOv&;S1Q*cU;*>_UI|FUX9W)L}uZBY;i zFnH1o`2l$YkzzsosqY|2_1=@diA~U}poWg6x=CT6(Cd z5lmvNpkYKb`5pomt_b*BYyp_~MHLl6Dn1^zmBF|xfgh*?Ms7VLS*7Er`TdRp{aS*8 zB=r3M29N zn2aa{+0J)*UQj@wxmR!Ci~r-&DBuYPSn>_xt&=J8DX1>Y&z~MayG~S8#)prXpu`T0tn+k$Yyo==VNc+jJ^>>(#V>u(#mMIP9s0NygM)seYdi%zMj)u z=MmY0Kh4CMDlsDg6N|XmsK$N!2+F|Le|v8&@wqY_?f5E~hGyI}w~kkho~7`i7jHmB z|5m?el*-zoGGIi(Dyg_3svte*BX7H$-@(Rpl`CiKwvboifgfcLGxwoWp5hf>>Uq?L zB{yueG91J*`*;_sg+-=yQyV!bqzPXIR(ND=3)V7G=!wAyd>hKd;`PmE>H*DA+%IgG zq+?w4KH#USiikF7Wc1$d2+y(h-@c-K+S#F109d^)|_TkBrmn1W~T1Q09wV?rGKHs%B%ojFkv2%-m-1P&qs*8>gp_JHRg?5S(H3iHd zq^XuOi9Hj}HaQrA+61}&*s|mWkNYq}o4zms6fmF)Vh0C=9d{;rM_YxGwXW#M*suVX zSVmphQsu11pP1{cb`oF#Z>;3rD%^PdJZs!noq)9f>ZXrTHhHesj+yi{4f2j~p^5<` z!`#}{7Ibf{(S)7T(&Sq&e#mdclL}VbCxzF^M+U?Wo+GKCs#`4t^0Km`)U-5GA|el$ ztCK_SpAE@jY<_}eU{Wfg7GZ8zJvbccQUZ2k+3z%-gO1ixV zdHf5K{jCm&sl3llW#J=d=W;lDd4Hb=WlM{Xhn*<7KckKWd-TgDujw(LwVTKS!Ny;T z7No$F_pu!mls~%m;mscsQPQL1V^hC=70`4=_PY+x$)OnBM6vetZ-&f9PLAe?tV{j6 z(@MOjfq_%V;!Efc} zy)pnfz-uH51m%d#B}q+gmeE*z7!S*xN;eR*DLKv2WK>hW_M#1bvpo0Z;P}nltmf zQ%In_$4>1^3eD;)l+%Ty_eR(RiD=%l*%;W^9_P|+WZo3+X)GV$weie>X>~+J%k5sgAYGP|6#ra6 zdJjzS*GZSaD4+PtVhc!MLp?C}iK5Eb8)|54CFrEudr_jcijy3s&U1gb-!Nc5Pu-4mN)+c6a@GFNMC8cBm>$#=*;TdqqM zS8D!s?K{Ea>2;602>eH6hab&y+&Qr`t%W4)!C=r9-n#xvri=)J?E#NugiUcMPQ4{n;knl+8(ZRxj&bC zy8-<)&o9g^`-dMCNAPfpeIY>|-~SdD(}-54WYhGGPpj84;Vx;@1?Bz3?o*-3soG$e z#?wfe8!FC|U>c?HlPkFb!qHL1QJpwB2QL+)j9V_WCn>L_@`qQPgLJF`-r3`GqOVM? zsSv`^NG>l4=f`yhV1SV<=8$_SiM-zsz)FXkUj8aWy` zMSiQBeUAlpzLa@mi_#`=;eR6MSRf0Cd|T<-rSZjRz)IKi@k&^ZvZRLVx2!&WmZQ$% zUCV$r3OMm!?3VCrjux`A@(_2*t~W(EbU#IP*t4qez_x4h^@PUBFL85r7PdH+cwG1V z-?9Ig8NhO?a%kEY&I;-YVb(7pExzdAzOcQMb+)-j`w;|Xmwc%dYpd*> z!gxpe_+EvVIT{-y2kkjUz_gpaZKHza#0Df9?!#)zJA59LjFvvhLj9KKi`rORbX#9} zT3LBoIesZi&B)lKi;W*~V1KjHxWnon6|JIL(xB}#fU$V@b_v~QXJ@CszaK8A6Kii_ z5h4W5NKGXnAT@tW04?2qnNrkM)OO>QWX!gr7h|#M_*;?0U z)P?P-QYQ(y85Fkrtjjm+{4`%1RJG%LFrD@o7eWZ$^p!26#z6mGPwAoK%mm~mI(ny3 zAZeyfhu=OKvfUug%IVwNTkzI(n98(_G#5DzPNFCZTF3s5f&OPhO-+x*H5wu2xs%-Z z2Q5LUDUDOl~hm0JmoZ0$7&lSQ~-Q3*X;UDv3;A5D| zW*iu)=*1LEgU^Fqk;69|(1vHvmea_zWvZ8ffiUxcB;5<`i6RHfv!223K#oU3M0D}r zZJ9NT9#4O?$g|&{pO>31%}cMmD-7e-i6%ll>b;SX#bWYVmieR~PMCdDE+)e8UHiIB zc%|)gYh!fNpuL9h41r6fevHFkhgWD?J8npPP|Sk#+26I*C8dWV_m@7)@z*{cWK4`4 zWH{bH=D=+P%$N3jLQ>kOwQbg!R$`_mc}HATHQx^f1*Vbtb_gL!#+$}CkAsUnBA+-u z;Zb!NS+@ywk{i}U0d}xldHxbLXC1c!w-icSd3kweW+q_CV%Xl1_SyC@Gj9A=i_PcV zHI`4?qLea2N^(pLS}7rs5x&w_eQ`gz@BZ|Kstb7oWdRXQP3T6?0igSvOk8b2VDF|N z>&22oG-F{~sxWLqg|Fz>HK1sHo{iJiDymqv`(;kG+V**_H%~^%yEaZ{FG6bs*ItH!}R> z@(mRK1s9s0ns!w+Oku@IWn|$h@z>?6J^0hsk2J>nFZ`koZ`@c8?B)ywhpU%!UOzK| z=O_6FQMF<&DbH-$7h7x-4VeZlE$m6bH4y%=^RQ~?N_LACQ@uCi2eWwWx#ZnEJQ`ZDgE{XjphLxTb1k%FX;~S*$1Mhi zw!mKBCi5+EXq*YjRMO%vn(i$eNdZPfXC5x@P}{g9hbhh-j(jJ|NKfz9cti`9c^mzS z?88H1vS!#rAV_*zQ;X~rS>?mjihgUb_NSQ%vs?!)Es;hXrXSAL=(4kw=S?>;B~~oE zLPWE4a^;HcR+Y~1MCL)db{qoVhO(+$l`?GT;VCJCMap~=^QWGqJ~pfQ(x##Ju6bg; z5!PSb@(Fae4On_GNbtN>;@CufR~N|oTo$y~(#?59jz;*q$-w}9s-qhI$>rq+$PRQX zB^U@&YinzPS_LUTh^JGOkBizFNZ3R#DU+tLT#cgD`|~^FnG%pe*@KT7+DNeDL!} z+Ph+Mpf8|dVL@6&US;6rHLJwyFjP=r7JG02O3s+CSjok*sC*SHJuMo%;@skKpM%q(O=4j`2E4-t^LKSNYeULNl)o%Do#VonoR^IAKlQe)WrGD zrx%M#Y~rQ0^5X6OkB`Z~CMM`{jW+NouA0I()VMB4+8)EkAeUZ!d3l*Bd~D3+3)WH* zxsTwbPfU%ypyz7N&DB*AiK{Sb*>~ez4`uNI@|AjrRTXhnnao1FV;z6v4tt$NA6^Y> z+hb$WVxt~80baoYIoE-nj=#SZLAm03{JeDS%jJM^U(VmV$RjXM#(R{EG<*lqA;8v71`!pyGgP)Pmw+G zu<~#_c*(dW%FfTh&d+%jkwW)+L@c3kd;l72Uf}8ZHmNTNFhLBuv(yA&67)=HV)a^Sa9r)itJH@U+RxfVjElmzeO#XyxJ01S;`wr4J6i z{OM|U(vj3hN=-{K*J)SWl^X5Fm7*aQPny;1^A9l_p_82;V*G^pK9Nt8uZw%MxW-;;iO99JB5ZtV2}l)r?qEq)|yb# z7g`OTH`i85G+dIO#*0Xqf5jNcKPF$0lA((K3%gi)`tcKGYwZj(8i$^_Nm{(Y zZ#pu|Y)|GW7qaS4B2ILHgkl!5j$HYjyJ=Kp@@N&Yd(I14?ELL}C8nD}HmO6kDfFt@ zLkZdihL8Kji?;E|$jCGc0)m29$cJ^n=2M6{3)pmghAy08 zQ@~q}lZ=#LRcYBQAhLL!i#mB*eG6!hEzsgv0=hwGU7P^KHxATm0|=~K-=LpZovt)( zy;ohSyFd{UU?)dRF=%znq#UVow-a?7zkjNt+9fxVkob^zyMpfA>Xg1n`sYpa^Wa4k z*+mJ$y`9df<03)Fa|y#~Bvy8TprBVlp*aNOO=)ojGJk5SmsphN*e}pg#3-rWxqpQt z6K^3sKSR8g${%GFm3RWKkkG!hW-knSbsV7FQ*NBoRIC~Ni?rbpcA>DK<)qe>1!6`N z{Y8y>Ss?|>3D1afyuo@;|3m;*++NhRah8otVNEZzs0&?Xl|wZUNQ|8Zm`FfFV!|$~ zpbypb&pQl^4$~t7$OqWJVsP31eri{M6j?c~_u<~2N!#QlefYx|<0V#f+ZkST^kG*` z4-YIJz8;_<9WQzSln2@x0|vZHu-d~?q@UuMo_=0!S|{IV#2~4HZ7JSfjc&%FR*}Rb z;6i5!y_(FwxmQ%wtC__YKbXaeLxo~0hq-Nce+UFpiNjcK2)q&VwcB}x{=a{* zU##O|Sy($~#sUmR#3J*H!+a>A+>MAVi|58e-d1Uj5=fU?w|}Y?D5h4|ean+L2;5Ce zrp*5LYi$7xuyON4U4xLP(5UI=yX|w zZ*5g`k8@k?7#>0rleRUGavPLO!03iY-Byzp*TUWE-qdnk>Q*$=8db}b^465kXxHoQ zcvadZviynPKbQ+?kJ^!%Cu-IUO|xlczR(-j`o{hUndT{Tm^zU8nO{|NRK4w8nl_hT zr{G~N6Q5H)Y2387R4~}^u6AP(?~Z(Im8H{;roGeRMs9dys@`r*PvfcE`O${CllP&Z z1_M2sRAj?JS$f}GkayUwV?uJf7`16^{#3U>cd3BQ-==Jz8C*F!Uh!AaVCsNrX)0?+ zr^0BgSr=IpekO>kzUe|#!iD_U<8jYi)24mBg@G*oW80h4#icpk$u5*UJx(i zCPN3NhHFcF18<8|*2p(XXKh3#|MSf*+v6+S%jV-i6`>jsT=>uH>S_5Q^g~4WnfF6N z{APCs-84%?Fn zwhqSw+8HW3ECTzZmAUnYWsa1)VD9mVgD@NvOb!h+snRppNrm5;I+NjKQu3AlWtceL zU^Px`Q@&wDc(2xi5n;dg3YWhN=g?0;oo@lH3-O+Y(o{`Sa^t~Q4I)7|O<`sl39aQ* zuVeFwQ72}uQbgYuQ24G!l#Yu$<0=_)D<>$$sP~oBSX$)3k}0>YmYS+b%r%byPOp$n zWEgkq<%H0R$?Zry9S4)jwj#18Fn%%NKuoA1YDMCCbS6c});$nd7M`}tQvDLYCqzQR zmO%bAq#IH&^zrub5Dp2R1;hxd#&ts*T zf>F)~n_a#_LH5xG0?z9~PlqiIH!E%!OYkks0Q!+}CdAY467U9yeO3`rxSjx89v{cZ6&hL!vJ*qyF=-9B0nwW6-!Rv!4X z9knR=@RjQP#**J~wVK`aUm5ayiLbkT40pW0LH^EEmk6CzeeUwL{GpOie|(P+$!$=( zar?C;ctJ7EcR!bDx!E1gvvw9SUcZ>>!7y0j*tmy80$!P#aGBT{Xb{$)!{>bVs%+_QRb++W-qyeC2ML|4d+UxIU52QyLA}|0R9-^v z`ONrux!yIABA?m3;};{}_RMPHC^pgM6DQ6X^NFYrP|rzSLKX73OvCQL?3=t_37;~k zeBX_sdQhkQaQeGPFZL;ZdiYma`OMDp>qoD8!crj7JtP9*?ppw=G)*XhqI# zwp>9?19G|zrzsk(o1<)Qj)ifEVqdwrpYll;3kya|;OP#kERA!Rh8YxKlRi&JcX+fO zbjf=!U%0;y{mv53<0vM2+e6Evebbt#Hh{bDl12@r=qmodvku>#e3tFO?<@l)>GrOF zO%i(y1St;kiTN4kxF%4O{m#`6Ah>_(6b%oMbkJ{eMW5g}!`sZba=bXU_ML zQ8L@nasU0hx#AD+h%v=Q@cYj<|4u!HZ@#{c;EeD>8u;v5jekLjV49^SNds;2oQriI zQojH3pM4i;kglAo<~Yi}!0+v^rn~8BUhjGh6%l=*tidyw4V@v9N@Q}A;~mm2#XFQx z%7O&|F2))2fs~jG3!8~eS30=08QLw0W7&0i(U0SC&_%MI+y|F)$|w-`sEhYL>&PWH z3`$ZB-fTo5e(Cp~c+*L?FL7O(+kq&#Ph|-gFVliu$zc(1CDPRk_^`y_6@SG>3y-ld zgWsR3D6Bhwt+lu?#gKo`hWOQ>hYr%V!%dJ^DeIZuh`QZ&HU*ZUH7noh--VA+T+ACi z{M5r<9Hb(C+wwg-xAIHVtSieqO3^P zI29ovIoTeUq+9K`!`p(7&A&O5xssCi$tW=u&&Zbl)%94oG1G_U|oEvmA?SMrr&)>QYIN!dW*ix&mi3A#}rKI~jvH8hx7d6{HPG$myWWqr@S zENsIGi_|iZOaBFHnCxI2=$3XP3y8FX=j&TjEu}?PN-u94eKx`t&^LemU8lQccxb04 zySIYJyleRm$@v&8!o0p+X9M{OqJ2n-RpAiB&KV_-B-gxkde78K{gmk#v(`B*L88;N z=9pF+xrQJb2hu)r*f=lNuNS{YP)wX}i$N~}j9zb6>p-{v5Kz8r?Q3~HA zrbW#~F(t&S0FxPka`g$6HL-QKyk$(MtE~0TU4#Xv~VrLi! zGC`9SogkvbDCbUD=;6y5HTjJO>+;*t1mp_ykh}ua;>L{+UM@&joNHv!X1p7j#n*N= z?0z+%%UpvO2O`#gH}DGH9gpaHMLWifBqVIjuEdstF)2#S7a}9={4!6uH^E{4-w88^ z1aCHaBN}0CRj%V&Si;^^$Kf%F(>j~7IIA3kBkWcrWe!lh7YT&(74rH;7Bg8E zkY@+2Dp3-}NYf0*VhE@QzkY~l?4TS|F$Q0LfXIv{L3_?W=9@?SPM&rH>KyWe2qVD? zQ@0*#uNPu24%s}u(osCdzlw1!cTazewWJtii({9Hi%$A0MmNDT zc*Au<(1OIU$f{cS6Qvc(`q1GIhXMyW{!=oIO%;~^|0q`NQsoTVA$~>_+xkaRspYXUHrrQpMzoV zpeR%L$5^HNHihI67CfVV)Har)5RZao1#}y>jCQBx+31%HOSHcT@#)-f?Ab#s5Ii4E zNr*lCy7}+k7mkalvz$i~!1)BkeuPxrd&4G6FOgaZh+-+h^XAQ5Lyji06UNtgb5jkf zk*thkL5e0iE393depOI^J@ z@m^fT+N)@4b{D*O9o*iKL2}aG?`Sk$+`~A3Xd35-rf7rqD@61LbnwhH&*JTR#XOf& zewuZwp2xg?+q0!1Zx_X5YWG<`i$=4SxFcj5GyOMG6F+9xU({r_cxX6;?=w>}} zYTq>4(YsIyAy-rOE-aowr3qznI_NH(=Zu|%N9l6&6WKxMI)G)D#DJc zlFDh47=P6sSH<6jg1UdiO4Q|&eZk<_^Ezk7I<#hw+?a5jsM}Rl9GEmFMEVoH3p+IY zmVnkbfpuK?@+g9w)qw8w2`%quqn#|$Ql-BgVxG#v>&0xlcbnDGIDL^^iK{uHeF)5o zR($Q$;QFwX=vZ72S_id)>1^Ix;tEm zX#V_MwChYun&G8^V3EX>h#K_%u4uIc2?~8~|pWJt;pwMD8GjmEe9)RZw za`H}ae&hf4Z$!JufAG7RCQ_hZnFDWvgU?gXW37SYlRE9CnS#ha pm>o_2jncpTAGnAV{tsU~lf~iaIJh~6zkdN-a#G5Y6`za){}Every split is local to one band
  • BLZtj69DwiK7>JxvOq98Kl+DY}%-Q$X6x&yLJAH63ozg&%asMHUH zT(*9gq@L^;^voibX$&wtoGB|U2C$r<3x?Q8H)zH^(7eh!wOdiMywqp8-YV7~{^DAH zu=m7EGM?EMfvThD#hK3PnZw4>@)wQwm* z0|ssnSSP}BP9rWfLv4ypbdzi=SNM!QT{5GqAoB4Fh&QwUeKay=U=BMRIHWDgvJAJE3R+P*Ct5@F z)=5(jWeW@r6(xC==~$XbrS2Ze;OVELKwlbZM9IYsMWh&Ee;7N-l6^AW{TNCmW$FFI zF;u=4;>-0FO&l~HvAjAfi)|HqQ#ZG_Upogi7MlTe3Pzi`J=VRa69#ZETSAx^4H~RoABX@FTO}=XSMfQ!xFEa(=w4% zRHn`zT>swLr#|)_|GCO-pY5+Z0iR;#M<+k9tv{Dc62G2))zl{&RrDEhj730$h(j26 zrHOcRfgY> zbj(l6q30Xi^M>|%Nw3q*k0ed%?n9?AVP&4hlMTi)MR%B1^sMjyrB44M$H5PHs-Byh z7wiA+PNJs7YAh`xFD@jmtONoniYq7ygTzF^B8oy_5oHB2B_Sbk6$y}-gqV=HlCY?} z*aN*Psss@M2`eg#iiv_A2Jni?gJf9$_a#jKpJ*EC+1L^Z>O1(`u!@Ni397kT+xW5? zgB}(SufSQ2g;<4Ig&rRNC8z)4FqzR%tuPA;oaK+&x@*sHaFliLaIQcUSR*{#AQ~eI zD?2-jbwZ>w0sY~l^vNf0INu{e-baiYEf0ul+b+#Gn+gAb4Cv8)AZ3n`bB@uh<=}AR zy#4)@@;g_pGVD(b1OG`Isxtu@w|3AOvYfMa73DEc-l43(*;%d{3r(eCOr^bH=RRJQ z1H^@iQ+3NtpZ6>0)A~zd3Tz;>LeHo53Ad2a8KL{d#YDpa8&lWjYsX0@KvYRwwm7x- z2uAq<3QDiJT(ob+^AZs3_X@;TcVMaZ_|a;H^m%8xG-Qt@I-589AAjA`%fiFU*W=+E RN(hMvgNeAfl(kie{tI9GFoXaA 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 2839b8cfd..f70158ec1 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -97,6 +97,7 @@ import com.demcha.examples.templates.cv.v2.CvSidebarPortraitExample; import com.demcha.examples.templates.cv.v2.CvTimelineMinimalExample; import com.demcha.examples.templates.invoice.ClassicInvoiceV2Example; +import com.demcha.examples.templates.invoice.ConsultingInvoiceV2Example; import com.demcha.examples.templates.invoice.InvoiceCinematicFileExample; import com.demcha.examples.templates.invoice.ModernInvoiceV2Example; import com.demcha.examples.templates.proposal.CinematicProposalFileExample; @@ -165,6 +166,7 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + InvoiceCinematicFileExample.generate()); System.out.println("Generated: " + ModernInvoiceV2Example.generate()); System.out.println("Generated: " + ClassicInvoiceV2Example.generate()); + System.out.println("Generated: " + ConsultingInvoiceV2Example.generate()); // Proposals System.out.println("Generated: " + ProposalCinematicFileExample.generate()); diff --git a/examples/src/main/java/com/demcha/examples/support/ConsultingInvoiceSampleData.java b/examples/src/main/java/com/demcha/examples/support/ConsultingInvoiceSampleData.java new file mode 100644 index 000000000..ff61b3188 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/ConsultingInvoiceSampleData.java @@ -0,0 +1,127 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.image.DocumentImageData; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceSummaryBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * Shared sample data for the Consulting Invoice example. + * + *

    The sample is the preset's reference content: a + * professional-services invoice with a brand logo, five masthead metadata + * rows (one emphasized), five priced service lines, a subtotal / tax + * stack with the total band, five bank fields, and notes naming both query + * channels.

    + * + *

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

    + */ +public final class ConsultingInvoiceSampleData { + + private ConsultingInvoiceSampleData() { + } + + /** The single-page reference invoice. */ + public static StructuredInvoiceDocumentSpec sample() { + return StructuredInvoiceDocumentSpec.from(baseBuilder(serviceLines(5)).build()); + } + + /** The sample logo, read from the examples resources. */ + public static DocumentImageData sampleLogo() { + String path = "/consulting-invoice-logo.png"; + try (InputStream input = ConsultingInvoiceSampleData.class.getResourceAsStream(path)) { + if (input == null) { + throw new IllegalStateException("Missing sample logo: " + path); + } + return DocumentImageData.fromBytes(input.readAllBytes()); + } catch (IOException e) { + throw new UncheckedIOException("Failed to read sample logo: " + path, e); + } + } + + private static StructuredInvoiceData.Builder baseBuilder(InvoiceServiceLines lines) { + return StructuredInvoiceData.builder() + .brand(new InvoiceBrand(sampleLogo(), "NORTHPOINT", "CONSULTING", + "Strategy. Solutions. Results.")) + .supplier(new InvoiceContactBlock("Northpoint Consulting Pty Ltd", + List.of("Level 8, 1 Collins Street", "Melbourne VIC 3000 Australia"), + "+61 3 9876 5432", "hello@northpoint.com.au", "northpoint.com.au", + "ABN", "12 345 678 901")) + .masthead(new InvoiceMasthead("INVOICE", List.of( + new InvoiceMasthead.Entry("Invoice Number:", "INV-2025-0478", false), + new InvoiceMasthead.Entry("Issue Date:", "26 May 2025", false), + new InvoiceMasthead.Entry("Due Date:", "25 June 2025", true), + new InvoiceMasthead.Entry("Project:", "Digital Strategy Engagement", false), + new InvoiceMasthead.Entry("PO Number:", "PO-7892", false)))) + .billTo(new InvoiceRecipient("BILLED TO", "Greenfield Industries Ltd.", + "Accounts Payable Department", + List.of("12 Innovation Drive", "Melbourne VIC 3000", "Australia"), + "Email:", "ap@greenfield.com.au")) + .summary(new InvoiceSummaryBlock("INVOICE SUMMARY", + "Professional services rendered in accordance with the statement of " + + "work for the period", + "1 May 2025 – 25 May 2025.")) + .serviceLines(lines) + .totals(new InvoiceTotalsBlock(List.of( + new InvoiceTotalsBlock.Row("SUBTOTAL", new BigDecimal("14000.00")), + new InvoiceTotalsBlock.Row("GST (10%)", new BigDecimal("1400.00"))), + "TOTAL DUE", new BigDecimal("15400.00"))) + .payment(new InvoicePaymentBlock("PAYMENT INFORMATION", List.of( + new InvoicePaymentBlock.Field("Bank Name:", "Example Bank"), + new InvoicePaymentBlock.Field("Account Name:", + "Northpoint Consulting Pty Ltd"), + new InvoicePaymentBlock.Field("BSB:", "123-456"), + new InvoicePaymentBlock.Field("Account Number:", "12345678"), + new InvoicePaymentBlock.Field("Reference:", "INV-2025-0478")), + "Please ensure the invoice number is included in the payment reference.", + "Payment is due within 30 days from the issue date.", "30 days")) + .notes(new InvoiceNotesBlock("NOTES", List.of( + "Thank you for your business.", + "If you have any questions regarding this invoice, please contact us " + + "at accounts@northpoint.com.au or +61 3 9876 5432."), + "accounts@northpoint.com.au", "+61 3 9876 5432")) + .currencyCode("AUD"); + } + + private static InvoiceServiceLines serviceLines(int count) { + String[][] source = { + {"Strategic Consultation", "Leadership alignment workshops", "1–10 May 2025", + "10.00", "hrs", "250.00", "2500.00"}, + {"Market & Competitive Analysis", "Research and analysis report", "1–15 May 2025", + "1.00", "ea", "3500.00", "3500.00"}, + {"Digital Roadmap Development", "Strategy and roadmap creation", "5–20 May 2025", + "1.00", "ea", "4800.00", "4800.00"}, + {"Stakeholder Review Sessions", "Facilitation and documentation", "15–22 May 2025", + "6.00", "hrs", "220.00", "1320.00"}, + {"Presentation & Final Report", "Executive presentation and delivery", + "20–25 May 2025", "1.00", "ea", "1880.00", "1880.00"}}; + List lines = new ArrayList<>(); + for (int index = 0; index < count; index++) { + String[] row = source[index % source.length]; + lines.add(new InvoiceServiceLines.Line(index + 1, row[0], row[1], row[2], + new BigDecimal(row[3]), row[4], new BigDecimal(row[5]), + new BigDecimal(row[6]))); + } + return new InvoiceServiceLines( + new InvoiceServiceLines.Columns("#", "DESCRIPTION", "SERVICE PERIOD", "QTY", + "UNIT PRICE", "AMOUNT"), + lines); + } +} 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 180535ec3..4af47d427 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -87,6 +87,7 @@ record Entry(String title, String description, List tags, String codeUrl // ===== Templates / Invoice ===== invoice("invoice-cinematic", "InvoiceCinematicFileExample", "Cinematic Invoice", "Layered ModernInvoice preset with theme-driven layout, advanced tables, and totals.", "invoice", "cinematic"); + invoice("invoice-consulting-v2", "v2/ConsultingInvoiceV2Example", "Consulting Invoice", "The ConsultingInvoice preset on the structured invoice model — brand lockup with the caller's logo, labelled masthead metadata, priced service lines with service periods, a totals stack and bank payment fields.", "invoice"); invoice("invoice-modern-v2", "v2/ModernInvoiceV2Example", "Modern Invoice", "The ModernInvoice preset composed straight from an InvoiceDocumentSpec — line items, totals and payment block driven by the BrandTheme rather than per-document styling.", "invoice"); invoice("invoice-classic-v2", "v2/ClassicInvoiceV2Example", "Classic Invoice", "The ClassicInvoice preset — letterhead header band, TOTAL DUE hero strip, BILL TO / FROM columns, and a dedicated Summary table after the line items.", "invoice"); diff --git a/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ConsultingInvoiceV2Example.java b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ConsultingInvoiceV2Example.java new file mode 100644 index 000000000..277c31424 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ConsultingInvoiceV2Example.java @@ -0,0 +1,54 @@ +package com.demcha.examples.templates.invoice; + +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.invoice.StructuredInvoiceDocumentSpec; +import com.demcha.compose.document.templates.invoice.presets.ConsultingInvoice; +import com.demcha.examples.support.ConsultingInvoiceSampleData; +import com.demcha.examples.support.ExampleOutputPaths; + +import java.nio.file.Path; + +/** + * Renders the layered {@code invoice.v2} Consulting Invoice preset against + * the shared structured invoice sample data. + * + *

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

    + * + *

    The preset owns its page geometry — size, margins, the page fills and + * the footer band — so the session starts unconfigured; see + * {@code ConsultingInvoice.RECOMMENDED_MARGIN}. The brand logo is supplied + * through the data, the way a caller supplies its own.

    + */ +public final class ConsultingInvoiceV2Example { + + private ConsultingInvoiceV2Example() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare( + "templates/invoice", "invoice-consulting-v2.pdf"); + StructuredInvoiceDocumentSpec spec = ConsultingInvoiceSampleData.sample(); + DocumentTemplate template = ConsultingInvoice.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/examples/src/main/resources/consulting-invoice-logo.png b/examples/src/main/resources/consulting-invoice-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a37e806486b297bcf0269815eeb347baacc3e5 GIT binary patch literal 64808 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 M07*qoM6N<$f-YJo^8f$< literal 0 HcmV?d00001 diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceFixtures.java new file mode 100644 index 000000000..17f39b942 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceFixtures.java @@ -0,0 +1,135 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.image.DocumentImageData; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceSummaryBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * Shared fixture data for the Consulting Invoice 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 + * professional-services invoice with a brand logo, five masthead metadata + * rows (one emphasized), five priced service lines, a subtotal / tax + * stack with the total band, five bank fields, and notes naming both query + * channels. The overflow fixture repeats the service lines until the table + * paginates, which is what freezes the repeating table header.

    + * + *

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

    + */ +final class ConsultingInvoiceFixtures { + + private ConsultingInvoiceFixtures() { + } + + /** The single-page reference invoice. */ + static StructuredInvoiceDocumentSpec canonicalInvoice() { + return StructuredInvoiceDocumentSpec.from(baseBuilder(serviceLines(5)).build()); + } + + /** Enough service lines to push the table onto a second page. */ + static StructuredInvoiceDocumentSpec overflowInvoice() { + return StructuredInvoiceDocumentSpec.from(baseBuilder(serviceLines(26)).build()); + } + + /** The sample logo, read from the qa test resources. */ + static DocumentImageData sampleLogo() { + String path = "/sample-data/consulting-invoice-logo.png"; + try (InputStream input = ConsultingInvoiceFixtures.class.getResourceAsStream(path)) { + if (input == null) { + throw new IllegalStateException("Missing sample logo: " + path); + } + return DocumentImageData.fromBytes(input.readAllBytes()); + } catch (IOException e) { + throw new UncheckedIOException("Failed to read sample logo: " + path, e); + } + } + + private static StructuredInvoiceData.Builder baseBuilder(InvoiceServiceLines lines) { + return StructuredInvoiceData.builder() + .brand(new InvoiceBrand(sampleLogo(), "NORTHPOINT", "CONSULTING", + "Strategy. Solutions. Results.")) + .supplier(new InvoiceContactBlock("Northpoint Consulting Pty Ltd", + List.of("Level 8, 1 Collins Street", "Melbourne VIC 3000 Australia"), + "+61 3 9876 5432", "hello@northpoint.com.au", "northpoint.com.au", + "ABN", "12 345 678 901")) + .masthead(new InvoiceMasthead("INVOICE", List.of( + new InvoiceMasthead.Entry("Invoice Number:", "INV-2025-0478", false), + new InvoiceMasthead.Entry("Issue Date:", "26 May 2025", false), + new InvoiceMasthead.Entry("Due Date:", "25 June 2025", true), + new InvoiceMasthead.Entry("Project:", "Digital Strategy Engagement", false), + new InvoiceMasthead.Entry("PO Number:", "PO-7892", false)))) + .billTo(new InvoiceRecipient("BILLED TO", "Greenfield Industries Ltd.", + "Accounts Payable Department", + List.of("12 Innovation Drive", "Melbourne VIC 3000", "Australia"), + "Email:", "ap@greenfield.com.au")) + .summary(new InvoiceSummaryBlock("INVOICE SUMMARY", + "Professional services rendered in accordance with the statement of " + + "work for the period", + "1 May 2025 – 25 May 2025.")) + .serviceLines(lines) + .totals(new InvoiceTotalsBlock(List.of( + new InvoiceTotalsBlock.Row("SUBTOTAL", new BigDecimal("14000.00")), + new InvoiceTotalsBlock.Row("GST (10%)", new BigDecimal("1400.00"))), + "TOTAL DUE", new BigDecimal("15400.00"))) + .payment(new InvoicePaymentBlock("PAYMENT INFORMATION", List.of( + new InvoicePaymentBlock.Field("Bank Name:", "Example Bank"), + new InvoicePaymentBlock.Field("Account Name:", + "Northpoint Consulting Pty Ltd"), + new InvoicePaymentBlock.Field("BSB:", "123-456"), + new InvoicePaymentBlock.Field("Account Number:", "12345678"), + new InvoicePaymentBlock.Field("Reference:", "INV-2025-0478")), + "Please ensure the invoice number is included in the payment reference.", + "Payment is due within 30 days from the issue date.", "30 days")) + .notes(new InvoiceNotesBlock("NOTES", List.of( + "Thank you for your business.", + "If you have any questions regarding this invoice, please contact us " + + "at accounts@northpoint.com.au or +61 3 9876 5432."), + "accounts@northpoint.com.au", "+61 3 9876 5432")) + .currencyCode("AUD"); + } + + private static InvoiceServiceLines serviceLines(int count) { + String[][] source = { + {"Strategic Consultation", "Leadership alignment workshops", "1–10 May 2025", + "10.00", "hrs", "250.00", "2500.00"}, + {"Market & Competitive Analysis", "Research and analysis report", "1–15 May 2025", + "1.00", "ea", "3500.00", "3500.00"}, + {"Digital Roadmap Development", "Strategy and roadmap creation", "5–20 May 2025", + "1.00", "ea", "4800.00", "4800.00"}, + {"Stakeholder Review Sessions", "Facilitation and documentation", "15–22 May 2025", + "6.00", "hrs", "220.00", "1320.00"}, + {"Presentation & Final Report", "Executive presentation and delivery", + "20–25 May 2025", "1.00", "ea", "1880.00", "1880.00"}}; + List lines = new ArrayList<>(); + for (int index = 0; index < count; index++) { + String[] row = source[index % source.length]; + lines.add(new InvoiceServiceLines.Line(index + 1, row[0], row[1], row[2], + new BigDecimal(row[3]), row[4], new BigDecimal(row[5]), + new BigDecimal(row[6]))); + } + return new InvoiceServiceLines( + new InvoiceServiceLines.Columns("#", "DESCRIPTION", "SERVICE PERIOD", "QTY", + "UNIT PRICE", "AMOUNT"), + lines); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceLayoutSnapshotTest.java new file mode 100644 index 000000000..2f616d80b --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceLayoutSnapshotTest.java @@ -0,0 +1,43 @@ +package com.demcha.compose.document.templates.invoice.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 ConsultingInvoice} — freezes the + * resolved geometry the pixel budget cannot see (a small column or spacing + * shift stays under the visual-diff budget but changes the snapshot), and + * the pagination contract of the overflow invoice: the service lines flow + * onto a second page and the totals stack stays whole. + * + *

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

    + */ +class ConsultingInvoiceLayoutSnapshotTest { + + @Test + void canonicalInvoiceMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + ConsultingInvoice.create().compose( + session, ConsultingInvoiceFixtures.canonicalInvoice()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "consulting_invoice_layout", "invoice"); + } + } + + @Test + void overflowInvoicePaginatesOntoASecondPage() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + ConsultingInvoice.create().compose( + session, ConsultingInvoiceFixtures.overflowInvoice()); + assertThat(session.layoutSnapshot().totalPages()).isGreaterThan(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "consulting_invoice_overflow_layout", "invoice"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceSmokeTest.java new file mode 100644 index 000000000..ed319022b --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceSmokeTest.java @@ -0,0 +1,168 @@ +package com.demcha.compose.document.templates.invoice.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.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec; +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.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Smoke test for the structured invoice pipeline through + * {@link ConsultingInvoice} — proves the preset renders a + * {@link StructuredInvoiceDocumentSpec} end-to-end with the packaged icon + * set and a caller-supplied logo, falls back to the wordmark lockup when + * no logo is supplied, renders an empty document through its guards, and + * puts the priced figures on the text layer, where the layout snapshot + * cannot see inside the table. + */ +class ConsultingInvoiceSmokeTest { + + private static byte[] render(StructuredInvoiceDocumentSpec spec) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + ConsultingInvoice.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 = ConsultingInvoice.create(); + assertThat(template.id()).isEqualTo(ConsultingInvoice.ID); + assertThat(template.displayName()).isEqualTo(ConsultingInvoice.DISPLAY_NAME); + } + + @Test + void rendersCanonicalInvoiceWithLogoAndPackagedIcons() throws Exception { + render(ConsultingInvoiceFixtures.canonicalInvoice()); + } + + @Test + void rendersWordmarkLockupWhenNoLogoIsSupplied() throws Exception { + StructuredInvoiceData canonical = + ConsultingInvoiceFixtures.canonicalInvoice().invoice(); + InvoiceBrand brand = canonical.brand(); + StructuredInvoiceData withoutLogo = rebuild(canonical) + .brand(new InvoiceBrand(null, brand.name(), brand.qualifier(), brand.tagline())) + .build(); + + String text = textOf(render(StructuredInvoiceDocumentSpec.from(withoutLogo))); + // The wordmark lockup draws the brand name as text; the logo path does not. + assertThat(text).contains("NORTHPOINT"); + } + + @Test + void rendersEmptyInvoice() throws Exception { + // Exercises the empty-collection paths through full layout and render: + // no metadata rows, no service lines, no totals rows, no bank fields, + // no notes — and the blank brand that has neither logo nor name. + render(StructuredInvoiceDocumentSpec.from(StructuredInvoiceData.builder().build())); + } + + @Test + void canonicalRenderCarriesTheTableAndTotalsText() throws Exception { + // The line-items table and the totals bands are leaf nodes in the + // layout snapshot, so their content is asserted on the text layer. + String text = textOf(render(ConsultingInvoiceFixtures.canonicalInvoice())); + assertThat(text) + .contains("Strategic Consultation") + .contains("Leadership alignment workshops") + .contains("1–10 May 2025") + .contains("2,500.00") + .contains("GST (10%)") + .contains("TOTAL DUE (AUD)") + .contains("15,400.00") + .contains("INV-2025-0478"); + } + + @Test + void aDocumentWithoutACurrencyPrintsNoEmptyParentheses() throws Exception { + StructuredInvoiceData canonical = ConsultingInvoiceFixtures.canonicalInvoice().invoice(); + StructuredInvoiceData withoutCurrency = rebuild(canonical).currencyCode("").build(); + + String text = textOf(render(StructuredInvoiceDocumentSpec.from(withoutCurrency))); + assertThat(text).doesNotContain("()").contains("TOTAL DUE"); + } + + @Test + void aSupplierWithoutARegistrationPrintsNoDanglingSeparator() throws Exception { + StructuredInvoiceData canonical = ConsultingInvoiceFixtures.canonicalInvoice().invoice(); + InvoiceContactBlock supplier = canonical.supplier(); + StructuredInvoiceData withoutRegistration = rebuild(canonical) + .supplier(new InvoiceContactBlock(supplier.legalName(), supplier.addressLines(), + supplier.phone(), supplier.email(), supplier.website(), "", "")) + .build(); + + String text = textOf(render(StructuredInvoiceDocumentSpec.from(withoutRegistration))); + assertThat(text) + .contains("Northpoint Consulting Pty Ltd") + .doesNotContain("Pty Ltd |"); + } + + @Test + void theBankBandGrowsWithTheNumberOfPaymentFields() throws Exception { + StructuredInvoiceData canonical = ConsultingInvoiceFixtures.canonicalInvoice().invoice(); + InvoicePaymentBlock payment = canonical.payment(); + List more = new ArrayList<>(payment.fields()); + more.add(new InvoicePaymentBlock.Field("SWIFT:", "EXAMPLEAU")); + more.add(new InvoicePaymentBlock.Field("IBAN:", "AU00 1234 5678 9012")); + StructuredInvoiceData withMoreFields = rebuild(canonical) + .payment(new InvoicePaymentBlock(payment.heading(), more, payment.instruction(), + payment.dueNotice(), payment.dueNoticeEmphasis())) + .build(); + + // The band is sized from the field count, so the last field is drawn + // inside it rather than over the instruction beneath. + String text = textOf(render(StructuredInvoiceDocumentSpec.from(withMoreFields))); + assertThat(text).contains("SWIFT:").contains("IBAN:") + .contains("Please ensure the invoice number"); + } + + /** Copies every component of a spec so one of them can be replaced. */ + private static StructuredInvoiceData.Builder rebuild(StructuredInvoiceData data) { + return StructuredInvoiceData.builder() + .brand(data.brand()) + .supplier(data.supplier()) + .masthead(data.masthead()) + .billTo(data.billTo()) + .summary(data.summary()) + .serviceLines(data.serviceLines()) + .totals(data.totals()) + .payment(data.payment()) + .notes(data.notes()) + .currencyCode(data.currencyCode()); + } + + @Test + void overflowInvoiceRepeatsTheTableHeaderOnTheSecondPage() throws Exception { + byte[] pdfBytes = render(ConsultingInvoiceFixtures.overflowInvoice()); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + assertThat(document.getNumberOfPages()).isGreaterThan(1); + PDFTextStripper stripper = new PDFTextStripper(); + stripper.setStartPage(2); + stripper.setEndPage(2); + assertThat(stripper.getText(document)).contains("SERVICE PERIOD"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceVisualParityTest.java new file mode 100644 index 000000000..ebe9ee2d0 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoiceVisualParityTest.java @@ -0,0 +1,46 @@ +package com.demcha.compose.document.templates.invoice.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 ConsultingInvoice}. + * + *

    Separate from {@code InvoiceV2VisualParityTest} because that gate is + * parameterised on the display {@code InvoiceDocumentSpec} while this + * preset consumes the structured spec. Budget and tolerance mirror the + * other template parity gates.

    + * + *

    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/invoice-v2-layered/}.

    + */ +class ConsultingInvoiceVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "invoice-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()) { + ConsultingInvoice.create().compose( + document, ConsultingInvoiceFixtures.canonicalInvoice()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("consulting_invoice", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/consulting_invoice_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/consulting_invoice_layout.json new file mode 100644 index 000000000..71f81a1bc --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/consulting_invoice_layout.json @@ -0,0 +1,2867 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 534.276, + "innerHeight" : 780.89, + "margin" : { + "top" : 30.5, + "right" : 30.5, + "bottom" : 30.5, + "left" : 30.5 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "ConsultingInvoice[0]", + "entityName" : "ConsultingInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 30.5, + "computedY" : 169.316, + "placementX" : 30.5, + "placementY" : 169.316, + "placementWidth" : 534.276, + "placementHeight" : 642.074, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 534.276, + "contentHeight" : 642.074, + "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" : "ConsultingInvoice[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 675.406, + "placementX" : 30.5, + "placementY" : 675.406, + "placementWidth" : 534.276, + "placementHeight" : 135.984, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 534.276, + "contentHeight" : 135.984, + "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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "entityName" : "SupplierHeader", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.5, + "computedY" : 682.39, + "placementX" : 30.5, + "placementY" : 682.39, + "placementWidth" : 259.731, + "placementHeight" : 129.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 129.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/BrandLogoBox[0]", + "entityName" : "BrandLogoBox", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 747.39, + "placementX" : 30.5, + "placementY" : 747.39, + "placementWidth" : 259.731, + "placementHeight" : 64.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 64.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/BrandLogoBox[0]/BrandLogo[0]", + "entityName" : "BrandLogo", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/BrandLogoBox[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 747.39, + "placementX" : 30.5, + "placementY" : 747.39, + "placementWidth" : 164.874, + "placementHeight" : 64.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 164.874, + "contentHeight" : 64.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[1]", + "entityName" : "ContactBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 727.39, + "placementX" : 30.5, + "placementY" : 727.39, + "placementWidth" : 259.731, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[1]/Icon-location[0]", + "entityName" : "Icon-location", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 731.39, + "placementX" : 30.5, + "placementY" : 731.39, + "placementWidth" : 10.0, + "placementHeight" : 10.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.0, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 53.5, + "computedY" : 725.088, + "placementX" : 53.5, + "placementY" : 725.088, + "placementWidth" : 100.555, + "placementHeight" : 20.302, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.555, + "contentHeight" : 20.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[2]", + "entityName" : "ContactBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 712.39, + "placementX" : 30.5, + "placementY" : 712.39, + "placementWidth" : 259.731, + "placementHeight" : 13.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 13.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[2]/Icon-phone[0]", + "entityName" : "Icon-phone", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 714.29, + "placementX" : 30.5, + "placementY" : 714.29, + "placementWidth" : 9.2, + "placementHeight" : 9.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.2, + "contentHeight" : 9.2, + "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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 53.5, + "computedY" : 714.102, + "placementX" : 53.5, + "placementY" : 714.102, + "placementWidth" : 53.974, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 53.974, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[3]", + "entityName" : "ContactBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 697.39, + "placementX" : 30.5, + "placementY" : 697.39, + "placementWidth" : 259.731, + "placementHeight" : 13.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 13.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[3]/Icon-email[0]", + "entityName" : "Icon-email", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 699.29, + "placementX" : 30.5, + "placementY" : 699.29, + "placementWidth" : 9.2, + "placementHeight" : 9.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.2, + "contentHeight" : 9.2, + "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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[3]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 53.5, + "computedY" : 699.102, + "placementX" : 53.5, + "placementY" : 699.102, + "placementWidth" : 86.464, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.464, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[4]", + "entityName" : "ContactBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 682.39, + "placementX" : 30.5, + "placementY" : 682.39, + "placementWidth" : 259.731, + "placementHeight" : 13.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 13.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[4]/Icon-website[0]", + "entityName" : "Icon-website", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 684.19, + "placementX" : 30.5, + "placementY" : 684.19, + "placementWidth" : 9.4, + "placementHeight" : 9.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.4, + "contentHeight" : 9.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 53.5, + "computedY" : 684.102, + "placementX" : 53.5, + "placementY" : 684.102, + "placementWidth" : 63.174, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.174, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "entityName" : "InvoiceHeader", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 315.231, + "computedY" : 675.406, + "placementX" : 315.231, + "placementY" : 675.406, + "placementWidth" : 249.545, + "placementHeight" : 135.984, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.545, + "contentHeight" : 135.984, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 24.0 + } + }, { + "path" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 778.406, + "placementX" : 339.231, + "placementY" : 778.406, + "placementWidth" : 128.001, + "placementHeight" : 32.984, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 128.001, + "contentHeight" : 32.984, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[1]", + "entityName" : "MetadataBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 751.406, + "placementX" : 339.231, + "placementY" : 751.406, + "placementWidth" : 225.545, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.545, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 339.231, + "computedY" : 755.618, + "placementX" : 339.231, + "placementY" : 755.618, + "placementWidth" : 57.812, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.812, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 447.492, + "computedY" : 755.086, + "placementX" : 447.492, + "placementY" : 755.086, + "placementWidth" : 57.509, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.509, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[2]", + "entityName" : "MetadataBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 732.406, + "placementX" : 339.231, + "placementY" : 732.406, + "placementWidth" : 225.545, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.545, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 339.231, + "computedY" : 736.618, + "placementX" : 339.231, + "placementY" : 736.618, + "placementWidth" : 38.475, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.475, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 447.492, + "computedY" : 736.086, + "placementX" : 447.492, + "placementY" : 736.086, + "placementWidth" : 47.5, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.5, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[3]", + "entityName" : "MetadataBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 713.406, + "placementX" : 339.231, + "placementY" : 713.406, + "placementWidth" : 225.545, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.545, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 339.231, + "computedY" : 717.618, + "placementX" : 339.231, + "placementY" : 717.618, + "placementWidth" : 33.796, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.796, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[3]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 447.492, + "computedY" : 717.086, + "placementX" : 447.492, + "placementY" : 717.086, + "placementWidth" : 50.396, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.396, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[4]", + "entityName" : "MetadataBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 694.406, + "placementX" : 339.231, + "placementY" : 694.406, + "placementWidth" : 225.545, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.545, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[4]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 339.231, + "computedY" : 698.618, + "placementX" : 339.231, + "placementY" : 698.618, + "placementWidth" : 26.635, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.635, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 447.492, + "computedY" : 698.086, + "placementX" : 447.492, + "placementY" : 698.086, + "placementWidth" : 109.235, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.235, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[5]", + "entityName" : "MetadataBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 675.406, + "placementX" : 339.231, + "placementY" : 675.406, + "placementWidth" : 225.545, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.545, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[5]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 339.231, + "computedY" : 679.618, + "placementX" : 339.231, + "placementY" : 679.618, + "placementWidth" : 41.82, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.82, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[5]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[5]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 447.492, + "computedY" : 679.086, + "placementX" : 447.492, + "placementY" : 679.086, + "placementWidth" : 32.665, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.665, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/SpacerNode[1]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 659.406, + "placementX" : 30.5, + "placementY" : 659.406, + "placementWidth" : 0.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.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" : "ConsultingInvoice[0]/PartiesAndSummary[2]", + "entityName" : "PartiesAndSummary", + "entityKind" : "RowNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 561.63, + "placementX" : 30.5, + "placementY" : 561.63, + "placementWidth" : 534.276, + "placementHeight" : 97.776, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 534.276, + "contentHeight" : 97.776, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "entityName" : "BilledTo", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.5, + "computedY" : 561.63, + "placementX" : 30.5, + "placementY" : 561.63, + "placementWidth" : 116.538, + "placementHeight" : 97.776, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.538, + "contentHeight" : 97.776, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 647.17, + "placementX" : 30.5, + "placementY" : 647.17, + "placementWidth" : 56.469, + "placementHeight" : 12.236, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.469, + "contentHeight" : 12.236, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 640.47, + "placementX" : 30.5, + "placementY" : 640.47, + "placementWidth" : 30.0, + "placementHeight" : 1.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 1.2, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 624.33, + "placementX" : 30.5, + "placementY" : 624.33, + "placementWidth" : 97.219, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.219, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 612.19, + "placementX" : 30.5, + "placementY" : 612.19, + "placementWidth" : 116.538, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.538, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/ParagraphNode[4]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 578.77, + "placementX" : 30.5, + "placementY" : 578.77, + "placementWidth" : 76.129, + "placementHeight" : 31.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.129, + "contentHeight" : 31.92, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/ParagraphNode[5]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 561.63, + "placementX" : 30.5, + "placementY" : 561.63, + "placementWidth" : 114.008, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 114.008, + "contentHeight" : 10.64, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]", + "entityName" : "InvoiceSummary", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 340.102, + "computedY" : 601.7, + "placementX" : 340.102, + "placementY" : 601.7, + "placementWidth" : 205.246, + "placementHeight" : 57.706, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.246, + "contentHeight" : 57.706, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 340.102, + "computedY" : 647.17, + "placementX" : 340.102, + "placementY" : 647.17, + "placementWidth" : 109.748, + "placementHeight" : 12.236, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.748, + "contentHeight" : 12.236, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 340.102, + "computedY" : 640.97, + "placementX" : 340.102, + "placementY" : 640.97, + "placementWidth" : 30.0, + "placementHeight" : 1.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 1.2, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 340.102, + "computedY" : 613.34, + "placementX" : 340.102, + "placementY" : 613.34, + "placementWidth" : 205.246, + "placementHeight" : 22.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.246, + "contentHeight" : 22.63, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 340.102, + "computedY" : 601.7, + "placementX" : 340.102, + "placementY" : 601.7, + "placementWidth" : 100.259, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.259, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/SpacerNode[3]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 551.63, + "placementX" : 30.5, + "placementY" : 551.63, + "placementWidth" : 0.0, + "placementHeight" : 10.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/LineItems[4]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 368.328, + "placementX" : 30.5, + "placementY" : 368.328, + "placementWidth" : 534.276, + "placementHeight" : 183.302, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 534.276, + "contentHeight" : 183.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" : "ConsultingInvoice[0]/Totals[5]", + "entityName" : "Totals", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 340.38, + "computedY" : 299.328, + "placementX" : 340.38, + "placementY" : 299.328, + "placementWidth" : 224.396, + "placementHeight" : 63.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.396, + "contentHeight" : 63.0, + "margin" : { + "top" : 6.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 309.88 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalRow[0]", + "entityName" : "TotalRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 340.38, + "computedY" : 347.328, + "placementX" : 340.38, + "placementY" : 347.328, + "placementWidth" : 224.396, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.396, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/Totals[5]/TotalRow[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 350.04, + "placementX" : 340.38, + "placementY" : 350.04, + "placementWidth" : 48.301, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.301, + "contentHeight" : 9.576, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalRow[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 349.508, + "placementX" : 340.38, + "placementY" : 349.508, + "placementWidth" : 224.396, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.396, + "contentHeight" : 10.64, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 10.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalRow[1]", + "entityName" : "TotalRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 340.38, + "computedY" : 331.328, + "placementX" : 340.38, + "placementY" : 331.328, + "placementWidth" : 224.396, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.396, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/Totals[5]/TotalRow[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalRow[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 334.04, + "placementX" : 340.38, + "placementY" : 334.04, + "placementWidth" : 47.419, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.419, + "contentHeight" : 9.576, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalRow[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalRow[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 333.508, + "placementX" : 340.38, + "placementY" : 333.508, + "placementWidth" : 224.396, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.396, + "contentHeight" : 10.64, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 10.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/LineNode[2]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 340.38, + "computedY" : 327.328, + "placementX" : 340.38, + "placementY" : 327.328, + "placementWidth" : 224.396, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.396, + "contentHeight" : 1.0, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalDue[3]", + "entityName" : "TotalDue", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 340.38, + "computedY" : 299.328, + "placementX" : 340.38, + "placementY" : 299.328, + "placementWidth" : 224.396, + "placementHeight" : 27.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.396, + "contentHeight" : 27.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" : "ConsultingInvoice[0]/Totals[5]/TotalDue[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalDue[3]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 307.508, + "placementX" : 340.38, + "placementY" : 307.508, + "placementWidth" : 79.135, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 79.135, + "contentHeight" : 10.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" : 13.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalDue[3]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalDue[3]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 303.252, + "placementX" : 340.38, + "placementY" : 303.252, + "placementWidth" : 224.396, + "placementHeight" : 19.152, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 224.396, + "contentHeight" : 19.152, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 10.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/LineNode[6]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 293.328, + "placementX" : 30.5, + "placementY" : 293.328, + "placementWidth" : 534.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 534.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 5.0, + "right" : 0.0, + "bottom" : 5.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PaymentAndNotes[7]", + "entityName" : "PaymentAndNotes", + "entityKind" : "RowNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 169.316, + "placementX" : 30.5, + "placementY" : 169.316, + "placementWidth" : 534.276, + "placementHeight" : 119.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 534.276, + "contentHeight" : 119.012, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]", + "entityName" : "PaymentInformation", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.5, + "computedY" : 169.316, + "placementX" : 30.5, + "placementY" : 169.316, + "placementWidth" : 276.629, + "placementHeight" : 119.012, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 276.629, + "contentHeight" : 119.012, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 276.092, + "placementX" : 30.5, + "placementY" : 276.092, + "placementWidth" : 139.604, + "placementHeight" : 12.236, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 139.604, + "contentHeight" : 12.236, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 267.892, + "placementX" : 30.5, + "placementY" : 267.892, + "placementWidth" : 30.0, + "placementHeight" : 1.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 1.2, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]", + "entityName" : "BankInformationBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 185.892, + "placementX" : 30.5, + "placementY" : 185.892, + "placementWidth" : 276.629, + "placementHeight" : 75.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 276.629, + "contentHeight" : 75.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankBadge[0]", + "entityName" : "BankBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 204.392, + "placementX" : 30.5, + "placementY" : 204.392, + "placementWidth" : 38.0, + "placementHeight" : 38.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.0, + "contentHeight" : 38.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankBadge[0]/Icon-bank[0]", + "entityName" : "Icon-bank", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankBadge[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 39.75, + "computedY" : 213.642, + "placementX" : 39.75, + "placementY" : 213.642, + "placementWidth" : 19.5, + "placementHeight" : 19.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.5, + "contentHeight" : 19.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "entityName" : "BankDetails", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 88.5, + "computedY" : 185.892, + "placementX" : 88.5, + "placementY" : 185.892, + "placementWidth" : 215.629, + "placementHeight" : 75.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 215.629, + "contentHeight" : 75.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[0]", + "entityName" : "BankField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 88.5, + "computedY" : 245.892, + "placementX" : 88.5, + "placementY" : 245.892, + "placementWidth" : 215.629, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 215.629, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 88.5, + "computedY" : 248.604, + "placementX" : 88.5, + "placementY" : 248.604, + "placementWidth" : 42.627, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.627, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 164.5, + "computedY" : 248.604, + "placementX" : 164.5, + "placementY" : 248.604, + "placementWidth" : 47.545, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.545, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[1]", + "entityName" : "BankField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 88.5, + "computedY" : 230.892, + "placementX" : 88.5, + "placementY" : 230.892, + "placementWidth" : 215.629, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 215.629, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 88.5, + "computedY" : 233.604, + "placementX" : 88.5, + "placementY" : 233.604, + "placementWidth" : 54.31, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 54.31, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 164.5, + "computedY" : 233.604, + "placementX" : 164.5, + "placementY" : 233.604, + "placementWidth" : 98.845, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 98.845, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[2]", + "entityName" : "BankField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 88.5, + "computedY" : 215.892, + "placementX" : 88.5, + "placementY" : 215.892, + "placementWidth" : 215.629, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 215.629, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 88.5, + "computedY" : 218.604, + "placementX" : 88.5, + "placementY" : 218.604, + "placementWidth" : 15.164, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.164, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[2]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 164.5, + "computedY" : 218.604, + "placementX" : 164.5, + "placementY" : 218.604, + "placementWidth" : 26.861, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.861, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[3]", + "entityName" : "BankField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 88.5, + "computedY" : 200.892, + "placementX" : 88.5, + "placementY" : 200.892, + "placementWidth" : 215.629, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 215.629, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[3]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 88.5, + "computedY" : 203.604, + "placementX" : 88.5, + "placementY" : 203.604, + "placementWidth" : 61.847, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.847, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[3]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[3]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 164.5, + "computedY" : 203.604, + "placementX" : 164.5, + "placementY" : 203.604, + "placementWidth" : 31.143, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.143, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[4]", + "entityName" : "BankField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "childIndex" : 4, + "depth" : 6, + "layer" : 6, + "computedX" : 88.5, + "computedY" : 185.892, + "placementX" : 88.5, + "placementY" : 185.892, + "placementWidth" : 215.629, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 215.629, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[4]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[4]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 88.5, + "computedY" : 188.604, + "placementX" : 88.5, + "placementY" : 188.604, + "placementWidth" : 37.394, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 37.394, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[4]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 164.5, + "computedY" : 188.604, + "placementX" : 164.5, + "placementY" : 188.604, + "placementWidth" : 51.758, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.758, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 169.316, + "placementX" : 30.5, + "placementY" : 169.316, + "placementWidth" : 246.452, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 246.452, + "contentHeight" : 9.576, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "entityName" : "Notes", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 329.129, + "computedY" : 175.732, + "placementX" : 329.129, + "placementY" : 175.732, + "placementWidth" : 235.647, + "placementHeight" : 112.596, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.647, + "contentHeight" : 112.596, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 24.0 + } + }, { + "path" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 353.129, + "computedY" : 276.092, + "placementX" : 353.129, + "placementY" : 276.092, + "placementWidth" : 36.122, + "placementHeight" : 12.236, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.122, + "contentHeight" : 12.236, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 353.129, + "computedY" : 267.892, + "placementX" : 353.129, + "placementY" : 267.892, + "placementWidth" : 30.0, + "placementHeight" : 1.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 1.2, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 353.129, + "computedY" : 250.252, + "placementX" : 353.129, + "placementY" : 250.252, + "placementWidth" : 107.0, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.0, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 353.129, + "computedY" : 212.732, + "placementX" : 353.129, + "placementY" : 212.732, + "placementWidth" : 210.11, + "placementHeight" : 34.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 210.11, + "contentHeight" : 34.52, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]", + "entityName" : "PaymentTerms", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 353.129, + "computedY" : 175.732, + "placementX" : 353.129, + "placementY" : 175.732, + "placementWidth" : 211.647, + "placementHeight" : 34.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.647, + "contentHeight" : 34.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]/CalendarBadge[0]", + "entityName" : "CalendarBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 361.129, + "computedY" : 181.232, + "placementX" : 361.129, + "placementY" : 181.232, + "placementWidth" : 23.0, + "placementHeight" : 23.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.0, + "contentHeight" : 23.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]/CalendarBadge[0]/Icon-payment-calendar[0]", + "entityName" : "Icon-payment-calendar", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]/CalendarBadge[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 366.379, + "computedY" : 186.482, + "placementX" : 366.379, + "placementY" : 186.482, + "placementWidth" : 12.5, + "placementHeight" : 12.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.5, + "contentHeight" : 12.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]/DueNotice[1]", + "entityName" : "DueNotice", + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 395.129, + "computedY" : 188.689, + "placementX" : 395.129, + "placementY" : 188.689, + "placementWidth" : 150.049, + "placementHeight" : 8.086, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.049, + "contentHeight" : 8.086, + "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/layout-snapshots/canonical-templates/invoice/consulting_invoice_overflow_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/consulting_invoice_overflow_layout.json new file mode 100644 index 000000000..fda4ec506 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/consulting_invoice_overflow_layout.json @@ -0,0 +1,2867 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 534.276, + "innerHeight" : 780.89, + "margin" : { + "top" : 30.5, + "right" : 30.5, + "bottom" : 30.5, + "left" : 30.5 + } + }, + "totalPages" : 2, + "nodes" : [ { + "path" : "ConsultingInvoice[0]", + "entityName" : "ConsultingInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 30.5, + "computedY" : -478.114, + "placementX" : 30.5, + "placementY" : -478.114, + "placementWidth" : 534.276, + "placementHeight" : 1289.504, + "startPage" : 0, + "endPage" : 1, + "contentWidth" : 534.276, + "contentHeight" : 1289.504, + "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" : "ConsultingInvoice[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 675.406, + "placementX" : 30.5, + "placementY" : 675.406, + "placementWidth" : 534.276, + "placementHeight" : 135.984, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 534.276, + "contentHeight" : 135.984, + "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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "entityName" : "SupplierHeader", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.5, + "computedY" : 682.39, + "placementX" : 30.5, + "placementY" : 682.39, + "placementWidth" : 259.731, + "placementHeight" : 129.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 129.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/BrandLogoBox[0]", + "entityName" : "BrandLogoBox", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 747.39, + "placementX" : 30.5, + "placementY" : 747.39, + "placementWidth" : 259.731, + "placementHeight" : 64.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 64.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/BrandLogoBox[0]/BrandLogo[0]", + "entityName" : "BrandLogo", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/BrandLogoBox[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 747.39, + "placementX" : 30.5, + "placementY" : 747.39, + "placementWidth" : 164.874, + "placementHeight" : 64.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 164.874, + "contentHeight" : 64.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[1]", + "entityName" : "ContactBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 727.39, + "placementX" : 30.5, + "placementY" : 727.39, + "placementWidth" : 259.731, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[1]/Icon-location[0]", + "entityName" : "Icon-location", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 731.39, + "placementX" : 30.5, + "placementY" : 731.39, + "placementWidth" : 10.0, + "placementHeight" : 10.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.0, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 53.5, + "computedY" : 725.088, + "placementX" : 53.5, + "placementY" : 725.088, + "placementWidth" : 100.555, + "placementHeight" : 20.302, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.555, + "contentHeight" : 20.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[2]", + "entityName" : "ContactBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 712.39, + "placementX" : 30.5, + "placementY" : 712.39, + "placementWidth" : 259.731, + "placementHeight" : 13.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 13.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[2]/Icon-phone[0]", + "entityName" : "Icon-phone", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 714.29, + "placementX" : 30.5, + "placementY" : 714.29, + "placementWidth" : 9.2, + "placementHeight" : 9.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.2, + "contentHeight" : 9.2, + "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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 53.5, + "computedY" : 714.102, + "placementX" : 53.5, + "placementY" : 714.102, + "placementWidth" : 53.974, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 53.974, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[3]", + "entityName" : "ContactBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 697.39, + "placementX" : 30.5, + "placementY" : 697.39, + "placementWidth" : 259.731, + "placementHeight" : 13.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 13.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[3]/Icon-email[0]", + "entityName" : "Icon-email", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 699.29, + "placementX" : 30.5, + "placementY" : 699.29, + "placementWidth" : 9.2, + "placementHeight" : 9.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.2, + "contentHeight" : 9.2, + "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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[3]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 53.5, + "computedY" : 699.102, + "placementX" : 53.5, + "placementY" : 699.102, + "placementWidth" : 86.464, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.464, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[4]", + "entityName" : "ContactBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 682.39, + "placementX" : 30.5, + "placementY" : 682.39, + "placementWidth" : 259.731, + "placementHeight" : 13.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.731, + "contentHeight" : 13.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[4]/Icon-website[0]", + "entityName" : "Icon-website", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 684.19, + "placementX" : 30.5, + "placementY" : 684.19, + "placementWidth" : 9.4, + "placementHeight" : 9.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.4, + "contentHeight" : 9.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" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/SupplierHeader[0]/ContactBand[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 53.5, + "computedY" : 684.102, + "placementX" : 53.5, + "placementY" : 684.102, + "placementWidth" : 63.174, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.174, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "entityName" : "InvoiceHeader", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 315.231, + "computedY" : 675.406, + "placementX" : 315.231, + "placementY" : 675.406, + "placementWidth" : 249.545, + "placementHeight" : 135.984, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.545, + "contentHeight" : 135.984, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 24.0 + } + }, { + "path" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 778.406, + "placementX" : 339.231, + "placementY" : 778.406, + "placementWidth" : 128.001, + "placementHeight" : 32.984, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 128.001, + "contentHeight" : 32.984, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[1]", + "entityName" : "MetadataBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 751.406, + "placementX" : 339.231, + "placementY" : 751.406, + "placementWidth" : 225.545, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.545, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 339.231, + "computedY" : 755.618, + "placementX" : 339.231, + "placementY" : 755.618, + "placementWidth" : 57.812, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.812, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 447.492, + "computedY" : 755.086, + "placementX" : 447.492, + "placementY" : 755.086, + "placementWidth" : 57.509, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.509, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[2]", + "entityName" : "MetadataBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 732.406, + "placementX" : 339.231, + "placementY" : 732.406, + "placementWidth" : 225.545, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.545, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 339.231, + "computedY" : 736.618, + "placementX" : 339.231, + "placementY" : 736.618, + "placementWidth" : 38.475, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.475, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 447.492, + "computedY" : 736.086, + "placementX" : 447.492, + "placementY" : 736.086, + "placementWidth" : 47.5, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.5, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[3]", + "entityName" : "MetadataBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 713.406, + "placementX" : 339.231, + "placementY" : 713.406, + "placementWidth" : 225.545, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.545, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 339.231, + "computedY" : 717.618, + "placementX" : 339.231, + "placementY" : 717.618, + "placementWidth" : 33.796, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.796, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[3]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 447.492, + "computedY" : 717.086, + "placementX" : 447.492, + "placementY" : 717.086, + "placementWidth" : 50.396, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.396, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[4]", + "entityName" : "MetadataBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 694.406, + "placementX" : 339.231, + "placementY" : 694.406, + "placementWidth" : 225.545, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.545, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[4]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 339.231, + "computedY" : 698.618, + "placementX" : 339.231, + "placementY" : 698.618, + "placementWidth" : 26.635, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.635, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 447.492, + "computedY" : 698.086, + "placementX" : 447.492, + "placementY" : 698.086, + "placementWidth" : 109.235, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.235, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[5]", + "entityName" : "MetadataBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 339.231, + "computedY" : 675.406, + "placementX" : 339.231, + "placementY" : 675.406, + "placementWidth" : 225.545, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 225.545, + "contentHeight" : 18.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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[5]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 339.231, + "computedY" : 679.618, + "placementX" : 339.231, + "placementY" : 679.618, + "placementWidth" : 41.82, + "placementHeight" : 9.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.82, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[5]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Masthead[0]/InvoiceHeader[1]/MetadataBand[5]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 447.492, + "computedY" : 679.086, + "placementX" : 447.492, + "placementY" : 679.086, + "placementWidth" : 32.665, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.665, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/SpacerNode[1]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 659.406, + "placementX" : 30.5, + "placementY" : 659.406, + "placementWidth" : 0.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.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" : "ConsultingInvoice[0]/PartiesAndSummary[2]", + "entityName" : "PartiesAndSummary", + "entityKind" : "RowNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 561.63, + "placementX" : 30.5, + "placementY" : 561.63, + "placementWidth" : 534.276, + "placementHeight" : 97.776, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 534.276, + "contentHeight" : 97.776, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "entityName" : "BilledTo", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.5, + "computedY" : 561.63, + "placementX" : 30.5, + "placementY" : 561.63, + "placementWidth" : 116.538, + "placementHeight" : 97.776, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.538, + "contentHeight" : 97.776, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 647.17, + "placementX" : 30.5, + "placementY" : 647.17, + "placementWidth" : 56.469, + "placementHeight" : 12.236, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.469, + "contentHeight" : 12.236, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 640.47, + "placementX" : 30.5, + "placementY" : 640.47, + "placementWidth" : 30.0, + "placementHeight" : 1.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 1.2, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 624.33, + "placementX" : 30.5, + "placementY" : 624.33, + "placementWidth" : 97.219, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.219, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 612.19, + "placementX" : 30.5, + "placementY" : 612.19, + "placementWidth" : 116.538, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.538, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/ParagraphNode[4]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 578.77, + "placementX" : 30.5, + "placementY" : 578.77, + "placementWidth" : 76.129, + "placementHeight" : 31.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.129, + "contentHeight" : 31.92, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]/ParagraphNode[5]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/BilledTo[0]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 561.63, + "placementX" : 30.5, + "placementY" : 561.63, + "placementWidth" : 114.008, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 114.008, + "contentHeight" : 10.64, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]", + "entityName" : "InvoiceSummary", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 340.102, + "computedY" : 601.7, + "placementX" : 340.102, + "placementY" : 601.7, + "placementWidth" : 205.246, + "placementHeight" : 57.706, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.246, + "contentHeight" : 57.706, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 340.102, + "computedY" : 647.17, + "placementX" : 340.102, + "placementY" : 647.17, + "placementWidth" : 109.748, + "placementHeight" : 12.236, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.748, + "contentHeight" : 12.236, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 340.102, + "computedY" : 640.97, + "placementX" : 340.102, + "placementY" : 640.97, + "placementWidth" : 30.0, + "placementHeight" : 1.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 1.2, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 340.102, + "computedY" : 613.34, + "placementX" : 340.102, + "placementY" : 613.34, + "placementWidth" : 205.246, + "placementHeight" : 22.63, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.246, + "contentHeight" : 22.63, + "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" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PartiesAndSummary[2]/InvoiceSummary[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 340.102, + "computedY" : 601.7, + "placementX" : 340.102, + "placementY" : 601.7, + "placementWidth" : 100.259, + "placementHeight" : 10.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.259, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/SpacerNode[3]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 551.63, + "placementX" : 30.5, + "placementY" : 551.63, + "placementWidth" : 0.0, + "placementHeight" : 10.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/LineItems[4]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 60.028, + "placementX" : 30.5, + "placementY" : 60.028, + "placementWidth" : 534.276, + "placementHeight" : 830.732, + "startPage" : 0, + "endPage" : 1, + "contentWidth" : 534.276, + "contentHeight" : 830.732, + "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" : "ConsultingInvoice[0]/Totals[5]", + "entityName" : "Totals", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 340.38, + "computedY" : 374.108, + "placementX" : 340.38, + "placementY" : 374.108, + "placementWidth" : 224.396, + "placementHeight" : 63.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 224.396, + "contentHeight" : 63.0, + "margin" : { + "top" : 6.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 309.88 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalRow[0]", + "entityName" : "TotalRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 340.38, + "computedY" : 422.108, + "placementX" : 340.38, + "placementY" : 422.108, + "placementWidth" : 224.396, + "placementHeight" : 15.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 224.396, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/Totals[5]/TotalRow[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 424.82, + "placementX" : 340.38, + "placementY" : 424.82, + "placementWidth" : 48.301, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 48.301, + "contentHeight" : 9.576, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalRow[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 424.288, + "placementX" : 340.38, + "placementY" : 424.288, + "placementWidth" : 224.396, + "placementHeight" : 10.64, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 224.396, + "contentHeight" : 10.64, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 10.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalRow[1]", + "entityName" : "TotalRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 340.38, + "computedY" : 406.108, + "placementX" : 340.38, + "placementY" : 406.108, + "placementWidth" : 224.396, + "placementHeight" : 15.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 224.396, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/Totals[5]/TotalRow[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalRow[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 408.82, + "placementX" : 340.38, + "placementY" : 408.82, + "placementWidth" : 47.419, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 47.419, + "contentHeight" : 9.576, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalRow[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalRow[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 408.288, + "placementX" : 340.38, + "placementY" : 408.288, + "placementWidth" : 224.396, + "placementHeight" : 10.64, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 224.396, + "contentHeight" : 10.64, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 10.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/LineNode[2]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 340.38, + "computedY" : 402.108, + "placementX" : 340.38, + "placementY" : 402.108, + "placementWidth" : 224.396, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 224.396, + "contentHeight" : 1.0, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalDue[3]", + "entityName" : "TotalDue", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 340.38, + "computedY" : 374.108, + "placementX" : 340.38, + "placementY" : 374.108, + "placementWidth" : 224.396, + "placementHeight" : 27.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 224.396, + "contentHeight" : 27.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" : "ConsultingInvoice[0]/Totals[5]/TotalDue[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalDue[3]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 382.288, + "placementX" : 340.38, + "placementY" : 382.288, + "placementWidth" : 79.135, + "placementHeight" : 10.64, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 79.135, + "contentHeight" : 10.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" : 13.0 + } + }, { + "path" : "ConsultingInvoice[0]/Totals[5]/TotalDue[3]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/Totals[5]/TotalDue[3]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 340.38, + "computedY" : 378.032, + "placementX" : 340.38, + "placementY" : 378.032, + "placementWidth" : 224.396, + "placementHeight" : 19.152, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 224.396, + "contentHeight" : 19.152, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 10.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/LineNode[6]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 368.108, + "placementX" : 30.5, + "placementY" : 368.108, + "placementWidth" : 534.276, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 534.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 5.0, + "right" : 0.0, + "bottom" : 5.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PaymentAndNotes[7]", + "entityName" : "PaymentAndNotes", + "entityKind" : "RowNode", + "parentPath" : "ConsultingInvoice[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 30.5, + "computedY" : 244.096, + "placementX" : 30.5, + "placementY" : 244.096, + "placementWidth" : 534.276, + "placementHeight" : 119.012, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 534.276, + "contentHeight" : 119.012, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]", + "entityName" : "PaymentInformation", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.5, + "computedY" : 244.096, + "placementX" : 30.5, + "placementY" : 244.096, + "placementWidth" : 276.629, + "placementHeight" : 119.012, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 276.629, + "contentHeight" : 119.012, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 350.872, + "placementX" : 30.5, + "placementY" : 350.872, + "placementWidth" : 139.604, + "placementHeight" : 12.236, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 139.604, + "contentHeight" : 12.236, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 342.672, + "placementX" : 30.5, + "placementY" : 342.672, + "placementWidth" : 30.0, + "placementHeight" : 1.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 30.0, + "contentHeight" : 1.2, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]", + "entityName" : "BankInformationBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 260.672, + "placementX" : 30.5, + "placementY" : 260.672, + "placementWidth" : 276.629, + "placementHeight" : 75.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 276.629, + "contentHeight" : 75.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankBadge[0]", + "entityName" : "BankBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.5, + "computedY" : 279.172, + "placementX" : 30.5, + "placementY" : 279.172, + "placementWidth" : 38.0, + "placementHeight" : 38.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 38.0, + "contentHeight" : 38.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankBadge[0]/Icon-bank[0]", + "entityName" : "Icon-bank", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankBadge[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 39.75, + "computedY" : 288.422, + "placementX" : 39.75, + "placementY" : 288.422, + "placementWidth" : 19.5, + "placementHeight" : 19.5, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 19.5, + "contentHeight" : 19.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "entityName" : "BankDetails", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 88.5, + "computedY" : 260.672, + "placementX" : 88.5, + "placementY" : 260.672, + "placementWidth" : 215.629, + "placementHeight" : 75.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 215.629, + "contentHeight" : 75.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[0]", + "entityName" : "BankField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 88.5, + "computedY" : 320.672, + "placementX" : 88.5, + "placementY" : 320.672, + "placementWidth" : 215.629, + "placementHeight" : 15.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 215.629, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 88.5, + "computedY" : 323.384, + "placementX" : 88.5, + "placementY" : 323.384, + "placementWidth" : 42.627, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 42.627, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 164.5, + "computedY" : 323.384, + "placementX" : 164.5, + "placementY" : 323.384, + "placementWidth" : 47.545, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 47.545, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[1]", + "entityName" : "BankField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 88.5, + "computedY" : 305.672, + "placementX" : 88.5, + "placementY" : 305.672, + "placementWidth" : 215.629, + "placementHeight" : 15.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 215.629, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 88.5, + "computedY" : 308.384, + "placementX" : 88.5, + "placementY" : 308.384, + "placementWidth" : 54.31, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 54.31, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 164.5, + "computedY" : 308.384, + "placementX" : 164.5, + "placementY" : 308.384, + "placementWidth" : 98.845, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 98.845, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[2]", + "entityName" : "BankField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 88.5, + "computedY" : 290.672, + "placementX" : 88.5, + "placementY" : 290.672, + "placementWidth" : 215.629, + "placementHeight" : 15.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 215.629, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 88.5, + "computedY" : 293.384, + "placementX" : 88.5, + "placementY" : 293.384, + "placementWidth" : 15.164, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 15.164, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[2]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 164.5, + "computedY" : 293.384, + "placementX" : 164.5, + "placementY" : 293.384, + "placementWidth" : 26.861, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 26.861, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[3]", + "entityName" : "BankField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 88.5, + "computedY" : 275.672, + "placementX" : 88.5, + "placementY" : 275.672, + "placementWidth" : 215.629, + "placementHeight" : 15.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 215.629, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[3]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 88.5, + "computedY" : 278.384, + "placementX" : 88.5, + "placementY" : 278.384, + "placementWidth" : 61.847, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 61.847, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[3]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[3]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 164.5, + "computedY" : 278.384, + "placementX" : 164.5, + "placementY" : 278.384, + "placementWidth" : 31.143, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 31.143, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[4]", + "entityName" : "BankField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]", + "childIndex" : 4, + "depth" : 6, + "layer" : 6, + "computedX" : 88.5, + "computedY" : 260.672, + "placementX" : 88.5, + "placementY" : 260.672, + "placementWidth" : 215.629, + "placementHeight" : 15.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 215.629, + "contentHeight" : 15.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[4]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[4]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 88.5, + "computedY" : 263.384, + "placementX" : 88.5, + "placementY" : 263.384, + "placementWidth" : 37.394, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 37.394, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/BankInformationBand[2]/BankDetails[1]/BankField[4]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 164.5, + "computedY" : 263.384, + "placementX" : 164.5, + "placementY" : 263.384, + "placementWidth" : 51.758, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 51.758, + "contentHeight" : 9.576, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/PaymentInformation[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 30.5, + "computedY" : 244.096, + "placementX" : 30.5, + "placementY" : 244.096, + "placementWidth" : 246.452, + "placementHeight" : 9.576, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 246.452, + "contentHeight" : 9.576, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "entityName" : "Notes", + "entityKind" : "SectionNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 329.129, + "computedY" : 250.512, + "placementX" : 329.129, + "placementY" : 250.512, + "placementWidth" : 235.647, + "placementHeight" : 112.596, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 235.647, + "contentHeight" : 112.596, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 24.0 + } + }, { + "path" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 353.129, + "computedY" : 350.872, + "placementX" : 353.129, + "placementY" : 350.872, + "placementWidth" : 36.122, + "placementHeight" : 12.236, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 36.122, + "contentHeight" : 12.236, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 353.129, + "computedY" : 342.672, + "placementX" : 353.129, + "placementY" : 342.672, + "placementWidth" : 30.0, + "placementHeight" : 1.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 30.0, + "contentHeight" : 1.2, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 353.129, + "computedY" : 325.032, + "placementX" : 353.129, + "placementY" : 325.032, + "placementWidth" : 107.0, + "placementHeight" : 10.64, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 107.0, + "contentHeight" : 10.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 353.129, + "computedY" : 287.512, + "placementX" : 353.129, + "placementY" : 287.512, + "placementWidth" : 210.11, + "placementHeight" : 34.52, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 210.11, + "contentHeight" : 34.52, + "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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]", + "entityName" : "PaymentTerms", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 353.129, + "computedY" : 250.512, + "placementX" : 353.129, + "placementY" : 250.512, + "placementWidth" : 211.647, + "placementHeight" : 34.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 211.647, + "contentHeight" : 34.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]/CalendarBadge[0]", + "entityName" : "CalendarBadge", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 361.129, + "computedY" : 256.012, + "placementX" : 361.129, + "placementY" : 256.012, + "placementWidth" : 23.0, + "placementHeight" : 23.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 23.0, + "contentHeight" : 23.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]/CalendarBadge[0]/Icon-payment-calendar[0]", + "entityName" : "Icon-payment-calendar", + "entityKind" : "ImageNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]/CalendarBadge[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 366.379, + "computedY" : 261.262, + "placementX" : 366.379, + "placementY" : 261.262, + "placementWidth" : 12.5, + "placementHeight" : 12.5, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 12.5, + "contentHeight" : 12.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" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]/DueNotice[1]", + "entityName" : "DueNotice", + "entityKind" : "ParagraphNode", + "parentPath" : "ConsultingInvoice[0]/PaymentAndNotes[7]/Notes[1]/PaymentTerms[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 395.129, + "computedY" : 263.469, + "placementX" : 395.129, + "placementY" : 263.469, + "placementWidth" : 150.049, + "placementHeight" : 8.086, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 150.049, + "contentHeight" : 8.086, + "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/sample-data/consulting-invoice-logo.png b/qa/src/test/resources/sample-data/consulting-invoice-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a37e806486b297bcf0269815eeb347baacc3e5 GIT binary patch literal 64808 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 M07*qoM6N<$f-YJo^8f$< literal 0 HcmV?d00001 diff --git a/qa/src/test/resources/visual-baselines/invoice-v2-layered/consulting_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/consulting_invoice-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..d491ee7ed3711b74bdd6d3368a68307ebd790e05 GIT binary patch literal 94555 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 literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceBrand.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceBrand.java new file mode 100644 index 000000000..90fc685a0 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceBrand.java @@ -0,0 +1,47 @@ +package com.demcha.compose.document.templates.data.invoice; + +import com.demcha.compose.document.image.DocumentImageData; + +import java.util.Objects; + +/** + * The sender's brand lockup on a structured invoice: the logo image and + * the wordmark lines beside it. + * + *

    The logo is caller-supplied content, not template chrome — the caller + * hands over a {@link DocumentImageData} built from its own bytes or path, + * the way it would for any other image it owns. It is optional: with no + * logo a preset falls back to the wordmark alone, so an invoice composes + * without one.

    + * + * @param logo the logo image, or {@code null} for the wordmark-only + * lockup + * @param name the brand name, set as the wordmark + * @param qualifier the second wordmark line under the name (e.g. the + * business type) + * @param tagline the tagline under the lockup + */ +public record InvoiceBrand( + DocumentImageData logo, + String name, + String qualifier, + String tagline) { + + /** + * Normalizes the optional text fields; the logo stays nullable. + */ + public InvoiceBrand { + name = Objects.requireNonNullElse(name, ""); + qualifier = Objects.requireNonNullElse(qualifier, ""); + tagline = Objects.requireNonNullElse(tagline, ""); + } + + /** + * Whether this lockup carries a logo image. + * + * @return {@code true} when a logo was supplied + */ + public boolean hasLogo() { + return logo != null; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java new file mode 100644 index 000000000..d31873d86 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java @@ -0,0 +1,45 @@ +package com.demcha.compose.document.templates.data.invoice; + +import java.util.List; +import java.util.Objects; + +/** + * The sender's address and contact channels on a structured invoice. + * + *

    Distinct from {@link InvoiceParty}, the narrative model's party + * record: this block carries a website channel and a labelled business + * registration (ABN, VAT or company number — the label is content because + * it differs by jurisdiction), which a structured invoice prints in its + * contact band and its footer.

    + * + * @param legalName the registered business name + * @param addressLines the address lines, in order + * @param phone the phone channel + * @param email the email channel + * @param website the website channel + * @param registrationLabel the label of the registration number + * (e.g. {@code "ABN"}) + * @param registrationNumber the registration number itself + */ +public record InvoiceContactBlock( + String legalName, + List addressLines, + String phone, + String email, + String website, + String registrationLabel, + String registrationNumber) { + + /** + * Normalizes optional fields and freezes the address lines. + */ + public InvoiceContactBlock { + legalName = Objects.requireNonNullElse(legalName, ""); + addressLines = List.copyOf(Objects.requireNonNullElse(addressLines, List.of())); + phone = Objects.requireNonNullElse(phone, ""); + email = Objects.requireNonNullElse(email, ""); + website = Objects.requireNonNullElse(website, ""); + registrationLabel = Objects.requireNonNullElse(registrationLabel, ""); + registrationNumber = Objects.requireNonNullElse(registrationNumber, ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceMasthead.java new file mode 100644 index 000000000..6f86da5d5 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceMasthead.java @@ -0,0 +1,48 @@ +package com.demcha.compose.document.templates.data.invoice; + +import java.util.List; +import java.util.Objects; + +/** + * The masthead of a structured invoice: the document title and the + * label / value metadata printed beside it. + * + *

    The metadata is an authored list rather than fixed fields, so an + * invoice prints exactly the rows its business needs — number, dates, + * project, purchase order, contract reference — in the order and wording + * it uses. That is why the labels live in the data: they differ per + * sender, and a preset cannot know them.

    + * + * @param title the document title (e.g. {@code "INVOICE"}) + * @param entries the metadata rows, in print order + */ +public record InvoiceMasthead(String title, List entries) { + + /** + * Normalizes the title and freezes the entry list. + */ + public InvoiceMasthead { + title = Objects.requireNonNullElse(title, ""); + entries = List.copyOf(Objects.requireNonNullElse(entries, List.of())); + } + + /** + * One metadata row. + * + * @param label the row label + * @param value the row value + * @param emphasized whether the value carries emphasis — the due date + * is the usual case; presets are expected to set an + * emphasized value apart + */ + public record Entry(String label, String value, boolean emphasized) { + + /** + * Normalizes optional fields to empty strings. + */ + public Entry { + label = Objects.requireNonNullElse(label, ""); + value = Objects.requireNonNullElse(value, ""); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceNotesBlock.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceNotesBlock.java new file mode 100644 index 000000000..9ab469ef3 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceNotesBlock.java @@ -0,0 +1,30 @@ +package com.demcha.compose.document.templates.data.invoice; + +import java.util.List; +import java.util.Objects; + +/** + * The closing notes of a structured invoice, with the channels to raise a + * query on. + * + * @param heading the block heading (e.g. {@code "NOTES"}) + * @param paragraphs the note paragraphs, in order + * @param contactEmail the email address a query goes to + * @param contactPhone the phone number a query goes to + */ +public record InvoiceNotesBlock( + String heading, + List paragraphs, + String contactEmail, + String contactPhone) { + + /** + * Normalizes optional fields and freezes the paragraph list. + */ + public InvoiceNotesBlock { + heading = Objects.requireNonNullElse(heading, ""); + paragraphs = List.copyOf(Objects.requireNonNullElse(paragraphs, List.of())); + contactEmail = Objects.requireNonNullElse(contactEmail, ""); + contactPhone = Objects.requireNonNullElse(contactPhone, ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoicePaymentBlock.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoicePaymentBlock.java new file mode 100644 index 000000000..f8d2184b0 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoicePaymentBlock.java @@ -0,0 +1,61 @@ +package com.demcha.compose.document.templates.data.invoice; + +import java.util.List; +import java.util.Objects; + +/** + * The payment-information block of a structured invoice: where to send the + * money, and by when. + * + *

    Distinct from the narrative model's + * {@link InvoiceData#paymentTerms()}, a list of prose bullets: the fields + * here are labelled values printed as a table (bank, account name, sort + * code or BSB, account number, payment reference), because a payer reads + * them one field at a time. The labels are content — they differ by + * banking system.

    + * + * @param heading the block heading + * (e.g. {@code "PAYMENT INFORMATION"}) + * @param fields the labelled payment fields, in print order + * @param instruction the sentence under the fields + * @param dueNotice the short due-by notice set apart from the rest + * @param dueNoticeEmphasis the run inside {@code dueNotice} that carries + * the emphasis — usually the term itself, as in + * {@code "30 days"}; empty leaves the notice + * evenly set + */ +public record InvoicePaymentBlock( + String heading, + List fields, + String instruction, + String dueNotice, + String dueNoticeEmphasis) { + + /** + * Normalizes optional fields and freezes the field list. + */ + public InvoicePaymentBlock { + heading = Objects.requireNonNullElse(heading, ""); + fields = List.copyOf(Objects.requireNonNullElse(fields, List.of())); + instruction = Objects.requireNonNullElse(instruction, ""); + dueNotice = Objects.requireNonNullElse(dueNotice, ""); + dueNoticeEmphasis = Objects.requireNonNullElse(dueNoticeEmphasis, ""); + } + + /** + * One labelled payment field. + * + * @param label the field label + * @param value the field value + */ + public record Field(String label, String value) { + + /** + * Normalizes optional fields to empty strings. + */ + public Field { + label = Objects.requireNonNullElse(label, ""); + value = Objects.requireNonNullElse(value, ""); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceRecipient.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceRecipient.java new file mode 100644 index 000000000..777dddb9d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceRecipient.java @@ -0,0 +1,42 @@ +package com.demcha.compose.document.templates.data.invoice; + +import java.util.List; +import java.util.Objects; + +/** + * The billed-to block of a structured invoice. + * + *

    The block owns its heading, and the lines under the recipient's name + * come in two groups because a preset sets them apart: the {@code subline} + * is the single attention line — a department, a contact, a cost centre — + * that sits directly under the name, and {@code addressLines} is the + * address block under that.

    + * + * @param heading the block heading (e.g. {@code "BILLED TO"}) + * @param name the recipient's name, set apart from the lines below + * @param subline the attention line under the name; empty when the + * recipient has none + * @param addressLines the address lines, in order + * @param emailLabel the label printed before the email address + * @param email the recipient's email address + */ +public record InvoiceRecipient( + String heading, + String name, + String subline, + List addressLines, + String emailLabel, + String email) { + + /** + * Normalizes optional fields and freezes the address lines. + */ + public InvoiceRecipient { + heading = Objects.requireNonNullElse(heading, ""); + name = Objects.requireNonNullElse(name, ""); + subline = Objects.requireNonNullElse(subline, ""); + addressLines = List.copyOf(Objects.requireNonNullElse(addressLines, List.of())); + emailLabel = Objects.requireNonNullElse(emailLabel, ""); + email = Objects.requireNonNullElse(email, ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java new file mode 100644 index 000000000..e89e3624d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java @@ -0,0 +1,100 @@ +package com.demcha.compose.document.templates.data.invoice; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Objects; + +/** + * The line-items table of a structured invoice: its column labels and its + * priced service lines. + * + *

    Distinct from the narrative model's {@link InvoiceLineItem}, whose + * quantity, unit price and amount are pre-formatted strings: a service + * line carries {@link BigDecimal} figures plus the unit they are counted + * in, so the preset formats them against the document's currency and the + * caller keeps the arithmetic. The column labels are content because the + * currency code and the wording appear inside them.

    + * + * @param columns the column labels + * @param lines the priced service lines, in print order + */ +public record InvoiceServiceLines(Columns columns, List lines) { + + /** + * Normalizes an absent column set and freezes the line list. + */ + public InvoiceServiceLines { + columns = columns == null ? new Columns(null, null, null, null, null, null) : columns; + lines = List.copyOf(Objects.requireNonNullElse(lines, List.of())); + } + + /** + * The table's column labels, in column order. + * + * @param index label of the line-number column + * @param description label of the description column + * @param servicePeriod label of the service-period column + * @param quantity label of the quantity column + * @param unitPrice label of the unit-price column + * @param amount label of the amount column + */ + public record Columns( + String index, + String description, + String servicePeriod, + String quantity, + String unitPrice, + String amount) { + + /** + * Normalizes optional labels to empty strings. + */ + public Columns { + index = Objects.requireNonNullElse(index, ""); + description = Objects.requireNonNullElse(description, ""); + servicePeriod = Objects.requireNonNullElse(servicePeriod, ""); + quantity = Objects.requireNonNullElse(quantity, ""); + unitPrice = Objects.requireNonNullElse(unitPrice, ""); + amount = Objects.requireNonNullElse(amount, ""); + } + } + + /** + * One priced service line. + * + * @param lineNumber the printed line number + * @param title the service title, set apart from the description + * @param description the description under the title + * @param servicePeriod the period this line covers + * @param quantity how much was delivered; {@code null} normalizes + * to {@link BigDecimal#ZERO} + * @param unit what the quantity counts (e.g. {@code "hrs"}) + * @param unitPrice the price per unit; {@code null} normalizes to + * {@link BigDecimal#ZERO} + * @param amount the line total; {@code null} normalizes to + * {@link BigDecimal#ZERO} + */ + public record Line( + int lineNumber, + String title, + String description, + String servicePeriod, + BigDecimal quantity, + String unit, + BigDecimal unitPrice, + BigDecimal amount) { + + /** + * Normalizes optional fields. + */ + public Line { + title = Objects.requireNonNullElse(title, ""); + description = Objects.requireNonNullElse(description, ""); + servicePeriod = Objects.requireNonNullElse(servicePeriod, ""); + quantity = Objects.requireNonNullElse(quantity, BigDecimal.ZERO); + unit = Objects.requireNonNullElse(unit, ""); + unitPrice = Objects.requireNonNullElse(unitPrice, BigDecimal.ZERO); + amount = Objects.requireNonNullElse(amount, BigDecimal.ZERO); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceSummaryBlock.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceSummaryBlock.java new file mode 100644 index 000000000..e857c2e10 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceSummaryBlock.java @@ -0,0 +1,23 @@ +package com.demcha.compose.document.templates.data.invoice; + +import java.util.Objects; + +/** + * The summary block of a structured invoice: what the invoice covers and + * the period it covers it for. + * + * @param heading the block heading (e.g. {@code "INVOICE SUMMARY"}) + * @param intro the prose sentence introducing the work billed + * @param servicePeriod the billed period, set apart from the intro + */ +public record InvoiceSummaryBlock(String heading, String intro, String servicePeriod) { + + /** + * Normalizes optional fields to empty strings. + */ + public InvoiceSummaryBlock { + heading = Objects.requireNonNullElse(heading, ""); + intro = Objects.requireNonNullElse(intro, ""); + servicePeriod = Objects.requireNonNullElse(servicePeriod, ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceTotalsBlock.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceTotalsBlock.java new file mode 100644 index 000000000..ccab355ac --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceTotalsBlock.java @@ -0,0 +1,51 @@ +package com.demcha.compose.document.templates.data.invoice; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Objects; + +/** + * The totals stack of a structured invoice: the rows leading up to the + * grand total, and the total band itself. + * + *

    Distinct from the narrative model's {@link InvoiceSummaryRow} list, + * where the grand total is the last row and is recognised by convention: + * here the total is its own labelled band with its own amount, so a preset + * renders it without inspecting the list.

    + * + * @param rows the rows above the total (subtotal, tax, discounts), + * in print order + * @param totalLabel the label of the total band + * @param totalAmount the amount of the total band; {@code null} normalizes + * to {@link BigDecimal#ZERO} + */ +public record InvoiceTotalsBlock(List rows, String totalLabel, BigDecimal totalAmount) { + + /** + * Normalizes optional fields and freezes the row list. + */ + public InvoiceTotalsBlock { + rows = List.copyOf(Objects.requireNonNullElse(rows, List.of())); + totalLabel = Objects.requireNonNullElse(totalLabel, ""); + totalAmount = Objects.requireNonNullElse(totalAmount, BigDecimal.ZERO); + } + + /** + * One row above the total band. + * + * @param label the row label, carrying its own wording (e.g. a tax + * name and rate) + * @param amount the row amount; {@code null} normalizes to + * {@link BigDecimal#ZERO} + */ + public record Row(String label, BigDecimal amount) { + + /** + * Normalizes optional fields. + */ + public Row { + label = Objects.requireNonNullElse(label, ""); + amount = Objects.requireNonNullElse(amount, BigDecimal.ZERO); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceData.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceData.java new file mode 100644 index 000000000..d685766bb --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceData.java @@ -0,0 +1,215 @@ +package com.demcha.compose.document.templates.data.invoice; + +import java.util.Objects; + +/** + * Structured input for business invoice documents. + * + *

    The display model ({@link InvoiceData}) carries an invoice as + * pre-formatted strings: one address block per party, line items whose + * quantity and money are already rendered, and a flat list of summary + * rows. This model is the structured business invoice: a brand lockup with + * the sender's own logo, labelled masthead metadata, a contact block with + * a business registration, priced service lines carrying + * {@link java.math.BigDecimal} figures and the unit they are counted in, a + * totals stack with its own total band, bank payment fields, and a footer + * line. Each block owns its heading and labels, so the wording is content + * rather than a preset choice.

    + * + *

    Both models stay: a preset consumes the one whose shape it renders. + * Every component normalizes {@code null} to its empty form, so a partial + * document composes without null checks in preset code. The section + * records construct positionally; this builder is where a document is + * assembled.

    + * + * @param brand the sender's brand lockup + * @param supplier the sender's address and contact channels + * @param masthead the document title and its metadata rows + * @param billTo the billed-to block + * @param summary what the invoice covers, and for which period + * @param serviceLines the line-items table + * @param totals the totals stack and its total band + * @param payment where to send the money, and by when + * @param notes the closing notes and query channels + * @param currencyCode the ISO currency code the figures are stated in + */ +public record StructuredInvoiceData( + InvoiceBrand brand, + InvoiceContactBlock supplier, + InvoiceMasthead masthead, + InvoiceRecipient billTo, + InvoiceSummaryBlock summary, + InvoiceServiceLines serviceLines, + InvoiceTotalsBlock totals, + InvoicePaymentBlock payment, + InvoiceNotesBlock notes, + String currencyCode) { + + /** + * Normalizes absent components to their empty forms. + */ + public StructuredInvoiceData { + brand = brand == null ? new InvoiceBrand(null, null, null, null) : brand; + supplier = supplier == null + ? new InvoiceContactBlock(null, null, null, null, null, null, null) : supplier; + masthead = masthead == null ? new InvoiceMasthead(null, null) : masthead; + billTo = billTo == null + ? new InvoiceRecipient(null, null, null, null, null, null) : billTo; + summary = summary == null ? new InvoiceSummaryBlock(null, null, null) : summary; + serviceLines = serviceLines == null + ? new InvoiceServiceLines(null, null) : serviceLines; + totals = totals == null ? new InvoiceTotalsBlock(null, null, null) : totals; + payment = payment == null + ? new InvoicePaymentBlock(null, null, null, null, null) : payment; + notes = notes == null ? new InvoiceNotesBlock(null, null, null, null) : notes; + currencyCode = Objects.requireNonNullElse(currencyCode, ""); + } + + /** + * Starts a fluent structured invoice data builder. + * + * @return structured invoice data builder + */ + public static Builder builder() { + return new Builder(); + } + + /** + * Fluent builder for complete structured invoice content. + */ + public static final class Builder { + private InvoiceBrand brand; + private InvoiceContactBlock supplier; + private InvoiceMasthead masthead; + private InvoiceRecipient billTo; + private InvoiceSummaryBlock summary; + private InvoiceServiceLines serviceLines; + private InvoiceTotalsBlock totals; + private InvoicePaymentBlock payment; + private InvoiceNotesBlock notes; + private String currencyCode; + + private Builder() { + } + + /** + * Sets the sender's brand lockup. + * + * @param brand brand lockup + * @return this builder + */ + public Builder brand(InvoiceBrand brand) { + this.brand = brand; + return this; + } + + /** + * Sets the sender's address and contact channels. + * + * @param supplier contact block + * @return this builder + */ + public Builder supplier(InvoiceContactBlock supplier) { + this.supplier = supplier; + return this; + } + + /** + * Sets the document title and its metadata rows. + * + * @param masthead masthead + * @return this builder + */ + public Builder masthead(InvoiceMasthead masthead) { + this.masthead = masthead; + return this; + } + + /** + * Sets the billed-to block. + * + * @param billTo recipient block + * @return this builder + */ + public Builder billTo(InvoiceRecipient billTo) { + this.billTo = billTo; + return this; + } + + /** + * Sets what the invoice covers, and for which period. + * + * @param summary summary block + * @return this builder + */ + public Builder summary(InvoiceSummaryBlock summary) { + this.summary = summary; + return this; + } + + /** + * Sets the line-items table. + * + * @param serviceLines service lines + * @return this builder + */ + public Builder serviceLines(InvoiceServiceLines serviceLines) { + this.serviceLines = serviceLines; + return this; + } + + /** + * Sets the totals stack and its total band. + * + * @param totals totals block + * @return this builder + */ + public Builder totals(InvoiceTotalsBlock totals) { + this.totals = totals; + return this; + } + + /** + * Sets where the money goes, and by when. + * + * @param payment payment block + * @return this builder + */ + public Builder payment(InvoicePaymentBlock payment) { + this.payment = payment; + return this; + } + + /** + * Sets the closing notes and query channels. + * + * @param notes notes block + * @return this builder + */ + public Builder notes(InvoiceNotesBlock notes) { + this.notes = notes; + return this; + } + + /** + * Sets the ISO currency code the figures are stated in. + * + * @param currencyCode currency code + * @return this builder + */ + public Builder currencyCode(String currencyCode) { + this.currencyCode = currencyCode; + return this; + } + + /** + * Builds the normalized structured invoice data. + * + * @return structured invoice data + */ + public StructuredInvoiceData build() { + return new StructuredInvoiceData(brand, supplier, masthead, billTo, summary, + serviceLines, totals, payment, notes, currencyCode); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceDocumentSpec.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceDocumentSpec.java new file mode 100644 index 000000000..854d16464 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceDocumentSpec.java @@ -0,0 +1,35 @@ +package com.demcha.compose.document.templates.data.invoice; + +/** + * Public compose-first input for structured invoice templates. + * + *

    Authoring role: the document-level object structured invoice + * presets are parameterised on, the way the display-oriented presets are + * parameterised on {@link InvoiceDocumentSpec}. Presets that render the + * structured shape — brand lockup, labelled masthead metadata, priced + * service lines with a numeric totals stack, bank payment fields — + * consume this spec; presets that render pre-formatted display strings + * stay on the other one.

    + * + * @param invoice normalized structured invoice content + */ +public record StructuredInvoiceDocumentSpec(StructuredInvoiceData invoice) { + + /** + * Creates a normalized structured invoice document spec. + */ + public StructuredInvoiceDocumentSpec { + invoice = invoice == null ? StructuredInvoiceData.builder().build() : invoice; + } + + /** + * Wraps existing structured invoice data in the document-level spec + * expected by structured invoice templates. + * + * @param invoice structured invoice data + * @return document spec + */ + public static StructuredInvoiceDocumentSpec from(StructuredInvoiceData invoice) { + return new StructuredInvoiceDocumentSpec(invoice); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingBody.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingBody.java new file mode 100644 index 000000000..75c38b050 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingBody.java @@ -0,0 +1,238 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentNode; +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.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.style.ShapeOutline; +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.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceSummaryBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import java.util.List; + +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.ACCENT_PRIMARY; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BODY_ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BODY_BOLD; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.EMPHASIS_FILL; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.PAGE_BACKGROUND; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.ROW_ALT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SMALL; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SMALL_BOLD; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.TABLE_HEADER; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.TABLE_RATIOS; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.TOTALS_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.TOTAL_AMOUNT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.TOTAL_AMOUNT_RIGHT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.TOTAL_LABEL_LEFT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.tableStyle; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.decimal; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.link; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.money; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.titleBreakerWidth; + +/** + * The body of the Consulting Invoice: who is billed and for what, the + * priced service lines, and the totals stack. + */ +final class ConsultingBody { + + private ConsultingBody() { + } + + /** The billed-to block: name, attention line, address, then the email. */ + static void renderBilledTo(SectionBuilder section, StructuredInvoiceData data) { + InvoiceRecipient billTo = data.billTo(); + ConsultingMasthead.sectionHeading(section, billTo.heading()); + section.spacing(1.5).addParagraph(billTo.name(), BODY_BOLD); + // A recipient without an attention line gets no line box for it. + if (!billTo.subline().isBlank()) { + section.addParagraph(billTo.subline(), BODY); + } + section.addParagraph(String.join("\n", billTo.addressLines()), BODY); + if (!billTo.email().isBlank()) { + section.addParagraph(paragraph -> paragraph + .rich(rich -> rich + .style(billTo.emailLabel() + " ", BODY_BOLD) + .with(billTo.email(), BODY, link("mailto:" + billTo.email()))) + .margin(DocumentInsets.top(5))); + } + } + + /** What the invoice covers, and the period it covers. */ + static void renderSummary(SectionBuilder section, StructuredInvoiceData data) { + InvoiceSummaryBlock summary = data.summary(); + ConsultingMasthead.sectionHeading(section, summary.heading()); + section.spacing(1) + .addParagraph(paragraph -> paragraph + .text(summary.intro()) + .textStyle(BODY) + .lineSpacing(1.35) + .margin(DocumentInsets.zero())) + .addParagraph(paragraph -> paragraph + .text(summary.servicePeriod()) + .textStyle(BODY_BOLD) + .lineSpacing(1.15) + .margin(DocumentInsets.zero())); + } + + /** + * The line-items table: a repeating header on the accent fill, and one + * zebra-filled row per service line. The unit-price and amount headers + * carry the currency on their second line. + */ + static void renderServiceLines(TableBuilder table, StructuredInvoiceData data) { + InvoiceServiceLines serviceLines = data.serviceLines(); + InvoiceServiceLines.Columns columns = serviceLines.columns(); + // A document that states no currency prints no parenthetical. + String currency = data.currencyCode().isBlank() + ? "" : "(" + data.currencyCode() + ")"; + + DocumentTableStyle headerStyle = DocumentTableStyle.builder() + .padding(DocumentInsets.symmetric(4.5, 4.0)) + .fillColor(ACCENT_PRIMARY) + .stroke(DocumentStroke.of(ACCENT_PRIMARY, 0.6)) + .textStyle(TABLE_HEADER) + .textAnchor(DocumentTableTextAnchor.CENTER) + .lineSpacing(1.0) + .build(); + + table.name("LineItems") + .columns(column(0), column(1), column(2), column(3), column(4), column(5)) + .headerCells( + DocumentTableCell.text(columns.index()), + DocumentTableCell.text(columns.description()), + DocumentTableCell.text(columns.servicePeriod()), + DocumentTableCell.text(columns.quantity()), + DocumentTableCell.lines(columns.unitPrice(), currency), + DocumentTableCell.lines(columns.amount(), currency)) + .headerStyle(headerStyle) + .repeatHeader() + .padding(DocumentInsets.zero()) + .margin(DocumentInsets.zero()); + + List lines = serviceLines.lines(); + for (int index = 0; index < lines.size(); index++) { + InvoiceServiceLines.Line line = lines.get(index); + DocumentColor fill = index % 2 == 0 ? PAGE_BACKGROUND : ROW_ALT; + table.rowCells( + DocumentTableCell.text(Integer.toString(line.lineNumber())) + .withStyle(tableStyle(fill, DocumentTableTextAnchor.CENTER)), + DocumentTableCell.node(descriptionNode(line, fill)) + .withStyle(tableStyle(fill, DocumentTableTextAnchor.CENTER_LEFT)), + DocumentTableCell.text(line.servicePeriod()) + .withStyle(tableStyle(fill, DocumentTableTextAnchor.CENTER)), + DocumentTableCell.lines(decimal(line.quantity()), line.unit()) + .withStyle(tableStyle(fill, DocumentTableTextAnchor.CENTER)), + DocumentTableCell.text(money(line.unitPrice())) + .withStyle(tableStyle(fill, DocumentTableTextAnchor.CENTER_RIGHT)), + DocumentTableCell.text(money(line.amount())) + .withStyle(tableStyle(fill, DocumentTableTextAnchor.CENTER_RIGHT))); + } + } + + private static DocumentTableColumn column(int index) { + return DocumentTableColumn.fixed(CONTENT_WIDTH * TABLE_RATIOS[index]); + } + + /** + * The description cell: the title, an invisible breaker that fills the + * rest of the title line, then the description on its own line. The + * breaker is a zero-height rectangle in the row's own fill — the engine + * has no rich-text line break (see + * {@link ConsultingText#titleBreakerWidth(String)}). + */ + private static DocumentNode descriptionNode(InvoiceServiceLines.Line line, + DocumentColor fill) { + return new ParagraphBuilder() + .name("Description") + .align(TextAlign.LEFT) + .textStyle(SMALL) + .lineSpacing(1.15) + .margin(DocumentInsets.zero()) + .rich(rich -> rich + .style(line.title(), SMALL_BOLD) + .shape(new ShapeOutline.Rectangle(titleBreakerWidth(line.title()), 0.1), fill) + .style(line.description(), SMALL)) + .build(); + } + + /** + * The totals stack, pinned to the right of the content box and kept on + * one page: the rows above the rule, then the emphasized total band. + */ + static void renderTotals(SectionBuilder section, StructuredInvoiceData data) { + InvoiceTotalsBlock totals = data.totals(); + section.keepTogether() + .margin(6, 0, 0, (float) (CONTENT_WIDTH - TOTALS_WIDTH)) + .spacing(1); + for (InvoiceTotalsBlock.Row row : totals.rows()) { + totalsBand(section, row.label(), money(row.amount()), false); + } + section.addLine(line -> line + .horizontal(TOTALS_WIDTH) + .thickness(1.0) + .color(ACCENT_PRIMARY) + .margin(DocumentInsets.top(2))); + String totalLabel = data.currencyCode().isBlank() + ? totals.totalLabel() + : totals.totalLabel() + " (" + data.currencyCode() + ")"; + totalsBand(section, totalLabel, money(totals.totalAmount()), true); + } + + private static void totalsBand(SectionBuilder section, + String label, + String amount, + boolean emphasized) { + double height = emphasized ? 27 : 15; + section.addContainer(container -> { + container.name(emphasized ? "TotalDue" : "TotalRow") + .rectangle(TOTALS_WIDTH, height) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(insetParagraph( + label, + emphasized ? BODY_ACCENT : SMALL_BOLD, + TextAlign.LEFT, + 0, + TOTAL_LABEL_LEFT_INSET)) + .centerRight(insetParagraph( + amount, + emphasized ? TOTAL_AMOUNT : BODY_BOLD, + TextAlign.RIGHT, + TOTAL_AMOUNT_RIGHT_INSET, + 0)); + if (emphasized) { + container.fillColor(EMPHASIS_FILL); + } + }); + } + + private static DocumentNode insetParagraph(String text, + DocumentTextStyle style, + TextAlign align, + double right, + double left) { + return new ParagraphBuilder() + .text(text) + .textStyle(style) + .align(align) + .lineSpacing(1.15) + .padding(new DocumentInsets(0, (float) right, 0, (float) left)) + .margin(DocumentInsets.zero()) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingClosing.java new file mode 100644 index 000000000..854e856fa --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingClosing.java @@ -0,0 +1,179 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +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.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.ACCENT_PRIMARY; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BODY_LINK; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.EMPHASIS_FILL; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.NOTES_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.NOTICE_ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.NOTICE_BOLD; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.PAYMENT_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SMALL; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SMALL_BOLD; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SMALL_ITALIC; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.link; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.nonBreakingPhone; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.telUri; + +/** + * The closing band of the Consulting Invoice: where the money goes on the + * left, and the notes with the due-by chip on the right. + */ +final class ConsultingClosing { + + private ConsultingClosing() { + } + + /** Payment information: the bank badge, the labelled fields, the instruction. */ + static void renderPayment(SectionBuilder section, StructuredInvoiceData data) { + InvoicePaymentBlock payment = data.payment(); + ConsultingMasthead.sectionHeading(section, payment.heading()); + // The band is as tall as the fields it holds (15pt each), never + // shorter than the badge standing beside them. + double bankBandHeight = Math.max(38.0, payment.fields().size() * 15.0); + section.spacing(3) + .addContainer(container -> container + .name("BankInformationBand") + .rectangle(PAYMENT_WIDTH, bankBandHeight) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(bankBadge()) + .position(bankDetails(payment), 58, 0, LayerAlign.CENTER_LEFT)) + .addParagraph(paragraph -> paragraph + .text(payment.instruction()) + .textStyle(SMALL_ITALIC) + .lineSpacing(1.30) + .margin(DocumentInsets.top(4))); + } + + private static DocumentNode bankBadge() { + return new ShapeContainerBuilder() + .name("BankBadge") + .circle(38) + .fillColor(EMPHASIS_FILL) + .center(ConsultingIcons.icon(ConsultingIcons.BANK, 19.5)) + .build(); + } + + private static DocumentNode bankDetails(InvoicePaymentBlock payment) { + SectionBuilder details = new SectionBuilder().name("BankDetails").spacing(0); + double width = PAYMENT_WIDTH - 61; + for (InvoicePaymentBlock.Field field : payment.fields()) { + details.addContainer(container -> container + .name("BankField") + .rectangle(width, 15) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(ConsultingMasthead.paragraph(field.label(), SMALL_BOLD)) + .position(ConsultingMasthead.paragraph(field.value(), SMALL), + 76, 0, LayerAlign.CENTER_LEFT)); + } + return details.build(); + } + + /** + * The notes column: the paragraphs, with the query channels linked + * where they appear in the prose, and the due-by chip beneath them. + */ + static void renderNotes(SectionBuilder section, StructuredInvoiceData data) { + InvoiceNotesBlock notes = data.notes(); + section.accentLeft(HAIRLINE, 1.0).padding(0, 0, 0, 24).spacing(3); + ConsultingMasthead.sectionHeading(section, notes.heading()); + for (String paragraphText : notes.paragraphs()) { + section.addParagraph(paragraph -> { + paragraph.lineSpacing(1.30).margin(DocumentInsets.zero()); + renderNoteParagraph(paragraph, paragraphText, notes); + }); + } + renderDueNotice(section, data.payment()); + } + + /** + * Links the contact channels inside a note paragraph. The channels are + * matched by value rather than by markup, so the prose stays plain + * content: a paragraph that mentions neither is drawn as plain text. + */ + private static void renderNoteParagraph(ParagraphBuilder paragraph, + String text, + InvoiceNotesBlock notes) { + int emailIndex = notes.contactEmail().isEmpty() ? -1 : text.indexOf(notes.contactEmail()); + if (emailIndex < 0) { + paragraph.text(text).textStyle(BODY); + return; + } + String before = text.substring(0, emailIndex); + int afterEmail = emailIndex + notes.contactEmail().length(); + int phoneIndex = notes.contactPhone().isEmpty() + ? -1 : text.indexOf(notes.contactPhone(), afterEmail); + if (phoneIndex < 0) { + String after = text.substring(afterEmail); + paragraph.rich(rich -> rich + .style(before, BODY) + .with(notes.contactEmail(), BODY_LINK, + link("mailto:" + notes.contactEmail())) + .style(after, BODY)); + return; + } + String between = text.substring(afterEmail, phoneIndex); + String after = text.substring(phoneIndex + notes.contactPhone().length()); + paragraph.rich(rich -> rich + .style(before, BODY) + .with(notes.contactEmail(), BODY_LINK, link("mailto:" + notes.contactEmail())) + .style(between, BODY) + .with(nonBreakingPhone(notes.contactPhone()), BODY, + link(telUri(notes.contactPhone()))) + .style(after, BODY)); + } + + /** The due-by chip: a calendar badge and the notice, on the quiet fill. */ + private static void renderDueNotice(SectionBuilder section, InvoicePaymentBlock payment) { + double width = NOTES_WIDTH - 24; + section.addContainer(container -> container + .name("PaymentTerms") + .roundedRect(width, 34, 4) + .fillColor(EMPHASIS_FILL) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .position(calendarBadge(), 8, 0, LayerAlign.CENTER_LEFT) + .position(dueNotice(payment), 42, 0, LayerAlign.CENTER_LEFT)); + } + + private static DocumentNode calendarBadge() { + return new ShapeContainerBuilder() + .name("CalendarBadge") + .circle(23) + .stroke(DocumentStroke.of(ACCENT_PRIMARY, 0.9)) + .center(ConsultingIcons.icon(ConsultingIcons.CALENDAR, 12.5)) + .build(); + } + + private static DocumentNode dueNotice(InvoicePaymentBlock payment) { + String notice = payment.dueNotice(); + String emphasis = payment.dueNoticeEmphasis(); + ParagraphBuilder paragraph = new ParagraphBuilder() + .name("DueNotice") + .lineSpacing(1.1) + .margin(DocumentInsets.zero()); + int index = emphasis.isEmpty() ? -1 : notice.indexOf(emphasis); + if (index < 0) { + return paragraph.text(notice).textStyle(NOTICE_BOLD).build(); + } + String before = notice.substring(0, index); + String after = notice.substring(index + emphasis.length()); + return paragraph.rich(rich -> rich + .style(before, NOTICE_BOLD) + .style(emphasis, NOTICE_ACCENT) + .style(after, NOTICE_BOLD)) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingIcons.java new file mode 100644 index 000000000..d8e4d09da --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingIcons.java @@ -0,0 +1,70 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.image.DocumentImageData; +import com.demcha.compose.document.node.DocumentNode; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Consulting Invoice icon set — the channel marks + * beside the contact lines, the bank badge, and the calendar of the + * due-by notice. + * + *

    These are template chrome, not content: they ship inside the templates + * artifact under {@code templates/invoice/consulting/icons/} and are named + * by the preset, never by the data. Loaded bytes are cached per name, so a + * render reads each icon file once per JVM.

    + */ +final class ConsultingIcons { + + static final String LOCATION = "location"; + static final String PHONE = "phone"; + static final String EMAIL = "email"; + static final String WEBSITE = "website"; + static final String BANK = "bank"; + static final String CALENDAR = "payment-calendar"; + + private static final String ICON_ROOT = "/templates/invoice/consulting/icons/"; + private static final Map CACHE = new ConcurrentHashMap<>(); + + private ConsultingIcons() { + } + + /** + * Builds a sized icon node. + * + * @param name the icon name + * @param size the box the icon is fitted into + * @return the icon node + */ + static DocumentNode icon(String name, double size) { + return new ImageBuilder() + .name("Icon-" + name) + .source(image(name)) + .fitToBounds(size, size) + .build(); + } + + private static DocumentImageData image(String name) { + return CACHE.computeIfAbsent(name, ConsultingIcons::read); + } + + private static DocumentImageData read(String name) { + String resourcePath = ICON_ROOT + name + ".png"; + try (InputStream input = ConsultingIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException( + "Missing consulting invoice icon: " + resourcePath); + } + return DocumentImageData.fromBytes(input.readAllBytes()); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read consulting invoice icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoice.java new file mode 100644 index 000000000..b183950d2 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingInvoice.java @@ -0,0 +1,193 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageBackgroundFill; +import com.demcha.compose.document.node.RowVerticalAlign; +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.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.FOOTER_BAND_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.FOOTER_FILL; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.FOOTER_TEXT_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.FOOTER_ZONE_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.HEADER_GAP; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.HEADER_LEFT_WEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.HEADER_RIGHT_WEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.LOWER_GAP; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.LOWER_LEFT_WEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.MUTED; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.PAGE; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.PAGE_BACKGROUND; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.PAGE_MARGIN; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.PARTIES_LEFT_WEIGHT; + +/** + * Consulting Invoice — the professional-services invoice preset: a + * corporate masthead over priced service lines, with the bank details and + * the closing notes side by side beneath them. + * + *

    The masthead pairs the sender's brand lockup and contact channels with + * the document title and its metadata; the body bills a recipient, states + * what the invoice covers, and prices the work line by line with a service + * period and a unit against each line; the totals stack closes with an + * emphasized total band. Long invoices flow: the line-items table repeats + * its header on the next page, and the totals stack stays whole.

    + * + *

    The preset owns its session geometry — A4, the margin published as + * {@link #RECOMMENDED_MARGIN}, the near-white page fill and the quiet + * footer band — and draws the legal line and page numbers as footer chrome + * rather than flow content, so they repeat on every page. The legal line is + * composed from the supplier's registered name and registration, so those + * are stated once. A session margin set by the caller is overwritten.

    + * + *

    The preset draws in {@code FontName.POPPINS} and consumes the + * structured invoice model ({@link StructuredInvoiceDocumentSpec}): its + * headings, labels and column titles are content, so the same composition + * prints an invoice in another business's wording without a fork. The + * brand logo arrives through the data as an image the caller owns; a + * document without one falls back to the wordmark lockup. The contact + * marks, the bank badge and the calendar are template chrome and ship + * inside the artifact.

    + */ +public final class ConsultingInvoice { + + /** + * Stable template identifier. + */ + public static final String ID = "invoice-consulting"; + + /** + * Human-readable display name. + */ + public static final String DISPLAY_NAME = "Consulting Invoice"; + + /** + * The session margin (in points) the preset sets. It is published so a + * caller can measure against the same frame; the preset applies it + * itself inside {@code compose}, together with the page size and the + * page fills, so callers leave the session unconfigured. + */ + public static final double RECOMMENDED_MARGIN = ConsultingStyles.PAGE_MARGIN; + + private ConsultingInvoice() { + } + + /** + * 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, StructuredInvoiceDocumentSpec spec) { + Objects.requireNonNull(document, "document"); + StructuredInvoiceData data = Objects.requireNonNull(spec, "spec").invoice(); + + renderChrome(document, data.supplier()); + + document.pageFlow(page -> page + .name("ConsultingInvoice") + .spacing(0) + .addRow("Masthead", row -> row + .gap(HEADER_GAP) + .weights(HEADER_LEFT_WEIGHT, HEADER_RIGHT_WEIGHT) + .verticalAlign(RowVerticalAlign.TOP) + .addSection("SupplierHeader", + section -> ConsultingMasthead.renderSupplier(section, data)) + .addSection("InvoiceHeader", + section -> ConsultingMasthead.renderInvoiceHeader(section, data))) + .addSpacer(spacer -> spacer.height(16)) + .addRow("PartiesAndSummary", row -> row + .gap(35) + .weights(PARTIES_LEFT_WEIGHT, 1.0 - PARTIES_LEFT_WEIGHT) + .verticalAlign(RowVerticalAlign.TOP) + .addSection("BilledTo", + section -> ConsultingBody.renderBilledTo(section, data)) + .addSection("InvoiceSummary", + section -> ConsultingBody.renderSummary(section, data))) + .addSpacer(spacer -> spacer.height(10)) + .addTable(table -> ConsultingBody.renderServiceLines(table, data)) + .addSection("Totals", section -> ConsultingBody.renderTotals(section, data)) + .addLine(line -> line + .horizontal(CONTENT_WIDTH) + .thickness(0.8) + .color(HAIRLINE) + .margin(DocumentInsets.symmetric(5, 0))) + .addRow("PaymentAndNotes", row -> row + .gap(LOWER_GAP) + .weights(LOWER_LEFT_WEIGHT, 1.0 - LOWER_LEFT_WEIGHT) + .verticalAlign(RowVerticalAlign.TOP) + .addSection("PaymentInformation", + section -> ConsultingClosing.renderPayment(section, data)) + .addSection("Notes", + section -> ConsultingClosing.renderNotes(section, data)))); + } + + /** + * The page frame and the band that closes every page: the near-white + * page fill and the quiet footer band are page-ratio background + * fills, and the legal line and page numbers are FOOTER-zone chrome + * drawn after layout, so both repeat on every page of a long + * invoice. + */ + private static void renderChrome(DocumentSession document, InvoiceContactBlock supplier) { + document.pageSize(PAGE) + .margin(DocumentInsets.of(PAGE_MARGIN)) + .pageBackgrounds(List.of( + PageBackgroundFill.fullPage(PAGE_BACKGROUND), + PageBackgroundFill.bottomBand(FOOTER_BAND_RATIO, FOOTER_FILL))) + .footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .height((float) FOOTER_ZONE_HEIGHT) + .centerText(footerLine(supplier)) + .rightText("Page {page} / {pages}") + .fontSize((float) FOOTER_TEXT_SIZE) + .textColor(MUTED) + .showSeparator(false) + .build()); + } + + /** + * The legal line: the supplier's registered name and, when it is + * registered, its labelled registration number. A supplier without + * a registration prints its name alone rather than a name with a + * dangling separator. + */ + private static String footerLine(InvoiceContactBlock supplier) { + String registration = (supplier.registrationLabel() + " " + + supplier.registrationNumber()).trim(); + if (registration.isEmpty()) { + return supplier.legalName(); + } + if (supplier.legalName().isEmpty()) { + return registration; + } + return supplier.legalName() + " | " + registration; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingMasthead.java new file mode 100644 index 000000000..5699f990c --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingMasthead.java @@ -0,0 +1,221 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +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.TextAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; + +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.ACCENT_PRIMARY; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BODY_ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BRAND_LOGO_BOX_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BRAND_MARK; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BRAND_NAME; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.BRAND_QUALIFIER; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.CONTACT_ROW_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.INVOICE_TITLE; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.INVOICE_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.METADATA_ROW_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SMALL; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SECTION_HEADING; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SMALL_BOLD; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SUPPLIER_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.link; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.telUri; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.tracked; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingText.websiteUri; + +/** + * The masthead of the Consulting Invoice: the sender's lockup and contact + * channels on the left, the document title and its metadata on the right. + * + *

    Both halves are shape containers with anchored children rather than + * rows, because a row is refused inside a row cell and the masthead itself + * is one row of the page flow.

    + */ +final class ConsultingMasthead { + + private ConsultingMasthead() { + } + + /** The sender's half: brand lockup, then one band per contact channel. */ + static void renderSupplier(SectionBuilder section, StructuredInvoiceData data) { + InvoiceBrand brand = data.brand(); + InvoiceContactBlock supplier = data.supplier(); + + section.spacing(2); + if (brand.hasLogo()) { + section.add(logoLockup(brand)); + } else { + renderTextLockup(section, brand); + } + // A channel the sender did not supply gets no band: an empty band + // would print a mark with nothing beside it, and an empty value has + // no address to link to. + String address = String.join("\n", supplier.addressLines()); + if (!address.isBlank()) { + contactBand(section, ConsultingIcons.LOCATION, 10.0, address, + CONTACT_ROW_HEIGHT + 5.0, null); + } + if (!supplier.phone().isBlank()) { + contactBand(section, ConsultingIcons.PHONE, 9.2, supplier.phone(), + CONTACT_ROW_HEIGHT, telUri(supplier.phone())); + } + if (!supplier.email().isBlank()) { + contactBand(section, ConsultingIcons.EMAIL, 9.2, supplier.email(), + CONTACT_ROW_HEIGHT, "mailto:" + supplier.email()); + } + if (!supplier.website().isBlank()) { + contactBand(section, ConsultingIcons.WEBSITE, 9.4, supplier.website(), + CONTACT_ROW_HEIGHT, websiteUri(supplier.website())); + } + } + + /** + * The logo in its box. Height-only sizing lets the engine derive the + * width from the image's own metadata, so a wider or narrower logo + * stays on the same baseline as the contact bands below it. + */ + private static DocumentNode logoLockup(InvoiceBrand brand) { + DocumentNode logo = new ImageBuilder() + .name("BrandLogo") + .source(brand.logo()) + .height(BRAND_LOGO_BOX_HEIGHT) + .build(); + return new ShapeContainerBuilder() + .name("BrandLogoBox") + .rectangle(SUPPLIER_WIDTH, BRAND_LOGO_BOX_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(logo) + .build(); + } + + /** + * The wordmark-only lockup a document without a logo falls back to: the + * brand's initial as a mark, the name beside it, the qualifier tracked + * between rules, and the tagline. + */ + private static void renderTextLockup(SectionBuilder section, InvoiceBrand brand) { + String mark = brand.name().isBlank() ? "" : brand.name().substring(0, 1); + section.addParagraph(paragraph -> paragraph + .rich(rich -> rich + .style(mark, BRAND_MARK) + .space() + .style(brand.name(), BRAND_NAME)) + .lineSpacing(1.0) + .margin(DocumentInsets.zero())) + .addParagraph(paragraph -> paragraph + .text(brand.qualifier().isBlank() + ? "" : "— " + tracked(brand.qualifier()) + " —") + .textStyle(BRAND_QUALIFIER) + .align(TextAlign.CENTER) + .margin(DocumentInsets.zero())) + .addParagraph(paragraph -> paragraph + .text(brand.tagline()) + .textStyle(BODY_ACCENT) + .align(TextAlign.CENTER) + .margin(DocumentInsets.symmetric(5, 0))); + } + + /** One contact line: the channel mark, and the value anchored beside it. */ + private static void contactBand(SectionBuilder section, + String iconName, + double iconSize, + String text, + double height, + String linkUri) { + DocumentNode contactText = linkUri == null + ? paragraph(text, SMALL) + : linkedParagraph(text, SMALL, linkUri); + section.addContainer(container -> container + .name("ContactBand") + .rectangle(SUPPLIER_WIDTH, height) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(ConsultingIcons.icon(iconName, iconSize)) + .position(contactText, 23, 0, LayerAlign.CENTER_LEFT)); + } + + /** The document half: the tracked title, then one band per metadata row. */ + static void renderInvoiceHeader(SectionBuilder section, StructuredInvoiceData data) { + InvoiceMasthead masthead = data.masthead(); + section.accentLeft(HAIRLINE, 1.1) + .padding(0, 0, 0, 24) + .spacing(1) + .addParagraph(paragraph -> paragraph + .text(tracked(masthead.title())) + .textStyle(INVOICE_TITLE) + .margin(DocumentInsets.bottom(8))); + for (InvoiceMasthead.Entry entry : masthead.entries()) { + metadataBand(section, entry); + } + } + + /** One metadata row: the label at the left, the value at the 48% mark. */ + private static void metadataBand(SectionBuilder section, InvoiceMasthead.Entry entry) { + double width = INVOICE_WIDTH - 24; + section.addContainer(container -> container + .name("MetadataBand") + .rectangle(width, METADATA_ROW_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(paragraph(entry.label(), SMALL_BOLD)) + .position(paragraph(entry.value(), entry.emphasized() ? BODY_ACCENT : BODY), + width * 0.48, + 0, + LayerAlign.CENTER_LEFT)); + } + + /** A plain left-aligned paragraph node on the shared line spacing. */ + static DocumentNode paragraph(String text, DocumentTextStyle style) { + return new ParagraphBuilder() + .text(text) + .textStyle(style) + .align(TextAlign.LEFT) + .lineSpacing(1.15) + .margin(DocumentInsets.zero()) + .build(); + } + + private static DocumentNode linkedParagraph(String text, DocumentTextStyle style, String uri) { + return new ParagraphBuilder() + .text(text) + .textStyle(style) + .align(TextAlign.LEFT) + .link(link(uri)) + .lineSpacing(1.15) + .margin(DocumentInsets.zero()) + .build(); + } + + /** + * The heading every lower region opens with: tracked capitals over a + * short accent rule. + */ + static void sectionHeading(SectionBuilder section, String heading) { + if (heading.isBlank()) { + // No heading, no rule: an orphan rule reads as a divider. + return; + } + section.addParagraph(paragraph -> paragraph + .text(tracked(heading)) + .textStyle(SECTION_HEADING) + .lineSpacing(1.0) + .margin(DocumentInsets.zero())) + .addLine(line -> line + .horizontal(30) + .thickness(1.2) + .color(ACCENT_PRIMARY) + .margin(DocumentInsets.symmetric(4, 0))); + } + +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingStyles.java new file mode 100644 index 000000000..722332b7d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingStyles.java @@ -0,0 +1,149 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.document.table.DocumentTableTextAnchor; +import com.demcha.compose.font.FontName; + +/** + * The Consulting Invoice look: page geometry, the colour roles, the Poppins + * type scale, and the derived widths every region measures against. + * + *

    Preset-local rather than a {@code BrandTheme}: every value below was + * measured against the ported template's reference render, and the type + * scale derives from a single {@link #BODY_SIZE} step that no other family + * shares. A theme slot would add indirection without a second consumer.

    + */ +final class ConsultingStyles { + + private ConsultingStyles() { + } + + // --- page --------------------------------------------------------------- + static final DocumentPageSize PAGE = DocumentPageSize.A4; + static final double PAGE_MARGIN = 30.5; + /** The denominator of every derived width below. */ + static final double CONTENT_WIDTH = PAGE.width() - 2.0 * PAGE_MARGIN; + + // --- band splits, measured from the reference --------------------------- + static final double HEADER_LEFT_WEIGHT = 0.51; + static final double HEADER_RIGHT_WEIGHT = 1.0 - HEADER_LEFT_WEIGHT; + static final double HEADER_GAP = 25.0; + static final double SUPPLIER_WIDTH = (CONTENT_WIDTH - HEADER_GAP) * HEADER_LEFT_WEIGHT; + static final double INVOICE_WIDTH = (CONTENT_WIDTH - HEADER_GAP) * HEADER_RIGHT_WEIGHT; + static final double PARTIES_LEFT_WEIGHT = 0.55; + static final double LOWER_LEFT_WEIGHT = 0.54; + static final double LOWER_GAP = 22.0; + static final double PAYMENT_WIDTH = (CONTENT_WIDTH - LOWER_GAP) * LOWER_LEFT_WEIGHT; + static final double NOTES_WIDTH = (CONTENT_WIDTH - LOWER_GAP) * (1.0 - LOWER_LEFT_WEIGHT); + static final double TOTALS_WIDTH = CONTENT_WIDTH * 0.42; + + /** #, description, service period, qty, unit price, amount. */ + static final double[] TABLE_RATIOS = {0.050, 0.341, 0.218, 0.110, 0.154, 0.127}; + + static final double TABLE_CELL_HORIZONTAL_PADDING = 5.0; + static final double DESCRIPTION_CONTENT_WIDTH = + CONTENT_WIDTH * TABLE_RATIOS[1] - 2.0 * TABLE_CELL_HORIZONTAL_PADDING; + + // --- independent dimensions --------------------------------------------- + static final double CONTACT_ROW_HEIGHT = 13.0; + static final double METADATA_ROW_HEIGHT = 18.0; + static final double FOOTER_BAND_RATIO = 0.039; + static final double FOOTER_ZONE_HEIGHT = 22.0; + static final double FOOTER_TEXT_SIZE = 7.0; + static final double BRAND_LOGO_BOX_HEIGHT = 64.0; + static final double TOTAL_LABEL_LEFT_INSET = 13.0; + static final double TOTAL_AMOUNT_RIGHT_INSET = 10.0; + + // --- type scale, all derived from one step ------------------------------ + static final double BODY_SIZE = 7.6; + static final double SMALL_SIZE = BODY_SIZE * 0.90; + static final double SECTION_SIZE = BODY_SIZE * 1.15; + static final double TITLE_SIZE = BODY_SIZE * 3.10; + static final double TOTAL_SIZE = BODY_SIZE * 1.80; + + // --- colour roles: named for the job, not the hue ----------------------- + static final DocumentColor PAGE_BACKGROUND = DocumentColor.rgb(254, 254, 254); + static final DocumentColor ACCENT_PRIMARY = DocumentColor.rgb(7, 86, 86); + static final DocumentColor INK = DocumentColor.rgb(35, 43, 54); + static final DocumentColor MUTED = DocumentColor.rgb(83, 91, 100); + static final DocumentColor ROW_ALT = DocumentColor.rgb(248, 248, 248); + static final DocumentColor EMPHASIS_FILL = DocumentColor.rgb(237, 246, 245); + static final DocumentColor FOOTER_FILL = DocumentColor.rgb(238, 246, 246); + static final DocumentColor HAIRLINE = DocumentColor.rgb(225, 229, 229); + + static final FontName TEXT_FONT = FontName.POPPINS; + + // --- text roles ---------------------------------------------------------- + static final DocumentTextStyle BODY = style(BODY_SIZE, DocumentTextDecoration.DEFAULT, INK); + static final DocumentTextStyle BODY_BOLD = style(BODY_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle BODY_ACCENT = + style(BODY_SIZE, DocumentTextDecoration.BOLD, ACCENT_PRIMARY); + static final DocumentTextStyle BODY_LINK = + style(BODY_SIZE, DocumentTextDecoration.DEFAULT, ACCENT_PRIMARY); + static final DocumentTextStyle SMALL = style(SMALL_SIZE, DocumentTextDecoration.DEFAULT, INK); + static final DocumentTextStyle SMALL_BOLD = style(SMALL_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle SMALL_ITALIC = + style(SMALL_SIZE, DocumentTextDecoration.ITALIC, INK); + static final DocumentTextStyle NOTICE_BOLD = + style(BODY_SIZE * 0.76, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle NOTICE_ACCENT = + style(BODY_SIZE * 0.76, DocumentTextDecoration.BOLD, ACCENT_PRIMARY); + static final DocumentTextStyle SECTION_HEADING = + style(SECTION_SIZE, DocumentTextDecoration.BOLD, ACCENT_PRIMARY); + static final DocumentTextStyle INVOICE_TITLE = + style(TITLE_SIZE, DocumentTextDecoration.BOLD, ACCENT_PRIMARY); + static final DocumentTextStyle BRAND_NAME = + style(BODY_SIZE * 2.45, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle BRAND_MARK = + style(BODY_SIZE * 3.25, DocumentTextDecoration.BOLD, ACCENT_PRIMARY); + static final DocumentTextStyle BRAND_QUALIFIER = + style(BODY_SIZE * 1.20, DocumentTextDecoration.DEFAULT, INK); + static final DocumentTextStyle TABLE_HEADER = + style(SMALL_SIZE, DocumentTextDecoration.BOLD, DocumentColor.WHITE); + static final DocumentTextStyle TOTAL_AMOUNT = + style(TOTAL_SIZE, DocumentTextDecoration.BOLD, ACCENT_PRIMARY); + + /** + * One line-item cell style: the zebra fill it sits on and where its value + * is anchored. + * + * @param fill the row fill + * @param anchor where the value sits in the cell + * @return the cell style + */ + static DocumentTableStyle tableStyle(DocumentColor fill, DocumentTableTextAnchor anchor) { + return DocumentTableStyle.builder() + .padding(DocumentInsets.symmetric(4.2, TABLE_CELL_HORIZONTAL_PADDING)) + .fillColor(fill) + .stroke(DocumentStroke.of(HAIRLINE, 0.55)) + .textStyle(BODY) + .textAnchor(anchor) + .lineSpacing(1.15) + .build(); + } + + /** + * Composes a text style in the preset's face. + * + * @param size type size in points + * @param decoration weight or slant + * @param color ink colour + * @return the composed style + */ + static DocumentTextStyle style(double size, + DocumentTextDecoration decoration, + DocumentColor color) { + return DocumentTextStyle.builder() + .fontName(TEXT_FONT) + .size(size) + .decoration(decoration) + .color(color) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingText.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingText.java new file mode 100644 index 000000000..6e873e2ad --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/ConsultingText.java @@ -0,0 +1,169 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.node.DocumentLinkOptions; + +import java.awt.Font; +import java.awt.font.FontRenderContext; +import java.io.InputStream; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.NumberFormat; +import java.util.Locale; +import java.util.Objects; + +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.DESCRIPTION_CONTENT_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.ConsultingStyles.SMALL_SIZE; + +/** + * The text and number utilities the Consulting Invoice regions share: + * money and quantity formatting, link URIs, and the measurement behind the + * line-item title breaker. + */ +final class ConsultingText { + + /** + * The face the line-item title is measured in. + * + *

    The templates artifact does not carry it. The + * face ships in {@code graph-compose-fonts}, which this module does not + * depend on, so a caller that adds only the templates artifact measures + * in the platform's {@code SansSerif} instead — a different width, and + * one that differs between operating systems. That caller also renders + * the document in a substituted face, so the page is already not the + * designed one; what the fallback adds is that the description column's + * break lands differently per platform. Put the font artifact on the + * classpath to get the designed render.

    + */ + private static final Font DESCRIPTION_BOLD_FONT = loadDescriptionBoldFont(); + + private static final FontRenderContext FONT_RENDER_CONTEXT = + new FontRenderContext(null, true, true); + + private ConsultingText() { + } + + /** + * Width of the invisible breaker that pushes a line item's description + * onto its own line: what is left of the description column once the + * title has been set. + * + *

    A rich run cannot carry a line break — the engine strips a newline + * inside one — so the description column ends its title run with a + * zero-height rectangle wide enough to fill the line instead. Sizing + * that rectangle needs the rendered title width, which is measured here + * rather than laid out.

    + * + * @param title the line-item title + * @return the breaker width, never below one point + */ + static double titleBreakerWidth(String title) { + double titleWidth = DESCRIPTION_BOLD_FONT + .deriveFont((float) SMALL_SIZE) + .getStringBounds(Objects.requireNonNullElse(title, ""), FONT_RENDER_CONTEXT) + .getWidth(); + return Math.max(1.0, DESCRIPTION_CONTENT_WIDTH - titleWidth - 4.0); + } + + private static Font loadDescriptionBoldFont() { + try (InputStream stream = ConsultingText.class.getClassLoader() + .getResourceAsStream("fonts/google/poppins/Poppins-Bold.ttf")) { + if (stream != null) { + return Font.createFont(Font.TRUETYPE_FONT, stream); + } + } catch (Exception cause) { + // A present-but-unreadable font is worth saying out loud; a + // missing one is the documented fallback below. + System.getLogger(ConsultingText.class.getName()) + .log(System.Logger.Level.WARNING, + "Falling back to the platform face: the packaged Poppins Bold " + + "could not be read", + cause); + } + return new Font("SansSerif", Font.BOLD, 1); + } + + /** + * Spaces a value out into tracked capitals (the heading treatment). + * + * @param value the text, already in the case it is set in + * @return the tracked text + */ + static String tracked(String value) { + StringBuilder tracked = new StringBuilder(value.length() * 2); + for (int index = 0; index < value.length(); index++) { + if (index > 0) { + tracked.append(' '); + } + tracked.append(value.charAt(index)); + } + return tracked.toString(); + } + + /** + * Formats a quantity at two decimal places, without grouping. + * + * @param value the quantity + * @return the formatted quantity + */ + static String decimal(BigDecimal value) { + return value.setScale(2, RoundingMode.HALF_UP).toPlainString(); + } + + /** + * Formats an amount with thousands grouping and two decimal places. The + * currency itself is printed in the column header, not per figure. + * + * @param value the amount + * @return the formatted amount + */ + static String money(BigDecimal value) { + NumberFormat format = NumberFormat.getNumberInstance(Locale.ENGLISH); + format.setGroupingUsed(true); + format.setMinimumFractionDigits(2); + format.setMaximumFractionDigits(2); + return format.format(value); + } + + /** + * Wraps a URI as link options. + * + * @param uri the target + * @return the link options + */ + static DocumentLinkOptions link(String uri) { + return new DocumentLinkOptions(uri); + } + + /** + * Builds the {@code tel:} URI of a printed phone number. + * + * @param phone the printed number + * @return the dial URI + */ + static String telUri(String phone) { + return "tel:" + phone.replace(" ", ""); + } + + /** + * Builds the browsable URI of a printed website, adding the scheme when + * the printed form omits it. + * + * @param website the printed website + * @return the browsable URI + */ + static String websiteUri(String website) { + return website.startsWith("http://") || website.startsWith("https://") + ? website + : "https://" + website; + } + + /** + * Keeps a printed phone number on one line. + * + * @param phone the printed number + * @return the number with non-breaking spaces + */ + static String nonBreakingPhone(String phone) { + return phone.replace(' ', '\u00A0'); + } +} diff --git a/templates/src/main/resources/templates/invoice/consulting/icons/bank.png b/templates/src/main/resources/templates/invoice/consulting/icons/bank.png new file mode 100644 index 0000000000000000000000000000000000000000..0abf6a0a933067f9e02ba918dfabfc02ac243430 GIT binary patch literal 2769 zcmbtW3pA8l8~!xzMhv;eOeU9cJ2M8Mkjp64xDP4Er5U8$$(=?n$z+nwQ6VBV85QY* z7GjtJVIR@j2@e2qssKPv1%P#Mh&%%T=P>~A$r}I;-UI-d z(1Mqa#^411>0?K6AcD`DW!(i3ghH*|BS7^2(H75H^nxD(kv4cMflq>RP;K-y#mfR5 zQi-%W5lQli^gT!n_XPpKVz39aF^1Y$eHR_ zUEE<0J>1pCEbD|8A$4F}1%F+4@Lb&NG9~xp=2lYh_LWQ)#bjY*IDIUa&y z=$JXR12$3+WdbzYMW;#jioIP|=eXxA0{*c$g}1YBoa}-z(pOP??9pu6hzJ@Rdw|kt zDZH;5d#+z~&-AqH2>V7C6fThPqRbli{rtTAZr)w1UtY;Uv#2e4_zXd;F4m#$td!}> z+G76l+!N9pWV);X|LPuCcg~l5gRsRJ#{~93TAdgIWZ&$#uvZd>(-INU)pgwN(p)7m zck2-dO6)n`3>|N>qZVv-c7a)pNNO5nUY%O$6Nk307A^WcwS47XBc4Sd?C{@JxI;qx zR4of2{DNk<>GiD*!_jeStD@peU9=eBEz1uj1}hFLef0C6%37X#^LeQ_YCwbJN5Zsu zWv}pz%fWLi4jl@c8Pf5njS$Ecd?nkG-?N*0ubskW-Nz60zf1ijrI|g+#kA3^*?>Tb z`Pz$e5dro{=wyc|PHV0fWJ@Ibx}!R~TNgYNr4YdrRQ+Q&T8Md29orE;L+k<7iQ7gg zkYwPsM_qcEwQ}*KmE<+%VW3M`criH9WPIX^ ztne^LDWo&?6oo<#9Ky-+yGqMUF&>@bUK;dbR&6H82Eaemi-n#JcN#%^ws9UkGK}IP zJ1mt3Tk`R^!h{ZwxehMpsBVKURK?L;K2JOe;V~wH= z^p$?4X)OKHM8l(VRO*L6i}%OUu_3#zoXCxws7X!<3hFKJR4$J!q?aa;xyR8Td>c<2 zt!?xN(Q~SJGBZ373T=~AY7I?B$5>jc`=WuaWce{$3`HEL+ZRPAe`3vHf&bn{FjcIyGN;MhD9_D zb=aL#{gj#Bm_`ltW<+&R>!Aup`rGes%mZls!xoc%@YoJt6-@VX{e(#QDj1qZbZ=H;$ek_QJ=4pO!0&qteF8#hV^Rq zuX#mRtLHu~`dC6-Z{&7t(Xo05HICZdZb>!+IP2?}`9)@`OA%d}Kn}J;f9@q%p&K$L zSgh00#QpSKwEYl=o_r0q_OVT9^WGy-nUJyYO^OrUj*x@g@xNlwU0%e6AU?$#^Px!6XXGfIt8RW0&79I!g@zV+Ec=liHro1P_&$?_~PpDhYQH zX~TvT9PaTLgMwzWxdT@Ze*kL)^WGz)Opo9w)HgqC)mD`~zg*%oe^PHFVdzD$qO`AX zZG)v&cTRV8$dvb~y$wcTySDc44>(K+({I8R#KT&NN?2XSgYt*Cr@fbM4-EX_UgMA` zaQrAT{QLTO1wr1>>8}B!V*H91{v; zchb&_u}-36u?KRaoTZo$ms_4%UeqymHF5A`PmKE6xN8qBCMzSqZ|bf*e}N30v^a?; zD2RYDrv=D9(9&)f5EWhB%GE}7_TXzFPp68r!8|wuW)k(-jkl-iIg7wpp(kJ#>-c8s zvRR^uYa51P?YdofGkf8}y3oc}Qsna2ea8BH{hb_#FnUfU@ch2aLg4VlZ+qn{UzRH0 z^DnX2HQu?+q7E6bfLE4%M$)2T)ijM>#XB8eOAHNU>dv0yIuiG@e*e9PLQra)9&f$$ zkE;*LGW(0}jup_`6z`ZYh7f}9i+(wd<~2)t_q9Y-sG+%b{&in=f_{W@akMvpeHyOz zW)$Q~y}x&=dU}cF>h_wEeXBY>OVh0ctd86+TavF|OO@7)7;MbW){^EThLy-3{MCvolYJp0mCGJrLPGws)(K(tQO%MQD{XJi02 zm_`;UPZgP)7T>(D#o3u!#8pGyq~aXhPYQ3-ic0j*Xdf}zB`GH>-s`&C0S2!Pb)k@4 z!7qF%0f_NHyW`n~%Z6Yb#>C0Px@~6`s77W)R%0**I>nvpsX*7NGcWrW$*8OSP?o>R z%#RLX^joGR&>3p0R@+);qUc6W_h}-^V(<;*`yxcYKk+3rB^~q;aoFsqS@Vha-cFt? zxdlqdKUU%-lc-@%9&*WVWhN~DQm+5>|1V8zXDH0YUb$o;G4rJ(2BpX06XhrOl)DkF ze2S+u_thkRaTE%T34~rSjTAIM7~foyJR{HFFjOa_DJ)W(Xw#7R#6hUf^VL}|KXAkS z&nd95jnTUjcX}G!I=1gVCtYE4jFW_vezL`X%j!>q`@8!7Uo?8OZB>ZT?+{}JFU14X1?*zZ^T9%iE^?!}6y@b})49z4?1 z)84T@O4#E&8FGyG-rAbb1V_h9&KySqFL0_@yveQUS&mO0%A<-`4sPEPWsL4Ir?0|o q>9YIEPLoSBd2%%Pt^bG4y4Vr8_hUl1ykimG2G(9jgo*Bub48!pllVQlwAf(WQDNagCMC4UM zNZtuECv!TDDT*A2D3!dTi6)P_zwRG*t$Wu!cirz=`}_H>{oS9nKWl%#Yj3W*n9Os7*z_QFC?O;!6a>H=XKrPTvo`4iKZC^I6R}<(ySRNRu zxD_6T-znFjXC|k1TfvVO7}pgr=Qbl+=>OJmG(}9ih~qsuDSDD18o9CAfs9xry-t?0 z&_<_N5P_o{pdSjkt}JD}T_)NAI+2Cw*7%Q$vhsVml}t;dJQ^jBu3>iGO*LxNE$t3Y z6$Yp3I%8jKcp`Ci)z3!;&+NFX-jbALhJf0_GZKbVjLzLG;YankRH=;8OscV_eOP;E zUzr0d@N3`HO{eqw&WN?OQCb?@xhE)(!~2CgKq6cr(rT`*n)qNeJK^{{UGIW&na>YT z*liLO+vg4|068yRO_NwnVa6?OG|4X?$IEq5>5H7|fkPKIQ36a+#gd^u}Fgn#=*_~@oXSdad#Sj8XrD4-7PHM#+!%BS|&X>vELlCu&$be;!Oyk1!bf- z46;8>s;rFN(XwmdBNwXrHT4T#j3!L+w`xRvS;624E=qUs3uA@uwm8*ZTOEWLAj>>L zxy;4+h{dJC`sEZ|XO#9<-ozpf6d7>VOz!(4F0B-ybvWX$hq>;yK7%FcJXlr1`FEne z$v=IuKi30_-$gQ&Myu{8``+`oLx&|986i=9zz^|6d~F^MVdhG1U0OsJE5U=lKgxdT z@1NZ!D?3QQeuK$WugLz_`+B9e{dC=fFsUwnYepkY#4jm{l5xfL}Fz(~|Thy0!Vr49x_r zK~;I?vj(&9wpaxlT01A|hN%aR+CO8~xWm@*9D~#%$`JKm@5!q((Hd#byOMW>Sb#Cw zjk#&Fwi?}8AuB8@lEkyHMm!4E99i=4SJepl9Tw?NCDtb6t*M0Hnj36owEneHpwEC>CS0<)FUtaJMCW78JX_)U*7zopdNj{ zW3&lfeDO>*)QWjx3}b^m;rQ)hU-GvN*WnB$cd`@oaC0{ z`jNCQt-ih6nqGCNe^Is~IaMJWSEI`W=2l)_C0%t&vsbZp#n^jYJv~`BUe^fIRH=-u zJ9jPyP)BCba>viItI>CqOKVzvY;5Rj>y7*2MSkwxN>SskU{LhU3Rwzlp`Mn`CZHpP zqKu^FaPS4TSB8aitf z9m69gi>I;*R3U_WV)4jI>})+_DVUJ_)}^0B$j#YT&s2$7@_1Y>|1_cHmO&M|s5VDv z9~pxI1pZEi#&r1Xr9aLHb{b$hG))8BQ=Aro&UtxPc96ABC{d}!dp09>pZKDVKtRBlxc_tGPMT|uC74<1s50B zt&Qo!zpcr5ynT@q6&88cfdeYZx1wj~$4I3NlQaSBJqD$%ch=PzLhx)`B)m@Q{hzJ! zzxUAJr?t(z2NzjkP-KYZ*y!_4E+174huaD34|)(Gjkd{sL{G2A+n~k5Whj4cKCUK)aOen?``G^cj;iF1J7HwYPoF9zo0KwZ@>psL@(hvNEU$+NL(nf= jYvbUR|E~!Jmi?U#H^#quxX`o|oX3E(y&JiX7?}1CY*49A literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/invoice/consulting/icons/location.png b/templates/src/main/resources/templates/invoice/consulting/icons/location.png new file mode 100644 index 0000000000000000000000000000000000000000..23be9cdad764cd4e6b1031e71107d3c099120a46 GIT binary patch literal 3495 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 GiTMvxT{yY` literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/invoice/consulting/icons/payment-calendar.png b/templates/src/main/resources/templates/invoice/consulting/icons/payment-calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..cf8d11a517eecbc10728f414bb0b660318cd002b GIT binary patch literal 2764 zcmZ`*2{@EnAAbq6kjB2XSdyJFwrLEeF*3%NWg?VquC>L@3?UI&G9pX1QdugpZ@Jf& zkbS$O#7K-mD8y7kk?!05?)UZF`+fI)p7Z|B|D5Olod5Z6zY}j`Wxg9O4F>>Vw*`?v z1~KycfbxO=c4JCE2(lhT@-YAiJp``D0Kk{;`)>f?0ulfg-2nh|696Rq?=;$C!41Bj zEX@fZg5PJ;rU(#V{zRt$5Z(V6oU?caIDrIO95aI~LZt*Wv|cB;;lU-vKr_ccPfDN{ z#)IYs0)RrI^fi!Z4V0dpHVUJwhtV}qLn1Lqq|QQB@n01D&U>ErzWC1y_(rH0sG$7c z69P~Bc?ASg{QUn}N32q%4>Uf@f^ftxWc=M->vN*!;&Bo7Mzd10Ch=XPzG5EY3LcMd z=Y@Evi@>NgS<%-|kTgrtPvc^Y{3!uA60NWI5*tBv6ilF1c|K@PF_mBCOU<~a4B3Gt zBDkCmNuE<1MSApl80J(rExpTsm>Rrma`)u$a3L%BeVdWq$cUSDaC4}=A|0Cer01kV zWU+>Nu$FFm@SObme#hN9n^L>prjbEEG?C6^5^=TA;#>g zq5Bs#$#g>?;d*B@pXs z!DFIKrY&otV>GW)l-op0qs^|*!Ko#kbW=@KHirIbQ%`6*i`>hsE+lVWJPjj5$*1r$ z+&I-+gn)1(a<8YoY3DuZ&wxy!MV+_L`@zB6^%$M#SUlI+In;}9F6WM`yw1#`oD`q< zEtNi$Vx=%VCb{K~XcMGXW{`3g(vbq5ZWlWRp?*h5@mKBOezyd^U<|1b9zu-v?IS9t z<>y|0!#!~~_n}T&+UDZ89#&KQ-H}w1DYkq)qYbfoRq<(%g)1!7s&?)h9$Kq!Fzb6> z%Sv$1?5Fj08%5|bK>ptO!a~mb4xSZkD33~kPN;-;_%G3PTvfN=<+=c+9eq?(K8rQ9 zpFbbQS(Pz()6o!cvwwj??3FO~q(d{wzWtt@joEJPFg8wk_g<0~du1CNj@7=>5VjxI z&Q5USjX@A4`NT6bIlZ4h*6SEZ^xc(ljNCo^0JIkrA*Mg)y3Pf4rU(ZwEKt2^!ZL+Y zj!~@+=N8*`gvuZmZU;6lRgboMP+-RO3wv^*^#*2*I9SqHEsBOG< ze0DY@ozVn$cM?A;c;M(aR&zCfY_}DVSEDR16w`kLRf1}KW8ghMV99YVJleOQI_%W? zOe2AL?LE;~oflv?43t5K@))WcW?DCVTuPtgr(3nI{53ivuUsRCJ84_r__OxWvdXeA zliTuG5oXa)bgwyVMmaL%(v7d#}Fn>Qx=}OxQ$#ED?HT`2Ky4 z$aKGk)+{48A}JQ%rl&My2VY&=m|d&(sOE=&-UWIp%h(jng+^Rd+T_y34SPqm432Vc z++0n+R2%DdaJk(F`@&*TaX2qFY0W04;r;xTpMl8fOkWsCBfZQQ{=l0aZ*AIURVC3qjxo`8 zHBcJ7mO@L-%s8X&I|msC+2UlAxB;{=n!X3Z7shM7t-sh-p}Dp?xl}1=+z&c-26RGB zw{5||rppc*&Q8pX39Ez3;Sa>+I4D}z7 ziHcEQ>5wmhAiD&4qw2qM@;5ACTvBcNzKu8n7||og!^87v+|4|NON#_IAEg*XwG01- zS4Xew%F;3++{Go&2gi18P0iU4@1v2vOLHgT!M%3G_zQm zU95-$ei|A`jf4nTN#rA~w)3vxVjc<#V=ZSLl#R{^jdse*e_>vi+4TI0+vGRKt8lwb zMg=7&>5@H+*MWD)kK9!NwK-oBg9czL>4d3TA{5p77E>tdsba2SdEjbY7G-9S$ qq6&yagrFV&r?>w7@$jP;e%9Lg*Dd`Xp^)znOTfa+ico=fkNO=8PuC>? literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/invoice/consulting/icons/phone.png b/templates/src/main/resources/templates/invoice/consulting/icons/phone.png new file mode 100644 index 0000000000000000000000000000000000000000..3f55069b7bca44032e9cd4fbacf53a9ea0735b32 GIT binary patch literal 2992 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 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/invoice/consulting/icons/website.png b/templates/src/main/resources/templates/invoice/consulting/icons/website.png new file mode 100644 index 0000000000000000000000000000000000000000..1605a03ab651fb31197b94f0b3fb1d1b50d448ca GIT binary patch literal 6072 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 literal 0 HcmV?d00001 diff --git a/templates/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceDataTest.java b/templates/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceDataTest.java new file mode 100644 index 000000000..6a513dfdb --- /dev/null +++ b/templates/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceDataTest.java @@ -0,0 +1,173 @@ +package com.demcha.compose.document.templates.data.invoice; + +import com.demcha.compose.document.image.DocumentImageData; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Normalization and immutability contract of the structured invoice model: + * absent components become their empty forms, leaf strings never surface as + * {@code null}, money and quantities default to zero rather than null, the + * brand logo stays optional, and every collection is frozen at construction. + */ +class StructuredInvoiceDataTest { + + @Test + void emptyBuilderYieldsEmptyFormsForEveryComponent() { + StructuredInvoiceData data = StructuredInvoiceData.builder().build(); + + assertThat(data.brand().name()).isEmpty(); + assertThat(data.brand().hasLogo()).isFalse(); + assertThat(data.supplier().addressLines()).isEmpty(); + assertThat(data.masthead().entries()).isEmpty(); + assertThat(data.billTo().addressLines()).isEmpty(); + assertThat(data.summary().intro()).isEmpty(); + assertThat(data.serviceLines().lines()).isEmpty(); + assertThat(data.serviceLines().columns().amount()).isEmpty(); + assertThat(data.totals().rows()).isEmpty(); + assertThat(data.totals().totalAmount()).isEqualByComparingTo(BigDecimal.ZERO); + assertThat(data.payment().fields()).isEmpty(); + assertThat(data.notes().paragraphs()).isEmpty(); + assertThat(data.currencyCode()).isEmpty(); + } + + @Test + void leafRecordsNormalizeNullStringsToEmpty() { + InvoiceBrand brand = new InvoiceBrand(null, null, null, null); + assertThat(brand.name()).isEmpty(); + assertThat(brand.qualifier()).isEmpty(); + assertThat(brand.tagline()).isEmpty(); + + InvoiceContactBlock supplier = + new InvoiceContactBlock(null, null, null, null, null, null, null); + assertThat(supplier.legalName()).isEmpty(); + assertThat(supplier.website()).isEmpty(); + assertThat(supplier.registrationLabel()).isEmpty(); + + InvoiceMasthead.Entry entry = new InvoiceMasthead.Entry(null, null, false); + assertThat(entry.label()).isEmpty(); + assertThat(entry.value()).isEmpty(); + + InvoiceRecipient recipient = new InvoiceRecipient(null, null, null, null, null, null); + assertThat(recipient.heading()).isEmpty(); + assertThat(recipient.emailLabel()).isEmpty(); + assertThat(recipient.subline()).isEmpty(); + + InvoicePaymentBlock.Field field = new InvoicePaymentBlock.Field(null, null); + assertThat(field.label()).isEmpty(); + assertThat(field.value()).isEmpty(); + } + + @Test + void moneyAndQuantitiesDefaultToZeroRatherThanNull() { + InvoiceServiceLines.Line line = new InvoiceServiceLines.Line( + 1, null, null, null, null, null, null, null); + assertThat(line.quantity()).isEqualByComparingTo(BigDecimal.ZERO); + assertThat(line.unitPrice()).isEqualByComparingTo(BigDecimal.ZERO); + assertThat(line.amount()).isEqualByComparingTo(BigDecimal.ZERO); + + InvoiceTotalsBlock.Row row = new InvoiceTotalsBlock.Row("Subtotal", null); + assertThat(row.amount()).isEqualByComparingTo(BigDecimal.ZERO); + + InvoiceTotalsBlock totals = new InvoiceTotalsBlock(null, null, null); + assertThat(totals.totalAmount()).isEqualByComparingTo(BigDecimal.ZERO); + } + + @Test + void brandLogoIsOptionalAndReportedByHasLogo() { + DocumentImageData logo = DocumentImageData.fromBytes(new byte[] {1, 2, 3}); + InvoiceBrand withLogo = new InvoiceBrand(logo, "Northpoint", "Consulting", "Tagline"); + assertThat(withLogo.hasLogo()).isTrue(); + assertThat(withLogo.logo()).isSameAs(logo); + + assertThat(new InvoiceBrand(null, "Northpoint", "", "").hasLogo()).isFalse(); + } + + @Test + void everyCollectionIsFrozenAtConstruction() { + List source = new ArrayList<>(List.of("seed")); + InvoiceContactBlock supplier = new InvoiceContactBlock( + "Studio", source, "", "", "", "ABN", "12 345"); + source.add("added after construction"); + assertThat(supplier.addressLines()).containsExactly("seed"); + + List> frozen = List.of( + supplier.addressLines(), + new InvoiceMasthead("INVOICE", new ArrayList<>()).entries(), + new InvoiceRecipient("BILLED TO", "N", "", new ArrayList<>(), "", "").addressLines(), + new InvoiceServiceLines(null, new ArrayList<>()).lines(), + new InvoiceTotalsBlock(new ArrayList<>(), "TOTAL", BigDecimal.ONE).rows(), + new InvoicePaymentBlock("PAY", new ArrayList<>(), "", "", "").fields(), + new InvoiceNotesBlock("NOTES", new ArrayList<>(), "", "").paragraphs()); + for (List list : frozen) { + assertThatThrownBy(() -> list.add(null)) + .isInstanceOf(UnsupportedOperationException.class); + } + } + + @Test + void builderPassesEveryComponentThroughUnchanged() { + InvoiceBrand brand = new InvoiceBrand(null, "Northpoint", "Consulting", "Strategy."); + InvoiceContactBlock supplier = new InvoiceContactBlock("Northpoint Pty Ltd", + List.of("Level 8"), "+61", "hello@example.com", "example.com", "ABN", "12 345"); + InvoiceMasthead masthead = new InvoiceMasthead("INVOICE", + List.of(new InvoiceMasthead.Entry("Due Date:", "25 June 2025", true))); + InvoiceRecipient billTo = new InvoiceRecipient("BILLED TO", "Greenfield", + "Accounts Payable", List.of("12 Innovation Drive"), "Email:", "ap@example.com"); + InvoiceSummaryBlock summary = + new InvoiceSummaryBlock("INVOICE SUMMARY", "Services rendered.", "1–25 May"); + InvoiceServiceLines serviceLines = new InvoiceServiceLines( + new InvoiceServiceLines.Columns("#", "DESCRIPTION", "SERVICE PERIOD", + "QTY", "UNIT PRICE", "AMOUNT"), + List.of(new InvoiceServiceLines.Line(1, "Consultation", "Workshops", + "1–10 May", new BigDecimal("10"), "hrs", + new BigDecimal("250"), new BigDecimal("2500")))); + InvoiceTotalsBlock totals = new InvoiceTotalsBlock( + List.of(new InvoiceTotalsBlock.Row("SUBTOTAL", new BigDecimal("14000"))), + "TOTAL DUE", new BigDecimal("15400")); + InvoicePaymentBlock payment = new InvoicePaymentBlock("PAYMENT INFORMATION", + List.of(new InvoicePaymentBlock.Field("BSB:", "123-456")), + "Include the invoice number.", "Payment is due within 30 days.", "30 days"); + InvoiceNotesBlock notes = new InvoiceNotesBlock("NOTES", + List.of("Thank you."), "accounts@example.com", "+61"); + StructuredInvoiceData data = StructuredInvoiceData.builder() + .brand(brand) + .supplier(supplier) + .masthead(masthead) + .billTo(billTo) + .summary(summary) + .serviceLines(serviceLines) + .totals(totals) + .payment(payment) + .notes(notes) + .currencyCode("AUD") + .build(); + + assertThat(data.brand()).isSameAs(brand); + assertThat(data.supplier()).isSameAs(supplier); + assertThat(data.masthead()).isSameAs(masthead); + assertThat(data.billTo()).isSameAs(billTo); + assertThat(data.summary()).isSameAs(summary); + assertThat(data.serviceLines()).isSameAs(serviceLines); + assertThat(data.totals()).isSameAs(totals); + assertThat(data.payment()).isSameAs(payment); + assertThat(data.notes()).isSameAs(notes); + assertThat(data.currencyCode()).isEqualTo("AUD"); + assertThat(data.masthead().entries().get(0).emphasized()).isTrue(); + } + + @Test + void documentSpecNormalizesNullInvoiceToEmptyData() { + assertThat(StructuredInvoiceDocumentSpec.from(null).invoice()).isNotNull(); + assertThat(new StructuredInvoiceDocumentSpec(null).invoice().payment().fields()).isEmpty(); + + StructuredInvoiceData data = StructuredInvoiceData.builder().build(); + assertThat(StructuredInvoiceDocumentSpec.from(data).invoice()).isSameAs(data); + } +} From b278f110eb11aa3e00054c3e52ad07df6e77130f Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Sun, 30 Aug 2026 20:58:38 +0100 Subject: [PATCH 06/85] feat(templates): add the EditorialProposal structured proposal preset (#612) --- 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 From a5dbd6117938470dd4ea113b471af5b415671945 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Sun, 30 Aug 2026 22:12:50 +0100 Subject: [PATCH 07/85] feat(templates): add the ProfessionalSidebar layered CV preset (#613) --- CHANGELOG.md | 23 + .../examples/cv-professional-sidebar-v2.pdf | Bin 0 -> 53192 bytes docs/templates/v2-layered/using-templates.md | 7 + .../demcha/examples/GenerateAllExamples.java | 2 + .../ProfessionalSidebarSampleData.java | 125 + .../examples/support/ShowcaseMetadata.java | 1 + .../cv/v2/ProfessionalSidebarExample.java | 52 + .../presets/ProfessionalSidebarFixtures.java | 128 + ...ProfessionalSidebarLayoutSnapshotTest.java | 30 + .../presets/ProfessionalSidebarSmokeTest.java | 243 + .../ProfessionalSidebarVisualParityTest.java | 42 + .../cv-v2/professional_sidebar_layout.json | 4757 +++++++++++++++++ .../professional_sidebar-page-0.png | Bin 0 -> 81055 bytes .../cv/presets/ProfessionalSidebar.java | 220 + .../cv/presets/ProfessionalSidebarAside.java | 444 ++ .../cv/presets/ProfessionalSidebarIcons.java | 83 + .../cv/presets/ProfessionalSidebarMain.java | 244 + .../cv/presets/ProfessionalSidebarStyles.java | 209 + .../presets/ProfessionalSidebarWidgets.java | 159 + .../templates/cv/presets/package-info.java | 8 + .../cv/professional-sidebar/icons/email.png | Bin 0 -> 2131 bytes .../professional-sidebar/icons/linkedin.png | Bin 0 -> 2655 bytes .../professional-sidebar/icons/location.png | Bin 0 -> 3628 bytes .../cv/professional-sidebar/icons/phone.png | Bin 0 -> 3074 bytes .../cv/professional-sidebar/icons/website.png | Bin 0 -> 6351 bytes 25 files changed, 6777 insertions(+) create mode 100644 assets/readme/examples/cv-professional-sidebar-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/ProfessionalSidebarSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/ProfessionalSidebarExample.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/professional_sidebar-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebar.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarMain.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarWidgets.java create mode 100644 templates/src/main/resources/templates/cv/professional-sidebar/icons/email.png create mode 100644 templates/src/main/resources/templates/cv/professional-sidebar/icons/linkedin.png create mode 100644 templates/src/main/resources/templates/cv/professional-sidebar/icons/location.png create mode 100644 templates/src/main/resources/templates/cv/professional-sidebar/icons/phone.png create mode 100644 templates/src/main/resources/templates/cv/professional-sidebar/icons/website.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 111f047b5..66e4d4248 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,29 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **The first CV preset that owns its page: `ProfessionalSidebar`.** A one-page CV + in two columns on the Barlow Condensed / Lato pair — a navy monogram plate over a + pale sidebar carrying the contact channels, meter-bar skills, an education rail with + dot markers and five-dot language ratings, beside a white column of the tracked name, + the profile, the roles held with bulleted highlights, the projects and the references + note. Ships as `cv.presets.ProfessionalSidebar` on the existing `CvDocument` model — + no model change was needed — porting the rendered layout of the published standalone + `professional-sidebar-cv` template. The preset owns its page: a 491.6 x 737.28pt + sheet with no margin, the page fill and the pale sidebar painted as page backgrounds. The + sheet holds one page — its two columns are a single atomic row, so a CV longer than the + sheet raises `AtomicNodeTooLargeException` rather than flowing onto a second page or + silently dropping entries the way the capped sidebar presets do. The class documentation + says so, points at `TimelineMinimal` for a preset that splits its own columns, and + `docs/templates/v2-layered/using-templates.md` carries it beside the capped presets. + Sections reach their berth by title rather than by `Slot`, + because the columns are fixed; skills and languages are both `SkillsSection`s drawn + differently, and a level the document omits draws the name alone. The contact channels + come off `CvIdentity`, with `tel:` and `mailto:` targets built from the values and the + packaged marks chosen per channel. Guarded by a smoke test (including the identity-only + document, the unlevelled skill, the PDF link targets, the one-page limit and the fields + this design has no place for), an exact layout snapshot and a pixel-parity gate; the + examples showcase gains `cv-professional-sidebar-v2`. + - **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 diff --git a/assets/readme/examples/cv-professional-sidebar-v2.pdf b/assets/readme/examples/cv-professional-sidebar-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2abddb69be76efbfe965fec33ae9f5f000a880d3 GIT binary patch literal 53192 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 literal 0 HcmV?d00001 diff --git a/docs/templates/v2-layered/using-templates.md b/docs/templates/v2-layered/using-templates.md index e260f3a37..9017f5517 100644 --- a/docs/templates/v2-layered/using-templates.md +++ b/docs/templates/v2-layered/using-templates.md @@ -234,6 +234,13 @@ whole or the paginator raises `AtomicNodeTooLargeException`. Lifting a cap without teaching the preset to pick its own page boundaries turns a CV that silently lost an entry into one that fails to render. +`ProfessionalSidebar.create()` is the fourth composition for a fixed +amount of content and the one that caps nothing: it reproduces a +specific one-page sheet, so a CV longer than that sheet raises +`AtomicNodeTooLargeException` instead of losing an entry to a cap. Size +the document to it — roughly five or six roles with three or four +highlights each, alongside the sidebar blocks. + If the document's length is the author's rather than the template's, pick a preset that paginates — `TimelineMinimal` splits its own columns and carries every entry it is given onto as many pages as it needs. diff --git a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java index 0032601a4..d9c144721 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -96,6 +96,7 @@ import com.demcha.examples.templates.cv.v2.CvPanelExample; import com.demcha.examples.templates.cv.v2.CvSidebarPortraitExample; import com.demcha.examples.templates.cv.v2.CvTimelineMinimalExample; +import com.demcha.examples.templates.cv.v2.ProfessionalSidebarExample; import com.demcha.examples.templates.invoice.ClassicInvoiceV2Example; import com.demcha.examples.templates.invoice.ConsultingInvoiceV2Example; import com.demcha.examples.templates.invoice.InvoiceCinematicFileExample; @@ -145,6 +146,7 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + CvPanelExample.generate()); System.out.println("Generated: " + CvSidebarPortraitExample.generate()); System.out.println("Generated: " + CvTimelineMinimalExample.generate()); + System.out.println("Generated: " + ProfessionalSidebarExample.generate()); // Cover letters (v2 layered — 15 paired letters, one per CV preset) System.out.println("Generated: " + CvBlueBannerLetterV2Example.generate()); diff --git a/examples/src/main/java/com/demcha/examples/support/ProfessionalSidebarSampleData.java b/examples/src/main/java/com/demcha/examples/support/ProfessionalSidebarSampleData.java new file mode 100644 index 000000000..39c18438e --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/ProfessionalSidebarSampleData.java @@ -0,0 +1,125 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.List; + +/** + * Sample data for the Professional Sidebar CV example. + * + *

    Sized to the design: the preset draws a fixed one-page sheet, and a CV + * much longer than this one does not compose at all — the two columns are a + * single atomic row, so it raises {@code AtomicNodeTooLargeException}. The + * sidebar's one-line rows are sized to it too: a degree, skill or language + * longer than the narrow column measures overflows the row it is anchored in + * rather than wrapping inside it.

    + */ +public final class ProfessionalSidebarSampleData { + + /** The en dash the design sets between dates. */ + private static final String DASH = "–"; + + private ProfessionalSidebarSampleData() { + } + + /** + * A backend engineer's one-page CV. + * + * @return the sample document + */ + public static CvDocument sample() { + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("MARTA", "LINDQVIST") + .jobTitle("SENIOR BACKEND ENGINEER") + .contact(new Contact("+46 8 123 456 78", + "marta.lindqvist@example.com", + "Stockholm, Sweden")) + .link(new Link("linkedin.com/in/mlindqvist", + "https://linkedin.com/in/mlindqvist")) + .link(new Link("martalindqvist.dev", + "https://martalindqvist.dev")) + .build()) + .section(Slot.MAIN, new ParagraphSection("PROFILE", + "Backend engineer with nine years on payment and identity systems," + + " most of it owning services end to end: API design, the data" + + " model underneath, and the on-call rota that follows." + + " Comfortable in a team that ships small and often, and the" + + " one who writes the runbook nobody asked for.")) + .section(Slot.SIDEBAR, SkillsSection.of("SKILLS", + new SkillGroup("Core", List.of( + CvSkill.of("Java", 0.9), + CvSkill.of("Kotlin", 0.72), + CvSkill.of("Spring Boot", 0.86), + CvSkill.of("PostgreSQL", 0.8), + CvSkill.of("Kafka", 0.68), + CvSkill.of("Kubernetes", 0.62), + CvSkill.of("Terraform", 0.55), + CvSkill.of("Observability", 0.74), + CvSkill.of("Threat Modelling", 0.6), + CvSkill.of("Mentoring", 0.78))))) + .section(Slot.SIDEBAR, EntriesSection.builder("EDUCATION") + .entry("MSc COMPUTER SCIENCE", "KTH Royal Institute", + "2014 " + DASH + " 2016", "") + .entry("BSc SOFTWARE DESIGN", "Uppsala University", + "2011 " + DASH + " 2014", "") + .build()) + .section(Slot.SIDEBAR, SkillsSection.of("LANGUAGES", + new SkillGroup("Spoken", List.of( + CvSkill.of("Swedish", 1.0), + CvSkill.of("English", 1.0), + CvSkill.of("German", 0.6))))) + .section(Slot.MAIN, EntriesSection.builder("EXPERIENCE") + .entry("SENIOR BACKEND ENGINEER", + "Nordkassa | Stockholm, SE", + "2021 " + DASH + " Present", + String.join("\n", + "Led the split of the settlement monolith into four" + + " services with no customer-visible downtime.", + "Cut p99 authorisation latency from 780ms to 210ms by" + + " reworking the ledger write path.", + "Introduced contract tests between payments and risk," + + " ending a class of release-day rollbacks.", + "Mentors three engineers; runs the internal design" + + " review.")) + .entry("BACKEND ENGINEER", + "Vinge Identity | Gothenburg, SE", + "2018 " + DASH + " 2021", + String.join("\n", + "Built the OAuth2 and OIDC provider now serving eleven" + + " internal products.", + "Moved session storage to Redis with a migration that" + + " ran live for six weeks.", + "Wrote the audit pipeline the compliance team still" + + " reports from.")) + .entry("SOFTWARE ENGINEER", + "Almgren Data | Uppsala, SE", + "2016 " + DASH + " 2018", + String.join("\n", + "Delivered ingest and reporting services for retail" + + " forecasting customers.", + "Replaced nightly batch reconciliation with a streaming" + + " job on Kafka.")) + .build()) + .section(Slot.MAIN, EntriesSection.builder("PROJECTS") + .entry("LEDGERKIT", "", "2024", + "Open-source double-entry ledger for JVM services, with a" + + " property-based test suite over the posting rules.") + .entry("ONCALL DIGEST", "", "2022", + "Weekly incident summariser that reads alert history and drafts" + + " the retrospective agenda.") + .build()) + .section(Slot.MAIN, new ParagraphSection("REFERENCES", + "Available on request.")) + .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 d12d6b205..b63c554c0 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -60,6 +60,7 @@ record Entry(String title, String description, List tags, String codeUrl cv("cv-minimal-underlined-v2", "CvMinimalUnderlinedExample", "Minimal Underlined", "Single-column layout with underlined section titles and tight whitespace — minimalist reference shape.", "minimal"); cv("cv-mint-editorial-v2", "CvMintEditorialExample", "Mint Editorial", "Magazine-style editorial CV with mint accent palette and two-column body.", "editorial", "mint"); cv("cv-mint-editorial-v2-custom", "CvMintEditorialCustomExample", "Mint Editorial (custom band)", "The same preset with one colour changed through its Options — a kraft-paper masthead band, everything else left at the preset's defaults.", "editorial", "mint"); + cv("cv-professional-sidebar-v2", "ProfessionalSidebarExample", "Professional Sidebar", "Navy monogram plate over a pale sidebar of contact marks, skill meters, an education rail and language ratings, beside a white column of profile, roles and projects.", "sidebar", "navy"); // ===== Templates / Cover Letter (v2 layered, paired 1:1 with CV) ===== // Registered directly: letter() points at the layered preset examples under diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/ProfessionalSidebarExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/ProfessionalSidebarExample.java new file mode 100644 index 000000000..570a3fc4e --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/ProfessionalSidebarExample.java @@ -0,0 +1,52 @@ +package com.demcha.examples.templates.cv.v2; + +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.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.ProfessionalSidebar; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.ProfessionalSidebarSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code cv.v2} Professional Sidebar preset against the + * backend-engineer sample. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-professional-sidebar-v2.pdf}.

    + * + *

    The preset owns its page geometry — a 491.6 x 737.28pt sheet with no + * margin — so the session starts unconfigured.

    + */ +public final class ProfessionalSidebarExample { + + private ProfessionalSidebarExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare( + "templates/cv", "cv-professional-sidebar-v2.pdf"); + CvDocument doc = ProfessionalSidebarSampleData.sample(); + DocumentTemplate template = ProfessionalSidebar.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + template.compose(document, doc); + 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/cv/presets/ProfessionalSidebarFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarFixtures.java new file mode 100644 index 000000000..7d6fef3cb --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarFixtures.java @@ -0,0 +1,128 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.List; + +/** + * The canonical fixture for {@link ProfessionalSidebar} — the document the + * design was drawn around, and the one both gates measure. + * + *

    One fixture feeds the layout snapshot and the pixel baseline, so a + * change that moves the sheet moves both together instead of leaving one + * gate measuring a document the other no longer renders.

    + */ +public final class ProfessionalSidebarFixtures { + + /** The en dash the design sets between dates. */ + private static final String DASH = "–"; + + private ProfessionalSidebarFixtures() { + } + + /** + * The canonical CV: five contact channels, ten levelled skills, two + * degrees, three languages, three roles, two projects and a references + * note — one page. + * + * @return the fixture document + */ + public static CvDocument canonicalCv() { + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("YOUR", "NAME") + .jobTitle("YOUR PROFESSIONAL TITLE") + .contact(new Contact("+1 234 567 8900", + "your.email@example.com", + "City, State, Country")) + .link(new Link("linkedin.com/in/username", + "https://linkedin.com/in/username")) + .link(new Link("www.yourwebsite.com", + "https://www.yourwebsite.com")) + .build()) + .section(Slot.MAIN, new ParagraphSection("PROFILE", + "Java backend engineer experienced in building secure Spring Boot" + + " services, REST APIs and data-driven products. Delivers clean" + + " architecture, reliable integrations and well-tested" + + " persistence layers with PostgreSQL, JPA and Flyway." + + " Comfortable owning features from API design through" + + " Docker-based delivery and production support.")) + .section(Slot.SIDEBAR, SkillsSection.of("SKILLS", new SkillGroup("Core", List.of( + CvSkill.of("Java", 0.72), + CvSkill.of("Spring Boot", 0.7), + CvSkill.of("SQL / Databases", 0.7), + CvSkill.of("RESTful APIs", 0.6), + CvSkill.of("Microservices", 0.72), + CvSkill.of("Git / GitHub", 0.72), + CvSkill.of("Docker", 0.56), + CvSkill.of("Testing (JUnit)", 0.76), + CvSkill.of("Problem Solving", 0.72), + CvSkill.of("Communication", 0.7))))) + .section(Slot.SIDEBAR, EntriesSection.builder("EDUCATION") + .entry("DEGREE NAME", "University Name", "2016 " + DASH + " 2020", "") + .entry("DEGREE NAME", "University Name", "2012 " + DASH + " 2016", "") + .build()) + .section(Slot.SIDEBAR, SkillsSection.of("LANGUAGES", + new SkillGroup("Spoken", List.of( + CvSkill.of("English", 1.0), + CvSkill.of("Ukrainian", 0.8), + CvSkill.of("Russian", 0.6))))) + .section(Slot.MAIN, EntriesSection.builder("EXPERIENCE") + .entry("JAVA BACKEND DEVELOPER", + "Product Studio | London, UK", + "2023 " + DASH + " Present", + String.join("\n", + "Built secure Spring Boot REST APIs for customer" + + " workflows.", + "Added JWT authentication, validation and role-based" + + " access.", + "Tuned JPA queries and PostgreSQL indexes for faster" + + " responses.", + "Added JUnit tests and Docker environments for reliable" + + " releases.")) + .entry("SOFTWARE DEVELOPER", + "Digital Solutions Ltd | Manchester, UK", + "2021 " + DASH + " 2023", + String.join("\n", + "Integrated internal services with third-party REST" + + " APIs.", + "Delivered Flyway migrations and improved data" + + " consistency.", + "Introduced structured logging and production" + + " diagnostics.", + "Worked with frontend engineers on clear API contracts.")) + .entry("JUNIOR JAVA DEVELOPER", + "TechWorks | Remote", + "2019 " + DASH + " 2021", + String.join("\n", + "Developed Java services and reusable backend" + + " components.", + "Fixed defects across REST, persistence and security" + + " layers.", + "Wrote JUnit tests and supported continuous integration.", + "Documented endpoints and operational runbooks.")) + .build()) + .section(Slot.MAIN, EntriesSection.builder("PROJECTS") + .entry("CVREWRITER", "", "2026", + "AI-powered resume tailoring platform with Spring Boot, JWT" + + " authentication, PDF generation and application" + + " tracking.") + .entry("GRAPHCOMPOSE", "", "2025", + "Declarative Java and Kotlin document layout engine with" + + " semantic components, pagination and multi-format" + + " rendering.") + .build()) + .section(Slot.MAIN, new ParagraphSection("REFERENCES", + "Available upon request.")) + .build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarLayoutSnapshotTest.java new file mode 100644 index 000000000..01737a10b --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarLayoutSnapshotTest.java @@ -0,0 +1,30 @@ +package com.demcha.compose.document.templates.cv.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 ProfessionalSidebar} — freezes the + * resolved geometry of the canonical one-page CV, which is what catches a + * shift the pixel budget is too coarse to see. + * + *

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

    + */ +class ProfessionalSidebarLayoutSnapshotTest { + + @Test + void canonicalCvMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + ProfessionalSidebar.create().compose( + session, ProfessionalSidebarFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "professional_sidebar_layout", "cv-v2"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarSmokeTest.java new file mode 100644 index 000000000..f9e7d6d12 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarSmokeTest.java @@ -0,0 +1,243 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.exceptions.AtomicNodeTooLargeException; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link ProfessionalSidebar} — proves the preset renders a + * {@link CvDocument} end-to-end with its packaged marks, reaches its + * channels as PDF links, degrades through its guards on a document that + * fills none of the berths, and draws a name without a level rather than an + * empty meter. + * + *

    It also pins the two limits the class documents, because both are things + * a caller finds out the hard way otherwise: the sheet holds one page and + * raises past it, and three fields this design has no place for are not + * drawn.

    + */ +class ProfessionalSidebarSmokeTest { + + private static byte[] render(CvDocument doc) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + ProfessionalSidebar.create().compose(session, doc); + 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); + } + } + + private static List linkUris(byte[] pdfBytes) throws Exception { + List uris = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI action) { + uris.add(action.getURI()); + } + } + } + } + return uris; + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = ProfessionalSidebar.create(); + assertThat(template.id()).isEqualTo(ProfessionalSidebar.ID); + assertThat(template.displayName()).isEqualTo(ProfessionalSidebar.DISPLAY_NAME); + } + + @Test + void canonicalRenderCarriesTheUntrackedText() throws Exception { + // The headings and the name are set letter by letter to reach their + // tracking, so they arrive on the text layer spaced out. What is + // asserted here is the text drawn as written. + String text = textOf(render(ProfessionalSidebarFixtures.canonicalCv())); + assertThat(text) + .contains("your.email@example.com") + .contains("City, State, Country") + .contains("Java backend engineer") + .contains("DEGREE NAME") + .contains("University Name") + .contains("Docker") + .contains("English") + .contains("Product Studio") + .contains("Built secure Spring Boot REST APIs for customer workflows.") + .contains("Available upon request."); + } + + @Test + void channelsReachThePdfAsLinks() throws Exception { + // The dial and mail targets are built from the values, so nothing in + // the document carries them and nothing but the PDF can show them. + assertThat(linkUris(render(ProfessionalSidebarFixtures.canonicalCv()))) + .contains("tel:+12345678900", + "mailto:your.email@example.com", + "https://linkedin.com/in/username", + "https://www.yourwebsite.com"); + } + + @Test + void rendersOneCanonicalPage() throws Exception { + try (PDDocument document = + Loader.loadPDF(render(ProfessionalSidebarFixtures.canonicalCv()))) { + assertThat(document.getNumberOfPages()).isEqualTo(1); + } + } + + @Test + void rendersIdentityOnly() throws Exception { + // Every berth empty: the plate, the initials and the three channels + // the identity always carries, and no hairline left hanging under a + // section that was never drawn. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .build())); + assertThat(text).contains("empty@example.com"); + } + + @Test + void rendersWithoutAJobTitle() throws Exception { + // The role line is written letter by letter to reach its tracking, so + // an identity with no job title reaches the engine as a paragraph + // holding no runs at all. + String text = textOf(render(CvDocument.builder() + .identity(CvIdentity.builder() + .name("Ada", "Lovelace") + .contact(new Contact("+44 20 7946 0000", "empty@example.com", + "London, UK")) + .build()) + .build())); + assertThat(text).contains("empty@example.com"); + } + + @Test + void drawsAnUnlevelledSkillAsItsNameAlone() throws Exception { + // A meter needs a level; without one the row is the name, not an + // empty track that reads as a zero score. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(Slot.SIDEBAR, SkillsSection.of("SKILLS", + SkillGroup.of("Core", "Java", "Kotlin"))) + .section(Slot.SIDEBAR, SkillsSection.of("LANGUAGES", + new SkillGroup("Spoken", List.of(CvSkill.of("English"))))) + .build())); + assertThat(text).contains("Java").contains("Kotlin").contains("English"); + } + + @Test + void placesSectionsByTitleWhateverSlotTheDocumentNames() throws Exception { + // The columns are fixed, so a document that leaves everything in the + // main slot still gets its education in the sidebar. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(Slot.MAIN, EntriesSection.builder("EDUCATION") + .entry("BSc Computing", "University Name", "2016", "") + .build()) + .build())); + assertThat(text).contains("BSc Computing").contains("University Name"); + } + + @Test + void refusesACvLongerThanTheSheet() { + // The sheet holds one page: the two columns are a single row, and a + // row is atomic. A CV past that raises rather than flowing — pinned + // here because the alternative the sibling presets take is to cap + // each block and drop the rest without saying so. + EntriesSection.Builder experience = EntriesSection.builder("EXPERIENCE"); + for (int i = 0; i < 12; i++) { + experience.entry("ROLE " + i, "Employer " + i + " | City", + "2010 - 2011", + String.join("\n", + "Did a substantial thing that took a full line of text here.", + "Did a second substantial thing, also a full line of text.", + "And a third, so each role occupies real vertical space.")); + } + CvDocument doc = CvDocument.builder() + .identity(identity()) + .section(experience.build()) + .build(); + try (DocumentSession session = GraphCompose.document().create()) { + ProfessionalSidebar.create().compose(session, doc); + assertThatThrownBy(session::toPdfBytes) + .isInstanceOf(AtomicNodeTooLargeException.class) + .hasMessageContaining("PageGrid"); + } + } + + @Test + void drawsNothingTheDesignHasNoPlaceFor() throws Exception { + // A berth is filled once, and three fields have nowhere to go on this + // sheet. A caller who puts content there gets none of it drawn, which + // is why the class says so. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(EntriesSection.builder("PROJECTS") + .entry("LEDGERKIT", "Client name here", "2024", "A ledger.") + .build()) + .section(EntriesSection.builder("EDUCATION") + .entry("BSc", "University Name", "2016", "Thesis title here") + .build()) + .section(SkillsSection.of("SKILLS", + SkillGroup.of("Category name here", "Java"))) + .section(EntriesSection.builder("EXPERIENCE") + .entry("FIRST ROLE", "Employer", "2020", "Did a thing.") + .build()) + .section(EntriesSection.builder("MORE EXPERIENCE") + .entry("SECOND ROLE", "Employer", "2021", "Did another thing.") + .build()) + .build())); + assertThat(text) + .contains("LEDGERKIT") + .contains("University Name") + .contains("Java") + .contains("FIRST ROLE") + .doesNotContain("Client name here") + .doesNotContain("Thesis title here") + .doesNotContain("Category name here") + .doesNotContain("SECOND ROLE"); + } + + private static CvIdentity identity() { + return CvIdentity.builder() + .name("Ada", "Lovelace") + .jobTitle("ANALYST") + .contact(new Contact("+44 20 7946 0000", "empty@example.com", "London, UK")) + .link(new Link("linkedin.com/in/ada", "https://linkedin.com/in/ada")) + .build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarVisualParityTest.java new file mode 100644 index 000000000..5596d0d78 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarVisualParityTest.java @@ -0,0 +1,42 @@ +package com.demcha.compose.document.templates.cv.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 ProfessionalSidebar} — the + * canonical one-page CV against a checked-in baseline. + * + *

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

    + */ +class ProfessionalSidebarVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "cv-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()) { + ProfessionalSidebar.create().compose( + document, ProfessionalSidebarFixtures.canonicalCv()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("professional_sidebar", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json new file mode 100644 index 000000000..f8569aa6f --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/professional_sidebar_layout.json @@ -0,0 +1,4757 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 491.6, + "pageHeight" : 737.28, + "innerWidth" : 491.6, + "innerHeight" : 737.28, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "ProfessionalSidebarCv[0]", + "entityName" : "ProfessionalSidebarCv", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 0.0, + "computedY" : 12.73, + "placementX" : 0.0, + "placementY" : 12.73, + "placementWidth" : 491.6, + "placementHeight" : 724.55, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 491.6, + "contentHeight" : 724.55, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]", + "entityName" : "PageGrid", + "entityKind" : "RowNode", + "parentPath" : "ProfessionalSidebarCv[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 12.73, + "placementX" : 0.0, + "placementY" : 12.73, + "placementWidth" : 491.6, + "placementHeight" : 724.55, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 491.6, + "contentHeight" : 724.55, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]", + "entityName" : "Sidebar", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 24.204, + "placementX" : 0.0, + "placementY" : 24.204, + "placementWidth" : 143.056, + "placementHeight" : 713.076, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 143.056, + "contentHeight" : 713.076, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/MonogramPlate[0]", + "entityName" : "MonogramPlate", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 638.484, + "placementX" : 0.0, + "placementY" : 638.484, + "placementWidth" : 143.056, + "placementHeight" : 98.796, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 143.056, + "contentHeight" : 98.796, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/MonogramPlate[0]/MonogramRing[0]", + "entityName" : "MonogramRing", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/MonogramPlate[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 43.928, + "computedY" : 660.282, + "placementX" : 43.928, + "placementY" : 660.282, + "placementWidth" : 55.2, + "placementHeight" : 55.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 55.2, + "contentHeight" : 55.2, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/MonogramPlate[0]/MonogramRing[0]/MonogramInitials[0]", + "entityName" : "MonogramInitials", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/MonogramPlate[0]/MonogramRing[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 43.928, + "computedY" : 678.282, + "placementX" : 43.928, + "placementY" : 678.282, + "placementWidth" : 55.2, + "placementHeight" : 19.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 55.2, + "contentHeight" : 19.2, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]", + "entityName" : "SidebarBody", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 24.204, + "placementX" : 0.0, + "placementY" : 24.204, + "placementWidth" : 143.056, + "placementHeight" : 614.28, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 143.056, + "contentHeight" : 614.28, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 22.0, + "right" : 17.8, + "bottom" : 0.0, + "left" : 17.8 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]", + "entityName" : "Contact", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 17.8, + "computedY" : 491.434, + "placementX" : 17.8, + "placementY" : 491.434, + "placementWidth" : 98.484, + "placementHeight" : 125.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 98.484, + "contentHeight" : 125.05, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]/SidebarHeading_CONTACT[0]", + "entityName" : "SidebarHeading_CONTACT", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 606.284, + "placementX" : 17.8, + "placementY" : 606.284, + "placementWidth" : 47.723, + "placementHeight" : 10.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.723, + "contentHeight" : 10.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]/SidebarHeadingRule_CONTACT[1]", + "entityName" : "SidebarHeadingRule_CONTACT", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 601.234, + "placementX" : 17.8, + "placementY" : 601.234, + "placementWidth" : 19.0, + "placementHeight" : 1.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.0, + "contentHeight" : 1.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 16.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]/Contact_phone[2]", + "entityName" : "Contact_phone", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 576.434, + "placementX" : 17.8, + "placementY" : 576.434, + "placementWidth" : 70.939, + "placementHeight" : 8.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.939, + "contentHeight" : 8.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.8, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]/Contact_email[3]", + "entityName" : "Contact_email", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 555.434, + "placementX" : 17.8, + "placementY" : 555.434, + "placementWidth" : 95.827, + "placementHeight" : 9.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.827, + "contentHeight" : 9.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.8, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]/Contact_location[4]", + "entityName" : "Contact_location", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]", + "childIndex" : 4, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 534.034, + "placementX" : 17.8, + "placementY" : 534.034, + "placementWidth" : 78.108, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.108, + "contentHeight" : 9.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.8, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]/Contact_linkedin[5]", + "entityName" : "Contact_linkedin", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]", + "childIndex" : 5, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 512.834, + "placementX" : 17.8, + "placementY" : 512.834, + "placementWidth" : 98.484, + "placementHeight" : 9.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 98.484, + "contentHeight" : 9.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.8, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]/Contact_website[6]", + "entityName" : "Contact_website", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Contact[0]", + "childIndex" : 6, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 491.434, + "placementX" : 17.8, + "placementY" : 491.434, + "placementWidth" : 88.843, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.843, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/SidebarDivider[1]", + "entityName" : "SidebarDivider", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 17.8, + "computedY" : 466.434, + "placementX" : 17.8, + "placementY" : 466.434, + "placementWidth" : 107.456, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 1.0, + "margin" : { + "top" : 24.0, + "right" : 0.0, + "bottom" : 18.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]", + "entityName" : "Skills", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 17.8, + "computedY" : 250.984, + "placementX" : 17.8, + "placementY" : 250.984, + "placementWidth" : 107.456, + "placementHeight" : 197.45, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 197.45, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SidebarHeading_SKILLS[0]", + "entityName" : "SidebarHeading_SKILLS", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 438.234, + "placementX" : 17.8, + "placementY" : 438.234, + "placementWidth" : 32.312, + "placementHeight" : 10.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.312, + "contentHeight" : 10.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SidebarHeadingRule_SKILLS[1]", + "entityName" : "SidebarHeadingRule_SKILLS", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 433.184, + "placementX" : 17.8, + "placementY" : 433.184, + "placementWidth" : 19.0, + "placementHeight" : 1.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.0, + "contentHeight" : 1.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 13.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "entityName" : "SkillRows", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 250.984, + "placementX" : 17.8, + "placementY" : 250.984, + "placementWidth" : 107.456, + "placementHeight" : 168.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 168.7, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Java[0]", + "entityName" : "SkillRow_Java", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 411.184, + "placementX" : 17.8, + "placementY" : 411.184, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Java[0]/Skill_Java[0]", + "entityName" : "Skill_Java", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Java[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 411.164, + "placementX" : 17.8, + "placementY" : 411.164, + "placementWidth" : 13.724, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.724, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Java[0]/SkillMeter[1]", + "entityName" : "SkillMeter", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Java[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 77.975, + "computedY" : 414.034, + "placementX" : 77.975, + "placementY" : 414.034, + "placementWidth" : 47.28, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.28, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Java[0]/SkillMeter[1]/SkillMeterFill[0]", + "entityName" : "SkillMeterFill", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Java[0]/SkillMeter[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 77.975, + "computedY" : 414.034, + "placementX" : 77.975, + "placementY" : 414.034, + "placementWidth" : 34.042, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.042, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SpringBoot[1]", + "entityName" : "SkillRow_SpringBoot", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 393.384, + "placementX" : 17.8, + "placementY" : 393.384, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SpringBoot[1]/Skill_SpringBoot[0]", + "entityName" : "Skill_SpringBoot", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SpringBoot[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 393.364, + "placementX" : 17.8, + "placementY" : 393.364, + "placementWidth" : 36.792, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.792, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SpringBoot[1]/SkillMeter[1]", + "entityName" : "SkillMeter", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SpringBoot[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 77.975, + "computedY" : 396.234, + "placementX" : 77.975, + "placementY" : 396.234, + "placementWidth" : 47.28, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.28, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SpringBoot[1]/SkillMeter[1]/SkillMeterFill[0]", + "entityName" : "SkillMeterFill", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SpringBoot[1]/SkillMeter[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 77.975, + "computedY" : 396.234, + "placementX" : 77.975, + "placementY" : 396.234, + "placementWidth" : 33.096, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.096, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SQLDatabases[2]", + "entityName" : "SkillRow_SQLDatabases", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 375.584, + "placementX" : 17.8, + "placementY" : 375.584, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SQLDatabases[2]/Skill_SQLDatabases[0]", + "entityName" : "Skill_SQLDatabases", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SQLDatabases[2]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 375.564, + "placementX" : 17.8, + "placementY" : 375.564, + "placementWidth" : 52.448, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.448, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SQLDatabases[2]/SkillMeter[1]", + "entityName" : "SkillMeter", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SQLDatabases[2]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 77.975, + "computedY" : 378.434, + "placementX" : 77.975, + "placementY" : 378.434, + "placementWidth" : 47.28, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.28, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SQLDatabases[2]/SkillMeter[1]/SkillMeterFill[0]", + "entityName" : "SkillMeterFill", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_SQLDatabases[2]/SkillMeter[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 77.975, + "computedY" : 378.434, + "placementX" : 77.975, + "placementY" : 378.434, + "placementWidth" : 33.096, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.096, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_RESTfulAPIs[3]", + "entityName" : "SkillRow_RESTfulAPIs", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "childIndex" : 3, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 357.784, + "placementX" : 17.8, + "placementY" : 357.784, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_RESTfulAPIs[3]/Skill_RESTfulAPIs[0]", + "entityName" : "Skill_RESTfulAPIs", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_RESTfulAPIs[3]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 357.764, + "placementX" : 17.8, + "placementY" : 357.764, + "placementWidth" : 40.69, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.69, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_RESTfulAPIs[3]/SkillMeter[1]", + "entityName" : "SkillMeter", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_RESTfulAPIs[3]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 77.975, + "computedY" : 360.634, + "placementX" : 77.975, + "placementY" : 360.634, + "placementWidth" : 47.28, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.28, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_RESTfulAPIs[3]/SkillMeter[1]/SkillMeterFill[0]", + "entityName" : "SkillMeterFill", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_RESTfulAPIs[3]/SkillMeter[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 77.975, + "computedY" : 360.634, + "placementX" : 77.975, + "placementY" : 360.634, + "placementWidth" : 28.368, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.368, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Microservices[4]", + "entityName" : "SkillRow_Microservices", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "childIndex" : 4, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 339.984, + "placementX" : 17.8, + "placementY" : 339.984, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Microservices[4]/Skill_Microservices[0]", + "entityName" : "Skill_Microservices", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Microservices[4]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 339.964, + "placementX" : 17.8, + "placementY" : 339.964, + "placementWidth" : 43.296, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 43.296, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Microservices[4]/SkillMeter[1]", + "entityName" : "SkillMeter", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Microservices[4]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 77.975, + "computedY" : 342.834, + "placementX" : 77.975, + "placementY" : 342.834, + "placementWidth" : 47.28, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.28, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Microservices[4]/SkillMeter[1]/SkillMeterFill[0]", + "entityName" : "SkillMeterFill", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Microservices[4]/SkillMeter[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 77.975, + "computedY" : 342.834, + "placementX" : 77.975, + "placementY" : 342.834, + "placementWidth" : 34.042, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.042, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_GitGitHub[5]", + "entityName" : "SkillRow_GitGitHub", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "childIndex" : 5, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 322.184, + "placementX" : 17.8, + "placementY" : 322.184, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_GitGitHub[5]/Skill_GitGitHub[0]", + "entityName" : "Skill_GitGitHub", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_GitGitHub[5]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 322.164, + "placementX" : 17.8, + "placementY" : 322.164, + "placementWidth" : 39.093, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 39.093, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_GitGitHub[5]/SkillMeter[1]", + "entityName" : "SkillMeter", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_GitGitHub[5]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 77.975, + "computedY" : 325.034, + "placementX" : 77.975, + "placementY" : 325.034, + "placementWidth" : 47.28, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.28, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_GitGitHub[5]/SkillMeter[1]/SkillMeterFill[0]", + "entityName" : "SkillMeterFill", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_GitGitHub[5]/SkillMeter[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 77.975, + "computedY" : 325.034, + "placementX" : 77.975, + "placementY" : 325.034, + "placementWidth" : 34.042, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.042, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Docker[6]", + "entityName" : "SkillRow_Docker", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "childIndex" : 6, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 304.384, + "placementX" : 17.8, + "placementY" : 304.384, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Docker[6]/Skill_Docker[0]", + "entityName" : "Skill_Docker", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Docker[6]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 304.364, + "placementX" : 17.8, + "placementY" : 304.364, + "placementWidth" : 22.763, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.763, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Docker[6]/SkillMeter[1]", + "entityName" : "SkillMeter", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Docker[6]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 77.975, + "computedY" : 307.234, + "placementX" : 77.975, + "placementY" : 307.234, + "placementWidth" : 47.28, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.28, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Docker[6]/SkillMeter[1]/SkillMeterFill[0]", + "entityName" : "SkillMeterFill", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Docker[6]/SkillMeter[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 77.975, + "computedY" : 307.234, + "placementX" : 77.975, + "placementY" : 307.234, + "placementWidth" : 26.477, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.477, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_TestingJUnit[7]", + "entityName" : "SkillRow_TestingJUnit", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "childIndex" : 7, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 286.584, + "placementX" : 17.8, + "placementY" : 286.584, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_TestingJUnit[7]/Skill_TestingJUnit[0]", + "entityName" : "Skill_TestingJUnit", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_TestingJUnit[7]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 286.564, + "placementX" : 17.8, + "placementY" : 286.564, + "placementWidth" : 44.979, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.979, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_TestingJUnit[7]/SkillMeter[1]", + "entityName" : "SkillMeter", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_TestingJUnit[7]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 77.975, + "computedY" : 289.434, + "placementX" : 77.975, + "placementY" : 289.434, + "placementWidth" : 47.28, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.28, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_TestingJUnit[7]/SkillMeter[1]/SkillMeterFill[0]", + "entityName" : "SkillMeterFill", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_TestingJUnit[7]/SkillMeter[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 77.975, + "computedY" : 289.434, + "placementX" : 77.975, + "placementY" : 289.434, + "placementWidth" : 35.933, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.933, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_ProblemSolving[8]", + "entityName" : "SkillRow_ProblemSolving", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "childIndex" : 8, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 268.784, + "placementX" : 17.8, + "placementY" : 268.784, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_ProblemSolving[8]/Skill_ProblemSolving[0]", + "entityName" : "Skill_ProblemSolving", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_ProblemSolving[8]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 268.764, + "placementX" : 17.8, + "placementY" : 268.764, + "placementWidth" : 50.517, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.517, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_ProblemSolving[8]/SkillMeter[1]", + "entityName" : "SkillMeter", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_ProblemSolving[8]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 77.975, + "computedY" : 271.634, + "placementX" : 77.975, + "placementY" : 271.634, + "placementWidth" : 47.28, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.28, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_ProblemSolving[8]/SkillMeter[1]/SkillMeterFill[0]", + "entityName" : "SkillMeterFill", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_ProblemSolving[8]/SkillMeter[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 77.975, + "computedY" : 271.634, + "placementX" : 77.975, + "placementY" : 271.634, + "placementWidth" : 34.042, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.042, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Communication[9]", + "entityName" : "SkillRow_Communication", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]", + "childIndex" : 9, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 250.984, + "placementX" : 17.8, + "placementY" : 250.984, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Communication[9]/Skill_Communication[0]", + "entityName" : "Skill_Communication", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Communication[9]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 250.964, + "placementX" : 17.8, + "placementY" : 250.964, + "placementWidth" : 49.246, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.246, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Communication[9]/SkillMeter[1]", + "entityName" : "SkillMeter", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Communication[9]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 77.975, + "computedY" : 253.834, + "placementX" : 77.975, + "placementY" : 253.834, + "placementWidth" : 47.28, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.28, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Communication[9]/SkillMeter[1]/SkillMeterFill[0]", + "entityName" : "SkillMeterFill", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Skills[2]/SkillRows[2]/SkillRow_Communication[9]/SkillMeter[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 77.975, + "computedY" : 253.834, + "placementX" : 77.975, + "placementY" : 253.834, + "placementWidth" : 33.096, + "placementHeight" : 2.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.096, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/SidebarDivider[3]", + "entityName" : "SidebarDivider", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 17.8, + "computedY" : 234.984, + "placementX" : 17.8, + "placementY" : 234.984, + "placementWidth" : 107.456, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 1.0, + "margin" : { + "top" : 15.0, + "right" : 0.0, + "bottom" : 18.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]", + "entityName" : "Education", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 17.8, + "computedY" : 118.054, + "placementX" : 17.8, + "placementY" : 118.054, + "placementWidth" : 107.456, + "placementHeight" : 98.93, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 98.93, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/SidebarHeading_EDUCATION[0]", + "entityName" : "SidebarHeading_EDUCATION", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 206.784, + "placementX" : 17.8, + "placementY" : 206.784, + "placementWidth" : 59.505, + "placementHeight" : 10.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 59.505, + "contentHeight" : 10.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/SidebarHeadingRule_EDUCATION[1]", + "entityName" : "SidebarHeadingRule_EDUCATION", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 201.734, + "placementX" : 17.8, + "placementY" : 201.734, + "placementWidth" : 19.0, + "placementHeight" : 1.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.0, + "contentHeight" : 1.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", + "entityName" : "EducationRail", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 20.6, + "computedY" : 118.054, + "placementX" : 20.6, + "placementY" : 118.054, + "placementWidth" : 104.656, + "placementHeight" : 73.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.656, + "contentHeight" : 73.68, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 2.8 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]", + "entityName" : "EducationHead_0", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 20.6, + "computedY" : 182.434, + "placementX" : 20.6, + "placementY" : 182.434, + "placementWidth" : 104.656, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.656, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]/EducationRailMaskAboveFirstMarker[0]", + "entityName" : "EducationRailMaskAboveFirstMarker", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 20.1, + "computedY" : 189.234, + "placementX" : 20.1, + "placementY" : 189.234, + "placementWidth" : 1.55, + "placementHeight" : 2.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.55, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]/EducationRailFromFirstMarker[1]", + "entityName" : "EducationRailFromFirstMarker", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 20.6, + "computedY" : 182.434, + "placementX" : 20.6, + "placementY" : 182.434, + "placementWidth" : 0.55, + "placementHeight" : 2.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.55, + "contentHeight" : 2.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]/EducationMarker_0[2]", + "entityName" : "EducationMarker_0", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 18.45, + "computedY" : 184.934, + "placementX" : 18.45, + "placementY" : 184.934, + "placementWidth" : 4.3, + "placementHeight" : 4.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 4.3, + "contentHeight" : 4.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]/EducationDegree_0[3]", + "entityName" : "EducationDegree_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_0[0]", + "childIndex" : 3, + "depth" : 8, + "layer" : 8, + "computedX" : 33.6, + "computedY" : 182.704, + "placementX" : 33.6, + "placementY" : 182.704, + "placementWidth" : 51.713, + "placementHeight" : 8.76, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.713, + "contentHeight" : 8.76, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationInstitution_0[1]", + "entityName" : "EducationInstitution_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 33.6, + "computedY" : 171.414, + "placementX" : 33.6, + "placementY" : 171.414, + "placementWidth" : 49.21, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.21, + "contentHeight" : 8.52, + "margin" : { + "top" : 2.5, + "right" : 0.0, + "bottom" : 2.5, + "left" : 13.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationDates_0[2]", + "entityName" : "EducationDates_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 33.6, + "computedY" : 160.394, + "placementX" : 33.6, + "placementY" : 160.394, + "placementWidth" : 40.697, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.697, + "contentHeight" : 8.52, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.0, + "left" : 13.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_1[3]", + "entityName" : "EducationHead_1", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", + "childIndex" : 3, + "depth" : 7, + "layer" : 7, + "computedX" : 20.6, + "computedY" : 140.094, + "placementX" : 20.6, + "placementY" : 140.094, + "placementWidth" : 104.656, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.656, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_1[3]/EducationMarker_1[0]", + "entityName" : "EducationMarker_1", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_1[3]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 18.45, + "computedY" : 142.594, + "placementX" : 18.45, + "placementY" : 142.594, + "placementWidth" : 4.3, + "placementHeight" : 4.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 4.3, + "contentHeight" : 4.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_1[3]/EducationDegree_1[1]", + "entityName" : "EducationDegree_1", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationHead_1[3]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 33.6, + "computedY" : 140.364, + "placementX" : 33.6, + "placementY" : 140.364, + "placementWidth" : 51.713, + "placementHeight" : 8.76, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.713, + "contentHeight" : 8.76, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationInstitution_1[4]", + "entityName" : "EducationInstitution_1", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", + "childIndex" : 4, + "depth" : 7, + "layer" : 7, + "computedX" : 33.6, + "computedY" : 129.074, + "placementX" : 33.6, + "placementY" : 129.074, + "placementWidth" : 49.21, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.21, + "contentHeight" : 8.52, + "margin" : { + "top" : 2.5, + "right" : 0.0, + "bottom" : 2.5, + "left" : 13.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]/EducationDates_1[5]", + "entityName" : "EducationDates_1", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Education[4]/EducationRail[2]", + "childIndex" : 5, + "depth" : 7, + "layer" : 7, + "computedX" : 33.6, + "computedY" : 118.054, + "placementX" : 33.6, + "placementY" : 118.054, + "placementWidth" : 40.697, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 40.697, + "contentHeight" : 8.52, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/SidebarDivider[5]", + "entityName" : "SidebarDivider", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 17.8, + "computedY" : 109.054, + "placementX" : 17.8, + "placementY" : 109.054, + "placementWidth" : 107.456, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 1.0, + "margin" : { + "top" : 8.0, + "right" : 0.0, + "bottom" : 16.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]", + "entityName" : "Languages", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 17.8, + "computedY" : 24.204, + "placementX" : 17.8, + "placementY" : 24.204, + "placementWidth" : 107.456, + "placementHeight" : 68.85, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 68.85, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/SidebarHeading_LANGUAGES[0]", + "entityName" : "SidebarHeading_LANGUAGES", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 82.854, + "placementX" : 17.8, + "placementY" : 82.854, + "placementWidth" : 60.253, + "placementHeight" : 10.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.253, + "contentHeight" : 10.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/SidebarHeadingRule_LANGUAGES[1]", + "entityName" : "SidebarHeadingRule_LANGUAGES", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 77.804, + "placementX" : 17.8, + "placementY" : 77.804, + "placementWidth" : 19.0, + "placementHeight" : 1.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.0, + "contentHeight" : 1.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 13.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]", + "entityName" : "LanguageRows", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 17.8, + "computedY" : 24.204, + "placementX" : 17.8, + "placementY" : 24.204, + "placementWidth" : 107.456, + "placementHeight" : 40.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 40.1, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]", + "entityName" : "LanguageRow_English", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 55.804, + "placementX" : 17.8, + "placementY" : 55.804, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/Language_English[0]", + "entityName" : "Language_English", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 55.784, + "placementX" : 17.8, + "placementY" : 55.784, + "placementWidth" : 22.173, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.173, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]", + "entityName" : "LanguageRating", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 70.453, + "computedY" : 57.554, + "placementX" : 70.453, + "placementY" : 57.554, + "placementWidth" : 45.4, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.4, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]/LanguageDot_0[0]", + "entityName" : "LanguageDot_0", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 70.453, + "computedY" : 57.554, + "placementX" : 70.453, + "placementY" : 57.554, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]/LanguageDot_1[1]", + "entityName" : "LanguageDot_1", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 80.553, + "computedY" : 57.554, + "placementX" : 80.553, + "placementY" : 57.554, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]/LanguageDot_2[2]", + "entityName" : "LanguageDot_2", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 90.653, + "computedY" : 57.554, + "placementX" : 90.653, + "placementY" : 57.554, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]/LanguageDot_3[3]", + "entityName" : "LanguageDot_3", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]", + "childIndex" : 3, + "depth" : 9, + "layer" : 9, + "computedX" : 100.753, + "computedY" : 57.554, + "placementX" : 100.753, + "placementY" : 57.554, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]/LanguageDot_4[4]", + "entityName" : "LanguageDot_4", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_English[0]/LanguageRating[1]", + "childIndex" : 4, + "depth" : 9, + "layer" : 9, + "computedX" : 110.853, + "computedY" : 57.554, + "placementX" : 110.853, + "placementY" : 57.554, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]", + "entityName" : "LanguageRow_Ukrainian", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 40.004, + "placementX" : 17.8, + "placementY" : 40.004, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/Language_Ukrainian[0]", + "entityName" : "Language_Ukrainian", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 39.984, + "placementX" : 17.8, + "placementY" : 39.984, + "placementWidth" : 29.806, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.806, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]", + "entityName" : "LanguageRating", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 70.453, + "computedY" : 41.754, + "placementX" : 70.453, + "placementY" : 41.754, + "placementWidth" : 45.4, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.4, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]/LanguageDot_0[0]", + "entityName" : "LanguageDot_0", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 70.453, + "computedY" : 41.754, + "placementX" : 70.453, + "placementY" : 41.754, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]/LanguageDot_1[1]", + "entityName" : "LanguageDot_1", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 80.553, + "computedY" : 41.754, + "placementX" : 80.553, + "placementY" : 41.754, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]/LanguageDot_2[2]", + "entityName" : "LanguageDot_2", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 90.653, + "computedY" : 41.754, + "placementX" : 90.653, + "placementY" : 41.754, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]/LanguageDot_3[3]", + "entityName" : "LanguageDot_3", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]", + "childIndex" : 3, + "depth" : 9, + "layer" : 9, + "computedX" : 100.753, + "computedY" : 41.754, + "placementX" : 100.753, + "placementY" : 41.754, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]/LanguageDot_4[4]", + "entityName" : "LanguageDot_4", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Ukrainian[1]/LanguageRating[1]", + "childIndex" : 4, + "depth" : 9, + "layer" : 9, + "computedX" : 110.853, + "computedY" : 41.754, + "placementX" : 110.853, + "placementY" : 41.754, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]", + "entityName" : "LanguageRow_Russian", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 17.8, + "computedY" : 24.204, + "placementX" : 17.8, + "placementY" : 24.204, + "placementWidth" : 107.456, + "placementHeight" : 8.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.456, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/Language_Russian[0]", + "entityName" : "Language_Russian", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.8, + "computedY" : 24.184, + "placementX" : 17.8, + "placementY" : 24.184, + "placementWidth" : 23.757, + "placementHeight" : 8.52, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.757, + "contentHeight" : 8.52, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]", + "entityName" : "LanguageRating", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 70.453, + "computedY" : 25.954, + "placementX" : 70.453, + "placementY" : 25.954, + "placementWidth" : 45.4, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.4, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]/LanguageDot_0[0]", + "entityName" : "LanguageDot_0", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 70.453, + "computedY" : 25.954, + "placementX" : 70.453, + "placementY" : 25.954, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]/LanguageDot_1[1]", + "entityName" : "LanguageDot_1", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 80.553, + "computedY" : 25.954, + "placementX" : 80.553, + "placementY" : 25.954, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]/LanguageDot_2[2]", + "entityName" : "LanguageDot_2", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 90.653, + "computedY" : 25.954, + "placementX" : 90.653, + "placementY" : 25.954, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]/LanguageDot_3[3]", + "entityName" : "LanguageDot_3", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]", + "childIndex" : 3, + "depth" : 9, + "layer" : 9, + "computedX" : 100.753, + "computedY" : 25.954, + "placementX" : 100.753, + "placementY" : 25.954, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]/LanguageDot_4[4]", + "entityName" : "LanguageDot_4", + "entityKind" : "EllipseNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Sidebar[0]/SidebarBody[1]/Languages[6]/LanguageRows[2]/LanguageRow_Russian[2]/LanguageRating[1]", + "childIndex" : 4, + "depth" : 9, + "layer" : 9, + "computedX" : 110.853, + "computedY" : 25.954, + "placementX" : 110.853, + "placementY" : 25.954, + "placementWidth" : 5.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 5.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]", + "entityName" : "Main", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 143.056, + "computedY" : 12.73, + "placementX" : 143.056, + "placementY" : 12.73, + "placementWidth" : 348.544, + "placementHeight" : 724.55, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 348.544, + "contentHeight" : 724.55, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 21.9, + "right" : 20.0, + "bottom" : 0.0, + "left" : 27.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]", + "entityName" : "Identity", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 170.056, + "computedY" : 617.19, + "placementX" : 170.056, + "placementY" : 617.19, + "placementWidth" : 301.544, + "placementHeight" : 98.19, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 98.19, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]/DisplayName[0]", + "entityName" : "DisplayName", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 671.34, + "placementX" : 170.056, + "placementY" : 671.34, + "placementWidth" : 176.476, + "placementHeight" : 44.04, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 176.476, + "contentHeight" : 44.04, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 6.3, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]/ProfessionalTitle[1]", + "entityName" : "ProfessionalTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 653.64, + "placementX" : 170.056, + "placementY" : 653.64, + "placementWidth" : 163.438, + "placementHeight" : 11.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 163.438, + "contentHeight" : 11.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 14.9, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]/IdentityRule[2]", + "entityName" : "IdentityRule", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 637.69, + "placementX" : 170.056, + "placementY" : 637.69, + "placementWidth" : 301.544, + "placementHeight" : 1.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 1.05, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]/IdentityRule[2]/IdentityAccentSegment[0]", + "entityName" : "IdentityAccentSegment", + "entityKind" : "ShapeNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]/IdentityRule[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 637.69, + "placementX" : 170.056, + "placementY" : 637.69, + "placementWidth" : 27.0, + "placementHeight" : 1.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.0, + "contentHeight" : 1.05, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]/SpacerNode[3]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 617.19, + "placementX" : 170.056, + "placementY" : 617.19, + "placementWidth" : 0.0, + "placementHeight" : 20.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 20.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Profile[1]", + "entityName" : "Profile", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 170.056, + "computedY" : 525.58, + "placementX" : 170.056, + "placementY" : 525.58, + "placementWidth" : 287.543, + "placementHeight" : 91.61, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 287.543, + "contentHeight" : 91.61, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Profile[1]/MainHeading_PROFILE[0]", + "entityName" : "MainHeading_PROFILE", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Profile[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 606.75, + "placementX" : 170.056, + "placementY" : 606.75, + "placementWidth" : 42.147, + "placementHeight" : 10.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.147, + "contentHeight" : 10.44, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Profile[1]/MainHeadingRule_PROFILE[1]", + "entityName" : "MainHeadingRule_PROFILE", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Profile[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 601.7, + "placementX" : 170.056, + "placementY" : 601.7, + "placementWidth" : 19.0, + "placementHeight" : 1.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.0, + "contentHeight" : 1.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 14.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Profile[1]/ProfileText[2]", + "entityName" : "ProfileText", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Profile[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 550.08, + "placementX" : 170.056, + "placementY" : 550.08, + "placementWidth" : 287.543, + "placementHeight" : 37.62, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 287.543, + "contentHeight" : 37.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Profile[1]/SpacerNode[3]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Profile[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 525.58, + "placementX" : 170.056, + "placementY" : 525.58, + "placementWidth" : 0.0, + "placementHeight" : 24.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 24.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "entityName" : "Experience", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 170.056, + "computedY" : 165.63, + "placementX" : 170.056, + "placementY" : 165.63, + "placementWidth" : 301.544, + "placementHeight" : 359.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 359.95, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/MainHeading_EXPERIENCE[0]", + "entityName" : "MainHeading_EXPERIENCE", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 515.14, + "placementX" : 170.056, + "placementY" : 515.14, + "placementWidth" : 62.533, + "placementHeight" : 10.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.533, + "contentHeight" : 10.44, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/MainHeadingRule_EXPERIENCE[1]", + "entityName" : "MainHeadingRule_EXPERIENCE", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 510.09, + "placementX" : 170.056, + "placementY" : 510.09, + "placementWidth" : 19.0, + "placementHeight" : 1.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.0, + "contentHeight" : 1.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 18.3, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_0[2]", + "entityName" : "ExperienceHead_0", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 482.49, + "placementX" : 170.056, + "placementY" : 482.49, + "placementWidth" : 301.544, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_0[2]/ExperienceHead_0Title[0]", + "entityName" : "ExperienceHead_0Title", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_0[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 482.64, + "placementX" : 170.056, + "placementY" : 482.64, + "placementWidth" : 101.858, + "placementHeight" : 9.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 101.858, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_0[2]/ExperienceHead_0Dates[1]", + "entityName" : "ExperienceHead_0Dates", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_0[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 482.82, + "placementX" : 170.056, + "placementY" : 482.82, + "placementWidth" : 301.544, + "placementHeight" : 8.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceMeta_0[3]", + "entityName" : "ExperienceMeta_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 471.85, + "placementX" : 170.056, + "placementY" : 471.85, + "placementWidth" : 91.62, + "placementHeight" : 8.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.62, + "contentHeight" : 8.64, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 14.3, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHighlights_0[4]", + "entityName" : "ExperienceHighlights_0", + "entityKind" : "ListNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 409.07, + "placementX" : 170.056, + "placementY" : 409.07, + "placementWidth" : 208.058, + "placementHeight" : 48.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 208.058, + "contentHeight" : 48.48, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/MainDivider[5]", + "entityName" : "MainDivider", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 394.07, + "placementX" : 170.056, + "placementY" : 394.07, + "placementWidth" : 301.544, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 1.0, + "margin" : { + "top" : 14.0, + "right" : 0.0, + "bottom" : 13.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_1[6]", + "entityName" : "ExperienceHead_1", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 371.77, + "placementX" : 170.056, + "placementY" : 371.77, + "placementWidth" : 301.544, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_1[6]/ExperienceHead_1Title[0]", + "entityName" : "ExperienceHead_1Title", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_1[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 371.92, + "placementX" : 170.056, + "placementY" : 371.92, + "placementWidth" : 86.258, + "placementHeight" : 9.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.258, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_1[6]/ExperienceHead_1Dates[1]", + "entityName" : "ExperienceHead_1Dates", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_1[6]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 372.1, + "placementX" : 170.056, + "placementY" : 372.1, + "placementWidth" : 301.544, + "placementHeight" : 8.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceMeta_1[7]", + "entityName" : "ExperienceMeta_1", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 361.13, + "placementX" : 170.056, + "placementY" : 361.13, + "placementWidth" : 120.643, + "placementHeight" : 8.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 120.643, + "contentHeight" : 8.64, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 14.3, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHighlights_1[8]", + "entityName" : "ExperienceHighlights_1", + "entityKind" : "ListNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 8, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 298.35, + "placementX" : 170.056, + "placementY" : 298.35, + "placementWidth" : 194.696, + "placementHeight" : 48.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 194.696, + "contentHeight" : 48.48, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/MainDivider[9]", + "entityName" : "MainDivider", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 9, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 283.35, + "placementX" : 170.056, + "placementY" : 283.35, + "placementWidth" : 301.544, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 1.0, + "margin" : { + "top" : 14.0, + "right" : 0.0, + "bottom" : 13.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_2[10]", + "entityName" : "ExperienceHead_2", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 10, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 261.05, + "placementX" : 170.056, + "placementY" : 261.05, + "placementWidth" : 301.544, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_2[10]/ExperienceHead_2Title[0]", + "entityName" : "ExperienceHead_2Title", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_2[10]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 261.2, + "placementX" : 170.056, + "placementY" : 261.2, + "placementWidth" : 93.48, + "placementHeight" : 9.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 93.48, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_2[10]/ExperienceHead_2Dates[1]", + "entityName" : "ExperienceHead_2Dates", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHead_2[10]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 261.38, + "placementX" : 170.056, + "placementY" : 261.38, + "placementWidth" : 301.544, + "placementHeight" : 8.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceMeta_2[11]", + "entityName" : "ExperienceMeta_2", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 11, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 250.41, + "placementX" : 170.056, + "placementY" : 250.41, + "placementWidth" : 68.875, + "placementHeight" : 8.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 68.875, + "contentHeight" : 8.64, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 14.3, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/ExperienceHighlights_2[12]", + "entityName" : "ExperienceHighlights_2", + "entityKind" : "ListNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 12, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 187.63, + "placementX" : 170.056, + "placementY" : 187.63, + "placementWidth" : 193.731, + "placementHeight" : 48.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 193.731, + "contentHeight" : 48.48, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]/SpacerNode[13]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Experience[2]", + "childIndex" : 13, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 165.63, + "placementX" : 170.056, + "placementY" : 165.63, + "placementWidth" : 0.0, + "placementHeight" : 22.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 22.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "entityName" : "Projects", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 170.056, + "computedY" : 45.1, + "placementX" : 170.056, + "placementY" : 45.1, + "placementWidth" : 301.544, + "placementHeight" : 120.53, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 120.53, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/MainHeading_PROJECTS[0]", + "entityName" : "MainHeading_PROJECTS", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 155.19, + "placementX" : 170.056, + "placementY" : 155.19, + "placementWidth" : 50.795, + "placementHeight" : 10.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.795, + "contentHeight" : 10.44, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/MainHeadingRule_PROJECTS[1]", + "entityName" : "MainHeadingRule_PROJECTS", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 150.14, + "placementX" : 170.056, + "placementY" : 150.14, + "placementWidth" : 19.0, + "placementHeight" : 1.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.0, + "contentHeight" : 1.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectHead_0[2]", + "entityName" : "ProjectHead_0", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 132.84, + "placementX" : 170.056, + "placementY" : 132.84, + "placementWidth" : 301.544, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectHead_0[2]/ProjectHead_0Title[0]", + "entityName" : "ProjectHead_0Title", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectHead_0[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 132.99, + "placementX" : 170.056, + "placementY" : 132.99, + "placementWidth" : 47.88, + "placementHeight" : 9.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.88, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectHead_0[2]/ProjectHead_0Dates[1]", + "entityName" : "ProjectHead_0Dates", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectHead_0[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 133.17, + "placementX" : 170.056, + "placementY" : 133.17, + "placementWidth" : 301.544, + "placementHeight" : 8.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/SpacerNode[3]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 127.84, + "placementX" : 170.056, + "placementY" : 127.84, + "placementWidth" : 0.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectDescription_0[4]", + "entityName" : "ProjectDescription_0", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 109.62, + "placementX" : 170.056, + "placementY" : 109.62, + "placementWidth" : 289.197, + "placementHeight" : 18.22, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 289.197, + "contentHeight" : 18.22, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/MainDivider[5]", + "entityName" : "MainDivider", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 102.62, + "placementX" : 170.056, + "placementY" : 102.62, + "placementWidth" : 301.544, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 1.0, + "margin" : { + "top" : 6.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectHead_1[6]", + "entityName" : "ProjectHead_1", + "entityKind" : "ShapeContainerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 86.32, + "placementX" : 170.056, + "placementY" : 86.32, + "placementWidth" : 301.544, + "placementHeight" : 9.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 9.3, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectHead_1[6]/ProjectHead_1Title[0]", + "entityName" : "ProjectHead_1Title", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectHead_1[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 86.47, + "placementX" : 170.056, + "placementY" : 86.47, + "placementWidth" : 63.15, + "placementHeight" : 9.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.15, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectHead_1[6]/ProjectHead_1Dates[1]", + "entityName" : "ProjectHead_1Dates", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectHead_1[6]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 170.056, + "computedY" : 86.65, + "placementX" : 170.056, + "placementY" : 86.65, + "placementWidth" : 301.544, + "placementHeight" : 8.64, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 301.544, + "contentHeight" : 8.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/SpacerNode[7]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 81.32, + "placementX" : 170.056, + "placementY" : 81.32, + "placementWidth" : 0.0, + "placementHeight" : 5.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 5.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/ProjectDescription_1[8]", + "entityName" : "ProjectDescription_1", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "childIndex" : 8, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 63.1, + "placementX" : 170.056, + "placementY" : 63.1, + "placementWidth" : 296.901, + "placementHeight" : 18.22, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 296.901, + "contentHeight" : 18.22, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]/SpacerNode[9]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/Projects[3]", + "childIndex" : 9, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 45.1, + "placementX" : 170.056, + "placementY" : 45.1, + "placementWidth" : 0.0, + "placementHeight" : 18.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 18.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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/References[4]", + "entityName" : "References", + "entityKind" : "SectionNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 170.056, + "computedY" : 12.73, + "placementX" : 170.056, + "placementY" : 12.73, + "placementWidth" : 76.287, + "placementHeight" : 32.37, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.287, + "contentHeight" : 32.37, + "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" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/References[4]/MainHeading_REFERENCES[0]", + "entityName" : "MainHeading_REFERENCES", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/References[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 34.66, + "placementX" : 170.056, + "placementY" : 34.66, + "placementWidth" : 64.021, + "placementHeight" : 10.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.021, + "contentHeight" : 10.44, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/References[4]/MainHeadingRule_REFERENCES[1]", + "entityName" : "MainHeadingRule_REFERENCES", + "entityKind" : "LineNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/References[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 29.61, + "placementX" : 170.056, + "placementY" : 29.61, + "placementWidth" : 19.0, + "placementHeight" : 1.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.0, + "contentHeight" : 1.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/References[4]/ReferencesNote[2]", + "entityName" : "ReferencesNote", + "entityKind" : "ParagraphNode", + "parentPath" : "ProfessionalSidebarCv[0]/PageGrid[0]/Main[1]/References[4]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 170.056, + "computedY" : 12.73, + "placementX" : 170.056, + "placementY" : 12.73, + "placementWidth" : 76.287, + "placementHeight" : 8.88, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 76.287, + "contentHeight" : 8.88, + "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/cv-v2-layered/professional_sidebar-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/professional_sidebar-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..2d4d701359eca7e7f9c8085a4a1475c2eeb0e480 GIT binary patch literal 81055 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 literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebar.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebar.java new file mode 100644 index 000000000..2dcca81e6 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebar.java @@ -0,0 +1,220 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageBackgroundFill; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvSection; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MAIN_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.PAGE_BACKGROUND; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.PAGE_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.PAGE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_BACKGROUND; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_WEIGHT; + +/** + * Professional Sidebar — a one-page CV in two columns: a pale sidebar under + * a navy monogram plate carrying the contact channels, the skill meters, the + * education rail and the language ratings, and a white main column carrying + * the name, the profile, the roles held, the projects and the references + * note. + * + *

    The preset owns its page: a 491.6 x 737.28pt sheet with no margin, the + * page fill and the pale sidebar painted as page backgrounds so the column + * reaches the foot of the sheet whatever the sidebar holds.

    + * + *

    One page, and what happens past it

    + * + *

    This sheet holds one page of content. The two columns are a single row, + * and a row is atomic — it cannot be split — so a CV longer than the sheet + * does not flow onto a second page: composing it raises + * {@code AtomicNodeTooLargeException}, naming the node and the height it + * needed. Feed it a CV of about the length the design was drawn around: five + * or six roles with three or four highlights each, alongside the sidebar + * blocks.

    + * + *

    The preset draws no cap of its own, which is the deliberate half of + * that: its siblings {@link MonogramSidebar}, {@link SidebarPortrait} and + * {@link MintEditorial} cap each block and silently drop what does not fit, + * and a CV that quietly loses a job is worse than one that refuses to + * compose. {@link TimelineMinimal} is the preset in this package that splits + * its own columns across pages.

    + * + *

    How a document reaches its berth

    + * + *

    The columns are fixed, so the preset assigns each section a berth by + * title rather than reading {@link + * com.demcha.compose.document.templates.cv.data.Slot}: profile, experience, + * projects and references to the main column; skills, education and + * languages to the sidebar. A section whose title matches no berth is not + * drawn, and a berth with no section takes its leading hairline with it.

    + * + *

    A berth is filled by the first section that names it, so a second + * section naming the same berth is not drawn. Neither is anything the design + * has no place for: a project's {@code subtitle}, an education entry's + * {@code body}, and a {@code SkillGroup}'s {@code category} — this sheet + * heads its projects with a title and dates, its degrees with an institution + * and dates, and sets its skills as one ungrouped list.

    + * + *

    Both the skills and the languages are {@link SkillsSection}s — the same + * shape, drawn differently: a skill's level fills a bar, a language's fills + * the nearest whole number of five dots. A level the document omits draws + * the name alone.

    + * + *

    The sidebar's rows are one line each: a skill name, a language name and + * an education degree are anchored inside a fixed-height band, so text + * longer than the narrow column measures overflows the band instead of + * wrapping inside it. That is the design — the sheet is drawn around short + * labels — and it is the one length constraint a document has to respect.

    + * + *

    The contact channels come off the identity rather than a section: the + * phone, the email and the address take the packaged marks, and each link + * takes the network mark when it names one and the globe otherwise. The + * phone and email rows carry {@code tel:} and {@code mailto:} targets built + * from the value.

    + * + *

    Fonts

    + * + *

    The sheet is set in Barlow Condensed and Lato. The templates artifact + * does not carry either face — register them on the session, or the engine + * substitutes and the measured geometry here no longer matches the type + * sitting in it.

    + * + *

    Usage:

    + *
    {@code
    + * DocumentTemplate template = ProfessionalSidebar.create();
    + * template.compose(session, cv);
    + * }
    + */ +public final class ProfessionalSidebar { + + /** Stable identifier of this preset. */ + public static final String ID = "professional-sidebar"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Professional Sidebar"; + + /** + * The margin this preset expects: none. It sets the page margin itself, + * because both columns run to the paper edge. + */ + public static final double RECOMMENDED_MARGIN = 0.0; + + private static final List PROFILE_KEYS = + List.of("profile", "summary", "about"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "employment", "work history", "career"); + private static final List PROJECT_KEYS = + List.of("projects", "project", "portfolio"); + private static final List REFERENCES_KEYS = + List.of("references", "reference"); + private static final List SKILL_KEYS = + List.of("skills", "expertise", "competencies"); + private static final List EDUCATION_KEYS = + List.of("education", "qualifications", "certifications"); + private static final List LANGUAGE_KEYS = + List.of("languages", "language"); + + private ProfessionalSidebar() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link CvDocument} onto its own page + */ + 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, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + List sections = doc.sections(); + + document.pageSize(PAGE_WIDTH, PAGE_HEIGHT) + .margin(DocumentInsets.zero()) + // The sidebar fill is a page background rather than a + // section fill: a section is only as tall as what it + // holds, and the pale column has to reach the foot of + // the sheet whatever the sidebar carries. + .pageBackgrounds(List.of( + PageBackgroundFill.fullPage(PAGE_BACKGROUND), + PageBackgroundFill.leftColumn(SIDEBAR_WEIGHT, + SIDEBAR_BACKGROUND))); + + SkillsSection skills = berth(sections, SkillsSection.class, SKILL_KEYS); + EntriesSection education = berth(sections, EntriesSection.class, EDUCATION_KEYS); + // A title can name both berths — "Skills and Languages" does — + // and one section cannot fill two, so the second berth stays + // empty rather than drawing the same list twice in two hands. + SkillsSection named = berth(sections, SkillsSection.class, LANGUAGE_KEYS); + SkillsSection languages = named == skills ? null : named; + ParagraphSection profile = berth(sections, ParagraphSection.class, PROFILE_KEYS); + EntriesSection experience = berth(sections, EntriesSection.class, EXPERIENCE_KEYS); + EntriesSection projects = berth(sections, EntriesSection.class, PROJECT_KEYS); + ParagraphSection references = + berth(sections, ParagraphSection.class, REFERENCES_KEYS); + + document.pageFlow(page -> page + .name("ProfessionalSidebarCv") + .padding(DocumentInsets.zero()) + // spacing(0): every gap in this design is authored on the + // node that owns it, so a flow gap would add to all of + // them. + .spacing(0) + .addRow("PageGrid", row -> { + row.spacing(0); + row.weights(SIDEBAR_WEIGHT, MAIN_WEIGHT); + row.addSection("Sidebar", aside -> + ProfessionalSidebarAside.compose(aside, doc.identity(), + skills, education, languages)); + row.addSection("Main", main -> + ProfessionalSidebarMain.compose(main, doc.identity(), + profile, experience, projects, references)); + })); + } + + /** + * The first section of the wanted shape whose title names this berth, + * or {@code null} when the document fills no such berth. + */ + private static T berth(List sections, + Class type, + List keys) { + for (CvSection section : sections) { + if (!type.isInstance(section)) { + continue; + } + for (String key : keys) { + if (SectionLookup.titleContains(section.title(), key)) { + return type.cast(section); + } + } + } + return null; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java new file mode 100644 index 000000000..a22ae816d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarAside.java @@ -0,0 +1,444 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.EllipseBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.image.DocumentImageData; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.InlineImageAlignment; +import com.demcha.compose.document.node.LayerAlign; +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.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ACCENT_PRIMARY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.CONTACT_HEADING_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.CONTACT_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.CONTACT_TO_SKILLS_ABOVE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.CONTACT_TO_SKILLS_BELOW; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_DEGREE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_HEADING_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_LINE_GAP; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_MARKER_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_RAIL_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_RAIL_X; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_TEXT_X; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_TO_LANGUAGES_ABOVE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EDUCATION_TO_LANGUAGES_BELOW; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ENTRY_HEAD_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.HEADER_PLATE_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.LANGUAGE_DOTS; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.LANGUAGE_DOT_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.LANGUAGE_DOT_PITCH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.LANGUAGE_RATING_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.LANGUAGE_RATING_X; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.LANGUAGE_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.LANGUAGE_ROW_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MONOGRAM_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MONOGRAM_SIZE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MONOGRAM_STROKE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MONOGRAM_TRACKING_EM; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.RATING_MUTED; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.RULE_MUTED; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_BACKGROUND; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_BODY_TOP; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_INNER_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_PAD_X; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SKILLS_TO_EDUCATION_ABOVE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SKILLS_TO_EDUCATION_BELOW; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SKILL_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SKILL_ROW_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SKILL_TRACK_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SKILL_TRACK_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.PLATE_BACKGROUND; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.STANDARD_HEADING_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.TEXT_MUTED; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.TEXT_PRIMARY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.body; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.clamp01; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.style; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.tracked; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarWidgets.paragraph; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarWidgets.sidebarDivider; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarWidgets.sidebarHeading; + +/** + * The pale left column: the navy monogram plate, the contact channels, the + * skill meters, the education rail and the language ratings. + * + *

    The column has four berths in a fixed order, each with its own measured + * gap to the one above. A berth with nothing to draw takes its leading + * hairline with it, so a CV that carries no languages does not end on a rule + * with empty space under it.

    + */ +final class ProfessionalSidebarAside { + + /** + * The contact heading. It is not read from the document because the + * channels are not a section — they come off the identity, which carries + * no title of its own. + */ + static final String CONTACT_HEADING = "CONTACT"; + + private ProfessionalSidebarAside() { + } + + static void compose(SectionBuilder section, + CvIdentity identity, + SkillsSection skills, + EntriesSection education, + SkillsSection languages) { + section.spacing(0); + section.add(monogramPlate(identity)); + section.addSection("SidebarBody", body -> { + body.spacing(0); + body.padding(new DocumentInsets(SIDEBAR_BODY_TOP, SIDEBAR_PAD_X, 0, SIDEBAR_PAD_X)); + body.addSection("Contact", contact -> renderContact(contact, identity)); + if (SectionLookup.hasContent(skills)) { + sidebarDivider(body, CONTACT_TO_SKILLS_ABOVE, CONTACT_TO_SKILLS_BELOW); + body.addSection("Skills", host -> renderSkills(host, skills)); + } + if (SectionLookup.hasContent(education)) { + sidebarDivider(body, SKILLS_TO_EDUCATION_ABOVE, SKILLS_TO_EDUCATION_BELOW); + body.addSection("Education", host -> renderEducation(host, education)); + } + if (SectionLookup.hasContent(languages)) { + sidebarDivider(body, EDUCATION_TO_LANGUAGES_ABOVE, EDUCATION_TO_LANGUAGES_BELOW); + body.addSection("Languages", host -> renderLanguages(host, languages)); + } + }); + } + + // -- monogram -------------------------------------------------------- + + /** + * The navy plate that caps the column, with the initials set inside a + * hairline ring. + * + *

    The plate is drawn rather than painted as a page background because + * it is the first thing in the flow: the sidebar content stacks under it, + * and a background would not push anything down.

    + */ + private static DocumentNode monogramPlate(CvIdentity identity) { + DocumentTextStyle initialsStyle = style(BODY_FONT, MONOGRAM_SIZE, + DocumentColor.WHITE, DocumentTextDecoration.DEFAULT); + ParagraphBuilder initials = new ParagraphBuilder() + .name("MonogramInitials") + .textStyle(initialsStyle) + .align(TextAlign.CENTER); + tracked(initials, initials(identity), initialsStyle, MONOGRAM_TRACKING_EM); + + DocumentNode ring = new ShapeContainerBuilder() + .name("MonogramRing") + .circle(MONOGRAM_DIAMETER) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .stroke(DocumentStroke.of(DocumentColor.WHITE, MONOGRAM_STROKE)) + .center(initials.margin(DocumentInsets.zero()).build()) + .build(); + + return new ShapeContainerBuilder() + .name("MonogramPlate") + .rectangle(SIDEBAR_WIDTH, HEADER_PLATE_HEIGHT) + .fillColor(PLATE_BACKGROUND) + .center(ring) + .build(); + } + + /** First letter of the given name, first letter of the family name. */ + private static String initials(CvIdentity identity) { + String first = initial(identity.name().first()); + String last = initial(identity.name().last()); + return (first + last).toUpperCase(Locale.ROOT); + } + + private static String initial(String value) { + return value == null || value.isBlank() ? "" : value.trim().substring(0, 1); + } + + // -- contact --------------------------------------------------------- + + /** + * The contact channels, in the order the design sets them: phone, email, + * address, then whatever links the identity carries. + * + *

    The phone and email rows link to {@code tel:} and {@code mailto:} + * targets built from the value, so the channels are dialable and + * writable from the PDF without the document carrying the URI twice.

    + */ + private static void renderContact(SectionBuilder section, CvIdentity identity) { + sidebarHeading(section, CONTACT_HEADING, CONTACT_HEADING_TO_BODY); + List channels = channels(identity); + for (int i = 0; i < channels.size(); i++) { + Channel channel = channels.get(i); + double gapBelow = i + 1 < channels.size() ? CONTACT_ROW_GAP : 0; + renderChannel(section, channel, gapBelow); + } + } + + private static void renderChannel(SectionBuilder section, Channel channel, + double gapBelow) { + DocumentImageData icon = ProfessionalSidebarIcons.image(channel.token()); + double size = ProfessionalSidebarIcons.size(channel.token()); + DocumentLinkOptions link = channel.href() == null + ? null + : new DocumentLinkOptions(channel.href()); + ParagraphBuilder row = new ParagraphBuilder() + .name("Contact_" + compact(channel.token())) + .textStyle(body()) + .inlineImage(icon, size, size, InlineImageAlignment.CENTER, 0, link); + // The gap between the mark and the value is set as spaces rather than + // an indent: the row is one paragraph, so the mark and the text share + // a baseline and wrap together. + if (link == null) { + row.inlineText(" " + channel.value(), body()); + } else { + row.inlineText(" " + channel.value(), body(), link); + } + section.add(row.margin(new DocumentInsets(0, 0, gapBelow, 0)).build()); + } + + private static List channels(CvIdentity identity) { + List channels = new ArrayList<>(); + String phone = identity.contact().phone(); + channels.add(new Channel(ProfessionalSidebarIcons.PHONE, phone, telUri(phone))); + String email = identity.contact().email(); + channels.add(new Channel(ProfessionalSidebarIcons.EMAIL, email, "mailto:" + email)); + channels.add(new Channel(ProfessionalSidebarIcons.LOCATION, + identity.contact().address(), null)); + for (Link link : identity.links()) { + channels.add(new Channel(linkToken(link), link.label(), link.url())); + } + return channels; + } + + /** + * The dial target for a phone number: its digits, keeping a leading + * {@code +} so an international number stays international. + */ + private static String telUri(String phone) { + String digits = phone.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + /** + * The mark for a link. The packaged set names one network; everything + * else is a site, which is what the globe stands for. + */ + private static String linkToken(Link link) { + String haystack = SectionLookup.normalize(link.label() + " " + link.url()); + return haystack.contains("linkedin") + ? ProfessionalSidebarIcons.LINKEDIN + : ProfessionalSidebarIcons.WEBSITE; + } + + private record Channel(String token, String value, String href) { + } + + // -- skills ---------------------------------------------------------- + + /** + * Skill rows: the name at the left of a fixed-height band, the meter at + * the right. A skill the document leaves unlevelled draws its name alone + * rather than an empty track. + */ + private static void renderSkills(SectionBuilder section, SkillsSection skills) { + sidebarHeading(section, skills.title(), STANDARD_HEADING_TO_BODY); + section.addSection("SkillRows", rows -> { + rows.spacing(SKILL_ROW_GAP); + for (CvSkill skill : flatten(skills)) { + DocumentNode label = paragraph("Skill_" + compact(skill.name()), + skill.name(), body(), TextAlign.LEFT); + rows.addContainer(row -> { + row.name("SkillRow_" + compact(skill.name())) + .rectangle(SIDEBAR_INNER_WIDTH, SKILL_ROW_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(label); + if (skill.level().isPresent()) { + row.centerRight(skillMeter(skill.level().getAsDouble())); + } + }); + } + }); + } + + private static DocumentNode skillMeter(double level) { + DocumentNode fill = new ShapeBuilder() + .name("SkillMeterFill") + .size(SKILL_TRACK_WIDTH * clamp01(level), SKILL_TRACK_HEIGHT) + .fillColor(PLATE_BACKGROUND) + .build(); + return new ShapeContainerBuilder() + .name("SkillMeter") + .rectangle(SKILL_TRACK_WIDTH, SKILL_TRACK_HEIGHT) + .fillColor(RULE_MUTED) + .centerLeft(fill) + .build(); + } + + // -- education ------------------------------------------------------- + + /** + * The education rail: a hairline down the left of the block with a dot + * on each entry's first line. + * + *

    The rail is the section's left accent, which runs the full height of + * the block. The first entry masks the stretch above its dot and redraws + * it below, so the rail begins at the first marker instead of at the top + * of the block.

    + */ + private static void renderEducation(SectionBuilder section, EntriesSection education) { + sidebarHeading(section, education.title(), EDUCATION_HEADING_TO_BODY); + section.addSection("EducationRail", rail -> { + rail.spacing(0); + rail.margin(new DocumentInsets(0, 0, 0, EDUCATION_RAIL_X)); + rail.accentLeft(RULE_MUTED, EDUCATION_RAIL_WIDTH); + List entries = education.entries(); + for (int i = 0; i < entries.size(); i++) { + int index = i; + CvEntry entry = entries.get(i); + renderEducationHead(rail, entry, index); + rail.addParagraph(p -> p + .name("EducationInstitution_" + index) + .text(entry.subtitle()) + .textStyle(style(BODY_FONT, BODY_SIZE, TEXT_MUTED, + DocumentTextDecoration.ITALIC)) + .margin(new DocumentInsets( + EDUCATION_LINE_GAP, 0, EDUCATION_LINE_GAP, EDUCATION_TEXT_X))); + double entryGap = i + 1 < entries.size() ? EDUCATION_ENTRY_GAP : 0; + rail.addParagraph(p -> p + .name("EducationDates_" + index) + .text(entry.date()) + .textStyle(body()) + .margin(new DocumentInsets(0, 0, entryGap, EDUCATION_TEXT_X))); + } + }); + } + + private static void renderEducationHead(SectionBuilder rail, CvEntry entry, int index) { + DocumentNode marker = new EllipseBuilder() + .name("EducationMarker_" + index) + .circle(EDUCATION_MARKER_DIAMETER) + .fillColor(ACCENT_PRIMARY) + .build(); + DocumentNode degree = paragraph("EducationDegree_" + index, entry.title(), + style(BODY_FONT, EDUCATION_DEGREE_SIZE, TEXT_PRIMARY, + DocumentTextDecoration.BOLD), + TextAlign.LEFT); + rail.addContainer(head -> { + head.name("EducationHead_" + index) + .rectangle(SIDEBAR_INNER_WIDTH - EDUCATION_RAIL_X, ENTRY_HEAD_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE); + if (index == 0) { + double halfBand = (ENTRY_HEAD_HEIGHT - EDUCATION_MARKER_DIAMETER) / 2.0; + DocumentNode maskAboveFirstMarker = new ShapeBuilder() + .name("EducationRailMaskAboveFirstMarker") + // One point wider than the rail, and pulled half a + // point left, so the mask covers the rail's own edge + // instead of leaving a hairline of it showing. + .size(EDUCATION_RAIL_WIDTH + 1.0, halfBand) + .fillColor(SIDEBAR_BACKGROUND) + .build(); + DocumentNode railFromFirstMarker = new ShapeBuilder() + .name("EducationRailFromFirstMarker") + .size(EDUCATION_RAIL_WIDTH, halfBand) + .fillColor(RULE_MUTED) + .build(); + head.fillColor(SIDEBAR_BACKGROUND) + .position(maskAboveFirstMarker, -0.5, 0, LayerAlign.TOP_LEFT) + .position(railFromFirstMarker, 0, + (ENTRY_HEAD_HEIGHT + EDUCATION_MARKER_DIAMETER) / 2.0, + LayerAlign.TOP_LEFT); + } + head.position(marker, -EDUCATION_MARKER_DIAMETER / 2.0, 0, LayerAlign.CENTER_LEFT) + .position(degree, EDUCATION_TEXT_X, 0, LayerAlign.CENTER_LEFT); + }); + } + + // -- languages ------------------------------------------------------- + + /** + * Language rows: the name at the left, a five-dot rating anchored at a + * fixed offset so the ratings line up whatever the names measure. A + * language the document leaves unlevelled draws its name alone. + */ + private static void renderLanguages(SectionBuilder section, SkillsSection languages) { + sidebarHeading(section, languages.title(), STANDARD_HEADING_TO_BODY); + section.addSection("LanguageRows", rows -> { + rows.spacing(LANGUAGE_ROW_GAP); + for (CvSkill language : flatten(languages)) { + DocumentNode label = paragraph("Language_" + compact(language.name()), + language.name(), body(), TextAlign.LEFT); + rows.addContainer(row -> { + row.name("LanguageRow_" + compact(language.name())) + .rectangle(SIDEBAR_INNER_WIDTH, LANGUAGE_ROW_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(label); + if (language.level().isPresent()) { + row.position(ratingDots(language.level().getAsDouble()), + LANGUAGE_RATING_X, 0, LayerAlign.CENTER_LEFT); + } + }); + } + }); + } + + /** + * The rating: five dots, of which the level fills the nearest whole + * number — the model carries a fraction, and this design counts. + */ + private static DocumentNode ratingDots(double level) { + long filled = Math.round(clamp01(level) * LANGUAGE_DOTS); + ShapeContainerBuilder rating = new ShapeContainerBuilder() + .name("LanguageRating") + .rectangle(LANGUAGE_RATING_WIDTH, LANGUAGE_DOT_DIAMETER) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE); + for (int i = 0; i < LANGUAGE_DOTS; i++) { + DocumentNode dot = new EllipseBuilder() + .name("LanguageDot_" + i) + .circle(LANGUAGE_DOT_DIAMETER) + .fillColor(i < filled ? PLATE_BACKGROUND : RATING_MUTED) + .build(); + rating.position(dot, i * LANGUAGE_DOT_PITCH, 0, LayerAlign.CENTER_LEFT); + } + return rating.build(); + } + + /** + * The section's skills as one list. This design sets no group headings, + * so a document that groups its skills gets them in the order the groups + * were declared. + */ + private static List flatten(SkillsSection section) { + List out = new ArrayList<>(); + for (SkillGroup group : section.groups()) { + out.addAll(group.entries()); + } + return out; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarIcons.java new file mode 100644 index 000000000..0e35fa334 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarIcons.java @@ -0,0 +1,83 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.image.DocumentImageData; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Professional Sidebar CV contact marks. + * + *

    They ship inside the templates artifact under + * {@code templates/cv/professional-sidebar/icons/} as PNG, at the point size + * the design draws each one at — the marks are not one size, because a round + * pin and a wide envelope need different heights to read as the same + * weight.

    + */ +final class ProfessionalSidebarIcons { + + static final String PHONE = "phone"; + static final String EMAIL = "email"; + static final String LOCATION = "location"; + static final String LINKEDIN = "linkedin"; + static final String WEBSITE = "website"; + + private static final String ICON_ROOT = "/templates/cv/professional-sidebar/icons/"; + + private static final Map SIZES = Map.of( + PHONE, 8.8, + EMAIL, 9.2, + LOCATION, 9.6, + LINKEDIN, 9.4, + WEBSITE, 9.6); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private ProfessionalSidebarIcons() { + } + + /** + * The drawn size of one mark. + * + * @param token one of the constants on this class + * @return the size in points + * @throws IllegalArgumentException when the token names no packaged mark + */ + static double size(String token) { + Double size = SIZES.get(token); + if (size == null) { + throw new IllegalArgumentException( + "Unknown professional sidebar CV icon token: " + token); + } + return size; + } + + /** + * Reads one mark, caching the decoded image per token so a CV that + * repeats a channel reads the file once per JVM. + * + * @param token one of the constants on this class + * @return the image data + */ + static DocumentImageData image(String token) { + return CACHE.computeIfAbsent(token, ProfessionalSidebarIcons::read); + } + + private static DocumentImageData read(String token) { + String resourcePath = ICON_ROOT + token + ".png"; + try (InputStream input = + ProfessionalSidebarIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException( + "Missing professional sidebar CV icon: " + resourcePath); + } + return DocumentImageData.fromBytes(input.readAllBytes()); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read professional sidebar CV icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarMain.java new file mode 100644 index 000000000..7b9e17e66 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarMain.java @@ -0,0 +1,244 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.text.MarkdownInline; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ACCENT_PRIMARY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.BODY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.DIVIDER_TO_ENTRY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.DIVIDER_TO_PROJECT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ENTRY_HEAD_TO_META; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ENTRY_META_TO_HIGHLIGHTS; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ENTRY_TO_DIVIDER; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EXPERIENCE_HEADING_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.EXPERIENCE_TO_PROJECTS; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.HIGHLIGHT_ITEM_GAP; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.IDENTITY_ACCENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.IDENTITY_TO_PROFILE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MAIN_CONTENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MAIN_HEADING_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MAIN_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MAIN_PAD_RIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MAIN_PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.NAME_SIZE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.NAME_TO_ROLE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.NAME_TRACKING_EM; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.PROFESSIONAL_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.PROFILE_TO_EXPERIENCE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.PROJECTS_TO_REFERENCES; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.PROJECT_HEADING_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.PROJECT_HEAD_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.PROJECT_TO_DIVIDER; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.REFERENCES_HEADING_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.REFERENCES_SIZE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ROLE_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ROLE_TRACKING_EM; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.RULE_MUTED; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SECTION_ACCENT_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.TEXT_MUTED; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.TEXT_PRIMARY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.body; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.metaItalic; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.style; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.tracked; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarWidgets.mainDivider; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarWidgets.mainHeading; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarWidgets.spacer; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarWidgets.titleDateBand; + +/** + * The white right column: the name and role over the identity rule, then the + * profile, the roles held, the projects and the references note. + */ +final class ProfessionalSidebarMain { + + private ProfessionalSidebarMain() { + } + + static void compose(SectionBuilder section, + CvIdentity identity, + ParagraphSection profile, + EntriesSection experience, + EntriesSection projects, + ParagraphSection references) { + section.spacing(0); + section.padding(new DocumentInsets(MAIN_PAD_TOP, MAIN_PAD_RIGHT, 0, MAIN_PAD_LEFT)); + section.addSection("Identity", host -> renderIdentity(host, identity)); + if (SectionLookup.hasContent(profile)) { + section.addSection("Profile", host -> renderProfile(host, profile)); + } + if (SectionLookup.hasContent(experience)) { + section.addSection("Experience", host -> renderExperience(host, experience)); + } + if (SectionLookup.hasContent(projects)) { + section.addSection("Projects", host -> renderProjects(host, projects)); + } + if (SectionLookup.hasContent(references)) { + section.addSection("References", host -> renderReferences(host, references)); + } + } + + // -- identity -------------------------------------------------------- + + /** + * The name in tracked condensed capitals, the role under it, and the + * rule that closes the block: a full-width hairline whose first stretch + * is the accent. + */ + private static void renderIdentity(SectionBuilder section, CvIdentity identity) { + DocumentTextStyle nameStyle = style(DISPLAY_FONT, NAME_SIZE, TEXT_PRIMARY, + DocumentTextDecoration.BOLD); + ParagraphBuilder name = new ParagraphBuilder() + .name("DisplayName") + .textStyle(nameStyle) + .align(TextAlign.LEFT); + tracked(name, identity.name().full(), nameStyle, NAME_TRACKING_EM); + section.add(name.margin(new DocumentInsets(0, 0, NAME_TO_ROLE, 0)).build()); + + DocumentTextStyle roleStyle = style(BODY_FONT, PROFESSIONAL_TITLE_SIZE, TEXT_MUTED, + DocumentTextDecoration.DEFAULT); + ParagraphBuilder role = new ParagraphBuilder() + .name("ProfessionalTitle") + .textStyle(roleStyle) + .align(TextAlign.LEFT); + tracked(role, identity.jobTitle(), roleStyle, ROLE_TRACKING_EM); + section.add(role.margin(new DocumentInsets(0, 0, ROLE_TO_RULE, 0)).build()); + + section.add(identityRule()); + spacer(section, IDENTITY_TO_PROFILE); + } + + private static DocumentNode identityRule() { + DocumentNode accent = new ShapeBuilder() + .name("IdentityAccentSegment") + .size(IDENTITY_ACCENT_WIDTH, SECTION_ACCENT_HEIGHT) + .fillColor(ACCENT_PRIMARY) + .build(); + return new ShapeContainerBuilder() + .name("IdentityRule") + .rectangle(MAIN_CONTENT_WIDTH, SECTION_ACCENT_HEIGHT) + .fillColor(RULE_MUTED) + .centerLeft(accent) + .build(); + } + + // -- profile --------------------------------------------------------- + + private static void renderProfile(SectionBuilder section, ParagraphSection profile) { + mainHeading(section, profile.title(), MAIN_HEADING_TO_BODY); + section.addParagraph(p -> p + .name("ProfileText") + .text(profile.body()) + .textStyle(body()) + .lineSpacing(BODY_LEADING) + .margin(DocumentInsets.zero())); + spacer(section, PROFILE_TO_EXPERIENCE); + } + + // -- experience ------------------------------------------------------ + + /** + * The roles held, each a title-and-dates band over the employer line and + * a bulleted list of what the role delivered, separated by hairlines. + */ + private static void renderExperience(SectionBuilder section, EntriesSection experience) { + mainHeading(section, experience.title(), EXPERIENCE_HEADING_TO_BODY); + List entries = experience.entries(); + for (int i = 0; i < entries.size(); i++) { + renderRole(section, entries.get(i), i); + if (i + 1 < entries.size()) { + mainDivider(section, ENTRY_TO_DIVIDER, DIVIDER_TO_ENTRY); + } + } + spacer(section, EXPERIENCE_TO_PROJECTS); + } + + private static void renderRole(SectionBuilder section, CvEntry entry, int index) { + titleDateBand(section, "ExperienceHead_" + index, entry.title(), entry.date()); + section.addParagraph(p -> p + .name("ExperienceMeta_" + index) + .text(entry.subtitle()) + .textStyle(metaItalic()) + .margin(new DocumentInsets( + ENTRY_HEAD_TO_META, 0, ENTRY_META_TO_HIGHLIGHTS, 0))); + List highlights = lines(entry.body()); + if (!highlights.isEmpty()) { + section.addList(list -> list + .name("ExperienceHighlights_" + index) + .items(highlights) + .bullet() + .textStyle(body()) + .lineSpacing(BODY_LEADING) + .itemSpacing(HIGHLIGHT_ITEM_GAP) + .margin(DocumentInsets.zero())); + } + } + + // -- projects -------------------------------------------------------- + + private static void renderProjects(SectionBuilder section, EntriesSection projects) { + mainHeading(section, projects.title(), PROJECT_HEADING_TO_BODY); + List entries = projects.entries(); + for (int i = 0; i < entries.size(); i++) { + int index = i; + CvEntry project = entries.get(i); + titleDateBand(section, "ProjectHead_" + index, project.title(), project.date()); + spacer(section, PROJECT_HEAD_TO_BODY); + section.addParagraph(p -> p + .name("ProjectDescription_" + index) + .text(project.body()) + .textStyle(body()) + .lineSpacing(BODY_LEADING) + .margin(DocumentInsets.zero())); + if (i + 1 < entries.size()) { + mainDivider(section, PROJECT_TO_DIVIDER, DIVIDER_TO_PROJECT); + } + } + spacer(section, PROJECTS_TO_REFERENCES); + } + + // -- references ------------------------------------------------------ + + private static void renderReferences(SectionBuilder section, ParagraphSection references) { + mainHeading(section, references.title(), REFERENCES_HEADING_TO_BODY); + section.addParagraph(p -> p + .name("ReferencesNote") + .text(references.body()) + .textStyle(style(BODY_FONT, REFERENCES_SIZE, TEXT_MUTED, + DocumentTextDecoration.DEFAULT)) + .margin(DocumentInsets.zero())); + } + + /** + * One bullet per non-blank line of an entry body — the family's way of + * carrying a list in a field the model types as a single string. + */ + private static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split("\\R")) { + String clean = MarkdownInline.plainText(line).trim(); + if (!clean.isBlank()) { + out.add(clean); + } + } + return out; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarStyles.java new file mode 100644 index 000000000..aef9d29ba --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarStyles.java @@ -0,0 +1,209 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.dsl.ParagraphBuilder; +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.document.templates.core.text.TextStyles; +import com.demcha.compose.font.FontName; + +/** + * The measured geometry, palette and type scale of the Professional Sidebar + * CV. + * + *

    Every value here is read off the design rather than derived, which is + * why so many carry two decimals: the preset reproduces a specific sheet, + * and rounding them to tidier numbers moves type off its baseline.

    + */ +final class ProfessionalSidebarStyles { + + private ProfessionalSidebarStyles() { + } + + // -- page ------------------------------------------------------------ + + /** + * The page: 1024 x 1536 pixels at 150 dpi, which is the frame the design + * was drawn in rather than a paper size. + */ + static final DocumentPageSize PAGE = DocumentPageSize.of(491.60, 737.28); + + static final double PAGE_WIDTH = PAGE.width(); + static final double PAGE_HEIGHT = PAGE.height(); + + static final double SIDEBAR_WEIGHT = 0.291; + static final double MAIN_WEIGHT = 1.0 - SIDEBAR_WEIGHT; + + static final double SIDEBAR_WIDTH = PAGE_WIDTH * SIDEBAR_WEIGHT; + static final double MAIN_WIDTH = PAGE_WIDTH * MAIN_WEIGHT; + + /** The navy plate behind the monogram, as a fraction of page height. */ + static final double HEADER_PLATE_RATIO = 0.134; + static final double HEADER_PLATE_HEIGHT = PAGE_HEIGHT * HEADER_PLATE_RATIO; + + static final double SIDEBAR_PAD_X = 17.8; + static final double SIDEBAR_INNER_WIDTH = SIDEBAR_WIDTH - 2.0 * SIDEBAR_PAD_X; + + static final double MAIN_PAD_LEFT = 27.0; + static final double MAIN_PAD_RIGHT = 20.0; + static final double MAIN_CONTENT_WIDTH = MAIN_WIDTH - MAIN_PAD_LEFT - MAIN_PAD_RIGHT; + + // -- ornaments ------------------------------------------------------- + + static final double MONOGRAM_DIAMETER = 55.2; + static final double MONOGRAM_STROKE = 0.8; + static final double MONOGRAM_SIZE = 16.0; + static final double MONOGRAM_TRACKING_EM = 0.24; + + static final double SECTION_ACCENT_WIDTH = 19.0; + static final double SECTION_ACCENT_HEIGHT = 1.05; + static final double IDENTITY_ACCENT_WIDTH = 27.0; + + static final double RULE_THICKNESS = 0.55; + + static final double SKILL_TRACK_WIDTH = SIDEBAR_INNER_WIDTH * 0.44; + static final double SKILL_TRACK_HEIGHT = 2.8; + static final double SKILL_ROW_HEIGHT = 8.5; + + static final double EDUCATION_RAIL_X = 2.8; + static final double EDUCATION_TEXT_X = 13.0; + static final double EDUCATION_MARKER_DIAMETER = 4.3; + static final double EDUCATION_RAIL_WIDTH = 0.55; + static final double EDUCATION_DEGREE_SIZE = 7.3; + + static final int LANGUAGE_DOTS = 5; + static final double LANGUAGE_RATING_X = SIDEBAR_INNER_WIDTH * 0.49; + static final double LANGUAGE_DOT_DIAMETER = 5.0; + static final double LANGUAGE_DOT_GAP = 5.1; + static final double LANGUAGE_DOT_PITCH = LANGUAGE_DOT_DIAMETER + LANGUAGE_DOT_GAP; + static final double LANGUAGE_RATING_WIDTH = + LANGUAGE_DOTS * LANGUAGE_DOT_DIAMETER + (LANGUAGE_DOTS - 1) * LANGUAGE_DOT_GAP; + static final double LANGUAGE_ROW_HEIGHT = 8.5; + + static final double ENTRY_HEAD_HEIGHT = 9.3; + + // -- type ------------------------------------------------------------ + + static final FontName DISPLAY_FONT = FontName.BARLOW_CONDENSED; + static final FontName BODY_FONT = FontName.LATO; + + static final double BODY_SIZE = 7.1; + static final double SIDEBAR_HEADING_SIZE = 8.5; + static final double MAIN_HEADING_SIZE = 8.7; + static final double NAME_SIZE = 36.7; + static final double PROFESSIONAL_TITLE_SIZE = 9.5; + static final double ENTRY_TITLE_SIZE = 7.5; + static final double META_SIZE = 7.2; + static final double REFERENCES_SIZE = 7.4; + static final double BODY_LEADING = 1.18; + + static final double NAME_TRACKING_EM = 0.114; + static final double HEADING_TRACKING_EM = 0.14; + static final double ROLE_TRACKING_EM = 0.18; + + /** + * The advance of a space in the body face, as a fraction of type size. + * {@link #tracked} sizes its spacer runs against this to hit a tracking + * measured in ems. + */ + static final double SPACE_ADVANCE_EM = 0.25; + + // -- vertical rhythm ------------------------------------------------- + + static final double SIDEBAR_BODY_TOP = 22.0; + static final double SIDEBAR_HEADING_TO_RULE = 4.0; + static final double CONTACT_HEADING_TO_BODY = 16.0; + static final double STANDARD_HEADING_TO_BODY = 13.5; + static final double CONTACT_ROW_GAP = 11.8; + static final double SKILL_ROW_GAP = 9.3; + static final double EDUCATION_HEADING_TO_BODY = 10.0; + static final double EDUCATION_LINE_GAP = 2.5; + static final double EDUCATION_ENTRY_GAP = 11.0; + static final double LANGUAGE_ROW_GAP = 7.3; + + static final double CONTACT_TO_SKILLS_ABOVE = 24.0; + static final double CONTACT_TO_SKILLS_BELOW = 18.0; + static final double SKILLS_TO_EDUCATION_ABOVE = 15.0; + static final double SKILLS_TO_EDUCATION_BELOW = 18.0; + static final double EDUCATION_TO_LANGUAGES_ABOVE = 8.0; + static final double EDUCATION_TO_LANGUAGES_BELOW = 16.0; + + static final double MAIN_PAD_TOP = 21.9; + static final double NAME_TO_ROLE = 6.3; + static final double ROLE_TO_RULE = 14.9; + static final double IDENTITY_TO_PROFILE = 20.5; + static final double MAIN_HEADING_TO_RULE = 4.0; + static final double MAIN_HEADING_TO_BODY = 14.0; + static final double EXPERIENCE_HEADING_TO_BODY = 18.3; + static final double PROJECT_HEADING_TO_BODY = 8.0; + static final double REFERENCES_HEADING_TO_BODY = 8.0; + static final double PROFILE_TO_EXPERIENCE = 24.5; + static final double ENTRY_HEAD_TO_META = 2.0; + static final double ENTRY_META_TO_HIGHLIGHTS = 14.3; + static final double HIGHLIGHT_ITEM_GAP = 4.8; + static final double ENTRY_TO_DIVIDER = 14.0; + static final double DIVIDER_TO_ENTRY = 13.0; + static final double EXPERIENCE_TO_PROJECTS = 22.0; + static final double PROJECT_HEAD_TO_BODY = 5.0; + static final double PROJECT_TO_DIVIDER = 6.0; + static final double DIVIDER_TO_PROJECT = 7.0; + static final double PROJECTS_TO_REFERENCES = 18.0; + + // -- palette --------------------------------------------------------- + + static final DocumentColor PAGE_BACKGROUND = DocumentColor.WHITE; + static final DocumentColor SIDEBAR_BACKGROUND = DocumentColor.rgb(247, 248, 250); + static final DocumentColor PLATE_BACKGROUND = DocumentColor.rgb(11, 39, 77); + static final DocumentColor TEXT_PRIMARY = DocumentColor.rgb(7, 17, 30); + static final DocumentColor TEXT_MUTED = DocumentColor.rgb(47, 74, 115); + static final DocumentColor ACCENT_PRIMARY = DocumentColor.rgb(11, 103, 200); + static final DocumentColor RULE_MUTED = DocumentColor.rgb(209, 211, 214); + static final DocumentColor RATING_MUTED = DocumentColor.rgb(194, 196, 199); + + // -- styles ---------------------------------------------------------- + + static DocumentTextStyle body() { + return style(BODY_FONT, BODY_SIZE, TEXT_PRIMARY, DocumentTextDecoration.DEFAULT); + } + + static DocumentTextStyle metaItalic() { + return style(BODY_FONT, META_SIZE, TEXT_MUTED, DocumentTextDecoration.ITALIC); + } + + static DocumentTextStyle style(FontName font, double size, DocumentColor color, + DocumentTextDecoration decoration) { + return TextStyles.of(font, size, decoration, color); + } + + /** + * Writes text letter by letter with a sized space between each pair, + * which is how this design gets its letter-spacing: a text style carries + * no tracking, so the gap is a run of its own whose type size is chosen + * to advance by {@code trackingEm} of the surrounding size. + * + * @param paragraph the paragraph being built + * @param text the text to space out + * @param style the style of the letters + * @param trackingEm the gap between letters, in ems of {@code style} + */ + static void tracked(ParagraphBuilder paragraph, String text, + DocumentTextStyle style, double trackingEm) { + DocumentTextStyle spacer = style.withSize(trackingEm * style.size() / SPACE_ADVANCE_EM); + for (int i = 0; i < text.length(); i++) { + paragraph.inlineText(String.valueOf(text.charAt(i)), style); + if (i + 1 < text.length()) { + paragraph.inlineText(" ", spacer); + } + } + } + + /** Strips a title down to the letters and digits a node name can carry. */ + static String compact(String text) { + return text == null ? "" : text.replaceAll("[^A-Za-z0-9]", ""); + } + + static double clamp01(double value) { + return Math.max(0.0, Math.min(1.0, value)); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarWidgets.java new file mode 100644 index 000000000..7588b1ec5 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebarWidgets.java @@ -0,0 +1,159 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; + +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ACCENT_PRIMARY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.BODY_FONT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.BODY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ENTRY_HEAD_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.ENTRY_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.HEADING_TRACKING_EM; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MAIN_CONTENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MAIN_HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.MAIN_HEADING_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.META_SIZE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.RULE_MUTED; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SECTION_ACCENT_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SECTION_ACCENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_HEADING_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.SIDEBAR_INNER_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.TEXT_MUTED; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.TEXT_PRIMARY; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.style; +import static com.demcha.compose.document.templates.cv.presets.ProfessionalSidebarStyles.tracked; + +/** + * The parts both columns of the Professional Sidebar CV are built from: the + * heading over its short accent rule, the hairline that separates entries, + * and the band that sets an entry title against its dates. + */ +final class ProfessionalSidebarWidgets { + + private ProfessionalSidebarWidgets() { + } + + /** + * A sidebar heading: tracked capitals over a short accent rule. + * + *

    The heading is drawn as authored — the design sets these in + * capitals, and the preset does not upper-case for the author, so a + * document that titles a section in sentence case gets sentence case.

    + * + * @param section the sidebar column + * @param title the heading text + * @param bodyGap the gap between the rule and the section body + */ + static void sidebarHeading(SectionBuilder section, String title, double bodyGap) { + heading(section, "Sidebar", title, SIDEBAR_HEADING_SIZE, + SIDEBAR_HEADING_TO_RULE, bodyGap); + } + + /** + * A main-column heading, a fraction larger than its sidebar counterpart + * and otherwise identical. + * + * @param section the main column + * @param title the heading text + * @param bodyGap the gap between the rule and the section body + */ + static void mainHeading(SectionBuilder section, String title, double bodyGap) { + heading(section, "Main", title, MAIN_HEADING_SIZE, + MAIN_HEADING_TO_RULE, bodyGap); + } + + private static void heading(SectionBuilder section, String column, String title, + double size, double ruleGap, double bodyGap) { + DocumentTextStyle headingStyle = + style(BODY_FONT, size, TEXT_PRIMARY, DocumentTextDecoration.BOLD); + ParagraphBuilder heading = new ParagraphBuilder() + .name(column + "Heading_" + compact(title)) + .textStyle(headingStyle); + tracked(heading, title, headingStyle, HEADING_TRACKING_EM); + section.add(heading.margin(new DocumentInsets(0, 0, ruleGap, 0)).build()); + section.addLine(line -> line + .name(column + "HeadingRule_" + compact(title)) + .horizontal(SECTION_ACCENT_WIDTH) + .thickness(SECTION_ACCENT_HEIGHT) + .color(ACCENT_PRIMARY) + .margin(new DocumentInsets(0, 0, bodyGap, 0))); + } + + /** The hairline between two sidebar sections. */ + static void sidebarDivider(SectionBuilder section, double gapAbove, double gapBelow) { + divider(section, "SidebarDivider", SIDEBAR_INNER_WIDTH, gapAbove, gapBelow); + } + + /** The hairline between two main-column entries. */ + static void mainDivider(SectionBuilder section, double gapAbove, double gapBelow) { + divider(section, "MainDivider", MAIN_CONTENT_WIDTH, gapAbove, gapBelow); + } + + private static void divider(SectionBuilder section, String name, double width, + double gapAbove, double gapBelow) { + section.addLine(line -> line + .name(name) + .horizontal(width) + .thickness(RULE_THICKNESS) + .color(RULE_MUTED) + .margin(new DocumentInsets(gapAbove, 0, gapBelow, 0))); + } + + /** + * An entry head: the title at the left of a fixed-height band with its + * dates set flush right on the same optical line. + * + *

    It is a container rather than a two-column row because the two ends + * are centred against each other vertically, which a row of sections + * cannot do — a section is as tall as its content and starts at the top + * of its column.

    + * + * @param section the host column + * @param name the node name of the band + * @param title the entry title + * @param dates the entry dates, drawn flush right + */ + static void titleDateBand(SectionBuilder section, String name, + String title, String dates) { + DocumentNode titleNode = paragraph(name + "Title", title, + style(BODY_FONT, ENTRY_TITLE_SIZE, TEXT_PRIMARY, + DocumentTextDecoration.BOLD), + TextAlign.LEFT); + DocumentNode dateNode = paragraph(name + "Dates", dates, + style(BODY_FONT, META_SIZE, TEXT_MUTED, + DocumentTextDecoration.DEFAULT), + TextAlign.RIGHT); + section.addContainer(band -> band + .name(name) + .rectangle(MAIN_CONTENT_WIDTH, ENTRY_HEAD_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(titleNode) + .centerRight(dateNode)); + } + + /** A standalone paragraph node, for anchoring inside a container. */ + static DocumentNode paragraph(String name, String text, + DocumentTextStyle style, TextAlign align) { + return new ParagraphBuilder() + .name(name) + .text(text) + .textStyle(style) + .align(align) + .lineSpacing(BODY_LEADING) + .margin(DocumentInsets.zero()) + .build(); + } + + static void spacer(SectionBuilder section, double height) { + section.addSpacer(spacer -> spacer.height(height)); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java index 40321b1ae..64a490a00 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java @@ -19,5 +19,13 @@ * a new sealed subtype in {@code cv/data} plus a renderer in * {@code cv/components}; a new preset is this file copied and * fed a different theme.

    + * + *

    The package holds a second shape as well. A preset that reproduces a + * specific drawn sheet — {@code ProfessionalSidebar} is the one here — takes + * no {@code BrandTheme} and calls no shared renderer: its geometry, palette + * and type scale are measured constants of its own, and it sets its own page. + * The data model is the same {@code CvDocument}; what differs is that the + * cosmetics cannot be swapped, because moving them would stop it being the + * sheet it reproduces.

    */ package com.demcha.compose.document.templates.cv.presets; diff --git a/templates/src/main/resources/templates/cv/professional-sidebar/icons/email.png b/templates/src/main/resources/templates/cv/professional-sidebar/icons/email.png new file mode 100644 index 0000000000000000000000000000000000000000..b7fc73ca2796a78db6540a5406051024d8b9efd2 GIT binary patch literal 2131 zcma)7dpOf=AO9s}3e9P$D{nj&J)Gi=YV_mB5_-uJqm_j>N@`re=W{(SGx^}Vm}AD{1Kcf6yV>~>iI z0OXvVa0C#8euj)RxPL03?gv4Wx4N{k>+}u_s@^f2up<>^$QKzLq3Kc%9nWZo@lp_eVB|O?9}9 z3$9W#^W?mVII0M*2y=yVx>Gvy6=M(UMdxBxO1F84hn!|TS0<|@B+1a1GHWokOMCI@LJvw+vzHWdAD0`_&nd{~Fl=wkI8=9T8s_}8^&FbNFKic&FVRRO6WuOyouD@gG^3r}BUDOTU#9eQu` zZ%NczO{yJ!NZYe{Uodi6uH!vVBS<_>+9ID#lc-cS@wRT?YKyZit6^t2Ztq>{nYiUk z2vGIuYttS3l)jNg5(JFQO-n07Ua=EW__CTkebQn5EmlZKtCppjZ0GxZ@Uho9XY!0o z=2Jrq@(6Gd7Qt(dqPy$QSu`a{QCgE2eF_>IZwH=P&>L{f3~bz4$?r)Rov@P1$Y3{= z21SLoWv!_N`DUgVK4&*jg&O?j@r7wKe91bZ@sJ<%xV5N%0ul-DzL?x(b9LgQa}wF!AKJ*Gbncu@ zcT4t~?H%c2+>}4t%-?B0E|Xuh?uOUCXn2t{ShJaVVv6Hh(^8uWZ})~FR}fa+1a06+ zbVLJ^o5}MYF{o{bTNrB9S>r#`-P2Xnpoo*~i}mGDAcMEiZ+nQ?GWPz;Z0ADSwva2C zJxYP$^w_6f?B??soE7{_W;Sm(^j!{2b}{CcTDk5uqK=ngKB=;Ng8>XE%Oil7rS}?E zT7mInF+U}Y`j!kX(K~LQ*3MD#PMX9QHKGZDJ1R77%p-LWdnHbMp88T<8xc?Y@ZrYd z+I`25g2BdVjpodf)OtHy1{X=q%de|^m_|O+|Aggse$Q7}VII(@Vy`9sI_;KxKDsxJ z?b9JF*&&-wepS%sOr#MqTf2OIx9hTI3~`*Rzxm~a47Zxs8&xRD`9gC|=39AS$GWKr z`oHkqTx|8>X5(f07R+710%yE`woqN-=VbX?W^h53s@gr*shmE=+ZgwsP@WGQ& zp_fhthJ7JUg@L_tN&0$Pc5%saN6{NPUN5*E!R*>Wj(xYdg#A&>&yFi78R~uhpkmFa zho!6?1r`_`SXN5Dutqi|N9I+l6e`RFW6?@#H<+p0I1dWA)}5l~jx&}C$U9mkP4so3 zi&b~Ta`x`E-c+J##e=Lg%4sZm-R)$UO4J<_6UFZS?X2XAW42k8R8#r~ExzMR$u_4D zCqV#L^2uG+{^0cvF0ddolYV+voxX@J`fm6jLuOPYJXpPZLZRQs-y$A~)#9hCZZN7! z`yo)=5=Lttk}}!c&!oyY7%Q=oLsbBcRLZUtdd}SmJ93Ax9IO;x1|av1HKpj(7}ag3R{rNYwSAI)kW5|1HNL!aE8p66h&3l&k5>N z24xlZ+`W9ff~ssKWIStY%DDI5F1=_VOM^ZK$x}rfQ#x)v-eh0KE=X%Cn}66Uaq+_q z%b_~;f>9O43Ect5XF7oayxDWRldcL>=+`Ii-BlmOVTX%uT@Zy8Fo<@Kg-vF2L!825 zc)NgV5)GRdm5DRw621eEg~J}w%q_P*4VxGEHCwp*y?Snbg?h7!8BfjX?4(l!&4>I~ zAwO+Tlybl7e9MHpx_)_Lh?HDxI9L4b5s{v=xO^n~n9srXmufBOaer70lQgKhd9$K; plRN~1s*tZ&DgVFo<*yA}vVom*7TmzCgn-i(aCX4snD#*z{{$Mu&OrbG literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/professional-sidebar/icons/linkedin.png b/templates/src/main/resources/templates/cv/professional-sidebar/icons/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..710983a5f0e524b3e4c6cab64303685b12a0d645 GIT binary patch literal 2655 zcmaJ@2{7C17XKrNts<=oT5GMPLMT^pC6X)lEoy6twU$~FRPChpT8av#v=kRrYN=X- zl-gRQm)c^hmRf78rS#>!H}huRo4N0sIp6Pm=ge=uZ_b?gekak?SeJ`kfE@q;EZH8%o)yOID9MFM~$dMIic00Q9v@C^?D>SO@m^UH5G)1W6< zoD6i)bfm9Cot8*Cu=!za2z12%%eK5w@97RJQO^j&`VGv_CLwhRRhUT+Nf0sCL>EV* ztGaW5D;)qOxYAX5xSG6@3J(68Izm+)@!MrMTpbSA;qTVf6sy4q%6@NFRO<};_ghY7lfMP#xM4EbP$3a9YfxFIg2can|Br= zD;OnnJ)tnfbEw_A;ld~PYZi|@N^5(xPRl(c8w*y@*TU6C^Hy-T)W=dAENUlZOds^* zf=k-Xhsv`(kT*!-03*l125o0mc-6d;VZX~>VWO>&{~%s7r{yc*o#v09?~=*YMSyTnPjKqSsbXLOLKCNfC#=%0}=mfCT2kAU1zZ{hXMUy5%CdhVk z+P1drabXcewb0?kjo2(GimH1nAE4K)yrMDH-SBSL59pP>lrBcr#_(E}!q8GEVS6V% z-vuKA=^C>0$-nK{>6$_euWzqGd2PEFe2!?GR&U1rQBm}uY zipm-f(lyt}>=5*_-~QYe`B$YxRo~aWM@)%-7&1e6?oNlRO?<47ndvLNzT0#ReTg_v zU>Hn^)m{B?cit0cvdewNekoR0u*cr}M#Ypx-@e=&S_o_$Ac^Wos&uY)at zj>fNmdcLOr*|Q@_SDt{8q@A3}t!KXNyot=;e>owMMB4To&f@YJq360SbyA{*Cp<(R zZM5k*)U6zj(1;+Iuka}cJI4iVhm=77peeNev+giP8zc%M^UrM96JNK^{|M`{-bI)R zUkfg-1m@o1c*O|pG&S;}6TEpmDwkeOe*8mNs8q|U8JJRIg`fF@ijyf$U6)RRsWO#h z1xsoh8M{0-|7@FaTqDgMP=_#uU*ns|^}qwMI^xUUcRSbDdut+<^T(nxUXwZSZZ0KL zwTFjg8M!`%aH=8bAnxSgB(bA=sV#gK$0sB4*!mQvW${}1f=mG=7D7rp{VO`tNIqRj zVZ!bhFJqxm>uTJV16gYO^vB@Sq+S9LAr(hAgv%JOVQpHUZ{ zqSg-jzt&baL+g}AHVg`#40@_kl;xzuU|v=VUvpknb^HGMl%UfqFu%R~%fV>mY`37J z(6I__wm8jfr=albSQTZyFp|%%eM>I<#+TU~Hq>xe$l>l$s=Qj0FJHd_A4)$$gb5wT zksx8NG*)e&>d<-^cuqm?d_fyTjUQKG+(p|7|yB^Le+W|^XtRxbq9{Wj`1RM_u)i+$57v{n@iVMC; zdxuo^#RTu%>0`uY@h-lP^ooY)4{jo^Fi*EG&7Z`lF5b~W(3{)z8A(%u-@xGfT=w&Z zpVQxXYpk=%(VuSX?c&}*wf5ezHm6L!DFAN0ig%c36W-e_xS0F{piqY4G_OOcD-K@0 z+#PLP3f@&;+^3R9Fgxja4^nu3xesotR!`D@9a?1hnZ2_2C~%Az)mkk-0beV>l z+ZXPPw>rJJ7bx66gv!&zkc z|4<)Hyp{8)QZ5Dg%y?OJdaBkdsb|NhFX&o{Z`+D&Z zHqdN>aN9|2rg4#z+a)QRjGRn1F~t?liVF6eGGS560zVl`$7rVe@sSt)>dFEuzF#IO2!nrHT@rbKXN0r6yDBS3kSnlKf2b$?P0_JJ5%=tuUf13Zv5KIjRjFeW}9M>F&P>VcNpQeF+>yec@yYviG{@mtX z(n}0hX#rN*l3~7`?hDfCj+kj)Loj1_um<;MkUok$c%?wMKa`cD|8DO1cPk7=GQ@>t Vn!tH)-=|MnfF8yeU5&!W`~x2CudV<9 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/professional-sidebar/icons/location.png b/templates/src/main/resources/templates/cv/professional-sidebar/icons/location.png new file mode 100644 index 0000000000000000000000000000000000000000..ccdaf6f53448bf5372b0b20f5555733861383c8c GIT binary patch literal 3628 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 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/professional-sidebar/icons/website.png b/templates/src/main/resources/templates/cv/professional-sidebar/icons/website.png new file mode 100644 index 0000000000000000000000000000000000000000..d4a24b64d1cb70349c16c23d3c86849cdc2f14be GIT binary patch literal 6351 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 literal 0 HcmV?d00001 From 6ad4018ce1d2f07becb7ed560b8b9803e48aa618 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Sun, 30 Aug 2026 23:01:23 +0100 Subject: [PATCH 08/85] feat(templates): add the NavySidebar CV preset and a portrait on CvIdentity (#614) --- CHANGELOG.md | 29 + assets/readme/examples/cv-navy-sidebar-v2.pdf | Bin 0 -> 33670 bytes .../examples/cv-professional-sidebar-v2.pdf | Bin 53192 -> 53213 bytes docs/templates/v2-layered/using-templates.md | 12 +- .../demcha/examples/GenerateAllExamples.java | 2 + .../support/NavySidebarSampleData.java | 141 + .../ProfessionalSidebarSampleData.java | 2 +- .../examples/support/ShowcaseMetadata.java | 1 + .../templates/cv/v2/NavySidebarExample.java | 52 + .../resources/cv-portrait-placeholder.png | Bin 0 -> 2274 bytes .../cv/data/CvIdentityPortraitTest.java | 75 + .../cv/presets/NavySidebarFixtures.java | 166 ++ .../NavySidebarLayoutSnapshotTest.java | 29 + .../cv/presets/NavySidebarSmokeTest.java | 185 ++ .../presets/NavySidebarVisualParityTest.java | 41 + .../cv-v2/navy_sidebar_layout.json | 2627 +++++++++++++++++ .../cv-v2-layered/navy_sidebar-page-0.png | Bin 0 -> 128892 bytes .../templates/cv/data/CvIdentity.java | 49 +- .../templates/cv/presets/NavySidebar.java | 219 ++ .../cv/presets/NavySidebarAside.java | 295 ++ .../cv/presets/NavySidebarIcons.java | 85 + .../templates/cv/presets/NavySidebarMain.java | 276 ++ .../cv/presets/NavySidebarStyles.java | 192 ++ .../cv/presets/NavySidebarWidgets.java | 133 + .../cv/presets/ProfessionalSidebar.java | 6 + .../templates/cv/presets/package-info.java | 12 +- .../cv/navy-sidebar/icons/briefcase.png | Bin 0 -> 941 bytes .../cv/navy-sidebar/icons/certificate.png | Bin 0 -> 1080 bytes .../templates/cv/navy-sidebar/icons/email.png | Bin 0 -> 1028 bytes .../cv/navy-sidebar/icons/linkedin.png | Bin 0 -> 969 bytes .../cv/navy-sidebar/icons/location.png | Bin 0 -> 1177 bytes .../templates/cv/navy-sidebar/icons/phone.png | Bin 0 -> 1081 bytes .../cv/navy-sidebar/icons/trophy.png | Bin 0 -> 1222 bytes 33 files changed, 4611 insertions(+), 18 deletions(-) create mode 100644 assets/readme/examples/cv-navy-sidebar-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/NavySidebarSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/NavySidebarExample.java create mode 100644 examples/src/main/resources/cv-portrait-placeholder.png create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvIdentityPortraitTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/navy_sidebar_layout.json create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/navy_sidebar-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarWidgets.java create mode 100644 templates/src/main/resources/templates/cv/navy-sidebar/icons/briefcase.png create mode 100644 templates/src/main/resources/templates/cv/navy-sidebar/icons/certificate.png create mode 100644 templates/src/main/resources/templates/cv/navy-sidebar/icons/email.png create mode 100644 templates/src/main/resources/templates/cv/navy-sidebar/icons/linkedin.png create mode 100644 templates/src/main/resources/templates/cv/navy-sidebar/icons/location.png create mode 100644 templates/src/main/resources/templates/cv/navy-sidebar/icons/phone.png create mode 100644 templates/src/main/resources/templates/cv/navy-sidebar/icons/trophy.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 66e4d4248..757b26c36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **`CvIdentity` carries an optional portrait.** A CV design with a photograph in it + had nowhere to put one: the identity record held the name, the title, the contact + triple and the links, and a preset that wanted a face had to ship a silhouette of its + own. `CvIdentity` now carries `Optional portrait` — the image + itself, because a photograph is caller-supplied content rather than template chrome — + reachable through `CvIdentity.Builder.portrait(...)`. The four- and three-argument + constructors are kept explicitly, so existing calls compile and link unchanged; only a + record deconstruction pattern over `CvIdentity` sees the extra component. A document + carrying a portrait still renders through every preset in the family — the ones with + nowhere to draw it ignore it. + - **A structured invoice document model.** The invoice family's data layer knew one shape — an invoice as pre-formatted display strings, with one address block per party, line items whose quantity and money are already rendered, and a flat list of @@ -36,6 +47,24 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A portrait CV preset: `NavySidebar`.** A one-page A4 CV in two columns on Lato — + a navy plate carrying a ringed portrait, the contact channels behind their marks, the + degrees, the skills and the languages, beside a white column of the name, the summary, + the roles held on a timeline rail with a filled marker at each one, and the + achievements and certifications behind badged headings. Ships as + `cv.presets.NavySidebar` on the existing `CvDocument` model, porting the rendered + layout of the published standalone `navy-sidebar-cv` template. Like its sibling it + owns its page and holds one: the two columns are a single atomic row, so a CV longer + than the sheet raises `AtomicNodeTooLargeException` rather than flowing or dropping + entries. Sections reach their berth by title rather than by `Slot`; languages are a + `RowsSection` because this design writes the proficiency out — "Native", "Advanced" — + which a levelled skill could not carry back. The photograph comes from the new + `CvIdentity.portrait()`; an identity without one draws the ring around an empty navy + disc. Guarded by a smoke test (including the missing portrait, the capitals this + design imposes, the one-page limit and the fields it has no place for), an exact + layout snapshot and a pixel-parity gate; the examples showcase gains + `cv-navy-sidebar-v2`. + - **The first CV preset that owns its page: `ProfessionalSidebar`.** A one-page CV in two columns on the Barlow Condensed / Lato pair — a navy monogram plate over a pale sidebar carrying the contact channels, meter-bar skills, an education rail with diff --git a/assets/readme/examples/cv-navy-sidebar-v2.pdf b/assets/readme/examples/cv-navy-sidebar-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1ba8f2fcddeffaad539905b79dd61176eadf3de2 GIT binary patch literal 33670 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 H%VGT&?@#+( delta 7800 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 W@Bh8j-cdYkVL=>LRz)o(oc{%#iPg^l diff --git a/docs/templates/v2-layered/using-templates.md b/docs/templates/v2-layered/using-templates.md index 9017f5517..e040f106b 100644 --- a/docs/templates/v2-layered/using-templates.md +++ b/docs/templates/v2-layered/using-templates.md @@ -234,12 +234,12 @@ whole or the paginator raises `AtomicNodeTooLargeException`. Lifting a cap without teaching the preset to pick its own page boundaries turns a CV that silently lost an entry into one that fails to render. -`ProfessionalSidebar.create()` is the fourth composition for a fixed -amount of content and the one that caps nothing: it reproduces a -specific one-page sheet, so a CV longer than that sheet raises -`AtomicNodeTooLargeException` instead of losing an entry to a cap. Size -the document to it — roughly five or six roles with three or four -highlights each, alongside the sidebar blocks. +`ProfessionalSidebar.create()` and `NavySidebar.create()` are +compositions for a fixed amount of content that cap nothing: each +reproduces a specific one-page sheet, so a CV longer than that sheet +raises `AtomicNodeTooLargeException` instead of losing an entry to a +cap. Size the document to them — roughly five or six roles with three +or four highlights each, alongside the sidebar blocks. If the document's length is the author's rather than the template's, pick a preset that paginates — `TimelineMinimal` splits its own columns diff --git a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java index d9c144721..706465084 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -96,6 +96,7 @@ import com.demcha.examples.templates.cv.v2.CvPanelExample; import com.demcha.examples.templates.cv.v2.CvSidebarPortraitExample; import com.demcha.examples.templates.cv.v2.CvTimelineMinimalExample; +import com.demcha.examples.templates.cv.v2.NavySidebarExample; import com.demcha.examples.templates.cv.v2.ProfessionalSidebarExample; import com.demcha.examples.templates.invoice.ClassicInvoiceV2Example; import com.demcha.examples.templates.invoice.ConsultingInvoiceV2Example; @@ -146,6 +147,7 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + CvPanelExample.generate()); System.out.println("Generated: " + CvSidebarPortraitExample.generate()); System.out.println("Generated: " + CvTimelineMinimalExample.generate()); + System.out.println("Generated: " + NavySidebarExample.generate()); System.out.println("Generated: " + ProfessionalSidebarExample.generate()); // Cover letters (v2 layered — 15 paired letters, one per CV preset) diff --git a/examples/src/main/java/com/demcha/examples/support/NavySidebarSampleData.java b/examples/src/main/java/com/demcha/examples/support/NavySidebarSampleData.java new file mode 100644 index 000000000..712d5dcdf --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/NavySidebarSampleData.java @@ -0,0 +1,141 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.image.DocumentImageData; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.RowStyle; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.util.Objects; + +/** + * Sample data for the Navy Sidebar CV example. + * + *

    Sized to the design: the preset draws a fixed one-page sheet, and a CV + * much longer than this one does not compose at all — the two columns are a + * single atomic row, so it raises {@code AtomicNodeTooLargeException}.

    + * + *

    The portrait is a neutral silhouette rather than a photograph, because + * the example ships in the repository; a real CV passes the candidate's own + * image to {@code CvIdentity.Builder.portrait(...)} the same way.

    + */ +public final class NavySidebarSampleData { + + private static final String PORTRAIT = "/cv-portrait-placeholder.png"; + + private NavySidebarSampleData() { + } + + /** + * A marketing manager's one-page CV. + * + * @return the sample document + */ + public static CvDocument sample() { + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("Priya", "Raghavan") + .jobTitle("Marketing Manager") + .contact(new Contact("+44 20 7946 0812", + "priya.r@example.com", + "Bristol, United Kingdom")) + .link(new Link("linkedin.com/in/praghavan", + "https://linkedin.com/in/praghavan")) + .portrait(portrait()) + .build()) + .section(Slot.MAIN, new ParagraphSection("Summary", + "Marketing manager with eight years in B2B software, most of it" + + " running the demand side end to end: positioning, the" + + " campaigns that carry it, and the reporting that says" + + " whether it worked. Happiest with a small team and a" + + " short feedback loop.")) + .section(Slot.SIDEBAR, EntriesSection.builder("Education") + .entry("MSc Marketing Analytics", "University of Bristol", + "2015 - 2016", "Bristol, UK") + .entry("BA Business Management", "University of Leeds", + "2012 - 2015", "Leeds, UK") + .build()) + .section(Slot.SIDEBAR, SkillsSection.of("Skills", SkillGroup.of("Core", + "Positioning", + "Demand Generation", + "Marketing Analytics", + "SEO / SEM", + "Lifecycle Email", + "Content Strategy", + "HubSpot", + "Looker"))) + .section(Slot.SIDEBAR, RowsSection.builder("Languages", RowStyle.PLAIN) + .row("English", "Native") + .row("Tamil", "Native") + .row("German", "Intermediate") + .build()) + .section(Slot.MAIN, EntriesSection.builder("Experience") + .entry("Marketing Manager", + "Ardent Systems, Bristol, UK", + "Mar 2021 - Present", + String.join("\n", + "Rebuilt the demand programme around three named" + + " segments, lifting qualified pipeline 44% in" + + " the first year.", + "Runs a team of four across content, lifecycle and" + + " events, and the agency relationship behind" + + " paid search.", + "Replaced a weekly spreadsheet with a Looker model the" + + " sales team reads without asking for it.")) + .entry("Senior Marketing Executive", + "Halworth Digital, Bristol, UK", + "Sep 2018 - Feb 2021", + String.join("\n", + "Owned lifecycle email end to end, taking trial-to-paid" + + " conversion from 9% to 14%.", + "Launched the customer-story programme that still" + + " supplies the sales deck.", + "Ran competitor and win-loss research each quarter for" + + " the product team.")) + .entry("Marketing Executive", + "Kite & Compass, Leeds, UK", + "Oct 2016 - Aug 2018", + String.join("\n", + "Planned and ran campaigns across search, social and" + + " trade press for six retail clients.", + "Built the reporting pack the agency used for every" + + " monthly review.")) + .build()) + .section(Slot.MAIN, new ParagraphSection("Achievements", String.join("\n", + "Grew organic sessions 60% in a year by rebuilding the site around" + + " search intent rather than the org chart.", + "Cut cost per qualified lead by a third by retiring two channels and" + + " funding the one that worked.", + "Named marketer of the year at Ardent in 2024."))) + .section(Slot.MAIN, new ParagraphSection("Certifications", String.join("\n", + "Google Analytics Individual Qualification", + "HubSpot Content Marketing Certification", + "Professional Certificate in Marketing, CIM"))) + .build(); + } + + /** + * The packaged silhouette that stands in for a photograph. + * + * @return the portrait image data + */ + private static DocumentImageData portrait() { + try (InputStream in = Objects.requireNonNull( + NavySidebarSampleData.class.getResourceAsStream(PORTRAIT), + "cv-portrait-placeholder.png missing from examples/src/main/resources/")) { + return DocumentImageData.fromBytes(in.readAllBytes()); + } catch (IOException e) { + throw new UncheckedIOException("Failed to read the sample portrait", e); + } + } +} diff --git a/examples/src/main/java/com/demcha/examples/support/ProfessionalSidebarSampleData.java b/examples/src/main/java/com/demcha/examples/support/ProfessionalSidebarSampleData.java index 39c18438e..75b1de94b 100644 --- a/examples/src/main/java/com/demcha/examples/support/ProfessionalSidebarSampleData.java +++ b/examples/src/main/java/com/demcha/examples/support/ProfessionalSidebarSampleData.java @@ -42,7 +42,7 @@ public static CvDocument sample() { .name("MARTA", "LINDQVIST") .jobTitle("SENIOR BACKEND ENGINEER") .contact(new Contact("+46 8 123 456 78", - "marta.lindqvist@example.com", + "marta.l@example.com", "Stockholm, Sweden")) .link(new Link("linkedin.com/in/mlindqvist", "https://linkedin.com/in/mlindqvist")) 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 b63c554c0..62fc7aafa 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -61,6 +61,7 @@ record Entry(String title, String description, List tags, String codeUrl cv("cv-mint-editorial-v2", "CvMintEditorialExample", "Mint Editorial", "Magazine-style editorial CV with mint accent palette and two-column body.", "editorial", "mint"); cv("cv-mint-editorial-v2-custom", "CvMintEditorialCustomExample", "Mint Editorial (custom band)", "The same preset with one colour changed through its Options — a kraft-paper masthead band, everything else left at the preset's defaults.", "editorial", "mint"); cv("cv-professional-sidebar-v2", "ProfessionalSidebarExample", "Professional Sidebar", "Navy monogram plate over a pale sidebar of contact marks, skill meters, an education rail and language ratings, beside a white column of profile, roles and projects.", "sidebar", "navy"); + cv("cv-navy-sidebar-v2", "NavySidebarExample", "Navy Sidebar", "Navy plate with a ringed portrait, contact marks, degrees, skills and languages, beside a white column of summary, badged sections and roles strung on a timeline rail.", "sidebar", "navy", "portrait"); // ===== Templates / Cover Letter (v2 layered, paired 1:1 with CV) ===== // Registered directly: letter() points at the layered preset examples under diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/NavySidebarExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/NavySidebarExample.java new file mode 100644 index 000000000..25a43f09e --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/NavySidebarExample.java @@ -0,0 +1,52 @@ +package com.demcha.examples.templates.cv.v2; + +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.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.NavySidebar; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.NavySidebarSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code cv.v2} Navy Sidebar preset against the + * marketing-manager sample. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-navy-sidebar-v2.pdf}.

    + * + *

    The preset owns its page — A4 with no margin, the navy plate painted as + * a page background — so the session starts unconfigured.

    + */ +public final class NavySidebarExample { + + private NavySidebarExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare( + "templates/cv", "cv-navy-sidebar-v2.pdf"); + CvDocument doc = NavySidebarSampleData.sample(); + DocumentTemplate template = NavySidebar.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + template.compose(document, doc); + 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/examples/src/main/resources/cv-portrait-placeholder.png b/examples/src/main/resources/cv-portrait-placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..8c58ba4d80782c514213facb37a819fd8ededdc0 GIT binary patch literal 2274 zcmbtVeN0nV6hH6v^@9SX6~#_a3RPi>(4oPa5hz$is0#BV71!wl#-6NMx zQE1$vEJU2cO*aA+vXPQ?^C>7OL_jx36!j^nIESf55@dk8@3lR;uYYl_>2nmn(mnC zb&`Lv`(SLcf$3dm8xn8JdhY{6L_jhx@)qfR03nB%mBf$FR;uNucDfBn;al z1kXX`P~?aeL*4L9?ZT(mf>%%ug8t+7aweGdhD$eU&}?YY+DLv8za8k~so_l_s+O89 zGV&8B8TOM?P~RMx4|I0wLOFPa8Kfk7Co@d}1{9RJQ30B=ut*X_pMNtSm<2T~&TIaG zi3DUc-BN>6*FjQHF80T~J@ngh018@5JH}FA5xr{xx`DRvw&a5yQz^(0mhR+QAn)sj z13{pi(xIgQ2xjTgUI76*a1O5VjpG=i=UhqRcV?=i#&SC#hevgAbr0{nxZzH)tBZ6o z3c66ic>tjb6rX5+R_E@YG`0S2SD?@q#o2Gw|EZ#NwYcFjHa~Owe@HTImosZ6wUhoK z$HCnx-bWo9xLn-JdCIH%xQuyH-7lUQ<)d;v;|^*~rlQ7E*dvT6^IbRH-Dll7gzL+l zExRlA-1kS%N%!U5TZ=nl_{&*3IZ8$_p{MXw;s|A-)u|FVE3Nh5!aFwBbb)ealP2i$h&m;h&tof5Gs$T#B>T^rfKxTnXS|OdNz^xHBl|YLZ zZkblnhd<;=D~m6Lue$4|UlP8Y4=Ucgl6>&t=H8RTxmC^CX?1vrMN}X~gb&spFU|s+ z7{mTe=sBJ8lI3+uKPbnNy%U2aI~qP#WA(bMJe(hk)$2Oof}^Y>kjeEi&;ypPo8FM? z@4!{WCshIxwHJF?4-@o2mkRI9_Op@vjxL5s8|W(G4v(>sxFU}mPu2Uw$EsCAeC_v& z%Xb5N{-$n!vd+G?J4b#UG((^26<}=s?R4Cf!>BW~>8{E_lnk>y!B8dFGTpw`Qo)me z9kbz5V8B|6Sx$)k33DRz&<{*L<|ZMG7X8=x=fRXrm>qC%83cqe%g5nvVrB~2(^6DV*=zYD zMPOP*m=PFP@GLSmn41*nn8BejlahbpQv^6U|QH z2O!RH`XpM<3HhsD6vvAm2l!E@3Fl}qqoa-3waYbdkZ}&vGr~F~*68>nbSLx=3zTY1 z%!rV%U3t!&PYAOv@3tkw>f UO=fRhr~v#+oVQqC6;J2?4VxM_Bme*a literal 0 HcmV?d00001 diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvIdentityPortraitTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvIdentityPortraitTest.java new file mode 100644 index 000000000..4a275da64 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvIdentityPortraitTest.java @@ -0,0 +1,75 @@ +package com.demcha.compose.document.templates.cv.data; + +import com.demcha.compose.document.image.DocumentImageData; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.Optional; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Pins the compatibility promise made when {@link CvIdentity} grew a + * portrait: the constructors that predate the component are still there and + * still mean what they meant, so a caller written against the four-argument + * form keeps compiling and linking. + */ +class CvIdentityPortraitTest { + + private static final Contact CONTACT = + new Contact("+44 20 7946 0000", "ada@example.com", "London, UK"); + + @Test + void theConstructorThatPredatesThePortraitLeavesItEmpty() { + CvIdentity identity = new CvIdentity( + CvName.of("Ada", "Lovelace"), "Analyst", CONTACT, + List.of(new Link("site", "https://example.com"))); + assertThat(identity.portrait()).isEmpty(); + assertThat(identity.jobTitle()).isEqualTo("Analyst"); + } + + @Test + void theConstructorThatPredatesTheJobTitleLeavesBothEmpty() { + CvIdentity identity = new CvIdentity( + CvName.of("Ada", "Lovelace"), CONTACT, List.of()); + assertThat(identity.portrait()).isEmpty(); + assertThat(identity.jobTitle()).isEmpty(); + } + + @Test + void aNullPortraitNormalizesToAbsent() { + CvIdentity identity = new CvIdentity( + CvName.of("Ada", "Lovelace"), "Analyst", CONTACT, List.of(), null); + assertThat(identity.portrait()).isEmpty(); + } + + @Test + void theBuilderCarriesThePortraitThrough() { + DocumentImageData image = DocumentImageData.fromBytes(onePixelPng()); + CvIdentity identity = CvIdentity.builder() + .name("Ada", "Lovelace") + .contact(CONTACT) + .portrait(image) + .build(); + assertThat(identity.portrait()).isEqualTo(Optional.of(image)); + } + + @Test + void theBuilderTreatsANullPortraitAsNone() { + CvIdentity identity = CvIdentity.builder() + .name("Ada", "Lovelace") + .contact(CONTACT) + .portrait(null) + .build(); + assertThat(identity.portrait()).isEmpty(); + } + + /** The smallest valid PNG: one opaque pixel. */ + private static byte[] onePixelPng() { + return java.util.Base64.getDecoder().decode( + "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmM" + + "IQAAAABJRU5ErkJggg=="); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java new file mode 100644 index 000000000..923ebec22 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java @@ -0,0 +1,166 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.image.DocumentImageData; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.RowStyle; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.RenderingHints; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.UncheckedIOException; + +import javax.imageio.ImageIO; + +/** + * The canonical fixture for {@link NavySidebar} — the document the design was + * drawn around, and the one both gates measure. + * + *

    One fixture feeds the layout snapshot and the pixel baseline, so a + * change that moves the sheet moves both together instead of leaving one + * gate measuring a document the other no longer renders.

    + * + *

    The portrait is drawn here rather than committed: a photograph in the + * repository would be a licensed asset guarding a layout, and what the gates + * need is only that the disc has something in it. It is deterministic, so + * the pixel baseline is stable.

    + */ +public final class NavySidebarFixtures { + + private NavySidebarFixtures() { + } + + /** + * The canonical CV: a portrait, four contact channels, two degrees, eight + * skills, three languages, three roles, three achievements and three + * certifications — one page. + * + * @return the fixture document + */ + public static CvDocument canonicalCv() { + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("Olivia", "Martinez") + .jobTitle("Marketing Manager") + .contact(new Contact("+1 (555) 123-4567", + "your.email@gmail.com", + "New York, NY, USA")) + .link(new Link("linkedin.com/in/yourname", + "https://linkedin.com/in/yourname")) + .portrait(portrait()) + .build()) + .section(Slot.MAIN, new ParagraphSection("SUMMARY", + "Results-driven marketing professional with 5+ years of experience" + + " developing and executing data-driven marketing strategies" + + " that drive brand growth, increase engagement, and deliver" + + " measurable results. Skilled in digital marketing, market" + + " research, and cross-functional collaboration.")) + .section(Slot.SIDEBAR, EntriesSection.builder("Education") + .entry("Master of Science in Marketing", "New York University", + "2020 - 2022", "New York, NY") + .entry("Bachelor of Business Administration", "University of California", + "2016 - 2020", "Los Angeles, CA") + .build()) + .section(Slot.SIDEBAR, SkillsSection.of("Skills", SkillGroup.of("Core", + "Digital Marketing", + "Data Analysis", + "Project Management", + "SEO / SEM", + "Microsoft Office Suite", + "Google Analytics", + "Social Media Strategy", + "Content Marketing"))) + .section(Slot.SIDEBAR, RowsSection.builder("Languages", RowStyle.PLAIN) + .row("English", "Native") + .row("Spanish", "Advanced") + .row("French", "Intermediate") + .build()) + .section(Slot.MAIN, EntriesSection.builder("Experience") + .entry("Marketing Manager", + "BrightWave Solutions, New York, NY", + "Jan 2022 - Present", + String.join("\n", + "Develop and implement integrated marketing campaigns" + + " that increased brand awareness by 35% and" + + " lead generation by 50%.", + "Manage a team of 4 marketing specialists and" + + " collaborate with sales, product, and design" + + " teams to align strategies.", + "Analyze campaign performance using Google Analytics" + + " and other tools to optimize ROI and" + + " reporting.")) + .entry("Marketing Specialist", + "BrightWave Solutions, New York, NY", + "Jun 2020 - Dec 2021", + String.join("\n", + "Executed digital marketing campaigns across SEO, PPC," + + " email, and social media channels.", + "Conducted market research and competitor analysis to" + + " identify opportunities and inform strategy.", + "Created engaging content for blogs, newsletters, and" + + " social media that increased engagement by" + + " 40%.")) + .entry("Marketing Intern", + "BrightWave Solutions, New York, NY", + "Jan 2020 - May 2020", + String.join("\n", + "Assisted in planning and executing marketing" + + " initiatives and events.", + "Supported content creation and social media" + + " management.", + "Analyzed data and prepared reports to support the" + + " marketing team.")) + .build()) + .section(Slot.MAIN, new ParagraphSection("Achievements", String.join("\n", + "Increased website traffic by 60% within one year through SEO and" + + " content strategy.", + "Launched a successful email marketing campaign with a 25% conversion" + + " rate.", + "Received \u201cEmployee of the Year\u201d award in 2023 for outstanding" + + " performance."))) + .section(Slot.MAIN, new ParagraphSection("Certifications", String.join("\n", + "Google Analytics Individual Qualification (GAIQ)", + "HubSpot Content Marketing Certification", + "Facebook Blueprint Certification"))) + .build(); + } + + /** + * A flat two-tone silhouette, drawn at fixture time. + * + * @return the portrait image data + */ + static DocumentImageData portrait() { + BufferedImage image = new BufferedImage(512, 512, BufferedImage.TYPE_INT_RGB); + Graphics2D g = image.createGraphics(); + try { + g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + g.setColor(new Color(222, 226, 231)); + g.fillRect(0, 0, 512, 512); + g.setColor(new Color(150, 160, 173)); + g.fillOval(171, 102, 169, 169); + g.fillOval(67, 307, 379, 379); + } finally { + g.dispose(); + } + ByteArrayOutputStream png = new ByteArrayOutputStream(); + try { + ImageIO.write(image, "png", png); + } catch (IOException e) { + throw new UncheckedIOException("Failed to draw the fixture portrait", e); + } + return DocumentImageData.fromBytes(png.toByteArray()); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarLayoutSnapshotTest.java new file mode 100644 index 000000000..5af914f79 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarLayoutSnapshotTest.java @@ -0,0 +1,29 @@ +package com.demcha.compose.document.templates.cv.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 NavySidebar} - freezes the resolved + * geometry of the canonical one-page CV, which is what catches a shift the + * pixel budget is too coarse to see. + * + *

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

    + */ +class NavySidebarLayoutSnapshotTest { + + @Test + void canonicalCvMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + NavySidebar.create().compose(session, NavySidebarFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "navy_sidebar_layout", "cv-v2"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java new file mode 100644 index 000000000..58322a979 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java @@ -0,0 +1,185 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.exceptions.AtomicNodeTooLargeException; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.RowStyle; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +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 NavySidebar} — proves the preset renders a + * {@link CvDocument} end-to-end with its packaged marks and the portrait + * from the identity, composes without one, and pins the limits the class + * documents: the sheet holds one page, and the fields this design has no + * place for are not drawn. + */ +class NavySidebarSmokeTest { + + private static byte[] render(CvDocument doc) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + NavySidebar.create().compose(session, doc); + 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 = NavySidebar.create(); + assertThat(template.id()).isEqualTo(NavySidebar.ID); + assertThat(template.displayName()).isEqualTo(NavySidebar.DISPLAY_NAME); + } + + @Test + void canonicalRenderCarriesTheUntrackedText() throws Exception { + // The headings, the name and the role are set letter by letter to + // reach their tracking, so they arrive on the text layer spaced out. + // What is asserted here is the text drawn as written. + String text = textOf(render(NavySidebarFixtures.canonicalCv())); + assertThat(text) + .contains("your.email@gmail.com") + .contains("New York, NY, USA") + .contains("linkedin.com/in/yourname") + .contains("Results-driven marketing professional") + .contains("New York University") + .contains("Digital Marketing") + .contains("Native") + .contains("BrightWave Solutions, New York, NY") + .contains("Increased website traffic by 60%") + .contains("HubSpot Content Marketing Certification"); + } + + @Test + void rendersOneCanonicalPage() throws Exception { + try (PDDocument document = + Loader.loadPDF(render(NavySidebarFixtures.canonicalCv()))) { + assertThat(document.getNumberOfPages()).isEqualTo(1); + } + } + + @Test + void rendersWithoutAPortraitOrAJobTitle() throws Exception { + // No photograph: the ring is drawn around an empty navy disc rather + // than left as a hole in the column. And no role: that line is + // written letter by letter to reach its tracking, so a blank one + // reaches the engine as a paragraph holding no runs at all. + String text = textOf(render(CvDocument.builder() + .identity(CvIdentity.builder() + .name("Ada", "Lovelace") + .contact(new Contact("+44 20 7946 0000", "empty@example.com", + "London, UK")) + .build()) + .build())); + assertThat(text).contains("empty@example.com"); + } + + @Test + void degreesAndTitlesAreDrawnInCapitals() throws Exception { + // This design upper-cases for the author — the name, the role, each + // degree and every heading — so a document written in title case + // still reads as the sheet it is. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(EntriesSection.builder("Education") + .entry("Master of Science", "Some University", "2019", "Berlin") + .build()) + .build())); + assertThat(text).contains("MASTER OF SCIENCE").doesNotContain("Master of Science"); + } + + @Test + void drawsNothingTheDesignHasNoPlaceFor() throws Exception { + // A berth is filled once, and this sheet has nowhere to put a skill + // level, a group category or the summary's own title. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(new ParagraphSection("Summary title here", "The opening paragraph.")) + .section(SkillsSection.of("Skills", + new SkillGroup("Category name here", List.of(CvSkill.of("Java", 0.8))))) + .section(new ParagraphSection("Achievements", "Shipped a thing.")) + .section(new ParagraphSection("More achievements", "Second block here.")) + .build())); + assertThat(text) + .contains("The opening paragraph.") + .contains("Java") + .contains("Shipped a thing.") + .doesNotContain("Summary title here") + .doesNotContain("Category name here") + .doesNotContain("Second block here."); + } + + @Test + void writesTheProficiencyTheDocumentCarries() throws Exception { + // Languages are rows rather than levelled skills precisely so the + // words survive; the row style is not read. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(RowsSection.builder("Languages", RowStyle.BULLETED_STACKED) + .row("Portuguese", "Conversational") + .build()) + .build())); + assertThat(text).contains("Portuguese").contains("Conversational"); + } + + @Test + void refusesACvLongerThanTheSheet() { + // The sheet holds one page: the two columns are a single row, and a + // row is atomic. A CV past that raises rather than flowing. + EntriesSection.Builder experience = EntriesSection.builder("Experience"); + for (int i = 0; i < 14; i++) { + experience.entry("Role " + i, "Employer " + i + ", City", "2010 - 2011", + String.join("\n", + "Did a substantial thing that took a full line of text here.", + "Did a second substantial thing, also a full line of text.", + "And a third, so each role occupies real vertical space.")); + } + CvDocument doc = CvDocument.builder() + .identity(identity()) + .section(experience.build()) + .build(); + try (DocumentSession session = GraphCompose.document().create()) { + NavySidebar.create().compose(session, doc); + assertThatThrownBy(session::toPdfBytes) + .isInstanceOf(AtomicNodeTooLargeException.class) + .hasMessageContaining("PageGrid"); + } + } + + private static CvIdentity identity() { + return CvIdentity.builder() + .name("Ada", "Lovelace") + .jobTitle("Analyst") + .contact(new Contact("+44 20 7946 0000", "empty@example.com", "London, UK")) + .link(new Link("linkedin.com/in/ada", "https://linkedin.com/in/ada")) + .portrait(NavySidebarFixtures.portrait()) + .build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarVisualParityTest.java new file mode 100644 index 000000000..e5dc3d6e1 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarVisualParityTest.java @@ -0,0 +1,41 @@ +package com.demcha.compose.document.templates.cv.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 NavySidebar} - the canonical + * one-page CV against a checked-in baseline. + * + *

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

    + */ +class NavySidebarVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "cv-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()) { + NavySidebar.create().compose(document, NavySidebarFixtures.canonicalCv()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("navy_sidebar", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/navy_sidebar_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/navy_sidebar_layout.json new file mode 100644 index 000000000..fe432c744 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/navy_sidebar_layout.json @@ -0,0 +1,2627 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 595.276, + "innerHeight" : 841.89, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "NavySidebarCv[0]", + "entityName" : "NavySidebarCv", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 0.0, + "computedY" : 1.125, + "placementX" : 0.0, + "placementY" : 1.125, + "placementWidth" : 595.276, + "placementHeight" : 840.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 840.765, + "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" : "NavySidebarCv[0]/PageGrid[0]", + "entityName" : "PageGrid", + "entityKind" : "RowNode", + "parentPath" : "NavySidebarCv[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 1.125, + "placementX" : 0.0, + "placementY" : 1.125, + "placementWidth" : 595.276, + "placementHeight" : 840.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 840.765, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]", + "entityName" : "Sidebar", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 48.043, + "placementX" : 0.0, + "placementY" : 48.043, + "placementWidth" : 176.797, + "placementHeight" : 793.847, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 176.797, + "contentHeight" : 793.847, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 25.0, + "right" : 26.5, + "bottom" : 36.5, + "left" : 26.5 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Avatar[0]", + "entityName" : "Avatar", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 26.5, + "computedY" : 667.893, + "placementX" : 26.5, + "placementY" : 667.893, + "placementWidth" : 123.797, + "placementHeight" : 148.997, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 148.997, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 22.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Avatar[0]/AvatarRing[0]", + "entityName" : "AvatarRing", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Avatar[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 689.893, + "placementX" : 26.5, + "placementY" : 689.893, + "placementWidth" : 126.997, + "placementHeight" : 126.997, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 126.997, + "contentHeight" : 126.997, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Avatar[0]/AvatarRing[0]/AvatarCircle[0]", + "entityName" : "AvatarCircle", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Avatar[0]/AvatarRing[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 28.1, + "computedY" : 691.493, + "placementX" : 28.1, + "placementY" : 691.493, + "placementWidth" : 123.797, + "placementHeight" : 123.797, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 123.797, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Avatar[0]/AvatarRing[0]/AvatarCircle[0]/AvatarPhoto[0]", + "entityName" : "AvatarPhoto", + "entityKind" : "ImageNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Avatar[0]/AvatarRing[0]/AvatarCircle[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 28.1, + "computedY" : 691.493, + "placementX" : 28.1, + "placementY" : 691.493, + "placementWidth" : 123.797, + "placementHeight" : 123.797, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 123.797, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]", + "entityName" : "Contact", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 26.5, + "computedY" : 550.093, + "placementX" : 26.5, + "placementY" : 550.093, + "placementWidth" : 123.797, + "placementHeight" : 117.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 117.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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]/SidebarHeading_Contact[0]", + "entityName" : "SidebarHeading_Contact", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 653.493, + "placementX" : 26.5, + "placementY" : 653.493, + "placementWidth" : 69.473, + "placementHeight" : 14.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.473, + "contentHeight" : 14.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]/SidebarRule_Contact[1]", + "entityName" : "SidebarRule_Contact", + "entityKind" : "LineNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 645.493, + "placementX" : 26.5, + "placementY" : 645.493, + "placementWidth" : 123.797, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]/Contact_phone[2]", + "entityName" : "Contact_phone", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 624.693, + "placementX" : 26.5, + "placementY" : 624.693, + "placementWidth" : 92.314, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.314, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]/Contact_email[3]", + "entityName" : "Contact_email", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 603.393, + "placementX" : 26.5, + "placementY" : 603.393, + "placementWidth" : 105.31, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.31, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]/Contact_location[4]", + "entityName" : "Contact_location", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 581.893, + "placementX" : 26.5, + "placementY" : 581.893, + "placementWidth" : 96.275, + "placementHeight" : 11.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.275, + "contentHeight" : 11.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]/Contact_linkedin[5]", + "entityName" : "Contact_linkedin", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Contact[1]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 560.593, + "placementX" : 26.5, + "placementY" : 560.593, + "placementWidth" : 122.217, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.217, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "entityName" : "Education", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 26.5, + "computedY" : 348.993, + "placementX" : 26.5, + "placementY" : 348.993, + "placementWidth" : 123.797, + "placementHeight" : 201.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 201.1, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]/SidebarHeading_Education[0]", + "entityName" : "SidebarHeading_Education", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 517.693, + "placementX" : 26.5, + "placementY" : 517.693, + "placementWidth" : 86.807, + "placementHeight" : 14.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.807, + "contentHeight" : 14.4, + "margin" : { + "top" : 18.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]/SidebarRule_Education[1]", + "entityName" : "SidebarRule_Education", + "entityKind" : "LineNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 509.693, + "placementX" : 26.5, + "placementY" : 509.693, + "placementWidth" : 123.797, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]/Degree_MasterofScienceinMarketing[2]", + "entityName" : "Degree_MasterofScienceinMarketing", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 476.743, + "placementX" : 26.5, + "placementY" : 476.743, + "placementWidth" : 101.421, + "placementHeight" : 22.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 101.421, + "contentHeight" : 22.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]/Institution_MasterofScienceinMarketing[3]", + "entityName" : "Institution_MasterofScienceinMarketing", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 461.943, + "placementX" : 26.5, + "placementY" : 461.943, + "placementWidth" : 82.287, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 82.287, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]/Campus_MasterofScienceinMarketing[4]", + "entityName" : "Campus_MasterofScienceinMarketing", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 449.643, + "placementX" : 26.5, + "placementY" : 449.643, + "placementWidth" : 56.412, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.412, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]/Years_MasterofScienceinMarketing[5]", + "entityName" : "Years_MasterofScienceinMarketing", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 437.343, + "placementX" : 26.5, + "placementY" : 437.343, + "placementWidth" : 49.716, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.716, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 13.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]/Degree_BachelorofBusinessAdministration[6]", + "entityName" : "Degree_BachelorofBusinessAdministration", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 401.393, + "placementX" : 26.5, + "placementY" : 401.393, + "placementWidth" : 106.965, + "placementHeight" : 22.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.965, + "contentHeight" : 22.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]/Institution_BachelorofBusinessAdministration[7]", + "entityName" : "Institution_BachelorofBusinessAdministration", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 386.593, + "placementX" : 26.5, + "placementY" : 386.593, + "placementWidth" : 91.242, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.242, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]/Campus_BachelorofBusinessAdministration[8]", + "entityName" : "Campus_BachelorofBusinessAdministration", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "childIndex" : 8, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 374.293, + "placementX" : 26.5, + "placementY" : 374.293, + "placementWidth" : 63.702, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.702, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]/Years_BachelorofBusinessAdministration[9]", + "entityName" : "Years_BachelorofBusinessAdministration", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Education[2]", + "childIndex" : 9, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 361.993, + "placementX" : 26.5, + "placementY" : 361.993, + "placementWidth" : 49.716, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.716, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 13.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Skills[3]", + "entityName" : "Skills", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 26.5, + "computedY" : 195.393, + "placementX" : 26.5, + "placementY" : 195.393, + "placementWidth" : 123.797, + "placementHeight" : 153.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 153.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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Skills[3]/SidebarHeading_Skills[0]", + "entityName" : "SidebarHeading_Skills", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Skills[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 316.593, + "placementX" : 26.5, + "placementY" : 316.593, + "placementWidth" : 47.366, + "placementHeight" : 14.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.366, + "contentHeight" : 14.4, + "margin" : { + "top" : 18.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Skills[3]/SidebarRule_Skills[1]", + "entityName" : "SidebarRule_Skills", + "entityKind" : "LineNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Skills[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 308.593, + "placementX" : 26.5, + "placementY" : 308.593, + "placementWidth" : 123.797, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Skills[3]/SkillsList[2]", + "entityName" : "SkillsList", + "entityKind" : "ListNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Skills[3]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 195.393, + "placementX" : 26.5, + "placementY" : 195.393, + "placementWidth" : 95.517, + "placementHeight" : 103.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.517, + "contentHeight" : 103.2, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]", + "entityName" : "Languages", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 26.5, + "computedY" : 84.543, + "placementX" : 26.5, + "placementY" : 84.543, + "placementWidth" : 123.797, + "placementHeight" : 110.85, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 110.85, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/SidebarHeading_Languages[0]", + "entityName" : "SidebarHeading_Languages", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 162.993, + "placementX" : 26.5, + "placementY" : 162.993, + "placementWidth" : 87.863, + "placementHeight" : 14.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.863, + "contentHeight" : 14.4, + "margin" : { + "top" : 18.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/SidebarRule_Languages[1]", + "entityName" : "SidebarRule_Languages", + "entityKind" : "LineNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 148.993, + "placementX" : 26.5, + "placementY" : 148.993, + "placementWidth" : 123.797, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_English[2]", + "entityName" : "LanguageRow_English", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 120.843, + "placementX" : 26.5, + "placementY" : 120.843, + "placementWidth" : 123.797, + "placementHeight" : 12.15, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 12.15, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_English[2]/Language_English[0]", + "entityName" : "Language_English", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_English[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 26.5, + "computedY" : 121.518, + "placementX" : 26.5, + "placementY" : 121.518, + "placementWidth" : 35.115, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.115, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_English[2]/Proficiency_English[1]", + "entityName" : "Proficiency_English", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_English[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 77.257, + "computedY" : 121.518, + "placementX" : 77.257, + "placementY" : 121.518, + "placementWidth" : 38.268, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.268, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_Spanish[3]", + "entityName" : "LanguageRow_Spanish", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 102.693, + "placementX" : 26.5, + "placementY" : 102.693, + "placementWidth" : 123.797, + "placementHeight" : 12.15, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 12.15, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_Spanish[3]/Language_Spanish[0]", + "entityName" : "Language_Spanish", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_Spanish[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 26.5, + "computedY" : 103.368, + "placementX" : 26.5, + "placementY" : 103.368, + "placementWidth" : 37.518, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 37.518, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_Spanish[3]/Proficiency_Spanish[1]", + "entityName" : "Proficiency_Spanish", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_Spanish[3]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 77.257, + "computedY" : 103.368, + "placementX" : 77.257, + "placementY" : 103.368, + "placementWidth" : 51.498, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.498, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_French[4]", + "entityName" : "LanguageRow_French", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 26.5, + "computedY" : 84.543, + "placementX" : 26.5, + "placementY" : 84.543, + "placementWidth" : 123.797, + "placementHeight" : 12.15, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.797, + "contentHeight" : 12.15, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_French[4]/Language_French[0]", + "entityName" : "Language_French", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_French[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 26.5, + "computedY" : 85.218, + "placementX" : 26.5, + "placementY" : 85.218, + "placementWidth" : 34.476, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.476, + "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" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_French[4]/Proficiency_French[1]", + "entityName" : "Proficiency_French", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Sidebar[0]/Languages[4]/LanguageRow_French[4]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 77.257, + "computedY" : 85.218, + "placementX" : 77.257, + "placementY" : 85.218, + "placementWidth" : 62.748, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.748, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]", + "entityName" : "Main", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 176.797, + "computedY" : 1.125, + "placementX" : 176.797, + "placementY" : 1.125, + "placementWidth" : 418.479, + "placementHeight" : 840.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 418.479, + "contentHeight" : 840.765, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 30.0, + "right" : 36.5, + "bottom" : 36.5, + "left" : 25.4 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]", + "entityName" : "Identity", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 202.197, + "computedY" : 737.69, + "placementX" : 202.197, + "placementY" : 737.69, + "placementWidth" : 255.99, + "placementHeight" : 74.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.99, + "contentHeight" : 74.2, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]/Name[0]", + "entityName" : "Name", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 202.197, + "computedY" : 775.89, + "placementX" : 202.197, + "placementY" : 775.89, + "placementWidth" : 255.99, + "placementHeight" : 36.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 255.99, + "contentHeight" : 36.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 6.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]/Role[1]", + "entityName" : "Role", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Identity[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 202.197, + "computedY" : 753.69, + "placementX" : 202.197, + "placementY" : 753.69, + "placementWidth" : 187.31, + "placementHeight" : 16.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 187.31, + "contentHeight" : 16.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 16.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Summary[1]", + "entityName" : "Summary", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 202.197, + "computedY" : 683.45, + "placementX" : 202.197, + "placementY" : 683.45, + "placementWidth" : 346.217, + "placementHeight" : 54.24, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.217, + "contentHeight" : 54.24, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Summary[1]/Summary[0]", + "entityName" : "Summary", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Summary[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 202.197, + "computedY" : 683.45, + "placementX" : 202.197, + "placementY" : 683.45, + "placementWidth" : 346.217, + "placementHeight" : 54.24, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.217, + "contentHeight" : 54.24, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/SectionRule[2]", + "entityName" : "SectionRule", + "entityKind" : "LineNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 202.197, + "computedY" : 666.45, + "placementX" : 202.197, + "placementY" : 666.45, + "placementWidth" : 356.579, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 356.579, + "contentHeight" : 1.0, + "margin" : { + "top" : 16.0, + "right" : 0.0, + "bottom" : 15.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]", + "entityName" : "Experience", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 202.197, + "computedY" : 258.175, + "placementX" : 202.197, + "placementY" : 258.175, + "placementWidth" : 356.579, + "placementHeight" : 393.275, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 356.579, + "contentHeight" : 393.275, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/SectionHeader_Experience[0]", + "entityName" : "SectionHeader_Experience", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 202.197, + "computedY" : 628.85, + "placementX" : 202.197, + "placementY" : 628.85, + "placementWidth" : 356.579, + "placementHeight" : 22.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 356.579, + "contentHeight" : 22.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/SectionHeader_Experience[0]/Badge_Experience[0]", + "entityName" : "Badge_Experience", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/SectionHeader_Experience[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 202.197, + "computedY" : 628.85, + "placementX" : 202.197, + "placementY" : 628.85, + "placementWidth" : 22.6, + "placementHeight" : 22.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.6, + "contentHeight" : 22.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/SectionHeader_Experience[0]/Badge_Experience[0]/BadgeGlyph_Experience[0]", + "entityName" : "BadgeGlyph_Experience", + "entityKind" : "ImageNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/SectionHeader_Experience[0]/Badge_Experience[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 207.847, + "computedY" : 634.5, + "placementX" : 207.847, + "placementY" : 634.5, + "placementWidth" : 11.3, + "placementHeight" : 11.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.3, + "contentHeight" : 11.3, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/SectionHeader_Experience[0]/SectionTitle_Experience[1]", + "entityName" : "SectionTitle_Experience", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/SectionHeader_Experience[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 232.097, + "computedY" : 632.95, + "placementX" : 232.097, + "placementY" : 632.95, + "placementWidth" : 89.402, + "placementHeight" : 14.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 89.402, + "contentHeight" : 14.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", + "entityName" : "ExperienceRail", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 213.097, + "computedY" : 327.937, + "placementX" : 213.097, + "placementY" : 327.937, + "placementWidth" : 345.679, + "placementHeight" : 285.55, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 345.679, + "contentHeight" : 285.55, + "margin" : { + "top" : 15.363, + "right" : 0.0, + "bottom" : 0.0, + "left" : 10.9 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]", + "entityName" : "EntryHead_MarketingManager", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 213.097, + "computedY" : 606.687, + "placementX" : 213.097, + "placementY" : 606.687, + "placementWidth" : 345.679, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 345.679, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]/Marker_MarketingManager[0]", + "entityName" : "Marker_MarketingManager", + "entityKind" : "EllipseNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 209.697, + "computedY" : 606.687, + "placementX" : 209.697, + "placementY" : 606.687, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]/JobTitle_MarketingManager[1]", + "entityName" : "JobTitle_MarketingManager", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 232.097, + "computedY" : 604.05, + "placementX" : 232.097, + "placementY" : 604.05, + "placementWidth" : 129.157, + "placementHeight" : 13.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 129.157, + "contentHeight" : 13.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]/JobDates_MarketingManager[2]", + "entityName" : "JobDates_MarketingManager", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingManager[0]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 213.097, + "computedY" : 605.362, + "placementX" : 213.097, + "placementY" : 605.362, + "placementWidth" : 345.679, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 345.679, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/Employer_MarketingManager[1]", + "entityName" : "Employer_MarketingManager", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 232.097, + "computedY" : 588.525, + "placementX" : 232.097, + "placementY" : 588.525, + "placementWidth" : 146.997, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.997, + "contentHeight" : 10.8, + "margin" : { + "top" : 7.363, + "right" : 0.0, + "bottom" : 7.0, + "left" : 19.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/Highlights_MarketingManager[2]", + "entityName" : "Highlights_MarketingManager", + "entityKind" : "ListNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 232.097, + "computedY" : 500.475, + "placementX" : 232.097, + "placementY" : 500.475, + "placementWidth" : 313.803, + "placementHeight" : 81.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.803, + "contentHeight" : 81.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 26.363, + "left" : 19.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]", + "entityName" : "EntryHead_MarketingSpecialist", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", + "childIndex" : 3, + "depth" : 6, + "layer" : 6, + "computedX" : 213.097, + "computedY" : 467.312, + "placementX" : 213.097, + "placementY" : 467.312, + "placementWidth" : 345.679, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 345.679, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]/Marker_MarketingSpecialist[0]", + "entityName" : "Marker_MarketingSpecialist", + "entityKind" : "EllipseNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 209.697, + "computedY" : 467.312, + "placementX" : 209.697, + "placementY" : 467.312, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]/JobTitle_MarketingSpecialist[1]", + "entityName" : "JobTitle_MarketingSpecialist", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 232.097, + "computedY" : 464.675, + "placementX" : 232.097, + "placementY" : 464.675, + "placementWidth" : 132.756, + "placementHeight" : 13.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.756, + "contentHeight" : 13.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]/JobDates_MarketingSpecialist[2]", + "entityName" : "JobDates_MarketingSpecialist", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingSpecialist[3]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 213.097, + "computedY" : 465.987, + "placementX" : 213.097, + "placementY" : 465.987, + "placementWidth" : 345.679, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 345.679, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/Employer_MarketingSpecialist[4]", + "entityName" : "Employer_MarketingSpecialist", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", + "childIndex" : 4, + "depth" : 6, + "layer" : 6, + "computedX" : 232.097, + "computedY" : 449.15, + "placementX" : 232.097, + "placementY" : 449.15, + "placementWidth" : 146.997, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.997, + "contentHeight" : 10.8, + "margin" : { + "top" : 7.363, + "right" : 0.0, + "bottom" : 7.0, + "left" : 19.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/Highlights_MarketingSpecialist[5]", + "entityName" : "Highlights_MarketingSpecialist", + "entityKind" : "ListNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", + "childIndex" : 5, + "depth" : 6, + "layer" : 6, + "computedX" : 232.097, + "computedY" : 361.1, + "placementX" : 232.097, + "placementY" : 361.1, + "placementWidth" : 324.765, + "placementHeight" : 81.05, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 324.765, + "contentHeight" : 81.05, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 26.363, + "left" : 19.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]", + "entityName" : "EntryHead_MarketingIntern", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]", + "childIndex" : 6, + "depth" : 6, + "layer" : 6, + "computedX" : 213.097, + "computedY" : 327.937, + "placementX" : 213.097, + "placementY" : 327.937, + "placementWidth" : 345.679, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 345.679, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]/Marker_MarketingIntern[0]", + "entityName" : "Marker_MarketingIntern", + "entityKind" : "EllipseNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 209.697, + "computedY" : 327.937, + "placementX" : 209.697, + "placementY" : 327.937, + "placementWidth" : 6.8, + "placementHeight" : 6.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.8, + "contentHeight" : 6.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]/JobTitle_MarketingIntern[1]", + "entityName" : "JobTitle_MarketingIntern", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 232.097, + "computedY" : 325.3, + "placementX" : 232.097, + "placementY" : 325.3, + "placementWidth" : 113.137, + "placementHeight" : 13.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 113.137, + "contentHeight" : 13.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]/JobDates_MarketingIntern[2]", + "entityName" : "JobDates_MarketingIntern", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceRail[1]/EntryHead_MarketingIntern[6]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 213.097, + "computedY" : 326.612, + "placementX" : 213.097, + "placementY" : 326.612, + "placementWidth" : 345.679, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 345.679, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceTail[2]", + "entityName" : "ExperienceTail", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 213.097, + "computedY" : 258.175, + "placementX" : 213.097, + "placementY" : 258.175, + "placementWidth" : 293.005, + "placementHeight" : 69.762, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 293.005, + "contentHeight" : 69.762, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 10.9 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceTail[2]/Employer_MarketingIntern[0]", + "entityName" : "Employer_MarketingIntern", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceTail[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 232.097, + "computedY" : 309.775, + "placementX" : 232.097, + "placementY" : 309.775, + "placementWidth" : 146.997, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.997, + "contentHeight" : 10.8, + "margin" : { + "top" : 7.363, + "right" : 0.0, + "bottom" : 7.0, + "left" : 19.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceTail[2]/Highlights_MarketingIntern[1]", + "entityName" : "Highlights_MarketingIntern", + "entityKind" : "ListNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Experience[3]/ExperienceTail[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 232.097, + "computedY" : 258.175, + "placementX" : 232.097, + "placementY" : 258.175, + "placementWidth" : 274.005, + "placementHeight" : 44.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 274.005, + "contentHeight" : 44.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 19.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/SectionRule[4]", + "entityName" : "SectionRule", + "entityKind" : "LineNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 202.197, + "computedY" : 241.175, + "placementX" : 202.197, + "placementY" : 241.175, + "placementWidth" : 356.579, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 356.579, + "contentHeight" : 1.0, + "margin" : { + "top" : 16.0, + "right" : 0.0, + "bottom" : 11.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]", + "entityName" : "Achievements", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 202.197, + "computedY" : 141.825, + "placementX" : 202.197, + "placementY" : 141.825, + "placementWidth" : 356.579, + "placementHeight" : 88.35, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 356.579, + "contentHeight" : 88.35, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]/SectionHeader_Achievements[0]", + "entityName" : "SectionHeader_Achievements", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 202.197, + "computedY" : 207.575, + "placementX" : 202.197, + "placementY" : 207.575, + "placementWidth" : 356.579, + "placementHeight" : 22.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 356.579, + "contentHeight" : 22.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]/SectionHeader_Achievements[0]/Badge_Achievements[0]", + "entityName" : "Badge_Achievements", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]/SectionHeader_Achievements[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 202.197, + "computedY" : 207.575, + "placementX" : 202.197, + "placementY" : 207.575, + "placementWidth" : 22.6, + "placementHeight" : 22.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.6, + "contentHeight" : 22.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]/SectionHeader_Achievements[0]/Badge_Achievements[0]/BadgeGlyph_Achievements[0]", + "entityName" : "BadgeGlyph_Achievements", + "entityKind" : "ImageNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]/SectionHeader_Achievements[0]/Badge_Achievements[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 207.847, + "computedY" : 213.225, + "placementX" : 207.847, + "placementY" : 213.225, + "placementWidth" : 11.3, + "placementHeight" : 11.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.3, + "contentHeight" : 11.3, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]/SectionHeader_Achievements[0]/SectionTitle_Achievements[1]", + "entityName" : "SectionTitle_Achievements", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]/SectionHeader_Achievements[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 232.097, + "computedY" : 211.675, + "placementX" : 232.097, + "placementY" : 211.675, + "placementWidth" : 114.332, + "placementHeight" : 14.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 114.332, + "contentHeight" : 14.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]/AchievementsList[1]", + "entityName" : "AchievementsList", + "entityKind" : "ListNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Achievements[5]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 232.097, + "computedY" : 141.825, + "placementX" : 232.097, + "placementY" : 141.825, + "placementWidth" : 315.126, + "placementHeight" : 54.75, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 315.126, + "contentHeight" : 54.75, + "margin" : { + "top" : 11.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 29.9 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/SectionRule[6]", + "entityName" : "SectionRule", + "entityKind" : "LineNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 202.197, + "computedY" : 124.825, + "placementX" : 202.197, + "placementY" : 124.825, + "placementWidth" : 356.579, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 356.579, + "contentHeight" : 1.0, + "margin" : { + "top" : 16.0, + "right" : 0.0, + "bottom" : 11.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]", + "entityName" : "Certifications", + "entityKind" : "SectionNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 202.197, + "computedY" : 37.625, + "placementX" : 202.197, + "placementY" : 37.625, + "placementWidth" : 356.579, + "placementHeight" : 76.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 356.579, + "contentHeight" : 76.2, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]/SectionHeader_Certifications[0]", + "entityName" : "SectionHeader_Certifications", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 202.197, + "computedY" : 91.225, + "placementX" : 202.197, + "placementY" : 91.225, + "placementWidth" : 356.579, + "placementHeight" : 22.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 356.579, + "contentHeight" : 22.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]/SectionHeader_Certifications[0]/Badge_Certifications[0]", + "entityName" : "Badge_Certifications", + "entityKind" : "ShapeContainerNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]/SectionHeader_Certifications[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 202.197, + "computedY" : 91.225, + "placementX" : 202.197, + "placementY" : 91.225, + "placementWidth" : 22.6, + "placementHeight" : 22.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.6, + "contentHeight" : 22.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]/SectionHeader_Certifications[0]/Badge_Certifications[0]/BadgeGlyph_Certifications[0]", + "entityName" : "BadgeGlyph_Certifications", + "entityKind" : "ImageNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]/SectionHeader_Certifications[0]/Badge_Certifications[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 207.847, + "computedY" : 96.875, + "placementX" : 207.847, + "placementY" : 96.875, + "placementWidth" : 11.3, + "placementHeight" : 11.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 11.3, + "contentHeight" : 11.3, + "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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]/SectionHeader_Certifications[0]/SectionTitle_Certifications[1]", + "entityName" : "SectionTitle_Certifications", + "entityKind" : "ParagraphNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]/SectionHeader_Certifications[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 232.097, + "computedY" : 95.325, + "placementX" : 232.097, + "placementY" : 95.325, + "placementWidth" : 122.041, + "placementHeight" : 14.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 122.041, + "contentHeight" : 14.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" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]/CertificationsList[1]", + "entityName" : "CertificationsList", + "entityKind" : "ListNode", + "parentPath" : "NavySidebarCv[0]/PageGrid[0]/Main[1]/Certifications[7]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 232.097, + "computedY" : 37.625, + "placementX" : 232.097, + "placementY" : 37.625, + "placementWidth" : 197.037, + "placementHeight" : 42.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 197.037, + "contentHeight" : 42.6, + "margin" : { + "top" : 11.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 29.9 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + } ] +} diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/navy_sidebar-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/navy_sidebar-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..efef4bc2801a77459f646fb399da4868504a0640 GIT binary patch literal 128892 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
    X#=NUC3d-41%JEGgDvBjepg{ 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 links) + Contact contact, List links, + Optional portrait) implements PartyIdentity { /** * Validates that {@code name} and {@code contact} are non-null, - * trims a null {@code jobTitle} to empty, and defensively copies - * {@code links} (null becomes an empty list). + * trims a null {@code jobTitle} to empty, defensively copies + * {@code links} (null becomes an empty list), and treats a null + * {@code portrait} as absent. */ public CvIdentity { Objects.requireNonNull(name, "name"); jobTitle = jobTitle == null ? "" : jobTitle.trim(); Objects.requireNonNull(contact, "contact"); links = links == null ? List.of() : List.copyOf(links); + portrait = portrait == null ? Optional.empty() : portrait; + } + + /** + * Backward-compatible constructor for callers that predate the + * optional portrait. The identity simply carries no photograph. + * + * @param name structured name with first / last required and an + * optional middle component + * @param jobTitle optional professional title; blank when absent + * @param contact phone / email / address — all three required + * @param links ordered list of optional outbound links; never null + */ + public CvIdentity(CvName name, String jobTitle, + Contact contact, List links) { + this(name, jobTitle, contact, links, Optional.empty()); } /** @@ -51,7 +73,7 @@ public record CvIdentity(CvName name, String jobTitle, * @param links ordered list of optional outbound links; never null */ public CvIdentity(CvName name, Contact contact, List links) { - this(name, "", contact, links); + this(name, "", contact, links, Optional.empty()); } /** @@ -91,6 +113,7 @@ public static final class Builder { private String jobTitle = ""; private Contact contact; private final List links = new ArrayList<>(); + private DocumentImageData portrait; private Builder() { } @@ -190,13 +213,29 @@ public Builder link(String label, String url) { return this; } + /** + * Sets the candidate's photograph. Only the presets with a place + * for one draw it; the rest ignore it, so a document carrying a + * portrait still renders through every preset in the family. + * + * @param value the image data; null leaves the identity without a + * photograph + * @return this builder for chaining + * @since 2.2.3 + */ + public Builder portrait(DocumentImageData value) { + this.portrait = value; + return this; + } + /** * Builds the immutable {@link CvIdentity}. * * @return the assembled identity block */ public CvIdentity build() { - return new CvIdentity(name, jobTitle, contact, links); + return new CvIdentity(name, jobTitle, contact, links, + Optional.ofNullable(portrait)); } } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java new file mode 100644 index 000000000..de980283a --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java @@ -0,0 +1,219 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageBackgroundFill; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvSection; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.MAIN_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.NAVY; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.PAGE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_WEIGHT; + +/** + * Navy Sidebar — a one-page A4 CV in two columns: a navy plate carrying a + * ringed portrait, the contact channels, the degrees, the skills and the + * languages, beside a white column carrying the name, the summary, the roles + * held on a timeline rail, the achievements and the certifications. + * + *

    The preset owns its page: it sets A4 with no margin and paints the navy + * plate as a page background, so the column reaches the foot of the sheet + * whatever the sidebar holds.

    + * + *

    One page, and what happens past it

    + * + *

    This sheet holds one page of content. The two columns are a single row, + * and a row is atomic — it cannot be split — so a CV longer than the sheet + * does not flow onto a second page: composing it raises + * {@code AtomicNodeTooLargeException}, naming the node and the height it + * needed. It draws no cap of its own, because a CV that quietly loses a job + * is worse than one that refuses to compose. {@link TimelineMinimal} is the + * preset in this package that splits its own columns across pages.

    + * + *

    How a document reaches its berth

    + * + *

    The columns are fixed, so the preset assigns each section a berth by + * title rather than reading {@link + * com.demcha.compose.document.templates.cv.data.Slot}: summary, experience, + * achievements and certifications to the main column; education, skills and + * languages to the sidebar. A section whose title matches no berth is not + * drawn, and a berth with no section takes its leading hairline with it.

    + * + *

    Each berth wants a particular shape. The summary, the achievements and + * the certifications are {@link ParagraphSection}s, and the two lists are + * drawn one bullet per line of the body. Experience and education are + * {@link EntriesSection}s. Languages are a {@link RowsSection}, because this + * design writes the proficiency out — "Native", "Advanced" — which a + * levelled skill could not carry back; its {@code RowStyle} is not read, + * since the rows are drawn to this design rather than to a family style.

    + * + *

    Three things are drawn in capitals whatever the document writes: the + * name, the role, and each degree. Headings are upper-cased too, and set + * with the tracking this design uses throughout.

    + * + *

    Content this sheet has no place for is not drawn: the summary block's + * own title, since it is the one block with no heading; a skill's level, + * since there are no meters here; and a {@code SkillGroup}'s category. A + * berth is filled by the first section that names it, so a second section + * naming the same berth is not drawn either. An education entry uses all + * four of its fields — the degree, the institution, the body as the campus + * line, and the years.

    + * + *

    The portrait

    + * + *

    The photograph comes from {@code CvIdentity.portrait()}. An identity + * without one draws the ring around an empty navy disc rather than leaving a + * hole in the column.

    + * + *

    The contact rows carry no link targets — the design draws the channels + * as text, and the port keeps that. The packaged set has one network mark, + * so every link the identity carries is drawn behind it whatever the network + * is; a document that lists more than one profile should say which is which + * in the label.

    + * + *

    A channel is one paragraph, the mark and the value sharing a line, so a + * value wider than the sidebar's text column wraps under the mark and leaves + * it alone on the first line. The column is about 124pt, which at this type + * size is a little over twenty characters — long addresses want shortening + * rather than a wider column.

    + * + *

    Fonts

    + * + *

    The sheet is set in Lato. The templates artifact does not carry it — + * register it on the session, or the engine substitutes and the measured + * geometry here no longer matches the type sitting in it.

    + * + *

    Usage:

    + *
    {@code
    + * DocumentTemplate template = NavySidebar.create();
    + * template.compose(session, cv);
    + * }
    + */ +public final class NavySidebar { + + /** Stable identifier of this preset. */ + public static final String ID = "navy-sidebar"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Navy Sidebar"; + + /** + * The margin this preset expects: none. It sets the page margin itself, + * because the navy plate runs to the paper edge. + */ + public static final double RECOMMENDED_MARGIN = 0.0; + + private static final List SUMMARY_KEYS = + List.of("summary", "profile", "about"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "employment", "work history", "career"); + private static final List ACHIEVEMENT_KEYS = + List.of("achievements", "achievement", "awards"); + private static final List CERTIFICATION_KEYS = + List.of("certifications", "certification", "licences", "licenses"); + private static final List EDUCATION_KEYS = + List.of("education", "qualifications"); + private static final List SKILL_KEYS = + List.of("skills", "expertise", "competencies"); + private static final List LANGUAGE_KEYS = + List.of("languages", "language"); + + private NavySidebar() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link CvDocument} onto its own page + */ + 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, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + List sections = doc.sections(); + + document.pageSize(PAGE) + .margin(DocumentInsets.zero()) + // The plate is a page background rather than a section + // fill: a section is only as tall as what it holds, and + // the navy column has to reach the foot of the sheet + // whatever the sidebar carries. + .pageBackgrounds(List.of( + PageBackgroundFill.leftColumn(SIDEBAR_WEIGHT, NAVY))); + + EntriesSection education = berth(sections, EntriesSection.class, EDUCATION_KEYS); + SkillsSection skills = berth(sections, SkillsSection.class, SKILL_KEYS); + RowsSection languages = berth(sections, RowsSection.class, LANGUAGE_KEYS); + ParagraphSection summary = berth(sections, ParagraphSection.class, SUMMARY_KEYS); + EntriesSection experience = berth(sections, EntriesSection.class, EXPERIENCE_KEYS); + ParagraphSection achievements = + berth(sections, ParagraphSection.class, ACHIEVEMENT_KEYS); + ParagraphSection certifications = + berth(sections, ParagraphSection.class, CERTIFICATION_KEYS); + + document.pageFlow(page -> page + .name("NavySidebarCv") + .padding(DocumentInsets.zero()) + // spacing(0): every gap in this design is authored on the + // node that owns it, so a flow gap would add to all of + // them. + .spacing(0) + .addRow("PageGrid", row -> { + row.spacing(0); + row.weights(SIDEBAR_WEIGHT, MAIN_WEIGHT); + row.addSection("Sidebar", aside -> + NavySidebarAside.compose(aside, doc.identity(), + education, skills, languages)); + row.addSection("Main", main -> + NavySidebarMain.compose(main, doc.identity(), + summary, experience, achievements, certifications)); + })); + } + + /** + * The first section of the wanted shape whose title names this berth, + * or {@code null} when the document fills no such berth. + */ + private static T berth(List sections, + Class type, + List keys) { + for (CvSection section : sections) { + if (!type.isInstance(section)) { + continue; + } + for (String key : keys) { + if (SectionLookup.titleContains(section.title(), key)) { + return type.cast(section); + } + } + } + return null; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java new file mode 100644 index 000000000..face6f2b9 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java @@ -0,0 +1,295 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.EllipseBuilder; +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.image.DocumentImageData; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.InlineImageAlignment; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvRow; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.AVATAR_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.AVATAR_RING; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.AVATAR_RING_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.AVATAR_TO_HEADING; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.BULLET_LEADING; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.CONTACT_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.EDU_DEGREE_GAP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.EDU_ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.EDU_LINE_GAP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.LANGUAGE_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.LANGUAGE_VALUE_X; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.LIST_BULLET_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.NAVY; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.PAGE_MARGIN; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_BAND_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_INNER_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_PAD_X; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_STRONG; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_TEXT; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SKILL_ITEM_GAP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.sidebarBody; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.style; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarWidgets.sidebarHeading; + +/** + * The navy left column: the ringed portrait, the contact channels, the + * degrees, the skills and the languages. + */ +final class NavySidebarAside { + + /** + * The contact heading. It is not read from the document because the + * channels are not a section — they come off the identity, which carries + * no title of its own. + */ + static final String CONTACT_HEADING = "Contact"; + + private NavySidebarAside() { + } + + static void compose(SectionBuilder section, + CvIdentity identity, + EntriesSection education, + SkillsSection skills, + RowsSection languages) { + section.spacing(0) + .padding(new DocumentInsets( + SIDEBAR_PAD_TOP, SIDEBAR_PAD_X, PAGE_MARGIN, SIDEBAR_PAD_X)); + section.addSection("Avatar", inner -> { + inner.padding(new DocumentInsets(0, 0, AVATAR_TO_HEADING, 0)); + renderPortrait(inner, identity); + }); + section.addSection("Contact", inner -> renderContact(inner, identity)); + if (SectionLookup.hasContent(education)) { + section.addSection("Education", inner -> renderEducation(inner, education)); + } + if (SectionLookup.hasContent(skills)) { + section.addSection("Skills", inner -> renderSkills(inner, skills)); + } + if (SectionLookup.hasContent(languages)) { + section.addSection("Languages", inner -> renderLanguages(inner, languages)); + } + } + + // -- portrait -------------------------------------------------------- + + /** + * The photograph, clipped to a disc inside a pale ring. An identity + * carrying no portrait draws the ring around a navy disc, which is the + * same shape with nothing in it rather than a hole in the column. + */ + private static void renderPortrait(SectionBuilder section, CvIdentity identity) { + DocumentNode circle = identity.portrait() + .map(NavySidebarAside::clippedPhoto) + .orElseGet(NavySidebarAside::emptyDisc); + section.addContainer(ring -> ring + .name("AvatarRing") + .circle(AVATAR_DIAMETER + 2.0 * AVATAR_RING_WIDTH) + .fillColor(AVATAR_RING) + .center(circle)); + } + + private static DocumentNode clippedPhoto(DocumentImageData image) { + return new ShapeContainerBuilder() + .name("AvatarCircle") + .circle(AVATAR_DIAMETER) + .clipPolicy(ClipPolicy.CLIP_PATH) + .fillColor(NAVY) + // size(), not fitToBounds(): the disc clips, so the photo is + // drawn to fill it and whatever falls outside is cut away. + .center(new ImageBuilder() + .name("AvatarPhoto") + .source(image) + .size(AVATAR_DIAMETER, AVATAR_DIAMETER) + .build()) + .build(); + } + + /** + * The disc with no photograph in it. It is an ellipse rather than the + * same clipping container holding nothing, because a shape container + * with no layer is rejected — the clip needs something to cut. + */ + private static DocumentNode emptyDisc() { + return new EllipseBuilder() + .name("AvatarCircle") + .circle(AVATAR_DIAMETER) + .fillColor(NAVY) + .build(); + } + + // -- contact --------------------------------------------------------- + + /** + * The contact channels, in the order the design sets them: phone, email, + * address, then whatever links the identity carries. + * + *

    The rows carry no link targets. The design draws them as text, and + * the promotion keeps that — a clickable channel would be a change to + * the sheet rather than a port of it.

    + */ + private static void renderContact(SectionBuilder section, CvIdentity identity) { + sidebarHeading(section, CONTACT_HEADING, true); + for (Channel channel : channels(identity)) { + renderChannel(section, channel); + } + } + + private static void renderChannel(SectionBuilder section, Channel channel) { + double size = NavySidebarIcons.size(channel.token()); + section.addParagraph(p -> p + .name("Contact_" + compact(channel.token())) + .textStyle(sidebarBody()) + .inlineImage(NavySidebarIcons.image(channel.token()), size, size, + InlineImageAlignment.CENTER, 0.0, null) + // The gap between the mark and the value is set as spaces + // rather than an indent: the row is one paragraph, so the + // mark and the text share a baseline and wrap together. + .inlineText(" " + channel.value(), sidebarBody()) + .margin(new DocumentInsets(0, 0, CONTACT_ROW_GAP, 0))); + } + + private static List channels(CvIdentity identity) { + List channels = new ArrayList<>(); + channels.add(new Channel(NavySidebarIcons.PHONE, identity.contact().phone())); + channels.add(new Channel(NavySidebarIcons.EMAIL, identity.contact().email())); + channels.add(new Channel(NavySidebarIcons.LOCATION, identity.contact().address())); + for (Link link : identity.links()) { + channels.add(new Channel(NavySidebarIcons.LINKEDIN, link.label())); + } + return channels; + } + + /** + * A contact row. The packaged set has one network mark, so every link + * takes it — this design ships no globe. + */ + private record Channel(String token, String value) { + } + + // -- education ------------------------------------------------------- + + /** + * Each degree as four lines: the qualification in capitals, the + * institution, where it was, and the years. + */ + private static void renderEducation(SectionBuilder section, EntriesSection education) { + sidebarHeading(section, education.title(), false); + for (CvEntry entry : education.entries()) { + section.addParagraph(p -> p + .name("Degree_" + compact(entry.title())) + .text(entry.title().toUpperCase(Locale.ROOT)) + .textStyle(style(BODY_SIZE, SIDEBAR_STRONG, DocumentTextDecoration.BOLD)) + .lineSpacing(BULLET_LEADING) + .margin(new DocumentInsets(0, 0, EDU_DEGREE_GAP, 0))); + line(section, "Institution_" + compact(entry.title()), entry.subtitle(), + EDU_LINE_GAP); + line(section, "Campus_" + compact(entry.title()), entry.body(), EDU_LINE_GAP); + line(section, "Years_" + compact(entry.title()), entry.date(), EDU_ENTRY_GAP); + } + } + + private static void line(SectionBuilder section, String name, String text, double gapBelow) { + section.addParagraph(p -> p + .name(name) + .text(text) + .textStyle(sidebarBody()) + .margin(new DocumentInsets(0, 0, gapBelow, 0))); + } + + // -- skills ---------------------------------------------------------- + + /** + * The skills as a plain bullet list. This design draws no meters, so a + * level the document carries is not read here. + */ + private static void renderSkills(SectionBuilder section, SkillsSection skills) { + sidebarHeading(section, skills.title(), false); + section.addList(list -> list + .name("SkillsList") + .bullet() + .items(names(skills)) + .textStyle(sidebarBody()) + .lineSpacing(BULLET_LEADING) + .itemSpacing(SKILL_ITEM_GAP) + .margin(DocumentInsets.zero())); + } + + /** + * The section's skills as one list of names. This design sets no group + * headings, so a document that groups its skills gets them in the order + * the groups were declared. + */ + private static List names(SkillsSection section) { + List out = new ArrayList<>(); + for (SkillGroup group : section.groups()) { + for (CvSkill skill : group.entries()) { + out.add(skill.name()); + } + } + return out; + } + + // -- languages ------------------------------------------------------- + + /** + * Language rows: a dotted label at the left, the proficiency anchored at + * a fixed offset behind a dash so the second column lines up whatever + * the names measure. + * + *

    The rows are {@link CvRow}s rather than levelled skills because + * this design writes the proficiency out — "Native", "Advanced" — and a + * number could not carry those words back.

    + */ + private static void renderLanguages(SectionBuilder section, RowsSection languages) { + sidebarHeading(section, languages.title(), false); + // The row gap is section spacing rather than a margin on each band: + // the bands are shape containers, and a container's margin would sit + // inside the clip rather than between the rows. + section.spacing(LANGUAGE_ROW_GAP); + for (CvRow row : languages.rows()) { + DocumentNode label = new ParagraphBuilder() + .name("Language_" + compact(row.label())) + .textStyle(sidebarBody()) + .dot(LIST_BULLET_DIAMETER, SIDEBAR_TEXT) + .inlineText(" " + row.label(), sidebarBody()) + .margin(DocumentInsets.zero()) + .build(); + DocumentNode value = new ParagraphBuilder() + .name("Proficiency_" + compact(row.label())) + .text("– " + row.body()) + .textStyle(sidebarBody()) + .margin(DocumentInsets.zero()) + .build(); + section.addContainer(band -> band + .name("LanguageRow_" + compact(row.label())) + .rectangle(SIDEBAR_INNER_WIDTH, SIDEBAR_BAND_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(label) + .position(value, LANGUAGE_VALUE_X, 0, LayerAlign.CENTER_LEFT)); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarIcons.java new file mode 100644 index 000000000..eb0888509 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarIcons.java @@ -0,0 +1,85 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.image.DocumentImageData; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Navy Sidebar CV marks — the four contact glyphs + * in the sidebar and the three section badges in the main column. + * + *

    They ship inside the templates artifact under + * {@code templates/cv/navy-sidebar/icons/} as PNG, each at the point size the + * design draws it at: a pin needs more height than an envelope to read as the + * same weight, and the badge glyphs are set larger than the contact ones + * because they sit inside a filled disc.

    + */ +final class NavySidebarIcons { + + static final String PHONE = "phone"; + static final String EMAIL = "email"; + static final String LOCATION = "location"; + static final String LINKEDIN = "linkedin"; + static final String BRIEFCASE = "briefcase"; + static final String TROPHY = "trophy"; + static final String CERTIFICATE = "certificate"; + + private static final String ICON_ROOT = "/templates/cv/navy-sidebar/icons/"; + + private static final Map SIZES = Map.of( + PHONE, 10.0, + EMAIL, 10.0, + LOCATION, 11.0, + LINKEDIN, 10.5, + BRIEFCASE, 11.3, + TROPHY, 11.3, + CERTIFICATE, 11.3); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private NavySidebarIcons() { + } + + /** + * The drawn size of one mark. + * + * @param token one of the constants on this class + * @return the size in points + * @throws IllegalArgumentException when the token names no packaged mark + */ + static double size(String token) { + Double size = SIZES.get(token); + if (size == null) { + throw new IllegalArgumentException("Unknown navy sidebar CV icon token: " + token); + } + return size; + } + + /** + * Reads one mark, caching the decoded image per token so a CV that + * repeats a channel reads the file once per JVM. + * + * @param token one of the constants on this class + * @return the image data + */ + static DocumentImageData image(String token) { + return CACHE.computeIfAbsent(token, NavySidebarIcons::read); + } + + private static DocumentImageData read(String token) { + String resourcePath = ICON_ROOT + token + ".png"; + try (InputStream input = NavySidebarIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing navy sidebar CV icon: " + resourcePath); + } + return DocumentImageData.fromBytes(input.readAllBytes()); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read navy sidebar CV icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java new file mode 100644 index 000000000..2b266fbcd --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarMain.java @@ -0,0 +1,276 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.EllipseBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.text.MarkdownInline; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.BODY; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.BODY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.BULLET_ITEM_GAP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.BULLET_LEADING; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.DATE_OVERFLOW; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.ENTRY_EMPLOYER_TO_BULLETS; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.ENTRY_HEAD_BAND_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.ENTRY_TEXT_INSET; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.ENTRY_TITLE_TO_EMPLOYER; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.ENTRY_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.HEADER_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.JOB_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.MAIN_CONTENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.MAIN_PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.MAIN_RULE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.MAIN_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.MARKER_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.NAME_SIZE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.NAME_TO_ROLE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.NAVY; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.PAGE_MARGIN; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.RAIL; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.RAIL_MARGIN_LEFT; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.RAIL_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.ROLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.ROLE_TO_SUMMARY; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.RULE_GAP_ABOVE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.RULE_GAP_BELOW; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SUMMARY_RULE_GAP_BELOW; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SUMMARY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.TITLE_OVERFLOW; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.TROUGH; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.body; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.style; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.tracked; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarWidgets.indentedList; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarWidgets.sectionHeader; + +/** + * The white right column: the name and role, the summary, then the roles + * held on a timeline rail, the achievements and the certifications, each + * opened by a hairline and a badged heading. + */ +final class NavySidebarMain { + + private NavySidebarMain() { + } + + static void compose(SectionBuilder section, + CvIdentity identity, + ParagraphSection summary, + EntriesSection experience, + ParagraphSection achievements, + ParagraphSection certifications) { + section.spacing(0) + .padding(new DocumentInsets(MAIN_PAD_TOP, PAGE_MARGIN, PAGE_MARGIN, TROUGH)); + section.addSection("Identity", inner -> renderIdentity(inner, identity)); + if (SectionLookup.hasContent(summary)) { + section.addSection("Summary", inner -> renderSummary(inner, summary)); + } + if (SectionLookup.hasContent(experience)) { + rule(section, SUMMARY_RULE_GAP_BELOW); + section.addSection("Experience", inner -> renderExperience(inner, experience)); + } + if (SectionLookup.hasContent(achievements)) { + rule(section, RULE_GAP_BELOW); + section.addSection("Achievements", inner -> + renderBulletBlock(inner, NavySidebarIcons.TROPHY, achievements, + "AchievementsList")); + } + if (SectionLookup.hasContent(certifications)) { + rule(section, RULE_GAP_BELOW); + section.addSection("Certifications", inner -> + renderBulletBlock(inner, NavySidebarIcons.CERTIFICATE, certifications, + "CertificationsList")); + } + } + + /** + * The hairline that opens a block. It belongs to the block below it, so + * a block the document does not fill takes its rule with it instead of + * leaving one hanging. The gap below is authored per rule: the one that + * opens the experience block is set four points wider than the two that + * follow it. + * + * @param section the main column + * @param gapBelow the gap between the rule and the block it opens + */ + private static void rule(SectionBuilder section, double gapBelow) { + section.addLine(line -> line + .name("SectionRule") + .horizontal(MAIN_CONTENT_WIDTH) + .thickness(MAIN_RULE_THICKNESS) + .color(MAIN_RULE) + .margin(new DocumentInsets(RULE_GAP_ABOVE, 0, gapBelow, 0))); + } + + // -- identity -------------------------------------------------------- + + private static void renderIdentity(SectionBuilder section, CvIdentity identity) { + DocumentTextStyle nameStyle = style(NAME_SIZE, INK, DocumentTextDecoration.DEFAULT); + section.addParagraph(p -> p + .name("Name") + .text(identity.name().full().toUpperCase(Locale.ROOT)) + .textStyle(nameStyle) + .align(TextAlign.LEFT) + .margin(new DocumentInsets(0, 0, NAME_TO_ROLE, 0))); + + DocumentTextStyle roleStyle = style(ROLE_SIZE, ACCENT, DocumentTextDecoration.BOLD); + section.addParagraph(p -> { + p.name("Role"); + p.textStyle(roleStyle); + tracked(p, identity.jobTitle().toUpperCase(Locale.ROOT), roleStyle); + p.align(TextAlign.LEFT); + p.margin(new DocumentInsets(0, 0, ROLE_TO_SUMMARY, 0)); + }); + } + + // -- summary --------------------------------------------------------- + + /** + * The opening paragraph. It is the one block this design gives no + * heading, so the section's title is not drawn. + */ + private static void renderSummary(SectionBuilder section, ParagraphSection summary) { + section.addParagraph(p -> p + .name("Summary") + .text(summary.body()) + .textStyle(style(SUMMARY_SIZE, BODY, DocumentTextDecoration.DEFAULT)) + .lineSpacing(BODY_LEADING) + .margin(DocumentInsets.zero())); + } + + // -- experience ------------------------------------------------------ + + /** + * The roles held, strung on a vertical rail with a filled marker at each + * one. + * + *

    The rail is the section's left accent, which runs the full height + * of what the section holds — so the last role's body is composed in a + * second section outside the rail, and the line stops at the last + * marker instead of running past it to the foot of the block.

    + */ + private static void renderExperience(SectionBuilder section, EntriesSection experience) { + sectionHeader(section, NavySidebarIcons.BRIEFCASE, experience.title()); + List entries = experience.entries(); + int last = entries.size() - 1; + section.addSection("ExperienceRail", rail -> { + rail.spacing(0); + // The rail starts where the first marker's band does, which is + // half a title's overhang below the heading. + rail.margin(new DocumentInsets( + HEADER_TO_BODY + TITLE_OVERFLOW, 0, 0, RAIL_MARGIN_LEFT)); + rail.accentLeft(RAIL, RAIL_WIDTH); + for (int i = 0; i < entries.size(); i++) { + renderEntryHead(rail, entries.get(i)); + if (i < last) { + renderEntryBody(rail, entries.get(i), ENTRY_GAP + TITLE_OVERFLOW); + } + } + }); + section.addSection("ExperienceTail", tail -> { + tail.spacing(0); + tail.margin(new DocumentInsets(0, 0, 0, RAIL_MARGIN_LEFT)); + renderEntryBody(tail, entries.get(last), 0); + }); + } + + /** + * The marker, the position in capitals and the dates, all on the + * marker's axis: the band is as tall as the marker, and the two pieces + * of type are pulled up by half their own overhang to centre on it. + */ + private static void renderEntryHead(SectionBuilder rail, CvEntry entry) { + DocumentNode marker = new EllipseBuilder() + .name("Marker_" + compact(entry.title())) + .circle(MARKER_DIAMETER) + .fillColor(NAVY) + .build(); + DocumentNode title = new ParagraphBuilder() + .name("JobTitle_" + compact(entry.title())) + .text(entry.title().toUpperCase(Locale.ROOT)) + .textStyle(style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) + .margin(DocumentInsets.zero()) + .build(); + DocumentNode dates = new ParagraphBuilder() + .name("JobDates_" + compact(entry.title())) + .text(entry.date()) + .textStyle(body()) + .align(TextAlign.RIGHT) + .margin(DocumentInsets.zero()) + .build(); + rail.addContainer(head -> head + .name("EntryHead_" + compact(entry.title())) + .rectangle(ENTRY_WIDTH, ENTRY_HEAD_BAND_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .position(marker, -MARKER_DIAMETER / 2.0, 0, LayerAlign.CENTER_LEFT) + .position(title, ENTRY_TEXT_INSET, -TITLE_OVERFLOW, LayerAlign.CENTER_LEFT) + .position(dates, 0, -DATE_OVERFLOW, LayerAlign.CENTER_RIGHT)); + } + + /** The employer in accent, then one bullet per line of the entry body. */ + private static void renderEntryBody(SectionBuilder rail, CvEntry entry, double gapBelow) { + rail.addParagraph(p -> p + .name("Employer_" + compact(entry.title())) + .text(entry.subtitle()) + .textStyle(style(BODY_SIZE, ACCENT, DocumentTextDecoration.DEFAULT)) + .margin(new DocumentInsets( + ENTRY_TITLE_TO_EMPLOYER + TITLE_OVERFLOW, 0, + ENTRY_EMPLOYER_TO_BULLETS, ENTRY_TEXT_INSET))); + List highlights = lines(entry.body()); + if (!highlights.isEmpty()) { + rail.addList(list -> list + .name("Highlights_" + compact(entry.title())) + .bullet() + .items(highlights) + .textStyle(body()) + .lineSpacing(BULLET_LEADING) + .itemSpacing(BULLET_ITEM_GAP) + .margin(new DocumentInsets(0, 0, gapBelow, ENTRY_TEXT_INSET))); + } + } + + // -- closing blocks -------------------------------------------------- + + /** A badged heading over an indented bullet list, one bullet per line. */ + private static void renderBulletBlock(SectionBuilder section, String iconToken, + ParagraphSection block, String listName) { + sectionHeader(section, iconToken, block.title()); + indentedList(section, listName, lines(block.body())); + } + + /** + * One bullet per non-blank line — the family's way of carrying a list in + * a field the model types as a single string. + */ + private static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split("\\R")) { + String clean = MarkdownInline.plainText(line).trim(); + if (!clean.isBlank()) { + out.add(clean); + } + } + return out; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarStyles.java new file mode 100644 index 000000000..0584c1372 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarStyles.java @@ -0,0 +1,192 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.dsl.ParagraphBuilder; +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.document.templates.core.text.TextStyles; +import com.demcha.compose.font.FontName; + +/** + * The measured geometry, palette and type scale of the Navy Sidebar CV. + * + *

    The bands in this design are sized from the type they hold rather than + * chosen: an entry head is as tall as its marker, and the title and the dates + * set in it are taller than that, so each is pushed up by half the difference + * to sit on the marker's axis. Those overflows are computed here so the two + * ends of the band cannot drift apart.

    + */ +final class NavySidebarStyles { + + private NavySidebarStyles() { + } + + // -- page ------------------------------------------------------------ + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + static final double PAGE_WIDTH = PAGE.width(); + + static final double SIDEBAR_WEIGHT = 0.297; + static final double MAIN_WEIGHT = 1.0 - SIDEBAR_WEIGHT; + + static final double SIDEBAR_PAD_X = 26.5; + static final double PAGE_MARGIN = 36.5; + + /** The gutter between the navy plate and the main column's text. */ + static final double TROUGH = 25.4; + + static final double SIDEBAR_WIDTH = PAGE_WIDTH * SIDEBAR_WEIGHT; + static final double MAIN_WIDTH = PAGE_WIDTH * MAIN_WEIGHT; + static final double SIDEBAR_INNER_WIDTH = SIDEBAR_WIDTH - 2.0 * SIDEBAR_PAD_X; + static final double MAIN_CONTENT_WIDTH = MAIN_WIDTH - TROUGH - PAGE_MARGIN; + + // -- ornaments ------------------------------------------------------- + + /** The portrait fills the sidebar's text column exactly. */ + static final double AVATAR_DIAMETER = SIDEBAR_INNER_WIDTH; + static final double AVATAR_RING_WIDTH = 1.6; + + static final double BADGE_DIAMETER = 22.6; + static final double BADGE_GAP = 7.3; + static final double SECTION_INDENT = BADGE_DIAMETER + BADGE_GAP; + + static final double MARKER_DIAMETER = 6.8; + static final double RAIL_WIDTH = 0.8; + static final double RAIL_X = BADGE_DIAMETER / 2.0; + static final double RAIL_MARGIN_LEFT = RAIL_X - RAIL_WIDTH / 2.0; + static final double ENTRY_TEXT_INSET = SECTION_INDENT - RAIL_MARGIN_LEFT; + static final double ENTRY_WIDTH = MAIN_CONTENT_WIDTH - RAIL_MARGIN_LEFT; + + static final double SIDEBAR_RULE_THICKNESS = 0.7; + static final double MAIN_RULE_THICKNESS = 0.7; + static final double LIST_BULLET_DIAMETER = 2.4; + + // -- type ------------------------------------------------------------ + + static final FontName HEADING_FONT = FontName.LATO; + static final FontName BODY_FONT = FontName.LATO; + + static final double BODY_SIZE = 9.0; + static final double SUMMARY_SIZE = 10.5; + static final double NAME_SIZE = 30.0; + static final double ROLE_SIZE = 13.5; + static final double HEADING_SIZE = 12.0; + static final double JOB_TITLE_SIZE = 11.5; + static final double BODY_LEADING = 1.28; + static final double BULLET_LEADING = 1.35; + + static final double TRACKING_EM = 0.17; + + /** + * The advance of a space in Lato, as a fraction of type size. + * {@link #tracked} sizes its spacer runs against this. + */ + static final double SPACE_ADVANCE_EM = 0.25; + + // -- bands ----------------------------------------------------------- + + static final double HEADING_BAND_HEIGHT = BADGE_DIAMETER; + static final double JOB_TITLE_BAND_HEIGHT = JOB_TITLE_SIZE * BULLET_LEADING; + static final double ENTRY_HEAD_BAND_HEIGHT = MARKER_DIAMETER; + static final double DATE_BAND_HEIGHT = BODY_SIZE * BULLET_LEADING; + static final double SIDEBAR_BAND_HEIGHT = BODY_SIZE * BULLET_LEADING; + + /** How far the job title rises above the marker band it is set on. */ + static final double TITLE_OVERFLOW = + (JOB_TITLE_BAND_HEIGHT - ENTRY_HEAD_BAND_HEIGHT) / 2.0; + + /** The same, for the dates set at the other end of that band. */ + static final double DATE_OVERFLOW = + (DATE_BAND_HEIGHT - ENTRY_HEAD_BAND_HEIGHT) / 2.0; + + static final double LANGUAGE_LABEL_WEIGHT = 0.41; + static final double LANGUAGE_VALUE_X = SIDEBAR_INNER_WIDTH * LANGUAGE_LABEL_WEIGHT; + + // -- vertical rhythm ------------------------------------------------- + + static final double SIDEBAR_PAD_TOP = 25.0; + static final double AVATAR_TO_HEADING = 22.0; + static final double SIDEBAR_BLOCK_GAP = 18.0; + static final double HEADING_TO_RULE = 7.0; + static final double RULE_TO_BODY = 10.0; + static final double CONTACT_ROW_GAP = 10.5; + static final double EDU_DEGREE_GAP = 4.0; + static final double EDU_LINE_GAP = 1.5; + static final double EDU_ENTRY_GAP = 13.0; + static final double SKILL_ITEM_GAP = 2.4; + static final double LANGUAGE_ROW_GAP = 6.0; + + static final double MAIN_PAD_TOP = 30.0; + static final double NAME_TO_ROLE = 6.0; + static final double ROLE_TO_SUMMARY = 16.0; + static final double RULE_GAP_ABOVE = 16.0; + static final double RULE_GAP_BELOW = 11.0; + static final double SUMMARY_RULE_GAP_BELOW = 15.0; + static final double HEADER_TO_BODY = 11.0; + static final double ENTRY_TITLE_TO_EMPLOYER = 3.0; + static final double ENTRY_EMPLOYER_TO_BULLETS = 7.0; + static final double ENTRY_GAP = 22.0; + static final double BULLET_ITEM_GAP = 6.1; + static final double PLAIN_ITEM_GAP = 5.1; + + // -- palette --------------------------------------------------------- + + static final DocumentColor NAVY = DocumentColor.rgb(32, 44, 59); + static final DocumentColor INK = DocumentColor.rgb(30, 40, 51); + static final DocumentColor ACCENT = DocumentColor.rgb(43, 84, 149); + static final DocumentColor BODY = DocumentColor.rgb(83, 87, 92); + static final DocumentColor SIDEBAR_STRONG = DocumentColor.WHITE; + static final DocumentColor SIDEBAR_TEXT = DocumentColor.rgb(233, 235, 238); + static final DocumentColor SIDEBAR_RULE = DocumentColor.rgba(255, 255, 255, 115); + static final DocumentColor MAIN_RULE = DocumentColor.rgb(228, 230, 233); + static final DocumentColor RAIL = DocumentColor.rgb(110, 116, 123); + static final DocumentColor AVATAR_RING = DocumentColor.rgb(226, 228, 231); + + // -- styles ---------------------------------------------------------- + + static DocumentTextStyle body() { + return style(BODY_SIZE, BODY, DocumentTextDecoration.DEFAULT); + } + + static DocumentTextStyle sidebarBody() { + return style(BODY_SIZE, SIDEBAR_TEXT, DocumentTextDecoration.DEFAULT); + } + + /** + * Both faces are Lato, so the weight is what the decoration selects; the + * split is kept because the design names a heading face and a body face, + * and a document set in two families would want it back. + */ + static DocumentTextStyle style(double size, DocumentColor color, + DocumentTextDecoration decoration) { + boolean bold = decoration == DocumentTextDecoration.BOLD + || decoration == DocumentTextDecoration.BOLD_ITALIC; + return TextStyles.of(bold ? HEADING_FONT : BODY_FONT, size, decoration, color); + } + + /** + * Writes text letter by letter with a sized space between each pair, + * which is how this design gets its letter-spacing: a text style carries + * no tracking, so the gap is a run of its own whose type size is chosen + * to advance by {@link #TRACKING_EM} of the surrounding size. + * + * @param paragraph the paragraph being built + * @param text the text to space out + * @param style the style of the letters + */ + static void tracked(ParagraphBuilder paragraph, String text, DocumentTextStyle style) { + DocumentTextStyle spacer = style.withSize(TRACKING_EM * style.size() / SPACE_ADVANCE_EM); + for (int i = 0; i < text.length(); i++) { + paragraph.inlineText(String.valueOf(text.charAt(i)), style); + if (i < text.length() - 1) { + paragraph.inlineText(" ", spacer); + } + } + } + + /** Strips a title down to the letters and digits a node name can carry. */ + static String compact(String text) { + return text == null ? "" : text.replaceAll("[^A-Za-z0-9]", ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarWidgets.java new file mode 100644 index 000000000..aa0b78c5f --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarWidgets.java @@ -0,0 +1,133 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +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.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; + +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.BADGE_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.BULLET_LEADING; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.HEADER_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.HEADING_BAND_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.HEADING_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.MAIN_CONTENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.NAVY; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.PLAIN_ITEM_GAP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.RULE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SECTION_INDENT; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_BLOCK_GAP; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_INNER_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_RULE; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.SIDEBAR_STRONG; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.body; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.style; +import static com.demcha.compose.document.templates.cv.presets.NavySidebarStyles.tracked; + +/** + * The two headings this design uses — tracked capitals over a hairline in + * the navy sidebar, tracked capitals beside a filled badge in the main + * column — and the indented bullet list the closing sections are set in. + */ +final class NavySidebarWidgets { + + private NavySidebarWidgets() { + } + + /** + * A sidebar heading: tracked white capitals over a translucent rule the + * width of the sidebar's text column. + * + * @param section the sidebar column + * @param title the heading text, drawn in capitals + * @param first true for the block directly under the portrait, which + * takes no gap above + */ + static void sidebarHeading(SectionBuilder section, String title, boolean first) { + DocumentTextStyle headingStyle = + style(HEADING_SIZE, SIDEBAR_STRONG, DocumentTextDecoration.BOLD); + section.addParagraph(p -> { + p.name("SidebarHeading_" + compact(title)); + p.textStyle(headingStyle); + tracked(p, title.toUpperCase(Locale.ROOT), headingStyle); + p.margin(new DocumentInsets(first ? 0 : SIDEBAR_BLOCK_GAP, 0, HEADING_TO_RULE, 0)); + }); + section.addLine(line -> line + .name("SidebarRule_" + compact(title)) + .horizontal(SIDEBAR_INNER_WIDTH) + .thickness(SIDEBAR_RULE_THICKNESS) + .color(SIDEBAR_RULE) + .margin(new DocumentInsets(0, 0, RULE_TO_BODY, 0))); + } + + /** + * A main-column heading: the section's mark inside a navy disc, with + * tracked capitals on the disc's axis. + * + *

    It is a container rather than a row because the badge and the words + * are centred against each other; a row of sections would top-align + * them.

    + * + * @param section the main column + * @param iconToken the packaged mark for this section + * @param title the heading text, drawn in capitals + */ + static void sectionHeader(SectionBuilder section, String iconToken, String title) { + DocumentNode badge = new ShapeContainerBuilder() + .name("Badge_" + compact(title)) + .circle(BADGE_DIAMETER) + .clipPolicy(ClipPolicy.CLIP_PATH) + .fillColor(NAVY) + .center(new ImageBuilder() + .name("BadgeGlyph_" + compact(title)) + .source(NavySidebarIcons.image(iconToken)) + .size(NavySidebarIcons.size(iconToken), NavySidebarIcons.size(iconToken)) + .build()) + .build(); + + DocumentTextStyle headingStyle = style(HEADING_SIZE, INK, DocumentTextDecoration.BOLD); + ParagraphBuilder heading = new ParagraphBuilder() + .name("SectionTitle_" + compact(title)) + .textStyle(headingStyle); + tracked(heading, title.toUpperCase(Locale.ROOT), headingStyle); + DocumentNode headingNode = heading.margin(DocumentInsets.zero()).build(); + + section.addContainer(band -> band + .name("SectionHeader_" + compact(title)) + .rectangle(MAIN_CONTENT_WIDTH, HEADING_BAND_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(badge) + .position(headingNode, SECTION_INDENT, 0, LayerAlign.CENTER_LEFT)); + } + + /** + * A bullet list indented to clear the badge, so its text starts on the + * same axis as the heading beside it. + * + * @param section the main column + * @param name node name of the list + * @param items one bullet per element + */ + static void indentedList(SectionBuilder section, String name, List items) { + section.addList(list -> list + .name(name) + .bullet() + .items(items) + .textStyle(body()) + .lineSpacing(BULLET_LEADING) + .itemSpacing(PLAIN_ITEM_GAP) + .margin(new DocumentInsets(HEADER_TO_BODY, 0, 0, SECTION_INDENT))); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebar.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebar.java index 2dcca81e6..15d297a22 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebar.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/ProfessionalSidebar.java @@ -82,6 +82,12 @@ * phone and email rows carry {@code tel:} and {@code mailto:} targets built * from the value.

    * + *

    A channel is one paragraph, the mark and the value sharing a line, so a + * value wider than the sidebar's text column wraps under the mark and leaves + * it alone on the first line. The column is about 107pt, which at this type + * size is a little over twenty characters — long addresses want shortening + * rather than a wider column.

    + * *

    Fonts

    * *

    The sheet is set in Barlow Condensed and Lato. The templates artifact diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java index 64a490a00..5b6771bc0 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java @@ -21,11 +21,11 @@ * fed a different theme.

    * *

    The package holds a second shape as well. A preset that reproduces a - * specific drawn sheet — {@code ProfessionalSidebar} is the one here — takes - * no {@code BrandTheme} and calls no shared renderer: its geometry, palette - * and type scale are measured constants of its own, and it sets its own page. - * The data model is the same {@code CvDocument}; what differs is that the - * cosmetics cannot be swapped, because moving them would stop it being the - * sheet it reproduces.

    + * specific drawn sheet — {@code ProfessionalSidebar} and {@code NavySidebar} + * are the ones here — takes no {@code BrandTheme} and calls no shared + * renderer: its geometry, palette and type scale are measured constants of + * its own, and it sets its own page. The data model is the same + * {@code CvDocument}; what differs is that the cosmetics cannot be swapped, + * because moving them would stop it being the sheet it reproduces.

    */ package com.demcha.compose.document.templates.cv.presets; diff --git a/templates/src/main/resources/templates/cv/navy-sidebar/icons/briefcase.png b/templates/src/main/resources/templates/cv/navy-sidebar/icons/briefcase.png new file mode 100644 index 0000000000000000000000000000000000000000..98d131523db860cbb41477565c72cdd8dbc107da GIT binary patch literal 941 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRS3dtTpz6=aiYC!Q828LfC`4Fdh=ibF!!(sV}SCs&}5YKdz^NlIc#s#S7PDv)9@GB7gJHL%b%G6^xXv@$ifGBwsV zFt9Q(Xuq-bHHwDZ{FKbJO57U0wep4oHE6(XD9OxCEiOsSEx@g3;RKxy1_q`IPZ!6K zid%2*p3ORJAi$8g`pe(=NL!IcLEnwnx|W_jQ~qk{k&}H-=Su`-t!>}2FD$>|nh}Eq zbAvG|@jGrWqwy8j?Z)1ksb8!2|CKYk&lP9-Bkq~NCAI>&e?M*aREw>T)6QnmWX?F8 ze|z7n&F|ywlUZIeS@73SKmU7=?oB0+Qqc{MKlDE?XU(v_r1xAkd?}a1=cSwp*Z1x} zxr=KFr^EY1hJu$&Hwu5A-;le03AaOW?U8cE`kA%1^IjgwYtd$y!+1avmGG@rcoLjH zm-gY)tL?_qV29UH||7HWz0O)(iF%XMc>|;D4e1+eD5w zeKt$n4`P_)+~rS;AE0z`OHL1MgPK85VIA{E+Ti$1;}#K=l@ zfjkR_>Hlk8(;jm%q%#z-4L-tL=D-2}%dZnB-rT`-AeL`|OWm9}@18SR6|5RdDYX0bElmQ6hg`p+Nsue_hIDU zHH+0>K4h5n>dEw7)umFdh=ibF!!(sV}SCs&}5YKdz^NlIc#s#S7PDv)9@GB7gJHL%b%G6^xXv@$ifGBwsV zFt9Q(Xuq-bHHwDZ{FKbJO57U0wep4oHE6(XD9OxCEiOsSEx@g3;RKxy1_owkPZ!6K zid%2z9-Op9L4Y+e`Tzgva}T#z_hoNyx*?MCEK@J}!oD|7Ts`MbZ&G>qY58}CCHh

    >I$I*-ul1s&hHQZ`*+_T2v+f|yt}w zpKr&PZR3gn*)%7KQRjc*%9F>q7?z)mJ0Ph0>&mCY!MWwyXl}rCSY?j+2d;e)pM1~H z4c2CuvraUjHHt$?W+sQCgO_36G4)QRy}@XPBu;A#oaSoc#NqIo(dCdPgWq+o2d|U= zZUp-h-G=2&(gsD&r@0u^TNsqZngoy6xNtBokw;VJ$HC~9v!vJJnX(gy!ru=88Ztz= ze8cx>`|>iW>i)lzBN)pj9P)p;kn6%{xqFsL8+h#(vHQ!+*APpHoOZdfr{Y|){J#bB z7gpTyW6bRPkiApqz?$RR(|Go)tbW8bp_tFo{+dDXkFAgOg%V7&**Md9_iqUbw`cCr zIk@KG^#EhmCui>;_B1H|VR}Aur`dtp!%u{jrqt|PJiAc+PsXD6$K!rah|@jbb>-a6 ze{EOV3Yhu; literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/navy-sidebar/icons/email.png b/templates/src/main/resources/templates/cv/navy-sidebar/icons/email.png new file mode 100644 index 0000000000000000000000000000000000000000..29bf4216f53716312238b63234f2fad021587cad GIT binary patch literal 1028 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo3dtTpz6=aiY77hwEes65fIOlW6o%eKc z45_&FcFygh!wNjC3orlwpZZJatVRf*ICo#cxqW7Nj@>F7f}aO@DOuEAVE$32!N9}X zu#mw(grSY;KmdaT7lSin0*c_Db1@+m{I^w}&uL#T*{RBW|9D479;4NdFA0ku-_u^` z-M|uWXFV}9-cfeG9H%c(f~Q8_DomI24r}8}p#xX#-OlaY?O!KyAohH1lwpaceXsrAdE%{{ z0%OQh)e^IcwN>lmo|Otz&z@uYp!@YEpE`H5E34!F|2`687f7o$U*+l?jJVTQpU=JN0(JYrdD~)ZSiA37;PwCV%8!(?azfTGDm(Oogce# z_sMNH<}peg&#}n5n(b6$czUsCJ=4vUXb0m3%htVC*1n@u^q@6>DQK3y_pB99k14ru zZkmyM>Ef)M?gGgLk|*0HhwW9%Vatf}{nZjx@A`sg#m=ltnsdb~9%?XZ#!g%Mm`Pto z-J#<{!2RZA)+Hrn4_cLHeVB|lC156xXNwzR|F8R>5)&6)`AR!Ipr^*SO_hTuKK9Lt zN#WwFLW9w@a4Y~O#nQ4`{HGFI34F_t_fZI@#nVVW%l9*e7ThGD?IvorQOjA5v z978H@y`6iz=&%A0>%zz#aSRR8`w?;#;}fz3YaLG`VO9mTHfD`3EQqT z2=6$>dSUD35;vbyu>x+pIcp+wWiI9WDHF@{ph4wa5#PXL?i} zy5u=~b>H2~|4QwT*lay*mQXS?;qU&iBYK>9n-{EX-6U_fe*2jVJ4H5Fo!=AOWX%{g z`Oj{Z9YPvKva2Jesx|lr!Br7a{%p-}}HdHamna zd~ex(Z$rhdFUxAaCYPx?9Ln@oh~=6Pr{@p#P2Vc!{#hctu)hDsyCQePy}|#M6qQZ2=8{e{aAxw0j;v9NuG{x-%hTG7 zu)G(KRXKR%6E`tD5mY9C!+v{8S;i= W;Vj92C31mjn!(f6&t;ucLK6VUm2x`( literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/navy-sidebar/icons/location.png b/templates/src/main/resources/templates/cv/navy-sidebar/icons/location.png new file mode 100644 index 0000000000000000000000000000000000000000..0d58db247709a635a34ad569e40be47d0cd7144c GIT binary patch literal 1177 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo3dtTpz6=aiY77hwEes65fILW9w@a4Y~O#nQ4`{HGFI34F_t_fZI@#nVVW%l9*e7ThGD?IvorQ%qgBO zjv*Dd-p;*U)NCN&{M7IN|LHHCj~nwfvK-1<%6l#Oa>K=s>(*Q3MvD2o{IXc@z+F?u z4rKIowcY_qUH0E+)^1&<_d3w@dEtS;!}sl$7z$W3R4<#a`+VN>JcAsD9Lf9tzpPAO zzwbTMA*KTv|3WXv-+BCU7oWfq2BV()JDy*zouZJ!aP3)o^@e@RxtdrU%3wq?bI1QB@2R{mG=tFSj2eZ-8sXfHDa%tcs74qZ<}~$xjUnAlO{ui zY1$mC8%C{`TQ};QJ|v+UtgNtVk9+Ui`R+{#+v6V=J6^P%zxMT;t4B(o7@iW4Wxdw@ zDSdg*@8_~EZhZT-qV!+9a*m(5UjD!NBI}bZ9*hEWui0__ei3r;Rc9Mh$E&|CPw)J@ zd%`iagg^frYiBB_!lvVfZjFoIFc_p8$fUc!VYuTf+zHiQ}}iyN?LELn#@kA(vr2)6KhV!3hMN_<>Y!7 z`kO~DV(9R5w*HcKyzH!RMj`I^YM4X8geE53f%u`kQIc^ORU$(2P zem^N~zv;}Mlj5$e^_n`B@4!PFw&$CcyE;rgW>Ni5)HpyBWM$eHsTvqLG*zL{bAj+z@RoA0}bL%ul&ZG#?bI1SPQn=7M%ON zIERs8{_;g!E0>>^VknSvQvKY>#Nf8KIpE>aJzKpP3M`EKmI^U6d|$aD>eWjvW`-N> z0at4dJemIGT-N*a4XbAIi?A}-ykE5OlW6vv|5V zhE&{oJLhK6YXt$9_UNDg_U08ukb{IfyfQhBB?`%KsauE#&q8Ux>l# zT}v4%e4QpT#MZ2?dinj6Mq{%9lKw{S0*j9~8O0yW)nuuN;}Pe4u{YpTMMP2;OT{v; zhVPA+Cus^jh|Ji^@cP}Y#P9k_lT{oZ=PJzeYcTI({W7boN|t?<@P)+*=c?odGv73= z;eKYwdbx*D?t9(DU#&A#Y|bd z6vh4@{-D=!^!{Zl4sp>5NBp_@nul0N!DsGUR2c9&**bdu9(qMb3qG#tk4403DvvG9eobk z-euXKeQI$wlg7iDnqi0LsfxsFFKV0REmL8cW2?frliTF)oarh&o(@XtoX4M6sXp}j z@ZyOh%aPj#oIBsX`1*7Ace%M=CfV;hzVgg!kyln%YC>{8q?3{m?xSerTys-|ah|Gxq*a66O%loV;NBPVd89N5vWY8Qr~}Kli`gtMhMC z@_~s0o!iT+f1b_$$5jwIVdlzxC58S@9ErEL`HGt-Z@sl=hLb@klgZM@PPg>_t~s=Y z$z|Vem5JZ~TED)+B$S?6(cPhWyuo-<%i|jY^PSDt&r%gyV7V;utBcNLhF(ACJ^CN_ zz4)!YVM)UgX%`(`g^wyu_GZ%S1t#ne5|qDud*SR~$5*qcd~vYd-4o7rK_*yG{&sF~ z@vn<(YFGQ+k2+~HbMoIh?|GBvaCYlA>6Ql7i54Bz`MOo)Q{ql%!Te@yi58fW|1d?* XmG~)@9B~?$hZsCv{an^LB{Ts5-R7u^ literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/navy-sidebar/icons/trophy.png b/templates/src/main/resources/templates/cv/navy-sidebar/icons/trophy.png new file mode 100644 index 0000000000000000000000000000000000000000..80e7964ffd5a586e89791926113d24b1897d2766 GIT binary patch literal 1222 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRS3dtTpz6=aiYC!Q828LfC`4Fdh=ibF!!(sV}SCs&}5YKdz^NlIc#s#S7PDv)9@GB7gJHL%b%G6^xXv@$ifGBwsV zFt9Q(Xuq-bHHwDZ{FKbJO57U0wep4oHE6(XD9OxCEiOsSEx@g3;RKxy1_tJdo-U3d z6}R5by>dgW`=0 zk0KZfbs8+h9Avl^`d9^yGj$|09{G9w*RekVCk>WPdB%JE?}A?C7`BS6hCAEyXBi)u zd*$(@pj&KNQ*#2?>+WB_>A(@d?{coPdT#N#H$rck`>)CF(0riIoU>l=a+>ywgZ&I5 z3Q4@25>4`qS`J6@IU^kT>R2`~2(A}0NNv0n_T_1T*!+jhu= zcLT#jMv=!|m!97?a`0wc{%wO6IYX@BZ@cuA7oDNyYzZ|PiS4 zU`8tEh84~CXRmBu%5mOkIh&WLr%t9);RiM1cx*ImAp!SMZP_oqwOyS^8F*<8F> z{N-V$5Z)rL87FRDz4_A0;n%}A-!&>rT;tbEeLww)f3UJ11YBdSG?r zUcCm9KO75qHl(ZaPx#HGejqEDG3%B70ZxI9eJr3D5?#<1%5+5azI6g?!o7;3qi(&+ z8$=bFf|-^*aA(kC?q4yzz2oIn-4D^$kt`iQbRCcU(am^&>!8pd4kJdTd*WU5raip; zaYmE8qlUx76-gCaGCw`p`0tP3wgdTZ(?l0M3;tQ*(sAwl2DZOT`L#I$iofq|5pDW+ zY5r9fi$&o*SD9*AN@Ne*>4zmg)Tlal3Fw7WhqS|4rwbqW&Sdp_a~H$>Z=5b)?o0i9 zy?J%Vh870@HzG;*e-^XsW$=G5nsWDdIm=hA1uXwh>Lxywcsk?F|I;4Y4zhnF)f4yn z&W&X9VoYP-zoChxglPfG{sVf9a~W7$9w={HDz3%&O}y4)LmHzNBUeYdOw#PA1%eDe z->kp&<5Cz~28+S>1jZu^g&8W>x#ry#EMc0Fy>P!|%DIO;h-`!A^7?5juHCe;wb=;F O& Date: Sun, 30 Aug 2026 23:40:33 +0100 Subject: [PATCH 09/85] test(examples): guard the sidebar CV samples against a wrapped contact row (#615) --- CHANGELOG.md | 14 ++++ .../cv/SidebarContactRowsFitTest.java | 84 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 examples/src/test/java/com/demcha/examples/templates/cv/SidebarContactRowsFitTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 757b26c36..1f2d0d97d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -148,6 +148,20 @@ follow semantic versioning; release dates are ISO 8601. subtitle, looked complete. The employer is now drawn between the position and the date, in the shared theme entry-subtitle style. +### Tests + +- **The sidebar CV samples are held to the width of the column they are drawn in.** + A contact channel in `ProfessionalSidebar` and `NavySidebar` is one paragraph — the + mark and the value share a line — so a value wider than the sidebar's text column + wraps and leaves the mark alone on the first line. The promotion gates could not see + it: they measure the published template's own fixture, whose addresses fit, while the + example sample data is written for the repository and can outgrow the column with + every test still green. It shipped that way once, spotted in the rendered preview + rather than by a build. `SidebarContactRowsFitTest` now measures the shape of the row + instead of the length of the string — a single-line channel is as tall as its mark, + a wrapped one close to twice that — and the two sample addresses were shortened to + fit. + ### Documentation - **The presets that cap content say so.** `MonogramSidebar`, `SidebarPortrait` and diff --git a/examples/src/test/java/com/demcha/examples/templates/cv/SidebarContactRowsFitTest.java b/examples/src/test/java/com/demcha/examples/templates/cv/SidebarContactRowsFitTest.java new file mode 100644 index 000000000..cb70a57c0 --- /dev/null +++ b/examples/src/test/java/com/demcha/examples/templates/cv/SidebarContactRowsFitTest.java @@ -0,0 +1,84 @@ +package com.demcha.examples.templates.cv; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.snapshot.LayoutNodeSnapshot; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.NavySidebar; +import com.demcha.compose.document.templates.cv.presets.ProfessionalSidebar; +import com.demcha.examples.support.NavySidebarSampleData; +import com.demcha.examples.support.ProfessionalSidebarSampleData; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.function.Supplier; +import java.util.stream.Collectors; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Holds the sidebar CV samples to the width of the column they are drawn in. + * + *

    A contact channel in both of these presets is one paragraph — the mark + * and the value share a line — so a value wider than the sidebar's text + * column wraps, and the mark is left alone on the first line. Nothing in the + * promotion gates catches it: they measure the published template's own + * fixture, whose addresses fit, while the sample data here is written for + * the repository and can outgrow the column without a single test going + * red. That is exactly how it shipped once, spotted in the rendered preview + * rather than by a build.

    + * + *

    So the guard is on the samples, and it is the shape of the row rather + * than the length of the string: a single-line channel is as tall as its + * mark — 8.8 to 11pt across the two designs — and a wrapped one is close to + * twice that. The bound sits between.

    + */ +class SidebarContactRowsFitTest { + + /** Comfortably above the tallest single-line row, well under a wrapped one. */ + private static final double SINGLE_LINE_LIMIT = 14.0; + + @Test + void professionalSidebarChannelsEachFitOneLine() { + assertChannelsFitOneLine("Professional Sidebar", + ProfessionalSidebar::create, ProfessionalSidebarSampleData.sample()); + } + + @Test + void navySidebarChannelsEachFitOneLine() { + assertChannelsFitOneLine("Navy Sidebar", + NavySidebar::create, NavySidebarSampleData.sample()); + } + + private static void assertChannelsFitOneLine(String preset, + Supplier> factory, + CvDocument doc) { + List channels; + try (DocumentSession session = GraphCompose.document().create()) { + factory.get().compose(session, doc); + channels = session.layoutSnapshot().nodes().stream() + .filter(node -> node.entityName() != null + && node.entityName().startsWith("Contact_")) + .toList(); + } + + assertThat(channels) + .describedAs("%s draws its contact channels as Contact_* nodes; finding none " + + "means the guard is looking at the wrong name, not that the sample " + + "is clean", preset) + .isNotEmpty(); + + List wrapped = channels.stream() + .filter(node -> node.placementHeight() > SINGLE_LINE_LIMIT) + .map(node -> node.entityName() + " (" + node.placementHeight() + "pt)") + .collect(Collectors.toList()); + + assertThat(wrapped) + .describedAs("%s: a contact value in the sample is wider than the sidebar " + + "column, so its row wrapped and left the mark alone on the first " + + "line. Shorten the value in the sample data — the column is not the " + + "thing to widen", preset) + .isEmpty(); + } +} From 456e407f7e586d10fb11546c47e8b9aaf79226f5 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Sun, 30 Aug 2026 23:53:32 +0100 Subject: [PATCH 10/85] feat(templates): make the Navy Sidebar contact channels clickable (#616) --- CHANGELOG.md | 12 ++-- assets/readme/examples/cv-navy-sidebar-v2.pdf | Bin 33670 -> 34375 bytes .../cv/presets/NavySidebarSmokeTest.java | 32 +++++++++++ .../templates/cv/presets/NavySidebar.java | 10 ++-- .../cv/presets/NavySidebarAside.java | 54 +++++++++++++----- 5 files changed, 84 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f2d0d97d..33772dcd5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,10 +60,14 @@ follow semantic versioning; release dates are ISO 8601. `RowsSection` because this design writes the proficiency out — "Native", "Advanced" — which a levelled skill could not carry back. The photograph comes from the new `CvIdentity.portrait()`; an identity without one draws the ring around an empty navy - disc. Guarded by a smoke test (including the missing portrait, the capitals this - design imposes, the one-page limit and the fields it has no place for), an exact - layout snapshot and a pixel-parity gate; the examples showcase gains - `cv-navy-sidebar-v2`. + disc. The phone, the email and each link are reachable from the PDF, with the + `tel:` and `mailto:` targets built from the values — the published sheet drew its + channels as plain text, and this is the one place the port deliberately improves on + it, at no cost to the render: annotations move no pixel and no layout node, which + both gates confirm without re-blessing. Guarded by a smoke test (including the link + targets, the missing portrait, the capitals this design imposes, the one-page limit + and the fields it has no place for), an exact layout snapshot and a pixel-parity + gate; the examples showcase gains `cv-navy-sidebar-v2`. - **The first CV preset that owns its page: `ProfessionalSidebar`.** A one-page CV in two columns on the Barlow Condensed / Lato pair — a navy monogram plate over a diff --git a/assets/readme/examples/cv-navy-sidebar-v2.pdf b/assets/readme/examples/cv-navy-sidebar-v2.pdf index 1ba8f2fcddeffaad539905b79dd61176eadf3de2..5ebdbace0f9f726095f61d846ca779a581c919b1 100644 GIT binary patch delta 2649 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 T*wSGL1OP`yn3&K{xFG%oGb=C| diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java index 58322a979..96b6c30ce 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java @@ -17,9 +17,14 @@ import com.demcha.compose.document.templates.cv.data.SkillsSection; import org.apache.pdfbox.Loader; import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; import org.apache.pdfbox.text.PDFTextStripper; import org.junit.jupiter.api.Test; +import java.util.ArrayList; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; @@ -51,6 +56,21 @@ private static String textOf(byte[] pdfBytes) throws Exception { } } + private static List linkUris(byte[] pdfBytes) throws Exception { + List uris = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI action) { + uris.add(action.getURI()); + } + } + } + } + return uris; + } + @Test void exposesStableIdentity() { DocumentTemplate template = NavySidebar.create(); @@ -77,6 +97,18 @@ void canonicalRenderCarriesTheUntrackedText() throws Exception { .contains("HubSpot Content Marketing Certification"); } + @Test + void channelsReachThePdfAsLinks() throws Exception { + // The dial and mail targets are built from the values, so nothing in + // the document carries them and nothing but the PDF can show them. + // They are annotations, so they move no pixel and no layout node — + // which is why the parity gates cannot see them either. + assertThat(linkUris(render(NavySidebarFixtures.canonicalCv()))) + .contains("tel:+15551234567", + "mailto:your.email@gmail.com", + "https://linkedin.com/in/yourname"); + } + @Test void rendersOneCanonicalPage() throws Exception { try (PDDocument document = diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java index de980283a..91f970705 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java @@ -75,11 +75,11 @@ * without one draws the ring around an empty navy disc rather than leaving a * hole in the column.

    * - *

    The contact rows carry no link targets — the design draws the channels - * as text, and the port keeps that. The packaged set has one network mark, - * so every link the identity carries is drawn behind it whatever the network - * is; a document that lists more than one profile should say which is which - * in the label.

    + *

    The phone, the email and each link are reachable from the PDF, with the + * {@code tel:} and {@code mailto:} targets built from the values. The + * packaged set has one network mark, so every link the identity carries is + * drawn behind it whatever the network is; a document that lists more than + * one profile should say which is which in the label.

    * *

    A channel is one paragraph, the mark and the value sharing a line, so a * value wider than the sidebar's text column wraps under the mark and leaves diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java index face6f2b9..47dad59df 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java @@ -6,6 +6,7 @@ import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.ShapeContainerBuilder; import com.demcha.compose.document.image.DocumentImageData; +import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.InlineImageAlignment; import com.demcha.compose.document.node.LayerAlign; @@ -147,9 +148,11 @@ private static DocumentNode emptyDisc() { * The contact channels, in the order the design sets them: phone, email, * address, then whatever links the identity carries. * - *

    The rows carry no link targets. The design draws them as text, and - * the promotion keeps that — a clickable channel would be a change to - * the sheet rather than a port of it.

    + *

    The phone, the email and each link are reachable from the PDF: the + * dial and mail targets are built from the values, so a document does + * not carry the same address twice. The annotations sit beside the + * content stream and draw nothing, which is why a clickable channel is + * the same ink as a plain one.

    */ private static void renderContact(SectionBuilder section, CvIdentity identity) { sidebarHeading(section, CONTACT_HEADING, true); @@ -160,34 +163,55 @@ private static void renderContact(SectionBuilder section, CvIdentity identity) { private static void renderChannel(SectionBuilder section, Channel channel) { double size = NavySidebarIcons.size(channel.token()); - section.addParagraph(p -> p + DocumentLinkOptions link = channel.href() == null + ? null + : new DocumentLinkOptions(channel.href()); + ParagraphBuilder row = new ParagraphBuilder() .name("Contact_" + compact(channel.token())) .textStyle(sidebarBody()) .inlineImage(NavySidebarIcons.image(channel.token()), size, size, - InlineImageAlignment.CENTER, 0.0, null) - // The gap between the mark and the value is set as spaces - // rather than an indent: the row is one paragraph, so the - // mark and the text share a baseline and wrap together. - .inlineText(" " + channel.value(), sidebarBody()) - .margin(new DocumentInsets(0, 0, CONTACT_ROW_GAP, 0))); + InlineImageAlignment.CENTER, 0.0, link); + // The gap between the mark and the value is set as spaces rather than + // an indent: the row is one paragraph, so the mark and the text share + // a baseline and wrap together. + if (link == null) { + row.inlineText(" " + channel.value(), sidebarBody()); + } else { + row.inlineText(" " + channel.value(), sidebarBody(), link); + } + section.add(row.margin(new DocumentInsets(0, 0, CONTACT_ROW_GAP, 0)).build()); } private static List channels(CvIdentity identity) { List channels = new ArrayList<>(); - channels.add(new Channel(NavySidebarIcons.PHONE, identity.contact().phone())); - channels.add(new Channel(NavySidebarIcons.EMAIL, identity.contact().email())); - channels.add(new Channel(NavySidebarIcons.LOCATION, identity.contact().address())); + String phone = identity.contact().phone(); + channels.add(new Channel(NavySidebarIcons.PHONE, phone, telUri(phone))); + String email = identity.contact().email(); + channels.add(new Channel(NavySidebarIcons.EMAIL, email, "mailto:" + email)); + channels.add(new Channel(NavySidebarIcons.LOCATION, + identity.contact().address(), null)); for (Link link : identity.links()) { - channels.add(new Channel(NavySidebarIcons.LINKEDIN, link.label())); + channels.add(new Channel(NavySidebarIcons.LINKEDIN, link.label(), link.url())); } return channels; } + /** + * The dial target for a phone number: its digits, keeping a leading + * {@code +} so an international number stays international. + */ + private static String telUri(String phone) { + String digits = phone.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + /** * A contact row. The packaged set has one network mark, so every link * takes it — this design ships no globe. */ - private record Channel(String token, String value) { + private record Channel(String token, String value, String href) { } // -- education ------------------------------------------------------- From 5c0f11b3616234d789decc30e7ad30e6eaeeeec9 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 08:15:16 +0100 Subject: [PATCH 11/85] feat(templates): give CvEntry a location, a mark and a builder (#618) --- CHANGELOG.md | 15 +- .../support/NavySidebarSampleData.java | 15 +- .../cv/data/CvEntryPlaceAndIconTest.java | 93 +++++++++++ .../cv/presets/NavySidebarFixtures.java | 15 +- .../cv/presets/NavySidebarSmokeTest.java | 7 +- .../document/templates/cv/data/CvEntry.java | 149 +++++++++++++++++- .../templates/cv/presets/NavySidebar.java | 6 +- .../cv/presets/NavySidebarAside.java | 6 +- 8 files changed, 286 insertions(+), 20 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvEntryPlaceAndIconTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 33772dcd5..7102a2d6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **`CvEntry` carries a location and a mark, and gains a builder.** The record held a + title, a subtitle, a date and a body, which is enough for a dated block and not + enough for the designs that set the city beside the employer in its own colour, or + that open a project with an icon. Folding a location into the subtitle would have + merged two things a design styles apart; deriving an icon from the text would have + been guesswork. `CvEntry` now carries `place` and `icon` — both plain strings, blank + when absent, matching how `subtitle` and `date` already behave — and + `CvEntry.builder(title)` reaches them without counting six positions. The icon + vocabulary is preset-scoped: a token means something only to the preset that packages + it, and the presets that draw no marks ignore it. The four-argument constructor is + kept explicitly, so existing calls compile and link unchanged. + - **`CvIdentity` carries an optional portrait.** A CV design with a photograph in it had nowhere to put one: the identity record held the name, the title, the contact triple and the links, and a preset that wanted a face had to ship a silhouette of its @@ -60,7 +72,8 @@ follow semantic versioning; release dates are ISO 8601. `RowsSection` because this design writes the proficiency out — "Native", "Advanced" — which a levelled skill could not carry back. The photograph comes from the new `CvIdentity.portrait()`; an identity without one draws the ring around an empty navy - disc. The phone, the email and each link are reachable from the PDF, with the + disc; its education entries read the `place` field for the campus line. The phone, + the email and each link are reachable from the PDF, with the `tel:` and `mailto:` targets built from the values — the published sheet drew its channels as plain text, and this is the one place the port deliberately improves on it, at no cost to the render: annotations move no pixel and no layout node, which diff --git a/examples/src/main/java/com/demcha/examples/support/NavySidebarSampleData.java b/examples/src/main/java/com/demcha/examples/support/NavySidebarSampleData.java index 712d5dcdf..6068025ca 100644 --- a/examples/src/main/java/com/demcha/examples/support/NavySidebarSampleData.java +++ b/examples/src/main/java/com/demcha/examples/support/NavySidebarSampleData.java @@ -4,6 +4,7 @@ import com.demcha.compose.document.templates.core.identity.Contact; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; import com.demcha.compose.document.templates.cv.data.CvIdentity; import com.demcha.compose.document.templates.cv.data.EntriesSection; import com.demcha.compose.document.templates.cv.data.ParagraphSection; @@ -60,10 +61,16 @@ public static CvDocument sample() { + " whether it worked. Happiest with a small team and a" + " short feedback loop.")) .section(Slot.SIDEBAR, EntriesSection.builder("Education") - .entry("MSc Marketing Analytics", "University of Bristol", - "2015 - 2016", "Bristol, UK") - .entry("BA Business Management", "University of Leeds", - "2012 - 2015", "Leeds, UK") + .entry(CvEntry.builder("MSc Marketing Analytics") + .subtitle("University of Bristol") + .date("2015 - 2016") + .place("Bristol, UK") + .build()) + .entry(CvEntry.builder("BA Business Management") + .subtitle("University of Leeds") + .date("2012 - 2015") + .place("Leeds, UK") + .build()) .build()) .section(Slot.SIDEBAR, SkillsSection.of("Skills", SkillGroup.of("Core", "Positioning", diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvEntryPlaceAndIconTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvEntryPlaceAndIconTest.java new file mode 100644 index 000000000..8b3b933bc --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvEntryPlaceAndIconTest.java @@ -0,0 +1,93 @@ +package com.demcha.compose.document.templates.cv.data; + +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; + +/** + * Pins the compatibility promise made when {@link CvEntry} grew a location + * and a mark: the four-argument constructor that predates them is still + * there and still means what it meant, so a caller written against it keeps + * compiling and linking. + */ +class CvEntryPlaceAndIconTest { + + @Test + void theConstructorThatPredatesThemLeavesBothBlank() { + CvEntry entry = new CvEntry("Engineer", "Acme", "2021", "Did the work."); + assertThat(entry.place()).isEmpty(); + assertThat(entry.icon()).isEmpty(); + assertThat(entry.subtitle()).isEqualTo("Acme"); + } + + @Test + void nullsNormalizeToBlank() { + CvEntry entry = new CvEntry("Engineer", "Acme", "2021", "Body", null, null); + assertThat(entry.place()).isEmpty(); + assertThat(entry.icon()).isEmpty(); + } + + @Test + void theOriginalFieldsStillRejectNull() { + assertThatThrownBy(() -> new CvEntry("Engineer", null, "2021", "Body", "Berlin", "cart")) + .isInstanceOf(NullPointerException.class) + .hasMessageContaining("subtitle"); + } + + @Test + void aBlankTitleIsStillRejected() { + assertThatThrownBy(() -> new CvEntry(" ", "Acme", "2021", "Body", "", "")) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("title"); + } + + @Test + void theBuilderCarriesEveryFieldThrough() { + CvEntry entry = CvEntry.builder("Ledgerkit") + .subtitle("Java, PostgreSQL") + .date("2024") + .body("An open-source ledger.") + .place("Remote") + .icon("cart") + .build(); + assertThat(entry).isEqualTo(new CvEntry("Ledgerkit", "Java, PostgreSQL", "2024", + "An open-source ledger.", "Remote", "cart")); + } + + @Test + void theBuilderLeavesWhatItIsNotToldBlank() { + CvEntry entry = CvEntry.builder("Ledgerkit").build(); + assertThat(entry.subtitle()).isEmpty(); + assertThat(entry.date()).isEmpty(); + assertThat(entry.body()).isEmpty(); + assertThat(entry.place()).isEmpty(); + assertThat(entry.icon()).isEmpty(); + } + + @Test + void theBuilderJoinsABodyGivenAsLines() { + // The presets that draw a bulleted entry read one bullet per line, so + // the list form saves every caller the same String.join. + CvEntry entry = CvEntry.builder("Engineer") + .body(List.of("Shipped a thing.", "Shipped another.")) + .build(); + assertThat(entry.body()).isEqualTo("Shipped a thing.\nShipped another."); + } + + @Test + void theBuilderTreatsNullsAsBlank() { + CvEntry entry = CvEntry.builder("Engineer") + .subtitle(null) + .date(null) + .body((String) null) + .place(null) + .icon(null) + .build(); + assertThat(entry.subtitle()).isEmpty(); + assertThat(entry.body()).isEmpty(); + assertThat(entry.place()).isEmpty(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java index 923ebec22..c5464103a 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java @@ -4,6 +4,7 @@ import com.demcha.compose.document.templates.core.identity.Contact; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; import com.demcha.compose.document.templates.cv.data.CvIdentity; import com.demcha.compose.document.templates.cv.data.EntriesSection; import com.demcha.compose.document.templates.cv.data.ParagraphSection; @@ -67,10 +68,16 @@ public static CvDocument canonicalCv() { + " measurable results. Skilled in digital marketing, market" + " research, and cross-functional collaboration.")) .section(Slot.SIDEBAR, EntriesSection.builder("Education") - .entry("Master of Science in Marketing", "New York University", - "2020 - 2022", "New York, NY") - .entry("Bachelor of Business Administration", "University of California", - "2016 - 2020", "Los Angeles, CA") + .entry(CvEntry.builder("Master of Science in Marketing") + .subtitle("New York University") + .date("2020 - 2022") + .place("New York, NY") + .build()) + .entry(CvEntry.builder("Bachelor of Business Administration") + .subtitle("University of California") + .date("2016 - 2020") + .place("Los Angeles, CA") + .build()) .build()) .section(Slot.SIDEBAR, SkillsSection.of("Skills", SkillGroup.of("Core", "Digital Marketing", diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java index 96b6c30ce..d0d245e81 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarSmokeTest.java @@ -7,6 +7,7 @@ import com.demcha.compose.document.templates.core.identity.Contact; import com.demcha.compose.document.templates.core.identity.Link; import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; import com.demcha.compose.document.templates.cv.data.CvIdentity; import com.demcha.compose.document.templates.cv.data.CvSkill; import com.demcha.compose.document.templates.cv.data.EntriesSection; @@ -141,7 +142,11 @@ void degreesAndTitlesAreDrawnInCapitals() throws Exception { String text = textOf(render(CvDocument.builder() .identity(identity()) .section(EntriesSection.builder("Education") - .entry("Master of Science", "Some University", "2019", "Berlin") + .entry(CvEntry.builder("Master of Science") + .subtitle("Some University") + .date("2019") + .place("Berlin") + .build()) .build()) .build())); assertThat(text).contains("MASTER OF SCIENCE").doesNotContain("Master of Science"); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvEntry.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvEntry.java index 7e915cc72..025805f15 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvEntry.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/data/CvEntry.java @@ -1,15 +1,19 @@ package com.demcha.compose.document.templates.cv.data; +import java.util.List; import java.util.Objects; /** * Timeline-style entry used inside an {@link EntriesSection}. Covers - * both Education and Professional Experience — they share the same - * four fields so authors don't have to learn two record types. + * Education, Professional Experience, Projects and anything else a preset + * lays out as a dated block — they share the same fields so authors don't + * have to learn a record type per section. * *

    Blank fields are honoured: a blank {@code date} omits the date * column, a blank {@code subtitle} drops the italic line, a blank - * {@code body} drops the description paragraph.

    + * {@code body} drops the description paragraph, a blank {@code place} + * drops the location, and a blank {@code icon} leaves the entry unmarked. + * A preset draws only what it has somewhere to put.

    * * @param title bold heading on the left (job title, degree) * @param subtitle italic subtitle on the line below (employer, @@ -19,19 +23,154 @@ * blank removes the date column * @param body full-width prose paragraph beneath the subtitle; * may contain inline markdown + * @param place where this happened — a city, a campus, "Remote". The + * designs that show it set it beside the employer or the + * years rather than inside them, which is why it is its own + * field; blank when absent + * @param icon token naming the mark a preset draws for this entry. The + * vocabulary is preset-scoped — each preset packages its own + * set — so a token means something only to the preset that + * declares it, and the presets that draw no marks ignore it; + * blank when absent */ -public record CvEntry(String title, String subtitle, String date, String body) { +public record CvEntry(String title, String subtitle, String date, String body, + String place, String icon) { /** - * Validates that every field is non-null and that {@code title} is non-blank. + * Validates that the four original fields are non-null and that + * {@code title} is non-blank, treating a null {@code place} or + * {@code icon} as absent. */ public CvEntry { Objects.requireNonNull(title, "title"); Objects.requireNonNull(subtitle, "subtitle"); Objects.requireNonNull(date, "date"); Objects.requireNonNull(body, "body"); + place = place == null ? "" : place; + icon = icon == null ? "" : icon; if (title.isBlank()) { throw new IllegalArgumentException("title must not be blank"); } } + + /** + * Backward-compatible constructor for callers that predate the location + * and the mark. The entry simply carries neither. + * + * @param title bold heading on the left + * @param subtitle subtitle on the line below; blank collapses it + * @param date date column next to the title; blank removes it + * @param body prose paragraph beneath the subtitle + */ + public CvEntry(String title, String subtitle, String date, String body) { + this(title, subtitle, date, body, "", ""); + } + + /** + * Creates a fluent builder, which is the readable way to reach the + * optional fields without counting positions. + * + * @param title the entry's heading (required, non-blank) + * @return new fluent builder + * @since 2.2.3 + */ + public static Builder builder(String title) { + return new Builder(title); + } + + /** + * Mutable builder for {@link CvEntry}. Every field but the title starts + * blank, so an entry names only what it has. + * + * @since 2.2.3 + */ + public static final class Builder { + private final String title; + private String subtitle = ""; + private String date = ""; + private String body = ""; + private String place = ""; + private String icon = ""; + + private Builder(String title) { + this.title = title; + } + + /** + * Sets the subtitle — the employer, the institution, the stack. + * + * @param value the subtitle; null becomes blank + * @return this builder for chaining + */ + public Builder subtitle(String value) { + this.subtitle = value == null ? "" : value; + return this; + } + + /** + * Sets the date column. + * + * @param value the date text; null becomes blank + * @return this builder for chaining + */ + public Builder date(String value) { + this.date = value == null ? "" : value; + return this; + } + + /** + * Sets the prose body. + * + * @param value the body; null becomes blank + * @return this builder for chaining + */ + public Builder body(String value) { + this.body = value == null ? "" : value; + return this; + } + + /** + * Sets the prose body from one line per element — the shape the + * presets that draw a bulleted entry read. + * + * @param lines the lines, in order; null becomes blank + * @return this builder for chaining + */ + public Builder body(List lines) { + this.body = lines == null ? "" : String.join("\n", lines); + return this; + } + + /** + * Sets where this happened. + * + * @param value the location; null becomes blank + * @return this builder for chaining + */ + public Builder place(String value) { + this.place = value == null ? "" : value; + return this; + } + + /** + * Sets the mark this entry asks for, in the vocabulary of the preset + * that will draw it. + * + * @param value the icon token; null becomes blank + * @return this builder for chaining + */ + public Builder icon(String value) { + this.icon = value == null ? "" : value; + return this; + } + + /** + * Builds the immutable {@link CvEntry}. + * + * @return the assembled entry + */ + public CvEntry build() { + return new CvEntry(title, subtitle, date, body, place, icon); + } + } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java index 91f970705..eb8bc2bf8 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebar.java @@ -65,9 +65,9 @@ * own title, since it is the one block with no heading; a skill's level, * since there are no meters here; and a {@code SkillGroup}'s category. A * berth is filled by the first section that names it, so a second section - * naming the same berth is not drawn either. An education entry uses all - * four of its fields — the degree, the institution, the body as the campus - * line, and the years.

    + * naming the same berth is not drawn either. An education entry is drawn as + * four lines — the degree, the institution, the {@code place}, and the years + * — and its body has nowhere to go on this sheet.

    * *

    The portrait

    * diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java index 47dad59df..0b546131a 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/NavySidebarAside.java @@ -218,7 +218,9 @@ private record Channel(String token, String value, String href) { /** * Each degree as four lines: the qualification in capitals, the - * institution, where it was, and the years. + * institution, where it was, and the years. The third line is the + * entry's {@code place} — the field the model gives a location, rather + * than the body, which this design has nowhere to put. */ private static void renderEducation(SectionBuilder section, EntriesSection education) { sidebarHeading(section, education.title(), false); @@ -231,7 +233,7 @@ private static void renderEducation(SectionBuilder section, EntriesSection educa .margin(new DocumentInsets(0, 0, EDU_DEGREE_GAP, 0))); line(section, "Institution_" + compact(entry.title()), entry.subtitle(), EDU_LINE_GAP); - line(section, "Campus_" + compact(entry.title()), entry.body(), EDU_LINE_GAP); + line(section, "Campus_" + compact(entry.title()), entry.place(), EDU_LINE_GAP); line(section, "Years_" + compact(entry.title()), entry.date(), EDU_ENTRY_GAP); } } From 8979ce01cdc7ca6dbb6c6299e381469d7d0afc3b Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 08:27:06 +0100 Subject: [PATCH 12/85] feat(templates): add the SerifHeadline two-column CV preset (#619) --- CHANGELOG.md | 21 + .../readme/examples/cv-serif-headline-v2.pdf | Bin 0 -> 86574 bytes docs/templates/v2-layered/using-templates.md | 13 +- .../demcha/examples/GenerateAllExamples.java | 2 + .../support/SerifHeadlineSampleData.java | 172 + .../examples/support/ShowcaseMetadata.java | 1 + .../templates/cv/v2/SerifHeadlineExample.java | 52 + .../cv/presets/SerifHeadlineFixtures.java | 173 + .../SerifHeadlineLayoutSnapshotTest.java | 31 + .../cv/presets/SerifHeadlineSmokeTest.java | 225 + .../SerifHeadlineVisualParityTest.java | 41 + .../cv-v2/serif_headline_layout.json | 7067 +++++++++++++++++ .../cv-v2-layered/serif_headline-page-0.png | Bin 0 -> 121182 bytes .../templates/cv/presets/SerifHeadline.java | 245 + .../cv/presets/SerifHeadlineAside.java | 246 + .../cv/presets/SerifHeadlineClosing.java | 145 + .../cv/presets/SerifHeadlineIcons.java | 113 + .../cv/presets/SerifHeadlineMain.java | 253 + .../cv/presets/SerifHeadlineMasthead.java | 231 + .../cv/presets/SerifHeadlineStyles.java | 408 + .../cv/presets/SerifHeadlineText.java | 31 + .../cv/presets/SerifHeadlineWidgets.java | 231 + .../templates/cv/presets/package-info.java | 5 +- .../templates/cv/serif-headline/icons/api.png | Bin 0 -> 3718 bytes .../cv/serif-headline/icons/cart.png | Bin 0 -> 4656 bytes .../cv/serif-headline/icons/chart.png | Bin 0 -> 5690 bytes .../cv/serif-headline/icons/email.png | Bin 0 -> 2151 bytes .../cv/serif-headline/icons/github.png | Bin 0 -> 5312 bytes .../cv/serif-headline/icons/linkedin.png | Bin 0 -> 2630 bytes .../cv/serif-headline/icons/location.png | Bin 0 -> 3581 bytes .../cv/serif-headline/icons/medal.png | Bin 0 -> 7269 bytes .../cv/serif-headline/icons/phone.png | Bin 0 -> 3060 bytes .../cv/serif-headline/icons/rocket.png | Bin 0 -> 8973 bytes .../cv/serif-headline/icons/trophy.png | Bin 0 -> 5807 bytes 34 files changed, 9698 insertions(+), 8 deletions(-) create mode 100644 assets/readme/examples/cv-serif-headline-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/SerifHeadlineSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/SerifHeadlineExample.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/serif_headline-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadline.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineAside.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineText.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineWidgets.java create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/api.png create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/cart.png create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/chart.png create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/email.png create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/github.png create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/linkedin.png create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/location.png create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/medal.png create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/phone.png create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/rocket.png create mode 100644 templates/src/main/resources/templates/cv/serif-headline/icons/trophy.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 7102a2d6c..29d33a281 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,6 +59,27 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A two-column editorial CV preset: `SerifHeadline`.** A one-page A4 sheet under a + Volkhov masthead — the name in the display serif over its role and a short gold rule, + the contact channels stacked opposite — then a two-column body: the roles held on a + timeline rail and the projects as marked cards on the left, the degrees and grouped + skill meters across a hairline divider on the right, closing with full-width bands of + certifications and achievements. Ships as `cv.presets.SerifHeadline` on the existing + `CvDocument` model, porting the rendered layout of the published standalone + `serif-headline-cv` template. Its geometry is not a set of round numbers: the design + was drawn on a 1024-pixel grid, so the preset carries that grid and scales it onto A4 + — heights by an extra factor — and states every vertical gap as the white the drawing + shows, subtracting the blank a line box already carries above and below its own type. + Eight berths reach their sections by title, the projects and achievements take the + mark each entry names in `CvEntry.icon()` from this preset's own vocabulary, and the + employer's city and the campus come from `CvEntry.place()`. Like its siblings it owns + its page and holds one: the body is a single atomic row, so a longer CV raises + `AtomicNodeTooLargeException` rather than flowing or dropping entries. Guarded by a + smoke test (including the unknown-mark data error, an entry with no mark, an employer + with no place, the overlapping soft-skills berth, the link targets and the one-page + limit), an exact layout snapshot and a pixel-parity gate; the examples showcase gains + `cv-serif-headline-v2`. + - **A portrait CV preset: `NavySidebar`.** A one-page A4 CV in two columns on Lato — a navy plate carrying a ringed portrait, the contact channels behind their marks, the degrees, the skills and the languages, beside a white column of the name, the summary, diff --git a/assets/readme/examples/cv-serif-headline-v2.pdf b/assets/readme/examples/cv-serif-headline-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7d7ba39377f2da8aedea912c0d7e899bb3808fa1 GIT binary patch literal 86574 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 literal 0 HcmV?d00001 diff --git a/docs/templates/v2-layered/using-templates.md b/docs/templates/v2-layered/using-templates.md index e040f106b..60d109ec6 100644 --- a/docs/templates/v2-layered/using-templates.md +++ b/docs/templates/v2-layered/using-templates.md @@ -234,12 +234,13 @@ whole or the paginator raises `AtomicNodeTooLargeException`. Lifting a cap without teaching the preset to pick its own page boundaries turns a CV that silently lost an entry into one that fails to render. -`ProfessionalSidebar.create()` and `NavySidebar.create()` are -compositions for a fixed amount of content that cap nothing: each -reproduces a specific one-page sheet, so a CV longer than that sheet -raises `AtomicNodeTooLargeException` instead of losing an entry to a -cap. Size the document to them — roughly five or six roles with three -or four highlights each, alongside the sidebar blocks. +`ProfessionalSidebar.create()`, `NavySidebar.create()` and +`SerifHeadline.create()` are compositions for a fixed amount of content +that cap nothing: each reproduces a specific one-page sheet, so a CV +longer than that sheet raises `AtomicNodeTooLargeException` instead of +losing an entry to a cap. Size the document to them — roughly five or +six roles with three or four highlights each, alongside the other +blocks. If the document's length is the author's rather than the template's, pick a preset that paginates — `TimelineMinimal` splits its own columns diff --git a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java index 706465084..94855735c 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -98,6 +98,7 @@ import com.demcha.examples.templates.cv.v2.CvTimelineMinimalExample; import com.demcha.examples.templates.cv.v2.NavySidebarExample; import com.demcha.examples.templates.cv.v2.ProfessionalSidebarExample; +import com.demcha.examples.templates.cv.v2.SerifHeadlineExample; import com.demcha.examples.templates.invoice.ClassicInvoiceV2Example; import com.demcha.examples.templates.invoice.ConsultingInvoiceV2Example; import com.demcha.examples.templates.invoice.InvoiceCinematicFileExample; @@ -149,6 +150,7 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + CvTimelineMinimalExample.generate()); System.out.println("Generated: " + NavySidebarExample.generate()); System.out.println("Generated: " + ProfessionalSidebarExample.generate()); + System.out.println("Generated: " + SerifHeadlineExample.generate()); // Cover letters (v2 layered — 15 paired letters, one per CV preset) System.out.println("Generated: " + CvBlueBannerLetterV2Example.generate()); diff --git a/examples/src/main/java/com/demcha/examples/support/SerifHeadlineSampleData.java b/examples/src/main/java/com/demcha/examples/support/SerifHeadlineSampleData.java new file mode 100644 index 000000000..309d6afde --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/SerifHeadlineSampleData.java @@ -0,0 +1,172 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.RowStyle; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.List; + +/** + * Sample data for the Serif Headline CV example. + * + *

    Sized to the design: the preset draws a fixed one-page sheet, and a CV + * much longer than this one does not compose at all — the body is a single + * atomic row, so it raises {@code AtomicNodeTooLargeException}.

    + * + *

    The project and achievement marks are this preset's own vocabulary — + * {@code cart}, {@code api}, {@code trophy}, {@code chart}, {@code rocket} — + * and each entry names the one it wants.

    + */ +public final class SerifHeadlineSampleData { + + private static final String NEWLINE = String.valueOf((char) 10); + + private SerifHeadlineSampleData() { + } + + /** + * A backend engineer's one-page CV. + * + * @return the sample document + */ + public static CvDocument sample() { + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("Tomas", "Halvorsen") + .jobTitle("Platform Engineer") + .contact(new Contact("+47 22 12 34 56", + "tomas.h@example.com", + "Oslo, Norway")) + .link(new Link("linkedin.com/in/thalvorsen", + "https://www.linkedin.com/in/thalvorsen")) + .link(new Link("github.com/thalvorsen", + "https://github.com/thalvorsen")) + .build()) + .section(new ParagraphSection("Summary", + "Platform engineer with seven years spent making other teams'" + + " deployments boring: build pipelines, the service" + + " templates behind them, and the observability that says" + + " whether a release went well. Writes the runbook before" + + " the incident.")) + .section(EntriesSection.builder("Experience") + .entry(CvEntry.builder("Senior Platform Engineer") + .subtitle("Nordvik Systems") + .place("Oslo, NO") + .date("Feb 2022 - Present") + .body(List.of( + "Rebuilt the deployment pipeline around a golden path," + + " cutting median lead time from two days to" + + " forty minutes.", + "Owns the Kubernetes platform four product teams ship" + + " onto, and the on-call rota that follows it.", + "Introduced service-level objectives the teams actually" + + " read, and retired the dashboards nobody did.")) + .build()) + .entry(CvEntry.builder("Platform Engineer") + .subtitle("Bergen Data") + .place("Bergen, NO") + .date("Aug 2019 - Jan 2022") + .body(List.of( + "Moved forty services off hand-rolled scripts onto a" + + " shared Terraform module set.", + "Built the log and metric pipeline the incident process" + + " still runs on.", + "Ran the migration to a single identity provider across" + + " every internal tool.")) + .build()) + .entry(CvEntry.builder("Backend Engineer") + .subtitle("Fjordline Software") + .place("Oslo, NO") + .date("Sep 2017 - Jul 2019") + .body(List.of( + "Delivered booking and payment services for a ferry" + + " operator's public API.", + "Replaced a nightly reconciliation batch with a" + + " streaming job.")) + .build()) + .build()) + .section(EntriesSection.builder("Projects") + .entry(CvEntry.builder("Ledgerkit") + .subtitle("Java, PostgreSQL, Testcontainers") + .body("Open-source double-entry ledger for JVM services, with a" + + " property-based suite over the posting rules.") + .icon("api") + .build()) + .entry(CvEntry.builder("Runbook Digest") + .subtitle("Kotlin, Kafka, OpenSearch") + .body("Reads alert history and drafts the retrospective agenda" + + " before the meeting starts.") + .icon("chart") + .build()) + .build()) + .section(EntriesSection.builder("Education") + .entry(CvEntry.builder("M.Sc. in Computer Science") + .subtitle("University of Oslo") + .date("2015 - 2017") + .place("Oslo, NO") + .build()) + .entry(CvEntry.builder("B.Sc. in Informatics") + .subtitle("NTNU") + .date("2012 - 2015") + .place("Trondheim, NO") + .build()) + .build()) + .section(SkillsSection.builder("Skills") + .leveledGroup("Languages", List.of( + CvSkill.of("Java", 0.86), + CvSkill.of("Kotlin", 0.72), + CvSkill.of("Go", 0.48), + CvSkill.of("SQL", 0.8))) + .leveledGroup("Platform", List.of( + CvSkill.of("Kubernetes", 0.84), + CvSkill.of("Terraform", 0.78), + CvSkill.of("GitHub Actions", 0.75), + CvSkill.of("Argo CD", 0.6))) + .leveledGroup("Data", List.of( + CvSkill.of("PostgreSQL", 0.82), + CvSkill.of("Kafka", 0.7), + CvSkill.of("OpenSearch", 0.55))) + .leveledGroup("Practices", List.of( + CvSkill.of("Observability", 0.8), + CvSkill.of("Incident Response", 0.76), + CvSkill.of("Threat Modelling", 0.55))) + .build()) + .section(new ParagraphSection("Soft Skills", String.join(NEWLINE, + "Mentoring | Facilitation", + "Writing | Pragmatism", + "Patience | Curiosity"))) + .section(RowsSection.builder("Certifications", RowStyle.PLAIN) + .row("Certified Kubernetes", "Administrator (CNCF)") + .row("Terraform Associate", "(HashiCorp)") + .row("AWS Solutions Architect", "Associate (AWS)") + .row("Professional Cloud", "Architect (Google)") + .row("Site Reliability", "Foundations (Linux Foundation)") + .build()) + .section(EntriesSection.builder("Achievements") + .entry(CvEntry.builder("Lead Time Cut by 96%") + .body("Took median deployment lead time from two days to forty" + + " minutes across four teams.") + .icon("chart") + .build()) + .entry(CvEntry.builder("Zero-Downtime Migration") + .body("Moved the booking platform onto Kubernetes over six" + + " weeks without a customer-visible outage.") + .icon("rocket") + .build()) + .entry(CvEntry.builder("Engineer of the Year 2024") + .body("Recognised for the platform work and for the mentoring" + + " that came with it.") + .icon("trophy") + .build()) + .build()) + .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 62fc7aafa..6d893613e 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -62,6 +62,7 @@ record Entry(String title, String description, List tags, String codeUrl cv("cv-mint-editorial-v2-custom", "CvMintEditorialCustomExample", "Mint Editorial (custom band)", "The same preset with one colour changed through its Options — a kraft-paper masthead band, everything else left at the preset's defaults.", "editorial", "mint"); cv("cv-professional-sidebar-v2", "ProfessionalSidebarExample", "Professional Sidebar", "Navy monogram plate over a pale sidebar of contact marks, skill meters, an education rail and language ratings, beside a white column of profile, roles and projects.", "sidebar", "navy"); cv("cv-navy-sidebar-v2", "NavySidebarExample", "Navy Sidebar", "Navy plate with a ringed portrait, contact marks, degrees, skills and languages, beside a white column of summary, badged sections and roles strung on a timeline rail.", "sidebar", "navy", "portrait"); + cv("cv-serif-headline-v2", "SerifHeadlineExample", "Serif Headline", "Volkhov masthead over a two-column body: roles on a timeline rail and marked project cards beside degrees and skill meters, closing with full-width certification and achievement bands.", "serif", "two-column"); // ===== Templates / Cover Letter (v2 layered, paired 1:1 with CV) ===== // Registered directly: letter() points at the layered preset examples under diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/SerifHeadlineExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/SerifHeadlineExample.java new file mode 100644 index 000000000..da82b37a4 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/SerifHeadlineExample.java @@ -0,0 +1,52 @@ +package com.demcha.examples.templates.cv.v2; + +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.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.SerifHeadline; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.SerifHeadlineSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code cv.v2} Serif Headline preset against the + * software-engineer sample. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-serif-headline-v2.pdf}.

    + * + *

    The preset owns its page — A4, with the margin the design's own grid + * defines — so the session starts unconfigured.

    + */ +public final class SerifHeadlineExample { + + private SerifHeadlineExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare( + "templates/cv", "cv-serif-headline-v2.pdf"); + CvDocument doc = SerifHeadlineSampleData.sample(); + DocumentTemplate template = SerifHeadline.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + template.compose(document, doc); + 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/cv/presets/SerifHeadlineFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineFixtures.java new file mode 100644 index 000000000..1561d4948 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineFixtures.java @@ -0,0 +1,173 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.RowStyle; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.List; + +/** + * The canonical fixture for {@link SerifHeadline} — the document the design + * was drawn around, and the one both gates measure. + * + *

    One fixture feeds the layout snapshot and the pixel baseline, so a + * change that moves the sheet moves both together instead of leaving one + * gate measuring a document the other no longer renders.

    + */ +public final class SerifHeadlineFixtures { + + /** The line break the presets split a body on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private SerifHeadlineFixtures() { + } + + /** + * The canonical CV: five contact channels, three roles, two projects, + * two degrees, four skill groups, three soft-skill lines, five + * certifications and three achievements — one page. + * + * @return the fixture document + */ + public static CvDocument canonicalCv() { + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("Alexander", "Morgan") + .jobTitle("Software Engineer") + .contact(new Contact("+1 (555) 123-4567", + "alex.morgan@email.com", + "New York, NY, USA")) + .link(new Link("linkedin.com/in/alexmorgan", + "https://www.linkedin.com/in/alexmorgan")) + .link(new Link("github.com/alexmorgan", + "https://github.com/alexmorgan")) + .build()) + .section(new ParagraphSection("Summary", + "Software Engineer with 5+ years of experience designing and building scalable web applications and backend services. Proficient in Java, Spring Boot, and cloud technologies. Passionate about clean code, system design, and delivering high-quality software that creates real value for users.")) + .section(EntriesSection.builder("Experience") + .entry(CvEntry.builder("Senior Software Engineer") + .subtitle("TechSolutions Inc.") + .date("Jan 2022 – Present") + .place("New York, NY") + .body(List.of( + "Designed and developed microservices using Java, Spring Boot, and Docker serving over 1M active users.", + "Implemented RESTful APIs and integrated with third-party services.", + "Optimized database queries and application performance, improving response time by 35%.", + "Led a team of 4 engineers and mentored junior developers." + )) + .build()) + .entry(CvEntry.builder("Software Engineer") + .subtitle("InnovaTech Ltd.") + .date("Jun 2019 – Dec 2021") + .place("New York, NY") + .body(List.of( + "Built scalable web applications using Java, Hibernate, and JavaScript.", + "Collaborated with cross-functional teams to deliver new features.", + "Implemented CI/CD pipelines using Jenkins and Docker.", + "Improved code quality and reduced production bugs by 25%." + )) + .build()) + .entry(CvEntry.builder("Junior Software Engineer") + .subtitle("DevSphere") + .date("Jun 2018 – May 2019") + .place("New York, NY") + .body(List.of( + "Assisted in developing and maintaining internal tools and applications.", + "Wrote unit and integration tests to ensure code reliability.", + "Participated in agile ceremonies and contributed to sprint goals." + )) + .build()) + .build()) + .section(EntriesSection.builder("Projects") + .entry(CvEntry.builder("E-Commerce Platform") + .subtitle("Java, Spring Boot, React, PostgreSQL, AWS") + .body("Developed a full-stack e-commerce platform with user authentication, product catalog, cart, and payment integration.") + .icon("cart") + .build()) + .entry(CvEntry.builder("Task Management API") + .subtitle("Java, Spring Boot, MongoDB, Docker") + .body("Built a RESTful API for task management with role-based access, real-time updates, and Dockerized deployment.") + .icon("api") + .build()) + .build()) + .section(EntriesSection.builder("Education") + .entry(CvEntry.builder("M.S. in Computer Science") + .subtitle("New York University") + .date("2018 – 2020") + .place("New York, NY") + .build()) + .entry(CvEntry.builder("B.S. in Computer Science") + .subtitle("University of California, Los Angeles") + .date("2014 – 2018") + .place("Los Angeles, CA") + .build()) + .build()) + .section(SkillsSection.builder("Skills") + .leveledGroup("Languages", List.of( + CvSkill.of("Java", 0.75), + CvSkill.of("Python", 0.58), + CvSkill.of("JavaScript / TypeScript", 0.48), + CvSkill.of("SQL", 0.75) + )) + .leveledGroup("Frameworks & Libraries", List.of( + CvSkill.of("Spring Boot", 0.75), + CvSkill.of("Hibernate", 0.54), + CvSkill.of("React", 0.75), + CvSkill.of("Node.js", 0.39), + CvSkill.of("Express", 0.75) + )) + .leveledGroup("Databases", List.of( + CvSkill.of("MySQL", 0.75), + CvSkill.of("PostgreSQL", 0.75), + CvSkill.of("MongoDB", 0.75) + )) + .leveledGroup("Tools & Technologies", List.of( + CvSkill.of("Docker", 0.75), + CvSkill.of("Kubernetes", 0.75), + CvSkill.of("Jenkins", 0.75), + CvSkill.of("Git", 0.39), + CvSkill.of("AWS", 0.75) + )) + .build()) + .section(new ParagraphSection("Soft Skills", String.join(NEWLINE, + "Problem Solving | Communication", + "Teamwork | Adaptability", + "Leadership | Time Management" + ))) + .section(RowsSection.builder("Certifications", RowStyle.PLAIN) + .row("AWS Certified Developer – Associate", + "(AWS)") + .row("Oracle Certified Professional,", + "Java SE 17 (Oracle)") + .row("Docker Certified Associate", + "(DCA)") + .row("Spring Professional Certification", + "(VMware)") + .row("Kubernetes Fundamentals", + "(Linux Foundation)") + .build()) + .section(EntriesSection.builder("Achievements") + .entry(CvEntry.builder("Engineer of the Year – 2023") + .body("Recognized for outstanding performance and leadership.") + .icon("trophy") + .build()) + .entry(CvEntry.builder("Performance Optimization") + .body("Improved system efficiency by 40% through database and code optimizations.") + .icon("chart") + .build()) + .entry(CvEntry.builder("Successful Migration") + .body("Led the migration of a monolith application to microservices architecture.") + .icon("rocket") + .build()) + .build()) + .build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineLayoutSnapshotTest.java new file mode 100644 index 000000000..6304fef86 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineLayoutSnapshotTest.java @@ -0,0 +1,31 @@ +package com.demcha.compose.document.templates.cv.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 SerifHeadline} - freezes the resolved + * geometry of the canonical one-page CV. It matters more here than on the + * simpler sheets: almost every distance in this design is computed from a + * reference grid and a set of type metrics, so a change to one constant moves + * a great many nodes at once. + * + *

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

    + */ +class SerifHeadlineLayoutSnapshotTest { + + @Test + void canonicalCvMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + SerifHeadline.create().compose(session, SerifHeadlineFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "serif_headline_layout", "cv-v2"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java new file mode 100644 index 000000000..a90b665b4 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java @@ -0,0 +1,225 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.exceptions.AtomicNodeTooLargeException; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link SerifHeadline} — proves the preset renders a + * {@link CvDocument} end-to-end with its packaged marks, reaches its + * channels as PDF links, and pins the contracts the class documents: the + * entry marks are this preset's own vocabulary, an entry without one is + * drawn plain, the sheet holds one page, and the two blocks whose titles + * overlap reach the right berths. + */ +class SerifHeadlineSmokeTest { + + private static byte[] render(CvDocument doc) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + SerifHeadline.create().compose(session, doc); + 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); + } + } + + private static List linkUris(byte[] pdfBytes) throws Exception { + List uris = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI action) { + uris.add(action.getURI()); + } + } + } + } + return uris; + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = SerifHeadline.create(); + assertThat(template.id()).isEqualTo(SerifHeadline.ID); + assertThat(template.displayName()).isEqualTo(SerifHeadline.DISPLAY_NAME); + } + + @Test + void canonicalRenderCarriesTheUntrackedText() throws Exception { + // The headings, the name and the role are set letter by letter to + // reach their tracking, so they arrive on the text layer spaced out. + // What is asserted here is the text drawn as written. + String text = textOf(render(SerifHeadlineFixtures.canonicalCv())); + assertThat(text) + .contains("alex.morgan@email.com") + .contains("github.com/alexmorgan") + .contains("Software Engineer with 5+ years") + .contains("TechSolutions Inc.") + .contains("Led a team of 4 engineers and mentored junior developers.") + .contains("E-Commerce Platform") + .contains("Java, Spring Boot, React, PostgreSQL, AWS") + .contains("New York University") + .contains("Kubernetes") + .contains("Problem Solving | Communication") + // The certification titles wrap inside their narrow column, + // which is the design: assert either side of the break. + .contains("Docker Certified") + .contains("(DCA)") + .contains("Improved system efficiency by 40%"); + } + + @Test + void rendersOneCanonicalPage() throws Exception { + try (PDDocument document = + Loader.loadPDF(render(SerifHeadlineFixtures.canonicalCv()))) { + assertThat(document.getNumberOfPages()).isEqualTo(1); + } + } + + @Test + void channelsReachThePdfAsLinks() throws Exception { + // The dial and mail targets are built from the values. They are + // annotations, so they move no pixel and no layout node — which is + // why the parity gates cannot see them either. + assertThat(linkUris(render(SerifHeadlineFixtures.canonicalCv()))) + .contains("tel:+15551234567", + "mailto:alex.morgan@email.com", + "https://www.linkedin.com/in/alexmorgan", + "https://github.com/alexmorgan"); + } + + @Test + void rejectsAnUnknownEntryMarkByName() { + // An icon token is data, so a wrong one is a data error — and the + // message names the set a document may choose from. + CvDocument doc = CvDocument.builder() + .identity(identity()) + .section(EntriesSection.builder("Projects") + .entry(CvEntry.builder("Ledgerkit").icon("no-such-mark").build()) + .build()) + .build(); + try (DocumentSession session = GraphCompose.document().create()) { + assertThatThrownBy(() -> SerifHeadline.create().compose(session, doc)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("no-such-mark") + .hasMessageContaining("rocket"); + } + } + + @Test + void drawsAnEntryWithoutAMark() throws Exception { + // No token, no plate — the card is drawn, just unmarked. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(EntriesSection.builder("Projects") + .entry(CvEntry.builder("Ledgerkit") + .subtitle("Java") + .body("A ledger.") + .build()) + .build()) + .build())); + assertThat(text).contains("Ledgerkit").contains("A ledger."); + } + + @Test + void softSkillsTakeTheirOwnBerthRatherThanTheSkillsOne() throws Exception { + // "Soft Skills" names the skills berth too. The block with a shape of + // its own wins it, so both are drawn rather than one swallowing the + // other. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(SkillsSection.builder("Skills") + .leveledGroup("Languages", List.of(CvSkill.of("Java", 0.8))) + .build()) + .section(new ParagraphSection("Soft Skills", "Teamwork | Curiosity")) + .build())); + assertThat(text).contains("Java").contains("Teamwork | Curiosity"); + } + + @Test + void drawsTheEmployerWithoutAPlace() throws Exception { + // The pipe belongs to the location; an entry with no place gets the + // employer alone rather than a line ending in a separator. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(EntriesSection.builder("Experience") + .entry(CvEntry.builder("Engineer") + .subtitle("Acme") + .date("2024") + .body("Shipped a thing.") + .build()) + .build()) + .build())); + assertThat(text).contains("Acme").doesNotContain("Acme |"); + } + + @Test + void refusesACvLongerThanTheSheet() { + // The sheet holds one page: the body is a single row, and a row is + // atomic. A CV past that raises rather than flowing. + EntriesSection.Builder experience = EntriesSection.builder("Experience"); + for (int i = 0; i < 14; i++) { + experience.entry(CvEntry.builder("Role " + i) + .subtitle("Employer " + i) + .place("City") + .date("2010 - 2011") + .body(List.of( + "Did a substantial thing that took a full line of text here.", + "Did a second substantial thing, also a full line of text.", + "And a third, so each role occupies real vertical space.")) + .build()); + } + CvDocument doc = CvDocument.builder() + .identity(identity()) + .section(experience.build()) + .build(); + try (DocumentSession session = GraphCompose.document().create()) { + SerifHeadline.create().compose(session, doc); + assertThatThrownBy(session::toPdfBytes) + .isInstanceOf(AtomicNodeTooLargeException.class) + .hasMessageContaining("BodyColumns"); + } + } + + private static CvIdentity identity() { + return CvIdentity.builder() + .name("Ada", "Lovelace") + .jobTitle("Engineer") + .contact(new Contact("+44 20 7946 0000", "ada@example.com", "London, UK")) + .link(new Link("github.com/ada", "https://github.com/ada")) + .build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineVisualParityTest.java new file mode 100644 index 000000000..fbacb17ce --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineVisualParityTest.java @@ -0,0 +1,41 @@ +package com.demcha.compose.document.templates.cv.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 SerifHeadline} - the canonical + * one-page CV against a checked-in baseline. + * + *

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

    + */ +class SerifHeadlineVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "cv-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()) { + SerifHeadline.create().compose(document, SerifHeadlineFixtures.canonicalCv()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("serif_headline", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json new file mode 100644 index 000000000..c427e8259 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json @@ -0,0 +1,7067 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 531.911, + "innerHeight" : 778.525, + "margin" : { + "top" : 31.682, + "right" : 31.682, + "bottom" : 31.682, + "left" : 31.682 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "SerifHeadlineCv[0]", + "entityName" : "SerifHeadlineCv", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 31.682, + "computedY" : 43.938, + "placementX" : 31.682, + "placementY" : 43.938, + "placementWidth" : 531.911, + "placementHeight" : 766.27, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 531.911, + "contentHeight" : 766.27, + "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" : "SerifHeadlineCv[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "SerifHeadlineCv[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 31.682, + "computedY" : 740.942, + "placementX" : 31.682, + "placementY" : 740.942, + "placementWidth" : 531.911, + "placementHeight" : 69.266, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 531.911, + "contentHeight" : 69.266, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 11.595, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Masthead[0]/Identity[0]", + "entityName" : "Identity", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 31.682, + "computedY" : 740.942, + "placementX" : 31.682, + "placementY" : 740.942, + "placementWidth" : 377.596, + "placementHeight" : 69.266, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 377.596, + "contentHeight" : 69.266, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Identity[0]/Name[0]", + "entityName" : "Name", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Identity[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 31.682, + "computedY" : 767.132, + "placementX" : 31.682, + "placementY" : 767.132, + "placementWidth" : 377.596, + "placementHeight" : 43.076, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 377.596, + "contentHeight" : 43.076, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.359, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Masthead[0]/Identity[0]/Role[1]", + "entityName" : "Role", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Identity[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 31.682, + "computedY" : 751.271, + "placementX" : 31.682, + "placementY" : 751.271, + "placementWidth" : 172.592, + "placementHeight" : 15.502, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 172.592, + "contentHeight" : 15.502, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 8.585, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Masthead[0]/Identity[0]/GoldRule[2]", + "entityName" : "GoldRule", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Identity[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 31.682, + "computedY" : 740.942, + "placementX" : 31.682, + "placementY" : 740.942, + "placementWidth" : 45.925, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.925, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]", + "entityName" : "Contact", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 446.733, + "computedY" : 741.916, + "placementX" : 446.733, + "placementY" : 741.916, + "placementWidth" : 116.861, + "placementHeight" : 68.292, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.861, + "contentHeight" : 68.292, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_phone[0]", + "entityName" : "ContactRow_phone", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 446.733, + "computedY" : 799.389, + "placementX" : 446.733, + "placementY" : 799.389, + "placementWidth" : 116.861, + "placementHeight" : 10.819, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.861, + "contentHeight" : 10.819, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_phone[0]/ContactGlyph_phone[0]", + "entityName" : "ContactGlyph_phone", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_phone[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 446.733, + "computedY" : 800.147, + "placementX" : 446.733, + "placementY" : 800.147, + "placementWidth" : 9.301, + "placementHeight" : 9.301, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.301, + "contentHeight" : 9.301, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_phone[0]/ContactValue_phone[1]", + "entityName" : "ContactValue_phone", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_phone[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 465.335, + "computedY" : 799.954, + "placementX" : 465.335, + "placementY" : 799.954, + "placementWidth" : 67.643, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.643, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_email[1]", + "entityName" : "ContactRow_email", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 446.733, + "computedY" : 785.02, + "placementX" : 446.733, + "placementY" : 785.02, + "placementWidth" : 116.861, + "placementHeight" : 10.819, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.861, + "contentHeight" : 10.819, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_email[1]/ContactGlyph_email[0]", + "entityName" : "ContactGlyph_email", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_email[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 446.733, + "computedY" : 785.779, + "placementX" : 446.733, + "placementY" : 785.779, + "placementWidth" : 9.301, + "placementHeight" : 9.301, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.301, + "contentHeight" : 9.301, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_email[1]/ContactValue_email[1]", + "entityName" : "ContactValue_email", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_email[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 465.335, + "computedY" : 785.586, + "placementX" : 465.335, + "placementY" : 785.586, + "placementWidth" : 85.495, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.495, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_location[2]", + "entityName" : "ContactRow_location", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 446.733, + "computedY" : 770.652, + "placementX" : 446.733, + "placementY" : 770.652, + "placementWidth" : 116.861, + "placementHeight" : 10.819, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.861, + "contentHeight" : 10.819, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_location[2]/ContactGlyph_location[0]", + "entityName" : "ContactGlyph_location", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_location[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 446.733, + "computedY" : 771.411, + "placementX" : 446.733, + "placementY" : 771.411, + "placementWidth" : 9.301, + "placementHeight" : 9.301, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.301, + "contentHeight" : 9.301, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_location[2]/ContactValue_location[1]", + "entityName" : "ContactValue_location", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_location[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 465.335, + "computedY" : 771.217, + "placementX" : 465.335, + "placementY" : 771.217, + "placementWidth" : 70.3, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.3, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_linkedin[3]", + "entityName" : "ContactRow_linkedin", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 446.733, + "computedY" : 756.284, + "placementX" : 446.733, + "placementY" : 756.284, + "placementWidth" : 116.861, + "placementHeight" : 10.819, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.861, + "contentHeight" : 10.819, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_linkedin[3]/ContactGlyph_linkedin[0]", + "entityName" : "ContactGlyph_linkedin", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_linkedin[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 446.733, + "computedY" : 757.043, + "placementX" : 446.733, + "placementY" : 757.043, + "placementWidth" : 9.301, + "placementHeight" : 9.301, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.301, + "contentHeight" : 9.301, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_linkedin[3]/ContactValue_linkedin[1]", + "entityName" : "ContactValue_linkedin", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_linkedin[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 465.335, + "computedY" : 756.849, + "placementX" : 465.335, + "placementY" : 756.849, + "placementWidth" : 99.487, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.487, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_github[4]", + "entityName" : "ContactRow_github", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 446.733, + "computedY" : 741.916, + "placementX" : 446.733, + "placementY" : 741.916, + "placementWidth" : 116.861, + "placementHeight" : 10.819, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.861, + "contentHeight" : 10.819, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_github[4]/ContactGlyph_github[0]", + "entityName" : "ContactGlyph_github", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_github[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 446.733, + "computedY" : 742.675, + "placementX" : 446.733, + "placementY" : 742.675, + "placementWidth" : 9.301, + "placementHeight" : 9.301, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.301, + "contentHeight" : 9.301, + "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" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_github[4]/ContactValue_github[1]", + "entityName" : "ContactValue_github", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Masthead[0]/Contact[1]/ContactRow_github[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 465.335, + "computedY" : 742.481, + "placementX" : 465.335, + "placementY" : 742.481, + "placementWidth" : 84.284, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 84.284, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/Summary[1]", + "entityName" : "Summary", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 31.682, + "computedY" : 697.541, + "placementX" : 31.682, + "placementY" : 697.541, + "placementWidth" : 362.544, + "placementHeight" : 31.806, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 362.544, + "contentHeight" : 31.806, + "margin" : { + "top" : 0.0, + "right" : 150.584, + "bottom" : 13.041, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/MastheadRule[2]", + "entityName" : "MastheadRule", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 31.682, + "computedY" : 683.5, + "placementX" : 31.682, + "placementY" : 683.5, + "placementWidth" : 531.911, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 531.911, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 13.511, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]", + "entityName" : "BodyColumns", + "entityKind" : "RowNode", + "parentPath" : "SerifHeadlineCv[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 31.682, + "computedY" : 189.371, + "placementX" : 31.682, + "placementY" : 189.371, + "placementWidth" : 531.911, + "placementHeight" : 480.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 531.911, + "contentHeight" : 480.618, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.43, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]", + "entityName" : "MainColumn", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 31.682, + "computedY" : 218.426, + "placementX" : 31.682, + "placementY" : 218.426, + "placementWidth" : 362.152, + "placementHeight" : 451.563, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 362.152, + "contentHeight" : 451.563, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 19.175, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Experience[0]", + "entityName" : "SectionHeading_Experience", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 31.682, + "computedY" : 657.394, + "placementX" : 31.682, + "placementY" : 657.394, + "placementWidth" : 342.976, + "placementHeight" : 12.595, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 342.976, + "contentHeight" : 12.595, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Experience[0]/HeadingDash_Experience[0]", + "entityName" : "HeadingDash_Experience", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Experience[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 14.533, + "computedY" : 662.819, + "placementX" : 14.533, + "placementY" : 662.819, + "placementWidth" : 12.789, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.789, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Experience[0]/SectionTitle_Experience[1]", + "entityName" : "SectionTitle_Experience", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Experience[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 36.623, + "computedY" : 657.878, + "placementX" : 36.623, + "placementY" : 657.878, + "placementWidth" : 72.353, + "placementHeight" : 11.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.353, + "contentHeight" : 11.626, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "entityName" : "ExperienceRail", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 36.275, + "computedY" : 381.894, + "placementX" : 36.275, + "placementY" : 381.894, + "placementWidth" : 338.384, + "placementHeight" : 256.75, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.384, + "contentHeight" : 256.75, + "margin" : { + "top" : 18.75, + "right" : 0.0, + "bottom" : 0.0, + "left" : 4.592 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]", + "entityName" : "EntryHead_SeniorSoftwareEngineer", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 36.275, + "computedY" : 632.249, + "placementX" : 36.275, + "placementY" : 632.249, + "placementWidth" : 338.384, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.384, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]/Marker_SeniorSoftwareEngineer[0]", + "entityName" : "Marker_SeniorSoftwareEngineer", + "entityKind" : "EllipseNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 33.077, + "computedY" : 632.249, + "placementX" : 33.077, + "placementY" : 632.249, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]/JobTitle_SeniorSoftwareEngineer[1]", + "entityName" : "JobTitle_SeniorSoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 60.748, + "computedY" : 630.118, + "placementX" : 60.748, + "placementY" : 630.118, + "placementWidth" : 109.812, + "placementHeight" : 11.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.812, + "contentHeight" : 11.626, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]/JobDates_SeniorSoftwareEngineer[2]", + "entityName" : "JobDates_SeniorSoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SeniorSoftwareEngineer[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 36.275, + "computedY" : 631.006, + "placementX" : 36.275, + "placementY" : 631.006, + "placementWidth" : 338.384, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.384, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/Employer_SeniorSoftwareEngineer[1]", + "entityName" : "Employer_SeniorSoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 60.748, + "computedY" : 613.964, + "placementX" : 60.748, + "placementY" : 613.964, + "placementWidth" : 110.997, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.997, + "contentHeight" : 8.284, + "margin" : { + "top" : 10.001, + "right" : 0.0, + "bottom" : 8.153, + "left" : 24.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/Highlights_SeniorSoftwareEngineer[2]", + "entityName" : "Highlights_SeniorSoftwareEngineer", + "entityKind" : "ListNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 60.748, + "computedY" : 537.877, + "placementX" : 60.748, + "placementY" : 537.877, + "placementWidth" : 310.75, + "placementHeight" : 67.934, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 310.75, + "contentHeight" : 67.934, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 24.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntrySeparator_SeniorSoftwareEngineer[3]", + "entityName" : "EntrySeparator_SeniorSoftwareEngineer", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 60.748, + "computedY" : 521.38, + "placementX" : 60.748, + "placementY" : 521.38, + "placementWidth" : 313.91, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.91, + "contentHeight" : 1.0, + "margin" : { + "top" : 15.497, + "right" : 0.0, + "bottom" : 18.819, + "left" : 24.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]", + "entityName" : "EntryHead_SoftwareEngineer", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 36.275, + "computedY" : 496.166, + "placementX" : 36.275, + "placementY" : 496.166, + "placementWidth" : 338.384, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.384, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]/Marker_SoftwareEngineer[0]", + "entityName" : "Marker_SoftwareEngineer", + "entityKind" : "EllipseNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 33.077, + "computedY" : 496.166, + "placementX" : 33.077, + "placementY" : 496.166, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]/JobTitle_SoftwareEngineer[1]", + "entityName" : "JobTitle_SoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 60.748, + "computedY" : 494.034, + "placementX" : 60.748, + "placementY" : 494.034, + "placementWidth" : 79.855, + "placementHeight" : 11.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 79.855, + "contentHeight" : 11.626, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]/JobDates_SoftwareEngineer[2]", + "entityName" : "JobDates_SoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_SoftwareEngineer[4]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 36.275, + "computedY" : 494.923, + "placementX" : 36.275, + "placementY" : 494.923, + "placementWidth" : 338.384, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.384, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/Employer_SoftwareEngineer[5]", + "entityName" : "Employer_SoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 60.748, + "computedY" : 477.881, + "placementX" : 60.748, + "placementY" : 477.881, + "placementWidth" : 104.315, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.315, + "contentHeight" : 8.284, + "margin" : { + "top" : 10.001, + "right" : 0.0, + "bottom" : 8.153, + "left" : 24.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/Highlights_SoftwareEngineer[6]", + "entityName" : "Highlights_SoftwareEngineer", + "entityKind" : "ListNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 60.748, + "computedY" : 423.605, + "placementX" : 60.748, + "placementY" : 423.605, + "placementWidth" : 249.59, + "placementHeight" : 46.123, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.59, + "contentHeight" : 46.123, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 24.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntrySeparator_SoftwareEngineer[7]", + "entityName" : "EntrySeparator_SoftwareEngineer", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 60.748, + "computedY" : 407.108, + "placementX" : 60.748, + "placementY" : 407.108, + "placementWidth" : 313.91, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 313.91, + "contentHeight" : 1.0, + "margin" : { + "top" : 15.497, + "right" : 0.0, + "bottom" : 18.819, + "left" : 24.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]", + "entityName" : "EntryHead_JuniorSoftwareEngineer", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]", + "childIndex" : 8, + "depth" : 5, + "layer" : 5, + "computedX" : 36.275, + "computedY" : 381.894, + "placementX" : 36.275, + "placementY" : 381.894, + "placementWidth" : 338.384, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.384, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]/Marker_JuniorSoftwareEngineer[0]", + "entityName" : "Marker_JuniorSoftwareEngineer", + "entityKind" : "EllipseNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 33.077, + "computedY" : 381.894, + "placementX" : 33.077, + "placementY" : 381.894, + "placementWidth" : 6.395, + "placementHeight" : 6.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.395, + "contentHeight" : 6.395, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]/JobTitle_JuniorSoftwareEngineer[1]", + "entityName" : "JobTitle_JuniorSoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 60.748, + "computedY" : 379.762, + "placementX" : 60.748, + "placementY" : 379.762, + "placementWidth" : 108.95, + "placementHeight" : 11.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.95, + "contentHeight" : 11.626, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]/JobDates_JuniorSoftwareEngineer[2]", + "entityName" : "JobDates_JuniorSoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceRail[1]/EntryHead_JuniorSoftwareEngineer[8]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 36.275, + "computedY" : 380.65, + "placementX" : 36.275, + "placementY" : 380.65, + "placementWidth" : 338.384, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 338.384, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceTail[2]", + "entityName" : "ExperienceTail", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 36.275, + "computedY" : 321.477, + "placementX" : 36.275, + "placementY" : 321.477, + "placementWidth" : 278.351, + "placementHeight" : 60.417, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 278.351, + "contentHeight" : 60.417, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 4.592 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceTail[2]/Employer_JuniorSoftwareEngineer[0]", + "entityName" : "Employer_JuniorSoftwareEngineer", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceTail[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 60.748, + "computedY" : 363.608, + "placementX" : 60.748, + "placementY" : 363.608, + "placementWidth" : 89.341, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 89.341, + "contentHeight" : 8.284, + "margin" : { + "top" : 10.001, + "right" : 0.0, + "bottom" : 8.153, + "left" : 24.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceTail[2]/Highlights_JuniorSoftwareEngineer[1]", + "entityName" : "Highlights_JuniorSoftwareEngineer", + "entityKind" : "ListNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ExperienceTail[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 60.748, + "computedY" : 321.477, + "placementX" : 60.748, + "placementY" : 321.477, + "placementWidth" : 253.877, + "placementHeight" : 33.978, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 253.877, + "contentHeight" : 33.978, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 24.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]", + "entityName" : "SectionHeading_Projects", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 31.682, + "computedY" : 285.277, + "placementX" : 31.682, + "placementY" : 285.277, + "placementWidth" : 342.976, + "placementHeight" : 12.595, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 342.976, + "contentHeight" : 12.595, + "margin" : { + "top" : 23.605, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]/HeadingDash_Projects[0]", + "entityName" : "HeadingDash_Projects", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 14.533, + "computedY" : 290.703, + "placementX" : 14.533, + "placementY" : 290.703, + "placementWidth" : 12.789, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.789, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]/SectionTitle_Projects[1]", + "entityName" : "SectionTitle_Projects", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 36.623, + "computedY" : 285.762, + "placementX" : 36.623, + "placementY" : 285.762, + "placementWidth" : 58.622, + "placementHeight" : 11.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.622, + "contentHeight" : 11.626, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]/HeadingTail_Projects[2]", + "entityName" : "HeadingTail_Projects", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/SectionHeading_Projects[3]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 105.848, + "computedY" : 291.075, + "placementX" : 105.848, + "placementY" : 291.075, + "placementWidth" : 268.81, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 268.81, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "entityName" : "ProjectsBand", + "entityKind" : "LayerStackNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 31.682, + "computedY" : 218.426, + "placementX" : 31.682, + "placementY" : 218.426, + "placementWidth" : 342.976, + "placementHeight" : 52.675, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 342.976, + "contentHeight" : 52.675, + "margin" : { + "top" : 14.176, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]", + "entityName" : "ProjectCard_ECommercePlatform", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 31.682, + "computedY" : 218.426, + "placementX" : 31.682, + "placementY" : 218.426, + "placementWidth" : 168.307, + "placementHeight" : 52.675, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 168.307, + "contentHeight" : 52.675, + "margin" : { + "top" : 0.0, + "right" : 171.488, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 33.135 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]/ProjectTitle_ECommercePlatform[0]", + "entityName" : "ProjectTitle_ECommercePlatform", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 64.818, + "computedY" : 261.413, + "placementX" : 64.818, + "placementY" : 261.413, + "placementWidth" : 80.094, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.094, + "contentHeight" : 9.689, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.223, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]/ProjectStack_ECommercePlatform[1]", + "entityName" : "ProjectStack_ECommercePlatform", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 64.818, + "computedY" : 248.906, + "placementX" : 64.818, + "placementY" : 248.906, + "placementWidth" : 123.837, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.837, + "contentHeight" : 8.284, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.995, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]/ProjectBody_ECommercePlatform[2]", + "entityName" : "ProjectBody_ECommercePlatform", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_ECommercePlatform[0]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 64.818, + "computedY" : 218.426, + "placementX" : 64.818, + "placementY" : 218.426, + "placementWidth" : 135.172, + "placementHeight" : 27.484, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 135.172, + "contentHeight" : 27.484, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]", + "entityName" : "ProjectCard_TaskManagementAPI", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 203.17, + "computedY" : 218.426, + "placementX" : 203.17, + "placementY" : 218.426, + "placementWidth" : 167.99, + "placementHeight" : 52.675, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.99, + "contentHeight" : 52.675, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 171.488 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 41.274 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]/ProjectTitle_TaskManagementAPI[0]", + "entityName" : "ProjectTitle_TaskManagementAPI", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 244.444, + "computedY" : 261.413, + "placementX" : 244.444, + "placementY" : 261.413, + "placementWidth" : 81.345, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 81.345, + "contentHeight" : 9.689, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.223, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]/ProjectStack_TaskManagementAPI[1]", + "entityName" : "ProjectStack_TaskManagementAPI", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 244.444, + "computedY" : 248.906, + "placementX" : 244.444, + "placementY" : 248.906, + "placementWidth" : 105.847, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.847, + "contentHeight" : 8.284, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.995, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]/ProjectBody_TaskManagementAPI[2]", + "entityName" : "ProjectBody_TaskManagementAPI", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectCard_TaskManagementAPI[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 244.444, + "computedY" : 218.426, + "placementX" : 244.444, + "placementY" : 218.426, + "placementWidth" : 126.716, + "placementHeight" : 27.484, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 126.716, + "contentHeight" : 27.484, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_0[2]", + "entityName" : "ProjectsGlyph_0", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 29.357, + "computedY" : 243.779, + "placementX" : 29.357, + "placementY" : 243.779, + "placementWidth" : 27.322, + "placementHeight" : 27.322, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.322, + "contentHeight" : 27.322, + "margin" : { + "top" : 0.0, + "right" : 171.488, + "bottom" : 0.0, + "left" : -2.325 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_0[2]/ProjectPlate_ECommercePlatform[0]", + "entityName" : "ProjectPlate_ECommercePlatform", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_0[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 29.357, + "computedY" : 243.779, + "placementX" : 29.357, + "placementY" : 243.779, + "placementWidth" : 27.322, + "placementHeight" : 27.322, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.322, + "contentHeight" : 27.322, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_0[2]/ProjectPlate_ECommercePlatform[0]/ProjectPlate_ECommercePlatformGlyph[0]", + "entityName" : "ProjectPlate_ECommercePlatformGlyph", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_0[2]/ProjectPlate_ECommercePlatform[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 35.468, + "computedY" : 249.89, + "placementX" : 35.468, + "placementY" : 249.89, + "placementWidth" : 15.1, + "placementHeight" : 15.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.1, + "contentHeight" : 15.1, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_1[3]", + "entityName" : "ProjectsGlyph_1", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 208.984, + "computedY" : 243.779, + "placementX" : 208.984, + "placementY" : 243.779, + "placementWidth" : 27.322, + "placementHeight" : 27.322, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.322, + "contentHeight" : 27.322, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 177.301 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_1[3]/ProjectPlate_TaskManagementAPI[0]", + "entityName" : "ProjectPlate_TaskManagementAPI", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_1[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 208.984, + "computedY" : 243.779, + "placementX" : 208.984, + "placementY" : 243.779, + "placementWidth" : 27.322, + "placementHeight" : 27.322, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.322, + "contentHeight" : 27.322, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_1[3]/ProjectPlate_TaskManagementAPI[0]/ProjectPlate_TaskManagementAPIGlyph[0]", + "entityName" : "ProjectPlate_TaskManagementAPIGlyph", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsGlyph_1[3]/ProjectPlate_TaskManagementAPI[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 215.095, + "computedY" : 249.89, + "placementX" : 215.095, + "placementY" : 249.89, + "placementWidth" : 15.1, + "placementHeight" : 15.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.1, + "contentHeight" : 15.1, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsSeparator_1[4]", + "entityName" : "ProjectsSeparator_1", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 203.17, + "computedY" : 222.962, + "placementX" : 203.17, + "placementY" : 222.962, + "placementWidth" : 0.698, + "placementHeight" : 48.139, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.698, + "contentHeight" : 48.139, + "margin" : { + "top" : 0.0, + "right" : 170.791, + "bottom" : 0.0, + "left" : 171.488 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsSeparator_1[4]/ProjectsSeparatorLine_1[0]", + "entityName" : "ProjectsSeparatorLine_1", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/MainColumn[0]/ProjectsBand[4]/ProjectsSeparator_1[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 203.17, + "computedY" : 222.962, + "placementX" : 203.17, + "placementY" : 222.962, + "placementWidth" : 1.0, + "placementHeight" : 48.139, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 48.139, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "entityName" : "AsideColumn", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 393.834, + "computedY" : 189.371, + "placementX" : 393.834, + "placementY" : 189.371, + "placementWidth" : 169.76, + "placementHeight" : 480.618, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 169.76, + "contentHeight" : 480.618, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 19.175 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SectionHeading_Education[0]", + "entityName" : "SectionHeading_Education", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 657.394, + "placementX" : 413.009, + "placementY" : 657.394, + "placementWidth" : 150.584, + "placementHeight" : 12.595, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 12.595, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SectionHeading_Education[0]/HeadingDash_Education[0]", + "entityName" : "HeadingDash_Education", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SectionHeading_Education[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 408.367, + "computedY" : 662.819, + "placementX" : 408.367, + "placementY" : 662.819, + "placementWidth" : 12.789, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.789, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SectionHeading_Education[0]/SectionTitle_Education[1]", + "entityName" : "SectionTitle_Education", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SectionHeading_Education[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 430.457, + "computedY" : 657.878, + "placementX" : 430.457, + "placementY" : 657.878, + "placementWidth" : 70.23, + "placementHeight" : 11.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.23, + "contentHeight" : 11.626, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/Degree_MSinComputerScience[1]", + "entityName" : "Degree_MSinComputerScience", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 633.038, + "placementX" : 413.009, + "placementY" : 633.038, + "placementWidth" : 92.059, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.059, + "contentHeight" : 9.689, + "margin" : { + "top" : 14.667, + "right" : 0.0, + "bottom" : 3.732, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/Institution_MSinComputerScience[2]", + "entityName" : "Institution_MSinComputerScience", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 621.022, + "placementX" : 413.009, + "placementY" : 621.022, + "placementWidth" : 63.116, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 63.116, + "contentHeight" : 8.284, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.978, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/Years_MSinComputerScience[3]", + "entityName" : "Years_MSinComputerScience", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 608.761, + "placementX" : 413.009, + "placementY" : 608.761, + "placementWidth" : 95.175, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.175, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/EducationStub_MSinComputerScience[4]", + "entityName" : "EducationStub_MSinComputerScience", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 599.223, + "placementX" : 413.009, + "placementY" : 599.223, + "placementWidth" : 15.696, + "placementHeight" : 1.163, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.696, + "contentHeight" : 1.163, + "margin" : { + "top" : 8.375, + "right" : 0.0, + "bottom" : 9.824, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/Degree_BSinComputerScience[5]", + "entityName" : "Degree_BSinComputerScience", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 579.71, + "placementX" : 413.009, + "placementY" : 579.71, + "placementWidth" : 89.75, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 89.75, + "contentHeight" : 9.689, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.732, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/Institution_BSinComputerScience[6]", + "entityName" : "Institution_BSinComputerScience", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 567.695, + "placementX" : 413.009, + "placementY" : 567.695, + "placementWidth" : 109.561, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.561, + "contentHeight" : 8.284, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.978, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/Years_BSinComputerScience[7]", + "entityName" : "Years_BSinComputerScience", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 555.433, + "placementX" : 413.009, + "placementY" : 555.433, + "placementWidth" : 100.766, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.766, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SectionHeading_Skills[8]", + "entityName" : "SectionHeading_Skills", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 8, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 525.864, + "placementX" : 413.009, + "placementY" : 525.864, + "placementWidth" : 150.584, + "placementHeight" : 12.595, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 12.595, + "margin" : { + "top" : 16.973, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SectionHeading_Skills[8]/HeadingDash_Skills[0]", + "entityName" : "HeadingDash_Skills", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SectionHeading_Skills[8]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 408.367, + "computedY" : 531.29, + "placementX" : 408.367, + "placementY" : 531.29, + "placementWidth" : 12.789, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.789, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SectionHeading_Skills[8]/SectionTitle_Skills[1]", + "entityName" : "SectionTitle_Skills", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SectionHeading_Skills[8]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 430.457, + "computedY" : 526.349, + "placementX" : 430.457, + "placementY" : 526.349, + "placementWidth" : 38.052, + "placementHeight" : 11.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.052, + "contentHeight" : 11.626, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillCaption_Languages[9]", + "entityName" : "SkillCaption_Languages", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 9, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 506.519, + "placementX" : 413.009, + "placementY" : 506.519, + "placementWidth" : 50.545, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.545, + "contentHeight" : 8.284, + "margin" : { + "top" : 11.061, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]", + "entityName" : "SkillGroup_Languages", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 10, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 458.96, + "placementX" : 413.009, + "placementY" : 458.96, + "placementWidth" : 150.584, + "placementHeight" : 40.658, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 40.658, + "margin" : { + "top" : 6.901, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Java[0]", + "entityName" : "SkillRow_Java", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 490.644, + "placementX" : 413.009, + "placementY" : 490.644, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Java[0]/SkillLabel_Java[0]", + "entityName" : "SkillLabel_Java", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Java[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 490.989, + "placementX" : 413.009, + "placementY" : 490.989, + "placementWidth" : 13.344, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 13.344, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Java[0]/SkillTrack_Java[1]", + "entityName" : "SkillTrack_Java", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Java[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 494.259, + "placementX" : 496.16, + "placementY" : 494.259, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Java[0]/SkillTrack_Java[1]/SkillFill_Java[0]", + "entityName" : "SkillFill_Java", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Java[0]/SkillTrack_Java[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 494.259, + "placementX" : 496.16, + "placementY" : 494.259, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Python[1]", + "entityName" : "SkillRow_Python", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 480.083, + "placementX" : 413.009, + "placementY" : 480.083, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Python[1]/SkillLabel_Python[0]", + "entityName" : "SkillLabel_Python", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Python[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 480.428, + "placementX" : 413.009, + "placementY" : 480.428, + "placementWidth" : 21.807, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 21.807, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Python[1]/SkillTrack_Python[1]", + "entityName" : "SkillTrack_Python", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Python[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 483.698, + "placementX" : 496.16, + "placementY" : 483.698, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Python[1]/SkillTrack_Python[1]/SkillFill_Python[0]", + "entityName" : "SkillFill_Python", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_Python[1]/SkillTrack_Python[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 483.698, + "placementX" : 496.16, + "placementY" : 483.698, + "placementWidth" : 39.111, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 39.111, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_JavaScriptTypeScript[2]", + "entityName" : "SkillRow_JavaScriptTypeScript", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 469.522, + "placementX" : 413.009, + "placementY" : 469.522, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_JavaScriptTypeScript[2]/SkillLabel_JavaScriptTypeScript[0]", + "entityName" : "SkillLabel_JavaScriptTypeScript", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_JavaScriptTypeScript[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 469.867, + "placementX" : 413.009, + "placementY" : 469.867, + "placementWidth" : 70.295, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.295, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_JavaScriptTypeScript[2]/SkillTrack_JavaScriptTypeScript[1]", + "entityName" : "SkillTrack_JavaScriptTypeScript", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_JavaScriptTypeScript[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 473.137, + "placementX" : 496.16, + "placementY" : 473.137, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_JavaScriptTypeScript[2]/SkillTrack_JavaScriptTypeScript[1]/SkillFill_JavaScriptTypeScript[0]", + "entityName" : "SkillFill_JavaScriptTypeScript", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_JavaScriptTypeScript[2]/SkillTrack_JavaScriptTypeScript[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 473.137, + "placementX" : 496.16, + "placementY" : 473.137, + "placementWidth" : 32.368, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.368, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_SQL[3]", + "entityName" : "SkillRow_SQL", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 458.96, + "placementX" : 413.009, + "placementY" : 458.96, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_SQL[3]/SkillLabel_SQL[0]", + "entityName" : "SkillLabel_SQL", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_SQL[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 459.306, + "placementX" : 413.009, + "placementY" : 459.306, + "placementWidth" : 12.826, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.826, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_SQL[3]/SkillTrack_SQL[1]", + "entityName" : "SkillTrack_SQL", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_SQL[3]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 462.576, + "placementX" : 496.16, + "placementY" : 462.576, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_SQL[3]/SkillTrack_SQL[1]/SkillFill_SQL[0]", + "entityName" : "SkillFill_SQL", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Languages[10]/SkillRow_SQL[3]/SkillTrack_SQL[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 462.576, + "placementX" : 496.16, + "placementY" : 462.576, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillCaption_FrameworksLibraries[11]", + "entityName" : "SkillCaption_FrameworksLibraries", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 11, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 438.072, + "placementX" : 413.009, + "placementY" : 438.072, + "placementWidth" : 115.415, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 115.415, + "contentHeight" : 8.284, + "margin" : { + "top" : 12.605, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]", + "entityName" : "SkillGroup_FrameworksLibraries", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 12, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 379.952, + "placementX" : 413.009, + "placementY" : 379.952, + "placementWidth" : 150.584, + "placementHeight" : 51.219, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 51.219, + "margin" : { + "top" : 6.901, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_SpringBoot[0]", + "entityName" : "SkillRow_SpringBoot", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 422.197, + "placementX" : 413.009, + "placementY" : 422.197, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_SpringBoot[0]/SkillLabel_SpringBoot[0]", + "entityName" : "SkillLabel_SpringBoot", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_SpringBoot[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 422.542, + "placementX" : 413.009, + "placementY" : 422.542, + "placementWidth" : 35.772, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.772, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_SpringBoot[0]/SkillTrack_SpringBoot[1]", + "entityName" : "SkillTrack_SpringBoot", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_SpringBoot[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 425.812, + "placementX" : 496.16, + "placementY" : 425.812, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_SpringBoot[0]/SkillTrack_SpringBoot[1]/SkillFill_SpringBoot[0]", + "entityName" : "SkillFill_SpringBoot", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_SpringBoot[0]/SkillTrack_SpringBoot[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 425.812, + "placementX" : 496.16, + "placementY" : 425.812, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Hibernate[1]", + "entityName" : "SkillRow_Hibernate", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 411.636, + "placementX" : 413.009, + "placementY" : 411.636, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Hibernate[1]/SkillLabel_Hibernate[0]", + "entityName" : "SkillLabel_Hibernate", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Hibernate[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 411.981, + "placementX" : 413.009, + "placementY" : 411.981, + "placementWidth" : 30.36, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.36, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Hibernate[1]/SkillTrack_Hibernate[1]", + "entityName" : "SkillTrack_Hibernate", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Hibernate[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 415.251, + "placementX" : 496.16, + "placementY" : 415.251, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Hibernate[1]/SkillTrack_Hibernate[1]/SkillFill_Hibernate[0]", + "entityName" : "SkillFill_Hibernate", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Hibernate[1]/SkillTrack_Hibernate[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 415.251, + "placementX" : 496.16, + "placementY" : 415.251, + "placementWidth" : 36.414, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.414, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_React[2]", + "entityName" : "SkillRow_React", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 401.074, + "placementX" : 413.009, + "placementY" : 401.074, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_React[2]/SkillLabel_React[0]", + "entityName" : "SkillLabel_React", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_React[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 401.42, + "placementX" : 413.009, + "placementY" : 401.42, + "placementWidth" : 17.182, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.182, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_React[2]/SkillTrack_React[1]", + "entityName" : "SkillTrack_React", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_React[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 404.69, + "placementX" : 496.16, + "placementY" : 404.69, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_React[2]/SkillTrack_React[1]/SkillFill_React[0]", + "entityName" : "SkillFill_React", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_React[2]/SkillTrack_React[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 404.69, + "placementX" : 496.16, + "placementY" : 404.69, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Nodejs[3]", + "entityName" : "SkillRow_Nodejs", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 390.513, + "placementX" : 413.009, + "placementY" : 390.513, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Nodejs[3]/SkillLabel_Nodejs[0]", + "entityName" : "SkillLabel_Nodejs", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Nodejs[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 390.858, + "placementX" : 413.009, + "placementY" : 390.858, + "placementWidth" : 22.974, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.974, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Nodejs[3]/SkillTrack_Nodejs[1]", + "entityName" : "SkillTrack_Nodejs", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Nodejs[3]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 394.128, + "placementX" : 496.16, + "placementY" : 394.128, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Nodejs[3]/SkillTrack_Nodejs[1]/SkillFill_Nodejs[0]", + "entityName" : "SkillFill_Nodejs", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Nodejs[3]/SkillTrack_Nodejs[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 394.128, + "placementX" : 496.16, + "placementY" : 394.128, + "placementWidth" : 26.299, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.299, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Express[4]", + "entityName" : "SkillRow_Express", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 379.952, + "placementX" : 413.009, + "placementY" : 379.952, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Express[4]/SkillLabel_Express[0]", + "entityName" : "SkillLabel_Express", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Express[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 380.297, + "placementX" : 413.009, + "placementY" : 380.297, + "placementWidth" : 23.436, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.436, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Express[4]/SkillTrack_Express[1]", + "entityName" : "SkillTrack_Express", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Express[4]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 383.567, + "placementX" : 496.16, + "placementY" : 383.567, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Express[4]/SkillTrack_Express[1]/SkillFill_Express[0]", + "entityName" : "SkillFill_Express", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_FrameworksLibraries[12]/SkillRow_Express[4]/SkillTrack_Express[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 383.567, + "placementX" : 496.16, + "placementY" : 383.567, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillCaption_Databases[13]", + "entityName" : "SkillCaption_Databases", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 13, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 359.064, + "placementX" : 413.009, + "placementY" : 359.064, + "placementWidth" : 49.012, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.012, + "contentHeight" : 8.284, + "margin" : { + "top" : 12.605, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]", + "entityName" : "SkillGroup_Databases", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 14, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 322.066, + "placementX" : 413.009, + "placementY" : 322.066, + "placementWidth" : 150.584, + "placementHeight" : 30.097, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 30.097, + "margin" : { + "top" : 6.901, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MySQL[0]", + "entityName" : "SkillRow_MySQL", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 343.188, + "placementX" : 413.009, + "placementY" : 343.188, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MySQL[0]/SkillLabel_MySQL[0]", + "entityName" : "SkillLabel_MySQL", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MySQL[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 343.534, + "placementX" : 413.009, + "placementY" : 343.534, + "placementWidth" : 22.801, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.801, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MySQL[0]/SkillTrack_MySQL[1]", + "entityName" : "SkillTrack_MySQL", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MySQL[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 346.803, + "placementX" : 496.16, + "placementY" : 346.803, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MySQL[0]/SkillTrack_MySQL[1]/SkillFill_MySQL[0]", + "entityName" : "SkillFill_MySQL", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MySQL[0]/SkillTrack_MySQL[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 346.803, + "placementX" : 496.16, + "placementY" : 346.803, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_PostgreSQL[1]", + "entityName" : "SkillRow_PostgreSQL", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 332.627, + "placementX" : 413.009, + "placementY" : 332.627, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_PostgreSQL[1]/SkillLabel_PostgreSQL[0]", + "entityName" : "SkillLabel_PostgreSQL", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_PostgreSQL[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 332.972, + "placementX" : 413.009, + "placementY" : 332.972, + "placementWidth" : 36.104, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.104, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_PostgreSQL[1]/SkillTrack_PostgreSQL[1]", + "entityName" : "SkillTrack_PostgreSQL", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_PostgreSQL[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 336.242, + "placementX" : 496.16, + "placementY" : 336.242, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_PostgreSQL[1]/SkillTrack_PostgreSQL[1]/SkillFill_PostgreSQL[0]", + "entityName" : "SkillFill_PostgreSQL", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_PostgreSQL[1]/SkillTrack_PostgreSQL[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 336.242, + "placementX" : 496.16, + "placementY" : 336.242, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MongoDB[2]", + "entityName" : "SkillRow_MongoDB", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 322.066, + "placementX" : 413.009, + "placementY" : 322.066, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MongoDB[2]/SkillLabel_MongoDB[0]", + "entityName" : "SkillLabel_MongoDB", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MongoDB[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 322.411, + "placementX" : 413.009, + "placementY" : 322.411, + "placementWidth" : 31.403, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.403, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MongoDB[2]/SkillTrack_MongoDB[1]", + "entityName" : "SkillTrack_MongoDB", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MongoDB[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 325.681, + "placementX" : 496.16, + "placementY" : 325.681, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MongoDB[2]/SkillTrack_MongoDB[1]/SkillFill_MongoDB[0]", + "entityName" : "SkillFill_MongoDB", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_Databases[14]/SkillRow_MongoDB[2]/SkillTrack_MongoDB[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 325.681, + "placementX" : 496.16, + "placementY" : 325.681, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillCaption_ToolsTechnologies[15]", + "entityName" : "SkillCaption_ToolsTechnologies", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 15, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 301.178, + "placementX" : 413.009, + "placementY" : 301.178, + "placementWidth" : 105.596, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.596, + "contentHeight" : 8.284, + "margin" : { + "top" : 12.605, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]", + "entityName" : "SkillGroup_ToolsTechnologies", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 16, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 243.057, + "placementX" : 413.009, + "placementY" : 243.057, + "placementWidth" : 150.584, + "placementHeight" : 51.219, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 51.219, + "margin" : { + "top" : 6.901, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Docker[0]", + "entityName" : "SkillRow_Docker", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 285.302, + "placementX" : 413.009, + "placementY" : 285.302, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Docker[0]/SkillLabel_Docker[0]", + "entityName" : "SkillLabel_Docker", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Docker[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 285.647, + "placementX" : 413.009, + "placementY" : 285.647, + "placementWidth" : 22.132, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.132, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Docker[0]/SkillTrack_Docker[1]", + "entityName" : "SkillTrack_Docker", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Docker[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 288.917, + "placementX" : 496.16, + "placementY" : 288.917, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Docker[0]/SkillTrack_Docker[1]/SkillFill_Docker[0]", + "entityName" : "SkillFill_Docker", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Docker[0]/SkillTrack_Docker[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 288.917, + "placementX" : 496.16, + "placementY" : 288.917, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Kubernetes[1]", + "entityName" : "SkillRow_Kubernetes", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 274.741, + "placementX" : 413.009, + "placementY" : 274.741, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Kubernetes[1]/SkillLabel_Kubernetes[0]", + "entityName" : "SkillLabel_Kubernetes", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Kubernetes[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 275.086, + "placementX" : 413.009, + "placementY" : 275.086, + "placementWidth" : 35.061, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.061, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Kubernetes[1]/SkillTrack_Kubernetes[1]", + "entityName" : "SkillTrack_Kubernetes", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Kubernetes[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 278.356, + "placementX" : 496.16, + "placementY" : 278.356, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Kubernetes[1]/SkillTrack_Kubernetes[1]/SkillFill_Kubernetes[0]", + "entityName" : "SkillFill_Kubernetes", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Kubernetes[1]/SkillTrack_Kubernetes[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 278.356, + "placementX" : 496.16, + "placementY" : 278.356, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Jenkins[2]", + "entityName" : "SkillRow_Jenkins", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 264.18, + "placementX" : 413.009, + "placementY" : 264.18, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Jenkins[2]/SkillLabel_Jenkins[0]", + "entityName" : "SkillLabel_Jenkins", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Jenkins[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 264.525, + "placementX" : 413.009, + "placementY" : 264.525, + "placementWidth" : 22.422, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.422, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Jenkins[2]/SkillTrack_Jenkins[1]", + "entityName" : "SkillTrack_Jenkins", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Jenkins[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 267.795, + "placementX" : 496.16, + "placementY" : 267.795, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Jenkins[2]/SkillTrack_Jenkins[1]/SkillFill_Jenkins[0]", + "entityName" : "SkillFill_Jenkins", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Jenkins[2]/SkillTrack_Jenkins[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 267.795, + "placementX" : 496.16, + "placementY" : 267.795, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Git[3]", + "entityName" : "SkillRow_Git", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 253.619, + "placementX" : 413.009, + "placementY" : 253.619, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Git[3]/SkillLabel_Git[0]", + "entityName" : "SkillLabel_Git", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Git[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 253.964, + "placementX" : 413.009, + "placementY" : 253.964, + "placementWidth" : 9.181, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.181, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Git[3]/SkillTrack_Git[1]", + "entityName" : "SkillTrack_Git", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Git[3]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 257.234, + "placementX" : 496.16, + "placementY" : 257.234, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Git[3]/SkillTrack_Git[1]/SkillFill_Git[0]", + "entityName" : "SkillFill_Git", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_Git[3]/SkillTrack_Git[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 257.234, + "placementX" : 496.16, + "placementY" : 257.234, + "placementWidth" : 26.299, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.299, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_AWS[4]", + "entityName" : "SkillRow_AWS", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 413.009, + "computedY" : 243.057, + "placementX" : 413.009, + "placementY" : 243.057, + "placementWidth" : 150.584, + "placementHeight" : 8.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 150.584, + "contentHeight" : 8.974, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_AWS[4]/SkillLabel_AWS[0]", + "entityName" : "SkillLabel_AWS", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_AWS[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 413.009, + "computedY" : 243.403, + "placementX" : 413.009, + "placementY" : 243.403, + "placementWidth" : 15.574, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.574, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_AWS[4]/SkillTrack_AWS[1]", + "entityName" : "SkillTrack_AWS", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_AWS[4]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 496.16, + "computedY" : 246.673, + "placementX" : 496.16, + "placementY" : 246.673, + "placementWidth" : 67.434, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.434, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_AWS[4]/SkillTrack_AWS[1]/SkillFill_AWS[0]", + "entityName" : "SkillFill_AWS", + "entityKind" : "ShapeNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillGroup_ToolsTechnologies[16]/SkillRow_AWS[4]/SkillTrack_AWS[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 496.16, + "computedY" : 246.673, + "placementX" : 496.16, + "placementY" : 246.673, + "placementWidth" : 50.575, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.575, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SkillCaption_SoftSkills[17]", + "entityName" : "SkillCaption_SoftSkills", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 17, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 222.169, + "placementX" : 413.009, + "placementY" : 222.169, + "placementWidth" : 52.046, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.046, + "contentHeight" : 8.284, + "margin" : { + "top" : 12.605, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SoftSkill_ProblemSolvingCommunication[18]", + "entityName" : "SoftSkill_ProblemSolvingCommunication", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 18, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 208.748, + "placementX" : 413.009, + "placementY" : 208.748, + "placementWidth" : 127.875, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 127.875, + "contentHeight" : 9.689, + "margin" : { + "top" : 3.732, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SoftSkill_TeamworkAdaptability[19]", + "entityName" : "SoftSkill_TeamworkAdaptability", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 19, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 199.06, + "placementX" : 413.009, + "placementY" : 199.06, + "placementWidth" : 94.893, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 94.893, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]/SoftSkill_LeadershipTimeManagement[20]", + "entityName" : "SoftSkill_LeadershipTimeManagement", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/BodyColumns[3]/AsideColumn[1]", + "childIndex" : 20, + "depth" : 4, + "layer" : 4, + "computedX" : 413.009, + "computedY" : 189.371, + "placementX" : 413.009, + "placementY" : 189.371, + "placementWidth" : 119.535, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.535, + "contentHeight" : 9.689, + "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" : "SerifHeadlineCv[0]/Certifications[4]", + "entityName" : "Certifications", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 31.682, + "computedY" : 129.267, + "placementX" : 31.682, + "placementY" : 129.267, + "placementWidth" : 531.911, + "placementHeight" : 54.674, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 531.911, + "contentHeight" : 54.674, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 19.43, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/SectionHeading_Certifications[0]", + "entityName" : "SectionHeading_Certifications", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 31.682, + "computedY" : 171.346, + "placementX" : 31.682, + "placementY" : 171.346, + "placementWidth" : 531.911, + "placementHeight" : 12.595, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 531.911, + "contentHeight" : 12.595, + "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" : "SerifHeadlineCv[0]/Certifications[4]/SectionHeading_Certifications[0]/HeadingDash_Certifications[0]", + "entityName" : "HeadingDash_Certifications", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/SectionHeading_Certifications[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 14.533, + "computedY" : 176.772, + "placementX" : 14.533, + "placementY" : 176.772, + "placementWidth" : 12.789, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.789, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/Certifications[4]/SectionHeading_Certifications[0]/SectionTitle_Certifications[1]", + "entityName" : "SectionTitle_Certifications", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/SectionHeading_Certifications[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 36.623, + "computedY" : 171.831, + "placementX" : 36.623, + "placementY" : 171.831, + "placementWidth" : 98.603, + "placementHeight" : 11.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 98.603, + "contentHeight" : 11.626, + "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" : "SerifHeadlineCv[0]/Certifications[4]/SectionHeading_Certifications[0]/HeadingTail_Certifications[2]", + "entityName" : "HeadingTail_Certifications", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/SectionHeading_Certifications[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 146.764, + "computedY" : 177.144, + "placementX" : 146.764, + "placementY" : 177.144, + "placementWidth" : 416.83, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 416.83, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "entityName" : "CertificationsBand", + "entityKind" : "LayerStackNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 31.682, + "computedY" : 129.267, + "placementX" : 31.682, + "placementY" : 129.267, + "placementWidth" : 531.911, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 531.911, + "contentHeight" : 27.904, + "margin" : { + "top" : 14.176, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_AWSCertifiedDeveloperAssociate[0]", + "entityName" : "Certification_AWSCertifiedDeveloperAssociate", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 31.682, + "computedY" : 130.967, + "placementX" : 31.682, + "placementY" : 130.967, + "placementWidth" : 99.685, + "placementHeight" : 26.204, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.685, + "contentHeight" : 26.204, + "margin" : { + "top" : 0.0, + "right" : 425.529, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 31.391 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_AWSCertifiedDeveloperAssociate[0]/CertificationTitle_AWSCertifiedDeveloperAssociate[0]", + "entityName" : "CertificationTitle_AWSCertifiedDeveloperAssociate", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_AWSCertifiedDeveloperAssociate[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 63.074, + "computedY" : 139.251, + "placementX" : 63.074, + "placementY" : 139.251, + "placementWidth" : 68.294, + "placementHeight" : 17.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 68.294, + "contentHeight" : 17.92, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_AWSCertifiedDeveloperAssociate[0]/CertificationIssuer_AWSCertifiedDeveloperAssociate[1]", + "entityName" : "CertificationIssuer_AWSCertifiedDeveloperAssociate", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_AWSCertifiedDeveloperAssociate[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 63.074, + "computedY" : 130.967, + "placementX" : 63.074, + "placementY" : 130.967, + "placementWidth" : 19.26, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 19.26, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_OracleCertifiedProfessional[1]", + "entityName" : "Certification_OracleCertifiedProfessional", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 138.064, + "computedY" : 130.967, + "placementX" : 138.064, + "placementY" : 130.967, + "placementWidth" : 97.655, + "placementHeight" : 26.204, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.655, + "contentHeight" : 26.204, + "margin" : { + "top" : 0.0, + "right" : 319.147, + "bottom" : 0.0, + "left" : 106.382 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 39.53 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_OracleCertifiedProfessional[1]/CertificationTitle_OracleCertifiedProfessional[0]", + "entityName" : "CertificationTitle_OracleCertifiedProfessional", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_OracleCertifiedProfessional[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 177.594, + "computedY" : 139.251, + "placementX" : 177.594, + "placementY" : 139.251, + "placementWidth" : 48.309, + "placementHeight" : 17.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.309, + "contentHeight" : 17.92, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_OracleCertifiedProfessional[1]/CertificationIssuer_OracleCertifiedProfessional[1]", + "entityName" : "CertificationIssuer_OracleCertifiedProfessional", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_OracleCertifiedProfessional[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 177.594, + "computedY" : 130.967, + "placementX" : 177.594, + "placementY" : 130.967, + "placementWidth" : 58.125, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.125, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_DockerCertifiedAssociate[2]", + "entityName" : "Certification_DockerCertifiedAssociate", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 244.447, + "computedY" : 130.967, + "placementX" : 244.447, + "placementY" : 130.967, + "placementWidth" : 89.924, + "placementHeight" : 26.204, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 89.924, + "contentHeight" : 26.204, + "margin" : { + "top" : 0.0, + "right" : 212.765, + "bottom" : 0.0, + "left" : 212.765 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 39.53 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_DockerCertifiedAssociate[2]/CertificationTitle_DockerCertifiedAssociate[0]", + "entityName" : "CertificationTitle_DockerCertifiedAssociate", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_DockerCertifiedAssociate[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 283.977, + "computedY" : 139.251, + "placementX" : 283.977, + "placementY" : 139.251, + "placementWidth" : 50.394, + "placementHeight" : 17.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.394, + "contentHeight" : 17.92, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_DockerCertifiedAssociate[2]/CertificationIssuer_DockerCertifiedAssociate[1]", + "entityName" : "CertificationIssuer_DockerCertifiedAssociate", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_DockerCertifiedAssociate[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 283.977, + "computedY" : 130.967, + "placementX" : 283.977, + "placementY" : 130.967, + "placementWidth" : 18.225, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 18.225, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_SpringProfessionalCertification[3]", + "entityName" : "Certification_SpringProfessionalCertification", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 350.829, + "computedY" : 130.967, + "placementX" : 350.829, + "placementY" : 130.967, + "placementWidth" : 97.634, + "placementHeight" : 26.204, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.634, + "contentHeight" : 26.204, + "margin" : { + "top" : 0.0, + "right" : 106.382, + "bottom" : 0.0, + "left" : 319.147 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 39.53 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_SpringProfessionalCertification[3]/CertificationTitle_SpringProfessionalCertification[0]", + "entityName" : "CertificationTitle_SpringProfessionalCertification", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_SpringProfessionalCertification[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 390.359, + "computedY" : 139.251, + "placementX" : 390.359, + "placementY" : 139.251, + "placementWidth" : 58.104, + "placementHeight" : 17.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.104, + "contentHeight" : 17.92, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_SpringProfessionalCertification[3]/CertificationIssuer_SpringProfessionalCertification[1]", + "entityName" : "CertificationIssuer_SpringProfessionalCertification", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_SpringProfessionalCertification[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 390.359, + "computedY" : 130.967, + "placementX" : 390.359, + "placementY" : 130.967, + "placementWidth" : 29.787, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.787, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_KubernetesFundamentals[4]", + "entityName" : "Certification_KubernetesFundamentals", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 457.211, + "computedY" : 130.967, + "placementX" : 457.211, + "placementY" : 130.967, + "placementWidth" : 96.054, + "placementHeight" : 26.204, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.054, + "contentHeight" : 26.204, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 425.529 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 39.53 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_KubernetesFundamentals[4]/CertificationTitle_KubernetesFundamentals[0]", + "entityName" : "CertificationTitle_KubernetesFundamentals", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_KubernetesFundamentals[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 496.741, + "computedY" : 139.251, + "placementX" : 496.741, + "placementY" : 139.251, + "placementWidth" : 42.614, + "placementHeight" : 17.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.614, + "contentHeight" : 17.92, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_KubernetesFundamentals[4]/CertificationIssuer_KubernetesFundamentals[1]", + "entityName" : "CertificationIssuer_KubernetesFundamentals", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/Certification_KubernetesFundamentals[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 496.741, + "computedY" : 130.967, + "placementX" : 496.741, + "placementY" : 130.967, + "placementWidth" : 56.524, + "placementHeight" : 8.284, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.524, + "contentHeight" : 8.284, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_0[5]", + "entityName" : "CertificationsGlyph_0", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 29.357, + "computedY" : 129.267, + "placementX" : 29.357, + "placementY" : 129.267, + "placementWidth" : 27.904, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.904, + "contentHeight" : 27.904, + "margin" : { + "top" : 0.0, + "right" : 425.529, + "bottom" : 0.0, + "left" : -2.325 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_0[5]/CertificationPlate_AWSCertifiedDeveloperAssociate[0]", + "entityName" : "CertificationPlate_AWSCertifiedDeveloperAssociate", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_0[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 29.357, + "computedY" : 129.267, + "placementX" : 29.357, + "placementY" : 129.267, + "placementWidth" : 27.904, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.904, + "contentHeight" : 27.904, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_0[5]/CertificationPlate_AWSCertifiedDeveloperAssociate[0]/CertificationPlate_AWSCertifiedDeveloperAssociateGlyph[0]", + "entityName" : "CertificationPlate_AWSCertifiedDeveloperAssociateGlyph", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_0[5]/CertificationPlate_AWSCertifiedDeveloperAssociate[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 35.159, + "computedY" : 135.069, + "placementX" : 35.159, + "placementY" : 135.069, + "placementWidth" : 16.3, + "placementHeight" : 16.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.3, + "contentHeight" : 16.3, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_1[6]", + "entityName" : "CertificationsGlyph_1", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 143.878, + "computedY" : 129.267, + "placementX" : 143.878, + "placementY" : 129.267, + "placementWidth" : 27.904, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.904, + "contentHeight" : 27.904, + "margin" : { + "top" : 0.0, + "right" : 319.147, + "bottom" : 0.0, + "left" : 112.196 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_1[6]/CertificationPlate_OracleCertifiedProfessional[0]", + "entityName" : "CertificationPlate_OracleCertifiedProfessional", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_1[6]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 143.878, + "computedY" : 129.267, + "placementX" : 143.878, + "placementY" : 129.267, + "placementWidth" : 27.904, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.904, + "contentHeight" : 27.904, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_1[6]/CertificationPlate_OracleCertifiedProfessional[0]/CertificationPlate_OracleCertifiedProfessionalGlyph[0]", + "entityName" : "CertificationPlate_OracleCertifiedProfessionalGlyph", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_1[6]/CertificationPlate_OracleCertifiedProfessional[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 149.679, + "computedY" : 135.069, + "placementX" : 149.679, + "placementY" : 135.069, + "placementWidth" : 16.3, + "placementHeight" : 16.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.3, + "contentHeight" : 16.3, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_2[7]", + "entityName" : "CertificationsGlyph_2", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 250.26, + "computedY" : 129.267, + "placementX" : 250.26, + "placementY" : 129.267, + "placementWidth" : 27.904, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.904, + "contentHeight" : 27.904, + "margin" : { + "top" : 0.0, + "right" : 212.765, + "bottom" : 0.0, + "left" : 218.578 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_2[7]/CertificationPlate_DockerCertifiedAssociate[0]", + "entityName" : "CertificationPlate_DockerCertifiedAssociate", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_2[7]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 250.26, + "computedY" : 129.267, + "placementX" : 250.26, + "placementY" : 129.267, + "placementWidth" : 27.904, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.904, + "contentHeight" : 27.904, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_2[7]/CertificationPlate_DockerCertifiedAssociate[0]/CertificationPlate_DockerCertifiedAssociateGlyph[0]", + "entityName" : "CertificationPlate_DockerCertifiedAssociateGlyph", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_2[7]/CertificationPlate_DockerCertifiedAssociate[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 256.062, + "computedY" : 135.069, + "placementX" : 256.062, + "placementY" : 135.069, + "placementWidth" : 16.3, + "placementHeight" : 16.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.3, + "contentHeight" : 16.3, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_3[8]", + "entityName" : "CertificationsGlyph_3", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 8, + "depth" : 4, + "layer" : 4, + "computedX" : 356.642, + "computedY" : 129.267, + "placementX" : 356.642, + "placementY" : 129.267, + "placementWidth" : 27.904, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.904, + "contentHeight" : 27.904, + "margin" : { + "top" : 0.0, + "right" : 106.382, + "bottom" : 0.0, + "left" : 324.96 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_3[8]/CertificationPlate_SpringProfessionalCertification[0]", + "entityName" : "CertificationPlate_SpringProfessionalCertification", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_3[8]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 356.642, + "computedY" : 129.267, + "placementX" : 356.642, + "placementY" : 129.267, + "placementWidth" : 27.904, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.904, + "contentHeight" : 27.904, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_3[8]/CertificationPlate_SpringProfessionalCertification[0]/CertificationPlate_SpringProfessionalCertificationGlyph[0]", + "entityName" : "CertificationPlate_SpringProfessionalCertificationGlyph", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_3[8]/CertificationPlate_SpringProfessionalCertification[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 362.444, + "computedY" : 135.069, + "placementX" : 362.444, + "placementY" : 135.069, + "placementWidth" : 16.3, + "placementHeight" : 16.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.3, + "contentHeight" : 16.3, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_4[9]", + "entityName" : "CertificationsGlyph_4", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 9, + "depth" : 4, + "layer" : 4, + "computedX" : 463.024, + "computedY" : 129.267, + "placementX" : 463.024, + "placementY" : 129.267, + "placementWidth" : 27.904, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.904, + "contentHeight" : 27.904, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 431.342 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_4[9]/CertificationPlate_KubernetesFundamentals[0]", + "entityName" : "CertificationPlate_KubernetesFundamentals", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_4[9]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 463.024, + "computedY" : 129.267, + "placementX" : 463.024, + "placementY" : 129.267, + "placementWidth" : 27.904, + "placementHeight" : 27.904, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.904, + "contentHeight" : 27.904, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_4[9]/CertificationPlate_KubernetesFundamentals[0]/CertificationPlate_KubernetesFundamentalsGlyph[0]", + "entityName" : "CertificationPlate_KubernetesFundamentalsGlyph", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsGlyph_4[9]/CertificationPlate_KubernetesFundamentals[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 468.826, + "computedY" : 135.069, + "placementX" : 468.826, + "placementY" : 135.069, + "placementWidth" : 16.3, + "placementHeight" : 16.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.3, + "contentHeight" : 16.3, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_1[10]", + "entityName" : "CertificationsSeparator_1", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 10, + "depth" : 4, + "layer" : 4, + "computedX" : 138.064, + "computedY" : 134.574, + "placementX" : 138.064, + "placementY" : 134.574, + "placementWidth" : 0.698, + "placementHeight" : 22.596, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.698, + "contentHeight" : 22.596, + "margin" : { + "top" : 0.0, + "right" : 424.831, + "bottom" : 0.0, + "left" : 106.382 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_1[10]/CertificationsSeparatorLine_1[0]", + "entityName" : "CertificationsSeparatorLine_1", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_1[10]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 138.064, + "computedY" : 134.574, + "placementX" : 138.064, + "placementY" : 134.574, + "placementWidth" : 1.0, + "placementHeight" : 22.596, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 22.596, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_2[11]", + "entityName" : "CertificationsSeparator_2", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 11, + "depth" : 4, + "layer" : 4, + "computedX" : 244.447, + "computedY" : 134.574, + "placementX" : 244.447, + "placementY" : 134.574, + "placementWidth" : 0.698, + "placementHeight" : 22.596, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.698, + "contentHeight" : 22.596, + "margin" : { + "top" : 0.0, + "right" : 318.449, + "bottom" : 0.0, + "left" : 212.765 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_2[11]/CertificationsSeparatorLine_2[0]", + "entityName" : "CertificationsSeparatorLine_2", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_2[11]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 244.447, + "computedY" : 134.574, + "placementX" : 244.447, + "placementY" : 134.574, + "placementWidth" : 1.0, + "placementHeight" : 22.596, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 22.596, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_3[12]", + "entityName" : "CertificationsSeparator_3", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 12, + "depth" : 4, + "layer" : 4, + "computedX" : 350.829, + "computedY" : 134.574, + "placementX" : 350.829, + "placementY" : 134.574, + "placementWidth" : 0.698, + "placementHeight" : 22.596, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.698, + "contentHeight" : 22.596, + "margin" : { + "top" : 0.0, + "right" : 212.067, + "bottom" : 0.0, + "left" : 319.147 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_3[12]/CertificationsSeparatorLine_3[0]", + "entityName" : "CertificationsSeparatorLine_3", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_3[12]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 350.829, + "computedY" : 134.574, + "placementX" : 350.829, + "placementY" : 134.574, + "placementWidth" : 1.0, + "placementHeight" : 22.596, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 22.596, + "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" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_4[13]", + "entityName" : "CertificationsSeparator_4", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]", + "childIndex" : 13, + "depth" : 4, + "layer" : 4, + "computedX" : 457.211, + "computedY" : 134.574, + "placementX" : 457.211, + "placementY" : 134.574, + "placementWidth" : 0.698, + "placementHeight" : 22.596, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.698, + "contentHeight" : 22.596, + "margin" : { + "top" : 0.0, + "right" : 105.685, + "bottom" : 0.0, + "left" : 425.529 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_4[13]/CertificationsSeparatorLine_4[0]", + "entityName" : "CertificationsSeparatorLine_4", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Certifications[4]/CertificationsBand[1]/CertificationsSeparator_4[13]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 457.211, + "computedY" : 134.574, + "placementX" : 457.211, + "placementY" : 134.574, + "placementWidth" : 1.0, + "placementHeight" : 22.596, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 22.596, + "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" : "SerifHeadlineCv[0]/Achievements[5]", + "entityName" : "Achievements", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 31.682, + "computedY" : 43.938, + "placementX" : 31.682, + "placementY" : 43.938, + "placementWidth" : 531.911, + "placementHeight" : 65.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 531.911, + "contentHeight" : 65.9, + "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" : "SerifHeadlineCv[0]/Achievements[5]/SectionHeading_Achievements[0]", + "entityName" : "SectionHeading_Achievements", + "entityKind" : "ShapeContainerNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 31.682, + "computedY" : 97.242, + "placementX" : 31.682, + "placementY" : 97.242, + "placementWidth" : 531.911, + "placementHeight" : 12.595, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 531.911, + "contentHeight" : 12.595, + "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" : "SerifHeadlineCv[0]/Achievements[5]/SectionHeading_Achievements[0]/HeadingDash_Achievements[0]", + "entityName" : "HeadingDash_Achievements", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/SectionHeading_Achievements[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 14.533, + "computedY" : 102.668, + "placementX" : 14.533, + "placementY" : 102.668, + "placementWidth" : 12.789, + "placementHeight" : 1.744, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.789, + "contentHeight" : 1.744, + "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" : "SerifHeadlineCv[0]/Achievements[5]/SectionHeading_Achievements[0]/SectionTitle_Achievements[1]", + "entityName" : "SectionTitle_Achievements", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/SectionHeading_Achievements[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 36.623, + "computedY" : 97.727, + "placementX" : 36.623, + "placementY" : 97.727, + "placementWidth" : 92.449, + "placementHeight" : 11.626, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.449, + "contentHeight" : 11.626, + "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" : "SerifHeadlineCv[0]/Achievements[5]/SectionHeading_Achievements[0]/HeadingTail_Achievements[2]", + "entityName" : "HeadingTail_Achievements", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/SectionHeading_Achievements[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 139.679, + "computedY" : 103.04, + "placementX" : 139.679, + "placementY" : 103.04, + "placementWidth" : 423.915, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 423.915, + "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" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]", + "entityName" : "AchievementsBand", + "entityKind" : "LayerStackNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 31.682, + "computedY" : 43.938, + "placementX" : 31.682, + "placementY" : 43.938, + "placementWidth" : 531.911, + "placementHeight" : 36.181, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 531.911, + "contentHeight" : 36.181, + "margin" : { + "top" : 17.123, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_EngineeroftheYear2023[0]", + "entityName" : "Achievement_EngineeroftheYear2023", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 31.682, + "computedY" : 43.938, + "placementX" : 31.682, + "placementY" : 43.938, + "placementWidth" : 169.868, + "placementHeight" : 36.181, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 169.868, + "contentHeight" : 36.181, + "margin" : { + "top" : 0.0, + "right" : 354.608, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 3.93, + "right" : 0.0, + "bottom" : 0.0, + "left" : 33.135 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_EngineeroftheYear2023[0]/AchievementTitle_EngineeroftheYear2023[0]", + "entityName" : "AchievementTitle_EngineeroftheYear2023", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_EngineeroftheYear2023[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 64.818, + "computedY" : 66.501, + "placementX" : 64.818, + "placementY" : 66.501, + "placementWidth" : 100.989, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.989, + "contentHeight" : 9.689, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.714, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_EngineeroftheYear2023[0]/AchievementBody_EngineeroftheYear2023[1]", + "entityName" : "AchievementBody_EngineeroftheYear2023", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_EngineeroftheYear2023[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 64.818, + "computedY" : 43.938, + "placementX" : 64.818, + "placementY" : 43.938, + "placementWidth" : 136.732, + "placementHeight" : 17.849, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 136.732, + "contentHeight" : 17.849, + "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" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_PerformanceOptimization[1]", + "entityName" : "Achievement_PerformanceOptimization", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 208.986, + "computedY" : 43.938, + "placementX" : 208.986, + "placementY" : 43.938, + "placementWidth" : 173.765, + "placementHeight" : 36.181, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 173.765, + "contentHeight" : 36.181, + "margin" : { + "top" : 0.0, + "right" : 177.304, + "bottom" : 0.0, + "left" : 177.304 + }, + "padding" : { + "top" : 3.93, + "right" : 0.0, + "bottom" : 0.0, + "left" : 40.111 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_PerformanceOptimization[1]/AchievementTitle_PerformanceOptimization[0]", + "entityName" : "AchievementTitle_PerformanceOptimization", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_PerformanceOptimization[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 249.097, + "computedY" : 66.501, + "placementX" : 249.097, + "placementY" : 66.501, + "placementWidth" : 95.507, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.507, + "contentHeight" : 9.689, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.714, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_PerformanceOptimization[1]/AchievementBody_PerformanceOptimization[1]", + "entityName" : "AchievementBody_PerformanceOptimization", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_PerformanceOptimization[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 249.097, + "computedY" : 43.938, + "placementX" : 249.097, + "placementY" : 43.938, + "placementWidth" : 133.653, + "placementHeight" : 17.849, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 133.653, + "contentHeight" : 17.849, + "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" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_SuccessfulMigration[2]", + "entityName" : "Achievement_SuccessfulMigration", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 386.29, + "computedY" : 43.938, + "placementX" : 386.29, + "placementY" : 43.938, + "placementWidth" : 170.361, + "placementHeight" : 36.181, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 170.361, + "contentHeight" : 36.181, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 354.608 + }, + "padding" : { + "top" : 3.93, + "right" : 0.0, + "bottom" : 0.0, + "left" : 40.111 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_SuccessfulMigration[2]/AchievementTitle_SuccessfulMigration[0]", + "entityName" : "AchievementTitle_SuccessfulMigration", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_SuccessfulMigration[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 426.401, + "computedY" : 66.501, + "placementX" : 426.401, + "placementY" : 66.501, + "placementWidth" : 74.918, + "placementHeight" : 9.689, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 74.918, + "contentHeight" : 9.689, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.714, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_SuccessfulMigration[2]/AchievementBody_SuccessfulMigration[1]", + "entityName" : "AchievementBody_SuccessfulMigration", + "entityKind" : "ParagraphNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/Achievement_SuccessfulMigration[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 426.401, + "computedY" : 43.938, + "placementX" : 426.401, + "placementY" : 43.938, + "placementWidth" : 130.25, + "placementHeight" : 17.849, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 130.25, + "contentHeight" : 17.849, + "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" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsGlyph_0[3]", + "entityName" : "AchievementsGlyph_0", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 30.52, + "computedY" : 56.866, + "placementX" : 30.52, + "placementY" : 56.866, + "placementWidth" : 23.253, + "placementHeight" : 23.253, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.253, + "contentHeight" : 23.253, + "margin" : { + "top" : 0.0, + "right" : 354.608, + "bottom" : 0.0, + "left" : -1.163 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsGlyph_0[3]/AchievementGlyph_EngineeroftheYear2023[0]", + "entityName" : "AchievementGlyph_EngineeroftheYear2023", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsGlyph_0[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.52, + "computedY" : 56.866, + "placementX" : 30.52, + "placementY" : 56.866, + "placementWidth" : 23.253, + "placementHeight" : 23.253, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.253, + "contentHeight" : 23.253, + "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" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsGlyph_1[4]", + "entityName" : "AchievementsGlyph_1", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 214.799, + "computedY" : 56.866, + "placementX" : 214.799, + "placementY" : 56.866, + "placementWidth" : 23.253, + "placementHeight" : 23.253, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.253, + "contentHeight" : 23.253, + "margin" : { + "top" : 0.0, + "right" : 177.304, + "bottom" : 0.0, + "left" : 183.117 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsGlyph_1[4]/AchievementGlyph_PerformanceOptimization[0]", + "entityName" : "AchievementGlyph_PerformanceOptimization", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsGlyph_1[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 214.799, + "computedY" : 56.866, + "placementX" : 214.799, + "placementY" : 56.866, + "placementWidth" : 23.253, + "placementHeight" : 23.253, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.253, + "contentHeight" : 23.253, + "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" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsGlyph_2[5]", + "entityName" : "AchievementsGlyph_2", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 392.103, + "computedY" : 56.866, + "placementX" : 392.103, + "placementY" : 56.866, + "placementWidth" : 23.253, + "placementHeight" : 23.253, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.253, + "contentHeight" : 23.253, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 360.421 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsGlyph_2[5]/AchievementGlyph_SuccessfulMigration[0]", + "entityName" : "AchievementGlyph_SuccessfulMigration", + "entityKind" : "ImageNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsGlyph_2[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 392.103, + "computedY" : 56.866, + "placementX" : 392.103, + "placementY" : 56.866, + "placementWidth" : 23.253, + "placementHeight" : 23.253, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.253, + "contentHeight" : 23.253, + "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" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsSeparator_1[6]", + "entityName" : "AchievementsSeparator_1", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 208.986, + "computedY" : 49.664, + "placementX" : 208.986, + "placementY" : 49.664, + "placementWidth" : 0.698, + "placementHeight" : 30.456, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.698, + "contentHeight" : 30.456, + "margin" : { + "top" : 0.0, + "right" : 353.91, + "bottom" : 0.0, + "left" : 177.304 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsSeparator_1[6]/AchievementsSeparatorLine_1[0]", + "entityName" : "AchievementsSeparatorLine_1", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsSeparator_1[6]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 208.986, + "computedY" : 49.664, + "placementX" : 208.986, + "placementY" : 49.664, + "placementWidth" : 1.0, + "placementHeight" : 30.456, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 30.456, + "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" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsSeparator_2[7]", + "entityName" : "AchievementsSeparator_2", + "entityKind" : "SectionNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 386.29, + "computedY" : 49.664, + "placementX" : 386.29, + "placementY" : 49.664, + "placementWidth" : 0.698, + "placementHeight" : 30.456, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.698, + "contentHeight" : 30.456, + "margin" : { + "top" : 0.0, + "right" : 176.606, + "bottom" : 0.0, + "left" : 354.608 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsSeparator_2[7]/AchievementsSeparatorLine_2[0]", + "entityName" : "AchievementsSeparatorLine_2", + "entityKind" : "LineNode", + "parentPath" : "SerifHeadlineCv[0]/Achievements[5]/AchievementsBand[1]/AchievementsSeparator_2[7]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 386.29, + "computedY" : 49.664, + "placementX" : 386.29, + "placementY" : 49.664, + "placementWidth" : 1.0, + "placementHeight" : 30.456, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 30.456, + "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/cv-v2-layered/serif_headline-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/serif_headline-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..efab7573da107a0758fc52cb02dc06587b7740bd GIT binary patch literal 121182 zcmdqIXEdB|)b<_GdnX7(L`fuibVEXv5G92WC3^3jLG(`aZit>J(R=R$4fLaCS`%CrG4*e z=Lu=I;XcqO_ICe$vcBJ|8Z#6A;M=Zc48-o}PHx3QJMhPk-6vC9a~^86slBkbtH!UU z&y3jn)ib1`_Ncjt8vD!NDsMYjFDRfgJ#OUBrsr8MVxkP?AL~ue%#0cSGKDqn^yth} zxqLV)8+vatJUncN`TD@TuXn`FbehDtzxbxj^TgOz&-is8D!<7qf!qFMk~S3^v+zIP zy>?K36AIojf7(8o|FNp|;`LWFT6v>RgRa z*5?aujx7F0Z|;Wk1G^tpcpNTd*4icqmzS0@i+itoAUuK!uZR!2;y6!(5L)>92 z($ZxwG|0F>HiZ+jSdEu9bJl{IO3KO}f}I1E>3g}J#a~5ap&M}tRT5Jxt6pJ-|L?mK zDl}ssQ1{>Ksb9foyO$A9Y+2NJbq1HlpHmMbVH!B- zD{;CxSg~P^T+V63f2ds*^z-qvYla23H<|pu4_|eR{_i<;meQ(#){f z2XMEoJa%9Ft4Z2&0U@EEpX0C=>yJ`gnMFm!sOV}G+OB}D}J*@co z(O&RRk^1 z`|riDt)sQF{hOOa$HzojgvP5z?P*PfR(qmDFDPHxa%Y#=ZyNpiF3PI98)7ctRHE48vX-QRB z?o;{l~grQM&8bA~vI7S26)b&n1I1MgkA6Y9j`j34oadPYZeoO= zI1gugb#*nSQ`}u&6{?+Zl|)|O_c!P3oI;3| z+c4veL`UH8dP7l0$ol2Knf0QZk!q--0;cZtNkI&2j0B!56-2I|3{$**v5(~48y*`% zUWSfH`b}<3VJo=2V``DR`l4o=b7f-_)aGFJ$Ktl;amBAeZMW8nyEt1#Y#

    This sheet is not a set of round numbers. It was drawn on a 1024-pixel + * grid, so the preset carries that grid's numbers and scales them onto A4 — + * heights by an extra factor, because the drawing is proportionally taller + * than the page. Vertical gaps are stated as the white the drawing shows + * between letters, with the blank a line box carries above and below its own + * type subtracted; setting the pixel numbers directly would push every block + * a few points too far apart.

    + * + *

    One page, and what happens past it

    + * + *

    This sheet holds one page of content. The body is a single row, and a + * row is atomic — it cannot be split — so a CV longer than the sheet does + * not flow onto a second page: composing it raises + * {@code AtomicNodeTooLargeException}, naming the node and the height it + * needed. It draws no cap of its own, because a CV that quietly loses a job + * is worse than one that refuses to compose. {@link TimelineMinimal} is the + * preset in this package that splits its own columns across pages.

    + * + *

    How a document reaches its berth

    + * + *

    The columns are fixed, so the preset assigns each section a berth by + * title rather than reading {@link + * com.demcha.compose.document.templates.cv.data.Slot}. It has eight:

    + * + *
      + *
    • the summary, a {@link ParagraphSection} set under the masthead;
    • + *
    • experience and projects, {@link EntriesSection}s in the wide + * column;
    • + *
    • education, an {@link EntriesSection}, and skills, a + * {@link SkillsSection}, in the narrow one;
    • + *
    • soft skills, a {@link ParagraphSection} of one line each, under the + * skills;
    • + *
    • certifications, a {@link RowsSection} of qualification and issuer, + * and achievements, an {@link EntriesSection}, as the closing + * bands.
    • + *
    + * + *

    A section whose title matches no berth is not drawn, a berth with no + * section takes its heading with it, and a berth is filled by the first + * section that names it. The certifications' {@code RowStyle} is not read — + * the rows are drawn to this design rather than to a family style — and the + * skills heading covers the soft skills too, so a document with only soft + * skills is headed "Skills".

    + * + *

    Marks

    + * + *

    Each project and each achievement is opened by the mark its entry names + * in {@code CvEntry.icon()}. The vocabulary is this preset's own — + * {@code cart}, {@code api}, {@code trophy}, {@code chart}, {@code rocket} — + * and an unknown token is reported as a data error naming the set. An entry + * with no token is drawn without a mark. The certification medal is chrome + * rather than data: every plate takes the same one.

    + * + *

    The employer's city and the campus come from {@code CvEntry.place()}, + * because this design sets them beside the employer and the years in their + * own colour rather than inside them.

    + * + *

    The phone, the email and each link are reachable from the PDF, with the + * {@code tel:} and {@code mailto:} targets built from the values. The set + * packages two network marks: a link naming GitHub takes that one, anything + * else takes LinkedIn's.

    + * + *

    Fonts

    + * + *

    The name is set in Volkhov and everything else in Lato. The templates + * artifact carries neither — register them on the session, or the engine + * substitutes and the measured geometry here no longer matches the type + * sitting in it.

    + * + *

    Usage:

    + *
    {@code
    + * DocumentTemplate template = SerifHeadline.create();
    + * template.compose(session, cv);
    + * }
    + */ +public final class SerifHeadline { + + /** Stable identifier of this preset. */ + public static final String ID = "serif-headline"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Serif Headline"; + + /** + * The margin this preset expects: none of the caller's. It sets the page + * margin itself, because the grid the sheet is drawn on defines it. + */ + public static final double RECOMMENDED_MARGIN = 0.0; + + private static final List SUMMARY_KEYS = + List.of("summary", "profile", "about"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "employment", "work history", "career"); + private static final List PROJECT_KEYS = + List.of("projects", "project", "portfolio"); + private static final List EDUCATION_KEYS = + List.of("education", "qualifications"); + private static final List SOFT_SKILL_KEYS = + List.of("soft skills", "strengths"); + private static final List SKILL_KEYS = + List.of("skills", "expertise", "competencies"); + private static final List CERTIFICATION_KEYS = + List.of("certifications", "certification", "licences", "licenses"); + private static final List ACHIEVEMENT_KEYS = + List.of("achievements", "achievement", "awards"); + + private SerifHeadline() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link CvDocument} onto its own page + */ + 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, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + List sections = doc.sections(); + + document.pageSize(PAGE).margin(DocumentInsets.of(MARGIN)); + + ParagraphSection summary = berth(sections, ParagraphSection.class, SUMMARY_KEYS); + EntriesSection experience = berth(sections, EntriesSection.class, EXPERIENCE_KEYS); + EntriesSection projects = berth(sections, EntriesSection.class, PROJECT_KEYS); + EntriesSection education = berth(sections, EntriesSection.class, EDUCATION_KEYS); + // Soft skills first: "Soft Skills" names the skills berth too, and + // the block that has a shape of its own should win it. + ParagraphSection softSkills = + berth(sections, ParagraphSection.class, SOFT_SKILL_KEYS); + SkillsSection skills = berth(sections, SkillsSection.class, SKILL_KEYS); + RowsSection certifications = + berth(sections, RowsSection.class, CERTIFICATION_KEYS); + EntriesSection achievements = + berth(sections, EntriesSection.class, ACHIEVEMENT_KEYS); + + boolean hasBody = SectionLookup.hasContent(experience) + || SectionLookup.hasContent(projects) + || SectionLookup.hasContent(education) + || SectionLookup.hasContent(skills) + || SectionLookup.hasContent(softSkills); + boolean hasCertifications = SectionLookup.hasContent(certifications); + boolean hasAchievements = SectionLookup.hasContent(achievements); + + document.pageFlow(page -> { + page.name("SerifHeadlineCv").spacing(0).padding(DocumentInsets.zero()); + SerifHeadlineMasthead.compose(page, doc.identity(), summary); + if (hasBody) { + page.addRow("BodyColumns", row -> { + row.spacing(0); + row.gap(0); + row.weights(MAIN_CELL_WEIGHT, ASIDE_CELL_WEIGHT); + // The row splits on the gutter's midline, so the + // divider the right column hangs off lands in the + // middle of the gutter rather than on its edge. + row.verticalAlign(RowVerticalAlign.TOP); + row.margin(new DocumentInsets( + 0, 0, BODY_BAND_TO_CERTIFICATIONS, 0)); + row.addSection("MainColumn", section -> + SerifHeadlineMain.compose(section, experience, projects)); + row.addSection("AsideColumn", section -> + SerifHeadlineAside.compose(section, education, skills, + softSkills)); + }); + } + if (hasCertifications) { + SerifHeadlineClosing.renderCertifications(page, certifications, + hasAchievements); + } + if (hasAchievements) { + SerifHeadlineClosing.renderAchievements(page, achievements); + } + }); + } + + /** + * The first section of the wanted shape whose title names this berth, + * or {@code null} when the document fills no such berth. + */ + private static T berth(List sections, + Class type, + List keys) { + for (CvSection section : sections) { + if (!type.isInstance(section)) { + continue; + } + for (String key : keys) { + if (SectionLookup.titleContains(section.title(), key)) { + return type.cast(section); + } + } + } + return null; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineAside.java new file mode 100644 index 000000000..76d1c2710 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineAside.java @@ -0,0 +1,246 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeBuilder; +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.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ASIDE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CAPTION_TO_ROWS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CAPTION_TO_SOFT_SKILLS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.DEGREE_TO_INSTITUTION; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.DIVIDER; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.EDUCATION_TO_SKILLS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.GROUP_GAP; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HAIRLINE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HALF_GUTTER; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HEADING_TO_CAPTION; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HEADING_TO_EDUCATION; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.INSTITUTION_TO_YEARS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ITEM_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.SKILL_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.SKILL_ROW_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.SMALL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.SOFT_SKILL_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.STUB_RULE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.STUB_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.STUB_RULE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.STUB_TO_DEGREE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TIGHT_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TRACK; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TRACK_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TRACK_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.YEARS_TO_STUB; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.body; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.small; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.style; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.tracked; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineWidgets.sectionHeading; + +/** + * The narrow right column, hung off the hairline that divides the grid: the + * degrees, then the skills as captioned groups of meters, closing with the + * soft skills as plain lines. + */ +final class SerifHeadlineAside { + + private SerifHeadlineAside() { + } + + static void compose(SectionBuilder section, + EntriesSection education, + SkillsSection skills, + ParagraphSection softSkills) { + // The divider is this column's left accent, so it runs exactly as + // deep as the column's content and no further. + section.spacing(0) + .padding(new DocumentInsets(0, 0, 0, HALF_GUTTER)) + .accentLeft(DIVIDER, HAIRLINE_THICKNESS); + boolean hasEducation = SectionLookup.hasContent(education); + if (hasEducation) { + sectionHeading(section, education.title(), ASIDE_WIDTH, false, 0.0, HALF_GUTTER); + renderEducation(section, education); + } + if (SectionLookup.hasContent(skills) || SectionLookup.hasContent(softSkills)) { + sectionHeading(section, skillsHeading(skills), ASIDE_WIDTH, false, + hasEducation ? EDUCATION_TO_SKILLS : 0.0, HALF_GUTTER); + renderSkills(section, skills, softSkills); + } + } + + /** The heading over both blocks, taken from the skills section when there is one. */ + private static String skillsHeading(SkillsSection skills) { + return SectionLookup.hasContent(skills) ? skills.title() : "Skills"; + } + + // -- education ------------------------------------------------------- + + /** + * Each degree as three lines — the qualification, the institution in + * accent, and the years beside the place — with a short stub rule + * between neighbours. + */ + private static void renderEducation(SectionBuilder section, EntriesSection education) { + List entries = education.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + boolean first = i == 0; + section.addParagraph(p -> p + .name("Degree_" + compact(entry.title())) + .text(entry.title()) + .textStyle(style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) + .lineSpacing(TIGHT_LEADING) + .margin(new DocumentInsets( + first ? HEADING_TO_EDUCATION : 0, 0, DEGREE_TO_INSTITUTION, 0))); + section.addParagraph(p -> p + .name("Institution_" + compact(entry.title())) + .text(entry.subtitle()) + .textStyle(style(SMALL_SIZE, ACCENT, DocumentTextDecoration.DEFAULT)) + .lineSpacing(TIGHT_LEADING) + .margin(new DocumentInsets(0, 0, INSTITUTION_TO_YEARS, 0))); + section.addParagraph(p -> { + p.name("Years_" + compact(entry.title())) + .textStyle(small()) + .inlineText(entry.date(), small()); + if (!entry.place().isBlank()) { + p.inlineText(" | ", + style(SMALL_SIZE, RULE, DocumentTextDecoration.DEFAULT)) + .inlineText(entry.place(), small()); + } + p.lineSpacing(TIGHT_LEADING).margin(DocumentInsets.zero()); + }); + if (i < entries.size() - 1) { + section.addLine(line -> line + .name("EducationStub_" + compact(entry.title())) + .horizontal(STUB_RULE_WIDTH) + .thickness(STUB_RULE_THICKNESS) + .color(STUB_RULE) + .margin(new DocumentInsets(YEARS_TO_STUB, 0, STUB_TO_DEGREE, 0))); + } + } + } + + // -- skills ---------------------------------------------------------- + + /** + * Each skill group under its own tracked caption, then the soft skills + * under theirs — the one block on this sheet that is prose rather than + * meters, so it takes the section's title as its caption. + */ + private static void renderSkills(SectionBuilder section, SkillsSection skills, + ParagraphSection softSkills) { + boolean firstCaption = true; + if (SectionLookup.hasContent(skills)) { + List groups = skills.groups(); + for (int i = 0; i < groups.size(); i++) { + SkillGroup group = groups.get(i); + caption(section, group.category(), + i == 0 ? HEADING_TO_CAPTION : GROUP_GAP); + section.addSection("SkillGroup_" + compact(group.category()), rows -> { + rows.spacing(SKILL_ROW_GAP).padding(DocumentInsets.zero()); + rows.margin(new DocumentInsets(CAPTION_TO_ROWS, 0, 0, 0)); + for (CvSkill skill : group.entries()) { + renderSkillRow(rows, skill); + } + }); + } + firstCaption = groups.isEmpty(); + } + if (SectionLookup.hasContent(softSkills)) { + caption(section, softSkills.title(), firstCaption ? HEADING_TO_CAPTION : GROUP_GAP); + renderSoftSkills(section, softSkills); + } + } + + private static void caption(SectionBuilder section, String text, double gapAbove) { + DocumentTextStyle captionStyle = style(SMALL_SIZE, INK, DocumentTextDecoration.BOLD); + section.addParagraph(p -> { + p.name("SkillCaption_" + compact(text)); + p.textStyle(captionStyle); + tracked(p, text.toUpperCase(Locale.ROOT), captionStyle); + p.lineSpacing(TIGHT_LEADING); + p.margin(new DocumentInsets(gapAbove, 0, 0, 0)); + }); + } + + /** + * A skill row: the name at the left of a band, the meter flush right. A + * skill the document leaves unlevelled draws its name alone rather than + * an empty track. + */ + private static void renderSkillRow(SectionBuilder rows, CvSkill skill) { + DocumentNode label = new ParagraphBuilder() + .name("SkillLabel_" + compact(skill.name())) + .text(skill.name()) + .textStyle(small()) + .lineSpacing(TIGHT_LEADING) + .margin(DocumentInsets.zero()) + .build(); + rows.addContainer(band -> { + band.name("SkillRow_" + compact(skill.name())) + .rectangle(ASIDE_WIDTH, SKILL_ROW_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .padding(DocumentInsets.zero()) + .position(label, 0, 0, LayerAlign.CENTER_LEFT); + if (skill.level().isPresent()) { + band.position(meter(skill), 0, 0, LayerAlign.CENTER_RIGHT); + } + }); + } + + private static DocumentNode meter(CvSkill skill) { + double level = Math.max(0.0, Math.min(1.0, skill.level().getAsDouble())); + // A shape, not a shape container: a container must own at least one + // layer, and the fill is a bare rounded rectangle with nothing in it. + DocumentNode fill = new ShapeBuilder() + .name("SkillFill_" + compact(skill.name())) + .size(TRACK_WIDTH * level, TRACK_THICKNESS) + .cornerRadius(TRACK_THICKNESS / 2.0) + .fillColor(INK) + .margin(DocumentInsets.zero()) + .build(); + return new ShapeContainerBuilder() + .name("SkillTrack_" + compact(skill.name())) + .roundedRect(TRACK_WIDTH, TRACK_THICKNESS, TRACK_THICKNESS / 2.0) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .fillColor(TRACK) + .padding(DocumentInsets.zero()) + .position(fill, 0, 0, LayerAlign.CENTER_LEFT) + .build(); + } + + /** One line per line of the block's body, set as plain prose. */ + private static void renderSoftSkills(SectionBuilder section, ParagraphSection softSkills) { + List lines = SerifHeadlineText.lines(softSkills.body()); + for (int i = 0; i < lines.size(); i++) { + String line = lines.get(i); + boolean first = i == 0; + section.addParagraph(p -> p + .name("SoftSkill_" + compact(line)) + .text(line) + .textStyle(body()) + .lineSpacing(SOFT_SKILL_LEADING) + .margin(new DocumentInsets(first ? CAPTION_TO_SOFT_SKILLS : 0, 0, 0, 0))); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineClosing.java new file mode 100644 index 000000000..cd9aed9f1 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineClosing.java @@ -0,0 +1,145 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvRow; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.RowsSection; + +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ACHIEVEMENT_BODY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ACHIEVEMENT_GLYPH_BOX; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ACHIEVEMENT_GLYPH_HANG; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ACHIEVEMENT_GLYPH_TO_TEXT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ACHIEVEMENT_SEPARATOR_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ACHIEVEMENT_TEXT_DROP; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ACHIEVEMENT_TITLE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CERTIFICATIONS_TO_ACHIEVEMENTS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CERT_GLYPH_TO_TEXT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CERT_LINE_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CERT_PLATE_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CERT_SEPARATOR_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.GLYPH_CLEARANCE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HEADING_TO_ACHIEVEMENTS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HEADING_TO_CERTIFICATIONS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ITEM_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.MARGIN; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.PLATE_HANG; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TIGHT_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.small; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.style; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineWidgets.BandColumn; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineWidgets.columnBand; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineWidgets.plate; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineWidgets.sectionHeading; + +/** + * The two full-width bands that close the sheet: the certifications behind + * their medals, and the achievements behind their own marks. + */ +final class SerifHeadlineClosing { + + private SerifHeadlineClosing() { + } + + /** + * The certifications: a plate, then the qualification over who issued it. + * + *

    Every plate takes the same medal. It is the one mark on this sheet + * that is chrome rather than data — a certification is a certification — + * so the rows are {@link CvRow}s and carry no icon token.

    + */ + static void renderCertifications(PageFlowBuilder page, RowsSection certifications, + boolean achievementsFollow) { + List rows = certifications.rows(); + page.addSection("Certifications", section -> { + section.spacing(0).padding(DocumentInsets.zero()) + .margin(new DocumentInsets(0, 0, + achievementsFollow ? CERTIFICATIONS_TO_ACHIEVEMENTS : 0, 0)); + sectionHeading(section, certifications.title(), CONTENT_WIDTH, true, 0.0, MARGIN); + columnBand(section, "Certifications", CONTENT_WIDTH, rows.size(), + HEADING_TO_CERTIFICATIONS, CERT_SEPARATOR_HEIGHT, + index -> certificationColumn(rows.get(index), index)); + }); + } + + private static BandColumn certificationColumn(CvRow certification, int index) { + double lead = index == 0 ? PLATE_HANG : GLYPH_CLEARANCE; + SectionBuilder column = new SectionBuilder(); + column.name("Certification_" + compact(certification.label())) + .spacing(0) + .padding(new DocumentInsets(0, 0, 0, lead + CERT_GLYPH_TO_TEXT)); + column.addParagraph(p -> p + .name("CertificationTitle_" + compact(certification.label())) + .text(certification.label()) + .textStyle(small()) + .lineSpacing(CERT_LINE_LEADING) + .margin(DocumentInsets.zero())); + column.addParagraph(p -> p + .name("CertificationIssuer_" + compact(certification.label())) + .text(certification.body()) + .textStyle(small()) + .lineSpacing(CERT_LINE_LEADING) + .margin(DocumentInsets.zero())); + return new BandColumn(column, + plate("CertificationPlate_" + compact(certification.label()), + SerifHeadlineIcons.MEDAL, CERT_PLATE_DIAMETER), + lead); + } + + /** + * The achievements: the entry's own mark, drawn bare rather than on a + * plate, beside the title and what it was for. + */ + static void renderAchievements(PageFlowBuilder page, EntriesSection achievements) { + List entries = achievements.entries(); + page.addSection("Achievements", section -> { + section.spacing(0).padding(DocumentInsets.zero()); + sectionHeading(section, achievements.title(), CONTENT_WIDTH, true, 0.0, MARGIN); + columnBand(section, "Achievements", CONTENT_WIDTH, entries.size(), + HEADING_TO_ACHIEVEMENTS, ACHIEVEMENT_SEPARATOR_HEIGHT, + index -> achievementColumn(entries.get(index), index)); + }); + } + + private static BandColumn achievementColumn(CvEntry achievement, int index) { + double lead = index == 0 ? ACHIEVEMENT_GLYPH_HANG : GLYPH_CLEARANCE; + SectionBuilder column = new SectionBuilder(); + column.name("Achievement_" + compact(achievement.title())) + .spacing(0) + // The text drops a little, because the mark is taller than the + // title it stands beside and the two centre on each other. + .padding(new DocumentInsets( + ACHIEVEMENT_TEXT_DROP, 0, 0, lead + ACHIEVEMENT_GLYPH_TO_TEXT)); + column.addParagraph(p -> p + .name("AchievementTitle_" + compact(achievement.title())) + .text(achievement.title()) + .textStyle(style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) + .lineSpacing(TIGHT_LEADING) + .margin(new DocumentInsets(0, 0, ACHIEVEMENT_TITLE_TO_BODY, 0))); + column.addParagraph(p -> p + .name("AchievementBody_" + compact(achievement.title())) + .text(achievement.body()) + .textStyle(small()) + .lineSpacing(ACHIEVEMENT_BODY_LEADING) + .margin(DocumentInsets.zero())); + DocumentNode mark = achievement.icon().isBlank() + ? null + : new ImageBuilder() + .name("AchievementGlyph_" + compact(achievement.title())) + .source(SerifHeadlineIcons.image(achievement.icon())) + .fitToBounds(ACHIEVEMENT_GLYPH_BOX, ACHIEVEMENT_GLYPH_BOX) + .margin(DocumentInsets.zero()) + .build(); + return new BandColumn(column, mark, lead); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineIcons.java new file mode 100644 index 000000000..7f05038a9 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineIcons.java @@ -0,0 +1,113 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.image.DocumentImageData; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Serif Headline CV marks — the five contact + * glyphs, the two project marks, the certification medal and the three + * achievement marks. + * + *

    They ship inside the templates artifact under + * {@code templates/cv/serif-headline/icons/} as PNG, each at the point size + * the design draws it at: a mark set inside a plate is drawn smaller than + * one standing on its own, and a contact glyph smaller again.

    + * + *

    The project and achievement marks are the vocabulary a document names + * through {@code CvEntry.icon()}. It is scoped to this preset — another + * preset packages its own set — so {@link #ENTRY_TOKENS} is the list a + * document can choose from here.

    + */ +final class SerifHeadlineIcons { + + static final String PHONE = "phone"; + static final String EMAIL = "email"; + static final String LOCATION = "location"; + static final String LINKEDIN = "linkedin"; + static final String GITHUB = "github"; + + /** The mark the certification plates always take; not data-driven. */ + static final String MEDAL = "medal"; + + private static final String ICON_ROOT = "/templates/cv/serif-headline/icons/"; + + private static final Map SIZES = Map.ofEntries( + Map.entry(PHONE, 8.7), + Map.entry(EMAIL, 8.7), + Map.entry(LOCATION, 9.6), + Map.entry(LINKEDIN, 8.7), + Map.entry(GITHUB, 9.0), + Map.entry("cart", 15.1), + Map.entry("api", 15.1), + Map.entry(MEDAL, 16.3), + Map.entry("trophy", 22.7), + Map.entry("chart", 22.7), + Map.entry("rocket", 22.7)); + + /** + * The tokens a document may name on an entry: the two project marks and + * the three achievement marks. + */ + static final Set ENTRY_TOKENS = Set.of("cart", "api", "trophy", "chart", "rocket"); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private SerifHeadlineIcons() { + } + + /** + * The drawn size of one mark. + * + * @param token one of the packaged tokens + * @return the size in points + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error + */ + static double size(String token) { + Double size = SIZES.get(token); + if (size == null) { + throw new IllegalArgumentException( + "Unknown serif headline CV icon token '" + token + + "'. This preset packages " + ENTRY_TOKENS.stream().sorted().toList() + + " for an entry mark."); + } + return size; + } + + /** + * Reads one mark, caching the decoded image per token so a sheet that + * repeats a mark reads the file once per JVM. + * + * @param token one of the packaged tokens + * @return the image data + */ + static DocumentImageData image(String token) { + // Validated here too, not only in size(): the marks drawn bare are + // scaled to their box rather than to their own size, so without this + // an unknown token would surface as a missing resource instead of as + // the data error it is. + size(token); + return CACHE.computeIfAbsent(token, SerifHeadlineIcons::read); + } + + private static DocumentImageData read(String token) { + String resourcePath = ICON_ROOT + token + ".png"; + try (InputStream input = SerifHeadlineIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException( + "Missing serif headline CV icon: " + resourcePath); + } + return DocumentImageData.fromBytes(input.readAllBytes()); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read serif headline CV icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java new file mode 100644 index 000000000..17bf94e21 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java @@ -0,0 +1,253 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.EllipseBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.EntriesSection; + +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.BULLET_ITEM_GAP; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.BULLET_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.BULLETS_TO_SEPARATOR; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.BULLET_MARKER; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CARD_BODY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CARD_TECH_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CARD_TITLE_TO_TECH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.DATE_OVERFLOW; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.DIVIDER; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.EMPLOYER_TO_BULLETS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ENTRY_HEAD_BAND_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ENTRY_TEXT_INSET; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ENTRY_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.EXPERIENCE_TO_PROJECTS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.GLYPH_CLEARANCE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HAIRLINE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HALF_GUTTER; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HEADING_TO_CARDS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HEADING_TO_ENTRY; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ITEM_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.JOB_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.MAIN_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.MARGIN; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.MARKER_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.PLATE_HANG; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.PROJECT_GLYPH_TO_TEXT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.PROJECT_PLATE_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.PROJECT_SEPARATOR_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.RAIL_MARGIN_LEFT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.RAIL_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.SEPARATOR_TO_ENTRY; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.SMALL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TIGHT_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TITLE_OVERFLOW; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TITLE_TO_EMPLOYER; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.body; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.small; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.style; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineWidgets.BandColumn; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineWidgets.columnBand; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineWidgets.plate; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineWidgets.sectionHeading; + +/** + * The wide left column: the roles held on a timeline rail, and the projects + * as a band of marked cards beneath them. + */ +final class SerifHeadlineMain { + + private SerifHeadlineMain() { + } + + static void compose(SectionBuilder section, + EntriesSection experience, + EntriesSection projects) { + section.spacing(0).padding(new DocumentInsets(0, HALF_GUTTER, 0, 0)); + if (SectionLookup.hasContent(experience)) { + sectionHeading(section, experience.title(), MAIN_WIDTH, false, 0.0, MARGIN); + renderExperience(section, experience); + } + if (SectionLookup.hasContent(projects)) { + sectionHeading(section, projects.title(), MAIN_WIDTH, true, + EXPERIENCE_TO_PROJECTS, MARGIN); + renderProjects(section, projects); + } + } + + // -- experience ------------------------------------------------------ + + /** + * The roles held, strung on a vertical rail with a filled marker at each + * one. + * + *

    The rail is the section's left accent, which runs the full height of + * what the section holds — so the last role's body is composed in a + * second section outside the rail, and the line stops at the last marker + * instead of running past it to the foot of the block.

    + */ + private static void renderExperience(SectionBuilder section, EntriesSection experience) { + List entries = experience.entries(); + int last = entries.size() - 1; + section.addSection("ExperienceRail", rail -> { + rail.spacing(0).padding(DocumentInsets.zero()); + rail.margin(new DocumentInsets( + HEADING_TO_ENTRY + TITLE_OVERFLOW, 0, 0, RAIL_MARGIN_LEFT)); + rail.accentLeft(DIVIDER, RAIL_THICKNESS); + for (int i = 0; i < entries.size(); i++) { + renderEntryHead(rail, entries.get(i)); + if (i < last) { + renderEntryBody(rail, entries.get(i)); + renderEntrySeparator(rail, entries.get(i)); + } + } + }); + section.addSection("ExperienceTail", tail -> { + tail.spacing(0).padding(DocumentInsets.zero()); + tail.margin(new DocumentInsets(0, 0, 0, RAIL_MARGIN_LEFT)); + renderEntryBody(tail, entries.get(last)); + }); + } + + /** + * The marker, the position and the dates, all on the marker's axis: the + * band is as tall as the marker, and the two pieces of type are pulled up + * by half their own overhang to centre on it. + */ + private static void renderEntryHead(SectionBuilder rail, CvEntry entry) { + DocumentNode marker = new EllipseBuilder() + .name("Marker_" + compact(entry.title())) + .circle(MARKER_DIAMETER) + .fillColor(INK) + .margin(DocumentInsets.zero()) + .build(); + DocumentNode title = new ParagraphBuilder() + .name("JobTitle_" + compact(entry.title())) + .text(entry.title()) + .textStyle(style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) + .lineSpacing(TIGHT_LEADING) + .margin(DocumentInsets.zero()) + .build(); + DocumentNode dates = new ParagraphBuilder() + .name("JobDates_" + compact(entry.title())) + .text(entry.date()) + .textStyle(body()) + .align(TextAlign.RIGHT) + .lineSpacing(TIGHT_LEADING) + .margin(DocumentInsets.zero()) + .build(); + rail.addContainer(head -> head + .name("EntryHead_" + compact(entry.title())) + .rectangle(ENTRY_WIDTH, ENTRY_HEAD_BAND_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .padding(DocumentInsets.zero()) + .position(marker, -MARKER_DIAMETER / 2.0, 0, LayerAlign.CENTER_LEFT) + .position(title, ENTRY_TEXT_INSET, -TITLE_OVERFLOW, LayerAlign.CENTER_LEFT) + .position(dates, 0, -DATE_OVERFLOW, LayerAlign.CENTER_RIGHT)); + } + + /** + * The employer in accent and the location in body, held apart by a pale + * pipe — three runs in one line, which is why the location is its own + * field rather than part of the subtitle. + */ + private static void renderEntryBody(SectionBuilder rail, CvEntry entry) { + rail.addParagraph(p -> { + p.name("Employer_" + compact(entry.title())) + .textStyle(small()) + .inlineText(entry.subtitle(), + style(SMALL_SIZE, ACCENT, DocumentTextDecoration.DEFAULT)); + if (!entry.place().isBlank()) { + p.inlineText(" | ", style(SMALL_SIZE, RULE, DocumentTextDecoration.DEFAULT)) + .inlineText(entry.place(), small()); + } + p.lineSpacing(TIGHT_LEADING) + .margin(new DocumentInsets( + TITLE_TO_EMPLOYER + TITLE_OVERFLOW, 0, + EMPLOYER_TO_BULLETS, ENTRY_TEXT_INSET)); + }); + List highlights = SerifHeadlineText.lines(entry.body()); + if (!highlights.isEmpty()) { + // marker(), not bullet(): the design leaves more air between the + // dot and its text than the built-in bullet does, and the marker + // is the only place that gap can be authored. + rail.addList(list -> list + .name("Highlights_" + compact(entry.title())) + .marker(BULLET_MARKER) + .items(highlights) + .textStyle(body()) + .lineSpacing(BULLET_LEADING) + .itemSpacing(BULLET_ITEM_GAP) + .margin(new DocumentInsets(0, 0, 0, ENTRY_TEXT_INSET))); + } + } + + private static void renderEntrySeparator(SectionBuilder rail, CvEntry entry) { + rail.addLine(line -> line + .name("EntrySeparator_" + compact(entry.title())) + .horizontal(ENTRY_WIDTH - ENTRY_TEXT_INSET) + .thickness(HAIRLINE_THICKNESS) + .color(RULE) + .margin(new DocumentInsets( + BULLETS_TO_SEPARATOR, 0, + SEPARATOR_TO_ENTRY + TITLE_OVERFLOW, ENTRY_TEXT_INSET))); + } + + // -- projects -------------------------------------------------------- + + private static void renderProjects(SectionBuilder section, EntriesSection projects) { + List entries = projects.entries(); + columnBand(section, "Projects", MAIN_WIDTH, entries.size(), + HEADING_TO_CARDS, PROJECT_SEPARATOR_HEIGHT, + index -> projectColumn(entries.get(index), index)); + } + + /** + * One project card: the plate with the entry's mark, then the title, the + * stack it was built on, and what it does. + * + *

    The first plate hangs a little left of the band so it lines up with + * the marks above it; the rest clear their column edge instead.

    + */ + private static BandColumn projectColumn(CvEntry project, int index) { + double lead = index == 0 ? PLATE_HANG : GLYPH_CLEARANCE; + SectionBuilder column = new SectionBuilder(); + column.name("ProjectCard_" + compact(project.title())) + .spacing(0) + .padding(new DocumentInsets(0, 0, 0, lead + PROJECT_GLYPH_TO_TEXT)); + column.addParagraph(p -> p + .name("ProjectTitle_" + compact(project.title())) + .text(project.title()) + .textStyle(style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) + .lineSpacing(TIGHT_LEADING) + .margin(new DocumentInsets(0, 0, CARD_TITLE_TO_TECH, 0))); + column.addParagraph(p -> p + .name("ProjectStack_" + compact(project.title())) + .text(project.subtitle()) + .textStyle(style(SMALL_SIZE, ACCENT, DocumentTextDecoration.ITALIC)) + .lineSpacing(TIGHT_LEADING) + .margin(new DocumentInsets(0, 0, CARD_TECH_TO_BODY, 0))); + column.addParagraph(p -> p + .name("ProjectBody_" + compact(project.title())) + .text(project.body()) + .textStyle(small()) + .lineSpacing(CARD_BODY_LEADING) + .margin(DocumentInsets.zero())); + DocumentNode mark = project.icon().isBlank() + ? null + : plate("ProjectPlate_" + compact(project.title()), + project.icon(), PROJECT_PLATE_DIAMETER); + return new BandColumn(column, mark, lead); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMasthead.java new file mode 100644 index 000000000..f9bffd2e0 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMasthead.java @@ -0,0 +1,231 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +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.node.TextAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.core.text.TextStyles; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.BODY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CONTACT_GLYPH_BOX; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CONTACT_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CONTACT_ROW_HEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CONTACT_TEXT_INSET; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CONTACT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.DISPLAY_FONT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.DISPLAY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.GOLD; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.GOLD_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.GOLD_RULE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.IDENTITY_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.MASTHEAD_TO_SUMMARY; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.NAME_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.NAME_TO_ROLE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ROLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.ROLE_TO_GOLD_RULE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.RULE_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.SUMMARY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.SUMMARY_RIGHT_INSET; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.SUMMARY_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TIGHT_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.body; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.style; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.tracked; + +/** + * The top of the sheet: the serif name with its role and gold rule, the + * contact channels stacked at the right, the summary beneath, and the rule + * that closes the block. + */ +final class SerifHeadlineMasthead { + + private SerifHeadlineMasthead() { + } + + static void compose(PageFlowBuilder page, CvIdentity identity, ParagraphSection summary) { + page.addRow("Masthead", row -> { + row.spacing(0); + row.gap(0); + row.weights(IDENTITY_WEIGHT, 1.0 - IDENTITY_WEIGHT); + row.verticalAlign(RowVerticalAlign.TOP); + row.margin(new DocumentInsets(0, 0, MASTHEAD_TO_SUMMARY, 0)); + row.addSection("Identity", section -> renderIdentity(section, identity)); + row.addSection("Contact", section -> renderContact(section, identity)); + }); + if (SectionLookup.hasContent(summary)) { + renderSummary(page, summary); + } + page.addLine(line -> line + .name("MastheadRule") + .horizontal(CONTENT_WIDTH) + .thickness(RULE_THICKNESS) + .color(RULE) + .margin(new DocumentInsets(0, 0, RULE_TO_BODY, 0))); + } + + // -- identity -------------------------------------------------------- + + /** + * The name in the display serif, the role in tracked capitals, and the + * short gold rule that closes them. + */ + private static void renderIdentity(SectionBuilder section, CvIdentity identity) { + section.spacing(0).padding(DocumentInsets.zero()); + + DocumentTextStyle nameStyle = TextStyles.of(DISPLAY_FONT, NAME_SIZE, + DocumentTextDecoration.DEFAULT, INK); + section.addParagraph(p -> p + .name("Name") + .text(identity.name().full().toUpperCase(Locale.ROOT)) + .textStyle(nameStyle) + .align(TextAlign.LEFT) + .lineSpacing(DISPLAY_LEADING) + .margin(new DocumentInsets(0, 0, NAME_TO_ROLE, 0))); + + DocumentTextStyle roleStyle = style(ROLE_SIZE, INK, DocumentTextDecoration.DEFAULT); + section.addParagraph(p -> { + p.name("Role"); + p.textStyle(roleStyle); + tracked(p, identity.jobTitle().toUpperCase(Locale.ROOT), roleStyle); + p.align(TextAlign.LEFT); + p.lineSpacing(TIGHT_LEADING); + p.margin(new DocumentInsets(0, 0, ROLE_TO_GOLD_RULE, 0)); + }); + + section.addLine(line -> line + .name("GoldRule") + .horizontal(GOLD_RULE_WIDTH) + .thickness(GOLD_RULE_THICKNESS) + .color(GOLD) + .margin(DocumentInsets.zero())); + } + + // -- contact --------------------------------------------------------- + + /** + * The contact channels, in the order the design sets them: phone, email, + * address, then whatever links the identity carries. + * + *

    Each row is a band with the mark anchored at the left and the value + * at a fixed inset, so the values line up whatever their marks measure — + * and, unlike a single paragraph, a long value wraps under itself rather + * than under the mark.

    + * + *

    The phone and the email carry {@code tel:} and {@code mailto:} + * targets built from the values, and each link its own url.

    + */ + private static void renderContact(SectionBuilder section, CvIdentity identity) { + section.spacing(CONTACT_ROW_GAP).padding(DocumentInsets.zero()); + for (Channel channel : channels(identity)) { + renderChannel(section, channel); + } + } + + private static void renderChannel(SectionBuilder section, Channel channel) { + DocumentNode glyph = new ImageBuilder() + .name("ContactGlyph_" + channel.token()) + .source(SerifHeadlineIcons.image(channel.token())) + .fitToBounds(CONTACT_GLYPH_BOX, CONTACT_GLYPH_BOX) + .margin(DocumentInsets.zero()) + .build(); + + DocumentLinkOptions link = channel.href() == null + ? null + : new DocumentLinkOptions(channel.href()); + ParagraphBuilder valueText = new ParagraphBuilder() + .name("ContactValue_" + channel.token()) + .textStyle(body()) + .lineSpacing(BODY_LEADING); + if (link == null) { + valueText.inlineText(channel.value(), body()); + } else { + valueText.inlineText(channel.value(), body(), link); + } + DocumentNode value = valueText.margin(DocumentInsets.zero()).build(); + + section.addContainer(band -> band + .name("ContactRow_" + channel.token()) + .rectangle(CONTACT_WIDTH, CONTACT_ROW_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .padding(DocumentInsets.zero()) + .position(glyph, 0, 0, LayerAlign.CENTER_LEFT) + .position(value, CONTACT_TEXT_INSET, 0, LayerAlign.CENTER_LEFT)); + } + + private static List channels(CvIdentity identity) { + List channels = new ArrayList<>(); + String phone = identity.contact().phone(); + channels.add(new Channel(SerifHeadlineIcons.PHONE, phone, telUri(phone))); + String email = identity.contact().email(); + channels.add(new Channel(SerifHeadlineIcons.EMAIL, email, "mailto:" + email)); + channels.add(new Channel(SerifHeadlineIcons.LOCATION, + identity.contact().address(), null)); + for (Link link : identity.links()) { + channels.add(new Channel(linkToken(link), link.label(), link.url())); + } + return channels; + } + + /** + * The dial target for a phone number: its digits, keeping a leading + * {@code +} so an international number stays international. + */ + private static String telUri(String phone) { + String digits = phone.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + /** + * The mark for a link. This design packages the two networks it shows; + * anything else takes the LinkedIn mark, because there is no globe in + * the set to fall back to. + */ + private static String linkToken(Link link) { + String haystack = SectionLookup.normalize(link.label() + " " + link.url()); + return haystack.contains("github") + ? SerifHeadlineIcons.GITHUB + : SerifHeadlineIcons.LINKEDIN; + } + + private record Channel(String token, String value, String href) { + } + + // -- summary --------------------------------------------------------- + + /** + * The opening paragraph. It stops at the column divider rather than + * running the width of the page, and this design gives it no heading, so + * the section's title is not drawn. + */ + private static void renderSummary(PageFlowBuilder page, ParagraphSection summary) { + page.addParagraph(p -> p + .name("Summary") + .text(summary.body()) + .textStyle(body()) + .lineSpacing(SUMMARY_LEADING) + .margin(new DocumentInsets(0, SUMMARY_RIGHT_INSET, SUMMARY_TO_RULE, 0))); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java new file mode 100644 index 000000000..e24543155 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java @@ -0,0 +1,408 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.text.TextStyles; +import com.demcha.compose.font.FontName; + +/** + * The measured geometry, palette and type scale of the Serif Headline CV. + * + *

    Unlike the other ported sheets, almost nothing here is a literal. The + * design was drawn on a 1024 x 1536 pixel grid, so every distance is that + * grid's number put through {@link #h} or {@link #v}, and every vertical gap + * is stated as the ink distance the drawing shows — the white + * between a descender and the next cap — with {@link #gap} subtracting the + * blank a line box carries above and below its letters. Copying the pixel + * numbers straight in would have set every block a few points too far apart, + * because a line box is taller than the letters in it.

    + * + *

    The vertical scale carries a compression factor of its own: the drawing + * is proportionally taller than A4, so heights are scaled by + * {@link #V_COMPRESS} on top of the width scale to bring the sheet back onto + * the page.

    + */ +final class SerifHeadlineStyles { + + private SerifHeadlineStyles() { + } + + // -- the reference grid ---------------------------------------------- + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + + /** The width of the grid the design was drawn on, in pixels. */ + static final double REFERENCE_WIDTH_PX = 1024.0; + + static final double H_SCALE = PAGE.width() / REFERENCE_WIDTH_PX; + + /** How much shorter the page is than the drawing, proportionally. */ + static final double V_COMPRESS = 0.8450; + static final double V_SCALE = H_SCALE * V_COMPRESS; + + /** A horizontal distance from the drawing, in points. */ + static double h(double px) { + return px * H_SCALE; + } + + /** A vertical distance from the drawing, in points. */ + static double v(double px) { + return px * V_SCALE; + } + + // -- type metrics ---------------------------------------------------- + + /** Cap height as a fraction of type size, for the text face. */ + static final double CAP_EM = 0.72; + static final double ASCENDER_EM = 0.80; + static final double DESCENDER_EM = 0.21; + + /** Cap height as a fraction of type size, for the display face. */ + static final double DISPLAY_CAP_EM = 0.766; + + /** How much narrower the small face runs than the body face. */ + static final double ADVANCE_MATCH = 0.95; + + /** + * The blank a line box leaves under its letters: the descender space, + * which no glyph in a line of capitals or of ordinary lowercase reaches. + */ + static double blankBelow(double size) { + return size * DESCENDER_EM; + } + + /** + * The blank a line box leaves above its letters: the leading it adds, + * plus the ascender space above the cap line. + */ + static double blankAbove(double size, double leading) { + return size * ((leading - 1.0) + (ASCENDER_EM - CAP_EM)); + } + + /** + * A vertical gap authored as the ink distance in the drawing, less the + * blank the two line boxes on either side already contribute. + * + * @param inkPx the white space the drawing shows, in grid pixels + * @param blankAboveTheGap blank the box above already leaves below itself + * @param blankBelowTheGap blank the box below already leaves above itself + * @return the margin to author, never negative + */ + static double gap(double inkPx, double blankAboveTheGap, double blankBelowTheGap) { + return Math.max(0.0, v(inkPx) - blankAboveTheGap - blankBelowTheGap); + } + + // -- the column grid ------------------------------------------------- + + static final double MARGIN = h(54.5); + static final double CONTENT_WIDTH = PAGE.width() - 2.0 * MARGIN; + + static final double MAIN_WEIGHT = 0.6448; + static final double GUTTER_WEIGHT = 0.0721; + static final double ASIDE_WEIGHT = 1.0 - MAIN_WEIGHT - GUTTER_WEIGHT; + + /** The row splits on the gutter's midline, where the divider runs. */ + static final double MAIN_CELL_WEIGHT = MAIN_WEIGHT + GUTTER_WEIGHT / 2.0; + static final double ASIDE_CELL_WEIGHT = 1.0 - MAIN_CELL_WEIGHT; + + static final double MAIN_WIDTH = CONTENT_WIDTH * MAIN_WEIGHT; + static final double GUTTER = CONTENT_WIDTH * GUTTER_WEIGHT; + static final double ASIDE_WIDTH = CONTENT_WIDTH * ASIDE_WEIGHT; + static final double HALF_GUTTER = GUTTER / 2.0; + + static final double IDENTITY_WEIGHT = 0.7803; + static final double CONTACT_WEIGHT = 1.0 - IDENTITY_WEIGHT; + static final double CONTACT_WIDTH = CONTENT_WIDTH * CONTACT_WEIGHT; + + /** The summary stops at the divider rather than running the page width. */ + static final double SUMMARY_WIDTH = CONTENT_WIDTH * (MAIN_WEIGHT + GUTTER_WEIGHT); + static final double SUMMARY_RIGHT_INSET = CONTENT_WIDTH - SUMMARY_WIDTH; + + // -- type ------------------------------------------------------------ + + static final FontName DISPLAY_FONT = FontName.VOLKHOV; + static final FontName TEXT_FONT = FontName.LATO; + + static final double BODY_SIZE = h(10.0) / CAP_EM; + static final double SMALL_SIZE = h(9.0) / CAP_EM * ADVANCE_MATCH; + static final double HEADING_SIZE = h(12.0) / CAP_EM; + static final double JOB_TITLE_SIZE = HEADING_SIZE; + static final double ITEM_TITLE_SIZE = BODY_SIZE; + static final double ROLE_SIZE = h(16.0) / CAP_EM; + static final double NAME_SIZE = h(44.0) / DISPLAY_CAP_EM; + + static final double BODY_LEADING = 1.34; + static final double SUMMARY_LEADING = 1.37; + static final double TIGHT_LEADING = 1.30; + static final double DISPLAY_LEADING = 1.0; + + static final double TRACKING_EM = 0.17; + static final double SPACE_ADVANCE_EM = 0.25; + + /** The marker string: the dot and the space the design leaves after it. */ + static final String BULLET_MARKER = "• "; + + static final double BLANK_BODY = blankBelow(BODY_SIZE); + static final double BLANK_SMALL = blankBelow(SMALL_SIZE); + static final double BLANK_TITLE = blankBelow(ITEM_TITLE_SIZE); + static final double BLANK_CAPS_BELOW_HEADING = blankBelow(HEADING_SIZE); + static final double BLANK_CAPS_ABOVE_HEADING = blankAbove(HEADING_SIZE, TIGHT_LEADING); + + // -- palette --------------------------------------------------------- + + static final DocumentColor INK = DocumentColor.rgb(26, 38, 62); + static final DocumentColor ACCENT = DocumentColor.rgb(61, 81, 147); + static final DocumentColor BODY = DocumentColor.rgb(72, 76, 89); + static final DocumentColor GOLD = DocumentColor.rgb(165, 117, 42); + static final DocumentColor RULE = DocumentColor.rgb(229, 230, 233); + static final DocumentColor DIVIDER = DocumentColor.rgb(222, 224, 228); + static final DocumentColor TRACK = DocumentColor.rgb(224, 226, 231); + static final DocumentColor PLATE = DocumentColor.rgb(243, 244, 246); + static final DocumentColor STUB_RULE = DocumentColor.rgb(181, 185, 196); + + // -- masthead -------------------------------------------------------- + + static final double NAME_TO_ROLE = gap(25, + blankBelow(NAME_SIZE), blankAbove(ROLE_SIZE, TIGHT_LEADING)); + static final double ROLE_TO_GOLD_RULE = gap(23, blankBelow(ROLE_SIZE), 0.0); + static final double GOLD_RULE_WIDTH = h(79); + static final double GOLD_RULE_THICKNESS = h(3); + + static final double CONTACT_ROW_HEIGHT = BODY_SIZE * BODY_LEADING; + static final double CONTACT_ROW_GAP = Math.max(0.0, v(29.25) - CONTACT_ROW_HEIGHT); + static final double CONTACT_TEXT_INSET = h(32); + static final double CONTACT_GLYPH_BOX = h(16); + + static final double MASTHEAD_TO_SUMMARY = + gap(31, 0.0, blankAbove(BODY_SIZE, SUMMARY_LEADING)); + static final double SUMMARY_TO_RULE = gap(30, BLANK_BODY, 0.0); + static final double RULE_TO_BODY = gap(35, 0.0, BLANK_CAPS_ABOVE_HEADING); + static final double RULE_THICKNESS = h(1.5); + static final double HAIRLINE_THICKNESS = h(1.2); + + // -- section headings ------------------------------------------------ + + static final double DASH_CLEARANCE = h(25); + static final double DASH_WIDTH = h(22); + static final double DASH_THICKNESS = h(3); + static final double DASH_TO_TITLE = h(16); + static final double TAIL_GAP = h(19); + + /** + * Where the heading dash starts, measured from the left edge of whatever + * surface it is drawn on — the page for a full-width band, the column for + * one inside the grid. + */ + static double dashOffset(double leftSurfaceDistance) { + return DASH_CLEARANCE - leftSurfaceDistance; + } + + /** Where the heading's letters start, on the same measure. */ + static double titleOffset(double leftSurfaceDistance) { + return dashOffset(leftSurfaceDistance) + DASH_WIDTH + DASH_TO_TITLE; + } + + static final double SECTION_TEXT_INSET = titleOffset(MARGIN); + + // -- experience ------------------------------------------------------ + + static final double RAIL_THICKNESS = h(1.2); + static final double RAIL_MARGIN_LEFT = SECTION_TEXT_INSET - RAIL_THICKNESS / 2.0; + static final double ENTRY_WIDTH = MAIN_WIDTH - RAIL_MARGIN_LEFT; + static final double ENTRY_TEXT_INSET = h(104 - 54) - RAIL_MARGIN_LEFT; + static final double MARKER_DIAMETER = h(11); + static final double ENTRY_HEAD_BAND_HEIGHT = MARKER_DIAMETER; + + /** How far the job title rises above the marker band it is set on. */ + static final double TITLE_OVERFLOW = + (JOB_TITLE_SIZE * TIGHT_LEADING - ENTRY_HEAD_BAND_HEIGHT) / 2.0; + + /** The same, for the dates set at the other end of that band. */ + static final double DATE_OVERFLOW = + (BODY_SIZE * TIGHT_LEADING - ENTRY_HEAD_BAND_HEIGHT) / 2.0; + + static final double HEADING_TO_ENTRY = gap(36, BLANK_CAPS_BELOW_HEADING, 0.0); + static final double TITLE_TO_EMPLOYER = gap(17, 0.0, BLANK_SMALL); + static final double EMPLOYER_TO_BULLETS = gap(23, BLANK_SMALL, BLANK_BODY); + static final double BULLET_LEADING = v(20) / BODY_SIZE; + static final double BULLET_ITEM_GAP = + Math.max(0.0, v(25) - BODY_SIZE * BULLET_LEADING); + static final double BULLETS_TO_SEPARATOR = gap(35, BLANK_BODY, 0.0); + static final double SEPARATOR_TO_ENTRY = gap(32, 0.0, 0.0); + + // -- projects -------------------------------------------------------- + + static final double EXPERIENCE_TO_PROJECTS = + gap(59, BLANK_BODY, BLANK_CAPS_ABOVE_HEADING); + static final double HEADING_TO_CARDS = gap(33, BLANK_CAPS_BELOW_HEADING, 0.0); + static final double PROJECT_PLATE_DIAMETER = h(47); + static final double PROJECT_GLYPH_TO_TEXT = h(61); + + /** The plate hangs a little left of its column, into the gutter. */ + static final double PLATE_HANG = h(-4); + static final double GLYPH_CLEARANCE = h(10); + static final double CARD_TITLE_TO_TECH = gap(15, BLANK_TITLE, BLANK_SMALL); + static final double CARD_TECH_TO_BODY = gap(12, BLANK_SMALL, BLANK_SMALL); + static final double CARD_BODY_LEADING = v(18.5) / SMALL_SIZE; + static final double PROJECT_SEPARATOR_HEIGHT = v(98); + + static final double BODY_BAND_TO_CERTIFICATIONS = + gap(22, BLANK_BODY, BLANK_CAPS_ABOVE_HEADING); + + // -- education ------------------------------------------------------- + + static final double HEADING_TO_EDUCATION = gap(34, BLANK_CAPS_BELOW_HEADING, 0.0); + static final double DEGREE_TO_INSTITUTION = gap(14, BLANK_TITLE, BLANK_SMALL); + static final double INSTITUTION_TO_YEARS = gap(14, BLANK_SMALL, BLANK_SMALL); + static final double YEARS_TO_STUB = gap(20, BLANK_SMALL, 0.0); + static final double STUB_TO_DEGREE = gap(20, 0.0, 0.0); + static final double STUB_RULE_WIDTH = h(27); + static final double STUB_RULE_THICKNESS = h(2); + + // -- skills ---------------------------------------------------------- + + static final double EDUCATION_TO_SKILLS = + gap(45, BLANK_SMALL, BLANK_CAPS_ABOVE_HEADING); + static final double HEADING_TO_CAPTION = gap(32, BLANK_CAPS_BELOW_HEADING, + blankAbove(SMALL_SIZE, TIGHT_LEADING)); + static final double CAPTION_TO_ROWS = gap(17, blankBelow(SMALL_SIZE), 0.0); + static final double SKILL_ROW_HEIGHT = SMALL_SIZE * TIGHT_LEADING; + static final double SKILL_ROW_GAP = Math.max(0.0, v(21.5) - SKILL_ROW_HEIGHT); + static final double GROUP_GAP = + gap(31, 0.0, blankAbove(SMALL_SIZE, TIGHT_LEADING)); + static final double TRACK_WIDTH = h(116); + static final double TRACK_THICKNESS = h(3); + static final double CAPTION_TO_SOFT_SKILLS = + gap(14, blankBelow(SMALL_SIZE), BLANK_BODY); + static final double SOFT_SKILL_LEADING = v(19) / BODY_SIZE; + + // -- certifications and achievements --------------------------------- + + static final double HEADING_TO_CERTIFICATIONS = + gap(33, BLANK_CAPS_BELOW_HEADING, 0.0); + static final double CERT_PLATE_DIAMETER = h(48); + static final double CERT_GLYPH_TO_TEXT = h(58); + static final double CERT_LINE_LEADING = v(19) / SMALL_SIZE; + static final double CERT_SEPARATOR_HEIGHT = v(46); + static final double CERTIFICATIONS_TO_ACHIEVEMENTS = + gap(50, BLANK_SMALL, BLANK_CAPS_ABOVE_HEADING); + + static final double HEADING_TO_ACHIEVEMENTS = + gap(39, BLANK_CAPS_BELOW_HEADING, 0.0); + static final double ACHIEVEMENT_GLYPH_BOX = h(40); + static final double ACHIEVEMENT_GLYPH_TO_TEXT = h(59); + static final double ACHIEVEMENT_GLYPH_HANG = h(-2); + static final double ACHIEVEMENT_TEXT_DROP = v(8); + static final double ACHIEVEMENT_TITLE_TO_BODY = gap(16, BLANK_TITLE, BLANK_SMALL); + static final double ACHIEVEMENT_BODY_LEADING = v(18) / SMALL_SIZE; + static final double ACHIEVEMENT_SEPARATOR_HEIGHT = v(62); + + // -- tracked capitals ------------------------------------------------ + + static final double CAP_ADVANCE_NARROW = 0.30; + static final double CAP_ADVANCE_WIDE = 0.85; + static final double CAP_ADVANCE_EM = 0.62; + + /** Headroom on the estimate, so a tail never runs under its heading. */ + static final double TRACKED_WIDTH_SAFETY = 1.03; + + /** + * Writes text letter by letter with a sized space between each pair, + * which is how this design gets its letter-spacing: a text style carries + * no tracking, so the gap is a run of its own whose type size is chosen + * to advance by {@link #TRACKING_EM} of the surrounding size. + * + * @param paragraph the paragraph being built + * @param text the text to space out + * @param style the style of the letters + */ + static void tracked(ParagraphBuilder paragraph, String text, DocumentTextStyle style) { + DocumentTextStyle spacer = style.withSize(TRACKING_EM * style.size() / SPACE_ADVANCE_EM); + for (int i = 0; i < text.length(); i++) { + paragraph.inlineText(String.valueOf(text.charAt(i)), style); + if (i < text.length() - 1) { + paragraph.inlineText(" ", spacer); + } + } + } + + /** + * How wide a run of tracked capitals will be, estimated from per-letter + * advances rather than measured. + * + *

    The heading rule that trails a title has to stop before the letters + * start, and its width is authored — the engine offers no measurement at + * compose time. Three advance classes are enough for capitals, and the + * result is padded by {@link #TRACKED_WIDTH_SAFETY} so the estimate errs + * towards a shorter rule.

    + * + * @param text the capitals to measure + * @param size the type size + * @return the estimated width in points + */ + static double trackedWidth(String text, double size) { + if (text.isEmpty()) { + return 0.0; + } + double glyphs = 0.0; + for (int i = 0; i < text.length(); i++) { + glyphs += capAdvanceEm(text.charAt(i)); + } + return (glyphs * size + (text.length() - 1) * size * TRACKING_EM) + * TRACKED_WIDTH_SAFETY; + } + + private static double capAdvanceEm(char glyph) { + return switch (glyph) { + case 'I', 'J' -> CAP_ADVANCE_NARROW; + case 'M', 'W' -> CAP_ADVANCE_WIDE; + default -> CAP_ADVANCE_EM; + }; + } + + // -- bands ----------------------------------------------------------- + + /** + * The margins that place one column of an N-column band, as insets on a + * layer of the band's stack. + * + * @param bandWidth the band's full width + * @param columnWidth one column's share of it + * @param index which column, from zero + * @param dx an extra offset for a mark that hangs left + * @param naturalWidth the child's own width when it has one, else zero + * @return the insets to set on that layer + */ + static DocumentInsets columnInsets(double bandWidth, double columnWidth, + int index, double dx, double naturalWidth) { + double left = index * columnWidth + dx; + double right = naturalWidth > 0.0 + ? Math.max(0.0, bandWidth - left - naturalWidth) + : Math.max(0.0, bandWidth - left - (columnWidth - dx)); + return new DocumentInsets(0, right, 0, left); + } + + // -- styles ---------------------------------------------------------- + + static DocumentTextStyle body() { + return style(BODY_SIZE, BODY, DocumentTextDecoration.DEFAULT); + } + + static DocumentTextStyle small() { + return style(SMALL_SIZE, BODY, DocumentTextDecoration.DEFAULT); + } + + static DocumentTextStyle style(double size, DocumentColor color, + DocumentTextDecoration decoration) { + return TextStyles.of(TEXT_FONT, size, decoration, color); + } + + /** Strips a title down to the letters and digits a node name can carry. */ + static String compact(String text) { + return text == null ? "" : text.replaceAll("[^A-Za-z0-9]", ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineText.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineText.java new file mode 100644 index 000000000..89f46eab2 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineText.java @@ -0,0 +1,31 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.templates.core.text.MarkdownInline; + +import java.util.ArrayList; +import java.util.List; + +/** Turning a model field into the lines this sheet draws. */ +final class SerifHeadlineText { + + private SerifHeadlineText() { + } + + /** + * One item per non-blank line — the family's way of carrying a list in a + * field the model types as a single string. + * + * @param body the field's text + * @return the lines, in order + */ + static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split("\\R")) { + String clean = MarkdownInline.plainText(line).trim(); + if (!clean.isBlank()) { + out.add(clean); + } + } + return out; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineWidgets.java new file mode 100644 index 000000000..14e4827ff --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineWidgets.java @@ -0,0 +1,231 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.LineBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +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.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.DASH_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.DASH_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HAIRLINE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.PLATE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TAIL_GAP; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TIGHT_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.columnInsets; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.dashOffset; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.style; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.titleOffset; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.trackedWidth; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.tracked; + +/** + * The three things this sheet is built from: the section heading — a short + * dash, tracked capitals, and on the full-width bands a rule trailing to the + * margin — the round plate a mark sits in, and the N-column band the + * projects, certifications and achievements are laid out as. + */ +final class SerifHeadlineWidgets { + + private SerifHeadlineWidgets() { + } + + /** + * A section heading. + * + *

    The dash and the words are anchored in a band rather than stacked, + * because the design measures both from the page edge and not from the + * column they sit in: a heading inside the grid and one across the page + * put their letters on the same vertical, which is what + * {@code leftSurfaceDistance} corrects for.

    + * + * @param section the host column + * @param title the heading text, drawn in capitals + * @param width the band's width + * @param tail true to trail a rule from the words to the + * right edge + * @param gapAbove the gap above the band + * @param leftSurfaceDistance how far this band's left edge already is + * from the page edge + */ + static void sectionHeading(SectionBuilder section, String title, double width, + boolean tail, double gapAbove, double leftSurfaceDistance) { + String caps = title.toUpperCase(Locale.ROOT); + double dashAt = dashOffset(leftSurfaceDistance); + double titleAt = titleOffset(leftSurfaceDistance); + + DocumentTextStyle headingStyle = style(HEADING_SIZE, INK, DocumentTextDecoration.DEFAULT); + DocumentNode dash = new LineBuilder() + .name("HeadingDash_" + compact(title)) + .horizontal(DASH_WIDTH) + .thickness(DASH_THICKNESS) + .color(INK) + .margin(DocumentInsets.zero()) + .build(); + ParagraphBuilder heading = new ParagraphBuilder() + .name("SectionTitle_" + compact(title)) + .textStyle(headingStyle) + .lineSpacing(TIGHT_LEADING); + tracked(heading, caps, headingStyle); + DocumentNode headingNode = heading.margin(DocumentInsets.zero()).build(); + + // The rule is authored, so its width comes from an estimate of what + // the letters will measure — see trackedWidth. + double tailWidth = width - titleAt - trackedWidth(caps, HEADING_SIZE) - TAIL_GAP; + DocumentNode tailNode = tail && tailWidth > 0 + ? new LineBuilder() + .name("HeadingTail_" + compact(title)) + .horizontal(tailWidth) + .thickness(HAIRLINE_THICKNESS) + .color(RULE) + .margin(DocumentInsets.zero()) + .build() + : null; + + section.addContainer(band -> { + band.name("SectionHeading_" + compact(title)) + .rectangle(width, HEADING_SIZE * TIGHT_LEADING) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .padding(DocumentInsets.zero()) + .margin(new DocumentInsets(gapAbove, 0, 0, 0)) + .position(dash, dashAt, 0, LayerAlign.CENTER_LEFT) + .position(headingNode, titleAt, 0, LayerAlign.CENTER_LEFT); + if (tailNode != null) { + band.position(tailNode, 0, 0, LayerAlign.CENTER_RIGHT); + } + }); + } + + /** + * A mark inside a pale round plate, clipped to the circle. + * + * @param plateName node name of the plate + * @param iconToken the packaged mark + * @param plateDiameter the plate's diameter + * @return the plate node + */ + static DocumentNode plate(String plateName, String iconToken, double plateDiameter) { + return new ShapeContainerBuilder() + .name(plateName) + .circle(plateDiameter) + .clipPolicy(ClipPolicy.CLIP_PATH) + .fillColor(PLATE) + .padding(DocumentInsets.zero()) + .center(new ImageBuilder() + .name(plateName + "Glyph") + .source(SerifHeadlineIcons.image(iconToken)) + .fitToBounds(SerifHeadlineIcons.size(iconToken), + SerifHeadlineIcons.size(iconToken)) + .margin(DocumentInsets.zero()) + .build()) + .build(); + } + + /** One column of a band: its text, the mark beside it, and the mark's offset. */ + record BandColumn(SectionBuilder text, DocumentNode glyph, double glyphDx) { + } + + /** Builds the column at a given index. */ + @FunctionalInterface + interface ColumnFactory { + + /** + * @param index which column, from zero + * @return that column + */ + BandColumn column(int index); + } + + /** + * A band of equal columns, each with a mark and a hairline between + * neighbours. + * + *

    It is a layer stack rather than a row because the marks hang outside + * their columns and the separators sit exactly on the column edges — + * both of which a row's slots would clip or push. Every child is placed + * by its own left and right insets instead, computed by + * {@link SerifHeadlineStyles#columnInsets}.

    + * + *

    The three passes are the drawing order: text first, then the marks + * over it, then the separators.

    + * + * @param section the host column + * @param name node-name stem for the band and its parts + * @param bandWidth the band's width + * @param columns how many columns + * @param gapAbove the gap above the band + * @param separatorHeight how tall the hairlines between columns are + * @param factory builds each column + */ + static void columnBand(SectionBuilder section, String name, double bandWidth, + int columns, double gapAbove, double separatorHeight, + ColumnFactory factory) { + double columnWidth = bandWidth / columns; + List parts = new ArrayList<>(columns); + for (int i = 0; i < columns; i++) { + parts.add(factory.column(i)); + } + section.addLayerStack(stack -> { + stack.name(name + "Band") + .padding(DocumentInsets.zero()) + .margin(new DocumentInsets(gapAbove, 0, 0, 0)); + for (int i = 0; i < columns; i++) { + stack.layer(parts.get(i).text() + .margin(columnInsets(bandWidth, columnWidth, i, 0.0, 0.0)) + .build(), LayerAlign.TOP_LEFT); + } + for (int i = 0; i < columns; i++) { + BandColumn part = parts.get(i); + if (part.glyph() == null) { + continue; + } + stack.layer(sleeve(name + "Glyph_" + i, part.glyph(), + columnInsets(bandWidth, columnWidth, i, part.glyphDx(), 0.0)), + LayerAlign.TOP_LEFT); + } + for (int i = 1; i < columns; i++) { + stack.layer(sleeve(name + "Separator_" + i, + separatorLine(name, i, separatorHeight), + columnInsets(bandWidth, columnWidth, i, 0.0, + HAIRLINE_THICKNESS)), + LayerAlign.TOP_LEFT); + } + }); + } + + /** + * A layer carries its position as margins, and a node built elsewhere + * already has its own; wrapping it in a section gives the insets + * somewhere to live without touching the node. + */ + private static DocumentNode sleeve(String name, DocumentNode child, DocumentInsets margin) { + SectionBuilder sleeve = new SectionBuilder(); + sleeve.name(name).spacing(0).padding(DocumentInsets.zero()).margin(margin); + sleeve.add(child); + return sleeve.build(); + } + + private static DocumentNode separatorLine(String name, int index, double height) { + return new LineBuilder() + .name(name + "SeparatorLine_" + index) + .vertical(height) + .thickness(HAIRLINE_THICKNESS) + .color(RULE) + .margin(DocumentInsets.zero()) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java index 5b6771bc0..d9f61ae7a 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java @@ -21,8 +21,9 @@ * fed a different theme.

    * *

    The package holds a second shape as well. A preset that reproduces a - * specific drawn sheet — {@code ProfessionalSidebar} and {@code NavySidebar} - * are the ones here — takes no {@code BrandTheme} and calls no shared + * specific drawn sheet — {@code ProfessionalSidebar}, {@code NavySidebar} + * and {@code SerifHeadline} are the ones here — takes no + * {@code BrandTheme} and calls no shared * renderer: its geometry, palette and type scale are measured constants of * its own, and it sets its own page. The data model is the same * {@code CvDocument}; what differs is that the cosmetics cannot be swapped, diff --git a/templates/src/main/resources/templates/cv/serif-headline/icons/api.png b/templates/src/main/resources/templates/cv/serif-headline/icons/api.png new file mode 100644 index 0000000000000000000000000000000000000000..8e0672abba13cd812d47c9216c8a8b408596bce8 GIT binary patch literal 3718 zcmZ`+2{e@d*MAyhY-NkFWlU(wHe>9@J{Z}vWQ(yYWJx8&j3O~)52Y*-QjBcbvJSF~ zRMtqg!bEm@pWgSp?>X=J|9;Oo-{(H(-tYb1=eg%|@BKUv%uMvznE9Cj0AMq~<1T`d z_;*2%gZDOd=N?eNUGW!<0U$&i)ZYVuy}$NF0JwnyfMo&zsAK>Dum6)eb1Y~$?qaBq z10{Iv>eNSog2^9mdmWU7|6c3f+5_MNV~~NdF5@y3#)}Y>U?O>fDzPA4n;D$}p;S<)bzDj7|8wy5bGzbk``;Z%e4OE+1M>eO z1YPlUzaHf5>;LaQA6YTEU{1^pa9WnZUw&ra@v)j0>U=k#ynR?*v(|X$e&p!+uAb-d zmJG$ON0<;)CTA_NYj^u_n0V>WF1;1KZdq^fvm+X0t?nYwa!ZrNiA-&aJ5lV@-9OW(h1*_ zo{s29YL8-Pki2*|Q4@uC5>!d3xjFjPriU-MK^+B1Qf0(BNYHY-KATE{`soRq`0;d^ z$RWavb__9w9<@XpPRMEu_P!+KFn0|a$-a^BjvEmv+2b!dPPwfkU+q)JqVPB>4sO)S zLmUv!x#ai=t66>7G1cku`$X

    U;GJrxd{>Cc1MZ5@mKC^g_pV>Qv$JC8*LLmA%!`-rxt(6_sD>Z4!d2=*T5M*+ z_GF^a$Aq#Q7vG|acCt=h)##-8^=oohJ?k#IFQV7@hdU=}k5=vLwYjEct}cwc{}!z6%k;=Is6@uULG4 zPR5p*AFyQjhl&{dIyI169NlomfQk86h35}c0g5^}`Qc$9moM)#nrl}wYt4B6VpGa# znP`27OS%iDbH8`dN^*reVI7b}ciW-cWHi>_Pwb=hbgP@KweGP&%rA82v48MO&6y1n;qkjt(w4w5)~CC&)Ndnq_j?zv zE5L&=HG%CI6J3olp~IQGZNIi9mG+MCMfg29!J)-XU;3(vVfSrjY}tn@0GKK47@MWM z+CGChGe1kPNcSA$V7-8X;Yyv}KpwBY!<2U9WE?;|xWL!?eXA@-IZFAHh5bW6JJp$| zntR`W`)K0Sf0pk5*0mEfOFP}YZcz0eMo10z%-_3O*GECX zJmXpXY@S0#pLib|S1kaL--;J`Y@gjJT7`$~M{765^S8isE>s99K9XscQ7p^#Uf{iY z9x}<&thSWP>lDtrHug~`*}c7OA;_ye>fzRDT&VuZr=j1+vSKy2U5ST`C+6B3og5}i zp9NM9ZnED?H23W3eiMAhQ|jP|=wY9P=FpVg6jN)g*-w-`lS8(QYLTlLBFRId-c;XN{M`E&%j&pdm$AG27&xR*P z&kMvQ{QC*)g-4zxr!D9TB^2QzQeu2>mHA?q-6$EKmfr_v^y!U;!4U2$Q!T%KMP(@J zzqRtKMDh?ZszPHtm(e^T5q-I3m`i) zlb|eGgCQcwQmDx507bRK9}+vIxlGaY8|)`8a9UeSwroV~u?co>l?x=vFi12f`FM_3 zm*#^B587rGHA;jUB%5bEiubkus5`Q&*@eYw$gu3*wxzvJD7-g$*YKL8v#CZClX8C$ zKAC&0#iEPLRyzSBWU5ik1lkNr{|rmQ^N`LsoYUzmErw;QdK=w0yJRmr7!4te1c`A2 z4#9_5Y}3#1i3T4nOG@D8h4ui*v78#en60n_hGq3b=IqOj>w6IN9|Vd@Kns{#X53v? zeNS2StPvT@Y*AI$&f^4tE}Wc_Qf#{4!0h;k>_uT1sdM4}az2tukbj(*ofbWujF3c1 z>3MjZr$73ruR8*%O|^-(jZ+ZiU$|c+4fOv&puYz^screkp;vSb+sPa0!E4T7kF7l1s(wUjaY46crkNCo>DJ~}!fg49v7t7pI5Fa&$KXQIekI33UC7rD zftaG^2PN+V!3Gey<6-s<*CZ5H%OKO34jpgl2=-YSpfr&E81=PrkezSu^cUa0Tf_NH zn>olv8)JM89;alJG_VxDTT@MB7I2I`Wsu8OG9K_N)AE}};mpY|1H6#tkug(8&e(U2 z$BoaLY-GPeF^wZPi#`94_M%-UkaAivAB*HlwFr0G&~m4hna~^)UeaLG3cIl>5Ei}& zTYX&uUHKABWsFJpnqvV$3C_twM*gqAce!LKoUW{nWy1R>1gY6IkCKMzlOM1P!|n1O z$mHx;t*!`DyDb(tsVQ3(X&f+<>YF)b5jHgWeNMQ#Cid@9nx<=TJ-yCTy9?bG`PZ!; zo>MH5Xo0nLeNqYuNpol02sy0O(3+*g89t{maQ}f&9j?(wwn#k1WDlMjO`?B1T3Q#n zli}?`eQr+DGz<7XfQviHenVB4-AR)IKu9@xNoZGA5Ux6-C9U$pQcu1r2;w+O`MPMr+m! z2#u|CbpAn1|HzmAHr*ZV!ENYqvG@<2`p=Hk?7-%VPd56a8qOSgb%kc^%{Y2AcB>%MnA8l|M-?)k!(4{Ss;J!hnL_S&yt zcNdRe2oM!>tXzMYmfvaO{CA&{9FL;6rxp;Y#UwoP@yu8z39R2F>vwdQPeQ~D^3VGP2fLhZXO@5y$faB(N%nxN8Xx3maU+h~?Ap>D$K%1=BjjzB_hZn5Py z<})(z|GaRXhnO?yl@PN&^_0%b%g0*EjNX-87rK`w77yVLm1clw1vjeq{n@<)lEaKA zn^(869T0qlJvj$X6xmj8jdC-QX3*n9M0_Ep9@M{i(?h9#wF)K2rax zx>XN98_yf2OulnjYNiz6iR}`202(VB-k~V|jUpg(D**oaS`iF!UYW~V+G3LGLO|Z zMsz^t3cZU&z*6NjVu;F7CI?3}r<}kJQ#s$7a=o$a$vc~i77?A9Zx-g%ee1Xlk^}l0 z!Ws@**UU23SohiZ`Gj6XQ#}Ozu2}rAD?I)`WH4ammo8HJ{b-o7(vPLl{iY{btj?lh;*Hj)e%)rYoHlVMpfbsLQ$xM(18vJxsrHJ30(<~2 z9huCfT_u0hR{U3RBM1-?q``9ihHNuDw)}H%xt$~yS9)Rnxw*<&iui_L-@lWXe=N3* Z2qj)G>p8-5Gx$RW80ebdUTYH~{|i6(rU?K5 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/serif-headline/icons/cart.png b/templates/src/main/resources/templates/cv/serif-headline/icons/cart.png new file mode 100644 index 0000000000000000000000000000000000000000..50db340f2b446eac925a53e9c30ff3c9b6f793b5 GIT binary patch literal 4656 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 BcZdK0 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/serif-headline/icons/email.png b/templates/src/main/resources/templates/cv/serif-headline/icons/email.png new file mode 100644 index 0000000000000000000000000000000000000000..5bf3300dd1f3c39d8bde1987ffdd137986182238 GIT binary patch literal 2151 zcma)72~d++68-}SAtXq`kq|K>;aE%rV?e|xAmJ9}5Q2cpm5Tsk)Nm{)1m%i|#LS8Z zafOH=Acw5R42T3_052{9IUNv@OBBa|3Ig-bZq-)p)>^f%s^8buUw_r_y?WIx@b+{? zz_2g?01)nOP6t2?{nMbT;Qr=HybTDO=xzu013;oF0PxcQU)l=DE z$b{z{z+;5*m=yX6CI|qTM7B03*_e~9{K%FRODl@y4kC#}A(7^t${zoR;OH?1hxOMV z3sUt_$)LdO-xYYAqs)`Mu%p}`Yx>}ph2S~K?oJMV34?Rj4@K+H3^G&LEZ9AbdqWe+ zp9CJM{snHbEE9=^w98wAiX;_#!=M5O0S2dVu%hmRqY9uVh5P~?EqbcIl^@j1J2meb zHGy>CKoRp9Gihk#+j2EriNlWDRhPt?{uUe`XE}LlQvBOhOG~ys(m}pn@I{>$mj<*$ zA!4MGjgbo11v+|OORjIox1<8>|0cRGZY?d_`(-4DTbEx@M)*kPI*W|^qwh||WS=#5 z-_rk4&7|Pg{Y&ka4oYN2@XLg9pOiWXuIh69My`pA&nVY8ly?F}7IPHC{S4kTO1m1W zH-)%5m>+vD%)?OAz#_eT%t8(b)|r1Vbuv+cRu3hG_nn^(xXZ9xT8vZi+X+#>T_5OL zZoi6Zy>LTC-kJLMzRjH(<2*LjZjHg*gMvHCddCY9hhWFwe|0CB5<=Fyi{zN5iz0IL z^WWCxwnp{WBG!p*LsFG9Js>2~wzn8bZ`Z1$iOr$lu!M(|0ABJ&M3!McoXh)3MPxiC zoz=YXw>I)Ax42tKp zkc_}H60`YlJ)S0KvPM6bdh6)dY`Gs8*MgauIl|pxJ-wP&3D9Um*C(}+iMvpD6PXq* zMaHSn>u)6cXe&8$18>8=&etDS#2HJ?0eAQV+?Y%kbbmZEzd3)u^ab2Z{O=Gv9&8oSHB7%lBiyJ%kBA!??rym15&j8 zCGj3Q-PcdhNwBl9)|+leSM$aWpEua1asUI4L~i(3jf-M9h*N_Ovr+Lhhh@!2GjrIh1uYT zj){yZym_m^7S7>6#&r)0w?#I07Et?U7rL(g1FeLk(rCXHq^@uyI$Yoeoex$nHb$r3 z``MeO%PeV^)XWfA?D})*8m#V7hm}|jy(dCz?V49nk(|~_<=pEbx3PQMSPtj6wbj56 zHf?;1e&6)uhTpN?_z<1wc0-ONG+NHY_p@f*pf#fIQ7WBfRMzqaH(qyxTC!sd*hR zm&uFsrwk|~rUj*KTl>}U)ZljUD0NYe)X{M6K$TTg7q}_c)`E~;TSR1zS2tNbNTTe{8gUmw~bae@nb%^PpuMJ$O6J1bTx)Zo% z^PZ+PD{0#7_WJ>K$r{P#%Nw7eJ8nv;wH3rb;_IbTC=U%lNrOYo1ZC)gPYkyklp_}& zrk~8(mht_}={!WBk;H|cq1UZTJ2>BXEjBbXA~HrA4PG!-iNBWQ7*(zYNGf~n_xiy) zs}tp_RK>zT3H*OI%pZ1AkT?Pn85_C?X7X9Xo4$V0xx`qpu3RpCp{J2))Y!1Kc#~Nc zwB8_&mz(|4*7M+=4&2DV)LY{QPY13RiNdr=R8&vDmRUdN!`WEW+^6f|yK210QfLI+ zbXAc)F3K$QR3wbWq(DYXhtF;4iHNl#o}{#t6k~A5%r=?2gb{y#XVkQFVJw?_M%rbq zc*ZRbbAG+Mxf#>IK+V4!S$kbpQuR5WzE((=&DAPbt92ax-C{c%x<1GjB3Mj#{*)K) z{Q8taed65+wxR+@Nf{%b^Y9!Ecis+mx$xygXNRqs8*ln%fHic-Th7Be78i0QWrSZw z_RBuTyjM7ijNSj7887sP3hlX5Lcn24%LDoUOrU=~=o$p?l9=Wz_q78jF5vF$=~PJ# GJ@W_WE}?+{ literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/serif-headline/icons/github.png b/templates/src/main/resources/templates/cv/serif-headline/icons/github.png new file mode 100644 index 0000000000000000000000000000000000000000..63aa407cd3da075b6c598dcbdfc32cba9fca0fce GIT binary patch literal 5312 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 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/serif-headline/icons/location.png b/templates/src/main/resources/templates/cv/serif-headline/icons/location.png new file mode 100644 index 0000000000000000000000000000000000000000..ace3af59edd56639cfc47c64380b978a20a7775c GIT binary patch literal 3581 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 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/serif-headline/icons/medal.png b/templates/src/main/resources/templates/cv/serif-headline/icons/medal.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb1ea036d07e0bad43af19dd0e687d7203635bd GIT binary patch literal 7269 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 JJ}B8n{ts+5WTXH9 literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/serif-headline/icons/phone.png b/templates/src/main/resources/templates/cv/serif-headline/icons/phone.png new file mode 100644 index 0000000000000000000000000000000000000000..a323107499d8094187fb4bacdec20528104a9e78 GIT binary patch literal 3060 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 WoHXoZD|sD!{sL%}xj~Jd2mW8T_;zCe literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/serif-headline/icons/rocket.png b/templates/src/main/resources/templates/cv/serif-headline/icons/rocket.png new file mode 100644 index 0000000000000000000000000000000000000000..9bde581dc67dab00f3c18a99e7e812fdacedb0f3 GIT binary patch literal 8973 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 p6QFv8k*}70!;Jy&h8)+qYg`{ENe*n$Fzj6Qo literal 0 HcmV?d00001 diff --git a/templates/src/main/resources/templates/cv/serif-headline/icons/trophy.png b/templates/src/main/resources/templates/cv/serif-headline/icons/trophy.png new file mode 100644 index 0000000000000000000000000000000000000000..6afe735caf3e7ca2ff94d9b581f645b21b92ca8e GIT binary patch literal 5807 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 PatlDK>!B)Dt;7Bc_e-dL literal 0 HcmV?d00001 From ff546e37e33e91309b0154756410fdfdf01ed689 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 10:04:13 +0100 Subject: [PATCH 13/85] feat(templates): link SerifHeadline titles and keep its band columns off the rule (#620) --- CHANGELOG.md | 20 ++++++++ .../readme/examples/cv-serif-headline-v2.pdf | Bin 86574 -> 83081 bytes .../support/SerifHeadlineSampleData.java | 11 ++-- .../cv/data/CvEntryPlaceAndIconTest.java | 34 +++++++++---- .../cv/presets/SerifHeadlineSmokeTest.java | 37 ++++++++++++++ .../cv-v2/serif_headline_layout.json | 44 ++++++++-------- .../cv-v2-layered/serif_headline-page-0.png | Bin 121182 -> 121183 bytes .../document/templates/cv/data/CvEntry.java | 48 +++++++++++++++--- .../templates/cv/presets/SerifHeadline.java | 16 ++++++ .../cv/presets/SerifHeadlineAside.java | 16 +++--- .../cv/presets/SerifHeadlineClosing.java | 14 ++--- .../cv/presets/SerifHeadlineMain.java | 24 +++++---- .../cv/presets/SerifHeadlineStyles.java | 31 ++++++++++- .../cv/presets/SerifHeadlineText.java | 26 +++++++++- .../cv/presets/SerifHeadlineWidgets.java | 7 ++- 15 files changed, 260 insertions(+), 68 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29d33a281..e3bdd4ebf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,15 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **`CvEntry` carries a link.** An entry that points somewhere — a repository, a case + study, a company — had no way to say so, and a preset had no way to make its title + reachable. `CvEntry` now carries `link`, a plain string blank when absent like the + fields beside it, set through `CvEntry.Builder.link(...)`. It costs the layout + nothing: a link is an annotation rather than ink, so a linked title and a plain one + are the same sheet, which is also why the parity gates cannot see it and a test + asserts the targets directly. The six-argument constructor is kept explicitly, so + existing calls compile and link unchanged. + - **`CvEntry` carries a location and a mark, and gains a builder.** The record held a title, a subtitle, a date and a body, which is enough for a dated block and not enough for the designs that set the city beside the employer in its own colour, or @@ -59,6 +68,17 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **`SerifHeadline` links its titles and lets its bands breathe.** Every title the + preset draws — a role, a project, a degree, an achievement — is now a link when its + entry carries one. And a band column keeps a gutter at its right edge, so its text + stops short of the hairline between columns instead of running into it: **the first + place a promoted preset deliberately departs from the sheet it ports**, where a line + that happens to fill its column touches the rule. The departure is exactly measured — + six of 235 nodes narrow, 8 191 of 2 173 720 pixels change, and nothing else moves — + and both baselines were re-recorded with it. The class documentation names the two + colours the packaged marks come in, so a document chooses one deliberately rather + than mixing navy and gold in a row by accident. + - **A two-column editorial CV preset: `SerifHeadline`.** A one-page A4 sheet under a Volkhov masthead — the name in the display serif over its role and a short gold rule, the contact channels stacked opposite — then a two-column body: the roles held on a diff --git a/assets/readme/examples/cv-serif-headline-v2.pdf b/assets/readme/examples/cv-serif-headline-v2.pdf index 7d7ba39377f2da8aedea912c0d7e899bb3808fa1..044840db1956b3f605e0bc91f21294eaf8cfc70b 100644 GIT binary patch delta 10611 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 O7Y`yewYY)=;(r74Um_F$ diff --git a/examples/src/main/java/com/demcha/examples/support/SerifHeadlineSampleData.java b/examples/src/main/java/com/demcha/examples/support/SerifHeadlineSampleData.java index 309d6afde..5c636db27 100644 --- a/examples/src/main/java/com/demcha/examples/support/SerifHeadlineSampleData.java +++ b/examples/src/main/java/com/demcha/examples/support/SerifHeadlineSampleData.java @@ -23,7 +23,10 @@ * *

    The project and achievement marks are this preset's own vocabulary — * {@code cart}, {@code api}, {@code trophy}, {@code chart}, {@code rocket} — - * and each entry names the one it wants.

    + * and each entry names the one it wants. The marks come in two colours: + * {@code cart} and {@code api} are drawn in the navy of the design's ink, + * the other three in its gold. This sample keeps a band to one colour, since + * mixing them inside one row reads as a mistake rather than a choice.

    */ public final class SerifHeadlineSampleData { @@ -98,13 +101,15 @@ public static CvDocument sample() { .subtitle("Java, PostgreSQL, Testcontainers") .body("Open-source double-entry ledger for JVM services, with a" + " property-based suite over the posting rules.") - .icon("api") + .icon("chart") + .link("https://github.com/thalvorsen/ledgerkit") .build()) .entry(CvEntry.builder("Runbook Digest") .subtitle("Kotlin, Kafka, OpenSearch") .body("Reads alert history and drafts the retrospective agenda" + " before the meeting starts.") - .icon("chart") + .icon("rocket") + .link("https://github.com/thalvorsen/runbook-digest") .build()) .build()) .section(EntriesSection.builder("Education") diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvEntryPlaceAndIconTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvEntryPlaceAndIconTest.java index 8b3b933bc..dff48fb20 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvEntryPlaceAndIconTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/data/CvEntryPlaceAndIconTest.java @@ -8,38 +8,49 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; /** - * Pins the compatibility promise made when {@link CvEntry} grew a location - * and a mark: the four-argument constructor that predates them is still - * there and still means what it meant, so a caller written against it keeps - * compiling and linking. + * Pins the compatibility promise made each time {@link CvEntry} grew: the + * constructors that predate the location, the mark and the link are still + * there and still mean what they meant, so a caller written against any of + * them keeps compiling and linking. */ class CvEntryPlaceAndIconTest { @Test - void theConstructorThatPredatesThemLeavesBothBlank() { + void theConstructorThatPredatesThemLeavesThemAllBlank() { CvEntry entry = new CvEntry("Engineer", "Acme", "2021", "Did the work."); assertThat(entry.place()).isEmpty(); assertThat(entry.icon()).isEmpty(); + assertThat(entry.link()).isEmpty(); assertThat(entry.subtitle()).isEqualTo("Acme"); } + @Test + void theConstructorThatPredatesTheLinkLeavesItBlank() { + CvEntry entry = new CvEntry("Engineer", "Acme", "2021", "Body", "Berlin", "cart"); + assertThat(entry.link()).isEmpty(); + assertThat(entry.place()).isEqualTo("Berlin"); + assertThat(entry.icon()).isEqualTo("cart"); + } + @Test void nullsNormalizeToBlank() { - CvEntry entry = new CvEntry("Engineer", "Acme", "2021", "Body", null, null); + CvEntry entry = new CvEntry("Engineer", "Acme", "2021", "Body", null, null, null); assertThat(entry.place()).isEmpty(); assertThat(entry.icon()).isEmpty(); + assertThat(entry.link()).isEmpty(); } @Test void theOriginalFieldsStillRejectNull() { - assertThatThrownBy(() -> new CvEntry("Engineer", null, "2021", "Body", "Berlin", "cart")) + assertThatThrownBy(() -> + new CvEntry("Engineer", null, "2021", "Body", "Berlin", "cart", "")) .isInstanceOf(NullPointerException.class) .hasMessageContaining("subtitle"); } @Test void aBlankTitleIsStillRejected() { - assertThatThrownBy(() -> new CvEntry(" ", "Acme", "2021", "Body", "", "")) + assertThatThrownBy(() -> new CvEntry(" ", "Acme", "2021", "Body", "", "", "")) .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining("title"); } @@ -52,9 +63,11 @@ void theBuilderCarriesEveryFieldThrough() { .body("An open-source ledger.") .place("Remote") .icon("cart") + .link("https://example.com/ledgerkit") .build(); assertThat(entry).isEqualTo(new CvEntry("Ledgerkit", "Java, PostgreSQL", "2024", - "An open-source ledger.", "Remote", "cart")); + "An open-source ledger.", "Remote", "cart", + "https://example.com/ledgerkit")); } @Test @@ -65,6 +78,7 @@ void theBuilderLeavesWhatItIsNotToldBlank() { assertThat(entry.body()).isEmpty(); assertThat(entry.place()).isEmpty(); assertThat(entry.icon()).isEmpty(); + assertThat(entry.link()).isEmpty(); } @Test @@ -85,9 +99,11 @@ void theBuilderTreatsNullsAsBlank() { .body((String) null) .place(null) .icon(null) + .link(null) .build(); assertThat(entry.subtitle()).isEmpty(); assertThat(entry.body()).isEmpty(); assertThat(entry.place()).isEmpty(); + assertThat(entry.link()).isEmpty(); } } diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java index a90b665b4..e6b51769b 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineSmokeTest.java @@ -139,6 +139,43 @@ void rejectsAnUnknownEntryMarkByName() { } } + @Test + void anEntryWithALinkReachesThePdfAsOne() throws Exception { + // Every title this preset draws is a link when its entry carries + // one. It is an annotation, so it moves no pixel and no layout node + // — which is why neither parity gate can see it. + byte[] pdf = render(CvDocument.builder() + .identity(identity()) + .section(EntriesSection.builder("Projects") + .entry(CvEntry.builder("Ledgerkit") + .subtitle("Java") + .body("A ledger.") + .icon("api") + .link("https://example.com/ledgerkit") + .build()) + .build()) + .section(EntriesSection.builder("Experience") + .entry(CvEntry.builder("Engineer") + .subtitle("Acme") + .date("2024") + .body("Shipped a thing.") + .link("https://acme.example.com") + .build()) + .build()) + .section(EntriesSection.builder("Achievements") + .entry(CvEntry.builder("Engineer of the Year") + .body("For the platform work.") + .icon("trophy") + .link("https://example.com/award") + .build()) + .build()) + .build()); + assertThat(linkUris(pdf)) + .contains("https://example.com/ledgerkit", + "https://acme.example.com", + "https://example.com/award"); + } + @Test void drawsAnEntryWithoutAMark() throws Exception { // No token, no plate — the card is drawn, just unmarked. diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json index c427e8259..e124848d1 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/serif_headline_layout.json @@ -1705,15 +1705,15 @@ "computedY" : 218.426, "placementX" : 31.682, "placementY" : 218.426, - "placementWidth" : 168.307, + "placementWidth" : 161.798, "placementHeight" : 52.675, "startPage" : 0, "endPage" : 0, - "contentWidth" : 168.307, + "contentWidth" : 161.798, "contentHeight" : 52.675, "margin" : { "top" : 0.0, - "right" : 171.488, + "right" : 177.301, "bottom" : 0.0, "left" : 0.0 }, @@ -1795,11 +1795,11 @@ "computedY" : 218.426, "placementX" : 64.818, "placementY" : 218.426, - "placementWidth" : 135.172, + "placementWidth" : 128.662, "placementHeight" : 27.484, "startPage" : 0, "endPage" : 0, - "contentWidth" : 135.172, + "contentWidth" : 128.662, "contentHeight" : 27.484, "margin" : { "top" : 0.0, @@ -1825,15 +1825,15 @@ "computedY" : 218.426, "placementX" : 203.17, "placementY" : 218.426, - "placementWidth" : 167.99, + "placementWidth" : 164.738, "placementHeight" : 52.675, "startPage" : 0, "endPage" : 0, - "contentWidth" : 167.99, + "contentWidth" : 164.738, "contentHeight" : 52.675, "margin" : { "top" : 0.0, - "right" : 0.0, + "right" : 5.813, "bottom" : 0.0, "left" : 171.488 }, @@ -1915,11 +1915,11 @@ "computedY" : 218.426, "placementX" : 244.444, "placementY" : 218.426, - "placementWidth" : 126.716, + "placementWidth" : 123.464, "placementHeight" : 27.484, "startPage" : 0, "endPage" : 0, - "contentWidth" : 126.716, + "contentWidth" : 123.464, "contentHeight" : 27.484, "margin" : { "top" : 0.0, @@ -5193,7 +5193,7 @@ "contentHeight" : 26.204, "margin" : { "top" : 0.0, - "right" : 425.529, + "right" : 431.342, "bottom" : 0.0, "left" : 0.0 }, @@ -5283,7 +5283,7 @@ "contentHeight" : 26.204, "margin" : { "top" : 0.0, - "right" : 319.147, + "right" : 324.96, "bottom" : 0.0, "left" : 106.382 }, @@ -5373,7 +5373,7 @@ "contentHeight" : 26.204, "margin" : { "top" : 0.0, - "right" : 212.765, + "right" : 218.578, "bottom" : 0.0, "left" : 212.765 }, @@ -5463,7 +5463,7 @@ "contentHeight" : 26.204, "margin" : { "top" : 0.0, - "right" : 106.382, + "right" : 112.196, "bottom" : 0.0, "left" : 319.147 }, @@ -5553,7 +5553,7 @@ "contentHeight" : 26.204, "margin" : { "top" : 0.0, - "right" : 0.0, + "right" : 5.813, "bottom" : 0.0, "left" : 425.529 }, @@ -6513,7 +6513,7 @@ "contentHeight" : 36.181, "margin" : { "top" : 0.0, - "right" : 354.608, + "right" : 360.421, "bottom" : 0.0, "left" : 0.0 }, @@ -6595,15 +6595,15 @@ "computedY" : 43.938, "placementX" : 208.986, "placementY" : 43.938, - "placementWidth" : 173.765, + "placementWidth" : 166.571, "placementHeight" : 36.181, "startPage" : 0, "endPage" : 0, - "contentWidth" : 173.765, + "contentWidth" : 166.571, "contentHeight" : 36.181, "margin" : { "top" : 0.0, - "right" : 177.304, + "right" : 183.117, "bottom" : 0.0, "left" : 177.304 }, @@ -6655,11 +6655,11 @@ "computedY" : 43.938, "placementX" : 249.097, "placementY" : 43.938, - "placementWidth" : 133.653, + "placementWidth" : 126.46, "placementHeight" : 17.849, "startPage" : 0, "endPage" : 0, - "contentWidth" : 133.653, + "contentWidth" : 126.46, "contentHeight" : 17.849, "margin" : { "top" : 0.0, @@ -6693,7 +6693,7 @@ "contentHeight" : 36.181, "margin" : { "top" : 0.0, - "right" : 0.0, + "right" : 5.813, "bottom" : 0.0, "left" : 354.608 }, diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/serif_headline-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/serif_headline-page-0.png index efab7573da107a0758fc52cb02dc06587b7740bd..b9dab2b906878eddcb1b4b44e96ccfbafa82c8f0 100644 GIT binary patch delta 47426 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 OA0;_8*-B}np#KMcWSY|e delta 47425 zcmYIvby!r<*0(63f*_!Tbc=LK$k1H^N_TfR14lx-yHOe`>F)0C?yez+{EqkD_xb*v zXU?26`|Q2euhvRA%5pi%k4gj|BB0A|>#q5!$J3>$X4(BZ-Ql>2W^gcxJEjMlkL@bd zv9*9i zeh%`<$)Bl0_v@0hgX_7L{Xbfp(oVK+VKt|kaxyvPmDLkvF)~QiM_**lOj&@BK02aW zo7^sL&*Y}H5kA>kn7aB2|CLq6xs_9tZb*Oso=Dzc++PGaGFz-ePEO8h$?l~E(v8v9 zyP{~rPblaZ5k(KK6l}iR+tVBAc^sZp7Ff8jBUT0~9t~{;Sqw#;-kPfz*;6#X9&IUd zabpG{hifriIwUTjXI(?{r*JAKDUu4Gm z`QV4AMPk@X_->f>O|-oPu0Pa-W}jw|W_)24P5$-VB)R%0`SfPY^qu8{Gp#?1Z?|~t z_uRMCVvMLUNR4?zRd*`91xzfLGACN;KcV7ja;CRm(#ECAS0_j_`eYlUrJ!m_>Lt#s zubxGsM#)dqr91NtK(BsXI95Vo2n@rd^@;dozTRG&je%he?e};tfR0Xn#qv-G?#$bU zHkoi!8613MnSmR_Kz$ajDtv}P>ac~Ei8*%j^EB|~N87?ntWP6QjTX`3HJG2@`;frU za||>NoxaFc49KmN4B7GI0N^Pfnji=X{U974l%gu^=7O+IjEj;vIrVvXQD+xbShBws z7d0vZ+yBK@DU)*};5lM{h)dw25s8r(R*=(21UHPyrVp~fh?bv@Xyt4Fyme0*l{}AJ z#F?9ct;(n(1#Q-rlE|G+sXm^$;7FeP42Aqgf7FaSK39v0_{5fx!=Z~YBpP?--D|4q z(z1%P_cc`RfvN;OyeDkC>q4p5+gmW$kL;IVv?H;_t^V{oAZYUA4En2j?%H0_@4o`9)DsogboWxEE1>!&45JZ9zzi!_bCGJsD5+hs3 ztJtm4K$}R6N(cIB+l_e7>=x?|If(2Vuc1vN^~eZTiRoY0S@NF;o_(Y%WNrCWXsE;x z0}W+=>y+2T2JC8PHyZjX^z6M@{!?f%&|hdc^rhLp+b)+a(>m_EJ&)yzQ({IUhS@EZ zBQmAQXAN=j1j_I^Gjr=Id6-t9Y_&G$d6LbU%6PHLwk9-1eg3YJM1w94ib~5iaDmJ< z7r;|->pnfWvFYOve}X1IW`4`}b?VsHD^1$PXGC8m12&DdqwYs&w%;S_-)xd(&GSqg zm{Agi>%R_qBRevvm!Tv&kzgN>yQ7Opgu9_ft`4~+adp{!zL&8`9`JORm) z4Zp{O?U9AU%~;aRzRYpE?FlYr^F8u8ANl8=4@v#r-}+sH7#SjJWDhW9)l=kolG{6J z664z%3tNtQN1g~7`kG_obK~Q)qi87~1_lKt5`Yg0KLxm_7sph}3*sf4Q}418&SWCk z8olv%Fn#-{mI8=-p0YGB2%V{(o6vPgT0b*>-K(m<-t{u}atog(6mk3eprEwWz!rx# zVQ;70wzCwSTwxfrP_h-{=>_$g%lwm2TH$xq!7iJ?@8wbP!p;8O#^={OEH4^jBhhw# z%)x=c#A;q5Ha4~>Tt>TKma6rMu{rGOAdA_tIU>yWC~JWongK72ko(ZMzOcq;B<7pl z8rjxmT5o1n`egU!WoH{ksH4N<^9u_0@^__i4X{bf+U$OrYQn#%|5n^oQdBG#=R<X_sigCIvWvxeo9oV4_k3cR)uqGd6ZMb?y9OXlc3VE?P!q zZf-uWDrxBKJnhQt9Q1*Rh~j7X@No|Pr!zwi@R{#*dB6CZ_HDIz#EWI^C2PzRpJ=Cp z|8U?}&v<9®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 fields are honoured: a blank {@code date} omits the date * column, a blank {@code subtitle} drops the italic line, a blank * {@code body} drops the description paragraph, a blank {@code place} - * drops the location, and a blank {@code icon} leaves the entry unmarked. - * A preset draws only what it has somewhere to put.

    + * drops the location, a blank {@code icon} leaves the entry unmarked, and a + * blank {@code link} leaves its title plain. A preset draws only what it has + * somewhere to put.

    * * @param title bold heading on the left (job title, degree) * @param subtitle italic subtitle on the line below (employer, @@ -32,14 +33,18 @@ * set — so a token means something only to the preset that * declares it, and the presets that draw no marks ignore it; * blank when absent + * @param link where this entry points — a repository, a case study, a + * company. The presets that honour it make the title a link + * in the rendered PDF, which costs the layout nothing: a + * link is an annotation, not ink. Blank when absent */ public record CvEntry(String title, String subtitle, String date, String body, - String place, String icon) { + String place, String icon, String link) { /** * Validates that the four original fields are non-null and that - * {@code title} is non-blank, treating a null {@code place} or - * {@code icon} as absent. + * {@code title} is non-blank, treating a null {@code place}, + * {@code icon} or {@code link} as absent. */ public CvEntry { Objects.requireNonNull(title, "title"); @@ -48,11 +53,27 @@ public record CvEntry(String title, String subtitle, String date, String body, Objects.requireNonNull(body, "body"); place = place == null ? "" : place; icon = icon == null ? "" : icon; + link = link == null ? "" : link; if (title.isBlank()) { throw new IllegalArgumentException("title must not be blank"); } } + /** + * Backward-compatible constructor for callers that predate the link. + * + * @param title bold heading on the left + * @param subtitle subtitle on the line below; blank collapses it + * @param date date column next to the title; blank removes it + * @param body prose paragraph beneath the subtitle + * @param place where this happened; blank when absent + * @param icon the mark a preset draws for this entry; blank when absent + */ + public CvEntry(String title, String subtitle, String date, String body, + String place, String icon) { + this(title, subtitle, date, body, place, icon, ""); + } + /** * Backward-compatible constructor for callers that predate the location * and the mark. The entry simply carries neither. @@ -63,7 +84,7 @@ public record CvEntry(String title, String subtitle, String date, String body, * @param body prose paragraph beneath the subtitle */ public CvEntry(String title, String subtitle, String date, String body) { - this(title, subtitle, date, body, "", ""); + this(title, subtitle, date, body, "", "", ""); } /** @@ -91,6 +112,7 @@ public static final class Builder { private String body = ""; private String place = ""; private String icon = ""; + private String link = ""; private Builder(String title) { this.title = title; @@ -164,13 +186,25 @@ public Builder icon(String value) { return this; } + /** + * Sets where this entry points. The presets that honour it make the + * title a link. + * + * @param value the target URL; null becomes blank + * @return this builder for chaining + */ + public Builder link(String value) { + this.link = value == null ? "" : value; + return this; + } + /** * Builds the immutable {@link CvEntry}. * * @return the assembled entry */ public CvEntry build() { - return new CvEntry(title, subtitle, date, body, place, icon); + return new CvEntry(title, subtitle, date, body, place, icon, link); } } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadline.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadline.java index 9db112b75..b4c37d4d3 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadline.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadline.java @@ -39,6 +39,11 @@ * type subtracted; setting the pixel numbers directly would push every block * a few points too far apart.

    * + *

    One measure is deliberately not the drawing's: a band column keeps a + * gutter at its right edge, so its text stops short of the hairline instead + * of running into it. In the published sheet a line that happens to fill its + * column touches the rule.

    + * *

    One page, and what happens past it

    * *

    This sheet holds one page of content. The body is a single row, and a @@ -84,6 +89,17 @@ * with no token is drawn without a mark. The certification medal is chrome * rather than data: every plate takes the same one.

    * + *

    The marks come in two colours, which is worth knowing before choosing + * one: {@code cart} and {@code api} are drawn in the design's navy ink, and + * {@code trophy}, {@code chart} and {@code rocket} in its gold. Nothing + * stops a document mixing them, but a band that does reads as a mistake + * rather than a choice.

    + * + *

    Every title this preset draws — a role, a project, a degree, an + * achievement — becomes a link when its entry carries {@code CvEntry.link()}. + * A link is an annotation rather than ink, so a linked title and a plain one + * are the same sheet.

    + * *

    The employer's city and the campus come from {@code CvEntry.place()}, * because this design sets them beside the employer and the years in their * own colour rather than inside them.

    diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineAside.java index 76d1c2710..a5dddadf7 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineAside.java @@ -105,13 +105,15 @@ private static void renderEducation(SectionBuilder section, EntriesSection educa for (int i = 0; i < entries.size(); i++) { CvEntry entry = entries.get(i); boolean first = i == 0; - section.addParagraph(p -> p - .name("Degree_" + compact(entry.title())) - .text(entry.title()) - .textStyle(style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) - .lineSpacing(TIGHT_LEADING) - .margin(new DocumentInsets( - first ? HEADING_TO_EDUCATION : 0, 0, DEGREE_TO_INSTITUTION, 0))); + section.addParagraph(p -> { + p.name("Degree_" + compact(entry.title())) + .textStyle(style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) + .lineSpacing(TIGHT_LEADING); + SerifHeadlineText.title(p, entry, + style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)); + p.margin(new DocumentInsets( + first ? HEADING_TO_EDUCATION : 0, 0, DEGREE_TO_INSTITUTION, 0)); + }); section.addParagraph(p -> p .name("Institution_" + compact(entry.title())) .text(entry.subtitle()) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineClosing.java index cd9aed9f1..5a7e5f024 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineClosing.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineClosing.java @@ -120,12 +120,14 @@ private static BandColumn achievementColumn(CvEntry achievement, int index) { // title it stands beside and the two centre on each other. .padding(new DocumentInsets( ACHIEVEMENT_TEXT_DROP, 0, 0, lead + ACHIEVEMENT_GLYPH_TO_TEXT)); - column.addParagraph(p -> p - .name("AchievementTitle_" + compact(achievement.title())) - .text(achievement.title()) - .textStyle(style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) - .lineSpacing(TIGHT_LEADING) - .margin(new DocumentInsets(0, 0, ACHIEVEMENT_TITLE_TO_BODY, 0))); + column.addParagraph(p -> { + p.name("AchievementTitle_" + compact(achievement.title())) + .textStyle(style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) + .lineSpacing(TIGHT_LEADING); + SerifHeadlineText.title(p, achievement, + style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)); + p.margin(new DocumentInsets(0, 0, ACHIEVEMENT_TITLE_TO_BODY, 0)); + }); column.addParagraph(p -> p .name("AchievementBody_" + compact(achievement.title())) .text(achievement.body()) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java index 17bf94e21..f030d47a2 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineMain.java @@ -132,13 +132,13 @@ private static void renderEntryHead(SectionBuilder rail, CvEntry entry) { .fillColor(INK) .margin(DocumentInsets.zero()) .build(); - DocumentNode title = new ParagraphBuilder() + ParagraphBuilder titleText = new ParagraphBuilder() .name("JobTitle_" + compact(entry.title())) - .text(entry.title()) .textStyle(style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) - .lineSpacing(TIGHT_LEADING) - .margin(DocumentInsets.zero()) - .build(); + .lineSpacing(TIGHT_LEADING); + SerifHeadlineText.title(titleText, entry, + style(JOB_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)); + DocumentNode title = titleText.margin(DocumentInsets.zero()).build(); DocumentNode dates = new ParagraphBuilder() .name("JobDates_" + compact(entry.title())) .text(entry.date()) @@ -226,12 +226,14 @@ private static BandColumn projectColumn(CvEntry project, int index) { column.name("ProjectCard_" + compact(project.title())) .spacing(0) .padding(new DocumentInsets(0, 0, 0, lead + PROJECT_GLYPH_TO_TEXT)); - column.addParagraph(p -> p - .name("ProjectTitle_" + compact(project.title())) - .text(project.title()) - .textStyle(style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) - .lineSpacing(TIGHT_LEADING) - .margin(new DocumentInsets(0, 0, CARD_TITLE_TO_TECH, 0))); + column.addParagraph(p -> { + p.name("ProjectTitle_" + compact(project.title())) + .textStyle(style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)) + .lineSpacing(TIGHT_LEADING); + SerifHeadlineText.title(p, project, + style(ITEM_TITLE_SIZE, INK, DocumentTextDecoration.BOLD)); + p.margin(new DocumentInsets(0, 0, CARD_TITLE_TO_TECH, 0)); + }); column.addParagraph(p -> p .name("ProjectStack_" + compact(project.title())) .text(project.subtitle()) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java index e24543155..c5246072f 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineStyles.java @@ -245,6 +245,18 @@ static double titleOffset(double leftSurfaceDistance) { /** The plate hangs a little left of its column, into the gutter. */ static final double PLATE_HANG = h(-4); static final double GLYPH_CLEARANCE = h(10); + + /** + * The space a band column leaves at its right edge, so its text stops + * short of the hairline rather than running into it. + * + *

    This is the one measure on the sheet that is not the published + * design's: there, a column's text runs to the separator, and a line + * that happens to fill the column touches it. The gutter matches + * {@link #GLYPH_CLEARANCE}, the space the next column's mark already + * keeps on the other side, so the rule sits centred in white.

    + */ + static final double COLUMN_TAIL_GUTTER = GLYPH_CLEARANCE; static final double CARD_TITLE_TO_TECH = gap(15, BLANK_TITLE, BLANK_SMALL); static final double CARD_TECH_TO_BODY = gap(12, BLANK_SMALL, BLANK_SMALL); static final double CARD_BODY_LEADING = v(18.5) / SMALL_SIZE; @@ -379,10 +391,27 @@ private static double capAdvanceEm(char glyph) { */ static DocumentInsets columnInsets(double bandWidth, double columnWidth, int index, double dx, double naturalWidth) { + return columnInsets(bandWidth, columnWidth, index, dx, naturalWidth, 0.0); + } + + /** + * The same, with a gutter kept at the column's right edge. + * + * @param bandWidth the band's full width + * @param columnWidth one column's share of it + * @param index which column, from zero + * @param dx an extra offset for a mark that hangs left + * @param naturalWidth the child's own width when it has one, else zero + * @param tailGutter space to leave at the right edge + * @return the insets to set on that layer + */ + static DocumentInsets columnInsets(double bandWidth, double columnWidth, + int index, double dx, double naturalWidth, + double tailGutter) { double left = index * columnWidth + dx; double right = naturalWidth > 0.0 ? Math.max(0.0, bandWidth - left - naturalWidth) - : Math.max(0.0, bandWidth - left - (columnWidth - dx)); + : Math.max(0.0, bandWidth - left - (columnWidth - dx) + tailGutter); return new DocumentInsets(0, right, 0, left); } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineText.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineText.java index 89f46eab2..a30914a0c 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineText.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineText.java @@ -1,11 +1,15 @@ package com.demcha.compose.document.templates.cv.presets; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.style.DocumentTextStyle; import com.demcha.compose.document.templates.core.text.MarkdownInline; +import com.demcha.compose.document.templates.cv.data.CvEntry; import java.util.ArrayList; import java.util.List; -/** Turning a model field into the lines this sheet draws. */ +/** Turning model fields into the runs and lines this sheet draws. */ final class SerifHeadlineText { private SerifHeadlineText() { @@ -28,4 +32,24 @@ static List lines(String body) { } return out; } + + /** + * Writes an entry's title into a paragraph, as a link when the entry + * carries one. + * + *

    The link is the same ink either way — an annotation draws nothing + * and lays out nothing — so a linked title and a plain one are the same + * sheet.

    + * + * @param paragraph the paragraph being built + * @param entry the entry whose title and link to write + * @param style the style of the title + */ + static void title(ParagraphBuilder paragraph, CvEntry entry, DocumentTextStyle style) { + if (entry.link().isBlank()) { + paragraph.inlineText(entry.title(), style); + } else { + paragraph.inlineText(entry.title(), style, new DocumentLinkOptions(entry.link())); + } + } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineWidgets.java index 14e4827ff..8dd32fb0e 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineWidgets.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/SerifHeadlineWidgets.java @@ -25,6 +25,7 @@ import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.RULE; import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TAIL_GAP; import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.TIGHT_LEADING; +import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.COLUMN_TAIL_GUTTER; import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.columnInsets; import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.compact; import static com.demcha.compose.document.templates.cv.presets.SerifHeadlineStyles.dashOffset; @@ -184,8 +185,12 @@ static void columnBand(SectionBuilder section, String name, double bandWidth, .padding(DocumentInsets.zero()) .margin(new DocumentInsets(gapAbove, 0, 0, 0)); for (int i = 0; i < columns; i++) { + // The text keeps a gutter at its right edge; the marks and + // the separators do not, since they are placed on the column + // boundary rather than filling to it. stack.layer(parts.get(i).text() - .margin(columnInsets(bandWidth, columnWidth, i, 0.0, 0.0)) + .margin(columnInsets(bandWidth, columnWidth, i, 0.0, 0.0, + COLUMN_TAIL_GUTTER)) .build(), LayerAlign.TOP_LEFT); } for (int i = 0; i < columns; i++) { From a160168af6bc0aad7042d719b78d3759b663487c Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 10:33:11 +0100 Subject: [PATCH 14/85] feat(templates): add the CharcoalGold photographic CV preset (#621) --- CHANGELOG.md | 18 + .../readme/examples/cv-charcoal-gold-v2.pdf | Bin 0 -> 35782 bytes docs/templates/v2-layered/using-templates.md | 14 +- .../demcha/examples/GenerateAllExamples.java | 2 + .../support/CharcoalGoldSampleData.java | 186 + .../examples/support/ShowcaseMetadata.java | 1 + .../templates/cv/v2/CharcoalGoldExample.java | 57 + .../cv/presets/CharcoalGoldFixtures.java | 143 + .../CharcoalGoldLayoutSnapshotTest.java | 36 + .../cv/presets/CharcoalGoldSmokeTest.java | 258 + .../presets/CharcoalGoldVisualParityTest.java | 45 + .../cv/presets/CvFixturePortrait.java | 55 + .../cv/presets/NavySidebarFixtures.java | 32 +- .../cv-v2/charcoal_gold_layout.json | 7457 +++++++++++++++++ .../cv-v2-layered/charcoal_gold-page-0.png | Bin 0 -> 113860 bytes .../templates/cv/presets/CharcoalGold.java | 235 + .../cv/presets/CharcoalGoldAside.java | 386 + .../cv/presets/CharcoalGoldCredentials.java | 170 + .../cv/presets/CharcoalGoldIcons.java | 89 + .../cv/presets/CharcoalGoldMain.java | 233 + .../cv/presets/CharcoalGoldStyles.java | 200 + .../cv/presets/CharcoalGoldText.java | 53 + .../cv/presets/CharcoalGoldWidgets.java | 135 + .../templates/cv/presets/package-info.java | 6 +- .../cv/charcoal-gold/icons/certificate.svg | 1 + .../cv/charcoal-gold/icons/email.svg | 1 + .../cv/charcoal-gold/icons/growth.svg | 1 + .../cv/charcoal-gold/icons/linkedin.svg | 1 + .../cv/charcoal-gold/icons/location.svg | 1 + .../cv/charcoal-gold/icons/phone.svg | 1 + .../templates/cv/charcoal-gold/icons/star.svg | 1 + .../cv/charcoal-gold/icons/trophy.svg | 1 + .../cv/charcoal-gold/icons/website.svg | 1 + 33 files changed, 9780 insertions(+), 40 deletions(-) create mode 100644 assets/readme/examples/cv-charcoal-gold-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/CharcoalGoldSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/CharcoalGoldExample.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldVisualParityTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvFixturePortrait.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/charcoal_gold-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGold.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldAside.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldCredentials.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldText.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldWidgets.java create mode 100644 templates/src/main/resources/templates/cv/charcoal-gold/icons/certificate.svg create mode 100644 templates/src/main/resources/templates/cv/charcoal-gold/icons/email.svg create mode 100644 templates/src/main/resources/templates/cv/charcoal-gold/icons/growth.svg create mode 100644 templates/src/main/resources/templates/cv/charcoal-gold/icons/linkedin.svg create mode 100644 templates/src/main/resources/templates/cv/charcoal-gold/icons/location.svg create mode 100644 templates/src/main/resources/templates/cv/charcoal-gold/icons/phone.svg create mode 100644 templates/src/main/resources/templates/cv/charcoal-gold/icons/star.svg create mode 100644 templates/src/main/resources/templates/cv/charcoal-gold/icons/trophy.svg create mode 100644 templates/src/main/resources/templates/cv/charcoal-gold/icons/website.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index e3bdd4ebf..f1990f136 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -79,6 +79,24 @@ follow semantic versioning; release dates are ISO 8601. colours the packaged marks come in, so a document chooses one deliberately rather than mixing navy and gold in a row by accident. +- **A photographic CV preset: `CharcoalGold`.** A one-page sheet in two columns: a + charcoal sidebar carrying a ringed photograph, the contact channels behind their + marks, rated skills, languages and degrees, beside a paper column carrying a two-tone + name — the given name in ink, the family name larger and in gold — the summary, the + roles held on a dated rail, a pair of credential columns divided by a hairline, and a + closing strip of tools. Ships as `cv.presets.CharcoalGold` on the existing + `CvDocument` model with **no model change at all**, porting the rendered layout of the + published standalone `charcoal-gold-cv` template. Unlike its ported siblings it leaves + the page size to the caller: the design is drawn on A4 and its geometry follows the + page's own width, so a different page rescales rather than breaks. Seven berths reach + their sections by title; credentials take the mark each entry names in + `CvEntry.icon()` from this preset's own set, every title it draws is a link when the + entry carries one, and a skill the document leaves unlevelled draws no rating rather + than five empty dots. Guarded by a smoke test (including the unknown-mark data error, + the missing portrait, the unlevelled skill, the link targets and the one-page limit), + an exact layout snapshot and a pixel-parity gate; the examples showcase gains + `cv-charcoal-gold-v2`. + - **A two-column editorial CV preset: `SerifHeadline`.** A one-page A4 sheet under a Volkhov masthead — the name in the display serif over its role and a short gold rule, the contact channels stacked opposite — then a two-column body: the roles held on a diff --git a/assets/readme/examples/cv-charcoal-gold-v2.pdf b/assets/readme/examples/cv-charcoal-gold-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ae9b0340a1c7ed80e69be7882e78d8f9da153633 GIT binary patch literal 35782 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 to the design: the preset draws a fixed one-page sheet, and a CV + * much longer than this one does not compose at all — the two columns are a + * single atomic row, so it raises {@code AtomicNodeTooLargeException}.

    + * + *

    The credential marks are this preset's own vocabulary — + * {@code certificate}, {@code trophy}, {@code growth}, {@code star} — and + * each entry names the one it wants. The portrait is a neutral silhouette + * rather than a photograph, because the example ships in the repository; a + * real CV passes the candidate's own image the same way.

    + */ +public final class CharcoalGoldSampleData { + + private static final String NEWLINE = String.valueOf((char) 10); + private static final String PORTRAIT = "/cv-portrait-placeholder.png"; + + private CharcoalGoldSampleData() { + } + + /** + * A delivery lead's one-page CV. + * + * @return the sample document + */ + public static CvDocument sample() { + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("HELENA", "MARSH") + .jobTitle("DELIVERY LEAD") + .contact(new Contact("+44 161 496 0114", + "helena@example.com", + "Manchester, United Kingdom")) + .link(new Link("helenamarsh.co.uk", "https://helenamarsh.co.uk")) + .link(new Link("linkedin.com/in/hmarsh", + "https://www.linkedin.com/in/hmarsh")) + .portrait(portrait()) + .build()) + .section(new ParagraphSection("Summary", String.join(NEWLINE, + "Delivery lead with nine years running software programmes for" + + " regulated clients, from discovery through the audit that" + + " follows go-live.", + "Happiest with a small team, a short feedback loop, and a plan that" + + " survives contact with the first week."))) + .section(SkillsSection.of("SKILLS", new SkillGroup("Core", List.of( + CvSkill.of("Delivery Management", 1.0), + CvSkill.of("Stakeholder Management", 1.0), + CvSkill.of("Risk & Assurance", 1.0), + CvSkill.of("Budget Ownership", 0.8), + CvSkill.of("Agile Coaching", 0.8), + CvSkill.of("Vendor Management", 0.8), + CvSkill.of("Roadmapping", 1.0), + CvSkill.of("Jira / Confluence", 1.0), + CvSkill.of("Power BI", 0.6), + CvSkill.of("Public Speaking", 0.6))))) + .section(RowsSection.builder("LANGUAGES", RowStyle.PLAIN) + .row("English", "Native") + .row("Welsh", "Native") + .row("Spanish", "B2 – Upper Intermediate") + .row("Italian", "A2 – Basic") + .build()) + .section(EntriesSection.builder("EDUCATION") + .entry(CvEntry.builder("MSc Programme Management") + .subtitle("University of Manchester") + .date("2015 – 2016") + .build()) + .entry(CvEntry.builder("BA Economics") + .subtitle("University of Leeds") + .date("2012 – 2015") + .build()) + .build()) + .section(EntriesSection.builder("EXPERIENCE") + .entry(CvEntry.builder("Delivery Lead") + .subtitle("NORTHWALL GROUP") + .place("MANCHESTER, UK") + .date("2021 – Present") + .link("https://northwall.example.com") + .body(List.of( + "Runs a portfolio of four programmes worth £8M against" + + " a fixed regulatory deadline.", + "Rebuilt the intake process so a request is either" + + " scheduled or refused within a week.", + "Coaches three delivery managers and chairs the monthly" + + " assurance review.", + "Cut third-party spend by 18% by consolidating four" + + " vendor contracts into one.")) + .build()) + .entry(CvEntry.builder("Senior Project Manager") + .subtitle("BRIDGEMOOR CONSULTING") + .place("LEEDS, UK") + .date("2018 – 2021") + .body(List.of( + "Delivered fourteen client programmes across finance" + + " and public sector.", + "Owned budgets, timelines and the escalation path to" + + " the client's board.", + "Introduced the risk register the practice still uses.")) + .build()) + .entry(CvEntry.builder("Project Manager") + .subtitle("ALDGATE DIGITAL") + .place("LONDON, UK") + .date("2016 – 2018") + .body(List.of( + "Ran delivery for two product teams and the platform" + + " work beneath them.", + "Built the reporting pack the leadership team read" + + " weekly.")) + .build()) + .build()) + .section(EntriesSection.builder("CERTIFICATIONS") + .entry(CvEntry.builder("PMP® Certification") + .subtitle("Project Management Institute") + .date("2019") + .icon("certificate") + .build()) + .entry(CvEntry.builder("PRINCE2® Practitioner") + .subtitle("AXELOS") + .date("2018") + .icon("certificate") + .build()) + .entry(CvEntry.builder("Certified Scrum Professional") + .subtitle("Scrum Alliance") + .date("2017") + .icon("certificate") + .build()) + .build()) + .section(EntriesSection.builder("ACHIEVEMENTS") + .entry(CvEntry.builder("Programme of the Year") + .subtitle("Northwall Group") + .date("2024") + .icon("trophy") + .build()) + .entry(CvEntry.builder("Intake Redesign") + .subtitle("Lead time down 62%") + .date("2023") + .icon("growth") + .build()) + .entry(CvEntry.builder("Client Choice Award") + .subtitle("Bridgemoor Consulting") + .date("2020") + .icon("star") + .build()) + .build()) + .section(new ParagraphSection("TECHNICAL TOOLS", String.join(NEWLINE, + "Jira", "Confluence", "Miro", "Power BI", "Smartsheet", "Slack"))) + .build(); + } + + /** + * The packaged silhouette that stands in for a photograph. + * + * @return the portrait image data + */ + private static DocumentImageData portrait() { + try (InputStream in = Objects.requireNonNull( + CharcoalGoldSampleData.class.getResourceAsStream(PORTRAIT), + "cv-portrait-placeholder.png missing from examples/src/main/resources/")) { + return DocumentImageData.fromBytes(in.readAllBytes()); + } catch (IOException e) { + throw new UncheckedIOException("Failed to read the sample portrait", e); + } + } +} 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 6d893613e..f47ae6666 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -63,6 +63,7 @@ record Entry(String title, String description, List tags, String codeUrl cv("cv-professional-sidebar-v2", "ProfessionalSidebarExample", "Professional Sidebar", "Navy monogram plate over a pale sidebar of contact marks, skill meters, an education rail and language ratings, beside a white column of profile, roles and projects.", "sidebar", "navy"); cv("cv-navy-sidebar-v2", "NavySidebarExample", "Navy Sidebar", "Navy plate with a ringed portrait, contact marks, degrees, skills and languages, beside a white column of summary, badged sections and roles strung on a timeline rail.", "sidebar", "navy", "portrait"); cv("cv-serif-headline-v2", "SerifHeadlineExample", "Serif Headline", "Volkhov masthead over a two-column body: roles on a timeline rail and marked project cards beside degrees and skill meters, closing with full-width certification and achievement bands.", "serif", "two-column"); + cv("cv-charcoal-gold-v2", "CharcoalGoldExample", "Charcoal Gold", "Charcoal sidebar with a ringed photograph, rated skills and languages, beside a paper column with a two-tone name, a dated experience rail and paired credential columns.", "sidebar", "photo", "gold"); // ===== Templates / Cover Letter (v2 layered, paired 1:1 with CV) ===== // Registered directly: letter() points at the layered preset examples under diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/CharcoalGoldExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/CharcoalGoldExample.java new file mode 100644 index 000000000..db78ef2e2 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/CharcoalGoldExample.java @@ -0,0 +1,57 @@ +package com.demcha.examples.templates.cv.v2; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.CharcoalGold; +import com.demcha.examples.support.CharcoalGoldSampleData; +import com.demcha.examples.support.ExampleOutputPaths; + +import java.nio.file.Path; + +/** + * Renders the layered {@code cv.v2} Charcoal Gold preset against the + * project-manager sample. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-charcoal-gold-v2.pdf}.

    + * + *

    Unlike its ported siblings this preset leaves the page to the caller, + * so the session sets A4 with no margin: both columns run to the paper edge + * and each carries its own padding.

    + */ +public final class CharcoalGoldExample { + + private CharcoalGoldExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare( + "templates/cv", "cv-charcoal-gold-v2.pdf"); + CvDocument doc = CharcoalGoldSampleData.sample(); + DocumentTemplate template = CharcoalGold.create(); + + try (DocumentSession document = GraphCompose.document(outputFile) + .pageSize(DocumentPageSize.A4) + .margin(0f, 0f, 0f, 0f) + .create()) { + template.compose(document, doc); + 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/cv/presets/CharcoalGoldFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldFixtures.java new file mode 100644 index 000000000..84b063386 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldFixtures.java @@ -0,0 +1,143 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.RowStyle; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.List; + +/** + * The canonical fixture for {@link CharcoalGold} — the document the design + * was drawn around, and the one both gates measure. + * + *

    One fixture feeds the layout snapshot and the pixel baseline, so a + * change that moves the sheet moves both together instead of leaving one + * gate measuring a document the other no longer renders.

    + */ +public final class CharcoalGoldFixtures { + + private static final String NEWLINE = String.valueOf((char) 10); + + private CharcoalGoldFixtures() { + } + + /** + * The canonical CV: a photograph, five contact channels, ten rated + * skills, four languages, two degrees, three roles, three certifications, + * three achievements and a six-tool strip — one page. + * + * @return the fixture document + */ + public static CvDocument canonicalCv() { + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("ANASTASIA", "SMITH") + .jobTitle("PROJECT MANAGER") + .contact(new Contact("+44 7700 900123", + "hello@anastasiasmith.com", + "London, United Kingdom")) + .link(new Link("anastasiasmith.com", + "https://anastasiasmith.com")) + .link(new Link("linkedin.com/in/anastasiasmith", + "https://www.linkedin.com/in/anastasiasmith")) + .portrait(CvFixturePortrait.silhouette()) + .build()) + .section(new ParagraphSection("Summary", String.join(NEWLINE, + "Results-driven Project Manager with 6+ years of experience leading cross-functional teams and delivering complex projects on time and within budget.", + "Skilled in agile and waterfall methodologies, process optimisation, and stakeholder management. Passionate about driving efficiency and creating value." + ))) + .section(SkillsSection.of("SKILLS", new SkillGroup("Core", List.of( + CvSkill.of("Project Management", 1.0), + CvSkill.of("Budgeting & Forecasting", 1.0), + CvSkill.of("Stakeholder Communication", 1.0), + CvSkill.of("Risk Management", 1.0), + CvSkill.of("Data Analysis", 0.8), + CvSkill.of("Process Improvement", 0.8), + CvSkill.of("Microsoft Excel", 1.0), + CvSkill.of("Power BI", 0.8), + CvSkill.of("Jira / Confluence", 1.0), + CvSkill.of("Agile Methodologies", 0.8) + )))) + .section(RowsSection.builder("LANGUAGES", RowStyle.PLAIN) + .row("English", "Native") + .row("Russian", "Native") + .row("French", "B2 – Upper Intermediate") + .row("German", "A2 – Basic") + .build()) + .section(EntriesSection.builder("EDUCATION") + .entry(CvEntry.builder("MSc Project Management") + .subtitle("University College London").date("2018 – 2019").build()) + .entry(CvEntry.builder("BSc Business Administration") + .subtitle("King's College London").date("2014 – 2017").build()) + .build()) + .section(EntriesSection.builder("EXPERIENCE") + .entry(CvEntry.builder("Senior Project Manager") + .subtitle("DIGITAL SOLUTIONS LTD") + .place("LONDON, UK") + .date("2021 – Present") + .body(List.of( + "Lead end-to-end delivery of enterprise software projects worth £1M–£3M.", + "Manage cross-functional teams of up to 15 members.", + "Implement agile practices that improved delivery speed by 25%.", + "Build strong client relationships and ensure stakeholder alignment." + )) + .build()) + .entry(CvEntry.builder("Project Manager") + .subtitle("INNOVATECH SYSTEMS") + .place("LONDON, UK") + .date("2019 – 2021") + .body(List.of( + "Delivered 12+ projects across IT and business transformation.", + "Monitored budgets, timelines, and resource allocation.", + "Identified risks and implemented mitigation strategies.", + "Achieved 98% on-time project delivery." + )) + .build()) + .entry(CvEntry.builder("Project Coordinator") + .subtitle("GLOBAL BUSINESS SERVICES") + .place("LONDON, UK") + .date("2017 – 2019") + .body(List.of( + "Supported project managers in planning and execution.", + "Prepared reports, dashboards, and documentation.", + "Coordinated meetings and tracked action items.", + "Improved internal processes and project templates." + )) + .build()) + .build()) + .section(EntriesSection.builder("CERTIFICATIONS") + .entry(CvEntry.builder("PMP® Certification") + .subtitle("Project Management Institute").date("2020").icon("certificate").build()) + .entry(CvEntry.builder("PRINCE2® Foundation") + .subtitle("AXELOS").date("2019").icon("certificate").build()) + .entry(CvEntry.builder("AgilePM® Foundation") + .subtitle("APMG International").date("2019").icon("certificate").build()) + .build()) + .section(EntriesSection.builder("ACHIEVEMENTS") + .entry(CvEntry.builder("Excellence in Delivery Award") + .subtitle("Digital Solutions Ltd").date("2023").icon("trophy").build()) + .entry(CvEntry.builder("Process Improvement Initiative") + .subtitle("Increased efficiency by 30%").date("2022").icon("growth").build()) + .entry(CvEntry.builder("Top Performer") + .subtitle("Innovatech Systems").date("2020").icon("star").build()) + .build()) + .section(new ParagraphSection("TECHNICAL TOOLS", String.join(NEWLINE, + "Microsoft 365", + "Jira", + "Confluence", + "Asana", + "Slack", + "Power BI" + ))) + .build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldLayoutSnapshotTest.java new file mode 100644 index 000000000..61d7e67a5 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldLayoutSnapshotTest.java @@ -0,0 +1,36 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +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 CharcoalGold} - freezes the resolved + * geometry of the canonical one-page CV. + * + *

    This preset leaves the page to the caller, so the session sets A4 with + * no margin: both columns run to the paper edge and each carries its own + * padding.

    + * + *

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

    + */ +class CharcoalGoldLayoutSnapshotTest { + + @Test + void canonicalCvMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(0f, 0f, 0f, 0f) + .create()) { + CharcoalGold.create().compose(session, CharcoalGoldFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "charcoal_gold_layout", "cv-v2"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldSmokeTest.java new file mode 100644 index 000000000..975bce03f --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldSmokeTest.java @@ -0,0 +1,258 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.exceptions.AtomicNodeTooLargeException; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.RowStyle; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link CharcoalGold} — proves the preset renders a + * {@link CvDocument} end-to-end with its packaged marks, reaches its + * channels and titles as PDF links, and pins the contracts the class + * documents: the credential marks are this preset's own vocabulary, an + * entry without one is drawn plain, a skill without a level draws no + * rating, and the sheet holds one page. + */ +class CharcoalGoldSmokeTest { + + private static byte[] render(CvDocument doc) throws Exception { + try (DocumentSession session = open()) { + CharcoalGold.create().compose(session, doc); + assertThat(session.roots()).isNotEmpty(); + byte[] pdfBytes = session.toPdfBytes(); + assertThat(pdfBytes).isNotEmpty(); + return pdfBytes; + } + } + + /** Both columns run to the paper edge, so the page carries no margin. */ + private static DocumentSession open() { + return GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(0f, 0f, 0f, 0f) + .create(); + } + + private static String textOf(byte[] pdfBytes) throws Exception { + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + return new PDFTextStripper().getText(document); + } + } + + private static List linkUris(byte[] pdfBytes) throws Exception { + List uris = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI action) { + uris.add(action.getURI()); + } + } + } + } + return uris; + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = CharcoalGold.create(); + assertThat(template.id()).isEqualTo(CharcoalGold.ID); + assertThat(template.displayName()).isEqualTo(CharcoalGold.DISPLAY_NAME); + } + + @Test + void canonicalRenderCarriesTheText() throws Exception { + String text = textOf(render(CharcoalGoldFixtures.canonicalCv())); + assertThat(text) + .contains("hello@anastasiasmith.com") + .contains("London, United Kingdom") + .contains("Results-driven Project Manager") + .contains("Project Management") + .contains("B2 – Upper Intermediate") + .contains("MSc Project Management") + .contains("Senior Project Manager") + .contains("DIGITAL SOLUTIONS LTD · LONDON, UK") + .contains("Lead end-to-end delivery of enterprise software projects") + .contains("PMP® Certification") + .contains("Excellence in Delivery Award") + .contains("Confluence"); + } + + @Test + void rendersOneCanonicalPage() throws Exception { + try (PDDocument document = + Loader.loadPDF(render(CharcoalGoldFixtures.canonicalCv()))) { + assertThat(document.getNumberOfPages()).isEqualTo(1); + } + } + + @Test + void channelsReachThePdfAsLinks() throws Exception { + // The dial and mail targets are built from the values. They are + // annotations, so they move no pixel and no layout node — which is + // why the parity gates cannot see them either. + assertThat(linkUris(render(CharcoalGoldFixtures.canonicalCv()))) + .contains("tel:+447700900123", + "mailto:hello@anastasiasmith.com", + "https://anastasiasmith.com", + "https://www.linkedin.com/in/anastasiasmith"); + } + + @Test + void aTitleWithALinkReachesThePdfAsOne() throws Exception { + byte[] pdf = render(CvDocument.builder() + .identity(identity()) + .section(EntriesSection.builder("Experience") + .entry(CvEntry.builder("Engineer") + .subtitle("Acme") + .date("2024") + .body("Shipped a thing.") + .link("https://acme.example.com") + .build()) + .build()) + .section(EntriesSection.builder("Certifications") + .entry(CvEntry.builder("Certified Something") + .subtitle("An Institute") + .date("2023") + .icon("certificate") + .link("https://example.com/cert") + .build()) + .build()) + .build()); + assertThat(linkUris(pdf)) + .contains("https://acme.example.com", "https://example.com/cert"); + } + + @Test + void rejectsAnUnknownCredentialMarkByName() { + CvDocument doc = CvDocument.builder() + .identity(identity()) + .section(EntriesSection.builder("Achievements") + .entry(CvEntry.builder("Award").icon("no-such-mark").build()) + .build()) + .build(); + try (DocumentSession session = open()) { + assertThatThrownBy(() -> CharcoalGold.create().compose(session, doc)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("no-such-mark") + .hasMessageContaining("trophy"); + } + } + + @Test + void drawsACredentialWithoutAMark() throws Exception { + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(EntriesSection.builder("Certifications") + .entry(CvEntry.builder("Certified Something") + .subtitle("An Institute") + .date("2023") + .build()) + .build()) + .build())); + assertThat(text).contains("Certified Something").contains("An Institute"); + } + + @Test + void drawsAnUnlevelledSkillWithoutARating() throws Exception { + // A rating needs a level; without one the row is the name and its + // bullet, not five empty dots that read as a score of zero. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(SkillsSection.of("Skills", SkillGroup.of("Core", "Java", "Kotlin"))) + .build())); + assertThat(text).contains("Java").contains("Kotlin"); + } + + @Test + void rendersWithoutAPortrait() throws Exception { + // No photograph: the sidebar starts at the contact block rather than + // leaving a hole above it. + String text = textOf(render(CvDocument.builder() + .identity(CvIdentity.builder() + .name("Ada", "Lovelace") + .jobTitle("Analyst") + .contact(new Contact("+44 20 7946 0000", "ada@example.com", + "London, UK")) + .build()) + .build())); + assertThat(text).contains("ada@example.com"); + } + + @Test + void writesTheLanguageLevelTheDocumentCarries() throws Exception { + // Languages are rows rather than levelled skills precisely so the + // words survive; the row style is not read. + String text = textOf(render(CvDocument.builder() + .identity(identity()) + .section(RowsSection.builder("Languages", RowStyle.BULLETED_STACKED) + .row("Portuguese", "B1 – Intermediate") + .build()) + .build())); + assertThat(text).contains("Portuguese").contains("B1 – Intermediate"); + } + + @Test + void refusesACvLongerThanTheSheet() { + // The two columns are a single row, and a row is atomic. A CV past + // the sheet raises rather than flowing. + EntriesSection.Builder experience = EntriesSection.builder("Experience"); + for (int i = 0; i < 16; i++) { + experience.entry(CvEntry.builder("Role " + i) + .subtitle("Employer " + i) + .place("City") + .date("2010 - 2011") + .body(List.of( + "Did a substantial thing that took a full line of text here.", + "Did a second substantial thing, also a full line of text.", + "And a third, so each role occupies real vertical space.")) + .build()); + } + CvDocument doc = CvDocument.builder() + .identity(identity()) + .section(experience.build()) + .build(); + try (DocumentSession session = open()) { + CharcoalGold.create().compose(session, doc); + assertThatThrownBy(session::toPdfBytes) + .isInstanceOf(AtomicNodeTooLargeException.class) + .hasMessageContaining("Body"); + } + } + + private static CvIdentity identity() { + return CvIdentity.builder() + .name("Ada", "Lovelace") + .jobTitle("Analyst") + .contact(new Contact("+44 20 7946 0000", "ada@example.com", "London, UK")) + .link(new Link("linkedin.com/in/ada", "https://linkedin.com/in/ada")) + .portrait(CvFixturePortrait.silhouette()) + .build(); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldVisualParityTest.java new file mode 100644 index 000000000..3a43c141a --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldVisualParityTest.java @@ -0,0 +1,45 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +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 CharcoalGold} - the canonical + * one-page CV against a checked-in baseline. + * + *

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

    + */ +class CharcoalGoldVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "cv-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() + .pageSize(DocumentPageSize.A4) + .margin(0f, 0f, 0f, 0f) + .create()) { + CharcoalGold.create().compose(document, CharcoalGoldFixtures.canonicalCv()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("charcoal_gold", pdfBytes); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvFixturePortrait.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvFixturePortrait.java new file mode 100644 index 000000000..4b03a3504 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CvFixturePortrait.java @@ -0,0 +1,55 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.image.DocumentImageData; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.RenderingHints; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.UncheckedIOException; + +import javax.imageio.ImageIO; + +/** + * The photograph the CV fixtures use. + * + *

    It is drawn rather than committed: a real face in the repository would + * be a licensed asset guarding a layout, and what the gates need is only + * that the disc has something in it. It is deterministic, so the pixel + * baselines that include it are stable.

    + */ +final class CvFixturePortrait { + + private CvFixturePortrait() { + } + + /** + * A flat two-tone silhouette. + * + * @return the portrait image data + */ + static DocumentImageData silhouette() { + BufferedImage image = new BufferedImage(512, 512, BufferedImage.TYPE_INT_RGB); + Graphics2D g = image.createGraphics(); + try { + g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + g.setColor(new Color(222, 226, 231)); + g.fillRect(0, 0, 512, 512); + g.setColor(new Color(150, 160, 173)); + g.fillOval(171, 102, 169, 169); + g.fillOval(67, 307, 379, 379); + } finally { + g.dispose(); + } + ByteArrayOutputStream png = new ByteArrayOutputStream(); + try { + ImageIO.write(image, "png", png); + } catch (IOException e) { + throw new UncheckedIOException("Failed to draw the fixture portrait", e); + } + return DocumentImageData.fromBytes(png.toByteArray()); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java index c5464103a..aeff9351d 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NavySidebarFixtures.java @@ -14,15 +14,6 @@ import com.demcha.compose.document.templates.cv.data.SkillsSection; import com.demcha.compose.document.templates.cv.data.Slot; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.RenderingHints; -import java.awt.image.BufferedImage; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.UncheckedIOException; - -import javax.imageio.ImageIO; /** * The canonical fixture for {@link NavySidebar} — the document the design was @@ -144,30 +135,11 @@ public static CvDocument canonicalCv() { } /** - * A flat two-tone silhouette, drawn at fixture time. + * The silhouette the CV fixtures share. * * @return the portrait image data */ static DocumentImageData portrait() { - BufferedImage image = new BufferedImage(512, 512, BufferedImage.TYPE_INT_RGB); - Graphics2D g = image.createGraphics(); - try { - g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - g.setColor(new Color(222, 226, 231)); - g.fillRect(0, 0, 512, 512); - g.setColor(new Color(150, 160, 173)); - g.fillOval(171, 102, 169, 169); - g.fillOval(67, 307, 379, 379); - } finally { - g.dispose(); - } - ByteArrayOutputStream png = new ByteArrayOutputStream(); - try { - ImageIO.write(image, "png", png); - } catch (IOException e) { - throw new UncheckedIOException("Failed to draw the fixture portrait", e); - } - return DocumentImageData.fromBytes(png.toByteArray()); + return CvFixturePortrait.silhouette(); } } diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json new file mode 100644 index 000000000..7721c9f40 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/charcoal_gold_layout.json @@ -0,0 +1,7457 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 595.276, + "innerHeight" : 841.89, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "CharcoalGoldCv[0]", + "entityName" : "CharcoalGoldCv", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 0.0, + "computedY" : 29.49, + "placementX" : 0.0, + "placementY" : 29.49, + "placementWidth" : 595.276, + "placementHeight" : 812.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 812.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" : "CharcoalGoldCv[0]/Body[0]", + "entityName" : "Body", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 29.49, + "placementX" : 0.0, + "placementY" : 29.49, + "placementWidth" : 595.276, + "placementHeight" : 812.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 812.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]", + "entityName" : "Sidebar", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 44.209, + "placementX" : 0.0, + "placementY" : 44.209, + "placementWidth" : 190.31, + "placementHeight" : 797.68, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 190.31, + "contentHeight" : 797.68, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 24.3, + "right" : 17.0, + "bottom" : 0.0, + "left" : 17.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Align[0]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 17.0, + "computedY" : 692.229, + "placementX" : 17.0, + "placementY" : 692.229, + "placementWidth" : 156.31, + "placementHeight" : 125.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 125.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Align[0]/ProfilePhoto[0]", + "entityName" : "ProfilePhoto", + "entityKind" : "ShapeContainerNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Align[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 32.475, + "computedY" : 692.229, + "placementX" : 32.475, + "placementY" : 692.229, + "placementWidth" : 125.36, + "placementHeight" : 125.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 125.36, + "contentHeight" : 125.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Align[0]/ProfilePhoto[0]/PortraitImage[0]", + "entityName" : "PortraitImage", + "entityKind" : "ImageNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Align[0]/ProfilePhoto[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 32.475, + "computedY" : 692.229, + "placementX" : 32.475, + "placementY" : 692.229, + "placementWidth" : 125.36, + "placementHeight" : 125.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 125.36, + "contentHeight" : 125.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]", + "entityName" : "Contact", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 17.0, + "computedY" : 542.829, + "placementX" : 17.0, + "placementY" : 542.829, + "placementWidth" : 119.526, + "placementHeight" : 120.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.526, + "contentHeight" : 120.0, + "margin" : { + "top" : 29.4, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]/Heading_CONTACT[0]", + "entityName" : "Heading_CONTACT", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 650.829, + "placementX" : 17.0, + "placementY" : 650.829, + "placementWidth" : 56.6, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.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" : 9.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]/Heading_CONTACT[0]/HeadingText_CONTACT[0]", + "entityName" : "HeadingText_CONTACT", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]/Heading_CONTACT[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 26.0, + "computedY" : 650.829, + "placementX" : 26.0, + "placementY" : 650.829, + "placementWidth" : 47.6, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]/Contact_0[1]", + "entityName" : "Contact_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 629.469, + "placementX" : 17.0, + "placementY" : 629.469, + "placementWidth" : 75.799, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.799, + "contentHeight" : 9.36, + "margin" : { + "top" : 12.0, + "right" : 0.0, + "bottom" : 9.84, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]/Contact_1[2]", + "entityName" : "Contact_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 610.269, + "placementX" : 17.0, + "placementY" : 610.269, + "placementWidth" : 102.616, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.616, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.84, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]/Contact_2[3]", + "entityName" : "Contact_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 591.069, + "placementX" : 17.0, + "placementY" : 591.069, + "placementWidth" : 98.599, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 98.599, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.84, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]/Contact_3[4]", + "entityName" : "Contact_3", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 571.869, + "placementX" : 17.0, + "placementY" : 571.869, + "placementWidth" : 79.512, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 79.512, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.84, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]/Contact_4[5]", + "entityName" : "Contact_4", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Contact[1]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 552.669, + "placementX" : 17.0, + "placementY" : 552.669, + "placementWidth" : 119.526, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 119.526, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.84, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Divider_AfterContact[2]", + "entityName" : "Divider_AfterContact", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 17.0, + "computedY" : 522.829, + "placementX" : 17.0, + "placementY" : 522.829, + "placementWidth" : 156.31, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 1.0, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "entityName" : "Skills", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 17.0, + "computedY" : 315.829, + "placementX" : 17.0, + "placementY" : 315.829, + "placementWidth" : 156.31, + "placementHeight" : 190.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 190.0, + "margin" : { + "top" : 17.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Heading_SKILLS[0]", + "entityName" : "Heading_SKILLS", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 493.829, + "placementX" : 17.0, + "placementY" : 493.829, + "placementWidth" : 39.57, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 39.57, + "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" : 9.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Heading_SKILLS[0]/HeadingText_SKILLS[0]", + "entityName" : "HeadingText_SKILLS", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Heading_SKILLS[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 26.0, + "computedY" : 493.829, + "placementX" : 26.0, + "placementY" : 493.829, + "placementWidth" : 30.57, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.57, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]", + "entityName" : "Skill_0Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 472.469, + "placementX" : 17.0, + "placementY" : 472.469, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.36, + "margin" : { + "top" : 12.0, + "right" : 0.0, + "bottom" : 7.24, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]/Skill_0Layer[0]", + "entityName" : "Skill_0Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 472.469, + "placementX" : 17.0, + "placementY" : 472.469, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]/Skill_0Layer[0]/Skill_0[0]", + "entityName" : "Skill_0", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]/Skill_0Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 472.469, + "placementX" : 17.0, + "placementY" : 472.469, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]/Skill_0Layer[0]/Skill_0[0]/SkillBullet_0[0]", + "entityName" : "SkillBullet_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]/Skill_0Layer[0]/Skill_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 472.469, + "placementX" : 17.0, + "placementY" : 472.469, + "placementWidth" : 9.5, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.5, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]/Skill_0Layer[0]/Skill_0[0]/SkillName_0[1]", + "entityName" : "SkillName_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]/Skill_0Layer[0]/Skill_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 26.5, + "computedY" : 472.469, + "placementX" : 26.5, + "placementY" : 472.469, + "placementWidth" : 71.682, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.682, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]/Skill_0Layer[0]/Skill_0[0]/SkillRating_0[2]", + "entityName" : "SkillRating_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_0Stack[1]/Skill_0Layer[0]/Skill_0[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 132.203, + "computedY" : 472.469, + "placementX" : 132.203, + "placementY" : 472.469, + "placementWidth" : 41.107, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.107, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]", + "entityName" : "Skill_1Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 455.869, + "placementX" : 17.0, + "placementY" : 455.869, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.24, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]/Skill_1Layer[0]", + "entityName" : "Skill_1Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 455.869, + "placementX" : 17.0, + "placementY" : 455.869, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]/Skill_1Layer[0]/Skill_1[0]", + "entityName" : "Skill_1", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]/Skill_1Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 455.869, + "placementX" : 17.0, + "placementY" : 455.869, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]/Skill_1Layer[0]/Skill_1[0]/SkillBullet_1[0]", + "entityName" : "SkillBullet_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]/Skill_1Layer[0]/Skill_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 455.869, + "placementX" : 17.0, + "placementY" : 455.869, + "placementWidth" : 9.5, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.5, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]/Skill_1Layer[0]/Skill_1[0]/SkillName_1[1]", + "entityName" : "SkillName_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]/Skill_1Layer[0]/Skill_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 26.5, + "computedY" : 455.869, + "placementX" : 26.5, + "placementY" : 455.869, + "placementWidth" : 84.427, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 84.427, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]/Skill_1Layer[0]/Skill_1[0]/SkillRating_1[2]", + "entityName" : "SkillRating_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_1Stack[2]/Skill_1Layer[0]/Skill_1[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 132.203, + "computedY" : 455.869, + "placementX" : 132.203, + "placementY" : 455.869, + "placementWidth" : 41.107, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.107, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]", + "entityName" : "Skill_2Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 439.269, + "placementX" : 17.0, + "placementY" : 439.269, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.24, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]/Skill_2Layer[0]", + "entityName" : "Skill_2Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 439.269, + "placementX" : 17.0, + "placementY" : 439.269, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]/Skill_2Layer[0]/Skill_2[0]", + "entityName" : "Skill_2", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]/Skill_2Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 439.269, + "placementX" : 17.0, + "placementY" : 439.269, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]/Skill_2Layer[0]/Skill_2[0]/SkillBullet_2[0]", + "entityName" : "SkillBullet_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]/Skill_2Layer[0]/Skill_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 439.269, + "placementX" : 17.0, + "placementY" : 439.269, + "placementWidth" : 9.5, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.5, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]/Skill_2Layer[0]/Skill_2[0]/SkillName_2[1]", + "entityName" : "SkillName_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]/Skill_2Layer[0]/Skill_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 26.5, + "computedY" : 439.269, + "placementX" : 26.5, + "placementY" : 439.269, + "placementWidth" : 97.032, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.032, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]/Skill_2Layer[0]/Skill_2[0]/SkillRating_2[2]", + "entityName" : "SkillRating_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_2Stack[3]/Skill_2Layer[0]/Skill_2[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 132.203, + "computedY" : 439.269, + "placementX" : 132.203, + "placementY" : 439.269, + "placementWidth" : 41.107, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.107, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]", + "entityName" : "Skill_3Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 422.669, + "placementX" : 17.0, + "placementY" : 422.669, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.24, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]/Skill_3Layer[0]", + "entityName" : "Skill_3Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 422.669, + "placementX" : 17.0, + "placementY" : 422.669, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]/Skill_3Layer[0]/Skill_3[0]", + "entityName" : "Skill_3", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]/Skill_3Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 422.669, + "placementX" : 17.0, + "placementY" : 422.669, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]/Skill_3Layer[0]/Skill_3[0]/SkillBullet_3[0]", + "entityName" : "SkillBullet_3", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]/Skill_3Layer[0]/Skill_3[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 422.669, + "placementX" : 17.0, + "placementY" : 422.669, + "placementWidth" : 9.5, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.5, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]/Skill_3Layer[0]/Skill_3[0]/SkillName_3[1]", + "entityName" : "SkillName_3", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]/Skill_3Layer[0]/Skill_3[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 26.5, + "computedY" : 422.669, + "placementX" : 26.5, + "placementY" : 422.669, + "placementWidth" : 61.316, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.316, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]/Skill_3Layer[0]/Skill_3[0]/SkillRating_3[2]", + "entityName" : "SkillRating_3", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_3Stack[4]/Skill_3Layer[0]/Skill_3[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 132.203, + "computedY" : 422.669, + "placementX" : 132.203, + "placementY" : 422.669, + "placementWidth" : 41.107, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.107, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]", + "entityName" : "Skill_4Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 406.069, + "placementX" : 17.0, + "placementY" : 406.069, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.24, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]/Skill_4Layer[0]", + "entityName" : "Skill_4Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 406.069, + "placementX" : 17.0, + "placementY" : 406.069, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]/Skill_4Layer[0]/Skill_4[0]", + "entityName" : "Skill_4", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]/Skill_4Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 406.069, + "placementX" : 17.0, + "placementY" : 406.069, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]/Skill_4Layer[0]/Skill_4[0]/SkillBullet_4[0]", + "entityName" : "SkillBullet_4", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]/Skill_4Layer[0]/Skill_4[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 406.069, + "placementX" : 17.0, + "placementY" : 406.069, + "placementWidth" : 9.5, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.5, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]/Skill_4Layer[0]/Skill_4[0]/SkillName_4[1]", + "entityName" : "SkillName_4", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]/Skill_4Layer[0]/Skill_4[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 26.5, + "computedY" : 406.069, + "placementX" : 26.5, + "placementY" : 406.069, + "placementWidth" : 46.488, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 46.488, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]/Skill_4Layer[0]/Skill_4[0]/SkillRating_4[2]", + "entityName" : "SkillRating_4", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_4Stack[5]/Skill_4Layer[0]/Skill_4[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 132.203, + "computedY" : 406.069, + "placementX" : 132.203, + "placementY" : 406.069, + "placementWidth" : 41.107, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.107, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]", + "entityName" : "Skill_5Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 389.469, + "placementX" : 17.0, + "placementY" : 389.469, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.24, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]/Skill_5Layer[0]", + "entityName" : "Skill_5Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 389.469, + "placementX" : 17.0, + "placementY" : 389.469, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]/Skill_5Layer[0]/Skill_5[0]", + "entityName" : "Skill_5", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]/Skill_5Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 389.469, + "placementX" : 17.0, + "placementY" : 389.469, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]/Skill_5Layer[0]/Skill_5[0]/SkillBullet_5[0]", + "entityName" : "SkillBullet_5", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]/Skill_5Layer[0]/Skill_5[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 389.469, + "placementX" : 17.0, + "placementY" : 389.469, + "placementWidth" : 9.5, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.5, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]/Skill_5Layer[0]/Skill_5[0]/SkillName_5[1]", + "entityName" : "SkillName_5", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]/Skill_5Layer[0]/Skill_5[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 26.5, + "computedY" : 389.469, + "placementX" : 26.5, + "placementY" : 389.469, + "placementWidth" : 74.623, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 74.623, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]/Skill_5Layer[0]/Skill_5[0]/SkillRating_5[2]", + "entityName" : "SkillRating_5", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_5Stack[6]/Skill_5Layer[0]/Skill_5[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 132.203, + "computedY" : 389.469, + "placementX" : 132.203, + "placementY" : 389.469, + "placementWidth" : 41.107, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.107, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]", + "entityName" : "Skill_6Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 372.869, + "placementX" : 17.0, + "placementY" : 372.869, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.24, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]/Skill_6Layer[0]", + "entityName" : "Skill_6Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 372.869, + "placementX" : 17.0, + "placementY" : 372.869, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]/Skill_6Layer[0]/Skill_6[0]", + "entityName" : "Skill_6", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]/Skill_6Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 372.869, + "placementX" : 17.0, + "placementY" : 372.869, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]/Skill_6Layer[0]/Skill_6[0]/SkillBullet_6[0]", + "entityName" : "SkillBullet_6", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]/Skill_6Layer[0]/Skill_6[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 372.869, + "placementX" : 17.0, + "placementY" : 372.869, + "placementWidth" : 9.5, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.5, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]/Skill_6Layer[0]/Skill_6[0]/SkillName_6[1]", + "entityName" : "SkillName_6", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]/Skill_6Layer[0]/Skill_6[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 26.5, + "computedY" : 372.869, + "placementX" : 26.5, + "placementY" : 372.869, + "placementWidth" : 53.524, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 53.524, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]/Skill_6Layer[0]/Skill_6[0]/SkillRating_6[2]", + "entityName" : "SkillRating_6", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_6Stack[7]/Skill_6Layer[0]/Skill_6[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 132.203, + "computedY" : 372.869, + "placementX" : 132.203, + "placementY" : 372.869, + "placementWidth" : 41.107, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.107, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]", + "entityName" : "Skill_7Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 8, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 356.269, + "placementX" : 17.0, + "placementY" : 356.269, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.24, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]/Skill_7Layer[0]", + "entityName" : "Skill_7Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 356.269, + "placementX" : 17.0, + "placementY" : 356.269, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]/Skill_7Layer[0]/Skill_7[0]", + "entityName" : "Skill_7", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]/Skill_7Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 356.269, + "placementX" : 17.0, + "placementY" : 356.269, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]/Skill_7Layer[0]/Skill_7[0]/SkillBullet_7[0]", + "entityName" : "SkillBullet_7", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]/Skill_7Layer[0]/Skill_7[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 356.269, + "placementX" : 17.0, + "placementY" : 356.269, + "placementWidth" : 9.5, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.5, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]/Skill_7Layer[0]/Skill_7[0]/SkillName_7[1]", + "entityName" : "SkillName_7", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]/Skill_7Layer[0]/Skill_7[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 26.5, + "computedY" : 356.269, + "placementX" : 26.5, + "placementY" : 356.269, + "placementWidth" : 31.426, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.426, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]/Skill_7Layer[0]/Skill_7[0]/SkillRating_7[2]", + "entityName" : "SkillRating_7", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_7Stack[8]/Skill_7Layer[0]/Skill_7[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 132.203, + "computedY" : 356.269, + "placementX" : 132.203, + "placementY" : 356.269, + "placementWidth" : 41.107, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.107, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]", + "entityName" : "Skill_8Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 9, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 339.669, + "placementX" : 17.0, + "placementY" : 339.669, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.24, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]/Skill_8Layer[0]", + "entityName" : "Skill_8Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 339.669, + "placementX" : 17.0, + "placementY" : 339.669, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]/Skill_8Layer[0]/Skill_8[0]", + "entityName" : "Skill_8", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]/Skill_8Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 339.669, + "placementX" : 17.0, + "placementY" : 339.669, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]/Skill_8Layer[0]/Skill_8[0]/SkillBullet_8[0]", + "entityName" : "SkillBullet_8", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]/Skill_8Layer[0]/Skill_8[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 339.669, + "placementX" : 17.0, + "placementY" : 339.669, + "placementWidth" : 9.5, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.5, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]/Skill_8Layer[0]/Skill_8[0]/SkillName_8[1]", + "entityName" : "SkillName_8", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]/Skill_8Layer[0]/Skill_8[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 26.5, + "computedY" : 339.669, + "placementX" : 26.5, + "placementY" : 339.669, + "placementWidth" : 58.64, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.64, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]/Skill_8Layer[0]/Skill_8[0]/SkillRating_8[2]", + "entityName" : "SkillRating_8", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_8Stack[9]/Skill_8Layer[0]/Skill_8[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 132.203, + "computedY" : 339.669, + "placementX" : 132.203, + "placementY" : 339.669, + "placementWidth" : 41.107, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.107, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]", + "entityName" : "Skill_9Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]", + "childIndex" : 10, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 323.069, + "placementX" : 17.0, + "placementY" : 323.069, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.24, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]/Skill_9Layer[0]", + "entityName" : "Skill_9Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 323.069, + "placementX" : 17.0, + "placementY" : 323.069, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]/Skill_9Layer[0]/Skill_9[0]", + "entityName" : "Skill_9", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]/Skill_9Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 323.069, + "placementX" : 17.0, + "placementY" : 323.069, + "placementWidth" : 156.31, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]/Skill_9Layer[0]/Skill_9[0]/SkillBullet_9[0]", + "entityName" : "SkillBullet_9", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]/Skill_9Layer[0]/Skill_9[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 323.069, + "placementX" : 17.0, + "placementY" : 323.069, + "placementWidth" : 9.5, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.5, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]/Skill_9Layer[0]/Skill_9[0]/SkillName_9[1]", + "entityName" : "SkillName_9", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]/Skill_9Layer[0]/Skill_9[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 26.5, + "computedY" : 323.069, + "placementX" : 26.5, + "placementY" : 323.069, + "placementWidth" : 70.582, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.582, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]/Skill_9Layer[0]/Skill_9[0]/SkillRating_9[2]", + "entityName" : "SkillRating_9", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Skills[3]/Skill_9Stack[10]/Skill_9Layer[0]/Skill_9[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 132.203, + "computedY" : 323.069, + "placementX" : 132.203, + "placementY" : 323.069, + "placementWidth" : 41.107, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.107, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Divider_AfterSkills[4]", + "entityName" : "Divider_AfterSkills", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 17.0, + "computedY" : 295.829, + "placementX" : 17.0, + "placementY" : 295.829, + "placementWidth" : 156.31, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 1.0, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]", + "entityName" : "Languages", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 17.0, + "computedY" : 187.229, + "placementX" : 17.0, + "placementY" : 187.229, + "placementWidth" : 156.31, + "placementHeight" : 91.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 91.6, + "margin" : { + "top" : 17.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Heading_LANGUAGES[0]", + "entityName" : "Heading_LANGUAGES", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 266.829, + "placementX" : 17.0, + "placementY" : 266.829, + "placementWidth" : 68.51, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 68.51, + "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" : 9.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Heading_LANGUAGES[0]/HeadingText_LANGUAGES[0]", + "entityName" : "HeadingText_LANGUAGES", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Heading_LANGUAGES[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 26.0, + "computedY" : 266.829, + "placementX" : 26.0, + "placementY" : 266.829, + "placementWidth" : 59.51, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 59.51, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_0Stack[1]", + "entityName" : "Language_0Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 243.909, + "placementX" : 17.0, + "placementY" : 243.909, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "margin" : { + "top" : 12.0, + "right" : 0.0, + "bottom" : 5.98, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_0Stack[1]/Language_0Layer[0]", + "entityName" : "Language_0Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_0Stack[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 243.909, + "placementX" : 17.0, + "placementY" : 243.909, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_0Stack[1]/Language_0Layer[0]/Language_0[0]", + "entityName" : "Language_0", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_0Stack[1]/Language_0Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 243.909, + "placementX" : 17.0, + "placementY" : 243.909, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_0Stack[1]/Language_0Layer[0]/Language_0[0]/LanguageName_0[0]", + "entityName" : "LanguageName_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_0Stack[1]/Language_0Layer[0]/Language_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 243.909, + "placementX" : 17.0, + "placementY" : 243.909, + "placementWidth" : 28.419, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.419, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_0Stack[1]/Language_0Layer[0]/Language_0[0]/LanguageLevel_0[1]", + "entityName" : "LanguageLevel_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_0Stack[1]/Language_0Layer[0]/Language_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 73.271, + "computedY" : 243.909, + "placementX" : 73.271, + "placementY" : 243.909, + "placementWidth" : 26.426, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.426, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_1Stack[2]", + "entityName" : "Language_1Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 227.009, + "placementX" : 17.0, + "placementY" : 227.009, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.98, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_1Stack[2]/Language_1Layer[0]", + "entityName" : "Language_1Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_1Stack[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 227.009, + "placementX" : 17.0, + "placementY" : 227.009, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_1Stack[2]/Language_1Layer[0]/Language_1[0]", + "entityName" : "Language_1", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_1Stack[2]/Language_1Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 227.009, + "placementX" : 17.0, + "placementY" : 227.009, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_1Stack[2]/Language_1Layer[0]/Language_1[0]/LanguageName_1[0]", + "entityName" : "LanguageName_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_1Stack[2]/Language_1Layer[0]/Language_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 227.009, + "placementX" : 17.0, + "placementY" : 227.009, + "placementWidth" : 30.449, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.449, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_1Stack[2]/Language_1Layer[0]/Language_1[0]/LanguageLevel_1[1]", + "entityName" : "LanguageLevel_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_1Stack[2]/Language_1Layer[0]/Language_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 73.271, + "computedY" : 227.009, + "placementX" : 73.271, + "placementY" : 227.009, + "placementWidth" : 26.426, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.426, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_2Stack[3]", + "entityName" : "Language_2Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 210.109, + "placementX" : 17.0, + "placementY" : 210.109, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.98, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_2Stack[3]/Language_2Layer[0]", + "entityName" : "Language_2Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_2Stack[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 210.109, + "placementX" : 17.0, + "placementY" : 210.109, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_2Stack[3]/Language_2Layer[0]/Language_2[0]", + "entityName" : "Language_2", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_2Stack[3]/Language_2Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 210.109, + "placementX" : 17.0, + "placementY" : 210.109, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_2Stack[3]/Language_2Layer[0]/Language_2[0]/LanguageName_2[0]", + "entityName" : "LanguageName_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_2Stack[3]/Language_2Layer[0]/Language_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 210.109, + "placementX" : 17.0, + "placementY" : 210.109, + "placementWidth" : 27.773, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 27.773, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_2Stack[3]/Language_2Layer[0]/Language_2[0]/LanguageLevel_2[1]", + "entityName" : "LanguageLevel_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_2Stack[3]/Language_2Layer[0]/Language_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 73.271, + "computedY" : 210.109, + "placementX" : 73.271, + "placementY" : 210.109, + "placementWidth" : 99.636, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.636, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_3Stack[4]", + "entityName" : "Language_3Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 193.209, + "placementX" : 17.0, + "placementY" : 193.209, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.98, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_3Stack[4]/Language_3Layer[0]", + "entityName" : "Language_3Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_3Stack[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 193.209, + "placementX" : 17.0, + "placementY" : 193.209, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_3Stack[4]/Language_3Layer[0]/Language_3[0]", + "entityName" : "Language_3", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_3Stack[4]/Language_3Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 17.0, + "computedY" : 193.209, + "placementX" : 17.0, + "placementY" : 193.209, + "placementWidth" : 156.31, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_3Stack[4]/Language_3Layer[0]/Language_3[0]/LanguageName_3[0]", + "entityName" : "LanguageName_3", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_3Stack[4]/Language_3Layer[0]/Language_3[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 17.0, + "computedY" : 193.209, + "placementX" : 17.0, + "placementY" : 193.209, + "placementWidth" : 31.859, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 31.859, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_3Stack[4]/Language_3Layer[0]/Language_3[0]/LanguageLevel_3[1]", + "entityName" : "LanguageLevel_3", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Languages[5]/Language_3Stack[4]/Language_3Layer[0]/Language_3[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 73.271, + "computedY" : 193.209, + "placementX" : 73.271, + "placementY" : 193.209, + "placementWidth" : 42.26, + "placementHeight" : 10.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 42.26, + "contentHeight" : 10.92, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Divider_AfterLanguages[6]", + "entityName" : "Divider_AfterLanguages", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 17.0, + "computedY" : 167.229, + "placementX" : 17.0, + "placementY" : 167.229, + "placementWidth" : 156.31, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.31, + "contentHeight" : 1.0, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]", + "entityName" : "Education", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 17.0, + "computedY" : 44.209, + "placementX" : 17.0, + "placementY" : 44.209, + "placementWidth" : 107.569, + "placementHeight" : 106.02, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.569, + "contentHeight" : 106.02, + "margin" : { + "top" : 17.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/Heading_EDUCATION[0]", + "entityName" : "Heading_EDUCATION", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 138.229, + "placementX" : 17.0, + "placementY" : 138.229, + "placementWidth" : 67.56, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 67.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" : 9.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/Heading_EDUCATION[0]/HeadingText_EDUCATION[0]", + "entityName" : "HeadingText_EDUCATION", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/Heading_EDUCATION[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 26.0, + "computedY" : 138.229, + "placementX" : 26.0, + "placementY" : 138.229, + "placementWidth" : 58.56, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_0[1]", + "entityName" : "EducationEntry_0", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 92.069, + "placementX" : 17.0, + "placementY" : 92.069, + "placementWidth" : 102.95, + "placementHeight" : 34.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.95, + "contentHeight" : 34.16, + "margin" : { + "top" : 12.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_0[1]/Degree_0[0]", + "entityName" : "Degree_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_0[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 116.869, + "placementX" : 17.0, + "placementY" : 116.869, + "placementWidth" : 98.708, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 98.708, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.04, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_0[1]/EducationDetail_0[1]", + "entityName" : "EducationDetail_0", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_0[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 92.069, + "placementX" : 17.0, + "placementY" : 92.069, + "placementWidth" : 102.95, + "placementHeight" : 21.76, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.95, + "contentHeight" : 21.76, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 12.4 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_0[1]/EducationDetail_0[1]/Institution_0[0]", + "entityName" : "Institution_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_0[1]/EducationDetail_0[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.4, + "computedY" : 104.469, + "placementX" : 29.4, + "placementY" : 104.469, + "placementWidth" : 90.55, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.55, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.04, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_0[1]/EducationDetail_0[1]/Period_0[1]", + "entityName" : "Period_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_0[1]/EducationDetail_0[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 29.4, + "computedY" : 92.069, + "placementX" : 29.4, + "placementY" : 92.069, + "placementWidth" : 44.71, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.71, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_1[2]", + "entityName" : "EducationEntry_1", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 17.0, + "computedY" : 44.209, + "placementX" : 17.0, + "placementY" : 44.209, + "placementWidth" : 107.569, + "placementHeight" : 34.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.569, + "contentHeight" : 34.16, + "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" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_1[2]/Degree_1[0]", + "entityName" : "Degree_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_1[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 69.009, + "placementX" : 17.0, + "placementY" : 69.009, + "placementWidth" : 107.569, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 107.569, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.04, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_1[2]/EducationDetail_1[1]", + "entityName" : "EducationDetail_1", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_1[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 17.0, + "computedY" : 44.209, + "placementX" : 17.0, + "placementY" : 44.209, + "placementWidth" : 88.349, + "placementHeight" : 21.76, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.349, + "contentHeight" : 21.76, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 12.4 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_1[2]/EducationDetail_1[1]/Institution_1[0]", + "entityName" : "Institution_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_1[2]/EducationDetail_1[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 29.4, + "computedY" : 56.609, + "placementX" : 29.4, + "placementY" : 56.609, + "placementWidth" : 75.949, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.949, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.04, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_1[2]/EducationDetail_1[1]/Period_1[1]", + "entityName" : "Period_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/Sidebar[0]/Education[7]/EducationEntry_1[2]/EducationDetail_1[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 29.4, + "computedY" : 44.209, + "placementX" : 29.4, + "placementY" : 44.209, + "placementWidth" : 44.71, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.71, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]", + "entityName" : "MainColumn", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 190.31, + "computedY" : 29.49, + "placementX" : 190.31, + "placementY" : 29.49, + "placementWidth" : 404.966, + "placementHeight" : 812.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 404.966, + "contentHeight" : 812.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 25.7, + "right" : 28.8, + "bottom" : 0.0, + "left" : 23.7 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 214.01, + "computedY" : 691.43, + "placementX" : 214.01, + "placementY" : 691.43, + "placementWidth" : 193.815, + "placementHeight" : 124.76, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 193.815, + "contentHeight" : 124.76, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Masthead[0]/GivenName[0]", + "entityName" : "GivenName", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Masthead[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 773.35, + "placementX" : 214.01, + "placementY" : 773.35, + "placementWidth" : 193.815, + "placementHeight" : 42.84, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 193.815, + "contentHeight" : 42.84, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Masthead[0]/FamilyName[1]", + "entityName" : "FamilyName", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Masthead[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 718.75, + "placementX" : 214.01, + "placementY" : 718.75, + "placementWidth" : 141.369, + "placementHeight" : 54.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.369, + "contentHeight" : 54.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Masthead[0]/JobTitle[2]", + "entityName" : "JobTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Masthead[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 704.83, + "placementX" : 214.01, + "placementY" : 704.83, + "placementWidth" : 152.099, + "placementHeight" : 13.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 152.099, + "contentHeight" : 13.92, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 12.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Masthead[0]/MastheadRule[3]", + "entityName" : "MastheadRule", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Masthead[0]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 691.43, + "placementX" : 214.01, + "placementY" : 691.43, + "placementWidth" : 32.779, + "placementHeight" : 1.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.779, + "contentHeight" : 1.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Summary[1]", + "entityName" : "Summary", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 214.01, + "computedY" : 627.19, + "placementX" : 214.01, + "placementY" : 627.19, + "placementWidth" : 336.736, + "placementHeight" : 46.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 336.736, + "contentHeight" : 46.44, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Summary[1]/Summary_0[0]", + "entityName" : "Summary_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Summary[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 650.41, + "placementX" : 214.01, + "placementY" : 650.41, + "placementWidth" : 336.736, + "placementHeight" : 23.22, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 336.736, + "contentHeight" : 23.22, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Summary[1]/Summary_1[1]", + "entityName" : "Summary_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Summary[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 627.19, + "placementX" : 214.01, + "placementY" : 627.19, + "placementWidth" : 327.09, + "placementHeight" : 23.22, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 327.09, + "contentHeight" : 23.22, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]", + "entityName" : "Experience", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 214.01, + "computedY" : 274.21, + "placementX" : 214.01, + "placementY" : 274.21, + "placementWidth" : 352.466, + "placementHeight" : 324.58, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 324.58, + "margin" : { + "top" : 28.4, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]", + "entityName" : "Heading_EXPERIENCE", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 585.59, + "placementX" : 214.01, + "placementY" : 585.59, + "placementWidth" : 352.466, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 13.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]/HeadingRow_EXPERIENCEStack[0]", + "entityName" : "HeadingRow_EXPERIENCEStack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 223.01, + "computedY" : 585.59, + "placementX" : 223.01, + "placementY" : 585.59, + "placementWidth" : 343.466, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 343.466, + "contentHeight" : 13.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]/HeadingRow_EXPERIENCEStack[0]/HeadingRow_EXPERIENCELayer[0]", + "entityName" : "HeadingRow_EXPERIENCELayer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]/HeadingRow_EXPERIENCEStack[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 223.01, + "computedY" : 585.59, + "placementX" : 223.01, + "placementY" : 585.59, + "placementWidth" : 343.466, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 343.466, + "contentHeight" : 13.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]/HeadingRow_EXPERIENCEStack[0]/HeadingRow_EXPERIENCELayer[0]/HeadingRow_EXPERIENCE[0]", + "entityName" : "HeadingRow_EXPERIENCE", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]/HeadingRow_EXPERIENCEStack[0]/HeadingRow_EXPERIENCELayer[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 223.01, + "computedY" : 585.59, + "placementX" : 223.01, + "placementY" : 585.59, + "placementWidth" : 343.466, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 343.466, + "contentHeight" : 13.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]/HeadingRow_EXPERIENCEStack[0]/HeadingRow_EXPERIENCELayer[0]/HeadingRow_EXPERIENCE[0]/HeadingText_EXPERIENCE[0]", + "entityName" : "HeadingText_EXPERIENCE", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]/HeadingRow_EXPERIENCEStack[0]/HeadingRow_EXPERIENCELayer[0]/HeadingRow_EXPERIENCE[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 223.01, + "computedY" : 585.59, + "placementX" : 223.01, + "placementY" : 585.59, + "placementWidth" : 64.911, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 64.911, + "contentHeight" : 13.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]/HeadingRow_EXPERIENCEStack[0]/HeadingRow_EXPERIENCELayer[0]/HeadingRow_EXPERIENCE[0]/HeadingRule_EXPERIENCE[1]", + "entityName" : "HeadingRule_EXPERIENCE", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/Heading_EXPERIENCE[0]/HeadingRow_EXPERIENCEStack[0]/HeadingRow_EXPERIENCELayer[0]/HeadingRow_EXPERIENCE[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 296.921, + "computedY" : 591.69, + "placementX" : 296.921, + "placementY" : 591.69, + "placementWidth" : 260.555, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 260.555, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]", + "entityName" : "ExperienceEntry_0Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 455.41, + "placementX" : 214.01, + "placementY" : 455.41, + "placementWidth" : 352.466, + "placementHeight" : 111.18, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 111.18, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]", + "entityName" : "ExperienceEntry_0Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 214.01, + "computedY" : 455.41, + "placementX" : 214.01, + "placementY" : 455.41, + "placementWidth" : 352.466, + "placementHeight" : 111.18, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 111.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]", + "entityName" : "ExperienceEntry_0", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 214.01, + "computedY" : 455.41, + "placementX" : 214.01, + "placementY" : 455.41, + "placementWidth" : 352.466, + "placementHeight" : 111.18, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 111.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/Period_0[0]", + "entityName" : "Period_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 214.01, + "computedY" : 557.23, + "placementX" : 214.01, + "placementY" : 557.23, + "placementWidth" : 52.907, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.907, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]", + "entityName" : "EntryBody_0", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 288.588, + "computedY" : 455.41, + "placementX" : 288.588, + "placementY" : 455.41, + "placementWidth" : 252.368, + "placementHeight" : 111.18, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 252.368, + "contentHeight" : 111.18, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 19.6, + "left" : 16.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]", + "entityName" : "MarkerCap_0", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 304.588, + "computedY" : 553.99, + "placementX" : 304.588, + "placementY" : 553.99, + "placementWidth" : 110.292, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.292, + "contentHeight" : 12.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]/RoleLayer_0[0]", + "entityName" : "RoleLayer_0", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 304.588, + "computedY" : 553.99, + "placementX" : 304.588, + "placementY" : 553.99, + "placementWidth" : 110.292, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.292, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]/RoleLayer_0[0]/Role_0[0]", + "entityName" : "Role_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]/RoleLayer_0[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 304.588, + "computedY" : 553.99, + "placementX" : 304.588, + "placementY" : 553.99, + "placementWidth" : 110.292, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 110.292, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]/MarkerRing_0[1]", + "entityName" : "MarkerRing_0", + "entityKind" : "EllipseNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/MarkerCap_0[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 285.488, + "computedY" : 560.39, + "placementX" : 285.488, + "placementY" : 560.39, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/Employer_0[1]", + "entityName" : "Employer_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 304.588, + "computedY" : 542.71, + "placementX" : 304.588, + "placementY" : 542.71, + "placementWidth" : 137.903, + "placementHeight" : 8.28, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 137.903, + "contentHeight" : 8.28, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]/Highlights_0[2]", + "entityName" : "Highlights_0", + "entityKind" : "ListNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_0Stack[1]/ExperienceEntry_0Layer[0]/ExperienceEntry_0[0]/EntryBody_0[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 304.588, + "computedY" : 475.01, + "placementX" : 304.588, + "placementY" : 475.01, + "placementWidth" : 236.368, + "placementHeight" : 60.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.368, + "contentHeight" : 60.7, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]", + "entityName" : "ExperienceEntry_1Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 355.01, + "placementX" : 214.01, + "placementY" : 355.01, + "placementWidth" : 352.466, + "placementHeight" : 100.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 100.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]", + "entityName" : "ExperienceEntry_1Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 214.01, + "computedY" : 355.01, + "placementX" : 214.01, + "placementY" : 355.01, + "placementWidth" : 352.466, + "placementHeight" : 100.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 100.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]", + "entityName" : "ExperienceEntry_1", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 214.01, + "computedY" : 355.01, + "placementX" : 214.01, + "placementY" : 355.01, + "placementWidth" : 352.466, + "placementHeight" : 100.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 100.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/Period_1[0]", + "entityName" : "Period_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 214.01, + "computedY" : 446.05, + "placementX" : 214.01, + "placementY" : 446.05, + "placementWidth" : 44.71, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.71, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]", + "entityName" : "EntryBody_1", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 288.588, + "computedY" : 355.01, + "placementX" : 288.588, + "placementY" : 355.01, + "placementWidth" : 236.671, + "placementHeight" : 100.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.671, + "contentHeight" : 100.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 19.6, + "left" : 16.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]", + "entityName" : "MarkerCap_1", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 304.588, + "computedY" : 442.81, + "placementX" : 304.588, + "placementY" : 442.81, + "placementWidth" : 77.826, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.826, + "contentHeight" : 12.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]/RoleLayer_1[0]", + "entityName" : "RoleLayer_1", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 304.588, + "computedY" : 442.81, + "placementX" : 304.588, + "placementY" : 442.81, + "placementWidth" : 77.826, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.826, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]/RoleLayer_1[0]/Role_1[0]", + "entityName" : "Role_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]/RoleLayer_1[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 304.588, + "computedY" : 442.81, + "placementX" : 304.588, + "placementY" : 442.81, + "placementWidth" : 77.826, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.826, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]/MarkerRing_1[1]", + "entityName" : "MarkerRing_1", + "entityKind" : "EllipseNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/MarkerCap_1[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 285.488, + "computedY" : 449.21, + "placementX" : 285.488, + "placementY" : 449.21, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/Employer_1[1]", + "entityName" : "Employer_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 304.588, + "computedY" : 431.53, + "placementX" : 304.588, + "placementY" : 431.53, + "placementWidth" : 133.729, + "placementHeight" : 8.28, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 133.729, + "contentHeight" : 8.28, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]/Highlights_1[2]", + "entityName" : "Highlights_1", + "entityKind" : "ListNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_1Stack[2]/ExperienceEntry_1Layer[0]/ExperienceEntry_1[0]/EntryBody_1[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 304.588, + "computedY" : 374.61, + "placementX" : 304.588, + "placementY" : 374.61, + "placementWidth" : 220.671, + "placementHeight" : 49.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 220.671, + "contentHeight" : 49.92, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]", + "entityName" : "ExperienceEntry_2Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 274.21, + "placementX" : 214.01, + "placementY" : 274.21, + "placementWidth" : 352.466, + "placementHeight" : 80.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 80.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]", + "entityName" : "ExperienceEntry_2Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 214.01, + "computedY" : 274.21, + "placementX" : 214.01, + "placementY" : 274.21, + "placementWidth" : 352.466, + "placementHeight" : 80.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 80.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]", + "entityName" : "ExperienceEntry_2", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 214.01, + "computedY" : 274.21, + "placementX" : 214.01, + "placementY" : 274.21, + "placementWidth" : 352.466, + "placementHeight" : 80.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 80.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/Period_2[0]", + "entityName" : "Period_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 214.01, + "computedY" : 345.65, + "placementX" : 214.01, + "placementY" : 345.65, + "placementWidth" : 44.71, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.71, + "contentHeight" : 9.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]", + "entityName" : "EntryBody_2", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 288.588, + "computedY" : 274.21, + "placementX" : 288.588, + "placementY" : 274.21, + "placementWidth" : 213.35, + "placementHeight" : 80.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 213.35, + "contentHeight" : 80.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" : 16.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]", + "entityName" : "MarkerCap_2", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 304.588, + "computedY" : 342.41, + "placementX" : 304.588, + "placementY" : 342.41, + "placementWidth" : 92.935, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.935, + "contentHeight" : 12.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]/RoleLayer_2[0]", + "entityName" : "RoleLayer_2", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 304.588, + "computedY" : 342.41, + "placementX" : 304.588, + "placementY" : 342.41, + "placementWidth" : 92.935, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.935, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]/RoleLayer_2[0]/Role_2[0]", + "entityName" : "Role_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]/RoleLayer_2[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 304.588, + "computedY" : 342.41, + "placementX" : 304.588, + "placementY" : 342.41, + "placementWidth" : 92.935, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.935, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]/MarkerRing_2[1]", + "entityName" : "MarkerRing_2", + "entityKind" : "EllipseNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/MarkerCap_2[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 285.488, + "computedY" : 348.81, + "placementX" : 285.488, + "placementY" : 348.81, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/Employer_2[1]", + "entityName" : "Employer_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 304.588, + "computedY" : 331.13, + "placementX" : 304.588, + "placementY" : 331.13, + "placementWidth" : 149.93, + "placementHeight" : 8.28, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 149.93, + "contentHeight" : 8.28, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]/Highlights_2[2]", + "entityName" : "Highlights_2", + "entityKind" : "ListNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Experience[2]/ExperienceEntry_2Stack[3]/ExperienceEntry_2Layer[0]/ExperienceEntry_2[0]/EntryBody_2[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 304.588, + "computedY" : 274.21, + "placementX" : 304.588, + "placementY" : 274.21, + "placementWidth" : 197.35, + "placementHeight" : 49.92, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 197.35, + "contentHeight" : 49.92, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]", + "entityName" : "Credentials", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 214.01, + "computedY" : 77.75, + "placementX" : 214.01, + "placementY" : 77.75, + "placementWidth" : 352.466, + "placementHeight" : 178.46, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 178.46, + "margin" : { + "top" : 18.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialsRule[0]", + "entityName" : "CredentialsRule", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 255.21, + "placementX" : 214.01, + "placementY" : 255.21, + "placementWidth" : 352.466, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]", + "entityName" : "CredentialColumnsStack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 77.75, + "placementX" : 214.01, + "placementY" : 77.75, + "placementWidth" : 352.466, + "placementHeight" : 155.46, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 155.46, + "margin" : { + "top" : 22.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]", + "entityName" : "CredentialColumnsLayer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 214.01, + "computedY" : 77.75, + "placementX" : 214.01, + "placementY" : 77.75, + "placementWidth" : 352.466, + "placementHeight" : 155.46, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 155.46, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]", + "entityName" : "CredentialColumns", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 214.01, + "computedY" : 77.75, + "placementX" : 214.01, + "placementY" : 77.75, + "placementWidth" : 352.466, + "placementHeight" : 155.46, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 155.46, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]", + "entityName" : "Certifications", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 214.01, + "computedY" : 77.75, + "placementX" : 214.01, + "placementY" : 77.75, + "placementWidth" : 163.544, + "placementHeight" : 155.46, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 163.544, + "contentHeight" : 155.46, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 21.853, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Heading_CERTIFICATIONS[0]", + "entityName" : "Heading_CERTIFICATIONS", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 214.01, + "computedY" : 220.01, + "placementX" : 214.01, + "placementY" : 220.01, + "placementWidth" : 96.054, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 96.054, + "contentHeight" : 13.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Heading_CERTIFICATIONS[0]/HeadingText_CERTIFICATIONS[0]", + "entityName" : "HeadingText_CERTIFICATIONS", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Heading_CERTIFICATIONS[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 223.01, + "computedY" : 220.01, + "placementX" : 223.01, + "placementY" : 220.01, + "placementWidth" : 87.054, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.054, + "contentHeight" : 13.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]", + "entityName" : "Certification_0Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 214.01, + "computedY" : 170.39, + "placementX" : 214.01, + "placementY" : 170.39, + "placementWidth" : 141.691, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 32.32, + "margin" : { + "top" : 17.3, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]", + "entityName" : "Certification_0Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 214.01, + "computedY" : 170.39, + "placementX" : 214.01, + "placementY" : 170.39, + "placementWidth" : 141.691, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]", + "entityName" : "Certification_0", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 214.01, + "computedY" : 170.39, + "placementX" : 214.01, + "placementY" : 170.39, + "placementWidth" : 141.691, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationIcon_0[0]", + "entityName" : "CertificationIcon_0", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 214.01, + "computedY" : 187.71, + "placementX" : 214.01, + "placementY" : 187.71, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationIcon_0[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationIcon_0[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 214.01, + "computedY" : 187.71, + "placementX" : 214.01, + "placementY" : 187.71, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationIcon_0[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationIcon_0[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 214.01, + "computedY" : 187.71, + "placementX" : 214.01, + "placementY" : 187.71, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationText_0[1]", + "entityName" : "CertificationText_0", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 233.846, + "computedY" : 170.39, + "placementX" : 233.846, + "placementY" : 170.39, + "placementWidth" : 103.648, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.648, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationText_0[1]/CertificationName_0[0]", + "entityName" : "CertificationName_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationText_0[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 233.846, + "computedY" : 193.35, + "placementX" : 233.846, + "placementY" : 193.35, + "placementWidth" : 68.741, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 68.741, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationText_0[1]/CertificationIssuer_0[1]", + "entityName" : "CertificationIssuer_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationText_0[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 233.846, + "computedY" : 181.87, + "placementX" : 233.846, + "placementY" : 181.87, + "placementWidth" : 103.648, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.648, + "contentHeight" : 9.48, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationText_0[1]/CertificationYear_0[2]", + "entityName" : "CertificationYear_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_0Stack[1]/Certification_0Layer[0]/Certification_0[0]/CertificationText_0[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 233.846, + "computedY" : 170.39, + "placementX" : 233.846, + "placementY" : 170.39, + "placementWidth" : 18.328, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 18.328, + "contentHeight" : 9.48, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/CertificationRule_0[2]", + "entityName" : "CertificationRule_0", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 214.01, + "computedY" : 162.89, + "placementX" : 214.01, + "placementY" : 162.89, + "placementWidth" : 141.691, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 1.0, + "margin" : { + "top" : 6.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]", + "entityName" : "Certification_1Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]", + "childIndex" : 3, + "depth" : 9, + "layer" : 9, + "computedX" : 214.01, + "computedY" : 124.07, + "placementX" : 214.01, + "placementY" : 124.07, + "placementWidth" : 141.691, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 32.32, + "margin" : { + "top" : 6.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]", + "entityName" : "Certification_1Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 214.01, + "computedY" : 124.07, + "placementX" : 214.01, + "placementY" : 124.07, + "placementWidth" : 141.691, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]", + "entityName" : "Certification_1", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 214.01, + "computedY" : 124.07, + "placementX" : 214.01, + "placementY" : 124.07, + "placementWidth" : 141.691, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationIcon_1[0]", + "entityName" : "CertificationIcon_1", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 214.01, + "computedY" : 141.39, + "placementX" : 214.01, + "placementY" : 141.39, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationIcon_1[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationIcon_1[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 214.01, + "computedY" : 141.39, + "placementX" : 214.01, + "placementY" : 141.39, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationIcon_1[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationIcon_1[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 214.01, + "computedY" : 141.39, + "placementX" : 214.01, + "placementY" : 141.39, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationText_1[1]", + "entityName" : "CertificationText_1", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 233.846, + "computedY" : 124.07, + "placementX" : 233.846, + "placementY" : 124.07, + "placementWidth" : 80.527, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.527, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationText_1[1]/CertificationName_1[0]", + "entityName" : "CertificationName_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationText_1[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 233.846, + "computedY" : 147.03, + "placementX" : 233.846, + "placementY" : 147.03, + "placementWidth" : 80.527, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.527, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationText_1[1]/CertificationIssuer_1[1]", + "entityName" : "CertificationIssuer_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationText_1[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 233.846, + "computedY" : 135.55, + "placementX" : 233.846, + "placementY" : 135.55, + "placementWidth" : 29.72, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.72, + "contentHeight" : 9.48, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationText_1[1]/CertificationYear_1[2]", + "entityName" : "CertificationYear_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_1Stack[3]/Certification_1Layer[0]/Certification_1[0]/CertificationText_1[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 233.846, + "computedY" : 124.07, + "placementX" : 233.846, + "placementY" : 124.07, + "placementWidth" : 18.328, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 18.328, + "contentHeight" : 9.48, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/CertificationRule_1[4]", + "entityName" : "CertificationRule_1", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]", + "childIndex" : 4, + "depth" : 9, + "layer" : 9, + "computedX" : 214.01, + "computedY" : 116.57, + "placementX" : 214.01, + "placementY" : 116.57, + "placementWidth" : 141.691, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 1.0, + "margin" : { + "top" : 6.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]", + "entityName" : "Certification_2Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]", + "childIndex" : 5, + "depth" : 9, + "layer" : 9, + "computedX" : 214.01, + "computedY" : 77.75, + "placementX" : 214.01, + "placementY" : 77.75, + "placementWidth" : 141.691, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 32.32, + "margin" : { + "top" : 6.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]", + "entityName" : "Certification_2Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 214.01, + "computedY" : 77.75, + "placementX" : 214.01, + "placementY" : 77.75, + "placementWidth" : 141.691, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]", + "entityName" : "Certification_2", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 214.01, + "computedY" : 77.75, + "placementX" : 214.01, + "placementY" : 77.75, + "placementWidth" : 141.691, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 141.691, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationIcon_2[0]", + "entityName" : "CertificationIcon_2", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 214.01, + "computedY" : 95.07, + "placementX" : 214.01, + "placementY" : 95.07, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationIcon_2[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationIcon_2[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 214.01, + "computedY" : 95.07, + "placementX" : 214.01, + "placementY" : 95.07, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationIcon_2[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationIcon_2[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 214.01, + "computedY" : 95.07, + "placementX" : 214.01, + "placementY" : 95.07, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationText_2[1]", + "entityName" : "CertificationText_2", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 233.846, + "computedY" : 77.75, + "placementX" : 233.846, + "placementY" : 77.75, + "placementWidth" : 78.008, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.008, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationText_2[1]/CertificationName_2[0]", + "entityName" : "CertificationName_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationText_2[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 233.846, + "computedY" : 100.71, + "placementX" : 233.846, + "placementY" : 100.71, + "placementWidth" : 78.008, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.008, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationText_2[1]/CertificationIssuer_2[1]", + "entityName" : "CertificationIssuer_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationText_2[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 233.846, + "computedY" : 89.23, + "placementX" : 233.846, + "placementY" : 89.23, + "placementWidth" : 69.481, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.481, + "contentHeight" : 9.48, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationText_2[1]/CertificationYear_2[2]", + "entityName" : "CertificationYear_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Certifications[0]/Certification_2Stack[5]/Certification_2Layer[0]/Certification_2[0]/CertificationText_2[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 233.846, + "computedY" : 77.75, + "placementX" : 233.846, + "placementY" : 77.75, + "placementWidth" : 18.328, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 18.328, + "contentHeight" : 9.48, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]", + "entityName" : "Achievements", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 377.554, + "computedY" : 77.75, + "placementX" : 377.554, + "placementY" : 77.75, + "placementWidth" : 188.922, + "placementHeight" : 155.46, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 188.922, + "contentHeight" : 155.46, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 21.853 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Heading_ACHIEVEMENTS[0]", + "entityName" : "Heading_ACHIEVEMENTS", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 399.407, + "computedY" : 220.01, + "placementX" : 399.407, + "placementY" : 220.01, + "placementWidth" : 92.897, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.897, + "contentHeight" : 13.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Heading_ACHIEVEMENTS[0]/HeadingText_ACHIEVEMENTS[0]", + "entityName" : "HeadingText_ACHIEVEMENTS", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Heading_ACHIEVEMENTS[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 408.407, + "computedY" : 220.01, + "placementX" : 408.407, + "placementY" : 220.01, + "placementWidth" : 83.897, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.897, + "contentHeight" : 13.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]", + "entityName" : "Achievement_0Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 399.407, + "computedY" : 170.39, + "placementX" : 399.407, + "placementY" : 170.39, + "placementWidth" : 167.069, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 32.32, + "margin" : { + "top" : 17.3, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]", + "entityName" : "Achievement_0Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 399.407, + "computedY" : 170.39, + "placementX" : 399.407, + "placementY" : 170.39, + "placementWidth" : 167.069, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]", + "entityName" : "Achievement_0", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 399.407, + "computedY" : 170.39, + "placementX" : 399.407, + "placementY" : 170.39, + "placementWidth" : 167.069, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementIcon_0[0]", + "entityName" : "AchievementIcon_0", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 399.407, + "computedY" : 187.71, + "placementX" : 399.407, + "placementY" : 187.71, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementIcon_0[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementIcon_0[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 399.407, + "computedY" : 187.71, + "placementX" : 399.407, + "placementY" : 187.71, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementIcon_0[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementIcon_0[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 399.407, + "computedY" : 187.71, + "placementX" : 399.407, + "placementY" : 187.71, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementText_0[1]", + "entityName" : "AchievementText_0", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 422.796, + "computedY" : 170.39, + "placementX" : 422.796, + "placementY" : 170.39, + "placementWidth" : 101.244, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 101.244, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementText_0[1]/AchievementName_0[0]", + "entityName" : "AchievementName_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementText_0[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 422.796, + "computedY" : 193.35, + "placementX" : 422.796, + "placementY" : 193.35, + "placementWidth" : 101.244, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 101.244, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementText_0[1]/AchievementIssuer_0[1]", + "entityName" : "AchievementIssuer_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementText_0[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 422.796, + "computedY" : 181.87, + "placementX" : 422.796, + "placementY" : 181.87, + "placementWidth" : 69.986, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.986, + "contentHeight" : 9.48, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementText_0[1]/AchievementYear_0[2]", + "entityName" : "AchievementYear_0", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_0Stack[1]/Achievement_0Layer[0]/Achievement_0[0]/AchievementText_0[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 422.796, + "computedY" : 170.39, + "placementX" : 422.796, + "placementY" : 170.39, + "placementWidth" : 18.328, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 18.328, + "contentHeight" : 9.48, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/AchievementRule_0[2]", + "entityName" : "AchievementRule_0", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 399.407, + "computedY" : 162.89, + "placementX" : 399.407, + "placementY" : 162.89, + "placementWidth" : 167.069, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 1.0, + "margin" : { + "top" : 6.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]", + "entityName" : "Achievement_1Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]", + "childIndex" : 3, + "depth" : 9, + "layer" : 9, + "computedX" : 399.407, + "computedY" : 124.07, + "placementX" : 399.407, + "placementY" : 124.07, + "placementWidth" : 167.069, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 32.32, + "margin" : { + "top" : 6.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]", + "entityName" : "Achievement_1Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 399.407, + "computedY" : 124.07, + "placementX" : 399.407, + "placementY" : 124.07, + "placementWidth" : 167.069, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]", + "entityName" : "Achievement_1", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 399.407, + "computedY" : 124.07, + "placementX" : 399.407, + "placementY" : 124.07, + "placementWidth" : 167.069, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementIcon_1[0]", + "entityName" : "AchievementIcon_1", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 399.407, + "computedY" : 141.39, + "placementX" : 399.407, + "placementY" : 141.39, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementIcon_1[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementIcon_1[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 399.407, + "computedY" : 141.39, + "placementX" : 399.407, + "placementY" : 141.39, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementIcon_1[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementIcon_1[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 399.407, + "computedY" : 141.39, + "placementX" : 399.407, + "placementY" : 141.39, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementText_1[1]", + "entityName" : "AchievementText_1", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 422.796, + "computedY" : 124.07, + "placementX" : 422.796, + "placementY" : 124.07, + "placementWidth" : 108.475, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.475, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementText_1[1]/AchievementName_1[0]", + "entityName" : "AchievementName_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementText_1[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 422.796, + "computedY" : 147.03, + "placementX" : 422.796, + "placementY" : 147.03, + "placementWidth" : 108.475, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 108.475, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementText_1[1]/AchievementIssuer_1[1]", + "entityName" : "AchievementIssuer_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementText_1[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 422.796, + "computedY" : 135.55, + "placementX" : 422.796, + "placementY" : 135.55, + "placementWidth" : 97.17, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.17, + "contentHeight" : 9.48, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementText_1[1]/AchievementYear_1[2]", + "entityName" : "AchievementYear_1", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_1Stack[3]/Achievement_1Layer[0]/Achievement_1[0]/AchievementText_1[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 422.796, + "computedY" : 124.07, + "placementX" : 422.796, + "placementY" : 124.07, + "placementWidth" : 18.328, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 18.328, + "contentHeight" : 9.48, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/AchievementRule_1[4]", + "entityName" : "AchievementRule_1", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]", + "childIndex" : 4, + "depth" : 9, + "layer" : 9, + "computedX" : 399.407, + "computedY" : 116.57, + "placementX" : 399.407, + "placementY" : 116.57, + "placementWidth" : 167.069, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 1.0, + "margin" : { + "top" : 6.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]", + "entityName" : "Achievement_2Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]", + "childIndex" : 5, + "depth" : 9, + "layer" : 9, + "computedX" : 399.407, + "computedY" : 77.75, + "placementX" : 399.407, + "placementY" : 77.75, + "placementWidth" : 167.069, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 32.32, + "margin" : { + "top" : 6.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]", + "entityName" : "Achievement_2Layer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 399.407, + "computedY" : 77.75, + "placementX" : 399.407, + "placementY" : 77.75, + "placementWidth" : 167.069, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]", + "entityName" : "Achievement_2", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 399.407, + "computedY" : 77.75, + "placementX" : 399.407, + "placementY" : 77.75, + "placementWidth" : 167.069, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.069, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementIcon_2[0]", + "entityName" : "AchievementIcon_2", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]", + "childIndex" : 0, + "depth" : 12, + "layer" : 12, + "computedX" : 399.407, + "computedY" : 95.07, + "placementX" : 399.407, + "placementY" : 95.07, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementIcon_2[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementIcon_2[0]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 399.407, + "computedY" : 95.07, + "placementX" : 399.407, + "placementY" : 95.07, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementIcon_2[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementIcon_2[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 14, + "layer" : 14, + "computedX" : 399.407, + "computedY" : 95.07, + "placementX" : 399.407, + "placementY" : 95.07, + "placementWidth" : 15.0, + "placementHeight" : 15.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.0, + "contentHeight" : 15.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementText_2[1]", + "entityName" : "AchievementText_2", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]", + "childIndex" : 1, + "depth" : 12, + "layer" : 12, + "computedX" : 422.796, + "computedY" : 77.75, + "placementX" : 422.796, + "placementY" : 77.75, + "placementWidth" : 69.441, + "placementHeight" : 32.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.441, + "contentHeight" : 32.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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementText_2[1]/AchievementName_2[0]", + "entityName" : "AchievementName_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementText_2[1]", + "childIndex" : 0, + "depth" : 13, + "layer" : 13, + "computedX" : 422.796, + "computedY" : 100.71, + "placementX" : 422.796, + "placementY" : 100.71, + "placementWidth" : 51.199, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.199, + "contentHeight" : 9.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementText_2[1]/AchievementIssuer_2[1]", + "entityName" : "AchievementIssuer_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementText_2[1]", + "childIndex" : 1, + "depth" : 13, + "layer" : 13, + "computedX" : 422.796, + "computedY" : 89.23, + "placementX" : 422.796, + "placementY" : 89.23, + "placementWidth" : 69.441, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.441, + "contentHeight" : 9.48, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementText_2[1]/AchievementYear_2[2]", + "entityName" : "AchievementYear_2", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/Credentials[3]/CredentialColumnsStack[1]/CredentialColumnsLayer[0]/CredentialColumns[0]/Achievements[1]/Achievement_2Stack[5]/Achievement_2Layer[0]/Achievement_2[0]/AchievementText_2[1]", + "childIndex" : 2, + "depth" : 13, + "layer" : 13, + "computedX" : 422.796, + "computedY" : 77.75, + "placementX" : 422.796, + "placementY" : 77.75, + "placementWidth" : 18.328, + "placementHeight" : 9.48, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 18.328, + "contentHeight" : 9.48, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]", + "entityName" : "TechnicalTools", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 214.01, + "computedY" : 29.49, + "placementX" : 214.01, + "placementY" : 29.49, + "placementWidth" : 352.466, + "placementHeight" : 34.56, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 34.56, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]", + "entityName" : "Heading_TECHNICALTOOLS", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 50.85, + "placementX" : 214.01, + "placementY" : 50.85, + "placementWidth" : 352.466, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 13.2, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]/HeadingRow_TECHNICALTOOLSStack[0]", + "entityName" : "HeadingRow_TECHNICALTOOLSStack", + "entityKind" : "LayerStackNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 223.01, + "computedY" : 50.85, + "placementX" : 223.01, + "placementY" : 50.85, + "placementWidth" : 343.466, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 343.466, + "contentHeight" : 13.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]/HeadingRow_TECHNICALTOOLSStack[0]/HeadingRow_TECHNICALTOOLSLayer[0]", + "entityName" : "HeadingRow_TECHNICALTOOLSLayer", + "entityKind" : "SectionNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]/HeadingRow_TECHNICALTOOLSStack[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 223.01, + "computedY" : 50.85, + "placementX" : 223.01, + "placementY" : 50.85, + "placementWidth" : 343.466, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 343.466, + "contentHeight" : 13.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]/HeadingRow_TECHNICALTOOLSStack[0]/HeadingRow_TECHNICALTOOLSLayer[0]/HeadingRow_TECHNICALTOOLS[0]", + "entityName" : "HeadingRow_TECHNICALTOOLS", + "entityKind" : "RowNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]/HeadingRow_TECHNICALTOOLSStack[0]/HeadingRow_TECHNICALTOOLSLayer[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 223.01, + "computedY" : 50.85, + "placementX" : 223.01, + "placementY" : 50.85, + "placementWidth" : 343.466, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 343.466, + "contentHeight" : 13.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]/HeadingRow_TECHNICALTOOLSStack[0]/HeadingRow_TECHNICALTOOLSLayer[0]/HeadingRow_TECHNICALTOOLS[0]/HeadingText_TECHNICALTOOLS[0]", + "entityName" : "HeadingText_TECHNICALTOOLS", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]/HeadingRow_TECHNICALTOOLSStack[0]/HeadingRow_TECHNICALTOOLSLayer[0]/HeadingRow_TECHNICALTOOLS[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 223.01, + "computedY" : 50.85, + "placementX" : 223.01, + "placementY" : 50.85, + "placementWidth" : 99.11, + "placementHeight" : 13.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.11, + "contentHeight" : 13.2, + "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" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]/HeadingRow_TECHNICALTOOLSStack[0]/HeadingRow_TECHNICALTOOLSLayer[0]/HeadingRow_TECHNICALTOOLS[0]/HeadingRule_TECHNICALTOOLS[1]", + "entityName" : "HeadingRule_TECHNICALTOOLS", + "entityKind" : "LineNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/Heading_TECHNICALTOOLS[0]/HeadingRow_TECHNICALTOOLSStack[0]/HeadingRow_TECHNICALTOOLSLayer[0]/HeadingRow_TECHNICALTOOLS[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 331.12, + "computedY" : 56.95, + "placementX" : 331.12, + "placementY" : 56.95, + "placementWidth" : 226.356, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 226.356, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 9.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]/ToolsStrip[1]", + "entityName" : "ToolsStrip", + "entityKind" : "ParagraphNode", + "parentPath" : "CharcoalGoldCv[0]/Body[0]/MainColumn[1]/TechnicalTools[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 214.01, + "computedY" : 29.49, + "placementX" : 214.01, + "placementY" : 29.49, + "placementWidth" : 352.466, + "placementHeight" : 9.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.466, + "contentHeight" : 9.36, + "margin" : { + "top" : 12.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/cv-v2-layered/charcoal_gold-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/charcoal_gold-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..cfdb346094a3aa85e6cf4739403c919548be454d GIT binary patch literal 113860 zcmdpeWk8f&7p;nbv_XR)4bmXpAt5O#-4aSSGk~;$w3MWDBi$|1A>GZ;In@vU{GK1Wyl9+yMz_tRyVTZbXD?g=_if}XR~<|lOq!dTy4Bnl zx#cwe#c5AONJw~2ag#cdM8vKl_NTJD1$@X2;|D*lr+ofo5`2XY=#W3FH-L~c^=p0NCnMq3icSTxs`k~}r;}wq8^HfsdiPd(8 zRnL8b+S;ClrHT%u^fx&nzUw`T%=I%0l9lxs*cvUO#kJg%XInpalRkioz55(z#`_uC~E&3jI=$@1(5~oPbNH$1HMCkM(YE~u16YN zZ(Ljknj(hsIAIn0v;A7pb##9NvBd%R94lU#MT98Q((*C%%s8BWbb+=VGK`q>*xbaF z8#_z=4b!L??8EUCL9;@N*YUfG=m;n)0n6(0hcIH!rkkKt{(`Oje@CInZV(N#jxEt$ z$xNMov6(a2msGy!r}Uk-V7K|-hr-wlwoj9}ZRcRCiPN-NT2moj1{bm;umRfhjK90# z00R5)C%e5kt#MwzPNgv_+R+A)&xIvov-2^``^(>bCi1@Ng4`?kcGV!sJg%bR_^pW- zVxk@^NdZpqcPA~z^__*gZs9yXbnMAfqf0(d_9qXsm?#Y?5A~w>yBJsDh^DK2y_2RO z{T1Jtx{n<%y`dQTf46oj`@%t_2?u9+(&}5()pu(0@bTSbh2nlNA%dUKv1tRZ#IN$- zxyx5OFof!u`~w4`y_Uaic64YS*Br6iF72xfRc=q5)RaYd(Mk+cbt=(r{jqtgqVm*( z{^PF=`=V**kJIT`!$0KC(4w=YNJA-mQaET?^kY=C(9ncT2YbFS-xr`>JO83eCJfD$ zuJ0(Csn#skns8k-%o7>TxlMa57rUM$P(oKJdXsM~%aC)tQ6~Ci>sy*ot4D>87~UdJ z-&r$`@Kg<7i!7nDEJyi(`0hZ}g!Z4xyt@0&Q>lJZuRFIGdfJi@A=K9s$xWVDt6#|U zu)kMYF`Daj^^dLev?+;%tK)6Yd8d)-39F0@&&k_2SxlYEtg^?rUH@htc!l?k$PqRb zJZ67;<99~vRrnNjZ@wUh9+lOgNw?f9<62h%1)IpFHdjVqdmvdv-4}g$avCdflp$33 za(Qzk#{(S+Nok3^Z(=X87_C!@H!pp!JApG{o5#khWJ!8JF*hLngQ~Mh_fgF0vKJx0 zxYApETsVarr-u_?E-rko&iV58=Il&b@a9nQ`pWl#&|9s~VWGEY-Xzl`>e)Sww~rXa=Jqg15)T(QYF#>&CwlU^kJwYMwXMou znYcMS7-;HPtCHpq`~`1WX6}<37olmHm!C*t?@T`{?CBU0^5S@_Te?1&nv%xr#yzZ=6Z{Gqpo16p4gq-lXEXTHq4(&OPfcAXDY$9>Wtp&uG7pcu#Fz zgpznv^g5r-H!jdBZSz<>l1%Sx3~LC9Q$sRYUOw62p}3Y0Oqw}}{yp-(KW0UCBLIJ%21rtTC3!yp>Dh_%$Qi%@{A+c9EH$f*%ofj%zO(_E{EmWiW zFcaVAj~)3H$0LdwZgSLITzU$9A96OP)rtstP2<0nS#%$POu0rlK<_@nPY{aO(%SZ+ zz!RF=&gF&EB=IsZEZlCuJC#zP^Mx^2nNeT{KXfO9MbsE^)J>bfx$3E1p;MH7qZqkz z>v{g=(wPMu6za9x>wQ0w+lB(^`qx?U`{TRKwzQn2enFw%R%$T_wq>y}1;v@onp}xr zO;=G3$)eaMn!bO3vN5tSB~mHrWSuXZTglva%&OlLWSB<8a2&d=iwnnkepo&WEztBB zgsLS72a9(kC>2>hp|f1tms>MWz41HF?S}X zAdoX2m0GMYhU!dE3fcF1%3*fFgyz1&PtXA^n6OdCS&eWe;n|k8&V6zBRY~1l)T=69 z!pFM%3fsCi^9@;6Dv@+ndvEbzGh~F+bY4>z9}=*bbZVuIh-?BPTM zhN4QWWBCDWK5`du(;zJAKb9;FZEgeplXJ=M6SK?U8ncAz(onE&Wo!x)fc>Ih> z&Hrvv+^8Qlms&4zWYR8Y>^(1VqD(gsJzU%K=Pkong6}~P0^C1&#wgs1iM**vbY{ua ze2B1*W>r-gImTVfSnkUiulh=Kn}{yxO`++WthH{e>tnQ_dRXANy~ber*7dRwVXvl(o#(l_?&VJXEA4&o7`)3IU_-eo~S&u_N1h_UR;2i7LKM|Knl zIiPB4^0OqG>2)vrpr@70Ut}3hb6Msfay9>qjS_ZgeRO<0VxEM*@Hr}@Gu>)TZm*78 z9d+ljDh=n9zA%T$u4LUMIV2h(y13VvKaGLUT1j(@foBAk0=Zc-? z>)95MMHc`W!L~drN8j$2lQK+dD#K1)k2#lw?azWN&@ao*Az5G#46J zBj$q&}Z%{z5GnkqI8QT9UO3$Z8N)E@uxFc zVi|+kgDI}t(rE*qHB==*^L*3!L+T5uliu6{AxGHq{bgWK3YwW3HG z8O-%^8sBS|8{0rR#N-!+zCit*em1m((gfPsDQ1L@pW*jy^!-nj-Jw z_`AQ^KktDSAy9R%=;#q9C>)S1YK`@dq%)%xxW*( zePua(>_dU_hrxhI6%xUT#P6_xU7*e~i1IM9c(>VlHDdMlely>X zN?Wd8VIjb?o~)?+Fu1=e8F@Q;J9M2a5hvZ}%1@;_yb|M3M`ry)wOT*wH<*zCVOZuj z)$(;_H8|dr_k^cS&gx(Pv&BWQCsvqpH8;UCelOEu3AXcX9f~V^Bn&6(!M3LB_`j3n zgO;jL$){@Ii{FbbH9k(4Ls$09NZte>c@@vs*{%!>?LxvI26ae1SLzjXMQeUcFqDvE zdk5sK&r?9=R1egi;rO^pD71(7f=pI*o}YlH4;5QlvS-`%GZj4$Qc=1s&>+Fk*fiCk;~pRvn5EN_7Bi8u`sIZ zKWVQwMrRFp^X@%xdDyf0>etPyQ6V^Av#i<^`-RsiC^pK`eLNrb9^`PHRkf(Bv*0h4 zTB8fT(;6rbaq}T@2@HIl+&93?)S!a2O5nwt-bdpi{0tzYd*F@=?ghtWp>|*`v=6md zuen$lZM4A|qDyJ!p4?}?@Stc}1@2&@UB89dN4>7i|kfk5#OtCrq2xK{7wh->3Qv_jTA)l3f5Q4dwPzBr9ZV^wykhD zu=H>ck@x0m7F>O}gAxx$r|}zTtjDsRDWwWqpUaxaHjkDLWKs65mlYN{{0s~uEjkSv zi67hxlTY2<(<$*?h`U~^Z7Ymvd@ikJbsu|dB*PkjVUXKov@a}$E}SQ41l%u}gf0|5 z2Y*rRuMPr3tgKp_(O(nxQ~O!)pOF$-1tOHEu2IF4U1kd?D^TT%rl0PV7OdlTTMf2u z^r;-dE7#*&3f(ghizSSbk;ZozrXm!Ca1%4^X<&R{Pm?r1=c^9#`#jwLs#ovql;hW#CR>+ zQjNn}KC=;#@(PFBqzt5n1XjKv?-G^%jE07WoCooNld626qlI%6^FO$pxj%<|o>6Zw z$`!HrXC=5G|81AuSZw2En~9?XhG+AlBOC_HPui4YFri0EO_R^ zSBdxiZjE(mh~W&bzpgLmTyn4ZcA3bC@fBslg|B<5a7cgcHC}dqS!3ST1lSTFrjL_q zzZs(xzwHeotjG)v);Ubi=>sj7qRh;i3iir0a`TmPgZ#FZ6)ZEgsRQEi6aZR6Jk;U`MPqQfkp|sPM@ZIr8B@&v!H=Wt}jnBd|O>ffm4ic!isU|0?(p)NCdmEOP_8&Y| zXZu87CzP9(d)%_Vkq%thgZlK3utT(}T0<)69w2sS31sc9;G7FG z@5iS&s(p{Ez;<~u>Kot@qbvUiFAwtJ)R`s5O!%kuI*U4L2S`h%JN{ovQV&t&6S*`M zD@q*sp1Sv4UyQjDLpN>;Hqh}*?*Ic&chXN0In`}l!(%=S{OikRtYj|D;WBH~_2qY( zh`t;fTFnEZ%(i(?3Ws!a)(FCewF53V7AZ%cWlbY9NR|1n>T>SlPd+?2CI2FO+BgH~ zoCoH%5FID$qelR<-Z2FnHf_{GdkUXsR&@pM;nf(QXrp0HKCzIyMCsG3c{iZ)9@juw zT)T4H?M9qvd=?9w!|Kf;EyZeETP*j*{L`yF$S!j0U}EKWA=@QTpIW=uAR**npHI2S z1-uNZRE9B$FQP9yxD;Dj9c=1t>!wq)^jKcDMXE#cK8uRz)t!L~Wo7n}j@{Y3kh+nx z_tDKY>Z(K+0rL!5*k|bVSDwYgXgZ-w>y?n`{C>(>{%zx&3im~Xp z;?Y)5-~cBR%pK~%Me@^rkjh~&k>Z(jI$fZm3|%p`!uN{DAr*dtu3areec?832Hu$Q zThZ>cR`XwuQYpc9_d-DtvMW>?>x54prl?&vFO8iVC4`#cc`Fn&B$2fZ^JMr-3PC%e zx7Uj+eSJ(hji)KNxCVn=wKdxG$QJx_7pi`ut!q+e&A{QFaNo~ zzVI_LBRLj~?H!Z~;WQBV{D*M;7z5>{J8h;Z?gf-?8&Gn*ka@^oQmnk2LkDcaNsDyEZTOdSgSJA8W?Tol`PN?z z>Ep$-mZYKVyX+O^)hEkLka;F$EMomj;bFi4<)N12eCo4GpclfgZ^Ec6j@>!Yg-&4l zd#AZd?i8Hee@Ns5WcV)n^mfI7a75eka5XXXieur8dx4Qof5TYXFFy47f0wVxuxWKw zRdHko$p@jLxc+fg3(2-jb>r}x{6ceg@&ERyzIoF{sIcR-*}~^a$W+#gg?;_1Qm3=B z@^!dpGbABOD%Ep|G{ov(!W%q)R|kXVWi}Z-vqE&EJe#|+oI1Cbi8F*URjX45N^@QQ zot!g_gaev6!g48(9&AgUouXIYpJTwF-Fz+D*X^|6oixtUE*7i+5oVnnBh$`)#*;#v0cQj=aNY# zZ+Gu_xfR5SG!J|PT`6dtW>*S*7)NhV&gqaj`a=MTs_6n`MiQq9lG1wBl)$R zY+5CE=E-!R+_UMZ z0HyqAsCgH5XTLi}j6%YSw}?uwbaJTohz;WHA95C@o}w%J z3SHNpGkc(iA1otA{H>{W#)ecI#M`PO*J4thm(Nd84pMvQc|!)g^#yFh8(mkTgsLdd z;a2L7K$^gCOGe!B;-O{XuU$Ao_#&HV4R0OxXW{;*;~(c-sk31u1;6<4$AGS(j%qiN z7W{c_E-6qyx`tW87M8QMt}_(R>hSvPvKswFGN!ZRo9F3AEI1M2IYYw$G)KvtH?(XY z`AERKlwOeEek^v;%6m~d&=j&LBlsG3)b}#!@BDh)5Jzj9Kamxm?Mod+xop?+#^cBe zvB@c^$qITp@mN_KKvDt`KxDz4H*4~4P;HhHmeI++OI6*>n4yB$a_TEV({h%!@cHW{ zd-K8diN$PY#lzOlsk`FT;hAgW`>6?U@0)XO(t0pdve_nR!NGCIYGY^h?MJ2PXXRpp zSxhhq8@$Zz&6j>jlM32_DeUC^k)5$?Um8CjOJF3SebeQyTu3Q55=QbvZ>#S++q)#^ zV|KtoPa$6=z;|}AZn?2?hgE}mY)r=wM~bY(x+17y;(%)Xvswut_qYV>Aagf{tjtb( za5|h5N&MmzrOz{h{;#ApPdttms{juTPo8AISnDP57!F=qN@k2?gjf)H{D$s{VeP)g zHJ9FI=n4Aw%UkIblJINaXSLMr5_t;tYacvaJxo?o^grd^!xSP;jf!@yjV-h)#Yo;K zjoi9pMg!r8Ix+nLYO_p+_ai8=mroi@h1$du`hs)^zK%v~VCJ;r^E-0(nHw(V9I(L0 zxKouf)6OqC+6uaJ98aHz>C{`_4!=1f|8hv6X**YarYvu~rB(Ja*K9uJ^8x~TY8E}= z`0Qk(r)28p7)M~O+N?@un9x?C_DxASDTQ_v->pm_gKu0f`EyOC>i($Aq zN!niviR!}hE?I|OY!s)YbNu8q(B4Qo_JfZOV$iv4^q!J-oJ#XTJ~WD(sE8RH zck`C1iTogKpm!%DKZxc(^w1wJr^6Xl`e))LoCemD?OBvjwnDdl59GdJnHL{e>ECzA zI%d~r;F_lnKG25PjxhW;%UFG$JNGNA&7&w6)DPNx8GY4WVsx5!XsP-Z)uk=FcK2T;#ZW5#4`Y1RkvX_wOM*@ZAty%EEweaf$(MKc@i+ z26=nLWYepR2Nw6sgwnA6(z#2_x%{~?+T9ZWGnlD;cw_(HcYKAT-FN9_bZ}B11UsX6 z^;fJQq%c((yT?@6?nJi%J$!+Gwx7{&)y_$sRoy4ZTR+C`ZpEDMfjf=dn|SS2k5mJ* z$n{R#f~hy+$ZY&ijLXUgf?RqkW2}J)Db2ZtYF}y-ix@ZMhZqU_)uDsP0$qoH zx9o{+FHl(=|NF`y0-8ZE+w7f0*sIPr!{X}}}IJ# zJ#48yV$Z=HRHDD@m2e%^Flb}FNm=sh+YPg)+%+o$E`o6@TQa5?!88odQ(yMO(%o{8 zM&Obec`5}^?(7Y3IYlJDqeTqZOe4>v<@XO7re|ftn#aM#>o5ZIl=^Sq?Sz;hVY+{564~o7d<7q9W91mjUt_P zBvA5|dW-n0+6_V%bvHY04cLFRy1%?y3we5}8IkmBMY?bOzHI^?3yLioz-2(`-Fwx~ zMVU2I`K~@Jx%u6S+$;g5^b#JQu!^<1Uj3bc_MHAyRk7~AI=ms zb1YA@03?joiQ{vRv!Axx#3uc+Kt@_>19?>V{*TTkEQzsjH(&GPaCL!3s>RPHd9@4s zbhE5Wca$eJmJ>hHhD?4MLWdJZ%;8qu^X~x>=NRV80~C0JC5PWn>U~%Q9pA|vNWqX0 zmOozhcemI_D0Y|Au~&JT+TbOP5B}%C(}Cz+0%kC2e2Rw>;sC?bR~YOG6^^XBwIfv| z`AUK8U#G0D!3<>ik{x+z zEv4;#0pu?yhgS0Dqh?AMmdd14d)Uz8&-lscO+fr+VGq=~>m*(8(*Wcd^s^bBLR2dr zQuGL3tAC5#o)?i2TuiCyRPV}Zpk&?p&k+cZx1II>qKLFB)rTHS2vR{DGSHwxmw&^BKZsFs%}Lk+wwTqZv@VMs*Mv6KDR0nY@Eak+tMg)JB9;5j_>#>{s_ zUNf$1_g6(B1}f#U5%Co>9nRRduHd1f`t}T^%(YcKd=Er-YWaF2@Lj0ipVUn%S`mFI>>si2YA$Z!!_4HoR2KDJ@R#((wQZhQx(5!ga^0 zsEfo$;Pf?hmYIRaT8>5u@8xU(*rho&38_{*HBYi2D&b7L&rdf7KfLS@i83D=-aKfo zo|O!O1JM(gDu_iDAGxZ}(}Vm#F^HJcq5rOF~%4!RKla#0DC`>@IP0|KR+_`m$DueEyGW1Dg6^YfB63;s;oP=EY`Uo?^S6eXB$dATk7A^^{mDNp|g9 zT;+uXsC&ZJcg)E@|JPXa39x>^$g%or7Vn$y@;0a(_A$csn(PPBQ6tYY3V)^`I+El| z(BYLf3*A$L|C5v8YJql*5|t;xE<=5*UH6Rt{4k;OXG>yQ&JouE7+gVKVEa&RZ-DGH z^l!nQO9X@Dh-LWuKU2imld}7AgkB6}nmb^9#4ibX^Wcd3So492ZPB-uXjRXUMSGSG;rX+#-QJ}8<V;W z{lgvX!2xEcl~XKozTZ>PP5-hJT!T=VeJ`Zs-`7!ggaU%6^aogG{*)fpx)YoQ_&43!o76`l-+EMw z9p#NCIj&cuqFkT(DZNUOkyVgze9=%o#h1iue9TLWibM8I%!_R!W%2qn;)`l_JCR*c z*IGIy zX(PZE7GmMF{qh=rSWf0J(H27Xh1Y|Ehv(?s=$Qznf}Hnm;!{0{SG6hP%@|)qMR0nS zT7BAqgNDlhFn99SZasu6?en8u{f?ll9^`+?=3TC@z=`Yandi`XAQ`V-1|`TPYRB(d7Yo05I=gc=2}5f;j+2J6hBX>Cx)81K zLK$8`lBfF0-G=|kNv=54M$@}f8jLW^Q2Nf@iBNqT(doVA{TcPt)hdqhN=7mfJ9(GF z_YM2Pj{~anFppd$keHA|;%@ler@x<&(3o}|ydBMPtkzeAkqCaIep`KezH%Kd-0XVW zgpUCS7BlgL8J9hWn06?yQ4-{AZw`3P0E;+gOwqwXhw7phfuK)bs&|LS0=rupe#SV6 zMJez5G9A5pdF81chj0aWwJ0cs> z5Savk4d!a>qtO@YJOvoma7Ry;J22?rf3D6%Y?ydBgThFekKd#Ax$a(^$RQASo-}!> z_X&N~mfPI+=oAAep~Cgf+xw81PuYJ&`B*#`t8ec`IdjjXpuniSHx`Xc zHhx^5kz14=CE+}1iB`p_ei#=Ld~>}JsQn_rX=8YfjB*3GA)^sJa736S*@r2OoM&_| zd!eL5eU_Z-qHd*!Xje`g^wNt#CE7jbfwC-t3;O)Rv0kCH9d zu+}V@u?WAmKB@p}QTHK8PnsojqU#p=izJ>+zHPn7WOT6&O|O2pq@8BOau^8p!Xb&a z&cST#w@TMINy(~mcfil6d1lkUZsvy0YqO z7z-}eQsejbPwC6m?&usKEt9d43(kQf2(VeKT`0ov$!F{Si_qmDid4@(Dv;US_(3z~ zcO7`+@!?+{gnjQZ>e#9TLS*!p?wSs;-y{N<3@WS2`lK~iSlghz8pY$PgoL9uz{yu& zE(DiT6kc2PtCo!aa$Bx3zp8e(?}7hJ$nD_qDZd?C9~p##XMZG{+0M8PTe?MJ;dE=p zdng=O0W{HybsOg=h z32Ith`m!UmEtm`U)x=)6=rvg_<3N1x)f_Leju zV25HO)#rFjLK6Vr;*iVHqgt^xV|n}%2G$3Sme zN3RuBVv8pjh_lAieSDh5x?>Us_v=d?^oQ<+WcWg!Lr0VTNtE$ z#*K&J3%tA2CglYa#c$o~JEdawfOO9Mpr-SNGz_K$)JGkMr}nSVPs@VtX}>b}vfR#= zPetzkaEf#boE?@GsEQ*S)&}*Ed3E!2VSZW67;#&2N7D?-PvhFUOlA^b||}(QmDqGqbXS zNO>n4P9_GV5Rw0Wku6NZEAT&lRo_mqpa0VXk*3I=+6BxFKNngkfHx1en&cQ2!Mb*S7!7XKiQ|DQC6{NJ~`gddzAt^jj5_4daqV84C1H-8E4Nudf-<)Nks zWr)lhtLeFV*If#{UqHpr8bBZ;d(3Xj$cbEcCJT7v>fquL7}R^skvUNCOq6?QARnU9 zr3kv`d!;l-$hl4}8z5barf&S0N1c00j6cw|^(19^uMu+BJ}}fn1<+iPPW8!9ncep3 zE>&b_im)efoSkksT)50}0NAbbf;2E?yBW^*MTR8id@+Evu;At2{vE1Sy@t^$lQ=zy zFF@|>78^<)6*^8^;{}xO|T^!|g&8bgH}iFdNMjv!&~i2@K8XeDwjz^q(## zvimULL;2w_Tjxo4$Z5R1e71*yfDfujqqg@P5`~C_z3!BG!}o~-z~>6kAfn|+kkmim zgWMi2=}(3}BEJN@t-v7IpQIhX|8PLtikMU55W$ulwF7+FO}+5-!Ei}ZEHoi%F202L zuM1Mhz&~5U;g8TL)bADR4k0k8_}Kf3`&wQ~&56l5V#M!^Jc3ad0i~XN){t5ygZ(NZ zwFY^z6I-uNm1@nf6-s!FgxbEkUXkGF;dR!?W&kP-a0!AN%vlT1FSZM;H#BbT&z^|g zW3QK`NrqP9G!%1*Jhq3=eCcTP`t5;#E9rAR6M_I27Y5UF((+0)eO=c3`nA(UbdC~_ z4cey%0Mm52uYGq0HP(2N;irWa;7fvVS zaE3^Hm(|#ymiYZBicH~so7juD)OK1n{Lkr=<&pTL+Hdnyx$Ht>nNr!!$xizC6PZna zv#Zk(Ij``Sov5?CPE*uCfDhE_p#PGDy6(;ERXKzj zHvzldpU_{%I%~RdYdj;vZ%yciEU$ijQn>)Y@8Aq1r6`nQ8lT=ek-!YmprQ3u*`hRZ zD?%6E2TH#5*-WY2)~&q8c@%2r;U2~rG~{&wZ`1g`;&S9^0!7*Vl_P^=A`WLcdQtz93Y6lvF|pjTgJ zZ%1~Sj7H?OBnx<_zr~aUJV4j`w#+;`Y9wlF+|O2GWFzK-8MyopUk0ozV{-VQz4&C? zv@7dL$Ppi2`u-PRDe&xXuzB7wRbI={VsQF<5>%NOUde*i?XV(w1^REqryC>W0S#W) zv`At%72l-(AYPHv&@rMQTQ5xt+ihSH3;;eYj}BMHyY7wc+d{DrWw&CPHQ(*w?+3f0!yS+_Z|9%zeyox+_rB=)N@_P%U+Dgd zR%IB_G!Yp3@i>g1o=_;gBkdK}=m|DTvkd5&GGix)1y&h428ELPfs(~hYta8E1EKUs zA)2FTQ5dRK8@Bh?L^jz+g!2K0FSO4;x$|e4pqHvTadFS-8v|f(ANBj|ZRjzn;W1j~ znH>XgYpY=04U>W`I!T5x7xTFse)? z2^W*6RE_ZH#be}%NMyA@pY~GKgrU%7nO2(7@so=*ws+*7^YWq3O9q~)rTF-Uj%Myr!VkltAHDf#4}be-yKkRH;qkXW;$XJZN_nP1#^OVfshra$Q7R~4-F~X#M@3uYqZIwvJ|HD-KUdv zo;j%DWIr^&K1cr~Fj@Km=l%PGR~ao`l=L_~qBFAlrcJx!HH)-uI!4_x^_V)O>bd_WiZd!lRoS?@-TPNjDy^1Qouo z*(CTQlLHvHVp~9|OHC@m&=-_YC35nEIp1fEoxJEhOL(Y@77m7ya3PKYRdAk=-XRYh z>-q~CubTA!lHgl>cVoLHGA3TM?Edc`a`@ww+VJR~kmDAc)wTF2>$&#@ZD;HVuf8ls zON*w!;~U>|@s(JTW;=@@>I9D3CjyLV9tSiMm@C7~6^gH8>PF`voR^WQZ2p3;6cpsl zL9+%9y5aPX8dNq^fFv@{_ks~asI>e}dCJN6R#>Wy0uY88m#RD+P`BW37;rJXryXnz zSfvtb7*U4CnGX^=Mcs}$CGO=tVy`h5?!p`-3oa{JHLm*c9SzQI#j<_Fr;3i|zb_k3 zyhtM#=)^P@TaSz$j8MK;TT;MIjutQXhYvHAU(Q5$Qg2#DtEL?M*XviPl}59NZI;;T zK-JG=0R%gl7(4km>A(sdeo_ef$R~Es;|+Ex^nzbpNX$lEHN}rw3+x(=g)vFV@FoZ~ zpU3gUj(TaXFSQ5hIukz1MwoGsqmppj29*A)iTIkwNFV}hNvXMWiIZIp>YNL>;KN#W zAH&*xIo&%~BRQRrmD-i+Pam4NvKdV>WbbbArL&Qv9wf}N;lkR(l<9vzYF{@MuJe`U zkqS<-Mxw>mmHm&_g23&g&19}?;V>F`0 zUsg5m05ozEO1d|!mR*U*h>EJM06nsvWo>=MtWCm^fCUzx(z>%8xmYrjfHN3nPj>+N zKWQGewXsf`YSHJb5c=feJ1OqJr5{NX*`MDX$`UY4Dby>)A%xenxeI*i4K#U-$q}# z^V5W%@qSXv^_wMd(0X0)Dj+W8XVI3^<+HM8iM{y%!CX8cKSRllSF|TAy_RVYoSq{_ zL?-h9+?(|H@^sRgVMi8vW0HFo%n^RlSn_J?Hoy`pi9*~mNt{z}{6ZfW1urYqsifgn zf+4+v3#gs{{3wBb=M55SLix->FdXZrq?;F^0u-Y%x9q(=2m6#)XWvb?%AoFBv-3F0LT^=P$V%cBS2W>t` znSfRMVhw%^pgkyDCJp@pfWRzd>xEj!i9L*3cRi2O$Ybx>S_uZyV-nt9T0&G~^mW__ z9MFtzv0yDH#*D8FOo~~8lis=s*C>oJHNiE2g=Wgml{zoG0qq;pDFS22>lRjN7S?}) zT!It5+(3VM)#E(*Zw+n~a&}l&c=-tkV(+Q^^B%mlk4w>qXP}1>kgDp%^Pufq;SHbq zpm9?}NS5u-H#Kajq}BVg%zQLsDe%C4opt7`=NI2n0bLp8ORtFcu({_Dly`QdyX(Y< zQFqNBqh6H4e%E-S0;89{=#x!0jhDvF!WRt*Bmx%FSx+^ee;BtdobRAQMh@8WygG_- zJ&e-E-Xa3Yj=5yr7HyK<`_EIMI{rmc1uT;4hh2&8Z;&b{sD-Vk#jA!KDM5>VJ~7 z8iA%_s2fA`r)G;8o`q9te^t=eWQF{N5C%`U<3MV503OZuny;}}b-$;SBB)+aoM6By zL2$OcH&@?d;%7K|sgDkRVZik8)y-oB=cWb*Q^HDgPBeo4taMkweJ7dengD>R`Fjbu z4qxzG?_;ohsL$g@%fE)t@S0&Ji8(hCrmW{ooU>6)A zD$u1-lR9g0pYH>!gFQ2FXpe6n3@2p%;LY=E9LfFU_?bbCS9Z;Ifwtc1RjT0I3|WXe z_EsqN7S(Gs80Z<06^T9sH^Hfp*bBc%6ECfwZkyGO7sjI+ zB{RIx(MiCHxoiwScMLq-8qOF5G>6CWrmcCCWjQP?mDlWI$Gr>*!~92Zbk3mo6fWFI zirqSiKIa%TW~9q-o8P4WX}dp|oQ3%C;%oujXzN@*h- z>PJSItJfBB&eaL;IJ6pFBsPBh1d>GRK$mG(E}3;s9N`C#VKeI+U*X3$mu1Zh&w^Zk zpmPWky2SskvRU||`ht*X1pJb^``XInm zO{pR-`0cBNp;X}d(rL0{evUnHqof(nUutaY8%4spbKl?Q$U~^((P}@Xo=Lq8Crvp?6(| zf)8TlTw2~J$aP9l(`HG&?hGD#W|&<{1$tx*y%dburLyWD6wlNE{y|iLNQrcJgVG`0 zol19upma#LbayODx>@9z?!CYJ{>~Wpj5F>(_dgkf;d)u`oX`B!^GqI(seF+w(cM#b z0uH{@`qJk=huZ53hK1sY_12^USN-(#puy@J9lGIl{Ojc2w~wp@l)Ywpp=~q~ZnbW} z2CaHPIzSV1{3_&siw=ei+!Ty3zCcexVMk1wq$Q*n?Ah>>%43U$Jn^#*$gQloxP)gi z!3hyXU%E1&+C1aax^8y|Yzl~C^`*`wtiRhmR6ar}d|o^gnU^~Sz4Eyb+C0M322RFQ1pUAmfUYg&L7K((R;;xu&h0kME^eXj2_MA~Qd735tPVP{ z{MW?qtsfg>s!s1Z^R2qGy@OH82Dj0?WwdGeO(-jLRUZ|5jD{HcNGn>_E4+)8+uskTm%k7-XF9x}RH>tN3*i zp1vD~MJrG{NG2MN76zh1vKZu-E=%IyI(ig!@ePtv=Wv`nln*~8g)V98^w%B)D zHD@>k!WrUeTPc&}y54L80seC}g1e;sH}&ykjQY^f?sREm7%2%qvgh1#4vi>3JGYX2 zOd97--^h2nq|e^C534NvL%|;? z?xwV21kFNC*1V8ly3^=d?;&_mgqWQ=y%LS6LdxbB>VKp)2TFvP$w#6#h@)%5A(GXuA@-SPhN+{8;+487!{!Rj= zNDKck?lVT~z&W_(uEKswuIqLF`IFVcM)sOa(#ZzrV;>;13B<*q(7mj)_Td_Qht@Tmgv6`+kFV20^VQ=T3q-E+7BS2YE1z+~P`%y6`*3~Kfjywxl@aks> zWpJ2a`G*#QZ>S+O}*_G8uREPEy z_G@k>XtcQMa<9inaYCdwGnWe#e}i{}T-6(dZO)ym^VKxTr3)+&{~)eepjcl^Cu54p z=Fnnnp|4|bwdRZ@-0_vLK;DWp+T~PEhr*==pK+Ygz^NadV{Q7GG<-T_bT=C#C|T5*MwK#Kx3^SfDYoB;B=hb!X51ozh6o9<)ttg%qEq8%u9^Wd(nq_!WWb5 zf8HiLfXvQ%Fw3*0_r89#Qvp6v_9dgv0E`Rjf5}ISe1nE;q^=80D`Q=~=@Q$?epZt( z)ZU@4WXAJ4#g`(24n!~BMA`aFped}-8Td{*#lwDqG=T=a4RPg*)<8K;a|RW1Nb{TK zUl!JTuG|zay(kb$yLIXJs#?(KH4_q-T2pzDBXen1S!N~UT2yTygF#tpTrx#v4bJ!( zcD{B7J3{BFQHq)D$I+DD7SCKo944Nx<@T(QUVlZDuJo4uB2+5qAwGKc=x(J-qgcx^ zsk$Xl{TaznrZVJ86^h?VEPT;T$y&hgaTUFk>Ak0$7ZgGx|5cvu(=)Lrhu)0d4ms(a z7HHH`41CtH340i!1xzA+I0#)iwv)62TX8U&$|}NVswy%9qfEUCHRI%ClY@fP3K?QM zV=s7vEHX_7o8MDPCRItk#`Ii&8R^KRC5fnLdlqrfKKvm{_<0lRKg?)h4d4R(o$u?w z!=4?&P6%k2S644=OtX2fr1W^c&p8df7)|!q(>rc{yGxyXC!3FCrZ(Llifh{ z9~Sk`$hhJ!Yin;#9^ZVPzw8DOvYTl@wZZw}9t_Z$eA6u-?RR$`$fo<*<+Zdy@W2sWvvwe1cA9J$bhtH>M;NTJ;voysd}-%)66_KF2Yn zk=+~1QE(cnPiu54QGJ>T;x}3jK>n41CJ=u2EJ!h>1SyCZ4j-o7Dv$MhO=AjHx()Ds z3V7dZ-Mla}M%XXnqM{G>B+oh!oO1%RV5N6m3qviH&4(jG2S#X2-Pt7~q_|esh#HEYh&CeSmK=$*~K0NIP9-%Qh4hBlt z?k&~x=rxue*!$Y4I~z(^d9=4LCt3KQ&J9@;g4K}Vbsc`KzVE&XC-~1qKG!D<_u%B# zO8kX{bIK~%MZDbbIYlS}{(ZWR&Z39G3UyqS?{xL9mzqvirthzJ_Zt~7WS(=2tJE%&fw3j_rhVZ-4zEPwKB_117SP!Dxd@Z_U-FhC=!w+L7H!A=%-`RiG!}n_(x>=W9K2JR2h7gFFl%wxIU1fQ^#=I6iv87KkV5xQ zk$s{dns?X}BJX(Pn3M)3h7F(OJ>Z@yJ~5xrgpZZP{`!NER4uQ{BSc*IVdkCtvCWQA z(HHdWT%%-KjpMU*8ilK(3$>g+3rAv&P6cz9uSj61*$-zn>jKeNz9S;~C(_w_R`Qu1 z5ow08qZw=xSR3)BIFt!jToPI1qXBmQfIvSCEZUjlx?)b3=9G!f*J$D{V#Ea;ZTeP@Ks@AG$XYy_!>Z1$y3*nP~V< z`-Z6J5&d9{Z_2yVmpy;ktZxEPPrJFk*5mg{-PYLtAQdTWk94MTJGqG6#F0uQQ7ao9 zl4uLfwZLq`rk2ZN1N&N?bs3CJ^46_!xX-4l>I%`D?VprUEB(W#$71siXnRUbIt{+` zBoU$Aoz91gw&!!tLF_<@YK+M>it#N&>c=Dw$TAjzXk5`uA?v#HK1!e<)OISg>U;6k zEB4JnfTYWsJf?tz4bJzqKda$h4;}9@_RgIXx;*rQUT-FxGOX|VW-MF)_hJ`>sYh> zL2G{<15}p0Olh3o!NARAd!4oEuZ+M3x!k36^8yG>7K=c_uG#FU|tc{q~sKG7Lf)#=441K$)CMXJOiMj>nv5TqE3 zPixG27$G7Q>wuReD=ekJ=CUS1$W-tqn+nb@G!ewh;(G)z>RVYva(A3qrA!6!PGfWM z(5Is>cAUgfNyO*L67js}8n`fa&lTy3s(uDuB>rrJ9r=Hw* zkgtq&eZU~Rj+3=b8w^@ad23CL&!31EO91S_8JoX29QTyxa`U|&biR7anSgAT*Sh6v8`8Rvox5tI#DRMV@Fi%N($HLINjkY5BgJqVrl0X6KG zL!$Bu=EiAXD#=Y`TAr5uz1a%D(=+c}+vGiTbNTuz+cP_5nBe=epiY&VAEN*Wkeovee^)AU8 zRcq=dEgb9XxJx*WU4z^{4W*9(^ zElq!GlT}!S@}it7zL{l`-^j3AqckjwEkc~5I&@~^g<-O@hS;m$$%akrpoSwgM_9CZ z2+up9j^ot*KEGa+-$Y1jJdfq#(5|@fiZjG0B*#Y^3_2KvSIO~Iqt0Q=V$eP!znIH* z3D2ps$zxU~1ulz(XXj~LW11}f_A3XnL=@sdeEYZ3Y(*RYiCq*~=!u6j`oULTZYG@E zF7$c02;VZ&Gl}a-%fkYAlYr;p)A00OEC|PYNptlPZ?X*p2MuJXdF7I1r zvO>u(qRkveHb%0zM(4v=afifV4DPR(y8cGGo_7&25!F{19C$!=2ws5XR2&`o!wX{< zs+`pM5|5MqCfSmN>d{b7R}n|Wlo0CS;G4#2r^AQxs-|S2wvS)W+dr zgt{F(Yg2yJr)A@^_9udn@7+Z`pni%v`SG0-K|DVFarf{4`23K!0=eDBxP;vV@MZ+u z&YtBg1OF@-4=TiZ6latq9|2eCv6-(AqsU}kWlyc|z>0ZE^(Fij-^)z;GdsFd5K<_$ z-ij0@HhyOGG*e)!1HbcEl075QqKlJr^Oa$@6(E`8`%nNT)e`6&oC55u7aFC|d3EDQ39!G~bE1L-0!*l%Q75A2uK!CGPSt!^m+3qee-Y*vi@-_`IP>vqXRTKglIW zS$(}^89@(P-~b5_S$18}iO;ml%CaENCnjD2teR0;8gJW=v6cl;&6^-Ur@<}m} z341lc#0u9ZA4AbFi=#br+1P#WOnd_iD zWL!ptGKalaWz9pKqKLw>hJ&2Yo`%zQJ}eeC+fJ%)nK_LAA)U$67=g!-WKWmBRlGu{ z5n-O5&!~T&xf+hA2L0TDXIAUUlJ8J}rtz}iNrxzhSKd>zJmVD7rKXBgH@q zUys-A=WchZk5AM}T(}i&B**aT%jnHB_y4A2zp`1=h*&YnMSHeuO(9AKipUBoDk1R3 z{djS$tD~3Mr}BvXPu0|1@cQRtCFm!acYw@NnJyUYsLHbJCvdU_6LDGx{Ho0T#L?qY zo~&oqdXGgR%d#L_8&*-|)@r;zEj=3Tb4%&%g-R4dE>G_|X0#oo#BK6~oMu7VtC&iW z$r1%qJoU^0f~%>ZJG!-I8W(Fg*Oi(1DZJ$;mI(8%pJ-YkB?d$kgS@Xa?3-PC{mN+>N&EmTBKzYWg;ZJI zugN$s-Rxl7y4>PmDxcHtWbI*V8%PxIp)4)uitTzo)UM{2%|CWNOshR|PEZA7MuWw^ zc}_-_PT9^?0Uu{Msf?@`@RiiCpFmm70FinMrqwIZAH7}&PGkQdV*ZId35eH_?wR|J zb9U|FEf}J_H_54#{@-wIG@KgKyk6hohB?Ix7G8zMaJ~yO|6>Xi!Cpf}hXpXX_j^)w zoOWOYF}umFt-~$oZVDoSo@87@+Eu?Rt}|;Q9ST0umG%XLNPh0mh$+P~h7fs;CG+e5 zmQpr-QRlY!l$Mc`X*KOBM7RM>ycy8(#c+s%QHAV`QmT7hha*h=h1 z$(-}`hmwRCHqeLH;QL0cqDb!h-qp@lB@n8&L65;(^{6+<1?+4+cf3-Vp4jyFZ~^st z&;=3&yn;zmbEmy$=&>86zV4TY1D51YFnpZetu6tf4^9|KPC#`B1C~La7V^@~4Cv=t z(-&_+tHUneO2vLl)ARGCu%5pT7Q-kyA8{o}U83@-+0w9dfz20rs<~$gv?=bf`*Gv_VT#6VmoLC~pg&Btn)#^;P4EIGbibAk^geaL(XJ1^=?G7L zJ^WeioHyX6uI%)*kOKV_{*n|lOj?_jK+{s}jt;>X(A&&#WG~SDgKSF@7MWmub^O!q z;_lu|MYgA0;Nr<4jonotD}WYpL{Sv4d%|h7B9B+Ok(kSXa$msyfyEq#0>ET zFd&EYos*%#0zQ*Er)gU@7>*iSiw07YVUB`ESB2n{f$}Gp!V|P=B3rRs=i~T=stYmh zxw3FayEjN=P0XNxR;dQ>hqiKowkm6C6GEBL0S^5!mHSwitHMe^lAP3;dV@#TlX+G> zj^ftAliaafbMU%>AJ+&|vQw1fiG~ccH z+YW{c!i`A+ty)v^Q~vMapw}XNkfGebixgdOAO01?OH|d#XKcw$yQ4VghU3%+h^f&*)C;s zy~lj2vShzN{5@@4k%#Y;b^DBlifuUDq1 zbKVxex)0LFQkWz2Zxf&3s5H==hvDO}dS38bP*fx~ltz3PD>CDdGm)lzjZ5&e=R6cn zfacof=VN$f7C!-bu2{`c$jfgEeP%n_tS z_*ZabNu%jgz`*rKgmgSkF`cd0=jCKiyJ`3Ao@{m-?;HA#gBZA>J$?(kh9rKtCPYnslh`7_cQk2X+k za@So$(x}zwrEMWuPhf&Bz$tUVbNc{plF-DNz6^RGJ{{m1E&TZ1;E)6d7k5v)Ez`&0 z0l~t2L6r`I0*S|A!VZZ|$!e?&HDWOvO>bzEFG=Vm z*C)3NLHojnpIyb|;gEEnn70e74}^|MD}@hy$iS=+a~jjv3!rt?JpH}()d3#}-BKbx zv?ipN5dP@%cgecKZbDQW@fXNyn}P;>;T&3>elapeuJ%EdOSQM-TwFhogs^OpG8QD( z2DTOQn>L)zUa>quw@Wf-^$;x=^1E9p7@F!lCQG&+dqABXh4QlHgVP8G~BAD!ZJpG7UV zo+-t(?FkCpDA$%iZN ze;HmZ!4jd;&_Js|%%IiTy4Wb!w^s<9=(6bg=u9cKR&l>43DS(8=#w>it#20e;*Xd< zlK;~2adl~xEqqsQpQ6Qz;@(-y=UOgm?XGMmP{& zhDWVfKkr?FvRsRf86qq1b71b*XLKEJ)xhhD7nFwf{%q7^HuE_35)=#?o{6HsC7&FHNeoeOp0HjIXbiTh;*su7+P+xbRQ?cDsX-kw^0*wf9yo>&EUWM% zHi|l-%q+w<7V{ULZMa&{s6w)}jOJ>HFtkB=ZBM0#rng7CV|P*aqtQHK8b;rQ#8{AT zQ{FrapK}vUhT~yOT!E1>SV%XtaV+Kn3liGInW8FeFy$NDZ_QlwRQapitQhM9?5^n@ z!L4?!rs=E#)?VG4O=aO^CjrDAGWMEkM8d zK7)y!ep|NrMrAZaPKvu1Qx;tM8;PJh9P_tM1F>l^t9Cm{Uevil^pPt4WN+b6rai4~d>>@+p1@`qq_7Gj`K=yB%aUzV z%Hq&6CbX+2wD`NrAfOMYVDBpIG2>w*|jcTt!Be@$JUsP>w!9S`{xB zrtG-9*DRH%RMhYLzkLWFtVFv}Lq1$V$&RQ5OSq0>4%|00C@^lF7$2+AQKIjX>&T3h za;H+H5v6l?>wd|6xH@zJvNW9Rmpl&DVzV+2Yo)(E8a^eZ+3s>U*&q|}Fy?DmZ+ZD! zh#iY*qiSkK!K#F@f>MKOjn9N{%l6dWhnhYuG3iv5 zI^9v1kKPab^XI~-;g1msRWD0)+#rw7cWHM z{ltju1a$R|kL=Yd)FqBNZI&L}OIc6Up|mXC7Ibwgh9Qb|b%=B0JJZO`%IVPes)7q> z9#2Bk8lMwF4Z!6yGD#JCd}f8ZLbmNi%;dQ>#+vt+4XYXdtdtvAoZ%_TmP8*76e8k% zneOR~yBDG$yHxvYq(qTD&Ld{r0K7Vyp(Z$5O6`u2e`|~(9~|D%gsN&G#4WE{wt>_t z`TXSb-kiuwSi-Yb6xxeDKD&+Lg~WZ2Xa2HlrwNyZ2jh8sg|CO^&WY?PP+*J|g7->D z9}i}#8+F$4Ky`{0R?2-SSwWb5ED`Z~W8w2|fQOuB^^a>0twww0bQL?Dh983tP1ZL< z4&C{6ny1b}Ep&>bO^fvA4r=XB#LO1y1p4bs{A@UeJ) z|B8z9*g<30msOJf11lQWAD*(FxBn3sMeO&0Px^`j`qs*APxcMG$@9(*TMEKlmU^s8 z?1Jbe+_GuiWMAKKzW0O9){79pjJ*XeoG?%LA62~g3n@h#!U_>Uy5#3 z6jUp3vFXT((tJ}b|c55OX$h97O|Db4w!XQ8=RPBjQDwC`F>G(9KJ#A;uC{FwX= zy!EAxI_xYNj16!=XIoXTo;%OZHZ9fpG4yNr(MXrNN1GE#BjxbdMk_Ilg~u8v(z7lB zNqWrgJ0~CZ`Mg3sR4pb1-mCDtX$2>EeBoyzuk?yb1PkX|N=>Fjg_kGt^Mryl1W#mI z_}}mK?EuNio##^=8ZpssnxRMq*~oO(A0`5grbQo$|M}_*KgB4NS$+LyS^fV~fc}pk zau9bIbdu0eQ^8kmi><@s6p?wc_}|)i14|kCwZrld_`I3lbz_D@croy|#?N!7=MROh zE>o<|9(Sd1q%)>NMeRuUb0Q-?J`Y$jz^5-)dvuHIbi%5SFF3fuDwcDN*YSoT=H93j zjs7@n1>b7F(+h9wJ7ml);pwA?Z?o>>)4Ruu16!y`rxt=)pssqSEKn{F|58cksQK*Y zmVVkXcMNJv4Y%i0^vKZkRkwYKvJZFNVMz>*;7Q8nzZZ!wI=eR?%UgjOMNPMY z=oc=G>iXpWc?jKrep34!4UTf%*NzVEIt5W?$I4y5C^Agbo}#f;>CI=ZzP9V)meftI zw-OstNGNu_xi0Hf7qGn-er!Lnna51IncJsaZ(%d{*h=+4BhJx)^Q4W@(sz{IWXgQz zr`{oS48exA{<30z8R-iy^l*@NfZEbu&Rz~;xYugFo-#rpsZgfe8r<) zxAB~gv5o;j*=ui5-5ib0>2MYeu-QM~nm_TVbJ?yhmK!F4Ev4cgYs#d<#>eqnW94vi zuX$%T52jqC^3b$E3E^~NAoRQ+!&5#UH1kQext;ylV%V?QXPk$> zM+-%GcKi(A!~_cipL{vd8g6taGx-e&)E9?~f(~xz=u8Z}l22Cttg82DY#xsN{bSD6 zPdF?_^TAd$&~`rq7ld(=?2K)^akv=>wrq9sJ6Lm{LV&nYs+C|VM{asfcq$BzeK!~sZg*}V&g;|jrl%aM6lQ3o|7AsQ z|2jg|a#Hh`J$8@2a`vNeA(?ciwQ{)A>6Z0LYJK?ossh);d%xrPQaZnk8fY5N7w?pl z8ehmvhvqHgGb1X1JkJK7(mdYW0EMB^lNMUuRJ17TLg2F>DPO zXSGM!SQ6a#4~u;!M5TMIT<<^qcS6eT#DBl3(fiAT<=Vg%59hHp5LJLfhR2LQ zf?S(UZ>vdpLH{dQhq)mWzw4i~^804{b!suu_N)wgRlo|!5m&mXD21UP6B=y5_)-YY3{h4>PO~}GOSGCUnxXQKWq8SybSze{A;>O? z+)v739r*m8V6@OTbSmXK;Dtih*6Z2+$VEgV`M`vOV}}Lm-?h}*E?>hhb*ik87zLf$ zMN!`N1##L8ouX~8U&)+gsrNbNcXjhXC7{HjZaWKSNG~a1?m(Pc+*!+$nd${lP$>b$ z6B~YiDYF4kPlHzn&4;!Q<7|#RwMCGajB3 zMKsw!Pm&)ar#31cUm4bozE`TIULudt#xB)qgf0=iHVLa)qQrQ2d|NzGDC3{;MvaD9 z=T*(%Cm0XSheoeB-QtOr_#jh~HAw{Va1>G&%I~SGH6Kc}qk82uYBuPv0YH6z{qn@v#CWSz$8WVzYGvb%n&qVJLZPcAdne`c?sSEpctlt#-a1P! z@)B%rzV?tC{e%_t0_@Kn_%;J*!RNJ>yDoBaPQ)*}2I2MS)Q`pt2Gd6>bmH&=#E?l2 z`<$<~SzjiVmic=t}QhF~H2*2AuzePsR6%&>3 z@ZKA1F4&!YsQX*@2Lw(K(!rrJSvoCA%E=2p{kgBWtZ4U>AgJf{#4!r^8Fice%g*T6 zA6u}w;n*m@>@^Wkfd_p?wUx$fIuc`YSe64F>)0($6 zp-Uza4!=yaT`5)Ile_C0A9~l}YeH2ZxuPq$k8_gs6X_MG5<8NJ-_3Ny|e`(X;!R49zFIy6zA_7apkaKdZ2u?g+T%x%QfcHV&ZYXSb!7i zJg?AdzNR~wEMFEaPk6BSe&3$=eOqrG&l<$8%&0QJt3UOA>4dvi8FP5NPQy6oh6Z11 z@l4_7t2SvC?>w`Z2#;TG@3C_?wf{Z|_=ifd zx6XfvPK!>1LA7+=^%giN{tq8~{@GFQnNkcjBs2M#$Bm z`oSp36?^_)G+|VF#Dmw_@%e51-#->F7BBAi#f0?2e<2^G?pbi6_MB^;g2i-ZI?d7g z$BREVcwv!Y&d+gfvOG3mJdWBOg2v#*9UqSW0);upPsHU-BS}#LSXTe0X@C&*s}?ha zn_=GK$(ch~b9pL=u>tkcXr^Y2RZ_x^Rk~NJv>4g8&*=#m9R4`*Q?)U4(xR)AYEVw| z{STej=(%!HX|oL?1#t!PJv7wrQ`W8Xt~+SWgj^LL8g3n6b@WYIHX zYshj`Zz4AYih(pFdRtuGJHW8)D$jn{pS^d0BP_#?ZG|*-Eci(<&Hc12P=GjDc+2!8E z+rmIcYQ7iNOI6jWZIl(_zgu-S*Qmhx^c1L$=>Z-Q-)f6iR_g&cZ}AHhmk;v^1`Nbl ztu4Jjy?S+FBvTQp-O!B|j?RgHK7qg!ExTriwdteNI;g58 zjBtTV+B&*WU()))nWN-?yp|054?`ixUj?#$7ZYUU>TSL0@t>(FJl|Phbn6}jtVSY| z1QY&6ooBtx5ZvZr_uX!@sw(LNAQ5VRQIrRu5#-$9qCZotXRo&gWxx!S*G6j$#8mJ2 zg}*#GHR+_W>7Pf&3?vFa(GO z{iOPE0{75%HZ&FNTrNO18>j;nUUAq654RvXeyA{C-=F`f%2ys>8XeWTUFYIaZ9VS{ zE{ps2qb^+g&fPoIBklGU-^hr=YN}rv$}e~;931@l=-hI$WgW;=0M!se2st@;KlELy z{tw3OMXOt6n{+*^%vYK=8lo1d{ZN?&P!L$dk2uZzA80Tc-Ov66AtKLzt37@yoc@{6 z4&8@aY!Gl!0gDMF!S@kAR4rZK$vx^;C$0kv7ahWr?^ydte)R#1C-d-;RNORRqZSj^ zA1gH&ZFPUSMQBFvJiI#A{CS@EOzZLKBl1_rHO>!hB9A42SV4I3I``~wJVU5_O@r-m zVQf*ElEsIAv=oOpkNnwmyW+e5ezkyd7F_6Z{(nElQ!qFgKY4I2g>gLd~KB1!y>7MgWK&@UkcaIe3p_YpC=x?JNKBoG+(htrCa$D%>t%#flQjEz(m0fc?L@j-8H9Gz~aF{+fy zX6Q$!QqjHQKL^HBRyN`4o=c{T**GeMCJqI>im&|;m%!7@0N8pat?5|Y&9r1tG=9`! z#vJr=?>;Xn%EsgRsQZ|)&-9Yf6}~q*iLE(&FtCY}lsfax!^HL?CW8HlAq)KGdU@J4 zKQ6S`_89&Y9R+=xZ)LCkl&566bh&QU>)P=8yq10718hb_FiW%6*6}crLD%(qdYM{W z^uEGia(CKx=Cx;`YQ1GthRc@ILx7NNmqm5CcB9Sn_^!utL-sjepS-AYP%Y>9CVj3T z{qJ=#&h-qo(CBu%`uoQg>ar`3FrR2|T38TlM!W@I0b+;OXm>QMk26FvPwdTLJ9R$Z z_+=r)n(m1Mu55tORXk>S2DFA}wXgY2c*ji=61F6&TBJ3!iu~!r34GnXz$q6&*v>2; zUVWW-2%mGg!N4E}w|dC1!v<%6i1>*E)XimV!wc(OZgG@WIXj#ATBi(TmXPmswlX8z zdKd?SE{_JEL3o__TV9i|DrbMFP!F1}=CLiwrH0K{F)r)JN37qHGzwFTm8#bwti@hM zq;U1fCreVaW$D-2@*mFEHt!{L z4W@imkB)Nr%k8Dhz;V&YTkAc$kA}?Sa=z9#8evb&@9lwK8}4^1R$`MrYuSBEpMm+V zW!cFTfYx^(*oS@ualKpjBPzhGxH%hqSa*SLNTz8=5*}E zDkhE(a`fruzGkLov(ue_?reel1N}}4bQu6^8VNc4j0)`@CXOb;_Lo8w+f-Q62aEMY zNngr4XN&NebYR#KL>eC3c0hmvya_8Kd2h0C7U1moueD@}@%kxbx}vOK)bFSnO(?RU zj~;z_BqjPz1)o{{=^vLy7Dv{+01r$EH2aYj#?jpMCnuAMN|_#}MHF(&FVel?SE9FF zrBnm7TZ`_O)UxOhr~~>AaO}EO71E)3_O$c1rbA=gK#lW2@D1xA7DnK&_0yjf4x-+?Xr}jbS>%!FM5dH-Yx$%=48$atSxNZe`V7+-&(mT%vEIoz_*DGj z2q?$r9E;PX@)PTP<#ulFcC zS_K1{NaVSWi3{w&dr&z;w_Fp3R^nNE9^sQbbMzck-k`^_qHft8A2NR9u<|0QmH)-npUF4m5Yr5(X9I^fUj`vG9V3Ups1qUC zzX+qFESEqgv5ag(Bq&N$HZ2m(* zn2pf#Aa&$-bxLuYuUW470F0Ax@PrrZ$Ay6FZVur%wC4tcT4IlSn3&6#7@Z)?h_oFsA-5K`*P=sN*!{O!;19vE=SP<_}MV zx$UBdQE7UD0F(RLi_oxv-fh=p`+yL6xYSGo)3l102=!SFe@QCvdPx?>+>4wG*E^R!%)GR4E5K2JRcR5R%E0g3ts_&Z5~;#R!EMg^S$98c$Q8CM%Lm zwDr2lX}lQ1VRPPZcq*r9^LzOnsu4bR(j)b_twAaW8bR;X)IHV#n&)4Br?V?Kts628 z2En{>OP)p&qggosoH%t*2E&_g&;-Sx zLC3oU?~{Ic(jb4@sqG#gs-S?Z#irjqjeVvpQI~WZ)1JQ1_=#+N9 z`?sry1L!bhxTi?dYRSe%ffENJ^Em9ez!8e0qlU3E!hUQGAqNF|#(Q|^9UHhBzkEML zw%l|U0Q$QioCa@^T4xiwR~;=lBV!fLsjfc&4y|o%9?#X|EeA!w^!x-A*j}~o&Jcex zBe9`B@%82)J27g1Y>yJ6SG3?RjRFsDt+eXW8M^xLmtsg|9AI$sJR|0?=}gv}bs>qo zAmPrHma70Gp7BpcA6uDxduh5dBGkld(sR1W9G@%cb8_^~pmfzy=2?ajG&QXeX~my} z*CAe167}tx@deRabbssuzY2)yB`#@Z>W|p1R-Riya>$P8aI#dsN9-}ybm{!ca-$#& z5$@7jzdMx@5aZid0{`i_zR9S2ZoK--_+ly7VRSkc6Bifq*k#fEJS`#BS9gQu_ItDx zmQb+zBAD#)_i%!Q$f`YIM{>Ua)U|J(Mj^esdzixHDxMZ@kE$%>nr{AQ^zfG>u6!;> zbW_cyZPNM;Ch3ZQ%rj+?Dn}4oLDs^3YeB39TYvOpe z1q$pDz%xdmL)|DTR@TJwvsKDPR)1emk+$dT+pS}@n5dSarUV{3`$q&X)^PNaS?C_u zknnkBFZA>xD*}-%A*~UWUZu##FQA}~)}7Au7=Pa7rXjXMI--HyluAlpt8W^(3Sc7L zapEvK1ef{;Fv_Z8qh@J4v#s1O4th!qZ3fh#N4c08w20FJ+L@L0}RAk#I+)=pBO%0Rja@fHC_;VQQOn={+p+YrZjpsK&i>0xbQ zpE5NvM&ykATD=PQL8fp-vCqWm`JM~p^_X!(AlV=>kK-A!4EXU11slSf(Y-Wz)^9k; zG?sFB@nauIGLJVVD=kF=Aq-?!Yj*NWxLK~cmay#NE!@dWI_wlH^!=E7Y}#VjUm(ZlU6?C}65>U?vs-iS&F zmRwBl9?vNuhwc9UE{*N43umr}PyoaF#g-A^$?8nnF{hgY_j31#Q+~*p_(mpFlzA+l z@q#|)If&TAD#(?k#vY=bkwh!xUElv>gl|w#Wk{<6F8*&p>Hqd4SFbZ{=J+l^3_Nr~ z028xTlgmRJVo+s|@Y2++VUGfL_&Mj{LcOMnM{x4TRUeASKAVUhCSa%Qoi(G zhSLB7aJP7^QzJPNgq5Yfomy)0*!WZKD*(KvileNd`d2{*X@kdFOc%} z9Au3#i5c?6nRU1yjx(;MUDE~J!AKG$hxqW)-NH0(S9hEdr7N&Le~8SVxJ5S-3@jdk=l(Q!$y>m z++^=a`rRCuqEgQZUUJh>#QvDHn2s|8&e`i!KM+H|*yFP6$ZrDKkX;V*nCN(iy-q3A z)*?{P5hWrbA~M7%005Rv$rx=>Ryz_=Y&_pXEO1SUkL49KjLDU{^}NC44*wluG9+ED z(u`LW1Ma{&=LSiqe9b1i#;Vq_;@VbG7v;s2|Nf% zh=miyN2Uhz2H0&kdo4V#XWWni#>vwds3D-85MesnBa&fSQkk#E5uVs$&b zZwK-%Y8Zx+ivy*urL5{~!aov0*uv|KE4)f}?9F`U7rjQ-gi$+Y-1dlNfjOvh2(3J-Fx5A# zOHrYffaXpHAqQ9(1#SnK|Ga0w8-sxcf8ifDY5IOrL&xC-F=675x%%8$Q{z}nFH8uJ z_+xC-0)yx%gF$I|);=z9LAdF${q9?{h6f=$>AczR6ZNX!`!}<6g~N5&v)h@%bmR22F#Jl4&JZ23ZM;ShzY3`vnCdE zb-oN(=L?YI);0rT!k!Q*Xfj1CHpc-Q&+>vqOtW5gI>T z!SpGqmcJoHltpl#0F+fdQRGJq=GodyTs)E{_d`+!1X3Zia(?#2O+-kTRvPv9%91+$>f6x90ki_AjpvaKi$q7v#FDKG}TE2W}iT zHnEsNnCQyi!O{8FY%bJbq0u|zXs}Dh-@|CMZ5s2$hu1O7+CB~F^!*WfP;v!6b0xxk zzp=vps{grS`6m2>PO@!mJJV% z*ZsCo=gMyI=hIW?mu;vQyaF^zk5s}JQ$1yrPT7G^$^~H1EO!ftgLP7N>eqP^uZV?& z`C+4|aDQ>d3HKZSbn|6bbvvm@bubbkC#zBvnzdMTb! zg^P&&N61Hs6rI@(|6iG!U@+Jy^};enZ?m6`{dzIF0+#LU!+=+v`mewPS z`j4fMzn92s8YrUdhEo#FuI%~VEZ6Y`Kq2~^Hz-7$eqneR_d={c3GsQ08;yx`nSgHe zct0O`qO}*4J_%<%k&qwTEU`mMc!TKl(4A^)GewQ5E(4N^^lJ^XDsXj9WCq8WXSiZX z<5miNItS+hM%4!FWLsmFWLn69IP7qW_1lMi8@)9$_Ci@u4>zu83uwwD(1>1kb zZ$yApy@wMhrN~)#^&Ahbes~Hq@04(mNf=ql<|GWu%mw!27|@MZrW5kIekZlK)KX^+|-<8bdPlrSsVW7{dU;R|Q7b+W71|=ZH)c zsvt;{dK3MCmV@Gx=lV_j^vtRJCgS8M7-&$#Z5Y|Zu$XF-`*IWaLYd+NB_~6&)$>99 zg&fmH!1$~aWOIFh?$zwSl=V<_uu#;0h**E9DQUWNHpaS1ZtBle9NF*K)4C z!X^`%DKV$i4cJ)%#Y0yyJXF8d2%jEue6|lnfBaHuqXY?}p3)HI1CqWdtwiK+>QjW- zLPPT|Uzsc(sDps>fW2c5z$Uibpp=5n8x7#H*;C#qSRRMV)KaUwp!(iZ8RI>SB5t?- zCgS{&gDj?X?%Q~UYRdo`#lj>}LM3uq$`!U0Ja}kc_;5I7Vb{1Pn$K!6Rf0m)F)lpj z7g*Hf-BD-v0vz9sTtSXxU1uL~-e(Y!@;Ph0$cIF9>(m-$gULQeZ2oMAFO;B;N4@5M zd)p$&)|QL=FEbiB`9+TLRBd*u9yX=Sh;nGtx?&YhGB;yYg`B+=^%R)*?0+0H8Me zBu=gyQU7W0I;PSy@&ZEeq(e$E153LtZIIU&r$o|JE+rgiJgWqIn@hnrI}T|(h6Du& zdc;H=TVD{d$9{J#GbO^(eN`G1^vmBhW`O(;3zmG!#G9L|Fx=Qd#AkRYIiDL{g~MK% zhWwysN0VPmW(pnYdEjz~Rm1%HUuxMLr&v;GXLEsSt~8)DO{S@PLZCozQVD-MmphW&{DDV(YZZUW1O(mpy&K3XS$#)rf!XhUsg5@a+6@I~t%`9wKfGg6r^;%XS8 zz0MT+&~L*zvnDU1Zn!8`xuz6{rP?FaUDDM#uUU=)6DP^)vuo3u?d=)tG=jWDcOmco zcrxhzY!h_qZHXS50OcMsE)442lKLgV`@xCWEoS(Yw;yK#o?4PYU|d~0M|i>lCwA>~^IySDg#x_< z-5UQF`d7U6z%-zS(XEB7!~*}S3_x8bp&roN%K7oD4w1R~Ndl!uoi}XC$mS=C4AXpA ze7+4d8@e2GM7}uFi=y=nYt5^dt~3hV-saqK4z=E#c#5hIub4}tC zTCd9w#bVumTm)4i^o?theeMepdicBAybR2JLzeg0M64H7BgLNvqw#DMFLC=gQ6fcT zDIbKwcKV78*9Yws{bM3r;(M%u9@0mlo8@_X?NRvKhMawB=TF09QHrH$&?%(Ae|%h^UQ$Uc()#{RW8dq=LE&!XZSh|-s=P?zcY=O$SYctF+*<7bDfrP2us{g{%#eFq&xHE3_*4}8yH}Q zDQ|ACrmpv=?wk5j}A{TMu78&bnvYsw&bw6@CiZdlE>($Aq9v5hyJOHNmb*vpQbIGl7;O;RIroEYJQW%gA zV1~rGfT6C(4b-9*`~N87>kD#vLjYSBmSl$cBNjUc?s9N;xI#;v$&=Ul26<2)0tFg9 z*fPOJY;g?sSHNC6?9Y9mru;&Gu#6&C@OtUf-!J>MI@IfQ=bobPiNGd*Y4qN~V&?wt ztkQmRacaxI`27I*XVF==VPJjIroB+Pdu!V++|G=)S?tS$Bum zwL4os)+z$GleQ|6mU;VD9V7>Invq#VTxKY?t+~NaE-b5w_xFGN{;z@C6#xmBre~j@ zH}q#F_X>scmi~8(w>bb>>=&DUWL^Z)L>|{M!D3nOYMUWDhhvNpbJ-swFEL51u+~&TIFPEF-DKK^l_vVQUjl^ltG20E;TL`9XZ!O2 zW-qvEU+ug)qeS2u<66xW@(9f<o(mi2 z9M- zkBGs6@HG$;an*!HjMvNZXf+X+5>J*NgN0QPm6>1JAQ^3hSZsyx%LHHz=uD-J#uJQD z)ymB&QErg25fy;gmXx0x^*iVHe*7kYQH7y6Z|v2lPg+xv(LZoHtR zCBVZ#IUz^jqC*esZX2@rQtyr?wZ2~$BS)vOdJ*;2;$t_Bj)s@U;^*`Q9$*zs4;?|l zcE~3*Wv9n2WJUWT^nnB$O&*sGD0H!qu_+%YBQU>-BOnWo5AgwoC%a9}IOQn@38BfC zhwc@qWa~N4o#dx@5>XXp9$kYVfrpk0M5^ZRq7-2ntqzW0yh;`ncFjw_#|pV$2Ibp; zsSy6swcY7mArBQ@AhMCGMCHo}C&7q$dFhi!%&6r|XhRBpmSnT$xT!DdInlpfN_g|Y zcP3APc&Mvrm#O+*+794TyBMGmBAYt{qId*iG+@+Is0jKlZrDMz3qzF8Zq+*3*{!(L8kJo)V<78wn-Nsneu zpV)|M6#BCRkkP4f_2x1HSS((`;9CbmkI=&oDKuWdRT^O39SVe zszB^~_?iFZ6Xj*BhPY@Npb*I?oH^a)GogHY5zfUJ<{QGZn_j%i7VDuPHP~G>H7qTn z+bJ(Hdx}QFnHhu10H?zZRgO%rXC{I!}XxIQ3cN8w}=x;sA1!akOyJ*{DN$8#?m`m{hr z`H%u&HGE5t;rwlVt20J1fBGkjz(`nYyEFz!Ptf6ZqMJa-$jLgy!YJ{{NC*YkHfp)d zSK6y)_?O%3n3#Z!B3;sfS>d%EnIAB4h_I7AcOgVI8)Km6Y_9KM+LwHtd(+YJbVeY7_N5$}c#6SU}#7 z2Q$E*Q7a4G_(gpi5o*<^S7`x?;B)jX0MDQMJP~rAZ&C`es^0A@1oZBl=hdxhi_@mv zgC^kEN^3EFchMTI>D}N`%W!IpguP^UD|rjpV!h{9x$S=uuIIhx_=qPz6_SdnVNw~# zmTR+>u*n2|7Pmi(#*do3udq;!_CB6$je&ZNwYHgnF-4|d2O7XpqavUCLt9!?;`!SK zjC492!PhdbG3QP87}k7Q@fPg( zKZoG1F=l(e2Wawn>bFajqR3nXjljXZt&00TmGrSX@s1Q(h#!bl>icw3$g?=oC|$Q{ z^GGgUfrp zm8wkNrQ=i0zcq4a6Tm=I%bnDDxQRt6ATMB<4hEJn{kUSuZ0G`dJuqW>G1(EyIkGYF zM?{kL#Y(929`EW+nrn7IivX_O%aO8m{isBXJ?^l+z69Q)FB~6xG6^+n z`Fi%1=F%tmWJo|TQaiJCXbiTG-Dasj(CVSVC18N2M}!y46(;ijwKr}*0JSc&b|MEn zwc5_-raSTnK7&@VmVyM8fkST&D6V1rCf{08BNIqaPG>~lp=kKR9)Z^y{^|0(C z1+{ARzxd97wPDOgunz}>4j?abX*eCp2}rA{On`+E$Q_(qfzANwsm@)|o70oB) z|5?S)FbwxODV?jm^F@=2nW$W9!yZY>F)<=3GNT_60N@CZiR(@iP=`ch65Cz14z}t| zRotAePJ?R#$nnVp%^();Q0|bU)-X081lpZ7A8Nn^s)N{S6>{mck(4C6#v0at%ih50 za}fInpo{j4WiET}DuCte{tC2Y2MhIHdlzW4w;Qm;qNbonpylW6bGy03%)*6j43Tcq z&%4EStYr6a$i*PeEOYSc)qS`+1IWDo6=2X>5JLbY_o6u->}s2#rRN9e1#9=~h5cQN zkk>(zT#G`|^Y|n<`yuEX>j0t;q&4dXKLML3OOx+&6M0gfzDI|JB;vEO3Rr8;b4vX; zE~D3*ZhcbfEX*Q-0ues(jOfm4q?PH6Dj8oWUdGS$iAKbuPRG4m&*b2QtZfM4f28{q zAghO)5=SQDbP_7gz)uIn&9hwcA3$X)WJl@h@?&6!vpbE`C5hf%WCIh3vp_N;%BOl< ztp?S0pu$yUrlyQ!wS5lF=5e^qsd_Dc+xjJ3mh43??%4rL0?#8dWHYGPS#DO9dJO;> zhxj+vLy=b!isR%f|17*U%q8!+mwlc8)~^^I^q0(0@|Q*tbw6|fOo>@Vk<)bCTQGhM zn_6@*=y{pVPHM-iOz*$ux|hR0cM5<+C_NDpY9;~E^D1cYHX~AdgW$@8=F9$fk9;5G zqhJRdc^)3(N{9qcA9XY39e&LPvVo)v__-M?Z6L0PxY^Vy{Qy8~<&@G|LI1cs$`P#a z#_9Y(SO;697e)33Ase{yqte;gS0kS`|0e;(Ga74Eqf1D{MmoK|7XAlfDmr$jJyCc5 z9s(~dr^kqPQ*oxC?@!W9W@4rrc-u%(5JL;i?g#2b^s_zmOuU~gCO{fz+V-~D>@5(A zn>aT2gey|h|* zw8?Ctk!A5n9gBn~%GG-M$3Vpsfe6^^7#acXKOhW}@X=-*Fe6vKB{mjDvKpZa2FLIa9zCSfHJiKPElWe-d_s*d#VwHVQ+>v4-=ZQNqCM4ZN`(^_;z1&3~b*}OfIN|JG8}S0lOpIt4zo$;CuEtQ&?oni?=Bk4pRMA^H} z8q9NR!Kt5oBo=a6oNk*S;>b#p@0udN;HreutzTBfpP84wa*h?zR>R|Z$VK7Kq);4o z=*g5%)@f$H0uLcc%Z!*)1hd4aE5Qxb4SKJAL z{Q2y(SRTunz+dr*3-{I^67wW8I>Ax=E9y1}ti|JMN?znS5mm}7>Of-?7vh&3_wg2e zt0JqfIY;9OI2|L}zU_@X#|?xyZ{!ZV+fRSrmgq?N2L&4Q2N0tb)Uh6kaxIoW9Lezg z7&^*+dIa_Os?xk%)9YoNUbRPq8@2(z9I8oIrl9bYQSm3XUDbhEAgpw%-)juKlbOvq zRAl{%s>#(VDdY%CfIRIEiiy@^P>4`BWq~J0jbc@J;g+TqKa?lyWgH=Wz^wELq_cz^ zStO8(mr=>g?u0U-KF>IHDrZyhcEaEn&$h8LV(>Rt?DG@cTEC|cOi);24M+6h8d@wo z)`0<`i2ayB{fF3$w{z9I8`Y+2e?v#0(v-e;iC5Y%xn58Hb_mGYbcx{G(87tQRw-)( z-Q`%u6Rr<8^VkudMATz-MneKhS;`>f`M-xI$al3$aJb=YWQ+m}{rhxTdYfAa#B2n$iD+^=}(!%NHO9{nMI6bhdS zy}AQbLZ83YL+Y>%4)+nAx%A3$-=-jcUqW})AmB{I!`$nu^}atS`8lxj`}H5{xdw8? zuM@EOW;3b0tWRfcOFnh7VoSr|qJQt&;hi%zWq{zANDy6#wf1i9BGo(vuYJu<_{uPW z4ZuhnINXJjc}De)3wGfTzFE=?r%r#C`Y#M7*?Ug(BGdJ@LoVQE*xv&xo#oMn z>;4^{-C}F+lsMCi*0;DC`3Ci#iI6)GPS}wzIU68Cux3BJ!!s3wpRe306!HTvnPpA% zJ8*yBALKo4>RKkZglsxBG(fWBWf8{g(^Hz!h;HMTIj69qu@Z$nz3>1Iv|)f`WdSDD zF$=GAqJDWn`mB+~19keppDrLl|E0JCxG*n(x`3Jm%UJxTVC!iT(2%T40eaqeWB6Hc z5nX^G5O*xwIxNe^Loik~@_X{w2fNy>7V{8W){gKQjm;S_C`49)R1b9VUkGrSSiU(Z z4g$FBVDW?99?lakk4UY5aIv| z1{N9X;ty-S*_7(9#Gs*%e|XJ6yQ)D!O&QD739@baJGTT3WewZEcvp0w2PSiHroVTX z1dyrmDjx6~45lP0w*c-|9i5CkyxqnSL}^&_*+8x@t}9RIurN|@s0vo~74TH|tG1&u@P_PQbgiKe?uxnb|%~Z|uEL4HoklX{V`~mzB z2=L-yq7i!0e;U_1QXB-I-uG#JeRf_ro$q`To>-LZhq>c{1+$*Xk}F{kpQ_7y3e))6 z|3JFRfVr`LsTp|u?mGI76u zgZRt@B}5)0B0w6EREL97fE>)A&sSNHxHGr7is=Z~Jm~qoWd!Mq4zQ@uv1(36VSea=N*YadHMUr+~+)Bp9C@qRkQJsXBAdN`C|O16{Q^* zLZJ{KZvT!w%@mL$XQjW(v4IZ+I3xExxTCLMrxGbuM6jH5v4#pNC_}~&re6k02?4shrx`IHmL@BlBaaS*1$d_U!gzw!#esg#c*VN zUHaOcW^q4f*oDjXt&en6Iz77+v<{@ffZT-F!1)~jf(+!P$@r{)e+dx8Oa*|zC&_1c zrrAjj@~hXoyw>`=O_BySV^A#7JN1+pEhQ`4)OCz@Pj@f5svJjKIy#VQ5jNGZojKM( zItHwTOiUMVt0F?rR7ZIlNAAt0e=WrF{->F!v#mo$M{peDRbVCQUv%e%y=`(qV-OI5 z%!QS8r)L~Z8&PLMM7svx#nQQ-81pH0nP~hHkKaU$_K$Ntk)EpF&sA6#EOg$J(UPTD>75J>FeMuU(npzba^=WfL0+Pq8C?@+<6t6gZUbzPb zoZ()5>j-tqoecN#au0HzhP|n4a^RsIbNoiz2WxNp*7eL5sGsOMHgWE5X2RkngO5rl z??Or%%rze*zG3O?L#G^Hz>uR@3dR{BnJgaD<#iPF!2N820G2(abY(+?!C#;XP$ay< z@QIk-(CeKBdO2A|qc@Q%CWh}#O!SS5tKzU3!yFof4*>aW(XPspCIqC3$wnE`IRNJ55V@#Z(L+#Uf!959!_n_s2f;tG z#D#_ESYKkIO+XeCb&LwxD`vO^`Vkxz+KKwDFe>q$%cRzL+&6ly1{=eY+@QVNgC9po zeL9-&8u~y?%a75PQ4#wG^dW#6HVuur@uhpgO6@kAJ|Zu2t^2rp{cF-x76vyH=KDBo zB21O27riY~SZnP}PrAO1EdBV@FlvVqj^#A{j8r-CIBib+)i*5d*bBfCEg+gvOqaf` zjf*}p!gCWhLmp1MJ+lSa@PZ36r@TVElbeO+f;lOin7O_l2$be~Ll^<`!0`MxQ09m# zh^S`NPz5juJML6PLV&~l+cygpXU3o7#r8A?L#dPFjMbPJ?wgrmK>Y|k7{}h>vqXc_ zN)I`A@K;?sgcWe2L4iuc?`pDuQ|Abt zY}vtPhfwPbOg|DAl1Jg#J)4PM$ndQs2*NV`&#xn~(+gEdAZ;POQ3nr)l(F=H5`0I?_|lbP*Ke#h*rQmvh%u9i|1j;6(9HZ6V56DYEkWzH>A^Q5{Dp)%taa< z!{Wreih9^$oy8jm6Q^P0Lg!z2KW(NGzcAIeL*I$AI28(Qej}xN_+W><6z)+ z5AS%k(%e__V{e=0#q(&2oBD^00egUpGufAyTUqIpap!;(6RVrnQiX-}V#)N>^IYc+ zL_}}M&w@jv+th{FYqp7pjN-dWh9f|n?r&TX99`>|YV0^vE*yZ&K*s?V`WT|*&( zFPi*)W@}~p<>p}Mio~qdwCUmLFMa$7Wo1*9n(5M6WheA4NIN*CW66I4B&_DTPHjAg zuImx1SbLGXq_^2-OIJ!>Xk)93GucgI>QqE~5V&DNojn&w+S}GHstV61ne- zkOz$y%Xm9+I1@Ed3+KVtS(U}fbJ&y855(2W5?BSFs)@M?e*2zPndw@cDnYLb!bTX8 zoqP#Vj>0OBwg#T^x9>h=Tx|IW^X?u=1jO=^Bt$%l#oawTgpmPyW$^PmzrUD5FUov! z$uH{#8d{cl`Fq7NaJ2+xfo+bLwpJ^ z@m3z(XKoT51&QX}h=4|{vym@){?dg)2x20z#v+&;I1p5%4UA9#2ZxOT)Cx%%zcYVO zSt*SWU*_V4aXg3IgQek1QhW5oPD(d?m zGp`Lu@TC2P_M0X^m?zIm;ux3AF$qC*-XKqt2_{X)@>n}H&?hHQHWmDpQ_(N=muzLn zfQk}pN;Dt~*isL1*K0GZd_w;EHUIf)=A0Wy4*mZrO!&V_9+*8~)u-EgM5B!!q?;m= znH2}ZR}IK>_c(ur?WlPPaJB6Vy8Z}$eO9dWw2R-hxyv?wQf9L2AJ9MOmwmokxH!my z05+g7uK)7nY8MkHYi)JlY2)*ls9l{jU@+uyK8gd*Q*cNRiGh?O!1XcBv%61OE_+T+ z>+WJ@fPqhc_>JdPrjGAM_EeMF(67-NkO>B_DWs(q)hZDB<}*>;ixu0cd%b#O$FxHj zxg@pwE3Y*0`cIPESRRJ;t$7tg^@g&G^zMa7bs31j{SO@iQhdH^72QXZ+&!oKDs^Uc z0is3xo3Hp|*nT-CmV+oWhLMz)Jc6#fHT!qk?X=9E(qO8ZLBnU!D&ldlSO%FLK+;!r zbSCVv;{ti_lxUIPLQ3pMcw(jzH)atP&DJBybu@FPkxY&O~ z=KDrOd2ByQLaXj$7%)kmNHT-(10H>6t?{blIuIVjGz087y#$I_B!meyRIm7DR+ye( ze7=bS&?}Rk3WyxRdl}E={Edo&5oJ`@)&1fM!?Ps(DAqfOm%#*qIRsj?N^mCiU0<@X2HN_vZVTIvW&{&f{L^gRPtP z;VKaHBaUkGDScxh#s2tnNz-Z!CZ&Lxk(pM}8M&~~u0xG=^g9q_@+t%5?C{vHWxU{v zv~ag?eODtcHp!0`y9yEf;x~n0n$eX^Rr|A0O|%el7LP; z8Rd`fGt|IpUjbl*l%KQ)DQ!shvjbYbe2)XFDLH6>a>{n-Yx+5)Y zLP{DA8~N8u;;)iQdg1j>A5<^hL{Y141?KY#o!NDEKUY>VLQDp9X4`n*7kDGir}Bta z`0Y>s)!P0`U)B-^xzlb@2a!;x%|a!98@CWZ-W00UeoKVR*ZfJ)I7HkLOPVblwlzN5 zH%ZdPXqxRs`Ox3I#D=X8@~4pB#wi2S3qbu>-Tev@i<}%==@xd5arr?6oLr1p?{rln z{^Y2Flg(0LQ9T-EdS_-D#mnQaK8+?!tQ3HXu)L{`Re8rW4`|lxZY6}7<8dPYH*!$> z3d(-%RMI&uv1%J#FnDClcezxB#5uRy*(+4FyiNDIQkyuD z+aI(L)pjv|YyZEka1pDk$JiH0CkI@H9H?DS`+-d~vesVfOuaY67=>936XagLYo@Q|Zmq0uft#rWsgO)T!jznPqY*efRoT3~IY=D>CxmyrKT z4=Z}@kyyi~)3A{H?WK#smo)QV7nGdN_UaX}G?{VgPhPLb|9OdtGo03H;i@ig;hwX< z*a|{icRPjNw}2btz7K!*GQy4R%9CTVq*yGmJ-?kZJ5ZA6RflS*fA_zf?#PJU$w*eA*wSRh9ERXHz>2rNl!Xf>8eBg_h&s2$U2=qNqNi5&Vv0N}QX_7O+m@1bB zoBQ4g*L_^w`4L(6MVRX5Y_igtKImNGljy;53{5_iStr2Z-cYp%R_m!r5NhmTS5kQO z8G~qKjnrJE+3V@WgPM`>3;q0>Jdp+uWXL;#)abjgjvRCBQo@o*klqO2CVz@uno;Lr zhO+K+akz5bviCbBppTD8&8T{JW<5>7KwZmKSv7j`P3D6DLX+puSy)0&lB%4~Day2L z|13=(khYX+ml@oHNUbNsLO-^Y%~>?MNt=JsAi++{#Whv?S zWbp~Fefpx~?gGWE6q~slTTVEm+w(6o>DMYTWi*^i(3x$_g|y9*cWFPUDx(wvEFCKc zDKd9K#!7a#vO927d4xoMUf&1`lF{8Hu$j8eoG7#|k9EEroL#aOY~VdAhk*w?33kE# z1I~NAb=k-E$OAl7Mv{0kv1e!j5N(CW!+W|8{PqjYEHd<)`$gtdN(Br8S?8wq3Xk!Z zn%rHi^csXDo85A^c8-(?GYT1bM?6kXzPR7Mf)@3jLt@ILc3tC;ElcL$8WK}+xm~XK z`4&mQ_dkLEK2JHBOb@bGC&eymq--^Nb)GW~EsKtz;PX+N0(kLE)7^4=ahJ(sre_Nh zRnxh8Dw#DO`GKxhqCW(JbxI;QX z(ICFs>tqHEzRMT$D!1OFsF0J1KEqetdVZUW8!uo1@S%($)13GWj12jUjc%DkQaTDz zN$G9hpj~o>YI56m>{248XKD3(vqfp79rjUUa8aOjA*Ux7b~1 zYuUYVRpG{-x%l&)@Pzbabc(%-ot($*7V@@2h?di%u<_MXkaY3Dt6VipY)n*AL;>mJ zyk*RvzKMKW!ACf(2f$6tj*kbQO;z0hLi*8!6k!)e-u6CVyP;*%Y;rb*E`R1$^+w%`1$b}#| zdGRa`c(B}|G)f*b$UU`tFjq+wjEkl2w6g%Giz1}#Y}Ia!p;t)K7>h_j8~Gy4DEm_s zlwTC$`VUuF#D&b^6W!Kedx#sZl9g7A-M$CtLv8O5lXV5 z=w{dVTo;ex>5(d!$Tt^O)`iY#j zCMUcq6ugw-2Sa>6LL$Z&o7`>2KJLhgy zKImNuGvmQStYan*odxWTJ~S3;V0m@0|DDl44NDETGdt6J0<lGvFbn?bcCA00I+4W%R zizq%WGV=LnhLS#mJ0NUVj!YhJz?7H2^U)N63nC$HZj^k9PklFEFa8@@NfEvCc76E; zi(2DVWi_;_z9xm(Eoq^X1RS8d#IRa-2VxT$BX!YMv~m>N(r) z=g4W~d3zfzh9`T)dk&>F+-j|9C@Z1JP>x(ieHhUGef4?XT*GCq;U*@+olP3V8X53wijoReC?KC#FdVNYtA>tXxNLd7SI=fE8 z_3uVEewXd3iObClWO(QZ>YVRW%K%71W~&jcTDHt5EgyvzzgHbuJt|p7)ZaRTAY>1( zQE~X5*yVKx>CB$~P9 zN`;}*FiEOxXL(M)DW2(7X#ORd3D1n=2w^a zm}k@A${fv7i^CJ9vj6yoX#he#;X~clv$ThXsPa$dUH7uuYCdL&{f;rh<%s)kPR|gX z$&Iu;q?nATYCfoFF;#(yxzV)P>Z5|%`?j!9nm+fgl37xud(^+nS0HxX8Zm7Dw;L6+ zr#^WSGOXmH;t7jh_3>smK3EN{vc1z_!5)D4+z&(gO@S)fX0BLk{BA*A&Oj({w{_6R zNEx!1ZVGxC2@&F&ABJ3%6gr~M=xyJr%g>EJVL_v*wfP-YIcTKR$G{zx#%*e3#+#`g zjBp^Gw7Id;^o%79&m=?CE`~||3K!ln2(FLybgv!Ot*H7DQgiqa$25JW!JBcPQHj6>UBigKIDarN@Z`_Ar`rmga*#jqL%L{!g-^8~L zH`t1r1X_2?zk2h@tkfjxsj4zNt78tYV?lgne07>OSERFX$%0w5ji!=;=FHsC#4DD4 znW2Bbz>l&(;uV&e0fo-ZG_5V+;L>HH$~OIJ6Bn^lNZL#lPDuD3%q-brc2K%&{vn;W z7~k*ImrmZjqX?-olY&5`0cpF9mfQ zc|J^NsYF~7BfaMewzk7kRz?aVFIgaf-{Rg(K-U7MKsQ`6@0RR#O-h3>)IYqVI{zRBw$94S4j)`Lm;fYyvMA zbsxVLKQ{#WEQ>zoOvZMfv=GRG(cp)H2~dZ+v&M>a(>%nV%j-vR_`hUR@vH==@L>X= zvGCj%q^9KSWzjC-#3F#<9=DeREu5ruG@_y17n0$UK9qfuIzGmbE$3~Sx-;~r{qNl6 z4y|Z1f3XxHl0a!;@y8V-$jF|klc6hgJ+rw7t8)8&eHnA@U$tdb>-A22Vf2U@Z_|lX z>=^C3nT^z`&EU#r1VFraP7{3xi? z`U^}D1(tuNiX)Ed9nUYJ#6VW4FVd>r#yQM@?k?(i@uwuj1*fsWW%Gy9RQALAEV-XN z?p93WwD+rFxLTo=dQA<@rtz4YEiqr}r!n9W&f&UA4r+|_EFGS-{^*JhtF`55(1p>uVx{)*GQh1 zdnwl$U-xdjjCF#6{#D44ND_MY z^TLkNX0LP0h@41`k8l|MrtHhYUr>8}ny%UAX>-1H`Tmsf;t}oVEls*7J2^xDZR~SQ zXkYeDH|4UgIq9`3@A6t`*su@l)VTcY7bx8RwnEFM>v!&Xif&X+!Q<-hvsv2Se05IF zpRBg@djjSA3I~_bu>assx?n6y>N|8G(;Vp?Grn_jSoyGfMn0rlgZ3$u#v6nMo7Q`< z>DG2S&x98Ecd(7EG3dJds`sc#=q6)gKHDYu#b+YhzESc(yq%s=xkKR(?>-P?&WKRO zWUrdh4`#HgrfoLpp!W;8ZG;q2u?76n&I9b@3K3kWGpE#K|2_&3Qu#gU8VLh zdGr}{9p_sweJd&W)bvKf!M$IW$7yA6YyEglOgF2xaoRLtr@Jmy7sOlPBwUNF3VhEc zT4TN;*bD~t{oqdx>E~EgH!17ldZriW$@?fO`4ec!vN*oHrb#${a-XJh%?} z-13p*%LLKg4}4?5J%&K^J2BH9w}wD|_9##l;2JRBy#Md|WtM0GlqGIgPM$d`T&tvy zae*2q5F+{Es4~7QvpL>4AKeL1Tf#I}5mK9vp7k!3J9=K*I94(kY?cb6J_UMN6JbAe zC}NBlVqf7-`7MzydZXQtC9C~PZB-|v<`aeaTMPb;vTBKYz}uCM1i}PXx83-qm`0q0fP2Q>#hP$uQRKn z^QRBB6+S;tS{~O$h9mfZxtcpz{=sJ7ggF%@k=5~(EjY1s;-kq%!4&C!C5| zDJeQX(hGsn>K`cP{oADY9Xw|i;@ADAEB>+zgR|n+_2u%dU;aIr|Fwa83T~kHQfHKb zXx8`nJ)31qF~FO2^f;~Yd=HV7Zut>yW0^sI7xcA23@#<{o0AWdKV`6%z;Zzoq7Q)~ zHlD909$JI5sVf$Ag-W3*@+O3QEbUo$hFx!Rz1P3<{PGt?sN6Dm+C8LPwWT70M)m+` zm*?=R1M?rn(iv827u66%y={O58UD(mjhUX6>jV2ZSSAV!^)bZ@R*8o__VPu-Z&>!< z>O4K77w1TPJ}_jg{YH|2s6T6jUH-KUU5~&j2Gu$d%Pb{3E|v`*edaGBB76K?oXm2)=?z=*Ioy^Jly8mr=Tpc(xx+Pj7F#Nyz1>Rv@3Hqk zg?opRG1ItNdMd3nQrN~j;U?!FMf^JiMlPbBkXGy2ndcu`u;m$s+-KzlTbW7;7nC`~w6F>OD8N4LN)_H1Ez+KD%7)c#9emve$UFgWlL+LUe=V76$O53(|g zAj8vl_?`;ey-zx5{=Utnit^|~QtPT#**dq&Md;|Eto#Pf3zVQ>FnV;A$YegCm5waj zhVE?4R)7FdfU-E)uHrrwE>#LaI1}V^A#99Dy05tyGQiFmCcSS8&8%F?4 z&YvbK=N~_^D4+pRTxJXi`5-zkcX(*@v)=*NSAfTO6ixGq(jX{(XD?=G_EA`&&>DAk?$)g-&|%kZlBY~7cZzwTeG0? zT`ZI&ZkpG!FIjFZf*mL&LZ8cA@Hn=tCP3rFmoNiDs%H*-l&E&LOZA^{lzKPkW{kl$ z0^qP%3(y3T3+hA1M}HrNKqgP5{HbEx(y%1J)Nf!Y$GtJlB-_!I_fF)P$P^ddzd=f8 z7SvvV)5a#m)$p4?ZR8iCw_V)JF^Tere65}9kqUjblr6=g)AzY!rIg^=0Cu}FtYqH6 zH1e6Pjt$BKO)z>fnzPC8j*b2PIvu*GOZ>JuuM<|d-cDv$fvQ#(Wf!a`Y0t*}>$k{f zLSR}e6}D#ltDOP+D&hNA(7w0wfR3ri0QD;#Y|?fVIwCj>g1xW~CMb6hzH3^;eD3PF z>to716by8bRX}K=hr(%U)FTH5*g6P$8vV^>vgOb#Qy`Nwlj~KMs$6P=MNHODJ=8Qm z6IT}HjQCJyA(V>#p!h5na*wXj#?%PMGFvE-)OQ8fL|~sE+2yg_=_&bq7osY+RDZp@ zBAj-oStJzEZEKaRvOu&D@iUN=?>nO%Tk32jl^2gx%b%G4K+7rx0YNfRrFyM>%jFKW z8*JwE!znoU==%~O(I(nrs%`)P{b>t;h0_%vrU+228&Z_@H;PR4?4y?S3XB7jCRm&3 z(CbE*&Ibv>!7>}Ax^J7oFe|5l%5o#CkSe9*#H_$PYT)zCQb31E~v&?835^+ zW((AN&tdBWfdYjy3vhG=g|gH$AU$LN_d5ZMpiDR3e(p3w(Bbe9{Kd#2MwQG`{c7p) z=~9Eu4X5q!#21OF@LL(}SNT!X5TIW7$33^uk^T*I&Fd zmAI`~7V{#IQZ^R;;M-^Ir{^yHYVVZU!UvxxfEd=)PkJ@vh1b$TruKi}^a{1y7!V(d z(tH`D-|D#L-WLXpQRGbH8#%mPzN91~FmTVqUiI+ZNAU80*!Db^(@+2h9_UP}w<=}N zF`qi^p6!Dv9}{`+f3fzKVO4Hx*r%Y`;PJ4`TWY2C%L&dRK4e8?@>%P94S(DIh+qrNT~CI(n6&rmjw{k~9BZJ}BjigvWT~J|3h?t+}gf zZI?S_w9Zx5zj7TtO#hqFqav6S6?*dn914D4S&2nkBga;wKa1VJ`OFrp7?#3G&zfYe z*eAu%cknnA$Xj=`(D9Y*7MN=$*Ui?ec+BR`wwNWwzv6L`?}E6wLlstk?6egbj0>3W z`bbHF2fgMh`~91LENhnQW>DhGr?SaolGn#2rt%qUiuZ@czy;~h+Bohze<~_qU8nh} zpcB(ZOrn()@xjVfnT=EXe8ZJ481`y^aXHI{U*Ymk?KMr$7#FN;ck(rQROARC5+?e1 zeOC?7>qArf)_Ws(rHW+bN88D4)!*Fh=K!RE1s|2cLh}<*nJj~H=ErYRup=qtqq*hz zwG5PiYXWo%Njb<+WMvuj0~uWMYnlk}41|CXN7N;n!ps>kE*-2R)$D*tz6!fbsk7C2 zRRcD-7do(82tYaf&cQ5;Mk0tW==#(K{>KF7(kG1U9{Z!ti=0R>5T7i4olJP?1vYVK zjveE%V}aSf7YWKtVS81>h+F<oQ6c*ExXQ#tvK=ww%dOb47fELr)=hLzi~ow_3oRT z18BqL5m1TYl@v3Cg1kumD^AT%D!@4&o*!-q=rHutq&a159+mmyc~;2~w!M4>f;!WmHDDZ+z+gF%&)uaJSq>roT5||L+ul_V0Nwj$kI-ZqeH!??!W@&VI!@6PSYLxY}$)WE7AEoL5QEZBv$ciL#0FgnshVPgmN#Ux@`kP7 z{1-PWXi!LDFfs%^nT~`|+JiaZ29!>@+|NN25B7)&UAyxbgSBEYmM1J>Y$t&-dUs!0d zqMVPWBglSdF{{doz@zdzzj&I}gQe6*vp0;%&*r6bK8C)eLS6SXGF^$d(`9c?BTH>C zp%m+w7ZMbL*|7rP&3N=_ z-AX?e6CBDDQyf7(WIVq8mG6$9@gOmKq3j3#hyIJ64peY=9Db$(K6imU5%ktPQj!rd zFTI~%WEL7b;z{l8N%osA?bZ+=y(kPiPJS1W^4jWjvB7gz)A$SjlRg^znpT*bpZ})R z|2l!hOGxR5LP;~+QZB`{7Z%wSI>;R1kx`9!C^}>E0ndv&u%VtN`pzp_d7`24)oBzd zJGY&Sq2p^Yu64GDg(Ct8EH2?hp4b!Q7|stD!NG-v@^4BD3*c&n$I!!-JB#-F00Bc;nH(^8aBUpW21B8m|N<7OFCq^8zm^ z47rl0{m}#Usly_VC`=p=iGWw2Jc~sdv<|Y)_^Z~N<`v%QhTSh7FouDH^Nqt(@wf0< z)sx9y&lUh2&y8w}{?Cwq+h-On;NC?^j0q#qBh};9{se;S`W(BD8#AP3P3$?c!A4S< zeoX(Wavunb_eW(wwazmvq~B*IWQEfX^X*sR1W=Sle{Pwgf?lgsO4y-Qmv0N}=jesP z6$VuYnsDrc_qclO7d`nyz57{wiJ;ZBm{otpc4XcQEsZp3>GbQ0es9?EIHhmhVmK}C zlBBe2uKupdq#J{L7deHWddkD#W%DH3%ojM`1qn<;F3yvxjNir-C@BzHr+lg07RHY@ zYiq{%I1uxTJ~wyf2z=?{_miGC^*}4O;0@}#wHhByz~|)@DEyhFK{GPdmmA6anW_p9 zNbZBiG1&!a8c)3s-$49dZ;ZWhSkZhNncmezin>p(-x_}RU(cM{3usZLvHWEjt)Ni{ ztEaDXQO-Hqf8OkyjsE@sStrxm}ijl3V=NiF%jjZpiavsTn5 z8FopEd$-)_w-?Pivutj0l*EfcDGP*mFLh9Y0iJqS)Ahge4Y(W{IPKxojHE{iLNNS38PJmUCTCI*29c)`W1=`o8P7va1*_SLXOy1v~0tLME?!s z(4om3u3A`I+)Oz^E}IXq^V%rW)#Y6$U{Vpbj8v=o)RUdDle&6;F|Rv}mfw}bKEb1(uXd(>nV z01auy6&M#Tv=snFvYC?y7H5n$szWObJ2*&5o36) zjXE|hNhoUZzcIB<+i&Ck5;UDhKDo8v&CH zJ)gGj0R=SKy{_To&cqQXk)U=pKBwzbICyv~NbwE?A28va>!wumwFhQ(%a&6X>(fs< z)ykkdv-BfOBWd0Qvvw=i2Q!Tl0hh~;#d*xiKmdk2sdL%9`ZrqWUD=-R?z(242h@{S ziI5vqPBB9;W~T$P=GI^@A=hs;;*vFMNCtnkoF26XWFy$pJ^gn%Kx`7mBxDm>*GQ zWrPN$?$7=18MC=GZN&?{aVc8eUehcSkXsF~iGA|aik}SJWtAgXxsHCs<$G48Y!YYt7mB{^L)a}j+M9#uvG}+~OFZ_ny7_N7 z=?Z!`Qv0?H`N35)={2U-d6Y7ARJlF+1C|YtyenYRwN4juihtkvJ^N=b&$CCswt@wP zKY;%sjCggUY`Hy;6N+PM5)+V*-M0q{uFGQMwa=4uYps7XWnTi#1PlqpJRh%DDb5qc zz+Q!WfWEdJunJ>`j2Z(@%Iw1)6pw%5odD?0@=dmXVHOA57R=>OQK-p$2WIl{wc23J z$VhT>U^p~KR38exFXmk)PBl)})~SlY!0qeu%Hg6fM+WD9Vf6&Ww~a$#=bI}s-{oOp zt(Jq$$6#R)ShEvs$ozih7jllw;Br5}HPt|nT}rF0WNSFRUeWd1ziv3wUiZh^PzjNE z@vBNIJjW__E=XwnBS$wPV}2?6gJtePfHBmkv4< zSS81j<+4kt$-~c;6NqGq?zw?k?DkPJLI@Vw^7U=qUoJ8r$l`J|a6;fm65GQobn=eP z2#1!-mGbtZsRD7;wsP{=A&dhPc?vUmZ8tpWfIh7<`ry`M*v{^;|19$jwJPHNl9iV2 z((vy(u{Xg1kvk_gyZ0nUt;%7@BjG!S!7@IS-c)0YHBeDf$k{^>!ra08c?oZA{IPFX`KVzXBk}+A( zZxl#q>sp=42KiY`}Vj0yuFop(jHZ%|7e!WrT0+6_ZoQ?8B&rWLQTecIa=k`twU(C;mbI zeW-xs?%#-e9>hq}kI*mqjd&1UruixKaIuM*o)KM@^^iUJXs(zsfMzw*MIb6Uo$O3( z!1$4^n5K&lgUlG*TVbL&5Y5)(>KH;p3^25B4rFVvh5CFzll$ZRP)cV_V`IlL#Z2l@ zm9)`Df|wVv!qg!K67nfi2AP+6RPl;Ry1o&7i;Inqx=x2OklaUuzJV@+Dd?k|F2ub9 zVs9`4D^b^@=r(4DAHM-h&)bf0 zuPa_4r$y-fTu1?HPsLk(U?KbuPORR*AkRWf373!x^1?|o zs2re&7||L>{sgN|U<18LNkohU_RR!ozpy-AT3g4>;Hhi(DVozXc5&*`Vo9W z7!Z(AJ#Y5$5-Epi(V&KTBOk;!+uK)`V%x7rXosj(+qF!?b2zr28sSD2BHf`kieeaj zddH$G#8`;}ZD&^-1$UZMO?Rt4Imw1%NYZN|WeirrC_>$YEgww0Ny@ieQOqufci@u7 zXoR{QzLsZ8_NSR0$Wly|uSk70&J~gtm*|yKps4^Y^|?QRfdU?2WKjErec4#=q&56m;_z(W_Prk;N0mZ@q343wxa2WaEVIHhnxb4jcmeq&L*CBh&UDmV}HK7-di2`g%o`SvL-E&Dly*-EhoY5C;Q-NBud6O zg;Sfx@9QwacET}Gy*6jWJ z!%V*ETixs{8q|(+OX`0$xmgc z1b9@rZU5mi&Ie-@b9|Hw&Yk{i43CIZl-b#e{^vpd+sFGK^6GDD@IQLv-y}Mq5x=Iq za5_^5hDie4g+bRc?-?P|ck#40uNVuY?0yeDR^2NNes9XqIZ`;RArczKT$(CfY8OG% zYFzzoJ6w}X&|Ng^cy2w{Q|!_tY&Bc+W8-hW#C zC*zrIO&Y;ekxs_0aS|o>XnZTtQ*%FHeoCAQ@?}5bqD#|b?r9hKByQ%PsJAbVilo+G?iZ=#`2alwxumX4KDZFGgYG^TEzzK zneS-Lbr!k*;+j;zgaNBAf+1^h(oWN9|Bl#(JsIMrkG*C@v#uvk%8+ z#r1Qcd4%hVMxWPAEgn;972#6qh#z@E`++M@E~eqG)H>x{%;Wa*0JuMg8vf8lR~K}x zz4LynYuNxtLxGI`GCjL%vQwOo_)GE(-#y9j9HgGQ zni1?%ApBKWT`m0(yxE_t^IhmpWLorOd|$yv{yI5=Jd%P586|>{*MlLPEFUrBD%0EDP+&G+hk2xl+qtcf^H?*P9`p51$})P&||QAHz{*v!J7(piWo zghC|rDH1 z%#&Lv24^7K#P+kQv?Tus)Bh_Nv1WML8bZAX21e#u%rbH;qARw$HH?4fkW7p$dV=}R zc4Ycub2vrx`|74H{YxUoo?uV7Bs$Yae=$=u`mdABoMx1dHjh62{`%2!b7xe*a3)8+ zqF$*3gsS_Sk+WXtXL#$PVdjf~Y+H zB(^Lk%Z=V!i6=246e&P*3hnP6Ce0|ZtTy?Ls<*{FV7a>ii&VU01q0T6e;awm%!%MF zL3u)H7+^`tMI~so63N0M=@J=@3l>JzQ#`cfQK$m4w$*8t_|g!lVoI+#zld>q6H(Ef zEmsO#@k4qOm}~VSe<{rn;Lk61iOhF*XiMK{*hp!8L8BP4dZ+J%gkpQyZxgxMV}gf+ zLHBFj3+DSj*o_Dhptt}Q2g`6igxN$!2+52h13BlEh@O{~%ybucAb_l(^<$Kli_TRW z*lWW>fpug3*y$BhUY^+#KlOvVh9hHIVeifT@iikyY|>`edykJ0^DO#Dro|j`mi{#I zt8cxEsigXw`sw)GG2d}cTYMjdTqWiHLYnK;A zc`7+F>~_~0^1hog!kfeK)u2S!2S>0z`Jvu%xbY&|f;=M=kprBT@bQ2LSg8`^HX{4u zfI`C3DD9t(=Pufy41f0HS=5JUO!H7x8u5}mim#Z6r`y>ppc>)8fE1Pb6p!QnRcV@H zSFXx@S?b|zc6Jk_y`j)R$ZG8#i$aH=H^H}fb}2uq9`3eDM&T>px5-ZJwfGMkJuQ8i zV+LZu5+7^NYfAS#|BW3?si+4x;@o+_*y;v`fQ~46n=d2Yx1N_oeJgzh2=Mhtu{)(E zSqdGW<%Ear8LTb<{D&P}S-SVfA~k-J#$%FPLiXXAriqEkLZbFL^mTTx;=F1-UU>hm zz#n}My*6hZ;G-C)EHi``EW&f(y{GI-Tv}3Vo}X zCPbm~`OO~KTRld(HUdoPelRS5Zi^SsTG)a)dp{!+#kcvuY8u8|F8Cg!GdS>cJq>o! zqTICFTgF4c?V`%UX*VT0Qz{hrc`#9$FVQA0-k6CvF`0NeCo1+CXkTK~{T!PCK6lrl za`SWvho^D$9BgKDUjWXYd)6Mi0QAx;re0ZvcTI#pFOs-@qgdzaBr-@nwRVl80G+W{&+$PsmXM6Zi1uBz zm)E=usl?c4G~+d~I^Y8x+?rH-6olTKZ=r{;#yO;Fb{yAjLjq*tBOnwG$72SOUGD}F z0w?N`D9@H!ZoMQ!Bp|d;WH@?yBS#TQ__XXI;$u^J=*A;1CKUp_rfLjS43_W@ZeOR0 z!a3wfWYi>~ams&ULVh)&ZIeWKKUH5CS0*qQxI8DD5C#i_E}E`B8=ae}(T70Sbh%G~ z%C=Lxah9JZnXAl0M}3MR z$r8f8IUgOt6I$>|+VEDv#$wKZqI&CV_)q1iP%rV1et}B3-O6lFp2Q#fm4|y##KM@i z^B5?63H1WD!WejVV_!7rhvz>rlklu&`@<)W_3%GHQ@y}S)#=tY&Du{aAtD3GUb- zpBZi<1bD~#f@OGA(n|U$vfRaq2|wi*Qb`7U{Ta%W`Z=!dY?@x{@SD8<*lLR?m>Gg_Xh9l6L1 z4gUaLFayzuA8tW4ylS_SqZUM2B`UUm71JNj1Ya$LR%JedCZF00w;zyqa&+-w%+D31 zm^g9aA7kO&HqzqW(7vOF$;VTkO7Q8;F)qzW_ZoPR_{#_YNc#sQ!<8SEio1TS4zE~$ z1XewMSz#rk>nJYCD^?Z#KXJf+fZbn?huHs181c`yD^W%NiSV2T!&pT*1MkeHk!gpnNv`Q8<$80a+xsmJv!kH{M* zR5pR=kku1jH{yQ2eG;N%^ery6yruSSTRC|9KrZP{T}%hB*F!}oLt6iJpHT7YHYV93>me50*}y{09ezbxu!NC(TJiZ0dacsr7EOUPj*|3`a|Eaj(n0boZO4B zkm$xWQySaFRx$M@JU*{ysbOgtXh`fh#v^ixMmMr^K%vLkVu%s8C1K)w`|?k9m#eg# z0s%McCJ>NLee1Kbe~KU}hQ}j`Tlj+36G=@OPz%qF?Fo)h-aw-W91;o=Zc%)Vo%xHs z_z0(L={q-2%K2jmm;^o&0eQND57V=Ox>~+Z!)u=>Xq_6eZkZwA{h6z8BhE_At6AI& z(O#5dr{xy4k7P(zAyt)iO|f)0PbC|~D97(6(7#!`V-b~e2Qgt@jCea9NkUg2f})f@*M+iP_#7kE6v$JzRm7*ZnR z(gJ|uV1RtX?{;LcfS^t3*8yx(E8@t#{s*v6ziMZa)^x#dcPe=qcXm>k{3O(j<8ynM z*l4htwJA@>kj*`9Mmxr9*q2F_#-f{RB~-HD5BT~d7x6s(f}2vuVTnXfJt zxV!H5Apv^Drq}&%#R#zYW}K!w7hwG5zitHgpiIs9-&ECh?be^FeX(~c%rC7Y#yq!R z&1Qvd?t>P`cO};==7#?M=kuTYG5ur+2ySmdC@Am)!Fb$|xpjrde7{~~m);w0Ax`TT zTcis`oKT9a9s%EnEYC6@$RP3&w#1Mz^v;4N-~rV6-Xi0Q6T-)ZKtu4ss!l4ae#{R) zhu^jvClGdSX|y7R6AM3A=rfK3{?ant8u+1ivtSTYFMF>cG?%BBaNRwsK>i}oMmz>9 zUoOTaEF8{)EF%YoST|NI+@eq)?5V>D^70xoY2B}OpGVHxD{`P6x|1r>#T5Q0(tS8|@k*wy`CDeQ*?~9~OoHkQu0U z?)^iY$VurJdv zr~ol}Z!x)jX@5Q;LV*Qsr`&#u8NU9E1B@g_PH%=(y^OV5ft1lnBnO`AIKqGF)L{_lNHkP z?91|{pbZ{VD5~17z&|M_BwzWCf`CQ@ulhy^^O@8BnsOw?t1nm!wMMV5W=?fAz{=aZ zRr_%zg-C)=K&(|xa~U!lhoZdYB_bCvG&~{OWN#&+#J{}Q>pp-x&%KW>JfAFl1G#OH zOw)roJd_vmoRHos&MOlc+#@%-M=c!_=spvmDQ_k;vUWU%9JPgu{&d63=Xdozlop8)+1#MUI|4@NcfGIRDthrId3s; z*8Ta@zdtk`tkVY18|R~3MocTBGf^QxMZlvHZ63}k_ss(9OocX36ufNH2pSzi?1KG( zr?&F7N3frW(VVlM=*nTst#-97%}dZj)o|DOvm=)*-1rq)rWF?2U5j?jMobscS~E0^ z^1dntt$1UFhh@yj{K|BMDT7#{_Ru z(|ZIH5OsBJpoyhntN_wH{?&Q*$m1p`Rjd&3H%9c{DDlvRxnx!!=h6M1)) z{Ov*{ljkGIHeui`wzs%*dZSzcW-SD}#CfKFhX^n6pzfDQVJ}#r~gPxF$ zV6)Dk65-l-*2^T@VV!7LA-W7&mHXPNiND~-zX)C^u$nIaR}I7e=gIN!7Ki_zza1!( zDM^vQwaRB?kS9lMS|=ecsWK9sI|vT(?oGf;9;OS`+CFju6GEB0%IvbG*FfRU%J#a} za>bz;(xcDZK@}a}-i+Pa#JiOCd7=OE*a9{GLO1QP=)wZd)q43Mpqa~J#_(#%yY^w( z4kYbr%oh)Vx4Fsn2)wUR=@pq`BAKPXeFr2jE~2Mju6613cV2zPZ-nfGU6!V79IdOh zPK<5)Y}m4Max>;TWINW~B|Y?f5`Rc*`WEt~r}1LnNN4uyFHP_7;25}#vKXgB*liPdY;`M5S48duTw5J8;v%{ik|Be>Ph?HN< z#}Vjv!)AN{dacV8KFow>7;x32YGx8N8l%kY5`O z?yonyEdPp426BMdq}QL=Wa_p3frY(|l$2Fnp6&c@s1ixGh;@(s@BwHI2<6@ zTKr!|`wV~t`Ty%z|4%UM?=Ser0+$PT?|X!xTFb4`|BJel!lyUKt@|oBU7p2)mwk;K zHfMuyJ|-Fxf0B1V=rD@m;8nkki;aDd{}<5g2MYXU=EwVRc7C>zgMP!aiB+}yx=}_w z?gMDop7m0bqw`gk=$gBw)owo{9nFiFFEc%w2_GgdRDK^b=n3Diew{p8Y8I#^dl(vl z=GW%#B+~QOFy7xSSuYGMwZ5iHl+TTYu67|f(Y;h@`u4sx>5K{x&{1_BjI}1eFG00# zireq)nS2nV2Q(R;uwjZ~f95WV~@0-KFyslS# z1c6Sx6d;4lKXS@{OVgX|=LC%lV7QV27J=UVlLi1&udBYD0kUC;-`W}2RB~dSRW|o? zAixs?!sER_g`2PS&hKBnRdZaUY*_;g7_i&9Y-1ZQ-Me{Q?5cseVpA8C*=YU?s~7p{ z2{njiUS3}Yg&}B2D}XAN=yK|1&_L76)s2^;k5RFHU)+mGqA%DqN`2R)tt_$z?IL(1 zWH?|%uzr+)L!wE1vH6qct=gCPtxc-@VNNcY7^9j;t505l-;d#F-k;*U278rO0%zB$ zXeb{+`XC=v*qs;8md(YM$8iXOa>}Up+m~tlAU(L$>@LPuY z8sL@8hvmJ|+}%%qa4dW@08jOJJUQpo& z)6=Qx{_9UusZo|8ETEKlet0kl%5h%AGsL3>`c=**duc@2#o{XDzy%>_d`O5WVPylQ zOHDtpt+JsFi%FRySrQ*TZBv(QE67Papy#$=OWZ3|hAO^l$8+Gg04)<-)~}yQH%C7_ zgh@{9UpboLslWf*LUug`oL zz4`Bynhx_ihuaD2OqWVeB8Y`|z$?UY0mcbJ@QTlYk{z$%tEtElLuoyQIjhg0S26ZCQpS1iqtDy$+JxCaa>!_ zkg;*aA80jg-IoxTCT0lPt^ns|G$5RwmVqUUYg12F=UoVBd$YU|Zoh-8%^epBwlJZQ zGy|aeiH}sdZ>NN%h4`v%@=AFdxN4UmIB~y~b+}{hH o)V0?(#ojLiDtv!pn4Mq2 zRt6)$eUxO8r^#wHE*pAUJgD+}!elo1$^;Y<`Fic8LO)gsrOwAw2TT7#Kpfrg`)L2( zQ{nphl6TJKpxbor;?DoFH^5iH^)80!^kfd^WoUn4c_5(G3#zsecNW|3XoN}4wvRF3 zq1Qa<4Dc7*Upv^Z4G5_!sg?ofm0WjTGa`!p^cUqKNL(2inCd)^1V%)Qb;qZ2X&4Ii zTkPyfsW7T9pJ~PXS;t8U5~5;Sm_RB)!zJuNfk_Wchli#Mc}jlsDtzuBLqhlZvlk%e zWEkJRjVtgC^jdKI(>S5q3`q%_1lJA;#!JQ>;XNLZdDwKS1p4sZKBbOX*EI)@?c4xD zgvRfdw(^FlV*bXq*>2ILo{~w;I#l^Qt~TbW?55tE{YH=A>9q1QO^yh0WtxK zfGE%usy(BJ{BHCPb`q-t7RfXLm&SRiKR5h`aidm{{$%RYW!SjWn>+!h9k5+IMgo-% z$gY7`mP;Qc%PfP>^Z*0>uDk4*QlfP|r*$!3X@n{|$ zU}Fma4O3FS#^pI}@aPiAqD=sKrr;9@b7w??teCM!jU^IB@vJj4aLc_j=YdWkYDq<; zXfBuHp@R4MU2A>>vqf_E;^Eb^1hrn$_>wxm($KTw^&EL=qN&!{9kB|4rH{t(x2J@t9r}ST7F;1Zs+^bcy`K9_G>JJ*?7F#?=NtZjsg306)Yz23A zyFc-O7fFKj7YMirxiRZCOaDn6k<$LUfg1FDk~{7(gE>a`0g*-mO;B9*h8N7@z`B2&^V_J9rQf-ADo978t5va4!Cc z<+Yu_b{*C!4^jL8tdG>)-KVRmd`5p>mS<63r_g7Ph|e|xxGnde9dQvE!-Z!2L>x!< zFeueA=O)BL@Fd_Z%;qeZEqiQ8@zH1NA7C`8u8p=27+utM|Fa$SZ;P>OWLfq3Zbd}f zDz>2eDWtult0w~$W)#>iK#|e;P0eMP{8KvHYsglzxCNjkSGx>(u-?NcKsPA;iKNna zt$YlT{dvB;Uo#yy;umV@Eg2xQq|Cqm7%CnNrk+T1W#@-Z2~^*!Ln7;J_h;Xf2Z87J zio{%akfFsx-Y4ASp%d;MW1C8x{(Yp__H%v48z%)zGTK-}Acq>=-zrn(4k!opY5eY> z^AHJBXwC3e3f=%Ov8_^{nLy+|XaKFVo3X>fMBs$!y9kKv&?&lc+8h=m+ul`u@!DCnu~86;zC8EOOk zUi;>?#Z=+sUTkmMj#-J@DLR5Ifu>N6Kw_8t%o7~^W#-TtRG^yEC3e2%c;V15>_9eIwW6(h-1@ttwK%ey%xPB?#~8{rw3{1;2XX0x+4 z%ebpR2Ly{n1J$_U1F{Z{L+j34K!-ZbDQdI{jwDzVZ-&m2mF4GfvCwF{oBRmRNc} z{2I)6BcP&b1#CZd+n;YS-Z}NWI#lUfDGxb&#RMupj_t?CLFf|%;n(dCZZ1G8-k)i- z&;UN@GpNrq1WqW>`B-=kFaanj3H}G7EdRLW(hO<9f8AfbeXto;IK2~wRkh*$RvH@lzVKtWV-W{=26!l4RtM8BSP z2OuqudXS6URxCD3D3_2YUiL`#L7|1H>H3a3~Rh#8@12%u>q(F89aCI zS#I+s5wu;)=VQQGmtS3bhm`B^4Hz4YsO94E7GsO*|ABI#d1VXKgxXzbUsro?9RgPW zV~r&}mK=L02((7|zZ3$b#5aF}0zv_=XFb)HTXy4*0<)~;{DhU;paEF8(5nI|>_J!< zbP7^ZgM?{p%`;~hTrS`Z?3x9+O!X377tk+(&I3-gc6MIZM&Q~1D7o6cvhuwPHaJj5 z2?*t43*bfwXo<@1{S*u$No=e;K(GLH5FTK;UQP}x+X2$ktS6^n$mJl2ZS=f}gx{qk z7WSDaD4YfMHo(fyg9-^VkDLPB<99)XgIe}XgcpLcFUfh_s;?6z^lQhmC5i!_ae2;kcqcC;P_QCq=kEONZ!) z2(|Zf3O@p(4z;{Js2ocJ3HR?BzzM7M8!@qC1ty@&??t=$L+}rnTHTU8sFX zJ4q!LCMZCE{HYKT>>e3migkcj3daZJM|%c;(gWu+YdmiL@#};ZGHHtz#4M1E+#t~S z0FnY6iR^KOW(w&-Mqn8LpYsdt7OrJYu@lYy&>w=gW74Q#a6=GplWA3WAMm}kCPG;) z{vVn5JR1@q2rAz&c3Jtv!tN1J@gRemiM*T&I<>DPA~LE4xY0I6>%rC=e-d1+V%vM5 z`lD+w4h_^&k%+!zT>$(m;#*#ph&y1;HFn$uU`#QU4F&Mr0ZmA3uh=t@pdRN$?W=5$ zH1)uTrN6nGV@&uVPW2ohc0ciQIOr$Ot1a}mIKYwYK(YG*@dYaKq4&<|OR%ViYSr3Z z$K`Y!_gkEdCFp~HQw+`~W1bL1G0+=iKETme2MRAOW91GpGl_A3SGfrXsWgE~mmNR) zbE;D;-yb53TqX~j8w$22S)ej456qU#I(sQyj;9C zOvqSfZ>a8`VvIvz3riFls9gmH{P~DKNeN&e<#wc_e zc-+=Mfq3gtiq&M8A6|ZY1-I=Ir7Z!-S8GJXY*Zpb8E)#F|1?092Bq>C6iDbdfX+i6 zo6IzDf?=L&oojWHk+|XV4h|&9>&4dO01UJsBEo;np!i2xbc{2u<;s1{^p7_goYG{U z$VmUVvctY%)qjeMi^D*&{as-NRMVdD1V~pRNS&mE&R0#iNU`=D!k_lm;~E2T^6RrC zfeau>-FL?vz6eys7e7X2|y|@X|$)Ky49pzs0sfR*)DZE5ErF?(t-;L~?=>#B zlFizWr!?G(B+GzNAkWG&(X-?K%c%7qp4Vc(l6u5WR~l(gF4*JI=ty88OS)F*ZtLUG z(rsyz)d=ra{bmU+i-DvPj0Co5v>zgEX2=)XEJ_SyT2k^aiS2%GS)RU@v`;@uE39#= zmD05tM>>QGZYAaCH-dk+L+*R$L#l3mtRs7iW<%+}yV(@aXEIl|?-BAwE8QHN?0z>i zkuP`t9E1%J)4G^s_7%W-nI3c)jw@tII0$NrzJ6IkfHq$4lHd^IRZ^sKd>dx38l7X- zl#}NQ=XZ1-3Z$cS>iEv@D!%XdyFLkJi%IvXn-MDUC$EFX^N?RJf9f>xp1p)VELOX( z)S_Rm?Hot}dxP%X)7tSm3?u3>QYsGOYQflVq8%V>poEA~8gb}rE}z1wcz*xh^H-!t zSq4K!|AML8eeiTW6F{&{oM9g2Id*;8;ug}&F!2L37z}wJfYt6CCbXE zNJUCZznj;mC_BIXrQePiysw{kC#t5XQ{lxyUz`4IM~{pYv9Oq%0ClL8PpRWgNfNX@ zS(n-i^aU$jPj2SuQbndi}4@qRVW!<_ zg{ofF$i^6b1fvi-$33L5HQ*d=@t#C`P@R#}!{DA_H2OVzeuVnk5l>{adg-IGykJ4! z+{37)5B<=zkIkHV7x7H33iofphti!E8Dk2v4C$#S7iy5MMmL*VoiO2OE)zU6c9|Tn zJ6I;&=BWxDJB_-p#Cl7+OWBgGTtrPo@*KisM7OycB%_f5W(;N8d&&CtaQ3fHl^Q%V zU{tMs7lJci+im;CcUXH8@t{lMMT^&6uUu+!Z1g;&YjGsN;bi!?GsMR5w8FG>IBB~w zuJ}6}RZfJ8=@9j!&e7rb_UBL^o9TyNCmhrC@&5EpNY9b#gc=`98-|baw`**sGkqVe znRaG!v&=MY^mgpHhr)N_QHS zE3v<{4r#W%Yz|6myyA^>FfCdH%?U1tbFXq3^=m$FJl@TpO25I>T1;=bB_k0xo(1p9 zTv_Aq=R#P~(FuHfQCeI!6} zU|m=8qwRd^fTh#h8)U+w*Jtx?WA>TSWOh0(+Y_Gck<{@dtVILuaRaI>G0Zbwbxt!2 zL9)Yjw-4KD%c5P|Tu9EDB}ObgQkAEqEKWL7o&qU2tTv;1L|W(-QPq{dg0a7S%)}m-hW2h))VDh9Wy_ zxy3WV?L>Jg_YRDL(PrH}M5gqYf5H!tSk)MlAA>ez29}qDpb**`<;BPdui|RKNsJnt zIL$B-A}So2YM$r|=2yDkx42&nJ2~d%W-PqI@?7~qNK{-vS#_}(SO zqlZ~mf1MrGbk*zyjXsZ+BzKiia`*f-5<68bd}G5a9R89=8UMRhX)48lP=c7r%z~&+BZ8EFN?j57^5sQqcZMynR~MxjTk@quxoq7LT7`<@3C85_T%e9RERqcxvmo z!92vv@wNHaDsR@u%6>K(x?uEj8*plv^D+ovDrAiC3{HQK>XI5th^sq~WSBHg@{KD6 z;fj%{qNG+{4(;{s9%4SZ&IH#r?4T{DvtJ1VvpdF?+Ksz8waihafnJ6^@<;OI1bCz* z&8rLGty72Ne`Z7&&o@7ul%F2+gN@x#UwMG_YFO`?Ejo|)%tCauazT%J@k~8BhXzk6 zl_BP+hW6686oIrph2bFCcr1?4pYQzT7r1Px2V!O-yHIL9a7IJM*E`hCA7I7L#?mmD zYzgd^8V`2X5#Wc=e!j222B<15p0|^679|DoN>;t3sKi5(J7hiKlv%j6Ad$l+ug9)n zvxyUt9J9usBZO*3%zW)Se9ozG%(o9QIoJCehS1Ab%eh9*e%S>jC5AeYD^ay=Q zU0@k)%^vqmV`J34=4kRT)L(CZ4QzZrBaFB7PPAzA8-`)Ad42j)w?z`kkI=lMd1Z_! z(i6O~W6syxCmfYt)A-t(aa~CQ-Z=MWZK~_3`56Mk4bzoNm8XvL0x?M&8|!GKL>l}~ z=DRHU^TVqGRdJF+Jy_LU&uIj6J#{f|L;{ZaDH#Y^s(1xg&mD8ODFZOI)q~+Lcq>x7 zJgIUC`Dds8AKuIDK$IJ-cL^%U-HnLaeM=aeV1z7-3F7rskb-sZmyPDo=lt5{4*65wED) zurlpv#p8#Aj$f<{I|oLqg);_B+>6kes9N(m`_LaV`Aem}=tV1NU)=Sd%?l&%Urc(l z=y8D_mdTlp?jd#}B|t?xtd1E}Heg;&mG)!2+Oc06Zz?x2i-{>~i&nOA<4T%{i?y*zW6!NarWwM^VnHl!A^6 zX%{f~8%jbO#h#YRT;J*4amVGUtGnNOM@mF{`iKL8pN{p@*$`A}1?@4B#>K_OC}vTS zdG`tIF)XY?_cfY3>1|4*74x0BOLw;k;WW(6-nrig+|#L-RHPZsTP{ow2y96a3W8=S`5sV_-*^MoXD_axB*G zCaEJMcoG);$y^KHhs$(fDl+5@sD}p#CRSEeIG0w2w}Q{FUy;?{^q1LKIJ7EX zQWt46H#)}O8;O`?d!LV58GgT{`s*7bMwv5tafCwodq#vX0et;-n1JLj&5IXVL zMrp~WST@(DeM42TI>3HQh$|MI)E*r+et1DgXV12;(v}!0Y950s>;~1mnv2c&0GrAZ zv_BTf+1Ao9_MEcN;})zevPYE8|UXb z_mVINaHJ>2=Ox1x#Go9je`WeM9;5_yG|In+nE(+i@j&U{fBvfwi2FCA{#B3C{qsO& z`WXm#Ui_ba6>MN<*H>dVsKb~iCeUa<gshOHid0R ze!{I@b!%Q6RXsg!}zK(kHgxmnqEbm)9Iy*tByRi6R%ZjL!0zltI78VmdiLZ@3u z=<&A1(u;rJDtNufOyT4f```i2;i|yINbh4!Miybj_6-9G7?8XKU6e`X+09kqie$9? zv*58dWCZ)&MazTX4Dy`Ma%OBMlh>FrbDNC9$hI>bSTC+|SP4?*>H08)Yb>a(_`gzD zW{TJQ@=_gn`S53B{g{U2nnD-oXaeOf>UjG03zY+=trr1bLZ2F~?4`D9lsh<_9(bJY zEqJ)$QL_mA>I#gcSIn%lA3%&(bH4g=b$4bJV;n`9RF_IN2I`{9R9 zjJx?MCHLRq%VAa9-$j7BufV={rzr~W6&NRM4w{61zR^x$b+eu9E`LjX28FtzcHKMk zaz4YzdlLbYd|IRet~n{ba})E4Nu~5FXqmMT^5!m+WXiDn06tYa-Q0XGQ&CYtDQenm ziy;fSH>*8@Sv#4RI0oErfz^(O{zh944+i=o_CtdMU`oCq12%r<6fn%9e02){t!kg@ z_J`oxdu`>H1CLr}3-AP%M*0_QD&#c_uo}n38_|(>>uve8)}2<$N^HxWph~BGJLxBf z#g&s|118BaaTSiWa)0Gg{53u<%u_ z{)$uyTvZpyq|Qvie*ja+;TCP~!XYy0d=fr>SH!55x-eFy|9hi8FTTbrT zv2Lh>ai>EjO|nHI%;bpT4Gg9Cr+XsfOyk&+ZR*7E4jEf*g|{O9&$S8^>ghA*R%??_ zO3+@m&AWZWTSO&zh^>;svV{AQv0w9eC;2xjQjVA<+H`AA@b2@8z?O8&-weetZVocx zB$mdUzz)TQT@%*#6ML@J&xAIF;m@@wA@}rn?f$GW%9P76533sgm@G2CQ(Q3VE$c(} zkdg6O)u3?sTCyCkuho58xDjoq6|f;zVITJ}=>3{3X8LI;%34{bhksm)MuD7EPWr75 z)ATGt|J5%EjB6uki!tP>ZJRiC@353%d~$}P3?F}dAC-o4a~J3zbEh@nfx17 z$yd_xmpX{(vWMmaj>~8d#ER=G-qlJyyG0f}GuthG*KCaPAfj8NpXhywQ&hCz0=Hh6 z9%LA+gf*UuchGATXRu8$6XY8`mxW5Kq^f1`^e=zrx5p^%P6}(e+Oo1bN$gbRi5@j^hoR{OkVUa`2%slS$O`t7DN!u5jQNbefd?q&iczg&Hd7%0%*AY7%p%co}ZNUu@f?PhqGTo6)r%$ ziJ+xrLiF?|GnB78gQ9XGIuico$#zhi)W3l^EPDSC{YgpbFrK=mz!K0gsSEI-eQ*ndHS~K~C`FNk{3o2LhYGmUqxFjhHd#; zkr)gP`tO50TACWRZ9T0as^>KS~E8=x-Jeb_Fw=j!T^-@$dDbvqo(EKPdN z3Z&a&=`ZBLjGwye5+G2x{-kk~3^E%T-)$RwR6bBxTv;STM|@oR8ky+w66vHiaR(9e z={u&fU;ICJA$MO28ZC2#{P)-X(>?!tEU=IgIT(!pCSx&ZbP>wnJ>>O#*_vJXeDIY_ zFHc?TcOUE9%I80ck_`OkB+lD+pcV-)EhzzI*g>vn+>QUEC``4sYR6l21OtD(+$evvLp1VcGzC!t3qflAHBe&hkz# zLIEG^@7@8_paJEC*o%TJF16Zr&8oUzco@%Q#9{_w0+I^9&QWS;=;u`Yb&caZz|u+{!1@} zf`@`BNkh1OzjtR2Kz>m4&I{zZ9{5s^S?0QE&cC=s&b za-Fq}DvVfZHC7?T$|MTcRry){9>f#a&GXDv0IIE`USx!xE48!YC(=$qQzNN7{8?xMClx z(^Q6we6%fbnA~0v;Xh2%;eT*ffXF_Ya43RaF8!qtdEBw=Loe%p>srni(BA8qMyIY9 z9Y(M{B~JR{aZpc8Bt;<)4`GsPLu_l&Z*g~1vOE+8`%+#M<#$i`CUA$M)aR9GGI_Ik zMSK~Ld~u^@q6MOR^{QzV>0b-J7Vr#giBeqqXoIdnbX~sh`t^AXuX?9R@?zLg;@2@k z`qL0rJZlBV3kokrly93`6#wJyi7ord$$6W2Zv?kp z?rD#G#pEIiZKAlk2E4^%w>gCjHeQ>&#S#sxVYPnAWUoFvZW}cq+u!nDc0PSG_0@kJ z!)TPKL4Ro}OFF~#Q-@fUiE&x>{+m~?hVIpwJo7x+6SaTN_M9L7{v3-S9iV&z$VbTj z`Gn8f;;LxVkui$HeDWYzvcdJxFyK~jn7`-XKzNb3J=jArl7yvN`)(!%&+K8Jthgob zQzmqasmbXQ&kwPMqts7o=papxOZ$0HP@6Qh+y!V=73Ib9tRJZuNVg54Yi?3Xb5FgC zkb=5O7xWY>1!8>dr0n>l16K^g0uy2SK5e~Y2xdw54FcUn$EVy|XW$t}p)NMDC0sR9 z?$?gPGmGrn+OozoHrtU}gBRLzHBopHzV1BPCqQquO>JPLj6X}skT7^BzQzHB6di=a z7aWP1wAD54SL>$~|3+WX=t7^}r4zXS{*EL45KDR#6Yt)0eDb;7h(!>U(MWtlPMl)S za@?TM>GY0ul?*x6J)t{v0?jlIQ>Sl?h^o1PPB@7@$ zAiI@@@5&3LynHdW@2xq1l8aN{`8w2RAd;3~+gWlVlIf8IA)*>QsZ9Uy@cgUHRtK%^ z`T9=UVTtk9Yat$v+ARS~Iv%F7q9V2UYC4&2?0ml?qdGxF!SRkcrr8QvJ+Y zkJrdQ3lihTnuhbO+wIf`=BM-b1gj{%W(Zh&Wu*~kN82|wVwIhfBXq7?Z8`dAw(_6&fTio_**Fdf)323H#ZK5~AxodG4`$r>HK-*dr)OEb=!4>kh z?bEF)L!i{_b}ldY%_V5*B>`dmajdITzo^t&$5y3ZQC$4z1iKMIM=@chc(qBHKHY2; zU@`TW1ZXbXDl)Cw0Xl|(5m-df+-Gg6)pTs)qAk=sENKA9qrb6sjQ+m&J|zojL<-h* zjAi|&TT`Xc#`N!zXYBfI2o;C^OLg6In{cfFsy9v&B{Co`n=`#SeiG28<2Q4GP`3uqzeOfvW=aCop@gF4Q@TAH*LGS<;E%E< z?B7W|NSRcC5^drnGhgIyup}m=nuiwLSoN}>OZ8c7?Y6jqei_z)Q9Z%8zgR`%5#z;% zd8dX_=FXiBmnTIX%1X0F1NWa|ZQ)-#rfp8CE5=)xHu0B@eK3>LUMU{c2A%t3T1F=>vV!AP%SDp?@(~jH=3n zV#c}*M+6%P0exTF)J7!@irMK65*2KT74|wycb`@Hr2Iuzpu%b1mQ0k&2joZFUFYO~ zp)0Gw>3WMtL7!BDIVqpPfsH5*BvY=)Xpn}B#5-U_#U&)55X||e-#6@5rDmt2FBK@} zLD(Ms{Hmi5@a}Rmr;4JY9Z?gsd4jrCLIR^258<+u>X`4KffW|v&cm6h7ok6i0uwq} zoyt5;LKh|YXD?t#Uk|sKM@8H{h~$39p)d6N>N-PvX;Y5Bv#No>RyT zqrROzKEOc?z8nRjX)j{cgFH{YSpAyq7Go5Jm)`#Hm!e zSU1JmKx5ojwjiQ9>Z%k_A|VZ(YLtQ|6_zAJ?NRU#Z(?{H!=GDcgMNh;+_mGtyl&G)^hjAGGQ zk5KymSjj_2{N8d+Hqb-ReiaFzM&WHGv5eY&kKR{ssPY)`8*m)@V>f_V$}gv$6Rnue z=-L@E$rU{5O@uVme{V9mx9N3cKm*A|ak){IHM(9KO4JVSuLS(w4YF=6h=b5M;O4w( zc1Cu>+iFg?^(x=ACF2Ui+B&uF_jk{Zhr70?ZKzGnG*Xd;OpEn<-|I#@vZt-*-FAyx zDR{h9Cf0ohpq8+svw_+y^(Vq$A;Q2!TrtHM0_10@i1f1wcGj{6q6?M3*gTAW^J)pF zZQAt-IH-97$|ACgqa&B^*$97u0d%bNyDTDG1SKBru7XM0@HhTg*>jnY+%+8toq_J< zm^<$4;AIm_P>TWRD?yu*IGeYMJ`;(X<#UHAofY|}$NP7UR9hh4u;RKgc0+ioJn_SE z&Y{l+?d$g68ti|xhO8$ji@!-w~();Zjpgjh{s; z+m(T{%!A%wUSR>)u?v~go|{U!9KVL@ZQ0&Dr8%H{;2lMfY3A#|c0K%o&0a_5XLK%* z8Q%%1*=iC3aC*tYwIBfd* zLZ{S8pb5X_ROx~Fcs&u9;a?~_DH3X+J@O+e-x2C%i5fMCJj&PjXrwKs8>u3Y*`{_x zaV!ErOH$(ef^;Rjr(m^FPa<{&x9wPcFcGpoz~7hAwsc9mVdIz(9y&u*=Ws~eQLyOx zd+KvuZLL!zbZfUgm6zeh`t8%D4x@H!)+l^>S~_dHp8tSwW55=6BzgP{D!s*A`-z29 zYW;_53CTru*&Cj$7h2)Y>$x{qCVF^ z1W{Vf`~Lm;8K(2TP$e6J)x}vQO{eyoLn58(5#G=Bm9_Gc@Z{$K!$1u(+bz}>nur)R zGs_(0&z(M@;I;vdqGJbMd2B2C z`{sykh4k8$WzO?&bA;hck%Lv&N^UP5 zPHJu;t)_wXrn%3}VX2x)NbaK=PPc>c16J}fZyL2RyahI#jMRGpE%OV?2Pk&^|2=rkfHXB{8sH+XCG-x0v-K`ux1{f~}Z7 zVn}~ty3@6k5x#AVl2v#R*{!HSf?C;FNhDTr2V(m7bEo>d?)mFYdT}6478N*#0Yd!O z*JB_D<@leU{(-DyXsvMm!Fg`~VAS6r5cr+Pe*Yjo(K3^y|CIQ*=j(sH&Oc@A?Fsk? z7WwN1|8HJ`Y#hvW$qbU99_y2UeGd#f|3AK*iT~{lIsAjCR1apT&EKD%HeddZ9-3IU zJ#O6E66k^ichTHw{`}aQSyQNnrcU_%8RNJ55r97(3Lc$SZOPXE&vl@pfo}_0ynnaY z0}yqiF6r=^azk6ff^RdF&4h0%?6s}+u0cp=(;sXoH)z*T(JuMpf-K=ls<_)%?HIiDU>8&tlDjuZs# zZH-k%R}7d6r-X|{u#@nAc3Y}5w*&dd_Ed%46?%GCFJ0JJBNh)1ls3cf!-GXk_{^_; zylnw*vlv#BTsqwhhzqL`SRgnk&BuF+YYDqTLIR&@40Knkp&mEB#jZ{^Pe}ebnPjv} z03uuVJ*Iq~=k+6_VgC^rSbncVNzB7-=l$akSXkJZmhCUV8+%wJ{zLyaFgBHF-gJVn z?iYyqDFUdz)vV^Q=36I2*V0C97qYFrJL5-0&KVKDwX=uB;AVVMKX_kvDA+9BXZ9_5 zgQU{-ms$%2e#?w~YYQf+E?6^JIxi)N)Bn51_Tt9=zuwgBw;d3&j70hD%8R7jOL6u3 zfdXiDPpy~iVN6uq&wNc$Yecj$9eqBzyxh6hPulI4bac&%xxIXSoG*U_-+uG|w&Mi1 z2R*DEpSy=algERkXs?o%^bpvK2<~XVoa-AN>vR|kkBM|+q)!KsI`zpVy`8@ny`}g6 zI*S+s=3Wh|(okZ6;YQy?oADqIL^3rnw|~~K7hPn)yV8EN06hyHVmPJcIUvq{XzT*K zjNT{!ma*t94~>dM2icd#Rnit4%UJ8fspbECvP{`3yJvFF!Ibdh75Y>TH&pO1894 zp{Q^6rdvb@4Bo@{y5Yv!i-1CZ{r~f^Dy}eLa=L}2WMEzb{g%A)^HnQf)_r0qp z>h>o6=VMHXBD=5ul0W@_7!IWRe^lx0C(Ve13vx8`YXUs;`TH(p$DVkkZ*{JBzx9bO zx3|}+3<1+ZRl5J-l04W>I}sgF1pqc^tK!bYEoXcC_Bh4b+WbCc3Zzcuo414h&F&HL ztVYogkbK^Z)EF$b7y#n#6|2wDKrJ}YYNJ-0i{>9#NqV5R|9p>raG{LrK0lKCq3^CY zek4@9dopE{X05j{=eh+ofhU2h>c1CeF_k?81WPA9-57y;XXP#z>ehOoK*TbB3#L#z zpUD7`*-UrWkf*iML9~BfyVsW%lp%r4CvNafpf^p0Q9+op5+i+7UX|odXeR*ZdEJ2R zVBv9IhTQ96AbL}6(o3YgE%-ax4d*kwI9^kv|807z(+Z<6K_Usb7E#<-o>}7+_{Ac-dm< zWbp$8Oy4eV%viP8(1byHkgh?50=2HD*@?ismskEv=t%~k;V#tStGhsna((PnQf6*;;|snf6h7HtZ->BxjeeU@w)fd~0^W^<2s zZ{bUV5^QE~n^|5YKL}26*3{Tk+LC@G49NYH(u`4ac_?wU(@2-4{_p2~L~;KomP^ZxRLDdbcq+H3D?Kwr|~!($9atIv-Ho8gQLC`JVo~Ab4#+ zf>vdiXrf z6Lm|;LJu=ERP>emTgO+XrbO6)@GJk(=6MQ46xTq3QFo=^;w^4_-0{rh$KMJOfd+p|xq+D4XI0xc7Z)DeGxP=n+7|Wcs4uPIiKbqay9PI~AZBgN=7X)DhfQBf$$un7Vt{TuV=jTxd!k#A?N}F>duI5Uv zVi^=cb-U1wu!T%*^6JGiu+662J^-I5BczlrTZ`t!xv~4xSs?ixaNlSyf%Uks9S3ND5*LhD~6f6hWaJrWmM^UA27?W%qTG z3b%H|6-VT%ZbhbXPI~D{T8GU-5aI z>c`Xvs#tEDr!)&z!;=O&PiS4qQyO`*6e(aIV^_+AxZQHpYM$$uSh zTyqmo9O$@W#`LSn4D;HZV8{K ztathe{|(nKNke%LbRpXHsa)*N(rBpsw#@mrGT(;DYAGn<6DV7j7%#b8bhfuJROJ&C zTz97+_4qHQo=LXpH0;mtUK?);MePIkGmbf#`Oa*ML41^NoyCt?K~D{~BLTQ^QjYoy zUFk2%bhZ|Dax5bqcgf#=G1VhPI5>D7Q3P!i#e{?m0@~+;NjR*h#|K%A3(x%uG~81< z;jmX>wHg%;V~h2>lN8sMc9Ix>*Rto1UV>?W$Tj9JXTK5x%q~R+k6U*A;2mWDiOqge zGRvQ!%g8YM$+H1)t^9-j{HYsXlI^X?z99U1C=ZkySi31V3EvS4Ss* zc#CLQ8!D35HY!_ z`)3SFFR>8#y1k0Y5yekbA0uxIE5L5e(Wd~Y5GbLlD%t5>$2g_8)gg45hs_V12bv$B zm%Di8WKctjfqqSu+HIf1iwc5$K)M)P{NCfjs%afB%T6BJdmjk9VP^;ULsx-e{q4FP zcae~T3C+5w&$b(Tg8|P+z;I6QcZ=HP>2LXTY>7yG)L2)=_*KH!QiTtu%j7ZDW3$76 z@cS;L>>$i|3}ETJ$;L=~8Fo`wzEe!AE9IQTeuCEvIIqPG@!M zo`LxhK+!ZdD4EIrpPmL}#)*}%9b1I+A&IA;7xxCJ=x1ijY{VA-91%{JLSI7f&VtHU z?&_^14a8+~pQ21MsiuSH`N?;qH_0i}9S7@{AX4N}*VI&v9c!kB&`C(8(8-VW z7dnHXOgS|le??~7$+rPkcqIFrtY7W|UBOz9$t3UBuX<&JDT@)zR!|{~|G&V*eJJT9|N`S#T1iJ9Jb(Q)|zpV1Z$e_;i# ztozVO`am;jXYKEq;q&fiB%D&v+JT9AuNuv5Ts;Q`bp#e-h4)UFsc!#~J6s%K@%)EN zF?ayBkW1lJHF$Q8^Y0nF4ZS?#)lroP0QT(Yh>A82(v7nFgNT3Z4`gjtS0YOlBA(KU zNo5NR+%MV&2XABQs9qy2hd{s=)vKp{Bi?PqK)?z~*S>kQmJ1j6?R<)}(nXU?dWY(KM)Sg-*RKyqttIb z$LnOa&jwsGCly94xn*&?XrzD|LF7F>*!R8!ndpJ6hSUaP~r zc2J;+WLzQbZT9k3U2gCI{SbQf3CFg9Fks%yMW{PP%B;Z=3(|b!nM)5-+@;vDJO*i3 z*%9IV>DWh>4AoLpkw+_nZ3=M;rGw&A{RARem+Z~Z|30+A-n8I71WOpu{&OW?7d*Y* z*km4HsGu&9{s#xhX+DkzZi_8tss6$Yxl)$r{FC)xH{Nvbi7a@WHn4s+z+NEBKL5Q{ z|HnX-FV|!+Y?i6G@3g1eb?aTm+lz^M5$D4CFZKf=oitMO(@5%6Zm)urdurx-9>*7> zpIL2(!e`Z51b~Yr@EXc%(Q>_IPtbfyVbK!Iaof$PHTc7FKGFQA;hzf@UEk%l`6Er} zc?_}9(QkJ>U2LUKDCP&UFn$)jv25$lpu+|}DKa4kD>0R7Td(A|G$8tjQC&@4VOkp?@Xt5OVXO zXw!>4*W<&|IFSM-ZtpG_4-EPXaj6I(z#J6Fya3{*5`0N$k_2bT$TwgSSWz_^lSjOM zyf0+&=G#lBm=YE7`)>QQPa0WGVhi~aQe3}!cm4u4x;IM2^Hv)!X|`Ln0C6iU81ABR zW1xqiZbf|to+=x}(vo&`qSIUx@nmFJ$jETZX1yiX&{3NA-LE&+X5N!=e*tEHKN3H9 zi-Ahc9(6=I_k$8Ww#M;VNu7^7O=&-YLn$UNk$saVXDpOFxcrY|Fhwx-(OLT0Y;PgtO!yNK?`lCjurXwon4tIL;MkOY+vF|yGsXHevuLIN-mSSj zF9yq0!e^Hx!$dN8pzp)1wk98cHX?i7Rxm~%yigZ~LN}%0PrC#A-G=mRA)2-YMLkD$ zIEvnLRDn%ACj2|OXsQilqPENa55SfVXXxq2W}*AYWxfEL#Wrij2nzn)I@q7-noJ}k z{{an_tivB^ej>wOU$B{NJM3&cqff|OWOOcf(8A+K$XxU>rz= zQI0awaxtem;j(DG=9@{#t=xle+&VLInt@cEhn(!`lIU!0OZs5hzUwvWt^G)O0c5ww z5&kd(GXMwFUu!~`9tEe{*7*ee*CG7}1OEHW{{QylON7hrlqmhl_og)6ox{S;%gmYO zm0Xp`!kfw3rW2rt0j7dtfkO%#=53pRiMiZhSqJHeUWmL}Y~YkBc4FDVAG})Do2vhO z&Jq%YdIAY?9>!ZYw(fSHn?;YQ7C!b+&fKZFA5%orr4rQXVNsve1KGf3>6J_R>Nr7c zOOa4fSw3NJGulSV&o|-i>yeu7)aDXc0phUNmDI`-6vGPuJ~^flEMcS~&~4oaTl8V= z+TB|>>O2B6f3#?#mj46Hep8hF15r<`I=PPLzA~d%1%@nuJoH_n`T=R*7uY3m&(+m| zGoc_WKLkz8-D)gz`&?9%C%oHT3~XDZxecQ8oXH3_{S=W=BhcxkHk`G&ANG307XZy> zX=$lL2B`hsKWSw*15M=xF1hp4PX6cfmq0cN99F$wfn)2Con%w<##oIV&fMZa&tq}d zri<=fS_EU0hgeN$uzn%U`WnN<@^ki#gw2LpmG>rbj=`W10!~CZ-8wpE4O6pp(54j_ zoVtHa2h>FVPsPH8u?sbG`yas0w>b?AL$vwiPWlZ`IRqpdwzzuEJ}6(0b(>s;jDi6( zSg`7&d{O_fsL?6g+=e9$y%lhA0YiD03!q%@pLlLQH$rzj!+eK5_s*NM6bJG4$Vmc`{xm8uV0UB^~{WcSpXo*%ghz(r~`IHvAwo(p?i)S z;o!WLi~~%-ey3;@yt9o`eKv;1MlsJq&S97p2gEp8fI&tGKSVz+@;LJnZ$~`81 z8G%%It@@YUnV(hi>*9*CfnRrOvl8$(-^K#@;wmct2aS;=OMvb__?QepW#;{St`dqj zuUT57-2Ql5S|a^0tzv;qO#gTNv*P+7V#Yp8`Gj}RAF9Q3jhNw*377$YA4`pOS^|1= zCv#x&i6iK=){<>xGSwlBVKYQ)^$s;w8Ef~jvPubO*J zuQ2cwcatjs6>Y-(f->vPH6BMRAK4UAyaE8ST!xxti^cYy_e&`kJq&aXFaPKz*kyzc z1iMVzo%q6(21mTF|FT#oeroL9$b4Ggr6L^;qaQk$1(kGR!#=Q$9W-<-Ka^tCfi;vA zxJvEmH<~m}b7tNw^~qC1Ba)w^Ls0-fRj`6QV_n&|F*}LE&wV-zcnx`8Frc>+;6=26 z6^*=8ZvZ%W zx0Jp9Nj~F{gmulz72s{jt6P8w>cEjYkhlXxtFMO!3x;b8NBTJk88wA$rwdTun6iu* zKJMcOz~JE1OoJCu+8G?4Y#h%mJZFG2+kUS0C^iIkJ961n}cXULwbQS#!x@4e4v{?cuo_|f&%*dL_3p>9wTpG9HR2KYQS=Z>o*$(*%YYOH z+K~J{V#qiRTQ5i}RGH0ggYikvO+W2YKG3;d`xrO5n#ByLYwzOwSP@(JqA4p82RdXB z)NX~4(jk)Q=CA0QG5fuU)1jq=$6T^xO`3fxmEPV(z% zBme%?A;WXL>wI*@rZ~9mIW4mJXsfT!1*q4cqfzWYU}Sf7x89c;Ac-L``_M89!G!ok zyQ80XkwtzJoYzzRn5Acz)~q$^4U4GuL|=!27@Vzj5cT{4rNSpSFl4E}Z(f6y)0Vifn%&CFPJlzm#N~ z@+w1>H0K-$ZKVuH*E6?|uzCc^2El%R({^HY?iznXflcb!P6ad}Gz6A*Na4ek4dY87 zOGw~2gTPeT+dE#F!WOvz|JFijKqi}mFLWM{gYerG8)gn zXbq4I)$WdUzz6`k)rVsyO&0nb(2rQ29PB0!$IqA{QX0Mk0 zEF;79TT#@WsXVk=aQA{M9CkqD_KcNzf6@F-ZmIUr`ZV10Xp_Tx99X+GURtC{yPzV< zotE;nX%u(I+_GFxiI!-1{Qtm+=bU$>mXMvI&QPQ73(M@YLKNo1m!jv`fDIc#kq9s3Z>vX}U3= z^^pt1S0VRUK~mrRwO&Cv)Hdgye$4fuZMN%}(TGl^g~7m5n*K|hKh-f0)NXgm zp9Ov{;ZlQUrb-V0V#s`v5Bs|2t_bM=$UP@T9mn>K7)A z9clSo7lnxD;zMym_Nc;bWp~u}WSX&-$!JPG^OE%fVgN;MkX^UC`{+Nh&(C(N@czbI zjZ~JU!&cbI0W#LJpm~77N&*z)*(8elqOAt@PrYf#GBjk+M4!~1o&UDi07Jj~G_7x5 z_>SIA*2t%R@;8ta_UyFsi6N@@V8~&FO3}h4?6lzg^5u`iz-#h>kjJ@Op|Dr#c<%}@ zBD$F4Moo709H?#9QxkoDu3hxKTG)Mf_0PlwspGS~o-{wUlwyNA3ph=h^4aDH`juIZ zRQ@>~#N*_^wewHbQIuuj*WG~=eUY2P&v&WE3ja3xmS|eSCq6&qQJ4}!#yR5IF$%Xx z8$2WMQu&XzrNATpm|a&w^aIGQbv$;T)9;D2*}nDYKT4gwI4+g^s|mX`fR|{t7V|0| z=jm^&j1B7mKnS8Jnk}DZR0_sdTgMt)mVY~}c|+f%)U0bSdBK3Vkzi0rpC*~z1O?jM zQqGg=zms=H*P3N862g?3YyHD+nHLasbCE9r{iyC^FlM5Y!*sm~@fqXNqSslm1^7TZMIjAdCn2>e`NC&;6f#S46%W{qVQ0XGssgB?oW>bPypZXfvA+61)+$wua+z z@#(QZC3xZrR4{;jnnD244q)T1(zC0%9NjD}lTS3R^vc+57k}xfs;X*f)d4SS>{_PL z`D2$y*NSTUaIUhBuJQi{&soz;!wG&xT1p4be^h2Mg z{{uq0k-$~Ckniy3W!Fhs*?W6zSHbcA_!wKq?_)4N%Mx%xHLm~O4aL7DZr4Cq(SX|x9yX35TSrxr%TMWLC6CFLrX>za;+LfFno2}U&Ox# zm9?shy1FDSofri_sd@Ef>igV{g#HE3&AbWiAAOOTmDxUql_~P;AcK7$abLiQ2(Y>1 zZ#M(ig8jHOz@5NE09ejPM~0LFHH3~XA5F=w{R5akiATvX=Vomvt3`%6GSj}ajGrw; zy*WcPgf=Tg?Yh9uME2a77E=WT0P{@(6ur93tEsI1K+Pi4OWF%v1)HBn723VYa^$EC zVD!(Y7z6^-XmHwn+Z7FlV1nr=mWJ{P*2>O@ z#3Vu14xl8TD=sfzOZlZ)GTdKeaoIQEPBH(h;_SmQIKqmsHdEr$s3mb;lJ$ytDt z8HVw!IW1CY4cM~sObDmNpmS)q@GLGwmWq?J*XQD-d?C&KQHsF%`SGRXYtTaMg$C21 z0zVqgHw({C;UB7FubBV^|wz8W7*5Ot1lr0rK0|PH>9=Y2(ATHTO zAv%%}yR;H`J#=CtFIo7Vr2&sg!=fl$NuNoe^Ku5t*(5}EsE6aowTIWQnc%%+m5whXrZ0D4Lg5sfajw9g3jLKcl+uAF}LHk8|3ZHs(WbMqv zJV~IhNC=E&f3Aj)fiDv6b~glY2Xbje<9&*DTzP8ZsmS~+K~T^E;lPC<9s;9veHh`} z4_w1?2?ARqCT4oh!(!&i{Oo#Bp)cTMp;tG%BUE);jdH_SPw*`i8}3qieDzl9 zB4vFot^5p?A!eeYPsIkL<8&V4*m2fR6|agE>t4WUbz>|(N=?bg$}&-8=~7TtGNhE2 zFIT-{+FNKJEvE8Zet}B?6+6>l_3_~WKKUhANBO#%&SFnxy;czT8A6;NQm^ZM@h^>f zqxzsk`Teuiuw!)foX6(s3u3@fPtn9aA^q`4_KW4>fL{v6iolp5^f>5O}ryozfmCqLEMPm_`7A> zTXrCZsFavZDJ0U(&BGK?ehdJQWkXD6(Zd&#>Z$tE$|*4;D>%2qu;cAo@cAHaq#u z_O7t=l~neShuiUz(iq;~W~_-DF`Pw;1i-`>)zU42WgTQAgv-GG{W&^v=evi~n478} z_0npeA{dAz)+jn~x&5^UP9slUuGVq`TQ%Ms<(6{+1XYEuf!(@4g~~UEDuq zqcSd_Mr#(dMZk1`>S+~&`^KVeUQ1O~`=qa|J7@p%Cvj+H;FIUtZ=25cT1_KLT1>_1gW5nuH*Vh_tjQN(h29sB|MK-HkK|EINBZ%Ewno zILDxzzuqh>rm3&63zB0zp(!A?fYYu8`g!}$u=6MWM`0~D4i6L0@4vtN z2c`czGwff`{(t)=48^sbs%L{$3BQB&)#XRAPAi}b56yfF{`{LF!YyB#2l^1@VGn+_nK`g804=Dz65UJ%+9 z!F!SI22#B%5}nZdd=wD|4R5vULRYFt@US>hgx2>=NP^w~=uQhl@H!!{4?^YgUetl& z=WMK~^)6^hE$XH7+WAGy_onm+FDh2fyMcm3O2F20o-loP<5Jf;^5(K$ezxG`xQnb$ zp@K*O*_W?BZRdZa9{cw7Yk!qj#kY$6{gFKqV1)7p&$If7j8NYfCEV}+JLqg=iWu&) zs7;wfRyv}*-#G$j5S|g71P5->^=X33erFdaf1g_&v2q2-2Sy#%&rVQS$JhOJXK}~_ z{4GaP7?P}(EhlEM2%s!-IjpQ9haW%Tv5A>A%^WV5KluI1r|55G%_bIxD$+C%?2C}6 zL&95e&3v>g`;||ym)9wgt;;@%;4V5)V)O}d;qV+hZvY(kUyEa?F}|xl zcVr=*NGR7UHk)`3lCu;U9&1WRb9p`~$^DLiG2w>TL)Mb6qUMW=5R@P~b9l5DC)7^5 zHs5izBc$8WZ0hh)-x8318me*6EDYDZzeBjOyg3rJ*+q1g*& zWS0gB;B>x#mbOnLi*i7jtlX{2Hh5Sm{6a;oOzM$s3 z2(Xdph!B^OSjf(^QuXKdkjW=dmSW3kah%c~1G(F@xYZ)g?RsQC{r4-+DcWgn=^;D| zCSdJ|^1iR-dm?++3bgAB8sF~{;qx}VW!F62UmHyek`8G2-2)!h(o2C>G)hu&CNgZK zHX!UNeRT^W9C$#Tr~_`D2N{`+kG7xMrJjK0@N{j~pk;Zp85) z^$t_}q`qCTZ4fSUC!K(lZxc1wH)^@L32Le>IioybBq)6VGA)YiW}Ta5HJ8F|87g%m zsV7P@RfGWv^U0%0qRKc7j7Z=2kU|vS**3WD^jg$cCugV9sgW)EU`B|oauzBA5L!al z>)U!7=ZH!c?hM)3Fx{T|T{a>F{xk}5GDE~orOR|7p2fK-bdAO9u4uQnA^%r(0qHmP z>>i%TS;hAgRetF93QBhv%6TU$rHnF3_rFEfaEU_}3|r}B!rFywJstm2#} zDR_m!TnuqgUY#a8Tj6x-gKcf}(IV~lHTg;#u9uZ0-4dx2iwhcuj&&-f7IHHfdmgCu z@M#-f`^Z0uwDsYeZFn=x`Q8VY@SP!1h0$SCkQEKrN30^p(fHt77(9le&1zg9Sy{PG zKxs$+L$sxB`WJ6dsKG;Dy|^dXXrI9C8@plANcM3sV1UqT>(OFwPExtQaQ6SxyxW?2 z7o|PAv|0I_h3e6xwlUi$+UB3mGj~Il44$)qCXa6bTVcS_hJJxMck>b3X#`?pvX<^w zh`9$j6+wg3z?CB5s2$uZgoQbl9AKtSzi!<2gIx0n9Stu-fo&!J)>)Q^`@((K?QO=( zdg1seU)j|U?85~WTJKwJDt4g%2D+az9cV5q1&gpX^v+zTdVW-&i8>*7i%rjvCOf z{PGTWE|qP@y(X6j6BDXKoL8Pl{ zcyO8Ea}0EpXqRx%>G^(FV?p}b>8yLuaZT;ULDfO*f>Ra_hc~`PjD0f^=Nq#hqZ!TB8_pK9 z4-HlXVa5C?nY5U}E0wNyJ;U}ywZ6cmzS2d0rAj)|EbY@K#lX4$H1_m^fMV^Ri(nDt zQcbJ+qwNIWXdg43;cC*B@9u2Jdpn;#sj;1R4+$Zw57u=?s4#SV#Xls@IJe#uE&y)0 zZt;7lm)*|QRgYDhp?@7eC#Okrq1@C=QLIN-TcvEzWk4gTEB zFLif+IT-n6Yi*BL$ER86FHZ-u9xG3A{*bAyi)wuI>#RVCIk&26enbB!={xVLr@yto z-wfNy?7bv*)9!Nx^E;|ePFgK|fp{rtq8F51KR6ZtY~cwrU>kD;w<&Lo)nu%Fs8^_O zWg~QbecT?hKXoaaNAu|H)TP{6R}d%55AOU#MDZ?BtKNh6RV)=J-2Vs;}lRnY8>EWVNwUxUzamTIXwI5r8nS(kgv z=YC^i2bDHKB0DfHuOi0g$U%#ADdJ2kXCK_enRao~?B)%(&(D57?kwHve` z`4p1_s|j|djR+MdvCar#`-b+;ldDO5uHPf^P(s^&Pek`bk+(LqcCuzk-|iG01=o(n z#`cqUr=+JkKOo25Jw?BDp<2o{hzoMq-(f8d3SH+m=4h<4-Z2bz^L+S5_MKZx%Tv>w z$q{?E-NUDTKw`1J-BztlKKPLwp5ArM#Or+SU|GvnXt95ZM=?=5{>Hd+zO+;~MNiF! z01Hv!rWk5W-f6Vn5qIcTMe#>>xt^lAk``uD?*(E-&xpOoLr=eS1_IWGi;seFs8DJ| zypwf%vp00=c{h3JH|wKrpAf;wOlO+Oy|IU5sjW8B{kw|ibJZ>d9na9W$++TE7(P5s zDZOV8hLDHP%+;loQWKx0MNuWqrqE8wwqNrST=)E__5v9{ zCa+weL1MsL*)~{+FOA`PrMz%{Iv6SCW;r?B z)aiQMg~4#{Kj-iJNfT*Pwlv>}Xp9YEqFrnGC8y{2$nS|aVo&!1!vBj2c#{si!@KKq zIlSW@Sx-ZHEg#*9$vkU4C`{2!S+g^rV$Qi&)&kC}LXzi}VGlW!F?!5F3 zXip>C`AprVxR7ya?09l@ZBGVSptZKUKm2Xv3O@K7_qhF4ZiF zEJ9Ok;NK)rWi|u)vb@Aue2Z&gzu346c^y-}e{sd4q#((n zsr{7({a`%@4Q)cahW%-1CS;|~{b<_cP{nSQ zFE%+2+u`U5dWkE%O$yZ{DE}Ly_tw{oOk)#H_rgd{Oc&{+T=M1QJ2ure_poFuxT*`( z^X}W4Ph`7qn>-~S1Os_XlnZ@uX=gvt4a~ve2z1)uR8d12t_*#|Ab2B6L zgeMw|$UDf#VfD6T2|5#Ba8m(I&mZ7-KKUx|WTbH9KX<$orQ{?38ZQjT_QTT9!&L&p zvHEvD{=$4#7{=a+bMTz*Qa5gJ+L?WGm-SV(vp<0Mz&QR>ilJ_Yb+~z1So)maUHrRM zLTR?ri76uA9BTB-9Hp2jOexsdw&6N?qv}k@M=95N{|p$vu~)n?KQdyQV}fRWP3s@s z>ovljNF7MX1%9d*0bMCBK_wYz`ug>n*%bt>oIxhtsJ&aq3yx4v089 z+MH9?j}}zPwe0I`LGiP{lTeE2N)x}t|K;0b7E`rD#)Ir`imA2cCXg7pK#c<7=Mw4_}&J6V=uk3GL{- zT=&aBrelKD2n(nq?*?Y8Ti97K=6$w-&jlqV#RprOtxTKf3r5q@4oURMSanz;JWKt` zS*LDxawxw`)b_uTm3K1zO7#jK(e5jQ8Rj46+_ny?&S;V;Nnbm$yNtV=B!qV2)xSK7 zC^Rc$ijU`GWjcSN<;7x3Sn+Pj#tnCbU_oMdxSM(^jQCnfO~;s_^B8z$Fp)jp|C=Rs^#g)o+(}9_VA*Jht%1NYyPHP-=AAf)-w!X zw>-D)QdcB=!Kd2@16FbCegf`oX^Z;%9=juZ$Puf+MP|Ep$haNK&LY8npv*lSKgd#S z^w@q&3lD{k7k=o#)+fX7{+9Xdq3@fUKeGsZPo|Fc$#BJ5v(nYrBwU~WC)A*SQMa+P zkf88s(0oSM=DqozrhdtV6cfEmmw1fC1Yan0nZze%=jSBs;_k}Zy$(PSsf#qNrp0~J zwDH^wmG*d1R34Fu?El<)u-G$u-Txj*z|NikAKMhb}~h3)~RM9XY?n-H( zUQGPVp(gw7w?(DrY|5+FM`(JM_0i5fVQC{gO({o;eUw^*J+s&mKN6i;*MfY<(Pmw; zl=3ugX?$raT8%y5v|^rW{NZa{@R65~}NqBAb$wmG);%{R|EDkEx18U(y6(jDzBR7BKMFJ`6U&K>N1Ym`oec~BKFS;v$xx~Mu>>^)-`sLVzNxKmqKne|G?WsXLD(Xci4*3-hU%QCTV8o){*(H ze1$9DLneX>lgNL6`gI?RP9Epgvr}}oKCADp+y+Ov%`%BzZ*OMoWalE-yITz!7p=3u zo+9X~D&xa5u6$@XQ}xLV?YC<|U$Bu`h=`o9wo+HvJ3)c&ROazxXiYP|rm>ojkdgWC zfI}-h3@#~;Ne{1A%b5IfB^OKvJT3WD390^V=%HIgwCX+Etf`#+!O z=*6~bMe>yTMR{EO?Mg3VulBLK#PG}4IfYMB(L7R8HV;e@Y-HO+0m^L3x!d&g$d@4* z4>Ha+r#Fk|xHM(W z%8=M_9WIq4(#jv2>cfxqs9~GnTfX@M?!bX~zL6*0K#?~$kt@*FC5D&eIB$4la$fL^ zFimCklyOo-Gj~C!P-D~5)XA&g&JHDi`6kmAI-bv)H#=`mw`SoJTNrh??dOVXd1n?~ zJo5c?$t3Sl(CJ^jai;1cX^(ltaxhtiIxm8M zFJ8GoMzq;wMeOAXX~CCL4+Hw?118p>7Ymp?AA8-uXv#I`q9T_}`l{v^%tq2*CL+%u z1H02=!u{||TA4DHZ>$dlSHWd&+E)};&S6+TH%L|$1_9jlyKit9)ZC|U-l{>zQ7kC3 z7)X{_D{Di;Az?HArnq*(H1a-~+GUqSzv?2-%8UT-qFcNm0N`2q3C@QU*kgXaE+{e3eeRafDU%# zdLeDQ(vuw(MQ$x3?a^XapYnGU)4%@AJU%xWj=dO^V3MhtaI{^^Bkr0yr7y5A+lfp1 z*G145$~lK+OCEXOIM4j>eeE^Vkd2YOFi36)?`r3FS#fwY#~mNGT++Icp`{v%+9|ML zKf3-PBOUijwiLzWN2xQKnOhI43e?Gp4UUN|$$hT-KafmxV15cBC9JOKHD;ImS<5vp zA82;Y1?s18Q{CSV$8u$X$∈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 literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGold.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGold.java new file mode 100644 index 000000000..54938f986 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGold.java @@ -0,0 +1,235 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageBackgroundFill; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvSection; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MAIN_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.PAPER; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SIDEBAR; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SIDEBAR_WEIGHT; + +/** + * Charcoal Gold — a one-page CV in two columns: a charcoal sidebar carrying + * a ringed photograph, the contact channels, rated skills, languages and + * degrees, beside a paper column carrying a two-tone name, the summary, the + * roles held on a dated rail, a pair of credential columns and a closing + * strip of tools. + * + *

    The preset paints both columns as page backgrounds, so each reaches the + * foot of the sheet whatever it holds. It leaves the page size to the + * caller, unlike its ported siblings: the design is drawn on A4 and the + * geometry follows the page's own width, so a different page rescales rather + * than breaks.

    + * + *

    One page, and what happens past it

    + * + *

    The two columns are a single row, and a row is atomic — it cannot be + * split — so a CV longer than the sheet does not flow onto a second page: + * composing it raises {@code AtomicNodeTooLargeException}, naming the node + * and the height it needed. It draws no cap of its own, because a CV that + * quietly loses a job is worse than one that refuses to compose. + * {@link TimelineMinimal} is the preset in this package that splits its own + * columns across pages.

    + * + *

    How a document reaches its berth

    + * + *

    The columns are fixed, so the preset assigns each section a berth by + * title rather than reading {@link + * com.demcha.compose.document.templates.cv.data.Slot}. It has seven:

    + * + *
      + *
    • skills, a {@link SkillsSection}; languages, a {@link RowsSection}; + * and education, an {@link EntriesSection} — in the sidebar;
    • + *
    • the summary, a {@link ParagraphSection} of one paragraph per line, + * and experience, an {@link EntriesSection} — in the main column;
    • + *
    • certifications and achievements, {@link EntriesSection}s, as the + * credential pair;
    • + *
    • the tools, a {@link ParagraphSection} of one tool per line, as the + * closing strip.
    • + *
    + * + *

    A section whose title matches no berth is not drawn, a berth with no + * section takes its heading and its divider with it, and a berth is filled + * by the first section that names it. Languages are rows rather than + * levelled skills because this design writes the level out — "Native", + * "B2 – Upper Intermediate" — which a number could not carry back; their + * {@code RowStyle} is not read.

    + * + *

    The name, the photograph and the marks

    + * + *

    The masthead changes colour halfway through the name: the given name in + * ink, the family name larger and in gold. It reads them from + * {@code CvName}, which is why this preset wants a structured name — nothing + * else could tell it where to change.

    + * + *

    The photograph comes from {@code CvIdentity.portrait()} and is drawn to + * fill its disc, so a picture that is not square is cut rather than + * squeezed. An identity without one simply starts at the contact block.

    + * + *

    Each credential takes the mark its entry names in + * {@code CvEntry.icon()}, from this preset's own vocabulary — + * {@code certificate}, {@code trophy}, {@code growth}, {@code star} — and an + * unknown token is reported as a data error naming the set. An entry with no + * token is drawn without a mark. Every title the preset draws — a role, a + * credential — becomes a link when its entry carries + * {@code CvEntry.link()}.

    + * + *

    A skill's rating is drawn as five dots, of which its level fills the + * nearest whole number; a skill the document leaves unlevelled draws no + * rating rather than five empty dots. The phone, the email and each link are + * reachable from the PDF, with the {@code tel:} and {@code mailto:} targets + * built from the values.

    + * + *

    Fonts

    + * + *

    The sheet is set in Lato. The templates artifact does not carry it — + * register it on the session, or the engine substitutes and the measured + * geometry here no longer matches the type sitting in it.

    + * + *

    Usage:

    + *
    {@code
    + * DocumentTemplate template = CharcoalGold.create();
    + * template.compose(session, cv);
    + * }
    + */ +public final class CharcoalGold { + + /** Stable identifier of this preset. */ + public static final String ID = "charcoal-gold"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Charcoal Gold"; + + /** + * The margin this preset expects: none. Both columns run to the paper + * edge and each carries its own padding. + */ + public static final double RECOMMENDED_MARGIN = 0.0; + + private static final List SUMMARY_KEYS = + List.of("summary", "profile", "about"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "employment", "work history", "career"); + private static final List EDUCATION_KEYS = + List.of("education", "qualifications"); + private static final List TOOL_KEYS = + List.of("tools", "stack", "software"); + private static final List SKILL_KEYS = + List.of("skills", "expertise", "competencies"); + private static final List LANGUAGE_KEYS = + List.of("languages", "language"); + private static final List CERTIFICATION_KEYS = + List.of("certifications", "certification", "licences", "licenses"); + private static final List ACHIEVEMENT_KEYS = + List.of("achievements", "achievement", "awards"); + + private CharcoalGold() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link CvDocument} + */ + 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, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + List sections = doc.sections(); + + // Both fills are page backgrounds: a section is only as tall as + // what it holds, and each column has to reach the foot of the + // sheet whatever the other one carries. + document.pageBackgrounds(List.of( + PageBackgroundFill.leftColumn(SIDEBAR_WEIGHT, SIDEBAR), + PageBackgroundFill.rightColumn(MAIN_WEIGHT, PAPER))); + + SkillsSection skills = berth(sections, SkillsSection.class, SKILL_KEYS); + RowsSection languages = berth(sections, RowsSection.class, LANGUAGE_KEYS); + EntriesSection education = berth(sections, EntriesSection.class, EDUCATION_KEYS); + // Tools first: "Technical Tools" names no other berth, but the + // summary keys are broad and a document is free to title its + // closing strip loosely. + ParagraphSection tools = berth(sections, ParagraphSection.class, TOOL_KEYS); + ParagraphSection summary = berth(sections, ParagraphSection.class, SUMMARY_KEYS); + EntriesSection experience = berth(sections, EntriesSection.class, EXPERIENCE_KEYS); + EntriesSection certifications = + berth(sections, EntriesSection.class, CERTIFICATION_KEYS); + EntriesSection achievements = + berth(sections, EntriesSection.class, ACHIEVEMENT_KEYS); + + boolean hasCredentials = SectionLookup.hasContent(certifications) + || SectionLookup.hasContent(achievements); + boolean hasTools = SectionLookup.hasContent(tools); + + document.pageFlow(page -> page + .name("CharcoalGoldCv") + .spacing(0) + .addRow("Body", row -> { + row.name("Body"); + row.spacing(0); + row.weights(SIDEBAR_WEIGHT, MAIN_WEIGHT); + row.addSection("Sidebar", side -> + CharcoalGoldAside.compose(side, doc.identity(), + skills, languages, education)); + row.addSection("MainColumn", main -> { + CharcoalGoldMain.compose(main, doc.identity(), summary, experience); + if (hasCredentials) { + CharcoalGoldCredentials.renderCredentials(main, + certifications, achievements); + } + if (hasTools) { + CharcoalGoldCredentials.renderTools(main, tools); + } + }); + })); + } + + /** + * The first section of the wanted shape whose title names this berth, + * or {@code null} when the document fills no such berth. + */ + private static T berth(List sections, + Class type, + List keys) { + for (CvSection section : sections) { + if (!type.isInstance(section)) { + continue; + } + for (String key : keys) { + if (SectionLookup.titleContains(section.title(), key)) { + return type.cast(section); + } + } + } + return null; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldAside.java new file mode 100644 index 000000000..b2d71ce73 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldAside.java @@ -0,0 +1,386 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ImageBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.image.DocumentImageData; +import com.demcha.compose.document.image.DocumentImageFitMode; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.HorizontalAlign; +import com.demcha.compose.document.node.InlineImageAlignment; +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.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvRow; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.RowsSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.ArrayList; +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.BLOCK_TO_DIVIDER; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.CONTACT_PITCH; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.DETAIL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.DIVIDER_TO_HEADING; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.EDUCATION_ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.EDUCATION_INDENT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.EDUCATION_LINE_PITCH; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.HEADING_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.LANGUAGE_NAME_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.LANGUAGE_PITCH; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.PHOTO_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.PHOTO_RING_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.PHOTO_TO_CONTACT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RATING_DOT_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RATING_EMPTY; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SIDEBAR; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SIDEBAR_INK; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SIDEBAR_PAD; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SIDEBAR_PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SIDEBAR_RULE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SKILL_BULLET_COLUMN; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SKILL_BULLET_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SKILL_NAME_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SKILL_PITCH; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.gap; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.textStyle; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.inlineGap; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.layeredRow; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.sidebarHeading; + +/** + * The charcoal left column: the ringed photograph, the contact channels + * behind their marks, the rated skills, the languages and the degrees, with + * a hairline between each block. + */ +final class CharcoalGoldAside { + + /** + * The contact heading. It is not read from the document because the + * channels are not a section — they come off the identity, which carries + * no title of its own. + */ + static final String CONTACT_HEADING = "CONTACT"; + + /** How many dots a skill rating is drawn out of. */ + static final int RATING_SCALE = 5; + + private CharcoalGoldAside() { + } + + static void compose(SectionBuilder side, + CvIdentity identity, + SkillsSection skills, + RowsSection languages, + EntriesSection education) { + side.name("Sidebar"); + side.spacing(0); + // No bottom padding: the sidebar's fill is a page background that + // already reaches the paper edge, so padding here would only shorten + // the column. + side.padding((float) SIDEBAR_PAD_TOP, (float) SIDEBAR_PAD, 0f, (float) SIDEBAR_PAD); + + identity.portrait().ifPresent(photo -> renderPhoto(side, photo)); + renderContact(side, identity, identity.portrait().isPresent()); + if (SectionLookup.hasContent(skills)) { + divider(side, "AfterContact"); + renderSkills(side, skills); + } + if (SectionLookup.hasContent(languages)) { + divider(side, "AfterSkills"); + renderLanguages(side, languages); + } + if (SectionLookup.hasContent(education)) { + divider(side, "AfterLanguages"); + renderEducation(side, education); + } + } + + private static void divider(SectionBuilder side, String name) { + side.addLine(line -> line + .name("Divider_" + name) + .fill() + .thickness(RULE_THICKNESS) + .color(SIDEBAR_RULE) + .margin(new DocumentInsets(BLOCK_TO_DIVIDER, 0, 0, 0))); + } + + // -- photograph ------------------------------------------------------ + + /** + * The photograph, clipped to a disc inside a pale ring. It is drawn with + * {@code COVER}, so a picture that is not square fills the circle and is + * cut rather than squeezed. + */ + private static void renderPhoto(SectionBuilder side, DocumentImageData photo) { + DocumentNode portrait = new ImageBuilder() + .name("PortraitImage") + .source(photo) + .size(PHOTO_DIAMETER, PHOTO_DIAMETER) + .fitMode(DocumentImageFitMode.COVER) + .build(); + DocumentNode circle = new ShapeContainerBuilder() + .name("ProfilePhoto") + .circle(PHOTO_DIAMETER) + .clipPolicy(ClipPolicy.CLIP_PATH) + .fillColor(SIDEBAR) + .stroke(DocumentStroke.of(RULE, PHOTO_RING_WIDTH)) + .center(portrait) + .build(); + side.addAligned(HorizontalAlign.CENTER, circle); + } + + // -- contact --------------------------------------------------------- + + /** + * The contact channels, in the order the design sets them: phone, email, + * address, then whatever links the identity carries. The phone and the + * email carry {@code tel:} and {@code mailto:} targets built from the + * values, and each link its own url. + */ + private static void renderContact(SectionBuilder side, CvIdentity identity, + boolean afterPhoto) { + side.addSection("Contact", block -> { + block.spacing(0); + block.margin(afterPhoto ? (float) PHOTO_TO_CONTACT : 0f, 0f, 0f, 0f); + sidebarHeading(block, CONTACT_HEADING); + List channels = channels(identity); + for (int i = 0; i < channels.size(); i++) { + Channel channel = channels.get(i); + boolean first = i == 0; + int index = i; + block.addParagraph(p -> { + p.name("Contact_" + index); + p.inlineSvgIcon(CharcoalGoldIcons.icon(channel.token()), + CharcoalGoldIcons.CONTACT_SIZE, InlineImageAlignment.CENTER); + inlineGap(p, textStyle(DETAIL_SIZE, SIDEBAR_INK, false)); + if (channel.href() == null) { + p.inlineText(channel.value(), textStyle(DETAIL_SIZE, SIDEBAR_INK, false)); + } else { + p.inlineText(channel.value(), textStyle(DETAIL_SIZE, SIDEBAR_INK, false), + new DocumentLinkOptions(channel.href())); + } + p.margin(first ? (float) HEADING_TO_BODY : 0f, 0f, + (float) gap(CONTACT_PITCH, DETAIL_SIZE), 0f); + }); + } + }); + } + + private static List channels(CvIdentity identity) { + List channels = new ArrayList<>(); + String phone = identity.contact().phone(); + channels.add(new Channel(CharcoalGoldIcons.PHONE, phone, telUri(phone))); + String email = identity.contact().email(); + channels.add(new Channel(CharcoalGoldIcons.EMAIL, email, "mailto:" + email)); + channels.add(new Channel(CharcoalGoldIcons.LOCATION, + identity.contact().address(), null)); + for (Link link : identity.links()) { + channels.add(new Channel(linkToken(link), link.label(), link.url())); + } + return channels; + } + + /** + * The dial target for a phone number: its digits, keeping a leading + * {@code +} so an international number stays international. + */ + private static String telUri(String phone) { + String digits = phone.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + /** + * The mark for a link: the network's own when it names one, the globe + * otherwise. + */ + private static String linkToken(Link link) { + String haystack = SectionLookup.normalize(link.label() + " " + link.url()); + return haystack.contains("linkedin") + ? CharcoalGoldIcons.LINKEDIN + : CharcoalGoldIcons.WEBSITE; + } + + private record Channel(String token, String value, String href) { + } + + // -- skills ---------------------------------------------------------- + + /** + * Skill rows: a gold bullet, the name, and a rating drawn as five dots + * of which the level fills the nearest whole number. + * + *

    A skill the document leaves unlevelled draws no rating at all, + * rather than five empty dots that read as a score of zero.

    + */ + private static void renderSkills(SectionBuilder side, SkillsSection skills) { + side.addSection("Skills", block -> { + block.spacing(0); + block.margin((float) DIVIDER_TO_HEADING, 0f, 0f, 0f); + sidebarHeading(block, skills.title()); + List items = flatten(skills); + for (int i = 0; i < items.size(); i++) { + CvSkill skill = items.get(i); + boolean first = i == 0; + int index = i; + layeredRow(block, "Skill_" + index, + first ? HEADING_TO_BODY : 0.0, + gap(SKILL_PITCH, DETAIL_SIZE), + row -> { + row.verticalAlign(RowVerticalAlign.CENTER); + row.columns( + DocumentRowColumn.fixed(SKILL_BULLET_COLUMN), + DocumentRowColumn.weight(SKILL_NAME_WEIGHT), + DocumentRowColumn.weight(1.0 - SKILL_NAME_WEIGHT)); + row.addParagraph(p -> p + .name("SkillBullet_" + index) + .align(TextAlign.CENTER) + // Styled even though it holds no text: a + // paragraph takes its line box from its + // type whether or not a glyph uses it, and + // the default size would set the row's + // pitch instead of this one. + .textStyle(textStyle(DETAIL_SIZE, SIDEBAR_INK, false)) + .dot(SKILL_BULLET_DIAMETER, ACCENT)); + row.addParagraph(p -> p + .name("SkillName_" + index) + .text(skill.name()) + .textStyle(textStyle(DETAIL_SIZE, SIDEBAR_INK, false))); + row.addParagraph(p -> renderRating(p, index, skill)); + }); + } + }); + } + + private static void renderRating(ParagraphBuilder p, int index, CvSkill skill) { + p.name("SkillRating_" + index); + p.align(TextAlign.RIGHT); + if (skill.level().isEmpty()) { + return; + } + long filled = Math.round(Math.max(0.0, Math.min(1.0, skill.level().getAsDouble())) + * RATING_SCALE); + for (int d = 0; d < RATING_SCALE; d++) { + p.dot(RATING_DOT_DIAMETER, d < filled ? ACCENT : RATING_EMPTY); + if (d < RATING_SCALE - 1) { + p.inlineText(" ", textStyle(DETAIL_SIZE, SIDEBAR_INK, false)); + } + } + } + + /** + * The section's skills as one list. This design sets no group headings, + * so a document that groups its skills gets them in the order the groups + * were declared. + */ + private static List flatten(SkillsSection section) { + List out = new ArrayList<>(); + for (SkillGroup group : section.groups()) { + out.addAll(group.entries()); + } + return out; + } + + // -- languages ------------------------------------------------------- + + /** + * Language rows: the name and the level in two columns, so the levels + * line up whatever the names measure. + * + *

    They are {@link CvRow}s rather than levelled skills because this + * design writes the level out — "Native", "B2 – Upper Intermediate" — + * which a number could not carry back. The {@code RowStyle} is not + * read.

    + */ + private static void renderLanguages(SectionBuilder side, RowsSection languages) { + side.addSection("Languages", block -> { + block.spacing(0); + block.margin((float) DIVIDER_TO_HEADING, 0f, 0f, 0f); + sidebarHeading(block, languages.title()); + List items = languages.rows(); + for (int i = 0; i < items.size(); i++) { + CvRow language = items.get(i); + boolean first = i == 0; + int index = i; + layeredRow(block, "Language_" + index, + first ? HEADING_TO_BODY : 0.0, + gap(LANGUAGE_PITCH, BODY_SIZE), + row -> { + row.weights(LANGUAGE_NAME_WEIGHT, 1.0 - LANGUAGE_NAME_WEIGHT); + row.addParagraph(p -> p + .name("LanguageName_" + index) + .text(language.label()) + .textStyle(textStyle(BODY_SIZE, SIDEBAR_INK, false))); + row.addParagraph(p -> p + .name("LanguageLevel_" + index) + .text(language.body()) + .textStyle(textStyle(BODY_SIZE, SIDEBAR_INK, false))); + }); + } + }); + } + + // -- education ------------------------------------------------------- + + /** + * Each degree as three lines: the qualification behind a gold dot, then + * the institution and the years indented under it. + */ + private static void renderEducation(SectionBuilder side, EntriesSection education) { + side.addSection("Education", block -> { + block.spacing(0); + block.margin((float) DIVIDER_TO_HEADING, 0f, 0f, 0f); + sidebarHeading(block, education.title()); + List items = education.entries(); + for (int i = 0; i < items.size(); i++) { + CvEntry entry = items.get(i); + boolean first = i == 0; + int index = i; + block.addSection("EducationEntry_" + index, e -> { + e.spacing(0); + e.margin(first ? (float) HEADING_TO_BODY : (float) EDUCATION_ENTRY_GAP, + 0f, 0f, 0f); + e.addParagraph(p -> { + p.name("Degree_" + index); + p.dot(RATING_DOT_DIAMETER, ACCENT); + inlineGap(p, textStyle(DETAIL_SIZE, SIDEBAR_INK, false)); + p.inlineText(entry.title(), textStyle(DETAIL_SIZE, SIDEBAR_INK, true)); + p.margin(0f, 0f, (float) gap(EDUCATION_LINE_PITCH, DETAIL_SIZE), 0f); + }); + e.addSection("EducationDetail_" + index, d -> { + d.spacing(0); + d.padding(0f, 0f, 0f, (float) EDUCATION_INDENT); + d.addParagraph(p -> p + .name("Institution_" + index) + .text(entry.subtitle()) + .textStyle(textStyle(DETAIL_SIZE, SIDEBAR_INK, false)) + .margin(0f, 0f, + (float) gap(EDUCATION_LINE_PITCH, DETAIL_SIZE), 0f)); + d.addParagraph(p -> p + .name("Period_" + index) + .text(entry.date()) + .textStyle(textStyle(DETAIL_SIZE, SIDEBAR_INK, false))); + }); + }); + } + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldCredentials.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldCredentials.java new file mode 100644 index 000000000..5331019bf --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldCredentials.java @@ -0,0 +1,170 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.CREDENTIALS_TO_TOOLS; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.CREDENTIAL_ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.CREDENTIAL_GUTTER_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.CREDENTIAL_HALF_GUTTER; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.CREDENTIAL_HEADING_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.CREDENTIAL_ICON_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.CREDENTIAL_LEFT_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.CREDENTIAL_LINE_GAP; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.CREDENTIAL_RIGHT_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.DETAIL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ENTRIES_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.HEADING_TO_BODY; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RULE_TO_CREDENTIALS; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SMALL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.TOOL_SEPARATOR; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.textStyle; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.layeredRow; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.mainHeading; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.plainHeading; + +/** + * The two closing blocks: the credentials in a pair of columns divided by a + * hairline, and the tools strip beneath them. + */ +final class CharcoalGoldCredentials { + + private CharcoalGoldCredentials() { + } + + /** + * The credential pair. + * + *

    Two cells, not three: the gutter is split down the middle and half + * given to each column, so the divider can be the right-hand column's own + * left border and take its height from that column's content. A third + * cell holding a line would need a height, and a height here could only + * be computed against today's text.

    + */ + static void renderCredentials(SectionBuilder main, + EntriesSection certifications, + EntriesSection achievements) { + boolean left = SectionLookup.hasContent(certifications); + boolean right = SectionLookup.hasContent(achievements); + main.addSection("Credentials", block -> { + block.spacing(0); + block.margin((float) ENTRIES_TO_RULE, 0f, 0f, 0f); + block.addLine(line -> line + .name("CredentialsRule") + .fill() + .thickness(RULE_THICKNESS) + .color(RULE)); + layeredRow(block, "CredentialColumns", RULE_TO_CREDENTIALS, 0.0, row -> { + row.spacing(0); + row.weights( + CREDENTIAL_LEFT_WEIGHT + CREDENTIAL_GUTTER_WEIGHT / 2.0, + CREDENTIAL_RIGHT_WEIGHT + CREDENTIAL_GUTTER_WEIGHT / 2.0); + row.addSection("Certifications", column -> { + column.padding(0f, (float) CREDENTIAL_HALF_GUTTER, 0f, 0f); + if (left) { + renderColumn(column, "Certification", certifications); + } + }); + row.addSection("Achievements", column -> { + // The divider is this column's left border, so it stops + // where the column's own content does. + column.accentLeft(RULE, RULE_THICKNESS); + column.padding(0f, 0f, 0f, (float) CREDENTIAL_HALF_GUTTER); + if (right) { + renderColumn(column, "Achievement", achievements); + } + }); + }); + }); + } + + /** One credential column: a plain heading, then a marked entry per row. */ + private static void renderColumn(SectionBuilder column, String prefix, + EntriesSection credentials) { + column.spacing(0); + column.keepTogether(); + plainHeading(column, credentials.title()); + List items = credentials.entries(); + for (int i = 0; i < items.size(); i++) { + CvEntry item = items.get(i); + boolean first = i == 0; + boolean last = i == items.size() - 1; + int index = i; + layeredRow(column, prefix + "_" + index, + first ? CREDENTIAL_HEADING_TO_BODY : CREDENTIAL_ENTRY_GAP, 0.0, + row -> { + row.spacing(0); + row.weights(CREDENTIAL_ICON_WEIGHT, 1.0 - CREDENTIAL_ICON_WEIGHT); + row.addSection(prefix + "Icon_" + index, cell -> { + cell.spacing(0); + if (!item.icon().isBlank()) { + cell.addSvgIcon(CharcoalGoldIcons.icon(item.icon()), + CharcoalGoldIcons.CREDENTIAL_SIZE); + } + }); + row.addSection(prefix + "Text_" + index, text -> { + text.spacing(0); + text.addParagraph(p -> { + p.name(prefix + "Name_" + index) + .textStyle(textStyle(DETAIL_SIZE, INK, true)); + CharcoalGoldText.title(p, item, + textStyle(DETAIL_SIZE, INK, true)); + p.margin(0f, 0f, (float) CREDENTIAL_LINE_GAP, 0f); + }); + text.addParagraph(p -> p + .name(prefix + "Issuer_" + index) + .text(item.subtitle()) + .textStyle(textStyle(SMALL_SIZE, INK, false)) + .margin(0f, 0f, (float) CREDENTIAL_LINE_GAP, 0f)); + text.addParagraph(p -> p + .name(prefix + "Year_" + index) + .text(item.date()) + .textStyle(textStyle(SMALL_SIZE, INK, false))); + }); + }); + if (!last) { + column.addLine(line -> line + .name(prefix + "Rule_" + index) + .fill() + .thickness(RULE_THICKNESS) + .color(RULE) + .margin(new DocumentInsets(CREDENTIAL_ENTRY_GAP, 0, 0, 0))); + } + } + } + + /** + * The closing strip: one line of tools, centred, with a pale pipe + * between neighbours. + */ + static void renderTools(SectionBuilder main, ParagraphSection tools) { + List items = CharcoalGoldText.lines(tools.body()); + main.addSection("TechnicalTools", block -> { + block.spacing(0); + block.margin((float) CREDENTIALS_TO_TOOLS, 0f, 0f, 0f); + block.keepWithNext(); + mainHeading(block, tools.title()); + block.addParagraph(p -> { + p.name("ToolsStrip"); + p.align(TextAlign.CENTER); + p.margin((float) HEADING_TO_BODY, 0f, 0f, 0f); + for (int i = 0; i < items.size(); i++) { + if (i > 0) { + p.inlineText(TOOL_SEPARATOR, textStyle(DETAIL_SIZE, RULE, false)); + } + p.inlineText(items.get(i), textStyle(DETAIL_SIZE, INK, false)); + } + }); + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldIcons.java new file mode 100644 index 000000000..40627e8cf --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldIcons.java @@ -0,0 +1,89 @@ +package com.demcha.compose.document.templates.cv.presets; + +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.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Charcoal Gold CV marks — the five contact glyphs + * in the sidebar and the four credential marks in the closing columns. + * + *

    They ship inside the templates artifact under + * {@code templates/cv/charcoal-gold/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 sheet that repeats a mark reads each file once per + * JVM.

    + * + *

    The credential marks are the vocabulary a document names through + * {@code CvEntry.icon()}. It is scoped to this preset — another preset + * packages its own set — so {@link #ENTRY_TOKENS} is the list a document can + * choose from here.

    + */ +final class CharcoalGoldIcons { + + static final String PHONE = "phone"; + static final String EMAIL = "email"; + static final String LOCATION = "location"; + static final String WEBSITE = "website"; + static final String LINKEDIN = "linkedin"; + + private static final String ICON_ROOT = "/templates/cv/charcoal-gold/icons/"; + + /** Contact glyphs are set at the size of the text beside them. */ + static final double CONTACT_SIZE = 9.0; + + /** A credential mark stands on its own, so it is drawn larger. */ + static final double CREDENTIAL_SIZE = 15.0; + + /** The marks a document may name on a credential entry. */ + static final Set ENTRY_TOKENS = + Set.of("certificate", "trophy", "growth", "star"); + + private static final Set TOKENS = + Set.of(PHONE, EMAIL, LOCATION, WEBSITE, LINKEDIN, + "certificate", "trophy", "growth", "star"); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private CharcoalGoldIcons() { + } + + /** + * Reads one mark. + * + * @param token one of the packaged tokens + * @return the parsed icon + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error + */ + static SvgIcon icon(String token) { + if (!TOKENS.contains(token)) { + throw new IllegalArgumentException( + "Unknown charcoal gold CV icon token '" + token + + "'. This preset packages " + ENTRY_TOKENS.stream().sorted().toList() + + " for a credential mark."); + } + return CACHE.computeIfAbsent(token, CharcoalGoldIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = CharcoalGoldIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException( + "Missing charcoal gold CV icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read charcoal gold CV icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java new file mode 100644 index 000000000..60ca50868 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldMain.java @@ -0,0 +1,233 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.ListMarker; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.cv.components.SectionLookup; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.List; + +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.DATE_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.DETAIL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.EMPLOYER_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.EMPLOYER_TO_HIGHLIGHTS; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ENTRY_INDENT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ENTRY_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.EXPERIENCE_TO_ENTRIES; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.HIGHLIGHT_ITEM_GAP; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.HIGHLIGHT_LEADING; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MAIN_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MAIN_PAD_RIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MAIN_PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MARKER_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MARKER_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MASTHEAD_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MASTHEAD_RULE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MASTHEAD_TO_TITLE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.NAME_FAMILY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.NAME_GIVEN_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.JOB_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ROLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ROLE_TO_EMPLOYER; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RULE_TO_SUMMARY; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SMALL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SUMMARY_LEADING; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SUMMARY_TO_EXPERIENCE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.TITLE_TO_RULE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.textStyle; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.tracked; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.layeredRow; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.mainHeading; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldWidgets.marker; + +/** + * The paper right column: the two-tone name over its tracked role, the + * summary, and the roles held on a dated rail. + */ +final class CharcoalGoldMain { + + private CharcoalGoldMain() { + } + + static void compose(SectionBuilder main, + CvIdentity identity, + ParagraphSection summary, + EntriesSection experience) { + main.name("MainColumn"); + main.spacing(0); + main.padding((float) MAIN_PAD_TOP, (float) MAIN_PAD_RIGHT, 0f, (float) MAIN_PAD_LEFT); + renderMasthead(main, identity); + if (SectionLookup.hasContent(summary)) { + renderSummary(main, summary); + } + if (SectionLookup.hasContent(experience)) { + renderExperience(main, experience); + } + } + + // -- masthead -------------------------------------------------------- + + /** + * The name in two tones and two sizes — the given name in ink, the + * family name larger and in gold — then the role tracked out, and the + * short gold rule that closes the block. + * + *

    The two halves come from {@code CvName}, which is why this preset + * wants a structured name rather than one string: nothing else could + * tell it where to change colour.

    + */ + private static void renderMasthead(SectionBuilder main, CvIdentity identity) { + main.addSection("Masthead", block -> { + block.spacing(0); + block.addParagraph(p -> p + .name("GivenName") + .text(identity.name().first()) + .textStyle(textStyle(NAME_GIVEN_SIZE, INK, false)) + .lineSpacing(1.0)); + block.addParagraph(p -> p + .name("FamilyName") + .text(identity.name().last()) + .textStyle(textStyle(NAME_FAMILY_SIZE, ACCENT, false)) + .lineSpacing(1.0) + .margin(0f, 0f, (float) MASTHEAD_TO_TITLE, 0f)); + block.addParagraph(p -> p + .name("JobTitle") + .text(tracked(identity.jobTitle())) + .textStyle(textStyle(JOB_TITLE_SIZE, INK, false)) + .margin(0f, 0f, (float) TITLE_TO_RULE, 0f)); + block.addLine(line -> line + .name("MastheadRule") + .horizontal(MASTHEAD_RULE_WIDTH) + .thickness(MASTHEAD_RULE_THICKNESS) + .color(ACCENT)); + }); + } + + // -- summary --------------------------------------------------------- + + /** + * The opening block, one paragraph per line of the section's body. This + * design gives it no heading, so the section's title is not drawn. + */ + private static void renderSummary(SectionBuilder main, ParagraphSection summary) { + main.addSection("Summary", block -> { + block.spacing(0); + block.margin((float) RULE_TO_SUMMARY, 0f, 0f, 0f); + List paragraphs = CharcoalGoldText.lines(summary.body()); + for (int i = 0; i < paragraphs.size(); i++) { + int index = i; + block.addParagraph(p -> p + .name("Summary_" + index) + .text(paragraphs.get(index)) + .textStyle(textStyle(BODY_SIZE, INK, false)) + .lineSpacing(SUMMARY_LEADING)); + } + }); + } + + // -- experience ------------------------------------------------------ + + /** + * The roles held: the dates in gold at the left, and the entry itself + * behind a hairline rail with a ringed marker capping each role. + */ + private static void renderExperience(SectionBuilder main, EntriesSection experience) { + main.addSection("Experience", block -> { + block.spacing(0); + block.margin((float) SUMMARY_TO_EXPERIENCE, 0f, 0f, 0f); + block.keepTogether(); + mainHeading(block, experience.title()); + List entries = experience.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + boolean first = i == 0; + boolean last = i == entries.size() - 1; + int index = i; + layeredRow(block, "ExperienceEntry_" + index, + first ? EXPERIENCE_TO_ENTRIES : 0.0, 0.0, + row -> { + row.spacing(0); + // Two cells, not three. Giving the marker a column + // of its own would put it in a different node from + // the rail, leaving the rail free to paint straight + // through it; the date column carries that width + // instead, so the body's left border lands in + // exactly the same place. + row.weights(DATE_WEIGHT + MARKER_WEIGHT, ENTRY_WEIGHT); + row.addParagraph(p -> p + .name("Period_" + index) + .text(entry.date()) + .textStyle(textStyle(DETAIL_SIZE, ACCENT, false))); + row.addSection("EntryBody_" + index, body -> + renderEntryBody(body, entry, index, last)); + }); + } + }); + } + + private static void renderEntryBody(SectionBuilder body, CvEntry entry, + int index, boolean last) { + body.spacing(0); + body.accentLeft(RULE, RULE_THICKNESS); + body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, (float) ENTRY_INDENT); + renderRoleWithMarker(body, entry, index); + body.addParagraph(p -> p + .name("Employer_" + index) + .text(employerLine(entry)) + .textStyle(textStyle(EMPLOYER_SIZE, INK, true)) + .margin(0f, 0f, (float) EMPLOYER_TO_HIGHLIGHTS, 0f)); + List highlights = CharcoalGoldText.lines(entry.body()); + if (!highlights.isEmpty()) { + body.addList(list -> list + .name("Highlights_" + index) + .items(highlights) + .marker(ListMarker.bullet()) + .textStyle(textStyle(SMALL_SIZE, INK, false)) + .itemSpacing(HIGHLIGHT_ITEM_GAP) + .lineSpacing(HIGHLIGHT_LEADING)); + } + } + + /** The employer, and the place beside it behind a raised dot. */ + private static String employerLine(CvEntry entry) { + return entry.place().isBlank() + ? entry.subtitle() + : entry.subtitle() + " · " + entry.place(); + } + + /** + * The role, with the ring positioned back over the rail beside it. + * + *

    The marker is placed from the title's own layer stack rather than + * from the row, so it sits on the role's first line whatever the title + * measures — and half its diameter left of the body's border, which puts + * the ring centred on the rail.

    + */ + private static void renderRoleWithMarker(SectionBuilder body, CvEntry entry, int index) { + SectionBuilder titleLayer = new SectionBuilder(); + titleLayer.name("RoleLayer_" + index); + titleLayer.spacing(0); + titleLayer.addParagraph(p -> { + p.name("Role_" + index).textStyle(textStyle(ROLE_SIZE, INK, true)); + CharcoalGoldText.title(p, entry, textStyle(ROLE_SIZE, INK, true)); + }); + body.addLayerStack(stack -> stack + .name("MarkerCap_" + index) + .margin(new DocumentInsets(0, 0, ROLE_TO_EMPLOYER, 0)) + .layer(titleLayer.build(), LayerAlign.TOP_LEFT, 0) + .position(marker(index), + -(ENTRY_INDENT + MARKER_DIAMETER / 2.0), 0.0, + LayerAlign.TOP_LEFT, 1)); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldStyles.java new file mode 100644 index 000000000..a8c3eda27 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldStyles.java @@ -0,0 +1,200 @@ +package com.demcha.compose.document.templates.cv.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.document.templates.core.text.TextStyles; +import com.demcha.compose.font.FontName; + +/** + * The measured geometry, palette and type scale of the Charcoal Gold CV. + * + *

    Vertical rhythm here is authored as a pitch — the distance + * from one line's top to the next — rather than as a margin, which is how + * the design was drawn. {@link #gap} turns a pitch into the margin to set, + * by subtracting the line box the type already occupies.

    + */ +final class CharcoalGoldStyles { + + private CharcoalGoldStyles() { + } + + // -- page ------------------------------------------------------------ + + static final double PAGE_WIDTH = 595.276; + + static final double SIDEBAR_WEIGHT = 0.3197; + static final double MAIN_WEIGHT = 1.0 - SIDEBAR_WEIGHT; + + static final double SIDEBAR_PAD = 17.0; + static final double SIDEBAR_PAD_TOP = 24.3; + static final double SIDEBAR_CONTENT_WIDTH = + PAGE_WIDTH * SIDEBAR_WEIGHT - 2.0 * SIDEBAR_PAD; + + static final double MAIN_PAD_LEFT = 23.7; + static final double MAIN_PAD_RIGHT = 28.8; + static final double MAIN_PAD_TOP = 25.7; + static final double MAIN_CONTENT_WIDTH = + PAGE_WIDTH * MAIN_WEIGHT - MAIN_PAD_LEFT - MAIN_PAD_RIGHT; + + // -- type ------------------------------------------------------------ + + static final FontName FONT = FontName.LATO; + + static final double BODY_SIZE = 9.1; + static final double NAME_GIVEN_SIZE = 35.7; + static final double NAME_FAMILY_SIZE = 45.5; + static final double JOB_TITLE_SIZE = 11.6; + static final double MAIN_HEADING_SIZE = 11.0; + static final double SIDEBAR_HEADING_SIZE = 10.0; + static final double ROLE_SIZE = 10.5; + static final double EMPLOYER_SIZE = 6.9; + static final double DETAIL_SIZE = 7.8; + static final double SMALL_SIZE = 7.9; + + /** The share of its type size a line box occupies at the default leading. */ + static final double LINE_FACTOR = 1.2; + + // -- palette --------------------------------------------------------- + + static final DocumentColor SIDEBAR = DocumentColor.rgb(39, 45, 50); + static final DocumentColor PAPER = DocumentColor.rgb(254, 254, 254); + static final DocumentColor ACCENT = DocumentColor.rgb(186, 148, 88); + static final DocumentColor INK = DocumentColor.rgb(39, 45, 50); + static final DocumentColor SIDEBAR_INK = DocumentColor.rgb(251, 251, 251); + static final DocumentColor RULE = DocumentColor.rgb(218, 218, 219); + static final DocumentColor SIDEBAR_RULE = DocumentColor.rgb(61, 67, 69); + static final DocumentColor RATING_EMPTY = DocumentColor.rgb(119, 122, 125); + + // -- ornaments ------------------------------------------------------- + + static final double ACCENT_BAR_WIDTH = 1.7; + static final double HEADING_INDENT = 9.0; + static final double RULE_THICKNESS = 0.6; + static final double MARKER_DIAMETER = 6.2; + static final double RATING_DOT_DIAMETER = 4.5; + static final double SKILL_BULLET_DIAMETER = 2.3; + + /** + * The bullet gets a column of its own rather than an inline run plus + * counted spaces: its width is the design's own name indent, so neither + * the mark nor the name depends on how wide a space happens to be. + */ + static final double SKILL_BULLET_COLUMN = 9.5; + + static final double PHOTO_RING_WIDTH = 1.2; + static final double PHOTO_DIAMETER = SIDEBAR_CONTENT_WIDTH * 0.802; + + // -- sidebar rhythm -------------------------------------------------- + + static final double PHOTO_TO_CONTACT = 29.4; + static final double HEADING_TO_BODY = 12.0; + static final double BLOCK_TO_DIVIDER = 19.0; + static final double DIVIDER_TO_HEADING = 17.0; + static final double CONTACT_PITCH = 19.2; + static final double SKILL_PITCH = 16.6; + static final double LANGUAGE_PITCH = 16.9; + static final double EDUCATION_LINE_PITCH = 12.4; + static final double EDUCATION_ENTRY_GAP = 13.7; + static final double EDUCATION_INDENT = 12.4; + + static final double LANGUAGE_NAME_WEIGHT = 0.36; + static final double SKILL_NAME_WEIGHT = 0.72; + + // -- main rhythm ----------------------------------------------------- + + static final double MASTHEAD_TO_TITLE = 0.0; + static final double TITLE_TO_RULE = 12.0; + static final double MASTHEAD_RULE_WIDTH = MAIN_CONTENT_WIDTH * 0.093; + static final double MASTHEAD_RULE_THICKNESS = 1.4; + static final double RULE_TO_SUMMARY = 17.8; + static final double SUMMARY_LEADING = 1.38; + static final double SUMMARY_TO_EXPERIENCE = 28.4; + static final double EXPERIENCE_TO_ENTRIES = 19.0; + static final double ENTRY_GAP = 19.6; + static final double ENTRIES_TO_RULE = 18.0; + static final double CREDENTIALS_TO_TOOLS = 13.7; + + static final double DATE_WEIGHT = 0.194; + static final double MARKER_WEIGHT = MARKER_DIAMETER / MAIN_CONTENT_WIDTH; + static final double ENTRY_WEIGHT = 1.0 - DATE_WEIGHT - MARKER_WEIGHT; + static final double ENTRY_INDENT = 16.0; + static final double ROLE_TO_EMPLOYER = 3.0; + static final double EMPLOYER_TO_HIGHLIGHTS = 7.0; + static final double HIGHLIGHT_ITEM_GAP = 4.0; + static final double HIGHLIGHT_LEADING = 1.3; + + // -- credentials ----------------------------------------------------- + + static final double CREDENTIAL_LEFT_WEIGHT = 0.402; + static final double CREDENTIAL_GUTTER_WEIGHT = 0.124; + static final double CREDENTIAL_RIGHT_WEIGHT = + 1.0 - CREDENTIAL_LEFT_WEIGHT - CREDENTIAL_GUTTER_WEIGHT; + static final double CREDENTIAL_ICON_WEIGHT = 0.14; + static final double CREDENTIAL_HALF_GUTTER = + MAIN_CONTENT_WIDTH * CREDENTIAL_GUTTER_WEIGHT / 2.0; + static final double RULE_TO_CREDENTIALS = 22.0; + static final double CREDENTIAL_ENTRY_GAP = 6.5; + static final double CREDENTIAL_HEADING_TO_BODY = 17.3; + static final double CREDENTIAL_LINE_GAP = 2.0; + + /** The separator between two tools on the closing strip. */ + static final String TOOL_SEPARATOR = " | "; + + // -- helpers --------------------------------------------------------- + + static DocumentTextStyle textStyle(double size, DocumentColor color, boolean bold) { + return TextStyles.of(FONT, size, + bold ? DocumentTextDecoration.BOLD : DocumentTextDecoration.DEFAULT, color); + } + + /** + * The margin that realises an authored pitch: the distance between two + * line tops, less the line box the type above already fills. + * + * @param pitch the distance the design draws between line tops + * @param size the type size of the line above + * @return the margin to set, never negative + */ + static double gap(double pitch, double size) { + return Math.max(0.0, pitch - size * LINE_FACTOR); + } + + /** + * Letter-spacing by spaces rather than by sized runs: a space between + * letters and three between words. + * + *

    This design tracks only one line — the job title — and does it + * coarsely enough that real spaces reach it, which is simpler than the + * per-letter spacer runs the other ported sheets need.

    + * + * @param text the text to space out + * @return the spaced text + */ + static String tracked(String text) { + if (text == null || text.isEmpty()) { + return ""; + } + StringBuilder out = new StringBuilder(text.length() * 2); + boolean startOfWord = true; + for (int i = 0; i < text.length(); i++) { + char ch = text.charAt(i); + if (ch == ' ') { + out.append(" "); + startOfWord = true; + continue; + } + if (!startOfWord) { + out.append(' '); + } + out.append(ch); + startOfWord = false; + } + return out.toString(); + } + + /** Strips a title down to the letters and digits a node name can carry. */ + static String compact(String text) { + return text == null ? "" : text.replaceAll("[^A-Za-z0-9]", ""); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldText.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldText.java new file mode 100644 index 000000000..71d29f2e1 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldText.java @@ -0,0 +1,53 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.core.text.MarkdownInline; +import com.demcha.compose.document.templates.cv.data.CvEntry; + +import java.util.ArrayList; +import java.util.List; + +/** Turning model fields into the runs and lines this sheet draws. */ +final class CharcoalGoldText { + + private CharcoalGoldText() { + } + + /** + * One item per non-blank line — the family's way of carrying a list in a + * field the model types as a single string. The summary reads its own + * paragraphs this way too. + * + * @param body the field's text + * @return the lines, in order + */ + static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split("\\R")) { + String clean = MarkdownInline.plainText(line).trim(); + if (!clean.isBlank()) { + out.add(clean); + } + } + return out; + } + + /** + * Writes an entry's title into a paragraph, as a link when the entry + * carries one. A link is an annotation rather than ink, so a linked + * title and a plain one are the same sheet. + * + * @param paragraph the paragraph being built + * @param entry the entry whose title and link to write + * @param style the style of the title + */ + static void title(ParagraphBuilder paragraph, CvEntry entry, DocumentTextStyle style) { + if (entry.link().isBlank()) { + paragraph.inlineText(entry.title(), style); + } else { + paragraph.inlineText(entry.title(), style, new DocumentLinkOptions(entry.link())); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldWidgets.java new file mode 100644 index 000000000..8486ed15d --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/CharcoalGoldWidgets.java @@ -0,0 +1,135 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.EllipseBuilder; +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.LayerAlign; +import com.demcha.compose.document.node.RowVerticalAlign; +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 java.util.function.Consumer; + +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.ACCENT_BAR_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.HEADING_INDENT; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MAIN_HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.MARKER_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.PAPER; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SIDEBAR_HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.SIDEBAR_INK; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.compact; +import static com.demcha.compose.document.templates.cv.presets.CharcoalGoldStyles.textStyle; + +/** + * The pieces this sheet repeats: the heading with its gold bar, the ringed + * marker that caps a role, the two-space inline gap after a mark, and the + * row wrapper every measured row is built on. + */ +final class CharcoalGoldWidgets { + + private CharcoalGoldWidgets() { + } + + /** A sidebar heading: pale text behind the gold bar. */ + static void sidebarHeading(SectionBuilder block, String text) { + block.addSection("Heading_" + compact(text), heading -> heading + .spacing(0) + .accentLeft(ACCENT, ACCENT_BAR_WIDTH) + .padding(0f, 0f, 0f, (float) HEADING_INDENT) + .addParagraph(p -> p + .name("HeadingText_" + compact(text)) + .text(text) + .textStyle(textStyle(SIDEBAR_HEADING_SIZE, SIDEBAR_INK, false)))); + } + + /** + * A main-column heading: the same gold bar, with a hairline running from + * the words to the right edge. + * + *

    The rule is a weighted cell beside an {@code auto} one, so it takes + * whatever the words leave — no measurement needed, unlike a rule that + * has to be given a width.

    + */ + static void mainHeading(SectionBuilder block, String text) { + block.addSection("Heading_" + compact(text), heading -> { + heading.spacing(0); + heading.accentLeft(ACCENT, ACCENT_BAR_WIDTH); + heading.padding(0f, 0f, 0f, (float) HEADING_INDENT); + layeredRow(heading, "HeadingRow_" + compact(text), 0.0, 0.0, row -> { + row.verticalAlign(RowVerticalAlign.CENTER); + row.columns(DocumentRowColumn.auto(), DocumentRowColumn.weight(1.0)); + row.addParagraph(p -> p + .name("HeadingText_" + compact(text)) + .text(text) + .textStyle(textStyle(MAIN_HEADING_SIZE, INK, false))); + row.addLine(line -> line + .name("HeadingRule_" + compact(text)) + .fill() + .thickness(RULE_THICKNESS) + .color(RULE) + .margin(new DocumentInsets(0, 0, 0, HEADING_INDENT))); + }); + }); + } + + /** A main-column heading without the trailing rule, for the closing columns. */ + static void plainHeading(SectionBuilder block, String text) { + block.addSection("Heading_" + compact(text), heading -> heading + .spacing(0) + .accentLeft(ACCENT, ACCENT_BAR_WIDTH) + .padding(0f, 0f, 0f, (float) HEADING_INDENT) + .addParagraph(p -> p + .name("HeadingText_" + compact(text)) + .text(text) + .textStyle(textStyle(MAIN_HEADING_SIZE, INK, false)))); + } + + /** + * A row wrapped in a layer stack, which is where its vertical margins + * live. + * + *

    A row carries no margin of its own, so every measured row on this + * sheet is placed by the stack around it. That also gives the marker + * somewhere to be positioned from.

    + * + * @param parent the host section + * @param name node-name stem for the stack, its layer and the row + * @param marginTop the gap above + * @param marginBottom the gap below + * @param spec builds the row + */ + static void layeredRow(SectionBuilder parent, String name, double marginTop, + double marginBottom, Consumer spec) { + SectionBuilder layer = new SectionBuilder(); + layer.name(name + "Layer"); + layer.spacing(0); + layer.addRow(name, spec); + parent.addLayerStack(stack -> stack + .name(name + "Stack") + .margin(new DocumentInsets(marginTop, 0, marginBottom, 0)) + .layer(layer.build(), LayerAlign.TOP_LEFT, 0)); + } + + /** The hollow ring that caps a role on the experience rail. */ + static DocumentNode marker(int index) { + return new EllipseBuilder() + .name("MarkerRing_" + index) + .circle(MARKER_DIAMETER) + .fillColor(PAPER) + .stroke(DocumentStroke.of(INK, 0.8)) + .build(); + } + + /** The two spaces this design leaves between a mark and the text after it. */ + static void inlineGap(ParagraphBuilder paragraph, DocumentTextStyle style) { + paragraph.inlineText(" ", style); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java index d9f61ae7a..f07954f04 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/package-info.java @@ -21,9 +21,9 @@ * fed a different theme.

    * *

    The package holds a second shape as well. A preset that reproduces a - * specific drawn sheet — {@code ProfessionalSidebar}, {@code NavySidebar} - * and {@code SerifHeadline} are the ones here — takes no - * {@code BrandTheme} and calls no shared + * specific drawn sheet — {@code ProfessionalSidebar}, {@code NavySidebar}, + * {@code SerifHeadline} and {@code CharcoalGold} are the ones here — takes + * no {@code BrandTheme} and calls no shared * renderer: its geometry, palette and type scale are measured constants of * its own, and it sets its own page. The data model is the same * {@code CvDocument}; what differs is that the cosmetics cannot be swapped, diff --git a/templates/src/main/resources/templates/cv/charcoal-gold/icons/certificate.svg b/templates/src/main/resources/templates/cv/charcoal-gold/icons/certificate.svg new file mode 100644 index 000000000..70bfd06fe --- /dev/null +++ b/templates/src/main/resources/templates/cv/charcoal-gold/icons/certificate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/charcoal-gold/icons/email.svg b/templates/src/main/resources/templates/cv/charcoal-gold/icons/email.svg new file mode 100644 index 000000000..cb7317e63 --- /dev/null +++ b/templates/src/main/resources/templates/cv/charcoal-gold/icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/charcoal-gold/icons/growth.svg b/templates/src/main/resources/templates/cv/charcoal-gold/icons/growth.svg new file mode 100644 index 000000000..7cd08248b --- /dev/null +++ b/templates/src/main/resources/templates/cv/charcoal-gold/icons/growth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/charcoal-gold/icons/linkedin.svg b/templates/src/main/resources/templates/cv/charcoal-gold/icons/linkedin.svg new file mode 100644 index 000000000..e8bf28f95 --- /dev/null +++ b/templates/src/main/resources/templates/cv/charcoal-gold/icons/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/charcoal-gold/icons/location.svg b/templates/src/main/resources/templates/cv/charcoal-gold/icons/location.svg new file mode 100644 index 000000000..936b3c22d --- /dev/null +++ b/templates/src/main/resources/templates/cv/charcoal-gold/icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/charcoal-gold/icons/phone.svg b/templates/src/main/resources/templates/cv/charcoal-gold/icons/phone.svg new file mode 100644 index 000000000..ebdaf0d64 --- /dev/null +++ b/templates/src/main/resources/templates/cv/charcoal-gold/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/charcoal-gold/icons/star.svg b/templates/src/main/resources/templates/cv/charcoal-gold/icons/star.svg new file mode 100644 index 000000000..4a012dbc6 --- /dev/null +++ b/templates/src/main/resources/templates/cv/charcoal-gold/icons/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/charcoal-gold/icons/trophy.svg b/templates/src/main/resources/templates/cv/charcoal-gold/icons/trophy.svg new file mode 100644 index 000000000..12e9bcef6 --- /dev/null +++ b/templates/src/main/resources/templates/cv/charcoal-gold/icons/trophy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/charcoal-gold/icons/website.svg b/templates/src/main/resources/templates/cv/charcoal-gold/icons/website.svg new file mode 100644 index 000000000..26d1e0bc8 --- /dev/null +++ b/templates/src/main/resources/templates/cv/charcoal-gold/icons/website.svg @@ -0,0 +1 @@ + \ No newline at end of file From 80cc372b87a2e97031d21d90397cfc7efc725c03 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 12:59:03 +0100 Subject: [PATCH 15/85] feat(templates): carry a monogram, a ship-to, per-line tax and a payee on the structured invoice (#622) --- CHANGELOG.md | 16 ++++ .../StructuredInvoiceCompatibilityTest.java | 94 +++++++++++++++++++ .../templates/data/invoice/InvoiceBrand.java | 32 ++++++- .../data/invoice/InvoiceContactBlock.java | 29 +++++- .../data/invoice/InvoicePaymentBlock.java | 26 ++++- .../data/invoice/InvoiceServiceLines.java | 55 ++++++++++- .../data/invoice/StructuredInvoiceData.java | 48 +++++++++- 7 files changed, 292 insertions(+), 8 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index f1990f136..7ef738a58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,22 @@ follow semantic versioning; release dates are ISO 8601. ### Public API +- **The structured invoice model carries what a second sheet needs.** It landed with + one consumer, `ConsultingInvoice`, and a model shaped around one document is a model + nobody has tested. Fitting a second published invoice to it found six things it could + not say, each of them general rather than one design's whim: a brand lockup drawn as + a two-line monogram instead of a logo (`InvoiceBrand.monogramTop` / `monogramBottom`); + a second labelled registration, because a UK sender prints both a company number and + a VAT number (`InvoiceContactBlock.taxRegistrationLabel` / `taxRegistrationNumber`); + a delivery address beside the billing one (`StructuredInvoiceData.shipTo`); a tax + rate printed per line and its column (`InvoiceServiceLines.Line.vatRate`, + `Columns.vat`), written as the design shows it because the wording differs by + jurisdiction; and who the money is paid to, with the closing line beside the due + notice (`InvoicePaymentBlock.accountHolder` / `signOff`). Every addition is blank + when absent, and every constructor that predates one is kept explicitly, so existing + calls compile and link unchanged — `ConsultingInvoice` passes its snapshot and pixel + gates untouched, which is the proof. + - **`CvEntry` carries a link.** An entry that points somewhere — a repository, a case study, a company — had no way to say so, and a preset had no way to make its title reachable. `CvEntry` now carries `link`, a plain string blank when absent like the diff --git a/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java new file mode 100644 index 000000000..ce58edb86 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceCompatibilityTest.java @@ -0,0 +1,94 @@ +package com.demcha.compose.document.templates.data.invoice; + +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Pins the compatibility promise made when the structured invoice model grew + * the fields a second sheet needed: the constructors that predate them are + * still there and still mean what they meant, so a caller written against + * any of them keeps compiling and linking. + */ +class StructuredInvoiceCompatibilityTest { + + @Test + void theBrandConstructorThatPredatesTheMonogramLeavesItBlank() { + InvoiceBrand brand = new InvoiceBrand(null, "Luma", "Studio", "Design."); + assertThat(brand.monogramTop()).isEmpty(); + assertThat(brand.monogramBottom()).isEmpty(); + assertThat(brand.hasMonogram()).isFalse(); + assertThat(brand.name()).isEqualTo("Luma"); + } + + @Test + void aBrandWithEitherMonogramLineHasOne() { + assertThat(new InvoiceBrand(null, "Luma", "", "", "L", "").hasMonogram()).isTrue(); + assertThat(new InvoiceBrand(null, "Luma", "", "", "", "&Co.").hasMonogram()).isTrue(); + } + + @Test + void theContactConstructorThatPredatesTheSecondRegistrationLeavesItBlank() { + InvoiceContactBlock supplier = new InvoiceContactBlock( + "Luma Ltd", List.of("14 Gower Street"), "+44", "a@b.c", "b.c", + "Company No.", "12578934"); + assertThat(supplier.taxRegistrationLabel()).isEmpty(); + assertThat(supplier.taxRegistrationNumber()).isEmpty(); + assertThat(supplier.registrationNumber()).isEqualTo("12578934"); + } + + @Test + void thePaymentConstructorThatPredatesTheAccountHolderLeavesItBlank() { + InvoicePaymentBlock payment = new InvoicePaymentBlock( + "PAYMENT", List.of(new InvoicePaymentBlock.Field("BANK", "Starling")), + "Pay by transfer.", "Due in 30 days", "30 days"); + assertThat(payment.accountHolder()).isEmpty(); + assertThat(payment.signOff()).isEmpty(); + assertThat(payment.dueNoticeEmphasis()).isEqualTo("30 days"); + } + + @Test + void theColumnsConstructorThatPredatesTheVatColumnLeavesItBlank() { + InvoiceServiceLines.Columns columns = new InvoiceServiceLines.Columns( + "#", "DESCRIPTION", "PERIOD", "QTY", "UNIT", "AMOUNT"); + assertThat(columns.vat()).isEmpty(); + assertThat(columns.amount()).isEqualTo("AMOUNT"); + } + + @Test + void theLineConstructorThatPredatesTheVatRateLeavesItBlank() { + InvoiceServiceLines.Line line = new InvoiceServiceLines.Line( + 1, "Workshop", "A day of it", "May", BigDecimal.ONE, "day", + new BigDecimal("1200"), new BigDecimal("1200")); + assertThat(line.vatRate()).isEmpty(); + assertThat(line.amount()).isEqualByComparingTo("1200"); + } + + @Test + void theDataConstructorThatPredatesShipToLeavesItEmptyRatherThanNull() { + // The record normalizes an absent block to its empty form, so preset + // code reads it without a null check — the promise the whole model + // makes. + StructuredInvoiceData data = new StructuredInvoiceData( + null, null, null, + new InvoiceRecipient("BILL TO", "Northfield", "", List.of("21 Jubilee Way"), + "", ""), + null, null, null, null, null, "GBP"); + assertThat(data.shipTo()).isNotNull(); + assertThat(data.shipTo().name()).isEmpty(); + assertThat(data.billTo().name()).isEqualTo("Northfield"); + } + + @Test + void theBuilderCarriesShipToThrough() { + StructuredInvoiceData data = StructuredInvoiceData.builder() + .billTo(new InvoiceRecipient("BILL TO", "Northfield", "", List.of(), "", "")) + .shipTo(new InvoiceRecipient("SHIP TO", "The Foundry", "", List.of(), "", "")) + .build(); + assertThat(data.shipTo().name()).isEqualTo("The Foundry"); + assertThat(data.shipTo().heading()).isEqualTo("SHIP TO"); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceBrand.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceBrand.java index 90fc685a0..758044b8e 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceBrand.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceBrand.java @@ -20,12 +20,18 @@ * @param qualifier the second wordmark line under the name (e.g. the * business type) * @param tagline the tagline under the lockup + * @param monogramTop the first line of a drawn monogram, for the lockups + * that set initials rather than an image; blank when + * absent + * @param monogramBottom the second monogram line; blank when absent */ public record InvoiceBrand( DocumentImageData logo, String name, String qualifier, - String tagline) { + String tagline, + String monogramTop, + String monogramBottom) { /** * Normalizes the optional text fields; the logo stays nullable. @@ -34,6 +40,30 @@ public record InvoiceBrand( name = Objects.requireNonNullElse(name, ""); qualifier = Objects.requireNonNullElse(qualifier, ""); tagline = Objects.requireNonNullElse(tagline, ""); + monogramTop = Objects.requireNonNullElse(monogramTop, ""); + monogramBottom = Objects.requireNonNullElse(monogramBottom, ""); + } + + /** + * Backward-compatible constructor for callers that predate the monogram. + * + * @param logo the logo image, or {@code null} + * @param name the brand name + * @param qualifier the second wordmark line + * @param tagline the tagline under the lockup + */ + public InvoiceBrand(DocumentImageData logo, String name, String qualifier, + String tagline) { + this(logo, name, qualifier, tagline, "", ""); + } + + /** + * Whether this lockup carries a drawn monogram. + * + * @return {@code true} when either monogram line was supplied + */ + public boolean hasMonogram() { + return !monogramTop.isBlank() || !monogramBottom.isBlank(); } /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java index d31873d86..22477ede2 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceContactBlock.java @@ -20,6 +20,10 @@ * @param registrationLabel the label of the registration number * (e.g. {@code "ABN"}) * @param registrationNumber the registration number itself + * @param taxRegistrationLabel the label of a second registration a + * jurisdiction requires beside the first + * (e.g. {@code "VAT No."}); blank when absent + * @param taxRegistrationNumber that second number itself; blank when absent */ public record InvoiceContactBlock( String legalName, @@ -28,7 +32,9 @@ public record InvoiceContactBlock( String email, String website, String registrationLabel, - String registrationNumber) { + String registrationNumber, + String taxRegistrationLabel, + String taxRegistrationNumber) { /** * Normalizes optional fields and freezes the address lines. @@ -41,5 +47,26 @@ public record InvoiceContactBlock( website = Objects.requireNonNullElse(website, ""); registrationLabel = Objects.requireNonNullElse(registrationLabel, ""); registrationNumber = Objects.requireNonNullElse(registrationNumber, ""); + taxRegistrationLabel = Objects.requireNonNullElse(taxRegistrationLabel, ""); + taxRegistrationNumber = Objects.requireNonNullElse(taxRegistrationNumber, ""); + } + + /** + * Backward-compatible constructor for callers that predate the second + * registration. + * + * @param legalName the registered business name + * @param addressLines the address lines, in order + * @param phone the phone channel + * @param email the email channel + * @param website the website channel + * @param registrationLabel the label of the registration number + * @param registrationNumber the registration number itself + */ + public InvoiceContactBlock(String legalName, List addressLines, String phone, + String email, String website, String registrationLabel, + String registrationNumber) { + this(legalName, addressLines, phone, email, website, + registrationLabel, registrationNumber, "", ""); } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoicePaymentBlock.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoicePaymentBlock.java index f8d2184b0..8b5ae46b8 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoicePaymentBlock.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoicePaymentBlock.java @@ -23,13 +23,20 @@ * the emphasis — usually the term itself, as in * {@code "30 days"}; empty leaves the notice * evenly set + * @param accountHolder who the money is paid to, set above the fields + * where a design names the account before listing + * it; blank when absent + * @param signOff the closing line a design sets beside the due + * notice, usually a thank-you; blank when absent */ public record InvoicePaymentBlock( String heading, List fields, String instruction, String dueNotice, - String dueNoticeEmphasis) { + String dueNoticeEmphasis, + String accountHolder, + String signOff) { /** * Normalizes optional fields and freezes the field list. @@ -40,6 +47,23 @@ public record InvoicePaymentBlock( instruction = Objects.requireNonNullElse(instruction, ""); dueNotice = Objects.requireNonNullElse(dueNotice, ""); dueNoticeEmphasis = Objects.requireNonNullElse(dueNoticeEmphasis, ""); + accountHolder = Objects.requireNonNullElse(accountHolder, ""); + signOff = Objects.requireNonNullElse(signOff, ""); + } + + /** + * Backward-compatible constructor for callers that predate the account + * holder and the sign-off. + * + * @param heading the block heading + * @param fields the labelled payment fields, in print order + * @param instruction the sentence under the fields + * @param dueNotice the short due-by notice + * @param dueNoticeEmphasis the emphasised run inside the notice + */ + public InvoicePaymentBlock(String heading, List fields, String instruction, + String dueNotice, String dueNoticeEmphasis) { + this(heading, fields, instruction, dueNotice, dueNoticeEmphasis, "", ""); } /** diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java index e89e3624d..65f3c7983 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/InvoiceServiceLines.java @@ -24,7 +24,9 @@ public record InvoiceServiceLines(Columns columns, List lines) { * Normalizes an absent column set and freezes the line list. */ public InvoiceServiceLines { - columns = columns == null ? new Columns(null, null, null, null, null, null) : columns; + columns = columns == null + ? new Columns(null, null, null, null, null, null, null) + : columns; lines = List.copyOf(Objects.requireNonNullElse(lines, List.of())); } @@ -37,6 +39,9 @@ public record InvoiceServiceLines(Columns columns, List lines) { * @param quantity label of the quantity column * @param unitPrice label of the unit-price column * @param amount label of the amount column + * @param vat label of the tax-rate column, for the + * jurisdictions that print the rate per line; + * blank leaves the column out */ public record Columns( String index, @@ -44,7 +49,8 @@ public record Columns( String servicePeriod, String quantity, String unitPrice, - String amount) { + String amount, + String vat) { /** * Normalizes optional labels to empty strings. @@ -56,6 +62,23 @@ public record Columns( quantity = Objects.requireNonNullElse(quantity, ""); unitPrice = Objects.requireNonNullElse(unitPrice, ""); amount = Objects.requireNonNullElse(amount, ""); + vat = Objects.requireNonNullElse(vat, ""); + } + + /** + * Backward-compatible constructor for callers that predate the + * tax-rate column. + * + * @param index label of the line-number column + * @param description label of the description column + * @param servicePeriod label of the service-period column + * @param quantity label of the quantity column + * @param unitPrice label of the unit-price column + * @param amount label of the amount column + */ + public Columns(String index, String description, String servicePeriod, + String quantity, String unitPrice, String amount) { + this(index, description, servicePeriod, quantity, unitPrice, amount, ""); } } @@ -73,6 +96,10 @@ public record Columns( * {@link BigDecimal#ZERO} * @param amount the line total; {@code null} normalizes to * {@link BigDecimal#ZERO} + * @param vatRate the tax rate printed for this line, written as + * the design shows it (e.g. {@code "20%"}) rather + * than as a number, because the wording differs by + * jurisdiction; blank when absent */ public record Line( int lineNumber, @@ -82,7 +109,8 @@ public record Line( BigDecimal quantity, String unit, BigDecimal unitPrice, - BigDecimal amount) { + BigDecimal amount, + String vatRate) { /** * Normalizes optional fields. @@ -95,6 +123,27 @@ public record Line( unit = Objects.requireNonNullElse(unit, ""); unitPrice = Objects.requireNonNullElse(unitPrice, BigDecimal.ZERO); amount = Objects.requireNonNullElse(amount, BigDecimal.ZERO); + vatRate = Objects.requireNonNullElse(vatRate, ""); + } + + /** + * Backward-compatible constructor for callers that predate the + * per-line tax rate. + * + * @param lineNumber the printed line number + * @param title the service title + * @param description the description under the title + * @param servicePeriod the period this line covers + * @param quantity how much was delivered + * @param unit what the quantity counts + * @param unitPrice the price per unit + * @param amount the line total + */ + public Line(int lineNumber, String title, String description, String servicePeriod, + BigDecimal quantity, String unit, BigDecimal unitPrice, + BigDecimal amount) { + this(lineNumber, title, description, servicePeriod, quantity, unit, + unitPrice, amount, ""); } } } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceData.java b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceData.java index d685766bb..21d964bd7 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceData.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/data/invoice/StructuredInvoiceData.java @@ -26,6 +26,9 @@ * @param supplier the sender's address and contact channels * @param masthead the document title and its metadata rows * @param billTo the billed-to block + * @param shipTo the shipped-to block, for the designs that print a + * delivery address beside the billing one; empty when + * the two are the same or the design shows only one * @param summary what the invoice covers, and for which period * @param serviceLines the line-items table * @param totals the totals stack and its total band @@ -38,6 +41,7 @@ public record StructuredInvoiceData( InvoiceContactBlock supplier, InvoiceMasthead masthead, InvoiceRecipient billTo, + InvoiceRecipient shipTo, InvoiceSummaryBlock summary, InvoiceServiceLines serviceLines, InvoiceTotalsBlock totals, @@ -55,6 +59,8 @@ public record StructuredInvoiceData( masthead = masthead == null ? new InvoiceMasthead(null, null) : masthead; billTo = billTo == null ? new InvoiceRecipient(null, null, null, null, null, null) : billTo; + shipTo = shipTo == null + ? new InvoiceRecipient(null, null, null, null, null, null) : shipTo; summary = summary == null ? new InvoiceSummaryBlock(null, null, null) : summary; serviceLines = serviceLines == null ? new InvoiceServiceLines(null, null) : serviceLines; @@ -65,6 +71,31 @@ public record StructuredInvoiceData( currencyCode = Objects.requireNonNullElse(currencyCode, ""); } + /** + * Backward-compatible constructor for callers that predate the + * shipped-to block. + * + * @param brand the sender's brand lockup + * @param supplier the sender's address and contact channels + * @param masthead the document title and its metadata rows + * @param billTo the billed-to block + * @param summary what the invoice covers, and for which period + * @param serviceLines the line-items table + * @param totals the totals stack and its total band + * @param payment where to send the money, and by when + * @param notes the closing notes and query channels + * @param currencyCode the ISO currency code the figures are stated in + */ + public StructuredInvoiceData(InvoiceBrand brand, InvoiceContactBlock supplier, + InvoiceMasthead masthead, InvoiceRecipient billTo, + InvoiceSummaryBlock summary, + InvoiceServiceLines serviceLines, + InvoiceTotalsBlock totals, InvoicePaymentBlock payment, + InvoiceNotesBlock notes, String currencyCode) { + this(brand, supplier, masthead, billTo, null, summary, serviceLines, + totals, payment, notes, currencyCode); + } + /** * Starts a fluent structured invoice data builder. * @@ -82,6 +113,7 @@ public static final class Builder { private InvoiceContactBlock supplier; private InvoiceMasthead masthead; private InvoiceRecipient billTo; + private InvoiceRecipient shipTo; private InvoiceSummaryBlock summary; private InvoiceServiceLines serviceLines; private InvoiceTotalsBlock totals; @@ -136,6 +168,18 @@ public Builder billTo(InvoiceRecipient billTo) { return this; } + /** + * Sets the shipped-to block, for the designs that print a delivery + * address beside the billing one. + * + * @param shipTo recipient block + * @return this builder + */ + public Builder shipTo(InvoiceRecipient shipTo) { + this.shipTo = shipTo; + return this; + } + /** * Sets what the invoice covers, and for which period. * @@ -208,8 +252,8 @@ public Builder currencyCode(String currencyCode) { * @return structured invoice data */ public StructuredInvoiceData build() { - return new StructuredInvoiceData(brand, supplier, masthead, billTo, summary, - serviceLines, totals, payment, notes, currencyCode); + return new StructuredInvoiceData(brand, supplier, masthead, billTo, shipTo, + summary, serviceLines, totals, payment, notes, currencyCode); } } } From 361f76965d28a004442df630c13b1c9f7391a832 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 13:06:10 +0100 Subject: [PATCH 16/85] feat(templates): promote the Luma Studio invoice onto the structured model (#623) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The structured invoice model landed with one consumer. The fields added beside it fitted a second published invoice; this is that invoice — `luma-co-studio-invoice`, a studio sheet built around a cream sidebar — brought into the templates module so it ships with the library. It is the first promoted preset that has to paginate. The line-items table repeats its dark header, the totals stack and each closing block stay whole, and the paper tint, the sidebar column and the dark foot band are page backgrounds, so every page carries the same frame and the folio always has a dark ground. The sign-off carries its own strip rather than relying on that background band, which is the one deliberate departure from the sheet being ported: the band is pinned to the paper's edge, so on the last page of a longer invoice the published template sets white words on pale paper. Drawing the strip with the words fixes it wherever they land, at 7,440 of 2,173,720 pixels on the reference sheet and one extra layout node. It is flow content only because footer chrome carries text today; once a footer zone can hold a node the sign-off belongs in one. Amounts take their mark from the data's currency code rather than a second stated field, and the contact channels carry dial, mail and web targets derived from their values, with a parenthesised trunk prefix dropped from the dial target. Guarded by a smoke test, an exact layout snapshot over a one-page and a three-page invoice, and a pixel-parity gate; the examples showcase gains `invoice-luma-studio-v2`. --- CHANGELOG.md | 40 + .../examples/invoice-luma-studio-v2.pdf | Bin 0 -> 48610 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../support/LumaStudioInvoiceSampleData.java | 108 + .../examples/support/ShowcaseMetadata.java | 1 + .../v2/LumaStudioInvoiceV2Example.java | 54 + .../presets/LumaStudioInvoiceFixtures.java | 130 + .../LumaStudioInvoiceLayoutSnapshotTest.java | 46 + .../presets/LumaStudioInvoiceSmokeTest.java | 251 ++ .../LumaStudioInvoiceVisualParityTest.java | 42 + .../invoice/luma_studio_invoice_layout.json | 3677 +++++++++++++++++ .../luma_studio_invoice_overflow_layout.json | 3677 +++++++++++++++++ .../luma_studio_invoice-page-0.png | Bin 0 -> 88556 bytes .../invoice/presets/LumaStudioClosing.java | 269 ++ .../invoice/presets/LumaStudioIcons.java | 65 + .../invoice/presets/LumaStudioInvoice.java | 223 + .../invoice/presets/LumaStudioLines.java | 182 + .../invoice/presets/LumaStudioMasthead.java | 276 ++ .../invoice/presets/LumaStudioSidebar.java | 170 + .../invoice/presets/LumaStudioStyles.java | 356 ++ .../invoice/presets/LumaStudioWidgets.java | 172 + .../invoice/luma-studio/icons/bank.svg | 1 + .../invoice/luma-studio/icons/email.svg | 1 + .../invoice/luma-studio/icons/heart.svg | 1 + .../invoice/luma-studio/icons/notes.svg | 1 + .../invoice/luma-studio/icons/phone.svg | 1 + .../invoice/luma-studio/icons/sprig.svg | 1 + .../invoice/luma-studio/icons/website.svg | 1 + 28 files changed, 9748 insertions(+) create mode 100644 assets/readme/examples/invoice-luma-studio-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/LumaStudioInvoiceSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/invoice/v2/LumaStudioInvoiceV2Example.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/luma_studio_invoice_layout.json create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/invoice/luma_studio_invoice_overflow_layout.json create mode 100644 qa/src/test/resources/visual-baselines/invoice-v2-layered/luma_studio_invoice-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoice.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioLines.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioSidebar.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioWidgets.java create mode 100644 templates/src/main/resources/templates/invoice/luma-studio/icons/bank.svg create mode 100644 templates/src/main/resources/templates/invoice/luma-studio/icons/email.svg create mode 100644 templates/src/main/resources/templates/invoice/luma-studio/icons/heart.svg create mode 100644 templates/src/main/resources/templates/invoice/luma-studio/icons/notes.svg create mode 100644 templates/src/main/resources/templates/invoice/luma-studio/icons/phone.svg create mode 100644 templates/src/main/resources/templates/invoice/luma-studio/icons/sprig.svg create mode 100644 templates/src/main/resources/templates/invoice/luma-studio/icons/website.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ef738a58..89c1ee8e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,6 +84,46 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **The first invoice preset that paginates what it ports: `LumaStudioInvoice`.** A + studio invoice built around a cream sidebar — the two-line monogram and the wordmark + on a terracotta block at its head, a tinted quarter-disc, an arch and a sprig running + down the rest of it — beside a billing sheet that reads sender, title and metadata, + the billed-to and shipped-to pair across a rule, the priced service lines with a VAT + column, the totals stack closing on a filled total-due band, and the notes and bank + details above a dark sign-off band. Ships as `invoice.presets.LumaStudioInvoice` on + the structured invoice model, porting the rendered layout of the published standalone + `luma-co-studio-invoice` template. Unlike the CV presets promoted before it this one + flows: the line-items table repeats its dark header on the next page, the totals stack + and each closing block stay whole, and the paper tint, the sidebar column and the dark + foot band are page backgrounds, so every page carries the same frame and the folio + always has a dark ground. **The sign-off carries its own strip, which is where the + preset deliberately departs from the sheet it ports.** On the published template the + words rely on that background band, which is pinned to the paper's edge — right on a + one-page invoice, and white-on-cream in the middle of the last page of a longer one, + where the flow ends well above the paper's foot. Drawing the strip with the words + fixes it wherever they land; the cost is 7 440 of 2 173 720 pixels on the reference + sheet, where the strip starts three points above the background band it sits on, and + one extra layout node. It is flow content only because footer chrome carries text + today — one size, one colour, no glyph, where this band needs two faces and a disc — + so once a footer zone can hold a node the sign-off belongs in one and the strip goes + away. Its geometry is not a set of round numbers: the design was drawn + on a pixel grid, so the preset carries that grid as page ratios and states every + vertical gap as the white the drawing shows, subtracting the blank a line box already + carries — per family, because the three faces it sets fill different line boxes at the + same size. Letter-spaced runs are written letter by letter with an invisible inline + rectangle between the pairs, since a text style carries no tracking; the six spacings + are frozen constants rather than a measurement, because measuring at compose time + would tie the preset to the font artifact's resource layout. Amounts take their mark + from `StructuredInvoiceData.currencyCode()` — the code is the authority, so the sheet + cannot contradict itself — and the contact channels carry `tel:`, `mailto:` and + `https:` targets derived from their values, with a parenthesised trunk prefix dropped + from the dial target the way a caller dialling from abroad drops it. Guarded by a + smoke test (including the empty document, an unknown and a blank currency code, a + supplier with one registration and with none, the link targets, the repeated header + and folio on a continuation page, and the sign-off landing on its own ground), an + exact layout snapshot over both a one-page and a three-page invoice, and a + pixel-parity gate; the examples showcase gains `invoice-luma-studio-v2`. + - **`SerifHeadline` links its titles and lets its bands breathe.** Every title the preset draws — a role, a project, a degree, an achievement — is now a link when its entry carries one. And a band column keeps a gutter at its right edge, so its text diff --git a/assets/readme/examples/invoice-luma-studio-v2.pdf b/assets/readme/examples/invoice-luma-studio-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..35493c7774e2d3f32bd8733a5bb8f34c8f46aae0 GIT binary patch literal 48610 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 K{uGrHgZ&>~TiDP5 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 6452c2d30..55bb1da8a 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -102,6 +102,7 @@ import com.demcha.examples.templates.cv.v2.SerifHeadlineExample; import com.demcha.examples.templates.invoice.ClassicInvoiceV2Example; import com.demcha.examples.templates.invoice.ConsultingInvoiceV2Example; +import com.demcha.examples.templates.invoice.LumaStudioInvoiceV2Example; import com.demcha.examples.templates.invoice.InvoiceCinematicFileExample; import com.demcha.examples.templates.invoice.ModernInvoiceV2Example; import com.demcha.examples.templates.proposal.CinematicProposalFileExample; @@ -176,6 +177,7 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + ModernInvoiceV2Example.generate()); System.out.println("Generated: " + ClassicInvoiceV2Example.generate()); System.out.println("Generated: " + ConsultingInvoiceV2Example.generate()); + System.out.println("Generated: " + LumaStudioInvoiceV2Example.generate()); // Proposals System.out.println("Generated: " + ProposalCinematicFileExample.generate()); diff --git a/examples/src/main/java/com/demcha/examples/support/LumaStudioInvoiceSampleData.java b/examples/src/main/java/com/demcha/examples/support/LumaStudioInvoiceSampleData.java new file mode 100644 index 000000000..175b40c11 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/LumaStudioInvoiceSampleData.java @@ -0,0 +1,108 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec; + +import java.math.BigDecimal; +import java.util.List; + +/** + * Shared sample data for the Luma Studio Invoice example. + * + *

    The sample is the preset's reference content: a design studio's + * invoice with a monogram lockup, five labelled masthead metadata rows, + * a billed-to and a shipped-to party, five priced service lines with a VAT + * column, a subtotal / VAT stack closing on the total-due band, five bank + * fields, two closing notes and the sign-off band.

    + * + *

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

    + */ +public final class LumaStudioInvoiceSampleData { + + /** The break the sheet stacks its multi-line notes on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private LumaStudioInvoiceSampleData() { + } + + /** The single-page reference invoice. */ + public static StructuredInvoiceDocumentSpec sample() { + return StructuredInvoiceDocumentSpec.from(StructuredInvoiceData.builder() + .brand(new InvoiceBrand(null, "LUMA & CO. STUDIO", null, + "Branding. Design. Digital.", "L", "&Co.")) + .supplier(new InvoiceContactBlock("LUMA & CO. STUDIO", + List.of("Studio 3.02, The Loom", "14 Gower Street", + "London WC1E 6BT", "United Kingdom"), + "+44 (0)20 7946 0832", "hello@lumaandco.studio", + "www.lumaandco.studio", + "Company No.", "12578934", "VAT No.", "369 4567 89")) + .masthead(new InvoiceMasthead("INVOICE", List.of( + new InvoiceMasthead.Entry("INVOICE NO.", "INV-2024-0587", false), + new InvoiceMasthead.Entry("ISSUE DATE", "20 May 2024", false), + new InvoiceMasthead.Entry("DUE DATE", "19 June 2024", false), + new InvoiceMasthead.Entry("PAYMENT TERMS", "30 Days", false), + new InvoiceMasthead.Entry("CURRENCY", "GBP", false)))) + .billTo(new InvoiceRecipient("BILL TO", "Northfield Consulting Ltd", + "Attn: Sarah Mitchell", + List.of("21 Jubilee Way", "London SE1 3SS", "United Kingdom"), "", "")) + .shipTo(new InvoiceRecipient("SHIP TO", "Northfield Consulting Ltd", "", + List.of("The Foundry, 2nd Floor", "17-19 Great Suffolk Street", + "London SE1 0NS", "United Kingdom"), "", "")) + .serviceLines(serviceLines()) + .totals(new InvoiceTotalsBlock(List.of( + new InvoiceTotalsBlock.Row("SUBTOTAL", new BigDecimal("8500.00")), + new InvoiceTotalsBlock.Row("VAT (20%)", new BigDecimal("1700.00"))), + "TOTAL DUE", new BigDecimal("10200.00"))) + .notes(new InvoiceNotesBlock("NOTES", List.of( + "Thank you for your business." + NEWLINE + + "If you have any questions regarding" + NEWLINE + + "this invoice, please get in touch.", + "All work remains the intellectual property" + NEWLINE + + "of LUMA & CO. STUDIO until payment" + NEWLINE + + "has been received in full."), "", "")) + .payment(new InvoicePaymentBlock("PAYMENT DETAILS", List.of( + new InvoicePaymentBlock.Field("BANK", "Starling Bank"), + new InvoicePaymentBlock.Field("SORT CODE", "60-83-71"), + new InvoicePaymentBlock.Field("ACCOUNT NO.", "98765432"), + new InvoicePaymentBlock.Field("IBAN", "GB36 SRLG 6083 7198 7654 32"), + new InvoicePaymentBlock.Field("BIC", "SRLGGB2L")), + "Please make payment by bank transfer to:", + "Payment is due by 19 June 2024.", "", + "LUMA & CO. STUDIO LTD", + "Thank you for choosing LUMA & CO. STUDIO.")) + .currencyCode("GBP") + .build()); + } + + private static InvoiceServiceLines serviceLines() { + return new InvoiceServiceLines( + new InvoiceServiceLines.Columns("", "DESCRIPTION", "", "QTY", "UNIT PRICE", + "AMOUNT", "VAT"), + List.of( + line(1, "Brand Strategy Workshop", + "Discovery session, research & brand positioning.", "1200.00"), + line(2, "Visual Identity Design", + "Logo suite, colour palette, typography & guidelines.", "2650.00"), + line(3, "Website Design (Up to 8 pages)", + "UX/UI design for desktop and mobile.", "3200.00"), + line(4, "Copywriting", "Website copy & key messaging.", "850.00"), + line(5, "Project Management", + "Planning, coordination & client liaison.", "600.00"))); + } + + private static InvoiceServiceLines.Line line(int number, String title, String description, + String price) { + return new InvoiceServiceLines.Line(number, title, description, "", BigDecimal.ONE, "", + new BigDecimal(price), new BigDecimal(price), "20%"); + } +} 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 f47ae6666..da69b14cf 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -92,6 +92,7 @@ record Entry(String title, String description, List tags, String codeUrl // ===== Templates / Invoice ===== invoice("invoice-cinematic", "InvoiceCinematicFileExample", "Cinematic Invoice", "Layered ModernInvoice preset with theme-driven layout, advanced tables, and totals.", "invoice", "cinematic"); invoice("invoice-consulting-v2", "v2/ConsultingInvoiceV2Example", "Consulting Invoice", "The ConsultingInvoice preset on the structured invoice model — brand lockup with the caller's logo, labelled masthead metadata, priced service lines with service periods, a totals stack and bank payment fields.", "invoice"); + invoice("invoice-luma-studio-v2", "v2/LumaStudioInvoiceV2Example", "Luma Studio Invoice", "The LumaStudioInvoice preset on the structured invoice model — a cream sidebar carrying the brand lockup and its ornament, a billed-to / shipped-to pair, priced service lines with a VAT column, and the notes and bank details above a sign-off band.", "invoice"); invoice("invoice-modern-v2", "v2/ModernInvoiceV2Example", "Modern Invoice", "The ModernInvoice preset composed straight from an InvoiceDocumentSpec — line items, totals and payment block driven by the BrandTheme rather than per-document styling.", "invoice"); invoice("invoice-classic-v2", "v2/ClassicInvoiceV2Example", "Classic Invoice", "The ClassicInvoice preset — letterhead header band, TOTAL DUE hero strip, BILL TO / FROM columns, and a dedicated Summary table after the line items.", "invoice"); diff --git a/examples/src/main/java/com/demcha/examples/templates/invoice/v2/LumaStudioInvoiceV2Example.java b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/LumaStudioInvoiceV2Example.java new file mode 100644 index 000000000..1b8b84336 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/LumaStudioInvoiceV2Example.java @@ -0,0 +1,54 @@ +package com.demcha.examples.templates.invoice; + +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.invoice.StructuredInvoiceDocumentSpec; +import com.demcha.compose.document.templates.invoice.presets.LumaStudioInvoice; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.LumaStudioInvoiceSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code invoice.v2} Luma Studio Invoice preset against + * the shared structured invoice sample data. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/invoice/invoice-luma-studio-v2.pdf}.

    + * + *

    The preset owns its page geometry — size, margins, the paper tint, the + * cream sidebar column and the sign-off band — so the session starts + * unconfigured. The lockup is drawn from the brand's monogram and wordmark, + * and the amounts take their mark from the data's currency code.

    + */ +public final class LumaStudioInvoiceV2Example { + + private LumaStudioInvoiceV2Example() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare( + "templates/invoice", "invoice-luma-studio-v2.pdf"); + StructuredInvoiceDocumentSpec spec = LumaStudioInvoiceSampleData.sample(); + DocumentTemplate template = LumaStudioInvoice.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/invoice/presets/LumaStudioInvoiceFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceFixtures.java new file mode 100644 index 000000000..b0115f9bb --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceFixtures.java @@ -0,0 +1,130 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; +import com.demcha.compose.document.templates.data.invoice.InvoiceServiceLines; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * Shared fixture data for the {@link LumaStudioInvoice} gates — the SAME + * specs feed the pixel parity test and the layout snapshot test, so a + * geometry shift the pixel budget absorbs still trips the exact snapshot, + * and vice versa. + */ +final class LumaStudioInvoiceFixtures { + + /** The break the sheet stacks its multi-line notes on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + private LumaStudioInvoiceFixtures() { + } + + /** + * Canonical studio invoice — five priced service lines on one page, + * exercising the sidebar lockup, both party blocks, the VAT column, the + * total-due band, the notes and payment pair, and the sign-off band. + */ + static StructuredInvoiceDocumentSpec canonicalInvoice() { + return StructuredInvoiceDocumentSpec.from(base().build()); + } + + /** + * Overflow studio invoice — the same sheet billed phase by phase, so the + * table paginates over three pages and the repeated header, the per-page + * chrome, a middle page carrying nothing but table, and the whole-block + * closing all become part of the frozen contract. No manual page breaks. + */ + static StructuredInvoiceDocumentSpec overflowInvoice() { + List lines = new ArrayList<>(); + for (int phase = 1; phase <= 4; phase++) { + for (InvoiceServiceLines.Line line : serviceLines().lines()) { + lines.add(new InvoiceServiceLines.Line(lines.size() + 1, line.title(), + line.description() + " Phase " + phase + ".", line.servicePeriod(), + line.quantity(), line.unit(), line.unitPrice(), line.amount(), + line.vatRate())); + } + } + return StructuredInvoiceDocumentSpec.from(base() + .serviceLines(new InvoiceServiceLines(serviceLines().columns(), lines)) + .build()); + } + + private static StructuredInvoiceData.Builder base() { + return StructuredInvoiceData.builder() + .brand(new InvoiceBrand(null, "LUMA & CO. STUDIO", null, + "Branding. Design. Digital.", "L", "&Co.")) + .supplier(new InvoiceContactBlock("LUMA & CO. STUDIO", + List.of("Studio 3.02, The Loom", "14 Gower Street", + "London WC1E 6BT", "United Kingdom"), + "+44 (0)20 7946 0832", "hello@lumaandco.studio", + "www.lumaandco.studio", + "Company No.", "12578934", "VAT No.", "369 4567 89")) + .masthead(new InvoiceMasthead("INVOICE", List.of( + new InvoiceMasthead.Entry("INVOICE NO.", "INV-2024-0587", false), + new InvoiceMasthead.Entry("ISSUE DATE", "20 May 2024", false), + new InvoiceMasthead.Entry("DUE DATE", "19 June 2024", false), + new InvoiceMasthead.Entry("PAYMENT TERMS", "30 Days", false), + new InvoiceMasthead.Entry("CURRENCY", "GBP", false)))) + .billTo(new InvoiceRecipient("BILL TO", "Northfield Consulting Ltd", + "Attn: Sarah Mitchell", + List.of("21 Jubilee Way", "London SE1 3SS", "United Kingdom"), "", "")) + .shipTo(new InvoiceRecipient("SHIP TO", "Northfield Consulting Ltd", "", + List.of("The Foundry, 2nd Floor", "17-19 Great Suffolk Street", + "London SE1 0NS", "United Kingdom"), "", "")) + .serviceLines(serviceLines()) + .totals(new InvoiceTotalsBlock(List.of( + new InvoiceTotalsBlock.Row("SUBTOTAL", new BigDecimal("8500.00")), + new InvoiceTotalsBlock.Row("VAT (20%)", new BigDecimal("1700.00"))), + "TOTAL DUE", new BigDecimal("10200.00"))) + .notes(new InvoiceNotesBlock("NOTES", List.of( + "Thank you for your business." + NEWLINE + + "If you have any questions regarding" + NEWLINE + + "this invoice, please get in touch.", + "All work remains the intellectual property" + NEWLINE + + "of LUMA & CO. STUDIO until payment" + NEWLINE + + "has been received in full."), "", "")) + .payment(new InvoicePaymentBlock("PAYMENT DETAILS", List.of( + new InvoicePaymentBlock.Field("BANK", "Starling Bank"), + new InvoicePaymentBlock.Field("SORT CODE", "60-83-71"), + new InvoicePaymentBlock.Field("ACCOUNT NO.", "98765432"), + new InvoicePaymentBlock.Field("IBAN", "GB36 SRLG 6083 7198 7654 32"), + new InvoicePaymentBlock.Field("BIC", "SRLGGB2L")), + "Please make payment by bank transfer to:", + "Payment is due by 19 June 2024.", "", + "LUMA & CO. STUDIO LTD", + "Thank you for choosing LUMA & CO. STUDIO.")) + .currencyCode("GBP"); + } + + private static InvoiceServiceLines serviceLines() { + return new InvoiceServiceLines( + new InvoiceServiceLines.Columns("", "DESCRIPTION", "", "QTY", "UNIT PRICE", + "AMOUNT", "VAT"), + List.of( + line(1, "Brand Strategy Workshop", + "Discovery session, research & brand positioning.", "1200.00"), + line(2, "Visual Identity Design", + "Logo suite, colour palette, typography & guidelines.", "2650.00"), + line(3, "Website Design (Up to 8 pages)", + "UX/UI design for desktop and mobile.", "3200.00"), + line(4, "Copywriting", "Website copy & key messaging.", "850.00"), + line(5, "Project Management", + "Planning, coordination & client liaison.", "600.00"))); + } + + private static InvoiceServiceLines.Line line(int number, String title, String description, + String price) { + return new InvoiceServiceLines.Line(number, title, description, "", BigDecimal.ONE, "", + new BigDecimal(price), new BigDecimal(price), "20%"); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceLayoutSnapshotTest.java new file mode 100644 index 000000000..73077112e --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceLayoutSnapshotTest.java @@ -0,0 +1,46 @@ +package com.demcha.compose.document.templates.invoice.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 LumaStudioInvoice} — freezes the + * resolved geometry the pixel budget cannot see (a small column or spacing + * shift stays under the visual-diff budget but changes the snapshot), and + * the pagination contract of the overflow invoice: the service lines flow + * onto further pages while the totals stack and each closing block stay + * whole. + * + *

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

    + */ +class LumaStudioInvoiceLayoutSnapshotTest { + + @Test + void canonicalInvoiceMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + LumaStudioInvoice.create().compose( + session, LumaStudioInvoiceFixtures.canonicalInvoice()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "luma_studio_invoice_layout", "invoice"); + } + } + + @Test + void overflowInvoicePaginatesOverThreePages() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + LumaStudioInvoice.create().compose( + session, LumaStudioInvoiceFixtures.overflowInvoice()); + // Three pages exactly: the table spans the first two, and the + // closing blocks move whole onto the third rather than splitting. + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(3); + TemplateTestSupport.assertCanonicalSnapshot( + session, "luma_studio_invoice_overflow_layout", "invoice"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceSmokeTest.java new file mode 100644 index 000000000..3ca52c7d8 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceSmokeTest.java @@ -0,0 +1,251 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.snapshot.LayoutNodeSnapshot; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceData; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Smoke test for {@link LumaStudioInvoice} — proves the preset renders a + * {@link StructuredInvoiceDocumentSpec} end-to-end with its packaged icon + * set, renders an empty document through its guards, writes the currency + * mark its data's code names, puts the priced figures on the text layer + * where the layout snapshot cannot see inside the table, and carries the + * contact channels as link annotations — which move no pixel and no layout + * node, so neither gate would notice them going missing. + */ +class LumaStudioInvoiceSmokeTest { + + private static byte[] render(StructuredInvoiceDocumentSpec spec) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + LumaStudioInvoice.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); + } + } + + /** + * The text with its spaces removed. The sheet's headings and labels are + * letter-spaced runs, so the extractor can report a gap between each pair + * of letters; what is being asserted is the wording, not the tracking. + */ + private static String compact(String text) { + return text.replace(" ", ""); + } + + /** The text as one run, so an assertion need not know where a line broke. */ + private static String unwrapped(String text) { + return text.replace(String.valueOf((char) 13), "") + .replace(String.valueOf((char) 10), " "); + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = LumaStudioInvoice.create(); + assertThat(template.id()).isEqualTo(LumaStudioInvoice.ID); + assertThat(template.displayName()).isEqualTo(LumaStudioInvoice.DISPLAY_NAME); + } + + @Test + void rendersCanonicalInvoiceWithPackagedIcons() throws Exception { + render(LumaStudioInvoiceFixtures.canonicalInvoice()); + } + + @Test + void rendersEmptyInvoice() throws Exception { + // Exercises the empty-collection paths through full layout and render: + // no metadata rows, no service lines, no totals rows, no bank fields, + // no notes, and a brand with neither monogram nor wordmark. + render(StructuredInvoiceDocumentSpec.from(StructuredInvoiceData.builder().build())); + } + + @Test + void canonicalRenderCarriesTheTableTotalsAndBankText() throws Exception { + // The line-items table, the totals bands and the bank rows are leaf + // nodes in the layout snapshot, so their content is asserted here. + String text = textOf(render(LumaStudioInvoiceFixtures.canonicalInvoice())); + assertThat(text) + .contains("Brand Strategy Workshop") + .contains("1,200.00") + .contains("10,200.00") + .contains("GB36 SRLG 6083 7198 7654 32") + .contains("Starling Bank"); + // The description wraps inside its cell, so it is asserted unwrapped. + assertThat(unwrapped(text)) + .contains("Discovery session, research & brand positioning."); + assertThat(compact(text)) + .contains("TOTALDUE") + .contains("INV-2024-0587") + .contains("PAYMENTDETAILS"); + } + + @Test + void amountsCarryTheMarkOfTheStatedCurrency() throws Exception { + String text = textOf(render(LumaStudioInvoiceFixtures.canonicalInvoice())); + assertThat(text).contains("£10,200.00"); + } + + @Test + void anUnknownCurrencyCodePrintsItselfRatherThanNothing() throws Exception { + StructuredInvoiceData data = rebuild( + LumaStudioInvoiceFixtures.canonicalInvoice().invoice()) + .currencyCode("ZZZ") + .build(); + + String text = textOf(render(StructuredInvoiceDocumentSpec.from(data))); + assertThat(text).contains("ZZZ10,200.00"); + } + + @Test + void aDocumentWithoutACurrencyLeavesTheFiguresBare() throws Exception { + StructuredInvoiceData data = rebuild( + LumaStudioInvoiceFixtures.canonicalInvoice().invoice()) + .currencyCode("") + .build(); + + String text = textOf(render(StructuredInvoiceDocumentSpec.from(data))); + assertThat(text).contains("10,200.00").doesNotContain("£10,200.00"); + } + + @Test + void contactChannelsAreClickable() throws Exception { + List targets = linkTargets(render(LumaStudioInvoiceFixtures.canonicalInvoice())); + assertThat(targets) + .contains("tel:+442079460832") + .contains("mailto:hello@lumaandco.studio") + .contains("https://www.lumaandco.studio"); + } + + @Test + void aSupplierWithoutRegistrationsPrintsNoDanglingSeparator() throws Exception { + StructuredInvoiceData canonical = + LumaStudioInvoiceFixtures.canonicalInvoice().invoice(); + InvoiceContactBlock supplier = canonical.supplier(); + StructuredInvoiceData data = rebuild(canonical) + .supplier(new InvoiceContactBlock(supplier.legalName(), supplier.addressLines(), + supplier.phone(), supplier.email(), supplier.website(), + "", "", "", "")) + .build(); + + String text = textOf(render(StructuredInvoiceDocumentSpec.from(data))); + assertThat(text).contains("Studio 3.02, The Loom").doesNotContain("|"); + } + + @Test + void aSupplierWithOneRegistrationPrintsNoSeparator() throws Exception { + StructuredInvoiceData canonical = + LumaStudioInvoiceFixtures.canonicalInvoice().invoice(); + InvoiceContactBlock supplier = canonical.supplier(); + StructuredInvoiceData data = rebuild(canonical) + .supplier(new InvoiceContactBlock(supplier.legalName(), supplier.addressLines(), + supplier.phone(), supplier.email(), supplier.website(), + supplier.registrationLabel(), supplier.registrationNumber(), "", "")) + .build(); + + String text = textOf(render(StructuredInvoiceDocumentSpec.from(data))); + assertThat(text).contains("Company No. 12578934").doesNotContain("|"); + } + + @Test + void overflowInvoiceRepeatsTheTableHeaderAndTheFolioOnTheSecondPage() throws Exception { + byte[] pdfBytes = render(LumaStudioInvoiceFixtures.overflowInvoice()); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + assertThat(document.getNumberOfPages()).isGreaterThan(1); + PDFTextStripper stripper = new PDFTextStripper(); + stripper.setStartPage(2); + stripper.setEndPage(2); + String secondPage = compact(stripper.getText(document)); + assertThat(secondPage).contains("DESCRIPTION").contains("UNITPRICE"); + assertThat(secondPage).contains("Page2of"); + } + } + + @Test + void overflowInvoicePricesEveryLine() throws Exception { + String text = textOf(render(LumaStudioInvoiceFixtures.overflowInvoice())); + int occurrences = text.split("Project Management", -1).length - 1; + assertThat(occurrences).isEqualTo(4); + } + + @Test + void theSignOffLandsOnItsOwnDarkGroundOnTheLastPage() throws Exception { + // The words are white. The dark foot band is a page background pinned + // to the paper's edge, and on a multi-page invoice the flow ends well + // above it — so the sign-off carries its own strip, and this is what + // says the strip is still under the words rather than the page's. + try (DocumentSession session = GraphCompose.document().create()) { + LumaStudioInvoice.create().compose( + session, LumaStudioInvoiceFixtures.overflowInvoice()); + LayoutNodeSnapshot band = node(session, "BannerBand"); + LayoutNodeSnapshot signOff = node(session, "SignOff"); + + assertThat(signOff.startPage()).isEqualTo(band.startPage()); + assertThat(signOff.placementY()).isGreaterThanOrEqualTo(band.placementY()); + assertThat(signOff.placementY() + signOff.placementHeight()) + .isLessThanOrEqualTo(band.placementY() + band.placementHeight()); + } + } + + private static LayoutNodeSnapshot node(DocumentSession session, String entityName) { + return session.layoutSnapshot().nodes().stream() + .filter(candidate -> entityName.equals(candidate.entityName())) + .findFirst() + .orElseThrow(() -> new AssertionError("No node named " + entityName)); + } + + /** Copies every component of a spec so one of them can be replaced. */ + private static StructuredInvoiceData.Builder rebuild(StructuredInvoiceData data) { + return StructuredInvoiceData.builder() + .brand(data.brand()) + .supplier(data.supplier()) + .masthead(data.masthead()) + .billTo(data.billTo()) + .shipTo(data.shipTo()) + .summary(data.summary()) + .serviceLines(data.serviceLines()) + .totals(data.totals()) + .payment(data.payment()) + .notes(data.notes()) + .currencyCode(data.currencyCode()); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceVisualParityTest.java new file mode 100644 index 000000000..5f470eb41 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoiceVisualParityTest.java @@ -0,0 +1,42 @@ +package com.demcha.compose.document.templates.invoice.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 LumaStudioInvoice}. Budget and + * tolerance mirror the other structured-invoice parity gates. + * + *

    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/invoice-v2-layered/}.

    + */ +class LumaStudioInvoiceVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "invoice-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()) { + LumaStudioInvoice.create().compose( + document, LumaStudioInvoiceFixtures.canonicalInvoice()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("luma_studio_invoice", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/luma_studio_invoice_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/luma_studio_invoice_layout.json new file mode 100644 index 000000000..129d7aebb --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/luma_studio_invoice_layout.json @@ -0,0 +1,3677 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 402.871, + "innerHeight" : 732.911, + "margin" : { + "top" : 46.3, + "right" : 38.931, + "bottom" : 62.679, + "left" : 153.474 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "LumaStudioInvoice[0]", + "entityName" : "LumaStudioInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 153.474, + "computedY" : 65.475, + "placementX" : 153.474, + "placementY" : 65.475, + "placementWidth" : 402.871, + "placementHeight" : 730.115, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 402.871, + "contentHeight" : 730.115, + "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" : "LumaStudioInvoice[0]/Sidebar[0]", + "entityName" : "Sidebar", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 841.49, + "placementX" : 0.0, + "placementY" : 841.49, + "placementWidth" : 132.032, + "placementHeight" : 0.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.032, + "contentHeight" : 0.4, + "margin" : { + "top" : -46.3, + "right" : 0.0, + "bottom" : 45.9, + "left" : -153.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]", + "entityName" : "SidebarOrnament", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 0.0, + "placementX" : 0.0, + "placementY" : 0.0, + "placementWidth" : 132.032, + "placementHeight" : 634.667, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.032, + "contentHeight" : 634.667, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]/OrnamentDisc[0]", + "entityName" : "OrnamentDisc", + "entityKind" : "EllipseNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 17.489, + "computedY" : 527.868, + "placementX" : 17.489, + "placementY" : 527.868, + "placementWidth" : 205.382, + "placementHeight" : 205.382, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.382, + "contentHeight" : 205.382, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]/OrnamentArch[1]", + "entityName" : "OrnamentArch", + "entityKind" : "ShapeNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 15.799, + "computedY" : 0.0, + "placementX" : 15.799, + "placementY" : 0.0, + "placementWidth" : 116.234, + "placementHeight" : 236.588, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.234, + "contentHeight" : 236.588, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]/SvgIcon[2]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 12.977, + "computedY" : 282.647, + "placementX" : 12.977, + "placementY" : 282.647, + "placementWidth" : 95.244, + "placementHeight" : 95.244, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.244, + "contentHeight" : 95.244, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]/SvgIcon[2]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]/SvgIcon[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 12.977, + "computedY" : 282.647, + "placementX" : 12.977, + "placementY" : 282.647, + "placementWidth" : 95.244, + "placementHeight" : 95.244, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.244, + "contentHeight" : 95.244, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandBlock[1]", + "entityName" : "BrandBlock", + "entityKind" : "ShapeNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 634.667, + "placementX" : 0.0, + "placementY" : 634.667, + "placementWidth" : 132.032, + "placementHeight" : 207.223, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.032, + "contentHeight" : 207.223, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "entityName" : "BrandLockup", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 634.667, + "placementX" : 0.0, + "placementY" : 634.667, + "placementWidth" : 132.032, + "placementHeight" : 207.223, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.032, + "contentHeight" : 207.223, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 33.288, + "computedY" : 715.218, + "placementX" : 33.288, + "placementY" : 715.218, + "placementWidth" : 36.655, + "placementHeight" : 88.273, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.655, + "contentHeight" : 88.273, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 33.288, + "computedY" : 705.462, + "placementX" : 33.288, + "placementY" : 705.462, + "placementWidth" : 68.585, + "placementHeight" : 47.212, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 68.585, + "contentHeight" : 47.212, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]/LockupRule[2]", + "entityName" : "LockupRule", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 33.288, + "computedY" : 704.671, + "placementX" : 33.288, + "placementY" : 704.671, + "placementWidth" : 20.311, + "placementHeight" : 1.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.311, + "contentHeight" : 1.7, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]/Wordmark[3]", + "entityName" : "Wordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 33.288, + "computedY" : 675.395, + "placementX" : 33.288, + "placementY" : 675.395, + "placementWidth" : 82.984, + "placementHeight" : 9.524, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 82.984, + "contentHeight" : 9.524, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]/ParagraphNode[4]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 33.288, + "computedY" : 661.626, + "placementX" : 33.288, + "placementY" : 661.626, + "placementWidth" : 77.712, + "placementHeight" : 8.047, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.712, + "contentHeight" : 8.047, + "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" : "LumaStudioInvoice[0]/Masthead[1]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 647.091, + "placementX" : 153.474, + "placementY" : 647.091, + "placementWidth" : 402.871, + "placementHeight" : 148.499, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 402.871, + "contentHeight" : 148.499, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]", + "entityName" : "SupplierHeader", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 153.474, + "computedY" : 655.01, + "placementX" : 153.474, + "placementY" : 655.01, + "placementWidth" : 236.404, + "placementHeight" : 140.58, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.404, + "contentHeight" : 140.58, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 7.334 + } + }, { + "path" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/SupplierName[0]", + "entityName" : "SupplierName", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 782.164, + "placementX" : 160.808, + "placementY" : 782.164, + "placementWidth" : 94.638, + "placementHeight" : 13.425, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 94.638, + "contentHeight" : 13.425, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/SupplierAddress[1]", + "entityName" : "SupplierAddress", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 727.228, + "placementX" : 160.808, + "placementY" : 727.228, + "placementWidth" : 85.39, + "placementHeight" : 48.726, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.39, + "contentHeight" : 48.726, + "margin" : { + "top" : 6.21, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]", + "entityName" : "ContactRows", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 674.232, + "placementX" : 160.808, + "placementY" : 674.232, + "placementWidth" : 229.071, + "placementHeight" : 43.184, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.071, + "contentHeight" : 43.184, + "margin" : { + "top" : 9.812, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]", + "entityName" : "ContactRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 160.808, + "computedY" : 703.022, + "placementX" : 160.808, + "placementY" : 703.022, + "placementWidth" : 229.071, + "placementHeight" : 14.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.071, + "contentHeight" : 14.395, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 160.808, + "computedY" : 705.919, + "placementX" : 160.808, + "placementY" : 705.919, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 160.808, + "computedY" : 705.919, + "placementX" : 160.808, + "placementY" : 705.919, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 181.808, + "computedY" : 704.482, + "placementX" : 181.808, + "placementY" : 704.482, + "placementWidth" : 78.706, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.706, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]", + "entityName" : "ContactRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 160.808, + "computedY" : 688.627, + "placementX" : 160.808, + "placementY" : 688.627, + "placementWidth" : 229.071, + "placementHeight" : 14.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.071, + "contentHeight" : 14.395, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 160.808, + "computedY" : 691.524, + "placementX" : 160.808, + "placementY" : 691.524, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 160.808, + "computedY" : 691.524, + "placementX" : 160.808, + "placementY" : 691.524, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 181.808, + "computedY" : 690.087, + "placementX" : 181.808, + "placementY" : 690.087, + "placementWidth" : 95.852, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.852, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]", + "entityName" : "ContactRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 160.808, + "computedY" : 674.232, + "placementX" : 160.808, + "placementY" : 674.232, + "placementWidth" : 229.071, + "placementHeight" : 14.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.071, + "contentHeight" : 14.395, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 160.808, + "computedY" : 677.129, + "placementX" : 160.808, + "placementY" : 677.129, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 160.808, + "computedY" : 677.129, + "placementX" : 160.808, + "placementY" : 677.129, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 181.808, + "computedY" : 675.692, + "placementX" : 181.808, + "placementY" : 675.692, + "placementWidth" : 91.105, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.105, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/Registration[3]", + "entityName" : "Registration", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 655.01, + "placementX" : 160.808, + "placementY" : 655.01, + "placementWidth" : 148.091, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 148.091, + "contentHeight" : 8.79, + "margin" : { + "top" : 10.433, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "entityName" : "InvoiceHeader", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 389.878, + "computedY" : 647.091, + "placementX" : 389.878, + "placementY" : 647.091, + "placementWidth" : 166.466, + "placementHeight" : 148.499, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 148.499, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/InvoiceTitleBlock[0]", + "entityName" : "InvoiceTitleBlock", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 749.89, + "placementX" : 389.878, + "placementY" : 749.89, + "placementWidth" : 166.466, + "placementHeight" : 45.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 45.7, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 15.3, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/InvoiceTitleBlock[0]/InvoiceTitle[0]", + "entityName" : "InvoiceTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/InvoiceTitleBlock[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 736.636, + "placementX" : 389.878, + "placementY" : 736.636, + "placementWidth" : 164.751, + "placementHeight" : 55.553, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 164.751, + "contentHeight" : 55.553, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/InvoiceTitleBlock[0]/TitleRule[1]", + "entityName" : "TitleRule", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/InvoiceTitleBlock[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 749.89, + "placementX" : 389.878, + "placementY" : 749.89, + "placementWidth" : 58.7, + "placementHeight" : 1.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.7, + "contentHeight" : 1.7, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[1]", + "entityName" : "MetadataRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 717.09, + "placementX" : 389.878, + "placementY" : 717.09, + "placementWidth" : 166.466, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 17.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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[1]/MetaLabel[0]", + "entityName" : "MetaLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 720.957, + "placementX" : 389.878, + "placementY" : 720.957, + "placementWidth" : 57.062, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.062, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 491.989, + "computedY" : 720.103, + "placementX" : 491.989, + "placementY" : 720.103, + "placementWidth" : 57.65, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.65, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[2]", + "entityName" : "MetadataRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 699.59, + "placementX" : 389.878, + "placementY" : 699.59, + "placementWidth" : 166.466, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 17.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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[2]/MetaLabel[0]", + "entityName" : "MetaLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 703.458, + "placementX" : 389.878, + "placementY" : 703.458, + "placementWidth" : 51.552, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.552, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 491.989, + "computedY" : 702.603, + "placementX" : 491.989, + "placementY" : 702.603, + "placementWidth" : 49.641, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.641, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[3]", + "entityName" : "MetadataRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 682.09, + "placementX" : 389.878, + "placementY" : 682.09, + "placementWidth" : 166.466, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 17.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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[3]/MetaLabel[0]", + "entityName" : "MetaLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 685.958, + "placementX" : 389.878, + "placementY" : 685.958, + "placementWidth" : 43.963, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 43.963, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[3]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 491.989, + "computedY" : 685.103, + "placementX" : 491.989, + "placementY" : 685.103, + "placementWidth" : 50.393, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.393, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[4]", + "entityName" : "MetadataRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 664.591, + "placementX" : 389.878, + "placementY" : 664.591, + "placementWidth" : 166.466, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 17.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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[4]/MetaLabel[0]", + "entityName" : "MetaLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 668.458, + "placementX" : 389.878, + "placementY" : 668.458, + "placementWidth" : 75.89, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.89, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 491.989, + "computedY" : 667.603, + "placementX" : 491.989, + "placementY" : 667.603, + "placementWidth" : 29.873, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.873, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[5]", + "entityName" : "MetadataRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 647.091, + "placementX" : 389.878, + "placementY" : 647.091, + "placementWidth" : 166.466, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 17.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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[5]/MetaLabel[0]", + "entityName" : "MetaLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 650.958, + "placementX" : 389.878, + "placementY" : 650.958, + "placementWidth" : 46.267, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 46.267, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[5]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[5]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 491.989, + "computedY" : 650.103, + "placementX" : 491.989, + "placementY" : 650.103, + "placementWidth" : 15.905, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.905, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/HeaderRule[2]", + "entityName" : "HeaderRule", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 160.808, + "computedY" : 633.091, + "placementX" : 160.808, + "placementY" : 633.091, + "placementWidth" : 395.537, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 395.537, + "contentHeight" : 1.0, + "margin" : { + "top" : 13.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 7.334 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Parties[3]", + "entityName" : "Parties", + "entityKind" : "RowNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 532.149, + "placementX" : 153.474, + "placementY" : 532.149, + "placementWidth" : 402.871, + "placementHeight" : 88.942, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 402.871, + "contentHeight" : 88.942, + "margin" : { + "top" : 12.0, + "right" : 0.0, + "bottom" : 12.9, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Parties[3]/BILLTO[0]", + "entityName" : "BILLTO", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 153.474, + "computedY" : 532.149, + "placementX" : 153.474, + "placementY" : 532.149, + "placementWidth" : 103.12, + "placementHeight" : 88.942, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.12, + "contentHeight" : 88.942, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 7.334 + } + }, { + "path" : "LumaStudioInvoice[0]/Parties[3]/BILLTO[0]/PartyHeading[0]", + "entityName" : "PartyHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]/BILLTO[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 611.326, + "placementX" : 160.808, + "placementY" : 611.326, + "placementWidth" : 33.342, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.342, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Parties[3]/BILLTO[0]/PartyAddress[1]", + "entityName" : "PartyAddress", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]/BILLTO[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 532.149, + "placementX" : 160.808, + "placementY" : 532.149, + "placementWidth" : 95.786, + "placementHeight" : 70.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.786, + "contentHeight" : 70.235, + "margin" : { + "top" : 8.942, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Parties[3]/SHIPTO[1]", + "entityName" : "SHIPTO", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 344.757, + "computedY" : 532.149, + "placementX" : 344.757, + "placementY" : 532.149, + "placementWidth" : 133.88, + "placementHeight" : 88.942, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 133.88, + "contentHeight" : 88.942, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 34.4 + } + }, { + "path" : "LumaStudioInvoice[0]/Parties[3]/SHIPTO[1]/PartyHeading[0]", + "entityName" : "PartyHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]/SHIPTO[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 379.157, + "computedY" : 611.326, + "placementX" : 379.157, + "placementY" : 611.326, + "placementWidth" : 35.173, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.173, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Parties[3]/SHIPTO[1]/PartyAddress[1]", + "entityName" : "PartyAddress", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]/SHIPTO[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 379.157, + "computedY" : 532.149, + "placementX" : 379.157, + "placementY" : 532.149, + "placementWidth" : 99.48, + "placementHeight" : 70.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.48, + "contentHeight" : 70.235, + "margin" : { + "top" : 8.942, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/LineItems[4]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 268.127, + "placementX" : 153.474, + "placementY" : 268.127, + "placementWidth" : 402.871, + "placementHeight" : 251.122, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 402.871, + "contentHeight" : 251.122, + "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" : "LumaStudioInvoice[0]/Totals[5]", + "entityName" : "Totals", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 306.404, + "computedY" : 197.553, + "placementX" : 306.404, + "placementY" : 197.553, + "placementWidth" : 249.941, + "placementHeight" : 66.174, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.941, + "contentHeight" : 66.174, + "margin" : { + "top" : 4.4, + "right" : 0.0, + "bottom" : 0.0, + "left" : 152.93 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[0]", + "entityName" : "TotalsRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 306.404, + "computedY" : 245.619, + "placementX" : 306.404, + "placementY" : 245.619, + "placementWidth" : 249.941, + "placementHeight" : 18.108, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.941, + "contentHeight" : 18.108, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[0]/TotalsLabel[0]", + "entityName" : "TotalsLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 348.204, + "computedY" : 248.821, + "placementX" : 348.204, + "placementY" : 248.821, + "placementWidth" : 46.299, + "placementHeight" : 11.704, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 46.299, + "contentHeight" : 11.704, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 293.404, + "computedY" : 248.821, + "placementX" : 293.404, + "placementY" : 248.821, + "placementWidth" : 249.941, + "placementHeight" : 11.704, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.941, + "contentHeight" : 11.704, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[1]", + "entityName" : "TotalsRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 306.404, + "computedY" : 227.51, + "placementX" : 306.404, + "placementY" : 227.51, + "placementWidth" : 249.941, + "placementHeight" : 18.108, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.941, + "contentHeight" : 18.108, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[1]/TotalsLabel[0]", + "entityName" : "TotalsLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 348.204, + "computedY" : 230.712, + "placementX" : 348.204, + "placementY" : 230.712, + "placementWidth" : 45.982, + "placementHeight" : 11.704, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 45.982, + "contentHeight" : 11.704, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 293.404, + "computedY" : 230.712, + "placementX" : 293.404, + "placementY" : 230.712, + "placementWidth" : 249.941, + "placementHeight" : 11.704, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.941, + "contentHeight" : 11.704, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalDueBand[2]", + "entityName" : "TotalDueBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 306.404, + "computedY" : 197.553, + "placementX" : 306.404, + "placementY" : 197.553, + "placementWidth" : 249.941, + "placementHeight" : 27.1, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.941, + "contentHeight" : 27.1, + "margin" : { + "top" : 2.857, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Totals[5]/TotalDueBand[2]/TotalsLabel[0]", + "entityName" : "TotalsLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalDueBand[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 348.204, + "computedY" : 204.85, + "placementX" : 348.204, + "placementY" : 204.85, + "placementWidth" : 52.971, + "placementHeight" : 12.507, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.971, + "contentHeight" : 12.507, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalDueBand[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalDueBand[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 293.404, + "computedY" : 199.812, + "placementX" : 293.404, + "placementY" : 199.812, + "placementWidth" : 249.941, + "placementHeight" : 22.582, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 249.941, + "contentHeight" : 22.582, + "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" : "LumaStudioInvoice[0]/FooterRule[6]", + "entityName" : "FooterRule", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 194.553, + "placementX" : 153.474, + "placementY" : 194.553, + "placementWidth" : 402.871, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 402.871, + "contentHeight" : 1.0, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]", + "entityName" : "Closing", + "entityKind" : "RowNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 74.375, + "placementX" : 153.474, + "placementY" : 74.375, + "placementWidth" : 402.871, + "placementHeight" : 108.178, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 402.871, + "contentHeight" : 108.178, + "margin" : { + "top" : 12.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]", + "entityName" : "Notes", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 153.474, + "computedY" : 86.272, + "placementX" : 153.474, + "placementY" : 86.272, + "placementWidth" : 167.03, + "placementHeight" : 96.281, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.03, + "contentHeight" : 96.281, + "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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]", + "entityName" : "SectionHead", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 153.474, + "computedY" : 157.753, + "placementX" : 153.474, + "placementY" : 157.753, + "placementWidth" : 167.03, + "placementHeight" : 24.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 167.03, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]", + "entityName" : "Disc-notes", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 153.474, + "computedY" : 157.753, + "placementX" : 153.474, + "placementY" : 157.753, + "placementWidth" : 24.8, + "placementHeight" : 24.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.8, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]/DiscFill[0]", + "entityName" : "DiscFill", + "entityKind" : "EllipseNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 153.474, + "computedY" : 157.753, + "placementX" : 153.474, + "placementY" : 157.753, + "placementWidth" : 24.8, + "placementHeight" : 24.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.8, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]/SvgIcon[1]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 159.874, + "computedY" : 164.153, + "placementX" : 159.874, + "placementY" : 164.153, + "placementWidth" : 12.0, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.0, + "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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]/SvgIcon[1]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]/SvgIcon[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 159.874, + "computedY" : 164.153, + "placementX" : 159.874, + "placementY" : 164.153, + "placementWidth" : 12.0, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.0, + "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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/SectionHeading[1]", + "entityName" : "SectionHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 188.974, + "computedY" : 165.271, + "placementX" : 188.974, + "placementY" : 165.271, + "placementWidth" : 28.177, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 28.177, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/NotesBody[1]", + "entityName" : "NotesBody", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 153.474, + "computedY" : 86.272, + "placementX" : 153.474, + "placementY" : 86.272, + "placementWidth" : 156.503, + "placementHeight" : 69.245, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.503, + "contentHeight" : 69.245, + "margin" : { + "top" : 2.236, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 35.5 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/NotesBody[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/NotesBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 188.974, + "computedY" : 125.552, + "placementX" : 188.974, + "placementY" : 125.552, + "placementWidth" : 103.794, + "placementHeight" : 29.965, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.794, + "contentHeight" : 29.965, + "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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/NotesBody[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/NotesBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 188.974, + "computedY" : 86.272, + "placementX" : 188.974, + "placementY" : 86.272, + "placementWidth" : 121.003, + "placementHeight" : 29.965, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 121.003, + "contentHeight" : 29.965, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]", + "entityName" : "PaymentDetails", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 320.504, + "computedY" : 74.375, + "placementX" : 320.504, + "placementY" : 74.375, + "placementWidth" : 235.84, + "placementHeight" : 108.178, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.84, + "contentHeight" : 108.178, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 24.3 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]", + "entityName" : "SectionHead", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 344.804, + "computedY" : 157.753, + "placementX" : 344.804, + "placementY" : 157.753, + "placementWidth" : 211.54, + "placementHeight" : 24.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.54, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]", + "entityName" : "Disc-bank", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 344.804, + "computedY" : 157.753, + "placementX" : 344.804, + "placementY" : 157.753, + "placementWidth" : 24.8, + "placementHeight" : 24.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.8, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]/DiscFill[0]", + "entityName" : "DiscFill", + "entityKind" : "EllipseNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 344.804, + "computedY" : 157.753, + "placementX" : 344.804, + "placementY" : 157.753, + "placementWidth" : 24.8, + "placementHeight" : 24.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 24.8, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]/SvgIcon[1]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 351.204, + "computedY" : 164.153, + "placementX" : 351.204, + "placementY" : 164.153, + "placementWidth" : 12.0, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.0, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]/SvgIcon[1]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]/SvgIcon[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 351.204, + "computedY" : 164.153, + "placementX" : 351.204, + "placementY" : 164.153, + "placementWidth" : 12.0, + "placementHeight" : 12.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 12.0, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/SectionHeading[1]", + "entityName" : "SectionHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 165.271, + "placementX" : 380.304, + "placementY" : 165.271, + "placementWidth" : 82.727, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 82.727, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "entityName" : "PaymentBody", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 344.804, + "computedY" : 74.375, + "placementX" : 344.804, + "placementY" : 74.375, + "placementWidth" : 211.54, + "placementHeight" : 81.143, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 211.54, + "contentHeight" : 81.143, + "margin" : { + "top" : 2.236, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 35.5 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentInstruction[0]", + "entityName" : "PaymentInstruction", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 147.544, + "placementX" : 380.304, + "placementY" : 147.544, + "placementWidth" : 121.183, + "placementHeight" : 7.974, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 121.183, + "contentHeight" : 7.974, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/AccountHolder[1]", + "entityName" : "AccountHolder", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 132.19, + "placementX" : 380.304, + "placementY" : 132.19, + "placementWidth" : 83.026, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.026, + "contentHeight" : 9.765, + "margin" : { + "top" : 5.589, + "right" : 0.0, + "bottom" : 6.831, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]", + "entityName" : "PaymentField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 115.162, + "placementX" : 380.304, + "placementY" : 115.162, + "placementWidth" : 176.04, + "placementHeight" : 10.197, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 176.04, + "contentHeight" : 10.197, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 380.304, + "computedY" : 115.866, + "placementX" : 380.304, + "placementY" : 115.866, + "placementWidth" : 17.087, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.087, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]/BankPipe[1]", + "entityName" : "BankPipe", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 433.904, + "computedY" : 116.895, + "placementX" : 433.904, + "placementY" : 116.895, + "placementWidth" : 1.0, + "placementHeight" : 6.73, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 6.73, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 444.104, + "computedY" : 115.866, + "placementX" : 444.104, + "placementY" : 115.866, + "placementWidth" : 38.198, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 38.198, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]", + "entityName" : "PaymentField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 104.965, + "placementX" : 380.304, + "placementY" : 104.965, + "placementWidth" : 176.04, + "placementHeight" : 10.197, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 176.04, + "contentHeight" : 10.197, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 380.304, + "computedY" : 105.669, + "placementX" : 380.304, + "placementY" : 105.669, + "placementWidth" : 34.245, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 34.245, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]/BankPipe[1]", + "entityName" : "BankPipe", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 433.904, + "computedY" : 106.699, + "placementX" : 433.904, + "placementY" : 106.699, + "placementWidth" : 1.0, + "placementHeight" : 6.73, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 6.73, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 444.104, + "computedY" : 105.669, + "placementX" : 444.104, + "placementY" : 105.669, + "placementWidth" : 26.31, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 26.31, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]", + "entityName" : "PaymentField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 94.768, + "placementX" : 380.304, + "placementY" : 94.768, + "placementWidth" : 176.04, + "placementHeight" : 10.197, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 176.04, + "contentHeight" : 10.197, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 380.304, + "computedY" : 95.472, + "placementX" : 380.304, + "placementY" : 95.472, + "placementWidth" : 43.022, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 43.022, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]/BankPipe[1]", + "entityName" : "BankPipe", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 433.904, + "computedY" : 96.502, + "placementX" : 433.904, + "placementY" : 96.502, + "placementWidth" : 1.0, + "placementHeight" : 6.73, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 6.73, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 444.104, + "computedY" : 95.472, + "placementX" : 444.104, + "placementY" : 95.472, + "placementWidth" : 29.205, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.205, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]", + "entityName" : "PaymentField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 84.571, + "placementX" : 380.304, + "placementY" : 84.571, + "placementWidth" : 176.04, + "placementHeight" : 10.197, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 176.04, + "contentHeight" : 10.197, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 380.304, + "computedY" : 85.275, + "placementX" : 380.304, + "placementY" : 85.275, + "placementWidth" : 15.07, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.07, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]/BankPipe[1]", + "entityName" : "BankPipe", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 433.904, + "computedY" : 86.305, + "placementX" : 433.904, + "placementY" : 86.305, + "placementWidth" : 1.0, + "placementHeight" : 6.73, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 6.73, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 444.104, + "computedY" : 85.275, + "placementX" : 444.104, + "placementY" : 85.275, + "placementWidth" : 89.789, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 89.789, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]", + "entityName" : "PaymentField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 74.375, + "placementX" : 380.304, + "placementY" : 74.375, + "placementWidth" : 176.04, + "placementHeight" : 10.197, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 176.04, + "contentHeight" : 10.197, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 380.304, + "computedY" : 75.078, + "placementX" : 380.304, + "placementY" : 75.078, + "placementWidth" : 9.771, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 9.771, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]/BankPipe[1]", + "entityName" : "BankPipe", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 433.904, + "computedY" : 76.108, + "placementX" : 433.904, + "placementY" : 76.108, + "placementWidth" : 1.0, + "placementHeight" : 6.73, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 6.73, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 444.104, + "computedY" : 75.078, + "placementX" : 444.104, + "placementY" : 75.078, + "placementWidth" : 29.918, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.918, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]", + "entityName" : "ClosingBanner", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 8, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 65.475, + "placementX" : 153.474, + "placementY" : 65.475, + "placementWidth" : 402.871, + "placementHeight" : 0.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 402.871, + "contentHeight" : 0.3, + "margin" : { + "top" : 8.6, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]", + "entityName" : "BannerContent", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 3.096, + "placementX" : 0.0, + "placementY" : 3.096, + "placementWidth" : 595.276, + "placementHeight" : 62.679, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 62.679, + "margin" : { + "top" : 0.0, + "right" : -38.931, + "bottom" : -62.379, + "left" : -153.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerBand[0]", + "entityName" : "BannerBand", + "entityKind" : "ShapeNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 3.096, + "placementX" : 0.0, + "placementY" : 3.096, + "placementWidth" : 595.276, + "placementHeight" : 62.679, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 62.679, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]", + "entityName" : "Disc-heart", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 32.728, + "computedY" : 17.485, + "placementX" : 32.728, + "placementY" : 17.485, + "placementWidth" : 33.9, + "placementHeight" : 33.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.9, + "contentHeight" : 33.9, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]/DiscFill[0]", + "entityName" : "DiscFill", + "entityKind" : "EllipseNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 32.728, + "computedY" : 17.485, + "placementX" : 32.728, + "placementY" : 17.485, + "placementWidth" : 33.9, + "placementHeight" : 33.9, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.9, + "contentHeight" : 33.9, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]/SvgIcon[1]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 41.678, + "computedY" : 26.435, + "placementX" : 41.678, + "placementY" : 26.435, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]/SvgIcon[1]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]/SvgIcon[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 41.678, + "computedY" : 26.435, + "placementX" : 41.678, + "placementY" : 26.435, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerLines[2]", + "entityName" : "BannerLines", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 80.628, + "computedY" : 21.357, + "placementX" : 80.628, + "placementY" : 21.357, + "placementWidth" : 179.909, + "placementHeight" : 26.156, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 179.909, + "contentHeight" : 26.156, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerLines[2]/SignOff[0]", + "entityName" : "SignOff", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerLines[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 80.628, + "computedY" : 35.809, + "placementX" : 80.628, + "placementY" : 35.809, + "placementWidth" : 179.909, + "placementHeight" : 11.704, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 179.909, + "contentHeight" : 11.704, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerLines[2]/DueNotice[1]", + "entityName" : "DueNotice", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerLines[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 80.628, + "computedY" : 21.357, + "placementX" : 80.628, + "placementY" : 21.357, + "placementWidth" : 135.165, + "placementHeight" : 11.347, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 135.165, + "contentHeight" : 11.347, + "margin" : { + "top" : 3.105, + "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/layout-snapshots/canonical-templates/invoice/luma_studio_invoice_overflow_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/luma_studio_invoice_overflow_layout.json new file mode 100644 index 000000000..7592ce06c --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/invoice/luma_studio_invoice_overflow_layout.json @@ -0,0 +1,3677 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 402.871, + "innerHeight" : 732.911, + "margin" : { + "top" : 46.3, + "right" : 38.931, + "bottom" : 62.679, + "left" : 153.474 + } + }, + "totalPages" : 3, + "nodes" : [ { + "path" : "LumaStudioInvoice[0]", + "entityName" : "LumaStudioInvoice", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 153.474, + "computedY" : -695.368, + "placementX" : 153.474, + "placementY" : -695.368, + "placementWidth" : 402.871, + "placementHeight" : 1490.957, + "startPage" : 0, + "endPage" : 2, + "contentWidth" : 402.871, + "contentHeight" : 1490.957, + "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" : "LumaStudioInvoice[0]/Sidebar[0]", + "entityName" : "Sidebar", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 841.49, + "placementX" : 0.0, + "placementY" : 841.49, + "placementWidth" : 132.032, + "placementHeight" : 0.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.032, + "contentHeight" : 0.4, + "margin" : { + "top" : -46.3, + "right" : 0.0, + "bottom" : 45.9, + "left" : -153.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]", + "entityName" : "SidebarOrnament", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 0.0, + "placementX" : 0.0, + "placementY" : 0.0, + "placementWidth" : 132.032, + "placementHeight" : 634.667, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.032, + "contentHeight" : 634.667, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]/OrnamentDisc[0]", + "entityName" : "OrnamentDisc", + "entityKind" : "EllipseNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 17.489, + "computedY" : 527.868, + "placementX" : 17.489, + "placementY" : 527.868, + "placementWidth" : 205.382, + "placementHeight" : 205.382, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 205.382, + "contentHeight" : 205.382, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]/OrnamentArch[1]", + "entityName" : "OrnamentArch", + "entityKind" : "ShapeNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 15.799, + "computedY" : 0.0, + "placementX" : 15.799, + "placementY" : 0.0, + "placementWidth" : 116.234, + "placementHeight" : 236.588, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 116.234, + "contentHeight" : 236.588, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]/SvgIcon[2]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 12.977, + "computedY" : 282.647, + "placementX" : 12.977, + "placementY" : 282.647, + "placementWidth" : 95.244, + "placementHeight" : 95.244, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.244, + "contentHeight" : 95.244, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]/SvgIcon[2]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/SidebarOrnament[0]/SvgIcon[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 12.977, + "computedY" : 282.647, + "placementX" : 12.977, + "placementY" : 282.647, + "placementWidth" : 95.244, + "placementHeight" : 95.244, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.244, + "contentHeight" : 95.244, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandBlock[1]", + "entityName" : "BrandBlock", + "entityKind" : "ShapeNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 634.667, + "placementX" : 0.0, + "placementY" : 634.667, + "placementWidth" : 132.032, + "placementHeight" : 207.223, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.032, + "contentHeight" : 207.223, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "entityName" : "BrandLockup", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 634.667, + "placementX" : 0.0, + "placementY" : 634.667, + "placementWidth" : 132.032, + "placementHeight" : 207.223, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 132.032, + "contentHeight" : 207.223, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 33.288, + "computedY" : 715.218, + "placementX" : 33.288, + "placementY" : 715.218, + "placementWidth" : 36.655, + "placementHeight" : 88.273, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 36.655, + "contentHeight" : 88.273, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 33.288, + "computedY" : 705.462, + "placementX" : 33.288, + "placementY" : 705.462, + "placementWidth" : 68.585, + "placementHeight" : 47.212, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 68.585, + "contentHeight" : 47.212, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]/LockupRule[2]", + "entityName" : "LockupRule", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 33.288, + "computedY" : 704.671, + "placementX" : 33.288, + "placementY" : 704.671, + "placementWidth" : 20.311, + "placementHeight" : 1.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.311, + "contentHeight" : 1.7, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]/Wordmark[3]", + "entityName" : "Wordmark", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 33.288, + "computedY" : 675.395, + "placementX" : 33.288, + "placementY" : 675.395, + "placementWidth" : 82.984, + "placementHeight" : 9.524, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 82.984, + "contentHeight" : 9.524, + "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" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]/ParagraphNode[4]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Sidebar[0]/BrandLockup[2]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 33.288, + "computedY" : 661.626, + "placementX" : 33.288, + "placementY" : 661.626, + "placementWidth" : 77.712, + "placementHeight" : 8.047, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.712, + "contentHeight" : 8.047, + "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" : "LumaStudioInvoice[0]/Masthead[1]", + "entityName" : "Masthead", + "entityKind" : "RowNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 647.091, + "placementX" : 153.474, + "placementY" : 647.091, + "placementWidth" : 402.871, + "placementHeight" : 148.499, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 402.871, + "contentHeight" : 148.499, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]", + "entityName" : "SupplierHeader", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 153.474, + "computedY" : 655.01, + "placementX" : 153.474, + "placementY" : 655.01, + "placementWidth" : 236.404, + "placementHeight" : 140.58, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 236.404, + "contentHeight" : 140.58, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 7.334 + } + }, { + "path" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/SupplierName[0]", + "entityName" : "SupplierName", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 782.164, + "placementX" : 160.808, + "placementY" : 782.164, + "placementWidth" : 94.638, + "placementHeight" : 13.425, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 94.638, + "contentHeight" : 13.425, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/SupplierAddress[1]", + "entityName" : "SupplierAddress", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 727.228, + "placementX" : 160.808, + "placementY" : 727.228, + "placementWidth" : 85.39, + "placementHeight" : 48.726, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.39, + "contentHeight" : 48.726, + "margin" : { + "top" : 6.21, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]", + "entityName" : "ContactRows", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 674.232, + "placementX" : 160.808, + "placementY" : 674.232, + "placementWidth" : 229.071, + "placementHeight" : 43.184, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.071, + "contentHeight" : 43.184, + "margin" : { + "top" : 9.812, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]", + "entityName" : "ContactRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 160.808, + "computedY" : 703.022, + "placementX" : 160.808, + "placementY" : 703.022, + "placementWidth" : 229.071, + "placementHeight" : 14.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.071, + "contentHeight" : 14.395, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 160.808, + "computedY" : 705.919, + "placementX" : 160.808, + "placementY" : 705.919, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 160.808, + "computedY" : 705.919, + "placementX" : 160.808, + "placementY" : 705.919, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 181.808, + "computedY" : 704.482, + "placementX" : 181.808, + "placementY" : 704.482, + "placementWidth" : 78.706, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.706, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]", + "entityName" : "ContactRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 160.808, + "computedY" : 688.627, + "placementX" : 160.808, + "placementY" : 688.627, + "placementWidth" : 229.071, + "placementHeight" : 14.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.071, + "contentHeight" : 14.395, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 160.808, + "computedY" : 691.524, + "placementX" : 160.808, + "placementY" : 691.524, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 160.808, + "computedY" : 691.524, + "placementX" : 160.808, + "placementY" : 691.524, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 181.808, + "computedY" : 690.087, + "placementX" : 181.808, + "placementY" : 690.087, + "placementWidth" : 95.852, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.852, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]", + "entityName" : "ContactRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 160.808, + "computedY" : 674.232, + "placementX" : 160.808, + "placementY" : 674.232, + "placementWidth" : 229.071, + "placementHeight" : 14.395, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 229.071, + "contentHeight" : 14.395, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 160.808, + "computedY" : 677.129, + "placementX" : 160.808, + "placementY" : 677.129, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 160.808, + "computedY" : 677.129, + "placementX" : 160.808, + "placementY" : 677.129, + "placementWidth" : 8.6, + "placementHeight" : 8.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 8.6, + "contentHeight" : 8.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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/ContactRows[2]/ContactRow[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 181.808, + "computedY" : 675.692, + "placementX" : 181.808, + "placementY" : 675.692, + "placementWidth" : 91.105, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.105, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]/Registration[3]", + "entityName" : "Registration", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/SupplierHeader[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 655.01, + "placementX" : 160.808, + "placementY" : 655.01, + "placementWidth" : 148.091, + "placementHeight" : 8.79, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 148.091, + "contentHeight" : 8.79, + "margin" : { + "top" : 10.433, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "entityName" : "InvoiceHeader", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 389.878, + "computedY" : 647.091, + "placementX" : 389.878, + "placementY" : 647.091, + "placementWidth" : 166.466, + "placementHeight" : 148.499, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 148.499, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/InvoiceTitleBlock[0]", + "entityName" : "InvoiceTitleBlock", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 749.89, + "placementX" : 389.878, + "placementY" : 749.89, + "placementWidth" : 166.466, + "placementHeight" : 45.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 45.7, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 15.3, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/InvoiceTitleBlock[0]/InvoiceTitle[0]", + "entityName" : "InvoiceTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/InvoiceTitleBlock[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 736.636, + "placementX" : 389.878, + "placementY" : 736.636, + "placementWidth" : 164.751, + "placementHeight" : 55.553, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 164.751, + "contentHeight" : 55.553, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/InvoiceTitleBlock[0]/TitleRule[1]", + "entityName" : "TitleRule", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/InvoiceTitleBlock[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 749.89, + "placementX" : 389.878, + "placementY" : 749.89, + "placementWidth" : 58.7, + "placementHeight" : 1.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 58.7, + "contentHeight" : 1.7, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[1]", + "entityName" : "MetadataRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 717.09, + "placementX" : 389.878, + "placementY" : 717.09, + "placementWidth" : 166.466, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 17.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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[1]/MetaLabel[0]", + "entityName" : "MetaLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 720.957, + "placementX" : 389.878, + "placementY" : 720.957, + "placementWidth" : 57.062, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.062, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 491.989, + "computedY" : 720.103, + "placementX" : 491.989, + "placementY" : 720.103, + "placementWidth" : 57.65, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 57.65, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[2]", + "entityName" : "MetadataRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 699.59, + "placementX" : 389.878, + "placementY" : 699.59, + "placementWidth" : 166.466, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 17.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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[2]/MetaLabel[0]", + "entityName" : "MetaLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 703.458, + "placementX" : 389.878, + "placementY" : 703.458, + "placementWidth" : 51.552, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.552, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 491.989, + "computedY" : 702.603, + "placementX" : 491.989, + "placementY" : 702.603, + "placementWidth" : 49.641, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 49.641, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[3]", + "entityName" : "MetadataRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 682.09, + "placementX" : 389.878, + "placementY" : 682.09, + "placementWidth" : 166.466, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 17.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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[3]/MetaLabel[0]", + "entityName" : "MetaLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 685.958, + "placementX" : 389.878, + "placementY" : 685.958, + "placementWidth" : 43.963, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 43.963, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[3]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 491.989, + "computedY" : 685.103, + "placementX" : 491.989, + "placementY" : 685.103, + "placementWidth" : 50.393, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.393, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[4]", + "entityName" : "MetadataRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 664.591, + "placementX" : 389.878, + "placementY" : 664.591, + "placementWidth" : 166.466, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 17.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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[4]/MetaLabel[0]", + "entityName" : "MetaLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 668.458, + "placementX" : 389.878, + "placementY" : 668.458, + "placementWidth" : 75.89, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.89, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 491.989, + "computedY" : 667.603, + "placementX" : 491.989, + "placementY" : 667.603, + "placementWidth" : 29.873, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.873, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[5]", + "entityName" : "MetadataRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 389.878, + "computedY" : 647.091, + "placementX" : 389.878, + "placementY" : 647.091, + "placementWidth" : 166.466, + "placementHeight" : 17.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.466, + "contentHeight" : 17.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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[5]/MetaLabel[0]", + "entityName" : "MetaLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[5]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 389.878, + "computedY" : 650.958, + "placementX" : 389.878, + "placementY" : 650.958, + "placementWidth" : 46.267, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 46.267, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[5]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Masthead[1]/InvoiceHeader[1]/MetadataRow[5]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 491.989, + "computedY" : 650.103, + "placementX" : 491.989, + "placementY" : 650.103, + "placementWidth" : 15.905, + "placementHeight" : 11.475, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 15.905, + "contentHeight" : 11.475, + "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" : "LumaStudioInvoice[0]/HeaderRule[2]", + "entityName" : "HeaderRule", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 160.808, + "computedY" : 633.091, + "placementX" : 160.808, + "placementY" : 633.091, + "placementWidth" : 395.537, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 395.537, + "contentHeight" : 1.0, + "margin" : { + "top" : 13.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 7.334 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Parties[3]", + "entityName" : "Parties", + "entityKind" : "RowNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 532.149, + "placementX" : 153.474, + "placementY" : 532.149, + "placementWidth" : 402.871, + "placementHeight" : 88.942, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 402.871, + "contentHeight" : 88.942, + "margin" : { + "top" : 12.0, + "right" : 0.0, + "bottom" : 12.9, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Parties[3]/BILLTO[0]", + "entityName" : "BILLTO", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 153.474, + "computedY" : 532.149, + "placementX" : 153.474, + "placementY" : 532.149, + "placementWidth" : 103.12, + "placementHeight" : 88.942, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 103.12, + "contentHeight" : 88.942, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 7.334 + } + }, { + "path" : "LumaStudioInvoice[0]/Parties[3]/BILLTO[0]/PartyHeading[0]", + "entityName" : "PartyHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]/BILLTO[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 611.326, + "placementX" : 160.808, + "placementY" : 611.326, + "placementWidth" : 33.342, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 33.342, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Parties[3]/BILLTO[0]/PartyAddress[1]", + "entityName" : "PartyAddress", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]/BILLTO[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 160.808, + "computedY" : 532.149, + "placementX" : 160.808, + "placementY" : 532.149, + "placementWidth" : 95.786, + "placementHeight" : 70.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.786, + "contentHeight" : 70.235, + "margin" : { + "top" : 8.942, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Parties[3]/SHIPTO[1]", + "entityName" : "SHIPTO", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 344.757, + "computedY" : 532.149, + "placementX" : 344.757, + "placementY" : 532.149, + "placementWidth" : 133.88, + "placementHeight" : 88.942, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 133.88, + "contentHeight" : 88.942, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 34.4 + } + }, { + "path" : "LumaStudioInvoice[0]/Parties[3]/SHIPTO[1]/PartyHeading[0]", + "entityName" : "PartyHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]/SHIPTO[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 379.157, + "computedY" : 611.326, + "placementX" : 379.157, + "placementY" : 611.326, + "placementWidth" : 35.173, + "placementHeight" : 9.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 35.173, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Parties[3]/SHIPTO[1]/PartyAddress[1]", + "entityName" : "PartyAddress", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Parties[3]/SHIPTO[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 379.157, + "computedY" : 532.149, + "placementX" : 379.157, + "placementY" : 532.149, + "placementWidth" : 99.48, + "placementHeight" : 70.235, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.48, + "contentHeight" : 70.235, + "margin" : { + "top" : 8.942, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/LineItems[4]", + "entityName" : "LineItems", + "entityKind" : "TableNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 99.964, + "placementX" : 153.474, + "placementY" : 99.964, + "placementWidth" : 402.871, + "placementHeight" : 1011.964, + "startPage" : 0, + "endPage" : 1, + "contentWidth" : 402.871, + "contentHeight" : 1011.964, + "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" : "LumaStudioInvoice[0]/Totals[5]", + "entityName" : "Totals", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 306.404, + "computedY" : 108.172, + "placementX" : 306.404, + "placementY" : 108.172, + "placementWidth" : 249.941, + "placementHeight" : 66.174, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 249.941, + "contentHeight" : 66.174, + "margin" : { + "top" : 4.4, + "right" : 0.0, + "bottom" : 0.0, + "left" : 152.93 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[0]", + "entityName" : "TotalsRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 306.404, + "computedY" : 156.237, + "placementX" : 306.404, + "placementY" : 156.237, + "placementWidth" : 249.941, + "placementHeight" : 18.108, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 249.941, + "contentHeight" : 18.108, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[0]/TotalsLabel[0]", + "entityName" : "TotalsLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 348.204, + "computedY" : 159.439, + "placementX" : 348.204, + "placementY" : 159.439, + "placementWidth" : 46.299, + "placementHeight" : 11.704, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 46.299, + "contentHeight" : 11.704, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 293.404, + "computedY" : 159.439, + "placementX" : 293.404, + "placementY" : 159.439, + "placementWidth" : 249.941, + "placementHeight" : 11.704, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 249.941, + "contentHeight" : 11.704, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[1]", + "entityName" : "TotalsRow", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 306.404, + "computedY" : 138.129, + "placementX" : 306.404, + "placementY" : 138.129, + "placementWidth" : 249.941, + "placementHeight" : 18.108, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 249.941, + "contentHeight" : 18.108, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[1]/TotalsLabel[0]", + "entityName" : "TotalsLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 348.204, + "computedY" : 141.331, + "placementX" : 348.204, + "placementY" : 141.331, + "placementWidth" : 45.982, + "placementHeight" : 11.704, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 45.982, + "contentHeight" : 11.704, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalsRow[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 293.404, + "computedY" : 141.331, + "placementX" : 293.404, + "placementY" : 141.331, + "placementWidth" : 249.941, + "placementHeight" : 11.704, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 249.941, + "contentHeight" : 11.704, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalDueBand[2]", + "entityName" : "TotalDueBand", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 306.404, + "computedY" : 108.172, + "placementX" : 306.404, + "placementY" : 108.172, + "placementWidth" : 249.941, + "placementHeight" : 27.1, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 249.941, + "contentHeight" : 27.1, + "margin" : { + "top" : 2.857, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Totals[5]/TotalDueBand[2]/TotalsLabel[0]", + "entityName" : "TotalsLabel", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalDueBand[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 348.204, + "computedY" : 115.468, + "placementX" : 348.204, + "placementY" : 115.468, + "placementWidth" : 52.971, + "placementHeight" : 12.507, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 52.971, + "contentHeight" : 12.507, + "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" : "LumaStudioInvoice[0]/Totals[5]/TotalDueBand[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Totals[5]/TotalDueBand[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 293.404, + "computedY" : 110.431, + "placementX" : 293.404, + "placementY" : 110.431, + "placementWidth" : 249.941, + "placementHeight" : 22.582, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 249.941, + "contentHeight" : 22.582, + "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" : "LumaStudioInvoice[0]/FooterRule[6]", + "entityName" : "FooterRule", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 105.172, + "placementX" : 153.474, + "placementY" : 105.172, + "placementWidth" : 402.871, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 402.871, + "contentHeight" : 1.0, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]", + "entityName" : "Closing", + "entityKind" : "RowNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 675.411, + "placementX" : 153.474, + "placementY" : 675.411, + "placementWidth" : 402.871, + "placementHeight" : 108.178, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 402.871, + "contentHeight" : 108.178, + "margin" : { + "top" : 12.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]", + "entityName" : "Notes", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 153.474, + "computedY" : 687.309, + "placementX" : 153.474, + "placementY" : 687.309, + "placementWidth" : 167.03, + "placementHeight" : 96.281, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 167.03, + "contentHeight" : 96.281, + "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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]", + "entityName" : "SectionHead", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 153.474, + "computedY" : 758.79, + "placementX" : 153.474, + "placementY" : 758.79, + "placementWidth" : 167.03, + "placementHeight" : 24.8, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 167.03, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]", + "entityName" : "Disc-notes", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 153.474, + "computedY" : 758.79, + "placementX" : 153.474, + "placementY" : 758.79, + "placementWidth" : 24.8, + "placementHeight" : 24.8, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 24.8, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]/DiscFill[0]", + "entityName" : "DiscFill", + "entityKind" : "EllipseNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 153.474, + "computedY" : 758.79, + "placementX" : 153.474, + "placementY" : 758.79, + "placementWidth" : 24.8, + "placementHeight" : 24.8, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 24.8, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]/SvgIcon[1]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 159.874, + "computedY" : 765.19, + "placementX" : 159.874, + "placementY" : 765.19, + "placementWidth" : 12.0, + "placementHeight" : 12.0, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 12.0, + "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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]/SvgIcon[1]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/Disc-notes[0]/SvgIcon[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 159.874, + "computedY" : 765.19, + "placementX" : 159.874, + "placementY" : 765.19, + "placementWidth" : 12.0, + "placementHeight" : 12.0, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 12.0, + "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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]/SectionHeading[1]", + "entityName" : "SectionHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/SectionHead[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 188.974, + "computedY" : 766.307, + "placementX" : 188.974, + "placementY" : 766.307, + "placementWidth" : 28.177, + "placementHeight" : 9.765, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 28.177, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/NotesBody[1]", + "entityName" : "NotesBody", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 153.474, + "computedY" : 687.309, + "placementX" : 153.474, + "placementY" : 687.309, + "placementWidth" : 156.503, + "placementHeight" : 69.245, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 156.503, + "contentHeight" : 69.245, + "margin" : { + "top" : 2.236, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 35.5 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/NotesBody[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/NotesBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 188.974, + "computedY" : 726.589, + "placementX" : 188.974, + "placementY" : 726.589, + "placementWidth" : 103.794, + "placementHeight" : 29.965, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 103.794, + "contentHeight" : 29.965, + "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" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/NotesBody[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/Notes[0]/NotesBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 188.974, + "computedY" : 687.309, + "placementX" : 188.974, + "placementY" : 687.309, + "placementWidth" : 121.003, + "placementHeight" : 29.965, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 121.003, + "contentHeight" : 29.965, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]", + "entityName" : "PaymentDetails", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 320.504, + "computedY" : 675.411, + "placementX" : 320.504, + "placementY" : 675.411, + "placementWidth" : 235.84, + "placementHeight" : 108.178, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 235.84, + "contentHeight" : 108.178, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 24.3 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]", + "entityName" : "SectionHead", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 344.804, + "computedY" : 758.79, + "placementX" : 344.804, + "placementY" : 758.79, + "placementWidth" : 211.54, + "placementHeight" : 24.8, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 211.54, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]", + "entityName" : "Disc-bank", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 344.804, + "computedY" : 758.79, + "placementX" : 344.804, + "placementY" : 758.79, + "placementWidth" : 24.8, + "placementHeight" : 24.8, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 24.8, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]/DiscFill[0]", + "entityName" : "DiscFill", + "entityKind" : "EllipseNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 344.804, + "computedY" : 758.79, + "placementX" : 344.804, + "placementY" : 758.79, + "placementWidth" : 24.8, + "placementHeight" : 24.8, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 24.8, + "contentHeight" : 24.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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]/SvgIcon[1]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 351.204, + "computedY" : 765.19, + "placementX" : 351.204, + "placementY" : 765.19, + "placementWidth" : 12.0, + "placementHeight" : 12.0, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 12.0, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]/SvgIcon[1]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/Disc-bank[0]/SvgIcon[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 351.204, + "computedY" : 765.19, + "placementX" : 351.204, + "placementY" : 765.19, + "placementWidth" : 12.0, + "placementHeight" : 12.0, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 12.0, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]/SectionHeading[1]", + "entityName" : "SectionHeading", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/SectionHead[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 766.307, + "placementX" : 380.304, + "placementY" : 766.307, + "placementWidth" : 82.727, + "placementHeight" : 9.765, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 82.727, + "contentHeight" : 9.765, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "entityName" : "PaymentBody", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 344.804, + "computedY" : 675.411, + "placementX" : 344.804, + "placementY" : 675.411, + "placementWidth" : 211.54, + "placementHeight" : 81.143, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 211.54, + "contentHeight" : 81.143, + "margin" : { + "top" : 2.236, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 35.5 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentInstruction[0]", + "entityName" : "PaymentInstruction", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 748.58, + "placementX" : 380.304, + "placementY" : 748.58, + "placementWidth" : 121.183, + "placementHeight" : 7.974, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 121.183, + "contentHeight" : 7.974, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/AccountHolder[1]", + "entityName" : "AccountHolder", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 733.226, + "placementX" : 380.304, + "placementY" : 733.226, + "placementWidth" : 83.026, + "placementHeight" : 9.765, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 83.026, + "contentHeight" : 9.765, + "margin" : { + "top" : 5.589, + "right" : 0.0, + "bottom" : 6.831, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]", + "entityName" : "PaymentField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 716.199, + "placementX" : 380.304, + "placementY" : 716.199, + "placementWidth" : 176.04, + "placementHeight" : 10.197, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 176.04, + "contentHeight" : 10.197, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 380.304, + "computedY" : 716.902, + "placementX" : 380.304, + "placementY" : 716.902, + "placementWidth" : 17.087, + "placementHeight" : 8.79, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 17.087, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]/BankPipe[1]", + "entityName" : "BankPipe", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 433.904, + "computedY" : 717.932, + "placementX" : 433.904, + "placementY" : 717.932, + "placementWidth" : 1.0, + "placementHeight" : 6.73, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 1.0, + "contentHeight" : 6.73, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[2]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 444.104, + "computedY" : 716.902, + "placementX" : 444.104, + "placementY" : 716.902, + "placementWidth" : 38.198, + "placementHeight" : 8.79, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 38.198, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]", + "entityName" : "PaymentField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 706.002, + "placementX" : 380.304, + "placementY" : 706.002, + "placementWidth" : 176.04, + "placementHeight" : 10.197, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 176.04, + "contentHeight" : 10.197, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 380.304, + "computedY" : 706.705, + "placementX" : 380.304, + "placementY" : 706.705, + "placementWidth" : 34.245, + "placementHeight" : 8.79, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 34.245, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]/BankPipe[1]", + "entityName" : "BankPipe", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 433.904, + "computedY" : 707.735, + "placementX" : 433.904, + "placementY" : 707.735, + "placementWidth" : 1.0, + "placementHeight" : 6.73, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 1.0, + "contentHeight" : 6.73, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[3]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 444.104, + "computedY" : 706.705, + "placementX" : 444.104, + "placementY" : 706.705, + "placementWidth" : 26.31, + "placementHeight" : 8.79, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 26.31, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]", + "entityName" : "PaymentField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 695.805, + "placementX" : 380.304, + "placementY" : 695.805, + "placementWidth" : 176.04, + "placementHeight" : 10.197, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 176.04, + "contentHeight" : 10.197, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 380.304, + "computedY" : 696.509, + "placementX" : 380.304, + "placementY" : 696.509, + "placementWidth" : 43.022, + "placementHeight" : 8.79, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 43.022, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]/BankPipe[1]", + "entityName" : "BankPipe", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 433.904, + "computedY" : 697.538, + "placementX" : 433.904, + "placementY" : 697.538, + "placementWidth" : 1.0, + "placementHeight" : 6.73, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 1.0, + "contentHeight" : 6.73, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[4]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 444.104, + "computedY" : 696.509, + "placementX" : 444.104, + "placementY" : 696.509, + "placementWidth" : 29.205, + "placementHeight" : 8.79, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 29.205, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]", + "entityName" : "PaymentField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 685.608, + "placementX" : 380.304, + "placementY" : 685.608, + "placementWidth" : 176.04, + "placementHeight" : 10.197, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 176.04, + "contentHeight" : 10.197, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 380.304, + "computedY" : 686.312, + "placementX" : 380.304, + "placementY" : 686.312, + "placementWidth" : 15.07, + "placementHeight" : 8.79, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 15.07, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]/BankPipe[1]", + "entityName" : "BankPipe", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 433.904, + "computedY" : 687.342, + "placementX" : 433.904, + "placementY" : 687.342, + "placementWidth" : 1.0, + "placementHeight" : 6.73, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 1.0, + "contentHeight" : 6.73, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[5]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 444.104, + "computedY" : 686.312, + "placementX" : 444.104, + "placementY" : 686.312, + "placementWidth" : 89.789, + "placementHeight" : 8.79, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 89.789, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]", + "entityName" : "PaymentField", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 380.304, + "computedY" : 675.411, + "placementX" : 380.304, + "placementY" : 675.411, + "placementWidth" : 176.04, + "placementHeight" : 10.197, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 176.04, + "contentHeight" : 10.197, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 380.304, + "computedY" : 676.115, + "placementX" : 380.304, + "placementY" : 676.115, + "placementWidth" : 9.771, + "placementHeight" : 8.79, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 9.771, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]/BankPipe[1]", + "entityName" : "BankPipe", + "entityKind" : "LineNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 433.904, + "computedY" : 677.145, + "placementX" : 433.904, + "placementY" : 677.145, + "placementWidth" : 1.0, + "placementHeight" : 6.73, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 1.0, + "contentHeight" : 6.73, + "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" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/Closing[7]/PaymentDetails[1]/PaymentBody[1]/PaymentField[6]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 444.104, + "computedY" : 676.115, + "placementX" : 444.104, + "placementY" : 676.115, + "placementWidth" : 29.918, + "placementHeight" : 8.79, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 29.918, + "contentHeight" : 8.79, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]", + "entityName" : "ClosingBanner", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]", + "childIndex" : 8, + "depth" : 2, + "layer" : 2, + "computedX" : 153.474, + "computedY" : 666.511, + "placementX" : 153.474, + "placementY" : 666.511, + "placementWidth" : 402.871, + "placementHeight" : 0.3, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 402.871, + "contentHeight" : 0.3, + "margin" : { + "top" : 8.6, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]", + "entityName" : "BannerContent", + "entityKind" : "ShapeContainerNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 604.133, + "placementX" : 0.0, + "placementY" : 604.133, + "placementWidth" : 595.276, + "placementHeight" : 62.679, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 595.276, + "contentHeight" : 62.679, + "margin" : { + "top" : 0.0, + "right" : -38.931, + "bottom" : -62.379, + "left" : -153.474 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerBand[0]", + "entityName" : "BannerBand", + "entityKind" : "ShapeNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 0.0, + "computedY" : 604.133, + "placementX" : 0.0, + "placementY" : 604.133, + "placementWidth" : 595.276, + "placementHeight" : 62.679, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 595.276, + "contentHeight" : 62.679, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]", + "entityName" : "Disc-heart", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 32.728, + "computedY" : 618.522, + "placementX" : 32.728, + "placementY" : 618.522, + "placementWidth" : 33.9, + "placementHeight" : 33.9, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 33.9, + "contentHeight" : 33.9, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]/DiscFill[0]", + "entityName" : "DiscFill", + "entityKind" : "EllipseNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 32.728, + "computedY" : 618.522, + "placementX" : 32.728, + "placementY" : 618.522, + "placementWidth" : 33.9, + "placementHeight" : 33.9, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 33.9, + "contentHeight" : 33.9, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]/SvgIcon[1]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 41.678, + "computedY" : 627.472, + "placementX" : 41.678, + "placementY" : 627.472, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 2, + "endPage" : 2, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]/SvgIcon[1]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/Disc-heart[1]/SvgIcon[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 41.678, + "computedY" : 627.472, + "placementX" : 41.678, + "placementY" : 627.472, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 2, + "endPage" : 2, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerLines[2]", + "entityName" : "BannerLines", + "entityKind" : "SectionNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 80.628, + "computedY" : 622.394, + "placementX" : 80.628, + "placementY" : 622.394, + "placementWidth" : 179.909, + "placementHeight" : 26.156, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 179.909, + "contentHeight" : 26.156, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerLines[2]/SignOff[0]", + "entityName" : "SignOff", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerLines[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 80.628, + "computedY" : 636.846, + "placementX" : 80.628, + "placementY" : 636.846, + "placementWidth" : 179.909, + "placementHeight" : 11.704, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 179.909, + "contentHeight" : 11.704, + "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" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerLines[2]/DueNotice[1]", + "entityName" : "DueNotice", + "entityKind" : "ParagraphNode", + "parentPath" : "LumaStudioInvoice[0]/ClosingBanner[8]/BannerContent[0]/BannerLines[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 80.628, + "computedY" : 622.394, + "placementX" : 80.628, + "placementY" : 622.394, + "placementWidth" : 135.165, + "placementHeight" : 11.347, + "startPage" : 2, + "endPage" : 2, + "contentWidth" : 135.165, + "contentHeight" : 11.347, + "margin" : { + "top" : 3.105, + "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/invoice-v2-layered/luma_studio_invoice-page-0.png b/qa/src/test/resources/visual-baselines/invoice-v2-layered/luma_studio_invoice-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..05eeaea9b19a3daeb1f055e6e8957f8cb967a5da GIT binary patch literal 88556 zcmeFZWmJ`2_&11vgn)o_r=*n9-60JMNSAbX9J(76>25^2yHgq@C8bk1)B%LqKF{-i z-!rM}u`1AD>Id^(7#v;kmOf*U(Y@Tb^xZ!>Iy%aFV}30(k(4Ue0qrom2s)q7 zM(<@GMgI5+a{f`6+6jXL{IMuxte9+Bi=gPh%l6c z#YWhNY96bX9osg05WG4<49(RdY?(GFP8XOWS6$|9_8wq3qDCcYfvd3*tS^EmQ2;Jlz^Kc>do9 z+s;qLq+PVXTeGNqI}R=UfBTzT+~eYJiO9-f*E%}7e`R8}XsON>W@0*@NM?)QefZQ!v0p`Pc!h4iME9*LWv~%dzblukW&d|pf$}*vh%I=!Q zZHZmVvaIT=m@oNi8%8-StZY!wFdQBEY|9?_czJcN&wKPcAZNPcuV$vFU)d*PA@}HX z`xX@!Hn%oU39p}S$?fW_uDxdb)zpQ}eK!W*wqsn25Oce`Iq zGG95vNqcrVZxDx$Nrg$LMj?o`*wZVXu({**#mvVC!fx$;Q6jd%D+77_bFFpYe0O!R zKVu;1SETpMaXf{?TNGcm`Ri zNR&u<&l6HUXa1SbW;;GUR_$qVJ**O`H5W)U7|HWDkKY4?vtaABn4{{()$#JfS)5<^ z=;Q5tXDlgSV37RyD^X{hPOUNghuzab3co(g*2ZETebw*3&R>(Vg);kH;&tHLe!f=B z83qd;_Itcr3q5@N!vjq=FqAa?Jm3Gp`1T?jL(^k)mxHZ4V)y6nt zpNI%lEzMY5In8%;@RDyYIy|8wk1$NdI3wY6qPhMAbP6;m)k(00qj3N9?nIW|VvT2i zBp%Z8#|xx9n1T6N-pot7-$4mbxcdr2fqOxQU7j@vbZ!VUZ>iNBb6dn?9q!%rl3=a* zM3JE1{h5rkS4+kqoTRUXHkC+hX4(P06Ox#<_4iPWop(2L+#rY; z7Z|j8JUPR^5Z&ob@UKN3e~$9S*uuT7+7yjwG5&^DWuR$*a9SUh>O$L6smW9o@dF49s-Lc z=L;;_o)CG|)zA*aXSNAYM@_|~?h^|~m5~`F6KIIabNHPT5=HntfNX1iaf-v|)}=1d z(o#o<`B_|CC-Zr}LU~5l`Sy3mn}`ojlrS9d+z^Nu(0w$a8^1(ddmydur#*w%W$UIq z(j_B%Vb^ac9)3r0HC@^HbL{l;5qENqgnGz=C2RW*!Q%Yxf62WsY)dSuEGyhYX6@#n zHpik&!lR(@%bKqk_N;6B412!304db})GsHh&$OGt;nUJ4YZwjt?TN+f+rMK19savI z^igDGUOv953ogvKzgLO3ZwMkA&}%lDQtduLE+zD(3v$!`AnbirXE}qFEoK7>3Vyj| z&dwo2Q4KS? zk-=1Pm;qF^l>ZL*S9p21i(3sL^OW;_A z@Yw&%$#97=w{d_IkKf$$X8HSs%6iEETC&5Qxc0?Q6L0VIuvUSUuHH(DPBVT16sVZl zZ&D#)nH`!xD$imiZhCjGY?+7-Za2axVi%Uo%s*xdc_S_2v*{}&3!$c5f>S3oL`eJs z{f?W5i<&o`-<4@Pp~krXnFS$t4ZF>g(G%jM1ni9k9-G+v0xkmsd(4aIH`vdr z>wZ4*=uGMt)Z>FgKd>S|GbV%F zuW3TO1Q+bHfXt_7SOCMljCjILkv@Ud96Escyg@Pj6-qdU%=ocR zik{x}s;k<_$fz0uJIA3{n!H1@819kVR6=+j?Yyg7?adp4hrgvxJx(X!t{r*2x!2E! zUCdXu(rWa!K(O>HE(K12nYszWiw*5jHOhsbKTYlJJ6-nGGN{)sg30rFz&3QrVYQ2%#!7vsLiLK zUlwY+))7-fB=}MQ3FWQ>wnGATqYdT){~z)-cztRlEafx#2)=0{p7~e?Y>ECnh9}#D z^Vizr!*%+qny7UgxkNhz_Ngr~$J)oB)GaYNHXxktthjyZpUcT3QK?S}0Y4Oz^hn8I z@F;^#z9OX2&h+>XI>SDBia;3;#tgO3m@jLx?lqducD(stzsefIM8imU!{C>UBocEr z8QJu)#Ajhdc67{O@RM|9X#n+MpNQgMSi4k9`9C^8jbEOccHFjTPl-f9 zepS`ihg3+%>dnT9#CG&v|5!dD=tvT9H@4Kfe@Rb2OoU4_dVRD%1iGX02y|~lg0I(` zX4KrwjP6z>zjG{|XNsD8jd=m`8lcb7IRUzL)d-}6}Do5|<&&x(he6FEGn-8y6QKW7=9dCrhroQAQl5&GG5 zXjZ{Y0jEh}OLa_BRu!Pa8R702_*1#{>C=mZ^A-0sOV=B1 z-^V}h+CFES{pZuwjEt;#u4l=aUl`3*qS+0st)m$F>e#NL9kZ2TcTfGm4k;LS;125f zxE4Cy(nkUq4}EF!0?L@S%hY*$S3Tg)MbYH7{j5B1!|CJ0sovU- zbhz~4!!L?Qk7Ie_NbH>;Z%LU2(4Q0EwDFjvR~8l$u^{~W3yNgUY=lE$x*T6%4og2` zkzKCsetM@U-|6cqxh3Vf#feTt3$n6(hLSj}e3w7!B4jJ*#5bUz&~{vH^E_AEEZ;#e zKBE66;J^`DJyu+D%?R`9&;+}YkiOeaXkiZJ7~PF51>aY%B#QN2kwWU`_P*TAKsu(@ z@v5Trabv^4D{6X$$`7^DxaFUilYDP>{#^g`=iPJmSe>hp+9l_PECdHtNO8iUzoKdNL*uo!Hes^ zobHbzAmP&vFFX98{S-UB?H%aOT^;S-jLYt8K4HBo$QQIRq1nZzrTuw*e$jW9L#8coOU{L?(QmAs`=x0v!EI zTXdXe=H|P5dnnNQh6WYndS1qb<>g-sbJF&>&*y&3@qVQtWjyHeo=spS?gZeRf^<)2 zJ^aIc)O24YyhR-AWfw%o##T>P$pmNi0Rsco&Bb4aWPDSTKne>Rvyk5d>Baq0LQ$%6IHr;Cjmcuo$9G4Xr*^{kOZ{kpC05#( za9NTmFjCL89VDZ&mIs>b zObcLE)?fFvnbS{&#t2$XBD505c(^S~OQY~v0t0el8X7bJxe9i-AeY}6~oRbr|n2HMcv!caqb*qs%9D&|c1^HRhhcYEa9yOXs}_szbt z6J$U%`WFs)pQutOJ$ZOAM%O{8+sQA>4F6&0=`HZpZ-HSPZ4;b-h{ad+4FC_rV`F<> z6&f@<5qYCQRb5)GelSTLw@E|`Pe8PDl1^8mWTF%^+&b0Ru7}wWx~OknhI`xJq;uP* z)j}giA_twSwaLv)RqoHocO<-H8@L9_D;wc)EJW5jA1>MMvy5(8bhv3U+jw0M-jT-H z6K9CUCuCLlm?QZ8rFN2%HwzCzzF0nycd-kbpI*w3j?D*!pb$dIqc8YsIZm8q+5uewduu}Hs!~TnbYE?y1KfZEY;&|Bs4cS=XL0` zcwe(B6bO63K{tZMmF2@iLQ$aIq`d67^{|NbxVJ%)`vXYCxfb1w2WLSDaQ&O?hZgoS z=rY?LO|3IbyoTr%{2jv(o(hAwXcW!a3RfwDaIozTE%b5gnB$@S`{EdZoi)=hxYx`j zJhT`x13#i8MM@mL9hb=ApiTZ3qF?2W31zgRL3bl+%~vw%dJ@iEvZtH)(DC?iSFY0- zjEEfLNcAp0F_FQ~4IV?1uk(pw42FfZc*bP98^v!PliQ1xR<{i;-x)i~p3gj1==Mww zJvS&jK~N_lWsG{kDJy%yD%b!L-Ey^wK%LCWrMC8oKer)cYrYI7nV`qn=2M1eMT;gM zLvTltkPv6ziR2a!R}$@F>9uXU#uIFt@(uYJnm&IWuTG;p81nK{Kv>xrYgR^1cqn&lEVul0e|jP z1M>#b>Qr04dhSG{twd6mnp_Wfz#@!X`T?^Qg5DRgYSY2hIritzI|X0!aZK%eKXc&D zg`#k0kBd?A4t&l7`YFz+WI8zS(jUK7S~6m|eCD|Tcw*AL>!uO~2(&5j5!@7Sxc~2I zs_}ArM|&l;!@7)4p)G`<HwZHqo@8S_!%QB6Yig%BBfsoF3go>UcGu%RbK6#V@Me4De@0o&OJj&5Y^k+*)i>y zo5Nr34Kp#$3xT!p3uspAm+L*{D|b7+I=^snak*%7V-bE}bw&EiI%bhEu_(n0*>Q~f zN=jt6f+qm`CFS=}xzNC!W!Yhk=!~ zIG4dfP8F}os=aMH zxT)t1(NU6pX|ty+ZoQyBervLxSCaIF?u_+v=4_N}R_K`ty@NbLRF3Hl(HgNem(7XF$9^S++@p9#Z^gi@eU= zfg11@vhu+@S+Obj?RoKDZgsTGGEBdJz#!mzBt&G%)*yF;dipIx0~(St`ab!WJzcHn z_f1}UrWOJ(@V)jAzAtlSnfX7YCM@gV{2+Kp8Re+zo{{j+n_K{co4J_^rbqqz*CP6s z`W$G5PpvU@9?RNBtRsGMHnx6+v;Of?Mq2CMsOsV&7X#%^);B=Dc%!mzi7{ z3(B5&25SDHW&82w9}b5w2pR2TcifS$TagU?-m;masO;$RQP?zo{&kn%RATHVx@kqr zFM75gYA+n{7JKGW&#BT-MJsa8W)@T)D>8FQMSOLY68Dey@h3dz=6_6^q|P3v<_SOd zI@P}qO2nN){UGMMD(Xk^vB+Gp-X|<@BexqU3fV$rPZ9%KB&>!|HQS{r;Eg4z^iurw6p+A#0-eL(dnfVary58V?L?Kg5l)AuR89|0-bP z8IGPQ2~@>#0SRoM8tdyL?Izfi(6+AbkEEUR8DFN<19Jvb&;KcvZZ6K!_x93djSMKI92#nk4;8<#*0-`zU@ z_{=^t>L;hB68*`^8_-HvF`7edEQ`z6zD`GofsM@PqKJ0tn{!)RZNKPg+O4@k*1fNnH7Ih`iyMQR-R@k(vjt%F#=0*;hV^=a3`pTs9jTpl0e zjR<#yQh1>O#+~xGR~Vcck~a53^Uzu7Lqm;9rT@!EpY^8|OsGw-7jz?RSel2y(YhJS zR)`{RS(-eEPtt8V>$B03jq`WY-0A%W7;lQSfA}Blf8h($}ga4%vBn!t^9y(!fHVcq{LR87xi0%nk!ekSUAAdhHu3yF1K?D65!zY+|8AL z8&ybLoL{bW{59~;th%D(#YwWkW7M4R?K~jsFaWnct{PxV1yhi`-cI{F-NiO+CjdSr!SCMkAwXg5X zymE44V?CieR0(EOBnkkPcg#T|`CSs)+uQT5!mqxwb&C3?D9I~^z~?GU#%zxNB-{!5 z&26*b?_cw^2EIC<-N4!TGZuS#oDtz?_S_vbJ%KVVw!-`^ReRer!t?JfrXtht+15Pr z3Gk58%eFqn&|as#vE?!Tb&3>qPoPA__?%N%+J>o8faC8Q!XvwV zu+ho`q%eq0`{i~89qard+y>g(@LWJ^$!diKrXr-Gu7JBE;rr0l!e<{0#v z;p=n>g_6`UE{X3-qdS{WcEoFJVru-pBcOv?B=_yf!i50j5WHe-Z5`snh+rlqv%sK> z&d|+{4qXKon3`uINP8)28X;LJ#AEMd$$ESKL)LrZE!Jc>vJS#_g{32bM-tCc4#UHI zoo|du1Oey2N$TWL8}QHnUe|wZbcJ|WV3P7-DQoaM;|8{(M3g8IedbQdWySDg@%iyY zwEZ%c-22n{AN6a2!xv0G&Te^axTYCGlH0qUnMuh?=>Gx3kAb6_>&MUXMfH~Y=0^a_ zE*!ef(}gcljw&1l*9<6zZzo46EH8^jz0cJQ##*m7g(4$l{`WiV;cM$WAOyJ}z_#_B z$t_;V_%kHK)l{~5p%gNW8|X9P)NP7fKmSHh`y{Hf_y=f6Tceb|kNhJlTh3zo{NRK9 zlNv~hU^keoDK$;3800%wE5Fx|hFN?JU%W^-86Y?y!5(n2kC`0HiJN@5ef{m>TjO^9 zsT3_mZGq1aue0p`=_%QdJ&Y4~%hF$F=FgX6IWgG0?NV5FsUjh)Y7I+?vYw^*iLkn2 zzF(taw#HJkEZTqSeS+~<`LD%&3?>Q7eJQty)8MSWW?%eOagYj%3)?N@FTRdEJE((} z*EKXu5}p9uO%WBro?Yp69h<10Ov-ru8J?_xAXeBF_SUz)ADaYyjh_-8-)}zc`fJIQ z@aXD&Jbn9B*5+>!cSMs0Hfm%Zv!7hLA0K!)&sA-WQ@DlfP7lV>IA!lcO*Dp?h9JH&N$5RO~Tbp`>^DjVf0H)n^Z9yX#7hz?)JDf;HzB-i&Na3oX z*-uO~b>|^p2r){D8%9iJ+uy_Iu;HKmV%o{lXX7<_Zt3n;$#B)m`SU}Zq(anCWo3h; z?{+MT{^jT27826BqYWWQL;!o(3@a9)=LM;VZ5*T3G29(E+Im&&GSWWheorh}ctPD4 zH8tfjgC2Q{_4hq>^(Lrw^Y>{Q8n!Q~8IdwJ@x9+g*_~ic5kNkle3#(RrMNDTEfJ?1f^=BXgU_x#Osy^5 zdV+q2u6t|0_Sk;JH><687yBE#>FGKne* zCyEghx4Cw4MIP8WD(~i6stORMJ|EuIR~EbR7K1Hk4!6MI1S6qQ+KW+s&qJw1IB3nwk1q;#-) zrI}0p%)~qaV+yX#y$D;I zY6xdX0#QR-&Bjm|(Rs-T3WOs$pU`1V0V?(z<%Ci9^MW@?dGXNQ396$YUO@Zobvt9F z01IU|P%(tV`20>sy?t=xZOZAv59U%#azkT~aA3<4!MXeADE&ts-|$X$8ucQTd<5c{ zot-8gSKX(v`Pl{k-_KuL+uKX{T8xg5S2UMmS16tXZ|8+NoiZ7nTb=x@=k@APTliGfK(|5urDaQywSqXUmlW?VZAtM5{1Y9ybrI9r zUtf3F>_ZK9IadqyWC0lyi$b80zDGs9X5sNAfIiTQD|a?zm<%7U-8HEH=QoRkvK2{JM=CNm1} z7e9PJVx!6Jl0e4H!y@+Qe@zXUp^F02SpMzgfK=K1*zo~4H_edTsTYO$Jgz~CT3P`NHo=%*5Q)!q9@q{d?{xAn_nb{J>ckiH7gih|x5{S^{ z%1$-v2K{$hqBA0o_s-T)C%0OYX>qi);v8Oyw_ks};ugn0*wcR8E=c9Nv4VTMK0(DqU&P^sxO{w6*#eIWB+QQ@EzIkttA+Z_gEPYWx z`zk=2ud{El;`}eX2$eE26jm^FJKq|{g$67v5C;3WFlo*X)_~B1YJ7Is=TjidGHgzz z*#kxengno##NiU*p%KN6b@8zE;N#^+ACQ_#^Z?p7Ac#Pil8^{g72d}`qgJ|hLZx_G z4#Ra_Gt9SLZeTiaHbn^sVm2rDthHvhd0k^;@nJSf_&yVBhl3Ud4(Pn#_~ht>0;?iW z0J~zNHi`+05ATx023ygrpxB_@Yr7?xV8tLh8il@?+O2@O1*teB^}6BC4Q1ea8})h6vC|klQJD86cxN!`09p>>zIm-&(pL}Rx&ZN zV``2Qd5e#;Q%W|ux=M#XWl|UXbH>L=tOMwD0sffFc^?orQ*5oR-_JIwcNE@E{eK)u z9hitp$fXu(99a1fR`suy zWk0UyE?rEUnoARMIG$FQAJD&Fid{{}J4Rv`d^MZH!DErf<@b6B+HRx$nnrxKOqqmszTVT8 zW%H9Ev&4@tFnXp{ z49vZ698`_O0FMQMG?k|2W*DI0z0uL2B4mJ^49Rp-7yGC=`acN^(-(OStkH|rh%XWe zh5KLqrueQsp4#MRtom6^zzNG!>2ixTP z7!?sw#A-KRp{Jv-@wT^|$||@7y}=taKpTDzj*Y8wok)H)Z9`H2ycV1TYG{3Z{a@z@ z(IJvQIP$W?Cz8pAx3aW4poO%}@y{&~5V2NOG2_F;gLGyAc4-tKnD4qGz0WR_h!|JnG7mm@@+G3hGa$(%|v|Q|rtR(67MC>4hKgNiL zLjPtAQ-f)6@IEg}0AX*261@QQH#RGD$9x*PY>uxQF094qYO?cHr-<^tBC7bGvC zi=_N@&c%g=+p+QMl-k%~d3!_IBYlzKP>pX|R27pwfm*5=#0OT^==@tBh4C$BR0d~w z1%AzkXyZKbaZp(Y#cgsjcVJ}udvYE%4Q@Tb2x!r2S(k_NG-+#f!+8ZwvO2GnE`U_t zHw~`-dksPS{hP&g8ERkDtE(%}Q?wgwh%RrUFTl0W`4bG^e~Hu{U}6NKognH2P%z2f zX>Vhg{ZUdQkM9OGCUJuCD|#uiQ{$acgRMMM(0=w#PC_e}eq6pHuH-FI6^+$V7ZeYh_=tG8Np%U|fcy;JL1|w#%gTgN@}hH9~bCQt!0vf#!w68V_lsOzFgrKS`zr-Hzt zG3o1!eh2-W&nD(F$ZiTELF15(aMegGtx*6bxR_gDk3Ls68AkozK7an)nVp>%`@`RW z^5w(X-DzbE-*4u^CnHnrfuq3(AoLsK_QkEu3B&=KNftXEZml_%nuNt#W4~D6}aVTBik8yxm z5Bf4k=T!`3YI!3ialB1EEIRAC=s@g8vKR67%;I_%iFjBG@eM*A{9i2%uE`MVMMX#5aK`OA7Z`X zB()+$huiP|v&g{NEM8st3VjE#x-^&BMAoxop-z$K7x|8X&<8ShUr{p4UgcF`*KkbAN16;%2 z_PmhlO@}lDcC&frS+DsP?-KPjCn+`sO-%uAHC~;8Dz34j01$2Cf%k=F7 zNJ@YGivJY$4e1;eJLxEULp8Jh`d$R&~R84 z2{0r>7##z<`f`Ji$w)~Z@Vgk}SYvbX&?~KZx*@p1FqDkSV#RbiGu0rF7RWQhkD&^S z0IBubR%ActBBPy6^jto zp`e8`$ZPwQwNK4IUoNco1ra;;PE@t-rxU03KV2~|X%2b)f5p^pP{ZYwRWyozjERsI!uzb^Ri8rK{~q;(kvB0^vQg`?6CNAsgW z{|I|?2R?urqz>ctGjSzueQsL`Vq}b98HjQWDtE!*75=qTLpTWM8@20Y64V_+jwb1& zVR0sw%|UgNI}%yNG`*h9e7G;y&aVdM%WQ-4h>YAX7()EV#uT;4X2L&V`iT7)|~c*b>#LYrkYlW!Lg$zv19rfa^BAh{+c5t>je4@pTbyXhJ}BUo97Rlr6Fo*AsTt5@}RYCmjzN#V| z1#`K1=96^l1kgGjmKPVP;>Tcj0SfDfzf2tD9*-8^M0!O%SHu`v1;J9O_K!_~$);mG zp~h2cWCy}~jwwj#NTyoYh9CEYBvOpyxSw2(N~Xk_2>(j>JCb8&?2n>OAs9a+B0|># zi9Y*Be0#$IpaYLb!?yGP#etqlnc~vw?sX16mRaN-ffaJXz0)@yn?LI&SySQ|wc@^;Mv910M61#!6)n5yHZ?UGMqM@KEoYTxu_?7rLxR+{5K#rN7 znYL)D**q(hC-~Ai#>2@gn)yJLBdG-gI12>aJVACxIyB75xu*Yn70|Q787+zL;y-69 zF83U0q4D)M`3yyn<>=i41+HHzq@JtNivc8p`qk3#aq;j$V+KPVKc}WRXoSeN4JA_E za|X}|Gmg+gg;?40m1B(2(9T^~GiiF+?f>OO#3Jn3Yxl#8cH=*;d*p-c6GMNZ>vA7w zj+(dI8^}6f#kgW&le+lx2u^a{zY~a;iUPF6dIf*mrXJz$D1XWa+XJ%v=8|SV3 ztPs~T73K|nD=HeHC~EROiKVv%lsi7(dk+T{O4lA-JR-;M%XfPTG{9o*QDC4Ke3f{+ zB~;}na)n4z7@Meq5-4w)#bZxyR!tAIs+`*VUJ&pCa!HD?u{ET$Ir)5h+t;$} z_54g;M|i8hcCy}5;Y0|0=_m}k%k1awvEh8jef1NlJEk0PItvnq{KbL)Va1k zs=(v?qx3gl1LP4Px4zPA!G(8rch;%1zJe84K}5tqOc zgx%hVhJg}~!THMvYWD73LEcq`i!ee$f z1Od7h`T=T=tE`Zarx@oIB^tfHYGGEBw66Q$H|0sI()B}3g)Kf&iwvnPDhMG9Sr#X%h>NTi7f6rDL`fo)D>`ycTsz{9xSyOsdJDmT=xT6zvj&Yv{du zi2q~?EbckYUdq^Hn21(C?x|D{7#a$T7#PShfJ_5MTMpM+%;7v$P)dqLikYbgN_SFF z5JKAvGO`dAHcr}<0_qcJH#0Z{V1OaUNO%Zog9cv4<^oJqDJd!aomQFZf&gq9Prca> z&~}$XQ!nu64M6Uz_+#Z?zDg(9A|fqYUmYHP5`z;d35%n$7_3Le{!7 z6?Z0dkRp=5XOYF;K2fflB6Xs7g$#C>oMJw&gcH(!;R2#x8 z+fwpR7yaEVgy2&Xe6Q^?y45uq)Ftn4+NTcuPk0FMw`RU|$2Vjn@}_}Vis=QF%905s z0e*gRK?l)j21x(|PX3T94LF+Dd-IH(?w^P|V8kwLli5K5sf>hgE6V> z9V_mz^{kUAi!vdrMhr(4+B1v&#%i3isOWcCf8f>|TL&P4SPK77_(U`(QLvTawotD47XtZ^2 z3Kplu?{qQdXEB(>sAylBET*Wn`N7=NS2R;_obIg0!bax>1zGjm*zH#Zb6Ym^dMNzv zRiitDmL}G&nM8heJWJe%Lb=P?=bv zHJK2_hJ&2kAYuoB9H(6JBL1#7#3Ky_sd$U8o2^p(#C{8JLGh4#9wW}rS5QEkPew}M zE|Zu8a-?9cGgq06l#d-FEyktCIHfuOX2GBh4xtzIzT%FAQbx`86UX>e()IOq%FtT@ z&uKmecK-@wEDMru$mX=rsQbaJ9PSOHaQ*Ds{Nd4&LiR0abF;*vIYneHfuoIfEBsy; zX%%x?T3VE$&}N@>q+8}Do z>p6u)6Em~W^|+eh9i3J;mS>6YZ{;XQ!7R>Sa3CD+Q56Lw-abNKKx4#zhw+jGkYQnl zV~;7u{AO?xx48&OPQuORbqq{uX>A2{U_D(jF`}HFj;;!p;x6$w7oSH71-UzFQdHFE zYO`gYAl(yI{S58gd^AODe%r9)jk)gD573e{HFe(DueRN{=@!t^({D(|;oJg>i|CiA z$ZY@yVsw{^1KBAYe|J4OmXeohCt6#cVR=WNURm5~{XJ>S2?$;}LSC5!Pd0m_(WS^r z;s!Q)JAtX6h_S}fu?5(gcz}sJ#@YYK9XnC*#Y!3Zj?b>3mxTgqkxRqR1MxD7`txzZ zQ7jeSc}>6l4%E|lJIm%@tL+|d1L!O#uRscj*yz3L=>v880^<1kJ3~O8#R6{W85yzH z7Pv4miH*q(GMn;COB$=sa=Gn(mXt`W(mcQF@KkThV*;UWdsa_Ruh5XZVQkq$@g$(4 z4``PVa8jxWYtsT2NWyI+dWgseAc2xm9${^kiSSP5zaYlut$d{Ax`&rnZAq1AUrppK zqM4Vrwx2;|o^%V*{ytWUhlTuI7aBfI)%f_x3m$=ftt)?xZo0{boM|kL$imHLZppAE zdg}|+|2?$)*M0;etrDYV;fvuIoimbqO9t>skYc6LbDf*=AuPLx^pxiu>EulpYfICT zRQs&Rb$s=dD}GbBwp3!weu=fH_dCkZ^#nc__0ElnZ@}TCVCesOb1b?(UD{pd+k+U{ zqh=eB@?86Yf`g>Ph});)TC{=+=X@7hJQ1c}{~dTa9a;d9$z3fUsO9$^MFqH}AmNNH zMgZfqS5js;AH*W+IDsXVP;sl7y6ZQiqxX(@(@2Gqa}ipwKIOT5J4+ZO6|W-WC~a-` zR^|g;^kJi+lPko~+|$kdeSq$G*?Zs=Gx*HjFm%waKQqhjdwMa4d;KHn-5OfaV%^MK ziigL^?_aX^3b=O$-TL)Ag@(+gE(Kd&Sr_kpqHXK9=&tAR>6h)38!t5g9YpQbBeN`i zj#Pf5{QGM*PMpnt>BDK}?}&h`)CbYOz|FVI-X<#+J{{N|?|g6HiH?A`pRcK!itP@D87>}` z4RT<&+foTX^%->s1?mhsAGIszww(T2eOl>+4XynH9zlj-t7lW0-Z*R{=Wdq*1<0^{ zDd^Il(mxAb1^pc;{8m{80-lW0C5D7MwHq|)Y^z=|l~x@t1cys~RXxiDH5KGCZBl$- zmii?{?YBs%a?SErmfzhGLcfU=@asM8)OUoA^G39?N6}>ZUXf}L?@7;0sx9sRSsF!j zE8^T*GIajfke;vgoe*kNNldZo^Cd5>vYkN)1bWJOr&mhqOB4QDtZB|OCa;pEZPG|u zt^3=9NF?U(Uv&EUBxI*&sPFVc&4KA0Hf%5|QUUFGYR5R-q?=cS(LnUN)sK5x1~Jtt-Jxh=XJ6ezDh$fSe^n7GQ5! zAdrMQTF7Y@TgAIX6ipS-Qu`A8E z5n{{_-pY0^5>cIDc_1-yz~C#(sQq^^p6R?fJYw1q6EQKL(J#G{voDA>{u%VWYgj9+AI`SJlBqH(RLSCu`Q+d{6 z?|j;YE`m8t4b9DY1UZ|Wi$8)~D{y>NVu3All#-P8^%yB|RHhP3Oq&xP`w0HWNAr(U z^^?G|oWik)Cq8z=%pm|!02De}{v`bd6!Ne#22{CpaWFI9k=g8)z75ayvV z@kUyn@Vb({OTc8jp+{m-J~a))j>ItSsd}+e&xr$hU+MkIV?UtCRq{8ZLjZ-8(%i&?l(gIHo2z4dL+Jsrt@e$dexuu5-P-NB;^jiUBJM3&i0IC zKsc<0`5fytHN(-XiD~^SbY1>>sz1-4*)z+&>=l#$bNLZYtw2!dN65v+Gsi(Isfo{l znV99ju08a%=F^?U~xecN(4$=oe+Kd9E207y$9>-IVEg*E3E{W-$A6b-Q%nW1gCJ{ zs}itg$P6!Fq{Q(LxVk&%pFG*eqi$JZl*WZmDKf9eu8Z*XMn=A^*2Krh&u_=;?1pH) z%}kvBq4atU*uG$-TDI?EvDUm#gD?~(nTi7C7@(PtN4%*>FWQ?5$H*w^9ZEaGxQ z9za}Yz|gU=v^+UE2zDtYz4yMGV=*15%dR{H-Z1u54`eWoB5V~f+p4l2$O4B~E78)- zBXbLSZyVmf8D&~Qilgr>UeqqfZ0i9tS=~uUd=rFSoSdekfGO|4|9}#mMpKKc`lofA7%|&j2Lkud!8@IOK0p z59UQ{Bt;|EF)5G}Nb6!OJqY%Pz{ppa6V^C2rkN^b&msWg6WK!TAgvC@pQ<(UzGH$& zy54_o>Hq2f9Wj~tv6z~a#x!sa>bsogofOj47~v)V!2k009DytF<}yy-nhMCm#~>BG z4`Otc2Ax1iKr)BMknl{yd_Y2z`Y}HYv%f?d+|zR1W+z}xgFY9@PsuV@NKS`&w5I&) z1x0neUcJ>1Ft6QcyUf&3Qc~G%*e?}@U#{0Ww_LQU;AEs18=OEy`DCU&4*Uif;pJmudO?Bl3>^bi*zJf=xDv1$>Nud`gGmn< z>~@nR-_g3$;eYwV3--1?yGl0wzs`ZmuJTOs>7Op5Jk2M5BAuYpWP&!`W_k{ica!q3 ze^VpAv0dVPE8=~H-i|5(j+{d3>ySh^WX{=n)fQls7b|7rF4l?K82g9c+_YXWeOJ+S`Gmc$^}WP4SU#Ky(~>l8#BLe#Lv znwl~?oVIHSMNsqu-eKuQP(3vpOWWUZ!~2Bx3|$lq(Pc{Q$9IDf3i?5 zM9T~2KVCDWpY5b`m>|8yVPszer?{H_DaU?4^nKbT7!N=2VXEy*2e)d8GcYBxYu zACA_1z5fsD-a0JG_j?yrL0Y<%mhSFBx~02A8cE3kly0QEMM_$_q;Y5kDJfwn=^jAX zkKfqm^Sk!>`4GmcK1#&DF&O9aL zQ=FvgFrc|Sy}Smiqg{4DK9%%~HtRTKo!<4sAD2kff7RZ(4Gm7@Juzd;72S~}|bR8i~$)*o< z?gXe9KrK?Lk_nKH5CQcp(w5X}uZ3qK&-vIckTZ$K@<3mmv}~nb4RJ|kG+@XVh|hyV zIctI76denrv)9N@Y0v$}%D}ia-)6n8| z4Ew=9Q~amhcVuLi6Pkujr%iOYG-S!Ny+lVMARq%qFMg}To|ZZWhp8zfVheA zWzJ+^XFe5yb=RlLq3>#k6UVOciw#PqEXh8eyeEwFF8=#(u~4jYgfo1PneN8Cyibgd zvexi`wo|!wo~iWd+W^*+*7v_!SnoG8S9K&FbNp%Eo`_YbZH)ZM=j};|rW%nGc*-ad zh526DU*cazN{Gq5g+?v3J7seq$|U|p*7RDp<29#c@e;{48$pzi+!6oCexB#=N_R9 zAj4`R+lU-n31R(C9p?)hR-!=Tzq(TJN{iJh;5|MNcNUA*VAE<)21*-^`~0ipVKXFH z0k1GG=Z=h5a@Z3g^8z(4*0i#9$WfpWKL52Yek3+`uE9HX>xQN zQ%Ueg*~4quK+V94a>f7bJ>*bg+)^W=?er^=UB~+tH<_k4FV?C~xfe+^HbS|o1(?N#`h@Q{4Uip<2p9@JXWjJRywvBn z?w6Fxh;KB;kf0gw)3ip>$Gnq%ARk62?XMw%p(fEug-7!YT`$h`oAHhEk5~RO{ua(Y{CMc-(oK)h(Pi^cM57FP)*L!nz&Ig{#Rd2J8H{fN4i+g#c6il ziZ9$p8tRg<4`@Wo##r8aj}p&4_ebe3W#>r1QsNWZCyh0U|2HqumyxFS70MjnPT5Au zaNo&V=osX??GSRc*N79;h2HP0k6Hf#&yMlIe;(EebLOEksHz8jL_|!_btbs5cv1d? z<4KR)f;f%`TVcj}m4FN<-oR#!aR|4w}0)F?1QhRkUu*8S#mp&`*iMK=5~>Xomz zx3?vcicENf7zG)|lM_@(bIqlv_e#gXK|mjp^5UXlFj9b3u^ehuz!?`i(`0Gcs?KcW z@F$9QvbdDw*6)MkRuY0{Xofr6xv!c(ePCkcMI!hbbqs0lcy#MRw7F&3R9r=WI%P+7 zA--fXY^5HbHh8`8;(qbit+=ER3a#stM!ND`qj^Wu6BvS2bNy3OuKhyI&e2{fI)5Ur z_WfHxVbJ2Oya+IPqh%!?u-on}7jg8su;(G3g(UjrLBXgfH{Mmp70N~xFBWg$ztVxi zKt&$^-Q{2^F`*o8xA@!Bd%B{2tIZQq@rW z#MZQ#m84*_GTpdPv6*$tZIE+#LbgDzFMG{6!C)?O)EoZGz*^cBv7j7(*R?!HtU5Fx z^Fvopl9WcWE041H4?7JWN2maF1UuR#fCToifpRD114h<^QUmuH5 zNPLDPD7`ypCv{7)_m(yjCx3YV1ksko$VEjfJdA@P<@kbwKr|ueiZWjG*`Ry~onxN1 zRM~?kkHcgR{2Qn_Q9<1oiFf=&`U^*Cyw%py5{IVn9LD(vtRtOO<-yChEG>RJ&+0ob z*1^vB@2c?VIVYTdY-@^un~Z}sjQ~#dv?@~WYsG@*FQW-EyX=5Cm%jD ztJ~N9@UA&!s*CKY>&1{4vqgA3@+!_||lMnZwg004y zgivP~-QE3#bt)+pO`a^7jPm%G*1B0nc>y&E5VnnIOxKXC-~`MZtvI`IentTe+TRQn zFAt@fhYQMjLs~0YMg~&#_0uYlDw%d6#UDYjgC+1M?0s%3{P#M*=#?9$rZha=Lr|EfQPtW{Nh6GTXARm!ZvWgSCCP>Ov&F^5 zkpc4nkLL^w*97Dr8CiM1`>k{V-zF+iuTPZ?1XQREO%XWlEjfdwOe}13Rt2#m(TcP2VY}dsYGP4(C?p}AUMs+3T*5gSQuyTo{#6cf&A`%xy@I# zEO;~mJ?B>pi4~1-h^PnQDI9LIp8U&5iUyo9b7aF$m5rEvN6Gr zkZi_p!>(&VaR)R&25-A1G;#Up;0H@WDaHINI1;z3aNz}9w>RR-NQ5u^fhc#ZZ)s_K zJRSx9PFNjH7q1v;H~*ww)5F7K_YJ{!aDHCdye*2i!y_U~1de2Px5A@E;%=vdPg+Ac zasU0edkZquUd~F<#Ju)RMr5c(f?_B#5jS!+%LVA%WO#vows;bE6CgLop4L~utWEy5 zv}|*+#m(xaR}(4X-Jr94G#AyagNsYe60wvVPz3{(*^_YNNnW%)d;+s2c7}pZz=uWx zcOPL*P2=aI5r@beDau!m{w*YAh_$8bo4BL=3|Ecpkvd0TdTR}_2bIe_;H^|Md0t_} zA-4mODoRlZBJg^LF(dZnHYg7AgYJB<&vstFt|7M-8ks<>;~;ws$ktGDN`2KyCGyxB zZxn};Digi&Yy+k~cFm8UQBVLqp3VC*+XBH8Pk;tOTsDj4xmG~mHjtoS4T8?MKB#g! zhiv=9DA1YVj&4T%zw4}3>nBgoFV7(giiIhlr$JU$R$zLz$67u8#CtSi`w2JIQe1Hc zr#QPa@SX8|LiT#G*}JC6nw(dFh3Apv^8u(qW+oap-c$JItsvjo`LQt2U3Qq5 zo|~jp?;jvBb!#NZADN#w=!eF>{ofj3(&5d?LI8(EHu#<=SAZQvM-PZ-P0)u7x+#15 z0bV9FYeg%;nf~$sl%LOE^*Yqj0r6--9CW?GJ1{=z9BbJEZ)bAY}ikhDbN7faF1bSb5@8Q*-mw-0|6! znwd+24_X?{{~KKJf1^!lCf~Qkt7^|5gg>m8Ua4Sr83DJhuj)bG@*Yn>Uj?K`SP9}5 zV8`&)(w{Y#A8}%kO(sD{^#%IZl=We%$^Vry#d-Mo1b zTMPOcEg)k5deOK;*8)P4)Z!G_4M2VV{ceqq|NU;jTgM^;XX3emlS@fuTK@hm_5b*< z)oqsl$NPUXF{90I%sl4p1uYWch$EGxfeT%~Y}iJF0B@k&+~2#S%2TYLTUH8E4uk%% z8Js}-+Yz|g$E!%ZXhddLlQyw1dPVln+mSYT^WWRqq~o4jq-W$A-GcqSsnXIy23Avu z8}GVx=-3eSx#3e5xD0SI%CxrQUoV?bPEq?gD)jfgsL+AROO{))DT|wrxD>|t+9oF! zN_q-ka_w}nO0;h7WabUi#CUDyz&hG1V-_$|tUM$;zWMXaG6<(Nv|imM<;9txHr=Za z?Wb$L?JeRq26{PpI2R+8T=~QVHeI%V!~vDkPsQc(b?nQYxxdHtPDsYp?*Wh7wiF37 z%QhB{77-eJ0?z!n$r|kLZ?;IC3+}tT2Qe$wT3)+$o27JDz`Hut!( zP_9$BPg@GIpPY-43Lql@F^1IJ7h05cSbZ*XyJ)2MNCJ%R_ykw*-;c9s zY5(_H-{{Mzp+BUt)=eh-^SLHl6F}`#Fx}}Ng2d>jPxxl1J~?%jcACT)e7)Clx-0(n zJ{v3@6yZ#@M08#%sk(}m)rAz%pw4HhKTmtQuFq~V-fnJ}6Hl7xeA6<4WL=%ezOhU( zM&oWfJJh)|tt0IIIyJ1;+0?`3VwvQ`Pgg#%Me}B;K zhySc;2WdzTDVMp*xNuhNurR9PM(hKc_rnU0&=m`EJcwb!@d|lQyY#fY4)+Lc@J3Z| zw$Dx>ns5I8o839B{LZW8d>VU#-YYTS2xCO+dRwTxV5FH!QF`-wEuc2)1f7@$#(2hz zW%6w~Nd)0n+FtiRuceiqRMQGt5x@!9q*BzjwMg4Obkg&`as8oLM+XqHIwoXORVA;qM^Z*R$ z*@ouQVoB5SgO~r~qNzqA1J!x!lYhMFz$d+FqUSr5#y*1ocqvJP>6B(>rN8Ui(m%h` zsGqE!hphdtfTbwR!?$C$DTgy7Bymrk_}w|~?Af7uGr%#}m=T zmO{pOVI*W^8pdZM?IZ_F?M6B}<>}l}@zK9H$1N}R48{?lSLSD}g|yGrAJuGu);)J- zCZ@A%evkA1<8?f|wM_?E-+9nF)#Nmvl%Bm_zrNUD-UHRfNJz__Io;L3cDtTt?#y^; zZvG`^YeHLuPQ0oFk>0GsG#E=(eE3c9IO}98VYVi$%=68gnWc8`GaiPoict>g{Ek0H zftecby_@mRTf}KS4=+mKd1?%;W^C`KgAV+AiE>&-&Bc?>;%5-6tiX+%_q)U`13z(`KFr{Kzx6?42pPuEPm z7$y66I@Uo-Y@YVB(_hcPK1zwVYjau#q0;dYiq(5}6d^%v|Kar1{qkU`_@wSx1J!;! zc5fc3&CHLBjt2(JW{%1Y3vGTg6{SRQuOTFq)DW_=crRUG!zdCh%(|kcoNn6T`cN3F z%}2w4hhIpd?hB9b=ho|mxp8gCn}#wa)AsfT!@kV#rF~L0m3&r0;jdW6qCBpPpv(P} zsh^rX`O`;`)SAstGfv#J@apD+bRfMoJKswIu>I!Xr!d+BZnA3YvE3OOy^!wP`g`C| zpx)IJf~sW>dZvEHZL8kj{Q>P_85!^2R{oMRX|)^xza-`~)Yj6fO2Oge1?ps}KH#^I z2^*@4FXlE14tb$o?zQl_+~-Tn+?=q7O#|$G=H&Z#VlSh0Dzdn(+T1-9(w7RMsi|si zd;|0@vKG@GAKftv@7Jt$V->IJoJ*5t~UaUtR6bgV=3D2^ym6K&~er> zXD`g{+pK;)dAm8*?`N3ejx1CaQDatfA5UnC<`O)tu&E%S^qht*xHO+d^By`awGr|5 zeMpqv6?Qe37*u&*5pEp2+uL`@3a3lX4m-ko(|=;(CEvs?uuCQEZmm7d$=T$o3yB{o zc>f^fi{6sZTm@79ESD#}KWc@?D;^TTzmLA8wB*~X-tP4AT*pV_bRqxv`a}+Q>k4-G6zP+9>OyUgg{OhxqZ^&*c zG7@z7!nvRPKtrq0gvd$lIo=PI<}xu!*)<^}S()2}pCJGdlSThs(qC*;GnGb-HdzC#E$JXK?K7r2eg=4OS zI<)F!ZBsj*DL*PbH33K*2it+!bJM|pL~FA1GF1H^Q)v`Y+NZu;f;YtrgwyM6+NKel)y5W+zhumTP~3|8hsG&ogL# z5{E6k&!{kRn(BT7{q^th+(p7Ghc6FqYGCr>{ug^6=fQm}4DL`@k83c%E;o*?ptPnF z6B9T~C6v*46uqlGA-SB|W`j2{`A>uDDw*F?n6-xG^=fr&;YJtV)jSCTE>Ym?hk&o6 z6pQ?Ta;?WqL@}e0d8ddn+9H{W06koF zTEceRNejUw08Zi8X)Bstbyh>}B24)R3!1pKuHvTNVCX1*$cLBKsi*Xk^hHq9zR6d6 zOYiePcS{INFi|BHpp3sQbM0HCFgp>$Ck4**ue_n~(c50eN5oJ#&$`)0{{bn(x|XXZ z*64mb9-lWGdM{6~Fb|&cnM#;}PblWrgjOj+M^gt$Pz=fTjj=KMFG4cVJOJHKzL=v} z@ubd&F@L1Yq|N-m9A0ceMD#&1wq7ky=$(QGnizIFWB*WgdvUOn<^lR+9eH_b;b#Tk znGWiT<%Ka+i`-wzJT3@cih&Ikz|IacLU|Zd-d6W))bcsaJZqoK9!j8~i%{KVHS}Z( z+7UWecu{5f6b&mtsas1WlS5Zh-@s6F?^e}n*Y-A4yzEe)Mfr=}jGnf(Gi)JW;`b)! z$I7lcsobscyn$(Z{3;!3#n-g)BX~N`w>m^GzN+I`6{EbAq{!_|;dd{kem`tGS}ZTo z?MFsT3_H@u{5-GSQ%u?x-uZO@4Nt_@jU`C8&hcES9A`hxH@h5y9zK(<9gbTq5S;>$ z!;=8XjEQz6m|uqp2`hA*6V=K@C|qv#E`k)x-^H}cr`i_do=^j#M*U;Efwb*yC$H*B zU)NzwO_}twr}Hf}?|8Km*c4D}x9H?}j;dGpU~RQPgvd{h!%c z=W;~#$CGc*Gbi8_|MPlsn-s#gPt@`s*_~%6V{TjtPuy0!#f^RnK&=OIjIZ)F5ublG zV+acH0q?nOMD*F`>9oy{z{JTT?d4i-of1NuaTjqgkR$w^eR_7LoT_*CIm7cZ#pTCT zLz5-H|CF<;{8(x`QmgY-LA*}`X2Cyh#c#e6FlztmMVxMKn07yYtjlJG?J)kk*#b1U zT#H6kn_o1dQw1Xy8)e1d5ww6NQUNtoGfYn*~3li@Qes^`UMrl|Mp z-$r4kYy9xV2HVTe_F8pvca{+q1m~9HDtTh_6LmuO44ryHYK9j!N%#aL9Qs_|2hYw4 zZf5cCH=?q*h})b^z`5G#K#9~f5JTLFU^fp=FyC%FzdH*JII%Z7{CnTk#$ElnzQ3;A z+UW+#LD%<0O14hwt`1ftF1ePeuHU*`24&#d>*?o&4tX&j2g8BqvupAqg_aYpOWpNp zWjgShzD`Q9{f`*B#I1(1p{adyIJvRelos zob@FQLrW`(``rKXpn`e4va+%)hdZYnD&sTGxy740(VFNrg!#Btb=ta>?`?8w6ztQ$ z7LOAv!fNFT8|CD&zfWO5S+cjzir> z4JvkjM*=bmB?KBNNz;rj-3F3hVOA>kL;F1Gqm+{=1;P}$cq)lJxr*6PS$Wwh8?3;d zU<7C*=127irYCK)YYnR&tgqidTWZC0`I|*c+qBHL2W_zvl&HSSoo1&I)QsGpR0hI_?1&g?}|OEW8MWVAGQJBNI0fdUr6`9jELsjby+ zO=@BN6BKK3e&oO>KLnvZ0$qqY)jUk0b}xA#Z%d*95wt8kDKE{9Eg|3ijfzA0$)-uW zMp7M%j7R2`rImx7?B=o65Z7}P#HbEdwncJe!^c4|<>0`pO|%lm(p^`o~(WhP?1En$;n;qhuMIqnRdJCSe(CoTQIg;aU}a zq`vcN5;T=R5um+)92SA9(as9*qgy4JW+gYRgbHEuuh%XqB3wnTn5Wa zUREYw^YLV6TANpQ-Brfr6aGaf!oF0QPPk3e@ij=c^;0Hp`%P*wr1jXEr;IfcDNAm= z*P3g6Um#kVTaQ!x3N3%$?gnoDaCUSysDlc7TY*X?<|HwJusr9fVDI}fP^VQHbQ+2u zp|_I94!P+l|cm87~k3NXv#_Knly5R?Z>O-*6}_11ZLEDF1A&pm}#g9fqHGX2x|Au zW+=FvwbF}nW*^8YWbMJBvP)EtK}c9U@a5uQX}t(avF~g(6#oPZ>&U46VhpzRP2qr$ zJUo}z3wnH;$&}A&-U3TCvaf=D|I>bCG$&R7waY_v;ALf#N41e+S0?gYdV$mlJtv-} z0DopiXS{Fi;~>iEfb<6qC6=|kA(D)hHJgmluIW)cqpa-d@08fiKcp=>-Wrs)5L%)$U8-@ zY937UxD9oj!SODK_d`B0IxzEPrXs)QeESWrp}ChjF{#4cVg>;PXk`@qWi@5$32jka zVkt>Fr!nR>WRC~5k&MX|`$&~E^;4&;RC`89+l*V&D{_RE1~6*|HXp(XLYsR=V7BbB zWuy6%Tt%8l%zqIKL%693xzYv+w#&b8jYvodG}s(m_1dW9`1hs%Kpj$W^gNidp;4=aD$p3gXJ!&CfXu^9GsM@xacM?|UxAegqDc`&TFu!nbwTTlv|` zF$X*E+l;RWTbinoPi>bn$#!<1%_NwaV01h@ zFV+_~bEONfR--H_;gP?*3ho6*o3e_6{%6-UP&{vqWjlJ`dd`B}*w<8M0K|l|fZWo~ zFJ_^}PrShWf<6cJLs?~2MarugypuP4*3V0>7WS`tq;+VoZ~g_~0f762_~7~;E}NtW ztb75HA=k{E*5{El38NaF%i#^XQ=Uc_h{4WP>|R4pNn0|317t)@CZBzhGIt5|;ln$x zh+$@VF2A#F58DY4qEtFf6r6QnLkhmYMv2XVm~^+F8*xLW%bPq;@iMN;Ye+>yIi1Y{ zE%tDg={7Dds)u=Rz9IW!m3sOaN2yw_d*+7h5&5zV5ZlhJWlKRNoWVOBO5puytV3_3DaKQ%Rl zigf=?nYO`ImR1-UkINduamS$B|Gkv}Vp7X)c1aAw_Ch zqUh&#*-Fh#e8s`f&VE#7=S+jJ_v4ePDkNkWSR3Svdkh|AEZg1R1ps$%+CX*|wyV3F z!&bBDjg#OAF3(pdLSsa!1}E=U9RHsEgg<9uNZ2*)ZwFkM^ELU;19|Xc$25d)2Y}#g ztZJ9@Amp}s96P)(#bPzqwl|6kMUUtg!*ogy;fo7bX@g8MA-r}vjQ*H4Ay>Jfc*+6v zUxmbM8HeAV_c(&(vU*ZNZ40;ZEYXdsu3*WpC5WC&`vakSRwy*Fp7rx!CETs^xvkqo=jePxPz#)Nn#$lQ9H}&*{p9{rCd)fL#^!MoWbI3j~*J zJDueXn9P&nmM0vL}iLdvBFMP6`GHkVc9E5)UD_?9aT(fGaE8uA<9c=3{mPuNNw2`W$ zebK1H1<;*d+rOhMzNym-!YYOUlSqC?R2!8onc3)*C0 z#}%1VG4D$(GuVsv!Ee8>$=L`1P?jDlkT_J|<6DEH)Dbkw>@-fJkM23y&wU6mQ`I`_ z^*KQj^!5ubc~+$zjaQjX?qE}HDo#VcacYXCvmQtaF)->ymt8{u#=fT^aodtf! z>5XoZ@%*71t|b1$p!Rjq5+$A)4JIdVAHEOqQyg^#*ZPmUS8sL6dv3r6sI4<-umR}u z7TD#aef9Z)-%!Otcead%ez~8jj;t@)kCOh;*4XHa+HWAO!P4yXL3^(gOW@dF;Zfg^ z#%8MWc9=y;TJe)fz$FG6s=>gA`CPZB3~eAaek8L;_E0PTD~0!g(3 zKAED2$3hZuA(a1V)fCI*eTSlS)NRL~!@mop3y0$cO6!kbs&E425pGZZ6P`u{dK=1_ zs#Aat!je+_8}DNm+J6%n(H*KDvN}y2eKn{?W;&1__kR_~YZcPElVMk151+{(kbmRC z39bpltEJN>XN);qcnt zJ1oN!pw#l*+n%a`mA*~yxd9sZfgA=SZkJ_aWFEFNkpnhPLED`qdbB)0#1wEwFW*@1 zY#%46LSOE2gvlS?AP_qUm(~4L9BHYtXbjBSBGCBuw;|Vnt}P4~gu}hche)H|QD1;K z`}I$>zPF&^^R;(J=EiCdl0&keXg>&kJiOniWaULCOW z5tMhDJvtaqQTg%NXHlCH%~MyFZ<<;;X1Imw1neK5Gg1iE=9?43wOkmam?NG%{ZXkG zi}AW2AO3sK&aB?&7##CJtfDwe$E8045PVW33&wt1DtnIR*n9L-yL}uS3E7ho)-7R?RV6fbz3X zudK2C{ie%TgsQK|N}>W@y;jTKN_7G0jcS}Yj@SF)Qx*N;>8nqHkZYtK-JE#kLN~Y5qt5Mk2Q6GAY3O`%q_UM zY<5h{_tpn+4_A#BO}gnO$ZA$mCnkfI9HyT|P4h<8vHH|GUohSn4(klcIe4k^51nm} zWzTp{kZ>9oJb;x_D%2MX570-qy!oxm7R~((b_q}aBmASuS-i$fU5J&cDXz7GZ(Typ z%86d2A8j7MnN{=;hieU@j_}O4E!Q1CYr|6+B7Tb;A6uMuoMdvE+S)-c4=7U9I`z{0 z+e=#QL2PkgT?i*26MUUx_{VLo{iMM&@$x#7$#$$hAy#6gMIq`%qhj zc)+&TLXaw0(14;U)Ndr69aysu1#(f6!0DRksFHz684GNvqWj(ggVUrwboH583 zE}911+JswzE8w^6LiBOPfXW1cO7oTaA zb3!63rbm*HIoJ8&Rvjguqyh|M7XV4d&&Ec0BWX2#sv;%sv;&XX%0RVZ=9!YfFt;Jp zJG7TtgsAdVtZ#2JqftE!ujcMjv9iCGzpcv$tSuwjJz))VKK0e3@M;doOCx6s*@Yp* z#`k~Vt@g(Oe;>{%!5jG1VPMeSYywVhQ&ul57U$$i5Pv@?$t^33c=zz3Uza(%sa97}@1t1t5>P?T zq*RTYR~j`r(G+ef-m}-vO#YtL76H5$SM5+4$ZFz|Q7o-CSxN4gueG64W?v>#*VhY5 zSPt#wQmQ$+V!>adG*q=@_LFHYu!GHLt7-&sP)RjVvVYLQQmXeGz4A0}OIP&)$YM6x zI(^DQuY7Fb(z~vL7KO7QCm(k(ut!I7b^s^ALHQ4E8^#y0K_|}v={A#Z*6HMA*W!PP zy{yD+rey_K_yDiZq9{B3{4;8l64g*cNeI7s!YMOa-k>8a;+;h(OPm2%$*9G>Qh+np z)JodNw)(=t^)`xt(bC5$;P{q|;oVY2=d?1FTCSKq3)Nt2z>UD@Ihd$x?R_!uemX}6 zYh={I%-4WfSC!!v*Gps`2~KeIRf77t_Qkn&$dtw3q-%sFj*Xq!OBi!adT5e=-KwaB z2Xt+t76%EqFt4ojMJW7id*gAoJq1u1A1Wwn@gcx;RoZx^)5nk`C%k!V)*9=lnkzz-4WRh=hLbAOMvP*ehLl46n~VLDjmwpw zgva$en`2KSpPgGR_k};P`VLZ9E+;4bv9)oU@qAJ5i%~Mz9K|7v#cz<$3uD*_1BvV( z#i%1mD{vqk18Ij|Dp4_OT#dzP^a+gyQ-0PhE=dS33*4%I>`SIflly(K8WXVwMTq4& zxnp`pLdB7!LvlHE_st>`y``KD=*V;+@jRwIkQVRIR1-ZGayU^NJQO0qp!4w>+W50O zz=yRQ^qW_4`|PV5Qb<^uqRlmFV}-*Yh{}9sKx|tU3;udGC*CfO>m6cE)SycOuzm zZtMn8S_vH_7P~GV(OZ-wLOMV*@m8vCHsji0lv<5R(QM&_N2_MuRf{YEs5Ns?H8pvyr zrz7M_-(Xq+$CrQ4lzcyv5dc%`)fkp6e?u6;`?Opa=`>nUWH>e)xL!x{Ny&11{?2yk za?^kiy7h*l1N^^6r|WcUd@M)U3M7(3PK z2m-bl-~RnNOUJ5i2lqw2W*txcK6Xh3dvEXA>8-e0@PkbqARIOda?AAs7P9T9fpB|`wVvhOyoKNG9f+v2xf}cXLssx-DJ_DcM z=jtdr!G$rBE6C_h6~nX`Y|7ZP{9i@qARKT42(^fzU+^2rZ93966f|f4$LF%lYP`kD z1SSJti|0V>lf)HED7*>i34Kx9DAHXh)W{-QJ$+hN0FX~yc(_Yv$ZlXQnm1q6>!(rd#{~*`GG~WiDzBI*TEX6 z#^3FLGh35xY8*By&+mKuCM@cFpj;Jh0BBK3T;vI>?PcRy+|CGaBgmJQ+v9rwU;f}X zz*s*_8^cDmP}I(&X7!&>_Y13({0gqtU)}y+cUd?Mps6JvKJ@qZ18*{IIP`o*k2#)R zSl9p_OC@m!lr%t5vC%mL7+c`QIm776}=&jNsAWe%8oI{|3U`{tk< z!EZzH6i)#s2TO-HrvXENp`jspS=qnmEgTsYHGB5<{!jP4ykJ;(cv3g;(gvi{ecw2x z(aStBVYgp0_@Fxg)D8u(ew(}N+3qC$zv8@B4@Gm0v#tfd%L9{{&6buHGY7;QbTl;T zdk~7P24gjZfu4+R3k->@kV*p%t{Fxo9LB@^YpzHrSn8D(HhX47t~d2SnFU79Bo>I{ zP>Nlp2O&sOgI2#hJRoTxt%P1GtrmFB>wws6n3(QzY2B_K z{Z86;O2j5}SZKQDpdJr~siK$iLa&a%h+KLJaNq$tSNc9B!TjskST3Law+%3H`rPb3 zbp{9#OFn+YrW7NslX?7gZMemjx^Ib4{Qo@aC9#|sh zK>}bjDZnr;Y>h#|Rhdsv(BmEo{JMR8eU(ISE)Va6?k|IYj~30CIHC_nqRioy?|yJ# zN@^6c(6w^I{x~YmWdkc<*(McKmYKEN!xiS_>>PP>Isg(<^fp77Pi&q*kri zI&JKiUO*F>FQh`={!7JnEUScLxXF1@U8y?U@Vq~`keGxd=$8<2X#tN$N^~^F!tLL| zzAO=1eRl~|660U9Zu~qX{V*{x$0WajhrRE0(-m+7ar<1=-VUZ6895Mmiz8vD#2&PJ z?j*sSTwL^|pS(T-s+=TJK092&Pvn|nz9-09xBV9Hj8Wydj6L9d%YjoSnWfyGTdew# z%hH{_GX>8uVMC-j{lJE%1xdoKB`Q81TLlUV`wA?9I9}PKX_k`)04y{#@d<Ag;EPAP>S<-h;?@8B5R`i$SZqJP8X-=#VgYtI?J6VMn5G$psVD2>hyxRKA(Y6kU%z5K)4|qzi!CJpERijU z+kK8{A11f%jy;~T99Fg(U3&zRe;y~s%dndFs=qwtP%Y@1Ai8X@t0giVKwEc>u=L;h zLIzq0{WNx?!8zp;|Hl7g{SIhDf`Wox{mFQvrA2_Z{N)|em?hxnsg<%pThI04K4Lv<=z;>TbQT>an7^Xe*(D^NYH8PSP0At#Q0$m$=ATg!O_7XIyzbgvD^WC z)Zb}DD)Aa~QPH(CQ7ONARU+JS+#8(86Z_UKT<2V(nW7x!e8bm81|s zdnc#o$Q@q$S$_QqT1Ktz^xmAyGCIGDpqr(S91!eqa0~~g=jM*BCa#HvD4iqAF;hi> zIzls*X(gNFI`SPRWgN#UZ8lECsTB1nEPuEqxll|$!4huqKTvd0O0|NE^odU56?>lg;m{G zoNxN-jk}=2A|hE&(|D!!AqX7=#0?sJ)qQ`{T?FmDDY{gzaph+k3SL4*Mh5cHbC;l- zY#5^E{<`L^8A)nL&~r;IGc|S05J=N_Ca-)IFtH=Nu^DagJ~Z{Z?=OtE@x9Q&Q5+5P zUxq#(s0VW`zCXSn3c5udPwc5rT2p&Qb(h&Z54^lTT?=g>8RFt2hhWn#a4oT#s)#%B zkyKY8Uf~|H4P#YlE))}gUsucEvH(>YcyQ<*ci)~Mlsb)xU%8J9i+b&uKMNlQxQALm z(r2%I!;aboCF5RxNn;)BzAHrop^HP~s6~(6#C7};q4d@X)4b?88oyMYAbL82;t!_73|37SK$;iothJ`J+dp9=}o2*6}Mwr)isrl4o;J&K{203V@G2>@zq#iipgb6oXU|2v&vH2=Z-)EWx@kO zHUkj$k`N=W(e+K{)|k`y;UEZC0&koFxRsy3^2vZ#=OxgwEAa{3nv^Uo8Uhug?hXLf zN792q+WtWo>CtUEr%_YTeHWl&ii4&k3Az-dHDSFH#mpWwndv7n=-cO(Rw3d z{dUGPq3);Fs4hK?-iFnY-fVL0V`am$^ zx#$J{2*@S@V*peyYcGHZ6Cec}0F!E$=8?GBTEPV1iVhT5K$3Tl$iM$u{)F^M&``l2%v1JoA}L+eEi{oh~o=#J?x8{u`h9Cq^Os1JvQDpv^9pCa#0;()&ESqd9B4JEVGeU24G zst;`YfIGw%pbIsWh)y+}{R}IX@DKxHetbZBhU@~$+JwMhh-4z@)(n1zofiW zA`|qusf=a{r)B}h4e)X7XrTLc0^H_*B>fm%}vFE z^E3vamUQ2?V|>^?JHC zDCloMxQM`)e1tBbQ3ZMu09m8U4X;e+6nY$=l$ltVl2DuU;{8!Im~albka9hG`IXiNk&13FIHujYF}T0+8pE|P50MNNPdCY zIJd1H$SIg4Y-LcxLI^WJ?O4O2_NU|b9`mKzZ~~Eq*RGx%ZYU1ge-Et;&`I=!jORIk zL$2kuFIOcu0D*OGnfKr?=N6yG33gZHe-<5nPI-BGd|Z@9cNn#b=bco!JWV~@@Wl7i z$C6jL|4l1{snLS{|NF!1wVBg{CfK+1rJ#Fza!>vrJM@nwT}gJ+%Y$+Ly9$=`;}>9y zm_a`7=6zMZ#fD0l+BQE*tkSyPKKg=D}A084DuFft=zEBG5^Dx=)8y@AYC+ zV`T$Urw|a>fLpFH!>kjv!J!TU?JQuI+91G;5il~`93D*sdYZh3JSBjNr$8mpv^r2I z0oeD}dX15*tE~e4kn{*3HH&@0?yzsY4t7)aNQT(H59=T7FU!Bo;1l4RJOPib^_x3xN5EmFj)Ez2CSKzKw^zrNdR6Xs-!doupYJ$y zGpi#OPpy%jdh5Cl#U~?ql%%%TB~ZTg^tQ9;V;c`6D-w{djXmqkkUt*B11D(UGm`&B z+*?Lf-F9E2N+aFf4I)TM*QTXgQo5zPq(dp`ZYe40Rzgy`Q@XqRT)fZY|GwWb&Kc*^ zdCw=u9>Qkt-xX`Ex#pZ}|I3V`erkMjq-px+}W~kQ@9$x57 ztG6epa=+0oDaGOd+@$~I$ET^+i7NGkUh7~hfd4~4-nx#b(@FwNRCoDs8N0rXGPV6mDKlLlZ@;MeSE!?3z;yEyuBGQl*m)obQEIK6;&IQ;RghzJ1K^q)phL2h4T zmOU%TIy~Ss$4pG8fZeXB7=F0F1)0!eljHNwREe(z`A_w=PA?#bh)bpkID%12uhTRD zq=m0)U<9U1tE}_XfMYjmlE?y!Ld5m0v2o`qEB9y^tlUC5;{5Nq8otHiTAkY@u@TtT zV1dwjNw0`&M8UhmudmVydA)b_)|K0;`E%=P`z1Cb^QTU}F5L`|hsQJ=%eQ?}f312V=bCd>hFw{8`WmdWS)(ELFg&p-v@Ex@z)-E8OsU_faA z0gI{yJC-w#^U2y1(P#(c5)D5Bt8nnLS;1(EpQpu-OvoJzssYl&pBohu$rzpk< z%^N_VQxPyWGw}gY_Z8tCdkuH73s8*2K&(YDUu6hIP@|K^kYN&!k84Ietn~<<^?^*k1d`hsCUOa?%Zmv%zd^n1|Ad=EAbY_A{ zM78VS)iD7IBt!}Zj#x@sMtCP9;ZeDxp^6UOf>A--4Qw7Y_4x*Z@Oe|S3pd#uUe6)u zMi=auQyJM%$kaaS3`DSZrpby)jiPZ!xL5kvfewAG2vsRIi7B1*e-x{&MO!BtB{%9`JpklWF-0tk1g zb)mwm7PLhBo@fd&BV-oU$TF|_ww_dvq+U*Arie{3Mb2P6%g7&~14s*aXMOC^G~>Ce z0EDI|#=sb)*o&;}NqTLhL-;4)FLrfFce)bu8A(84?Zu&vH2+Dzk;g3`!&1!0fPKKL z41rlW9zkB=KZvd#H>PCFA!{;9bKC1Nco2;A3{=f4psmuVD?L5(TbS2h!xG0}D1L#q zzZ8G5JN9-*1P37=3iWVRFprwY9H)f3zH2x`awKLiQcwwJR$@J_?(wE)#48`7&{6F1 ziuSyOHkmW&cRdE7va;$C`N}K5mkx#FQ~W_z8Z1=P^h}j0Et`^OrG;#WqKy+wiHZTd z=orjU3Z^1@k(SclHk^JWm_3!mBX%#B$)}e8w5IPln?HW2$(;koQn$(UcSDt#@2)Ox zg7AQ(FfQmz&(RQ8@R1@P%+{QOOj#{n0f;XFX*=6WB8pT_O42+jBcU%0aKiW)cPQj> znVWGPoPje7kfl+_BK1Uqlna4>1qhEt2v&*#qZ2(*F@DOFOL3SqrP5-IR!hDb*t5%f zN|FCy{6#ZJ70bRJhaprJpcjVs2P%@7#{r0Ke0+QWZE%ZVU!*P+s=>qeepkO?!GO<2>*r$lE z?o!{1UvR3S2~9wxayTU22;ZWZvLn!h{V?Z2R6|q@E*?l*%cHB+Z%g_?D<6*V1)>tw z=TxYb7LGUZO2?LxKQEFi>zg@`Z`ex<=I-?yx2@CzH?=#KxcG!E?NX?1MIaRkcn8N^&9_+LwmE3S?g2qXWH@RAlH)qAZZL$e;u(vzPXs!1p3f!=nY*9a z0$0`gj`ml%2oxBBohpgOjA5C0G3IYy1a8aACsc>256B$j=U^HrV~1x3@}}y)q>X^~ z9%s)gFZ-2ZCAU@?t&N$!aYldH0q0FnVIunk(LZM^Dt>fD)W3Z;CBsbp!*fZMcS>J3 zkp$n0yT2>fvw!IZ#Ywqs_4gb`;pphqm6~C*fc}fg-=rHPn1GV^-wgcUFNWbehsyOP zdF3i{T6M3r=uLeDltE($Q0f1JNTY>r_p!bQCtP?e+6z`wm*1S$S5Z|zN#DzZ7zwBvoI)0+&$ta7;I8bVj@K81v_S{NB zpM=;@V{T1A``0X=6d4oI1)|& zP=8r@x%jD;cFGuuV||*CCnk-`4nCnnes(Jt>z|J@iHSI=v85cGoPjX#U}uX9)axf@ z5|QB8n?IIidM?VXDv)1^G_Qz(0^%=pv&QG-Qhm5s$@7{5Oxrz9F8zeSa$|4>I=36d zudH`=tm&}S-pYs5eP&{QWvpWA!5E_tB79ILf27jkjk}hfmcB;E(#fcy`r-TwKCdh@ zQx?pdY*-QW`M*`i2?@g9!NRsXd(0dKy{wFv!|et<>p~{^6Mg1CVYSEA{DY;X<(|9u z=Q#>oRV)J}e{#3ye+!)dLlDi`#Wb&$_D;#Xs1>9pgTc*jlGdus%gQJsgCVKfeeb54 zb8;uyJA88?z46T{$KQlt-~D>Pbl2PwX+bOU4@rh|;|4;juxp}KWYgBcsldZ%xP~*~ ze|9egXd3=(`Mak7zr4s?-_&3M1=HyYvni=1AhBR$=WRZL3qZ4R?uECryOY81^KJ9; zMT$&-MQy7z`jZayKj_~H31eS>>(vTyjA)cr$Q0cF6;T0@Uk*;LEgD_=o*^PZuX>q+ zuhdb*Jfrg*AcX@;k*%hrmwMG(z$HUEEDRKH@12+ZVLb>m8;yJQA8)3B)-6vMz)pJ4 z%o$M*YMr-JVMLxRLH^fSr^qy1=?nv$)lNI$)5U}N)C)6PsAVruV9^8UPo@HW+yUw2xVkV}%URj(Da2LUf`>@)~gSZ%TDP)he+Y%m7*vF0&3k1_o-T_r(lg zivZ?m;a%VQTi?4?vdg_0@13>Yy>A1vvxL5n9mQI4EWk_y6UZ_P)QG*8T3bNSN=Zxw zM%W4{<4g17^`O7sH_T5s(5m{~_fasi3G_JR#f0<$t|0UGR#U+6T0i+JmkJnTYM3XP z02+!{U;+Sk2pa{fnCcd#@*7~i5J>%s3wM}D_ZpZ1!=n)fIz4e|)^qutGx$7RfSLn= zNI4FjOlWJj9JpcnKHe?~mD2kX~)f2GeFh0qzoV;#^&aA&PRh!xRX={>lAJih=A#tS5-PQd*-G9*xp$D8uCO++tG$ z8VPYo|`*6$3K0%=#rnHtF^U;@VIdCNce%5U#1X{?lc?I0J!1t-7C_xQJfwjh7=`)YYhcZaobgHGx`ZWi zZCP9b1$7tpBbuQ7CAIPOcN2OtUJl?+0+JRl0lTa+FZxN)6|}#be(i+4KG)y~Kk+^M z4)90UAMZAWu&TSdx^le0D4EVgnPqOuo%Q)*K;;BU6PEbEfRy9}Ao9*(VZ*_Z|LP2V zVtBBMUjvkCvd!1`#o=6C-M4BnKsUJgTN3n4(K9nhw5Sr+2urOP8ig%~4uCEX%X7H|DyMpPQw-8ptt-+V|0q%1Y)13lX+8v?p;ET z;Qjx8)t)`v-JOWvG(bR}MN2XV%*=+$CsW>@3^qqARW{R5Q*;0G!$)4-1`wjZwl>k&#e=715mj0;#*>KxNY~u17caL#LJ4%x zS*=|Q)5Gt-%7Ik^XsT|pawgw!)te82G@ac|#Dl=V;XnP-LxqEyD)Wr{iT;64enkbB zG4-6jPM&HrRka(tW3AgCEXG}rMe3UX_;7w#7s96k#=0Tarv}5J^{C- z6;KjQu`gw$8c--OJ&;=dv57~2NFYvuofpq~d@eA?{6||MlQ-z`Tx9)IxJUh7L1rY0 z006igAl}|e27U{#1JEL;Uj~@(FEmNQ+Fi{6bTH*7lUB~2F~GEe*pM;yMG2$l2V7!~ zFG3&Yx#NX^8Yu^>N{c1y6?Xt5YQ#p-$1pdi^I|oC@k17P@Hkl3EGt^er-TRaak3Q< zh!XM6Me~4Mr1kE5+q+=y^C!q^rMsa*W;vElp4FHl;tF8E!7#eP#Kk90lLeVReG^{` zq~_aP0Vx_-=y-ze!{pqb|H*1E>5SW-jmzhkN8UD-PMJ~*&a*18Ji^JmeNnF0S~#kk zz8{8YPp~bpdiM3#&G=d;U6hej0X5wh+hQ$wb&0#!q=b!M-v*r2kxm?@U$f9vmDS!{ zDf#+;Y`>caKnos@ae3fXJ@7;rU1`6ft2}q+UUL?u^K&|0gdW(5=oRyJSN(qL09OPI!#zi_|c1W=Puc%)cZJwh6=KBk(YV>m{H z?cpbM+Y;$qNZIN8T#fC_u(-cl)COx10=gEJ{zaNE%D6DVC~+pPqlu5tLF89vr^t$g zQ3gyH>Ym&-Sv5YNy`<|oe0Ho#k(02y{{`N#vwI8-^k?l>!w{%5uffpCr3C&$NBx@r zmE2F~`HHHyN!ERDRXH#=AQapn0Oj}PHR3#D=%*Ka3DpkB)^{(iS|J+?;7=Wu1PCLos6_#H}IsSA~CdSPbqVqntwE~%}h+xNPP z(CJuKNknfv;5HQAIT!{$8-7CxJ^O6jm>68|sHq+oygT~ulqB-p9uMSTa+|*;bpmL! zC+w!lY%^gtg^{Co@$~J_y^7tRG~%$?6dJG6go0jWaN`OSphj$g(C?4yU_Ox%+YKF> z^eT;SW_&!$L3W&Rokva{{`sfy<|y7AJ+aI^=YxUc#@S-4pNYWlgeykEyIc=Zw2FtL zb?EU=MuxPQt1ZN;K@jHm<-vS2fFJbrJvY^pQqX_s0xSn38IYTBMR=W0^7@vwmW@ZC ztB}7`0Hm#nN>!`XIyreruU<)I4Ul=>XDonQu94W=JL3IL-#Q`|ZJ`$^+dqAJ@td$2 zngV--3(-kl0NJ=F-}uLYIoJ0(02E-~*w3?EMkZ1`yYJV3SlQe(LnT2k1~XiEghsCp znhx<@qVaj1%mHmWUbb8?Dgv^Ix7;)Am8qSSZ>D~P1!T( zcG@#!eFfS@eik~U$1)cYzl+0}#nDl0uXWK_2#z9OUv7+;)Sf(Y2r@Sr&G6&LFM$9c zRbqg9=-FJYm&}unRv^YD@PV(a|?qaHpOz4ua!WhDagzs9$+Cr zqNjkJ+5wmeJn9}D);c-iFV3l{37hE(KgHa+$^4wc`7~>es4YgIrK)*yD#&TJ22lqz z`u2iOX;f?jHtT&KGYEL%vGIzqL_SX#DG(-$qo*Xupc+QW?{d2N0XKoK^64@Vd}BNJ zunfe7VV+kn6Om?UV-pU6Zli1)(DCrtw^qb|p(Ah=Usva($<`N~6dfQOd!GhpMkyq;CXc*i&} zBquG;?|H-hoWKLu>$*974uLo(b}M8V0Wmx$Lz}W>M|k=2gVMJO^19;hP(cVSxSzl1 zwmLdoJ zqCgw56y#!&8vqUX!<$tvb0zKQM6>(>=Jk))rJAiezwKA4$gRbMd?JImp}ToO4hzEZ zQ{!F=$}fEZgKNZL)ck1%kYQLyM8vkcTV%$vbgz;=;e3;;0&pO<{{@5vJ*rD-o%@u9 z-!_cRwr!4xIReI%%<@`wI>Lreyl*dZ<~#3qZqq_xV#w@mJhe*zUYBLFlhUzTuSsd@ z2;BN@K))-LeJc7Dc`enSj&@+N+^+5+=6%)YY>Gu90-qg<%*kB@n8cu)6s>O0^_<3J z3*nrE0J!n|hf2^8WVX*-Ll9<8x(zx$d2$}NKUCn?tN2=laws!ga~p~n9;BlRJbhJ@ z&Of04pwQT0yh%?wsxPTpcp#c6cBEVBq}tNv$=%a;9uMT@>GSkaIA47hRn&UQpow6R z=9$^(i~hGLTzc}J-|9w=Uqo?T@FdwUMQcBFnR{3ck+F?>%O1*th_xTt6JU9s`RUwC z{+iYQy=r;i;%TxZ@knvP^_4}#Zutz12rvuz59}a?4kKd6@_+YYYc(r7d+-`SDa^kQ z?}PyewJh*AnzTwxpZ|$l>n!Zi_c=a=J8}3vpwJ)+DO1(BzuyDm(Sbgx{{G%^Avgd^ z9sR`#dZwluyp2H6xN6ZJOa}Q=4~3z+mh$xIysCz_oN8ix^24{e$;HW(H0(C3+pmD$ z4SdQ!M}}`%+ak4kExwG7$L z3@jcS=Z@D`X6Wlj$Suf$i(;Wb=um}4-Cq)4Ke%Zx06-o4U%aMZy2Xgy7mQ>jv2)W` zGYRSgoeV?giLrsRagghbM=eH@@L0PJ_$lkY!@wjyJLz&fk>-#5q+S)5%$}U=t3Zro z_bNIyJ^QOZ23P{V|9M+*ZBOTJ^+=AO)qc2OFOU;CLVyALF%UP$9rVR&ZQfmeo2#|D z-I(0?3fe80JG$JiY|JzaTPp-G-UXScSK6;J!pu})j_*6HQ!5R3lS;y*0ix`L|GqU_>v zW{!!t-DH0}^D^&ZGY{aA`$9m475omzlxOh{z!|J)_lsGw^Brg%NMTmk+EDD=ojMiy(qrKll~HAqWGBcH~twB!mj7l7Hs@c2h0 zuN4PKel|BZC2gW|a?eY{i;Mf7nzx{yzM(Y(UIFi_Je(yw2%U@5KoM12%dtztLq+&) z6QX4B6WBp?ej5E-O_cF$#H9|G13FSuHQ<1tJe1B? zSERD;1zM0mrw4o~_ApPkFjC}b!GvtL_n_NiP5HZ$o2u#ykXcivrTxhXLQ+F*1Vip1 z^1!95B+mkxu8=DR=+Q=Ob}cPFtSAGqceF$>jFA1NAKsWC;NB24KyA z22+F^xq~W{sb;VY_-L^(-+4{?u$`=aecm1qU<1{qzuv)8TY2r*8&G?xc zkfk`^aAtc2z9SBO0eIBP38De*P z!OZ@dY6CKaK!a$2A!^ut*!HMrBT5xt24Durx+3OJTE9Z9MH(8~?>8YrcYZ%2FBB(= zInFJ|u8%c6v#O4FUd-#oK0 zn}_EE4S+C!iV}Q*5Uv9e1btYQ*&w+RQ0ne|lLZ{N3TJ1`6?Crb7oDMnDax%C!@Kk% z8fNgv#FXKv6uQNxedvrBbrhbUdqG!ih_^HFyH{eTxR?>RXnaXX@dxs{ype1$OHJjv za8gyU8drdJZD*-XXkX+5y!ZV%X!hiI0p?t13;kv$Amjwq}dpw*|bh<7Il z5`@D28~dYEVceaQ9XMY-^^QlcV{%x65aHcPL=k|%a{7Nr?&G)>9ql#?EvA! zNv5|!XAoeu6tZ~hGK7UP$qjY*~pbf{$ujpQLF2vsilX92tponMZKWLbd8nGw${XM znc5_LHVnc&J=JmFfYjxgUC20v3O|5t^ALDqkGID(X_hYi(hvp6v(HY>eo%Hozr#CW z4mGis9RO@03JNgr-W&=?j1pl)^dLSqHewC)A|WA)qB@7kiixR*`Ni_G0Y2(BISk?_ z#g}n0$zh)ypIO4AL`Hq;@BjUCch`gi4ul;cGzg3}m24?UWtHiF|hS z9N56VCdK}xUB+t5;raf5Urk9L8dk|}dxL90>Ubah4ufL}vyWc`KzQ)HR zRd}m5&lm(<1U&PWxxbw{hb(-;1NKISfKwecO^5Pa_WTkS35XYhSc-JsMQ7Hz9j^e& z>hFO8y}pXXnLdU3%mMW||N?Bs;43bW0Jo4xy8b4BW{mol+? zXa^pGP;EO9l?Zz7mYa%*M%gdxc>Mys2+#u0#q73>HYUdZ$)ZuN*99L)8Gc)Q1{M74 zfyZS}lUOfwbp*hwdv&pN3JEq@+T0(0V9*U%T3LdwL-1-Buy2Mv-CT7PS-kP^{DVQU z7SMOQU^?0fda1 zSxQggL72);${awp2Zy#x%Zt}|GpE_88`XYzb@#TfYv!F#G#ne%i6=>H$`>d^ukAk{ zIS@Xz2mlMa!#;3-JOs+T?e9L}QE2%X04;?ViI`=x((_FFY9$D1<$F*Hjqyu5KBSPa zfW9#vprop-bf@e@_Drm=f5ynv2Mmlu1;~ILg0!_ml2moEDxz|{kyDtO(2GDoRDi>w zx$gJl>4LUWLVS67Y5tE>@#%L|Qsg%6pCynLuXlDW0goj#?((|I%)vy zY7G^SMNe$`s?uns0Rx{LBPM=mqZcdhV@@;hsW`5G3s}@G=?lPdL|j1m)r6#q6GTOY zD)9MsB-qhX+VGFS68#&>ix;Z=WB$H)uX;8|oslsG=?T7~V_>|p%<_ufsj-@BePm)o zX3P}Psx*YD{NPM)@6Zt5v1)VBvxY40eV#)8UItP__p77l%8)g$ z9OltTFg&tBo8(!|$Gx!bH$dY5trSPY5!ieIl@C{;?B_IM5_a}c@8%Z8?d1ar&*A6b zSfle02azjDgu4Lp0x!=Z?b1EtV0VjvJm zbX*n>8yYYC{&R|VEgqbm&mczaNrrKX9s{w zwSxEhhh5+g~@Otvwi_iVB(wH z)DF^>>cERo$0R$LzI*SMfWAP)-r>{-!5Il1G>9rr;tdR#?tNmSYESoRi{Lxs+?kW> z_JbCoDdmt(2J#Ea=UvF_b2b(1TgNi2U#W*wtljsRPXbx=TR)fQ6-Oj-(S9yvc7=-S zX-c?zr>NMnvN%2cUa@HjU5eu>l5$>e_U_2{(RMSzxn+OCY2Q511B^5)Dzk6qWo8UjpVAX`2)9Wvu89yR*oQq%oqdP2AgjWefcphr_vpcsW|*eR=x zO?Z_A0x`)xS*t_g-r;^s>YRWtCGxO(+1~E`ZGZ6Lj-z&$pOD1ifvQfsm?MQ~t%A_} zNJ>ghQU>dTIbA?sDmL8BZRfok0*qnCRuvd#IQ(e4?m4#fNey3AvoCXNMumw352He@ z=*G|~$@>f?XNe9WMf4ZG0Oca>RSU()A3iPfQsxw1d*nE@`ssHn0V4?K(IS4tuNai< zQQ$Ci*7TTvM*uoC?o=;@o4`W4JWD1OQm3J=4W|>7iDbxTj=Q4@+6P%^UcQQ%GvxJlNN7o+hI1#!$Vdd6!txf!Q!PNjQidQe zuNa3Ap2F8rEQ>sl>8aB4c5k8ASZT-(-{rS3s|r!~EX{RrY9uF78ZWil!#cM5b`Q*r zF~6pOJBd;VWDwybTWBM}BMM3e<22qAPU|G`#7&Pabj^&Q>h`9_8Q?E~sK)12mLbG> zSyx0f^-9R`?qg#A=}n)GWv;-%Vm-An+CYZjy0ars4S};F8UeN<(iXvso;jIMICZ_k zI3IM{0@vUWm;*6GVSr0C>J0iCEA35(97m6*BD9|f-7wA;4DWOGC^Aus=(i$)-$;c% z(yU?KP@GV&Ddf0IXubIO8m6eWakRT1rKD5y85=GEF0!-VI0dKdTREA~C=oa~PjfYS zmyLj?H{_~Gbdw1Q*x}>9SC-S8=l41THSIq1+CKf0CD~Hj3iS{v> zg-2IUPMVrie33dstAWs9*X4Zcdxw1L!o8N<=v6hrabf6jl zj{;%yzfx0fV-(O}9As0bm-9sr7+~~0CmJCxo*W&wJFF#u>0MdYMR=zC+FaA#z{kmW z%TYV%vk14gRto8S%go$DP$052b(}1Rq*k!ng^L1(yj0b&qM#p7;ds|kw6H9kKfIhM zL>8J$GiU%4D;VLOwqU!yl&zY{JM#)5+JM0TC@+e&KX|U@|e$}6W`g! zvU7)}K1XhcEt7{NLDVG(&xlfC3ByDvN+#8#82kHKvCclW4UgZ=TL*ENn$$P6238xX zUzx|R=l&7ELq08~eA*dM-f81;3amDx({od=IMmn2Xj4RWmQ_rao0GjsIL95FL&F_4ZAT&LepHyND)4JBy$V zQ>HtG=9(!0bioh^K@dLFl{py$j1{~m!8-7q!sRr7oJQ-GcOu=e@Irn#!{KOrsyb?J- zU9ZN~*6z+SAM^X@lK3C+b|veo;~s4mD#9c2$+i`kCGo}~OE}Rm`ea?_T;_TWHI?gi(+6**_$Y_fJ3}WmoCF%;o^aG9?qA;0bIn0%r!wmkC*yR->T@)lvYPz z&(S+rk#paH%&QIIljl?sl+x!YGV?Nqyx(o8zATcwFiEdX+Rc5N{X9Yq@PkKQVxqL_ zi^*9`vIu!m-{%aZalL-k9(8eqlcdM-^&V*ytG)1^-v3`e+t=ISSp?-Bm-%qZQWEk; z(ub_?S53dgCe&KixDU37Kqo75hdC~YjVv_mJcgmSI`p2dA1q3kzTP9pE?(>$x7`Uh z;q1*+#&8jcE24qfYOE>ZIX^F%xV^1~aIz^hTix{3q~Z3>xU(qs6-{UJDj}P3nw~pb zt$i!y#JY3;{*{k}5s%lg?$eUVoZb#DS{(a3Rn+3}ql>Bxy>dCF#s^8dfxo+|y0;l2 zAOH0QLe6uwRRe=fSEk9Za-q#NAgk*){x11473EAeG*Y22u8x-;p;KQAJ?I;mka7<5 zjYFOW$C-k|e9!AKS3Fs+C*y2x{_F9iBXRNQdj975z9f#-sdhEamUWRPzi)!|#(OIf zn={mZEkw#nS{{qQCgQLAyQM;O+u6ASH@EIMmz=(2EO?6&AIfB+$(OlY9w8p)S7%Nf zZ`ANC0yk#aw0gHbPTt696+vt5^jXkQjZG?wFmd{~@_*nyyY#xEd8_+$nlR@{GL;!_ zUZS@J7A|L8G`noaqMahve$W)xcCJw!%n%fx*z5LvR0vp3KguID1oQ1UK7oyd&|vN0 zUp!)#%<-_fH%>oGv_9IfTHV0dHk2%_?XCLdzJ<6b-zWQDzp(wGbhi2fY<%(%n^9lj zm*(sb{n%+j-f^{RCU-+Z!|G(-9h_n*T03|<6u}1g5>-z@KkZlXo%pG5uFUDX;o|%Y z_VP=9*Be%w!eA{roS9qP0;&t@6V5DYcwF|@*{%@;S?D)2p;RAA;VPv zto+2wZRurw3LmWQ`?I3N=$RS*ybDV)xX1gC?;T{(IiuZ=*PfGzM*Zs(ts3Wx4JNVq z6%P)7)4K80cuTYYdp{qAQyp?X;$}|78QtJM5r~=%3S_V%_`ktQmY~R-eA)Q@5dUIm zc)ra!$OUI>Rg8H;QLUA|8%+^9ITzk_V^_KXAZ>M_*Qz= z_bVLRusE**sM?IpRW;O1P4m#2w+l*IvAYvlfSB{q?Xj%s?eU5r64L2Sqf!MdelWp4 zSZd37aJa#Bt_VvA<*DshBTxJJIwqwE6YD}olM7t&HN^v|_e|+|q}ilw^n3ezxGZ{J zJ8ROhj+0Y{>Us3?@YEbTu%CLD7M;02Q{@Sy zfKm${o{e??OBy>8&!nNQ9%nmUk=@#Q5Fd4Eg!BnOO%x?fz%)8D(-w$M-LbI1G}P6x zf^tCkx3nZA#jQ2$3K#!`3kwSih6EsphRP4(69I)hFD-8)pg}Uor0zA;lzO3W`T;0^n zMD!6j^q+Lj&i0NRpB1S{9g>HDF)G0Q!u#sTujhKQTp!H>h?yN7l)tpKk+Jm`aB*px zn3#m^MGuC6@shjI=0_6*BoXGPuEq0wnKs>cs8>gxn9 zUFl<^wUf=X#g4gI5cQA~;8y+iZFqrfvOk;Z4xsM9`Ld;v9&T?ZW(y|dTtBsQ4Uh$*Ud8o}CHK>fvUgQ*HrvMd zoc;j;JC;`FEe6U;dcgs7d&tN3_L`lfhBhX!z=O0>GdeSbDr0yUeS&sEEq)rS0_)-U zfdtn8k!VCmzq+nQOIv$+SZ+Q)$cR%GF;bX^j|nJ3h!kwB;o>DDTv+smH-aI+hQBrA z6YeV~uWQUtz?K~^{;{(TU%!`0qwEj8y0yEAqvIIh79PwuEXAwZ=OBO;(RKK z_?1mc$g@3kkO0TvvQ%6j-RZe0ZX%~_+!@rOU+k4tath2ma_OmXuuQ!6V@@evkmC`n z`V3L{vI_= z03<$}-N5+aZndT1I@hE>frgG|q$U`e%}4B4+?sLR5C8=C7h6csH{mjbJQL8#(4hCY zri)zm+5E#HJa*R9vxem#X;P-=W(>-IJfDoA3aQ-uw=C7}U zLBiKJt&Fc2I|m9BG7mO4n;bXgz0e!3fixM6B11Z!t2C0_+>HeC^U!j}>dZ(Jb8!9b zAnCh?Wb2<}5*;wTY|<|I^>AftNv?SBEqK~ARp`gq<|BHY^_^(yrAm!Xoh2gY7&t#v z-H(5E-jw5fIqhzGerR*5v}I$1EYwy|!@A29cbNO9Y5(w$j)fA2nub=niUn3Cj7m`h z56`Q7OG^Sya;1oYL0vrouFNa?m9c2g9Jy_1b`Kr77H~|%SA9X@k`4SEc-7d;ZCFy$orcmB;lJ zC8Z9PKKyTgl!o^YUe*%Ei&9tQ&cJ}s$;F}lH51os!9f6?dFfw+u%$12It&BFB0q=B zC`8498B$@l4y@J%1o*iCsOLf43OuIbP|g0=Q;M0K&9O@S?E7%oRw#CVG_+)gzjA#B zTV>W`dTFbh4Oi?XbDg2Js8%%(GL8Q}B&%H=^H_S%4;lBHx2`dGm#!0Wb%`5RGS~Q! zA3x&JDlvPXe}7?53@yM7fc(Jauo_O>RYRkgMcrn%k?uL99DFR2h`u-X-aR>Dr$2r? zqmz_WTCBFf`V#Md#~&9%NU5LQv5lE0iT=l|wl*dPBcKmjB&KI$eS_TWyXP?!rawPU zirm}|l6A{#qhDYkQfNO`blnqgd9eja{^#Aog3dDD)$YzjiPU$XghWk!LV5GeQ7hAU zor~!eQaBLX!-8|>07Z3l85t!EPQN8K6QgNpiwdpTRC^nf;9ME`M8M=EJXWBWot~MISHD?0} zBJk@^Lk=eo128Boy4E5eDG z$W48GS_?xmMEFxuQ^AE%Tvp7%&W?nJ1`!zj>G$RyP`4%h{nrrRse(Z+E4=!;%yDc? z>;b3+M8Lh>Z8i9vmL=nwoX%!P^)fhdJh)YU>hl>PH`K(Mt z-4%FjSZf+PoI3;OuZ;7PGjzOtJ=f|-&;kX$2dNr;UhY4uKU{sAeM4#zS@b1RT7hao z>JJE#UCi^vQ&1>RRT74>esU@?7WU5J&Vg}>gj1n{jI|vofNahgq903jTcr{*5siGX z+k{osqeZ)noa@`yR<*R$w8+_$O=X?%ioA7P752^4+}qjf8TzeW<@RR#VQWBh04X6o zp5f&(350JhOu8>tK~CDwNn~Q+H(A)*(lA6sJ9t#d&ac1h;i%EI^{z{8gWIz)Ndv2? z(!1!o4Ao3vQ~F&O3Avx@Rv86tHPz5dkn3}m=?dDc zrU;B09Z@az*xUp;a{t&h!OrFbSNsJsNX7bWgi=pI1ukP#9~*M1%zkt-W5oLg?87{U zwYT0>KbNMM7)9-6sF|oxZtDt~K7I4j^g5Qc|0xlFGP<%;?BE5Fctwh?i$~YA6*>$c zoHnL8t!4q8qDs@Bl3(MIJ3i}y7#xCz$x_vC_EmvY!FlCvGTUe?+|fUS94YjbHy}%%b^_GkD%jFJ6sVF;LgvDkzlT6rePl*>`YH9f-yAVY7D)I z?X5NW+avdLA`j)ojD68oqTcX0Q3Uw~1vJ^xzP1X6qAvppES?Ad`pId^Stu(DAfwml zrlF$JO3#h)OZ=hlS%-R#{*1@L7)MmTjzJ%vBH2&Mh)N`~26XM$XH2$edC9CDTiHJ! ze9D`Lp-qF(0L%uxAcow5F9_DQkumgUk_ija#}JlbPZGt<)v| zjb77YGZ7Qo$a^K9J+x^7Z!sIy2B(Ai9dt;uToZ@TI~yu<=pBlHoZOa$iy|71jRz8T zG2d~1?-Tsujs5N5zP*97lkY3fgvf}jKFy}|x!S^K2-Fa&>g-pDNg%vMpgV&&!6svq z2-el?Y#+R2>;bxc2#r|(yx4N(7hP4 zDSfSg@6_V6zq3a!NTNF2@f&08hwzot)=vO1Zme#s{20<=9iRtLiEENEt)$oX;l4M6 z(EX-w-3QHeYg?MO#)19(-wK&My)eaZT%Z&-&Bi5gsDr-SyIM^YkkS)B_M;X17e8&E z2$gQM8V*kWdQWzCU3=*1QX-8kJ$hm1Mn3&+u^_xP6G-n%(nU2rxC*gJSY`_w8;Ok& zkCCvG8NHyB=Ox`}M{oE!&>InMf3}HX^x=^lFEf~KQ98WD{>Ds($cZCNHG=+q^Sv1; z#pqtKHdoh)=d*r{%pvQsGq-!T5iEN!D5qjy^u4Y84Sns`qmL~Bh))fTdN?BoCoI+QCdGKthqVum^6xY<+O{vZ6CW! z2}>DKIkh0xEpekG#+Y}ar$U8?Xbt|lO?iPE+$S%dP`$V*ITHXX17s)YMer|?gzeQ2csqwO znRQsy624dQa3WrLLN!X_=Wnc|NM^-RU^W%V^2v0F6w$neu<{?DRQM>y4Y5 zgYE}o|J&HumF;2{$~Sx}_K=9G7Po~I#w4PRusdbq=d8%=gnxlAf4v5L8(jqx$m+`^ zfmQ$G*EhG-ZStfA7tjap+m!%1II}-9jZ2@2(a1aap^aEx{SOo;ff)1rh7%Le_^6p`MH%G47^7T=K*8g7gXyv zTb}I_JzZ6gZeoW$59#9)@2%VwrpMzr%v05^)gR=^>l6nI&9W#k$1xA>rd!<)UyK5_2WnvcL9x!?8malnSXb1|A@#$* zArEP)E!A&udnh1f)qrpYG#j}nIbHQFWN7&VIFrmtV>(U1J(LiE{8!6kv%YG{KTmGz zeGzki8NC!F2QEjnx$98KjeEur!*E7fJG8w%^O5OOLPVEMHRGUkj>koZkgtVHXyQm3 ze{8`sdY>*y(E9WB0^^w5{j4r0rp|?{2vH=!7y)=Uanl?@^^{_mfDHM&=a8S%hJ6t_eN3rtpYOE#f-&>Q|WwjC1WOPHn_NghlG6t81nULIz!IHsW?{siA ziBhsLm~t_)`54`6Fag&2;$Ys;(5rLuM9(eD%-iJEK03Fc@5?vDx2tUyB9`lq0?2 z-|ssZ`r>%8$+2Hytvk5-cMyB`8jsfw&m~sK#W3RTvwyv3($1HG?#timEZS1*lAfVc zO&_bT6dQ4=#qL+@7M$V!*&yfQ;s%W^rPs^edbrNf@aM!M5J$bh%b zoS^^tc@)3-YJ68Z?Xge4QYT9Rx>Xz!=H=i#KlCUUfrJQ9T^m-8^e-Q>{yF>4M@KYM zVsWw7R;^F320^zVij;M>(O_c71Zi_Hh0Ee@=>OvFuY;;?_qbtH5mCAur5kAhk#6Zm zS{kHFY5^kM9nziB-73A12I-VWYLScby|`oV{XS>rnK?6O&YzAf_{Fup`3dzF#Lip( zor`8JBP-Cofb9WRbKx!m?-SD5cUSAjJOqtXIzwr<*3lTg>7wZWy~`+71KwmUy!@#o zvk8s&3mmNsdt~0fzYPq>@r)5qiswZEjW?YEb~F<{FhB4)Idz?Uo3=bx?eXF^G>Eoy zWX$CIwEYp(!ql`5XdeSU0m1s#SbcVLvlS4px4*jHW&#`i+wpIr1^|imdn_+F_onaK z4NO*$pB@#J*GYfSG*>mIDz_looCn*di|dE4*1+aQBaw}BCM|UboF0GU<23-WeSCN4 z1K_^$3U5NA!=0U7JwP+in7qZMJ0BEu1sW#M0(}Q6=)X%M6#$S53Wiw#zXAMdN3sNg zM+8{&XKxQ(p6&qskfdaA4tG|Ctj1|D-5LQ_1x$?h4cfN%_6L5*M29?;76t%}syA;G zrG#_IKvP~*dB}_w#+Z|yo)F*(+VcLQ=tjaH%G!oSGx3L)u*4`XETy4-A;kT4{K+(%ow0{ zI62nZ1wE#w`4#4nakwYcB zfI}B0V*r`hQH&bTOCAwX$^fFro(*6wTsJuhX1k(Wz&Gn)W5-X^A|kT9yqsMr1$d>P z^S6W1aw#+npsfRggUb!tNu1mPhk89j0nCWwInhqg!9v}7C1I0ZxYo1EV#{2H?!5)uw@X7GW$$Ab3pq(q^YpoE?epI=PX~`gl=#!5?uYH!wxc-x8gkBD2_sM_ zP9mVb29f2m0|XZ|428k)gC3W zg8oo*Gjp4zHeyC6re;0ga-y%3tUH3$YH;aC1%je}QODH$JAiPh*R%<{$e?$5DU z`aYhSHarHwpv8re;ww3ENugZprfBL1P35?!j7d<>+Kf#r_wQ@PfGlU z(c5+ip}_(_rh0nR;Yu2CCugUax(!ncV1ZFzUqJl+>asep^02Ho$TNgEpRhc}T6IHC zNiGm(L}5W+l)B5Lu>mH7Jn95Yio%Rt?91$+X$g{2)cFC9TpyVJmA(g|IAQ2uxkU_} zU?hvSvw(}LUv6K)sCFH)PJalqQD)P&9y~Q^k3g?kUlfyL*%i>Qs~ihLF$RUCz>0CA`mnABzYkU+S}r|l=k=JozZgsNvtE7H>Ggr_(i z51o|2=&ND~x|o|*QCn$6Ly%8;Z*S02rk%>&uiMu%ZN3+pLsES}Ck9H`DeA3Xp2D+W zWN(q2mCU@`b5e*j%uId=9M4o(S(&~tu;FfiuC%6>bCu%dHNbMiIbV@IB;}JC>SYHt z`4pSkV@3-_vW04o@*DHv=o-5z9HM?GA^A>a;d^OJq5*po#(~?*=%anExl*2%4S!PD z9LVE)ciyaE^jySA$FMnfJe^1zdLbVM$xx2pv(f*(w~!D&XK=nMrC?s?&sPs7zg?J> z0Fw(VnEiCqrr#RTz1HsK1~y_J*85kBi)FfJfuE@E+Z0k_VgS4wumyAbg=S|jAl(62 z6Qja)^>q-mw1%IW{4sV_-dCq!ND6GLPLI#UwuN1`vzy`6@?Tm?Vc-0(Q*Hp{lM)52 zP}a&ZkRCS(d?1BeQVR&!fLyn>fjKi=rdh62XBi8CotJvRbQ{dz`#`u-Q&U~vbQrAx z8w6JU_qMiy6+nmJG1tsW*Ld~)uyuJ%MoVtv(=1njapX0;^Jlc(nd@Y~wVJVi$?u02 zUd;7Aqq{4awl&|tK+=V!{2r+KeRzNO3!`{WXWrDGuS|Grc9{p(*VhcLmvwdA9xbha z>J7wJj14=TPe|%>5T9I)L9y5Ne#Iuo}oFic5JrP3h=Q`>n~gQf=_{&ticV(j>g2>Ga~e&5sXI>25B zv?+5l?>KTyO?7J;Gfsl2SsOtm`Zy|9+qX`;W}HL(?^G~>rbk@C z#qWmC&RjjySFwn)gzodoG9inI-SpB=lrb3WRKy!>E&#oQqKg?=xt>iM9ye3ikJ=Mj zY~5a8gf;;1AMm0pEiVb`Rmv0q!bH!X7|dX<;mg&P^9*}k z(#(FdF0?Xj5V+pB_5h6<9G?3@)+cZMlF0LHuuNK--~0ogCZ-%23JZq*vL}`{;9v1| zK<5;GFN_Fu4PzeS*)2A47W1uW2#f?*dMkb~mvc6;bv5(yvNo{e>7W4=Um*Wjy1jGo zrIew|tt6+Su&${J0NWIlhoLgKW}l-vTs9TYrOHAOCx21DqkhK%;Xi!^8u_V+C^QY*GPW;YSkOW08K4vv zf9UxjS_CbIDqX;F4U}V`)`7kF25fV`GaYZEerJZ!tAKifCQ}BRXB6L&3Okn21OJ&~ z@+BP3KQrIyen-X`AxXIlGJgLbF>!HFYCO^(GcmqWsT#Q#l<|5QKwJTwCkQ0$HlT?B zq#pblK=fZ03-}?Y^+mq`st#d2b(8AHd@KyiFZ@+zkAMGJQC=g}^F;$S6x zF;D%9E`(`WZLoDxRXK*3_b!<{U^W4{6SU2$q%TCl@rQh1g$N(5dWI?seIq|a0{`@! z7FHk5mogT!$?n8dN9Xsm4_rK;?q$$nza9k&N+wQwo5IS2*fPmpB42{6Pq%W?*K7 zxi|+^308BG-^h8|FSnrtdR?t^%+b;I=KKMo4L`697r;C*tOkdd@X6D}KzAuYOuU*3q}5rnv8)Fvn5(k4CJMCzx1S2 zBGGLP11}EmUBN@ohhC`a=%j}0B_Nc2=jki@*zk&PM*Oi#XqW7aKy5ufu?KKR1BIo8 zGnoSgTYw-DaHUc=B>VZ55iEuax`;_YeX;y}=w;yj&`-n6em|^7+_3A!q2_kp9Zr=Y zxTFYPUv9;7J7&$cgl2%r-o7-S(g0v|G?!cIV-gbH>Evn-?2tPK@qG%{Vo`*EwkIXe zyG8mbJJ7`9vkjELX&D?~$#Dn7QToy0{}v#d-y?h~6lJEkO_@_h|dh)&)US zj3ij%q=(DeC5moT@=M^b5newjhK}F@Sx#W)0c-yfg>H-#Lwd?b|BM$HUx&yUa+!9^ zm<9uta||L-AMYPPA~DxaVXp!d)Wz0wsl+6R$)9*eAXB6-Hd}=S;AAoIQ`NP7A*w;a z#(zYN0M?sFc$@+r*x%Ii$NF!82iJ##1>|5JUS6P3OhGNEkiH%f^0Y4)MDCjE>ec?( zE`Mk%Q#Lmx<+nAwT=zeG&lGt@rT|bQT%25HrQSO1fc3gD?wbIC}Wno5{UwL~{+ z8Q4V?1;5@GHGJnaoWk*FnXnp|3_RB&O#Ycfpf1*a&)%@2HUj%ZM^Il8tbPF-C<8v< z=Z1)vj}#Y}mR#uVl%Ix^VC!tE@IVaQ(msJ9I zgvoneYd%m%bV3*qbwWaylT#2=kcj~zNUYuXR$1F*&LRgP@~BtS%36=)7+7Hd|0-|# zE~aZTp*zhyIVU#yVEGdb^-h4DC`D|e=zb~lAjgw_d`>M6R+<+;b~!J_fa4qDJAvXR z!Ahi0S}9p4g`I@tPujJ01;t#t`nu6Lh)n}hkR|Z2i4#+}7WMcy0n(;APg+4iVIvJ0 z9sMaj4&O0?hJ*%<2;dy>JG|>`(j&xL!8E#8Eoss^0(C)ek&?K2RUlxyjAXvzDux7N zp<%rxCE3OH0LYs#Pa4Q6f%4)xw!!GF# zmmQo!h1X+*Gv5JWNjLvy>zzHO8^ykOsm00qKsINW0lTjdr@-+9!_S|ZZ)p`*#a6}; z4Z|**_-H}^{376M7n0R7VC?|#Q0|p6-QRCEpIg`ippbmvtA>4;`xRyVIYh0U8uMTX(Cb{ z_2E;L;5y`4qPyJZ<1@?CsM%EeP$#fJP~`>S)6}mId?i0^@8vb+vWjf2%@E&y6{#Ro zzMIS1h5)fmZ1Fr?A`{CWD35P?x|O#r?Vm7E?Bn8!I7=|ZD(6xVaG*{(jv-Eni!v-{ z!*cVQybQ*=(tJ*XC`HO(?{iboq`Hfww2+({;*C;_01$1kA8(6B;qy^Am{i^)^~-s( zpI`NUJfheO3q=XWLmtcJ0f+6`47xA;xFtM z3d{-OEuf>Drly9Yu?J?)8i&LHh{|CKX505%AyZ|*T(BrC($q=}w}_DoL%}=b@R%@6 zscf>YYbeA)I$UlKL@_tZ&*>=1!QlKHpHXr#jlzZ2)eoj9_kXTG`{>xoKQ0jI$)u(h z(xqo3_sbcf`he2aN_U%zlIo87=CP?+qwLPZg09-rIvOQ6!X9fwloKm^a8I71;GV_+ z?hh%@JzcNuXZQHcT{cXg$;sOxo7@G%Hx~5{-sc6f93V{ryP`G$y-PiYF7_b*e|SJ> zD9qtc`i}r29rF5U^JgTpHnA00`~Vh3hr4-3T1JWcL|CL5D01Z0`A#b-*rXZOaG6iQ zkcCq8u1*}_0Pm6We?35dP__`KP8UMTL*4D=tmSa)stTI1-x$cL`MXD}dwG?)KMZr9 zek1L54K{&HR>9!nTcrQF_f&Optc$Y~Nkk2w^O9Y8;R$;bn*8(H|NnDs|Chg#=LJxS z05H(ver#+lhbq#X*N%P$$}t8v*A7{2-_s85N6{YzKXaFnl_iKxY zdZX}0o88yPNfpOs&sEyXTYn#jFk`J$l@_+3m?74u|7O8cjf;O~*pbfXXsqO>1q@YF zv&Sd8o>?0~mby(r*$4(BRiF7?fv2$m4cCj8XX~N3U~nj!)2@I`M(G4BK!8PkRL!_Q@)4KFab_}j%tm9rDX_cNCbqA3dwmuUbMBcV`b?V z_FR_%jRu%)eR~Z^u>iD~kVYop{-DC%#^&qX#on3MHKv8FnHlhg zTJM^^n4)0L`uUae-l_)x^Zo)HggusCZug?6_-feT#|A(OANN*en^r&f-jT1`1A-c$hdr1j6@z1)y>q^Q zF~m1TFd*lXvoJSKb>&jk2&Dcq7|IxzK@kT?{4tDF*kq;~6BrIyHG(pPs`~(f^p^XT z+X28u0vCbr)!{ap>Te$yx;M3Ey!IkU8kJP(v|l!$IgokMllxmX-xGkb@XbySH+M_t zB+@B)<^S_V@m#%aZG7s0m0vMDZPFJtG&m$`=Bcv_R28uK17Y8`7w7#L)e21kaQ99P z4p^u_x|<9ipV3o1K$0EbOk+b_HH0o^1YjAdqysu?U{?MI6~jPofMV<9ch;|;9c*1|GMVGmmg*}y#1 z2QU-6^=1;16T>{g#pOCIbxS00Y=dSp5SFtv2Q3A{kG6I{rXM!9INU)1j8$eWHd1tc zC00vl$$_B`OZU0?sN~bkLuPU?p=3Fjt$qEHwr6=6lSgbF1$Gj{hd?$P5}(DF4Jr=N zLU-`>tEY1z`A^6O@0S9@)5BB5eZ9;@<~J5qj&n%FS~p!B7tw=$U2pFU_AaJLV39YV zUr!oL0Uwf`L z;r2y$p-I1ZySKlA9F57u_H%B2wz;)AjQN9W{mT&>+a95hnqc0B!4&W10vrGKP<)gQ z3E=bpqD}(rw`_q5n$p7yN_}``H|2H2=QIWP) za8+={FDIwd&!}{EuCWsAvIP9ce)fw3BhLRr= z{6Tp1NZpGMsGb3sA&PBzx!b`4sLA3kOP+kpG-C5P+#C^J$^zU8$&M!}ipyPTEl=C%Q5DeI%Iwz*+@Yw+joU_<8_V{5bC$z!-yXu-gYG)m!W!uyjC0 zbsimG5GaP^l)cBjFV+4|aCs&MaCdQc2@eoPLV|Md10gu2ti!|pvSY9_Z!>fAAQC)N zBU1GaG7m6vr2@${A+$v{7UtjQ@VACMFhNnn4qQ64cdI3y@9;U(T0Y@z3<| zY%04;*R{0l{{%moN)@kOH)NI6JU-YLF_Q$;a@;3Nr-rQ`(8WSL*JA-9TpYxGYw(>E zc6T7p(QNx|_;F#aBr;M5I7Z8aME6z80cZJ3*BmfJaFL4gOUIb1 zYiJ-*FTCb^j&lZRqrejl%S`5-@h9V_&7qgyo^(k7RLbPogw9w3sTRSe=8A3F@eP4Y zlN;T^`M|byu!%jHH08j}r(!nGvs@}@Z2^08XI{{`$x|?kjW~GawfO@uffb{o`gMmwy0N>CKiLblC=KJlfr@A8Y9v#;rd>>SN5o4UC=t}dHS zQ)Rq_7knEYh-Q;a`3;+G9(5c@Ve7GiyDzs7Qn4M%c{`O;^%fPC1VrT$g8EkK0=%Pg zoqA}0zf8wUBj^xA7Ao|mfR$%iU|{q8wSwghKrPE9`~kS;k`l%QCA~UvI{H&It0zuE zM)ApM&R3I+lK^{3i0)ids~k#MRs56dWD3YS0Ix@03`+-hN<+VE@M{7Pg{vE$s~gz1 z1L}0~LXDZ+Tgwo>_kK#C&!O18_Vl8N&qbr}?djEPa}c$IeOQUq*}4yCl}6)>Z*{PD zKHE4B*#AK(HKj%rBXWU=&#Be!y8p>cLg8;2zF&PVKFUdb?KTWL8tgfw#AIKfe+t-u zy(=3#)t0Mb0iEBJ7!2P4&D3RI!VQqqhf`nfl|-UD@gXiGtgizH(7dU&p70(8j;B#i zGr-;gXkZxmn{oifoios{QH!eVeI`ae3Y=rRg+eb5_CJCpifBRUKv9N@l!1Z1#^=Q?I=X95v#%X?97L=KaDkx}4(a)Gh+;B-*9Ihb?Y0{DDw!%;m@Qw@ zW$@)ln<_F0e5aduUZp5X-4F943`9OUJGtPQ6~{u<#C;9f#`%s(_keaO2r`=1AxBR( z#Cx+p{3&WOAR;3RsQL090O`T{(jS_?-iuxfke%pEzIZ<8zh}Xo=)EA9p@OtmS}EH~ zDo}J*kqUZ3EH3qwD1Cz-&;MuDdFtpAIbl|P|V7ldi6`)MBu}v%%vM6#1kc;0y z?_^EEZ7NCo+3;wFFFq{Z?r5o+;&yiEXPi1e@BTeEE)T;cO_melk*}&zvh`wHO_Uk&CetpByt%j zcxJWgGMpOt-!98DhmNuT&sW(}-XN)&&-+7gWS6_t{{gG;7v?eXp7%PIav+7Dz>Z6P z778j9oYqE={kLn|jp#Vv72su_uAeAwArdl}-%JW@8N+-j_TMhAj8sQX^$})eK^SLC zNK;c|Sw)ObOC?y9{mUuj&*tv#aotyEqRGQP+&|e>?b^1u;s2jspy8>*j6*_@x>juh((BhR$dxu$=X+iECxaqnT3!mF-d~zn-lHx^+32m|JjmAXV@mmi zxA1X`*&&!s_UW^#F%pdfqu|6Y({uBK-6zW8pZfd#XJPS3gp2lVq(I$;tNUTfvO%n5 z;}5L=&!3aBd?EYum(m_FhR=1f@0gsyKUbDwpSTIVv8=@f?}fI#| z3EQk8o9n{*=f-;oauHzH*3!26cV85 z?^8%X<-(~V2pmtx^T7Mz_rdH^y+DG(%fH3lCi9u|iK)q(q~gk`iFq|#4Es9seebrBz;5-`fL`Ozhb-^$mw2TC@cO~jsy_Qr4;SF`s&E@Q$G z54=q5Lwd&{Ph8x^wjWFj8~*x>w3^6k5APY({9><4$u}9+>Xh@}4SAgY-3zI*wE>Xt zNM-LijVZsvLb?L}KFn?brmuzYRx{yg1t!dSZQBjG{~WySh_u4w2HROaqwfL0=qx8D zgADyxx7`We*6iG1zsT(Yqro+i{P>~TH>{ouSbcGM5unu2+0ND(0TW7OY(L}UpY?-# z(-nnz>4L71gY;SY=;z-VP<^wq;&J?;Kx{9E+2|t%kb(0TQ$J$HN4pKI=!KHa{nv<1DFw3z<; zl#`1Kv@QpSW%j)Gn-jOzf1g!~cIS{wRXyGYGvP3+c3oBBTWsgpF439wAHTmY>02oJ z@OdG@R84?Lj{EM65jXZrafan3{nxtqTFodQ4i}Jgg4Kmged^*>M0eFBgVt^9imTb5 zrTWP;pQfwSat`$v-!XfcDmq@^*>eE_9sU=x-RQ9<^-LqYV&}?gIPfrx9BA;3&52Dy zUIn?c`m6TY(*CFT@yG%#&u{sd3e-D(2UmAzPpzky@)4#UUaMAM(+iL3ey0v}FUwr| z;Z&^(S<(-mI}k2c7M4|vdR+@t?-R+6hDLg4wXR4Dc0;m8x3f*u6YYCy3e2_s zbij=_U}mt~RG46!36db{$%VuTotez-7uZ9K*QEI=FEj!{7cbT3cA{e>g|H9(8rt>& z(eTgZldT;l;+GrDk>_fNkp(6i6P2CoTU}H2(FlzAMM@Kyi@nC%+SCb@iZ!AQW%YS5 z4Yln)6%X;SHWU*h3H2l?c3 zchEpJU=~C%zk|JKSNiX(BGT9Zr?`1G5fxUtA(t#NBB8ASk0GI&M?E_c+1xrTX=>vo z+i-^1p?fi8?a;=*NaG2SCD(dFlU$ys2hTS0d4gBDBdwY6%lwf#7d^4-M);|ULEzt*(96NOW? zX|zgek?-aS>#f;pFf0ex7OE7Y=xeo$X=AOd7q^j1*T?7llfiEJ-^Yu0|1=8vYIZi6 zlXdh@`WodZg+7@A;~)bM112c;!zC~f=rOF8)qt;kzv+u64bDfu>3DZHCVs6OoCA?T zZ?szq@lp0MKeN0#HDrd3D|bNd&|K2XHVQ*!UvsOrh<)J|tP|91LKf5T6-c59y{ZYuwvFEL^azw>X zu68Thqi(uM8eKy|F3i>{ErZ1UJG_?$^IK)E|B1kcqK3MO%Xj$3WgOzTu4fdBA36UG z!BQIV_hGd$VYk3THptbQPCmt<>-4bJq7>>j(Cyy$b10W=d!N&4Jiqii8pCp3iCQ38 z*u2DJ1C`KUZdjM}<6f9T>7SQ%Cw3N??41btAY%Pl5kPBmV^#NN5!EwB6KFB0fIB$B z<~UBNof3CXEvsc|Qi%xj%3N6ur>>RNG#Iixhn%Wi)R(lGNc)7<4dAb@A7k?TlM{U& zzZxcRGPMwrGyB4}7=-Xoh4Ks+cULPtk%p~79Y42s>KhO94tb++eox@Q2p5eM(q>Ul zsFSmqsA;yFnW&V(dlnoCQ4{zwC4RYtnV7`8T4?Q*%tL?3!h(TNypoNW(8lw1T`6g7 zF}PEE=7a|4d+7AlH1!kM8J8nraXK3T62HYOT_|r6jgHr#%>oILrSzo8 zGDVfkr_I?-&FTWd2fpqvprM=Oih9!e!n?)p4#pS3l%Mo!^vip&);NMdObwOf?#mr4 zWsIcN2047~xeDdD0_|+3?v^pOt%e0B_dhw-P*z$aYLBGnS;Y_bV-B6kd7U?nroznR zCxoB^%8S*jv{<8M88hz_A3i`6=ulC{I$EWS;cmTtqd6V$6#o2eXiZa`)^l=}%y!gQ zfV`B4f@rhDcf5^&BOO~|)++SPc(?X7Il|y@ASiuM+uUvpGIHFNCDM;vmif4#ryO!v>gc%FY z${F(`jua8=-Vl7b{$za531>>Pgb7!ofQkdp0p)!=ZAJJPVq4QAJw+{NYEQY>6e{l zHUR-y^Cb-$CI3g&9>*j99!IzhJ01QW9QM6psLEpLfBsteUl*nFhLr9mNij0}oKETg zXdsI7(Sr{*Iek3!sV~Xj=Cm07pTEA8hfMYpUZ?ms%YfeWw;o-p|8f$*f8WrM%V zKc2Oiz{_$rdbD%6AfFn=QY8o+eB1dKS|La2%48D9}V-$>$O1K*HU|GTed_Z;h4p-aNOtA{O<&R{r*kgHsQ&psNHt7D%4_25 zP(*se_^FSk5ZF`gpY%YJf7yuU@o+gYnRs7o!|!L6BZSO`-`i`s-*ZvZPY=~(B}M}s zkZbVy!1Ot>`yY*ao_T1oVFD(YLWW-;2D)40#X}Kf$GYDCC~bg}!dY7|QOeeQ9r3yT zH27`-DI4z&dH5B7>9gdh0+lr4R~=r-R!Z;|(o#7Dy;?&Z8lk3?({0(Pcnvd`m9*gx z?*}4SJq;SiWQSl4MP>X#c-QhZfsE%_EZ5SK9g6xdHzwnZq)-hDA&Zd(+@@S4-$0!c z$-JBeSSW$+aPqg3!OrS;RFI~DgTmi@2bb=i7Y`GGAE z@$UE>-L{_{X*ikDP}+>=7J;4Qo9(U35R;*-L?Zk7U-WWLNhBc#nVXIIcc6w4Y;AUz_z+1nhN=U=;mgWgv5(vkA zh#pCkLZ>yfc3RzDExr+Y{9)19mv9cV3m`cQAvf0&I+AKoEqu}&{A80w-XFg!%JSPe zf+BkFbruJ#_XJwJAW3l#wB|^=i0Hrv&OXPwL|bqNN+n>Hr0wliLJFD=JMit#j<5TF zXys{dcnOb^yFhRkIfDF8V8}qsuTCk5L*y+S?P(-~;n6^O-PUTn)y2p20V0-EjSd8* z*DZ2rbhtoz`6lUHcLTCG6*T_CWK*r)moeNn#cGH*Ch50!d zFLN|pbf#qytzZxrU6QeyDzj8pjs^P0oVK}83Pca;EP^<=!JiC?Wj5@F3)bld)Cxbj z(naNbY~O02CHWYQ(#NAh$!a9RC|7jD-*PPDp~!B{GnTvU!`nXzf0kU`3Wb}`N~E75 zU{vM_az*5PgIb700R6=l!`EzCBCXzLbxob+Zw$UfoJ!x2h~0dOvd_)n3JOI^WP`yT zws6r1wgrgO=6IC;xzbHD9#T~H>MJnuN|mZ3<%+;~x4}grRSa=u$OAPi| zDrSA-xs#cjJ}uM61&YxVX4G>L%87&3Kg&xVmy(Y4zSp z&4)Ah7HYY+)VK0$R5G!wuBlymJJ1_h>2$ulsQPAO0@Lw6&v`afkUU$={DUd9y2DQ8 zv(IpZTHFoc&<5Dp<&Lav4-ljofxzBbP`t3PM7l3Gu?KnOS9G5(JZve~$J$%n9~h}E71VmU zHzvlkQF{So8;<*O%7?Pm_XZ1b#4ZF1w1MXZ#hE1?RLlOaUz`t#xLh?_75Uu4LP?b- zxek;3<7XZlE|!-Fy!0)F6F@{)?&41h^{%hmMRa5)qkkQ~oRYp{KR@=~V<=^x;aWf8 zwPGjmH~ofdn7oWTOu-RzK@4T1}w;j}If6E9bllc<^NfvASeS&tC2FZzE<|KD|$dlnP^X4o$ z^Vpq#Q6lL2D&CpipPMpk!TR>s*rNvfWtPYkj=2aj9y21rKpSzP2XENu^1SqrWcP%jB*Z=8Bvi3UZEkUe-2`)rgo8<4c3day11Oq|b4@ zx4lR)sG02Q2O1(TovK`S92^{JhoYyAyNK8IXWIH9vA?X=f1x^^?qRY%pP5`zHbE*i zXi9)!eO| z$U(WB0fntAbWU)#Ds^}%pc@&s0Zm|O0)L2^Mbzw4@V10dZxq_}aO-dnc0x>1>_~sJ z(AH>FH~NX~BMml9S)nK6!Zgc~`ES9U{e}o>8&zAw#!zRr?3pRa+kOq&FYUK&H*bJ% zlZ!>src!;za49Z)I}SP`HDx%wO6@za>oh~z!gZ~xKB8_IJAx8a^yAtDv#nx)Ubx(q zlEG|mJ_qgM>?qDbp!`$zBb=w~5Aunnm8DlcOD+qxdG#ehq&q#c2m%9i#X5rBbn|@3 zmY>0TSZ`A6EVOPDwzlZ}Vxn)5xwC#&(;Dh3NUmdMsm`aip}l7?;nRhQI$ERh+NG=K z)5Rn@Mw@1M@01eK{{3aHENJT&8liZd#Wv=eNo+|@%<&1y>Kr~_N=F}Q&qsQpn>IvG zA|omM{i2PIcaaCS;Xppol~+rFP%1Cn*VlLPdb_jY`9*xzt-7FwVJxQPt-!Yq4n)D7 zt@aAvt+JuPs*wdvx4ly6n&M0lp7fK!nd0{9pDu{xi`M?U=43L|Bjqkvm)ZLbbqq9z zV-pkwuj(}uG%bo`AlWjAT+Jo(ycO6!jNNH;wnzrAiJ6Gw`~$f423{T(^60m!yK-nZ zDDZ3M({d;4o8{#dsEmIX2Ds~MI%I0ULUTttPQ@sy;C{dF|x4W*q;W)h6fU%43;`TqF{QP$nK z+!cpuXTmtWF7P>z(N8#V6QQwxU6eB{M=s~dzVkuh5yl>y#r#%@)7!HbaJyv&u;(;g zjNPAzW=f=%8`u)r#f52SHU8f3zlDx~X<{`&VP zBl-qBtD!oZcai7XC1iTuib4tGRU;i9F6AJQy-p?FuT?D}Qv=tl3XY($x9*C;Zq&xP zq=3pd+#mu;#2JfRCx{>>O#4f`sg%o~28*>8kCyCeXmdVzl4q1~3H%b|v0C~$Leny5 zYxBkg!r3B?SAm(h@ECc2QP%n zzC=a&eAzqTp$5BIAPGnP9bcR-GZGD1@OTteo?TDUB>$OuLL2Md7W=d51>*k-pN(?y9=;7+6$x`6{;^LI1 z)EL3P3}nDVbW()@`+=n7+n3dcxURoEJ@oahoL%cmMZ2_Nb|t)tuERmECm_)_7NuX7SuyDnK&`?#qqcLevRpv&08N`=!~wUV4I+y6@dFQFK_; z*NdaoR$I4AolL>BuNSq|IezFJ>%8`QnCQr>s96aKAXi9t3w!e?kqu`FODj2T{;(1f z^1NJ`EQv=f)N7)E6B4Xf>NZvsG;4$WamvnfuKr#YW%YMKD~&F!d%7*<^BYkcWpspN zHb)8?Sb^AHe3`l{@QCn{j$$`ZlowEJ>s zhjc1$NwIKAfAGT33Vpfof+6Se{0(VIooQ5cL6!Tni5rVKrq-{Vf$^!5c^)7oKK!m? zMQj1axk#{s13QTQY^(P*50>%L(K;%cen=;kNC=CXw$Gt z;587&8g1`xZcg_sxMw?bn@+Ye5fKSdL}g-q1X&qaRabL!}X3W3*74iVi%A6SH= zI;7SwHrO%?hE%05#S2*i96OCg*Bwop!z)I(`N$n{9T{I$mRzXwNZ<;MGyc)z4eFFt z*bDudfT-scqdM>M7u5TXb?TjHZ$4tVN9vLAHnv9;H+?z!NH!xGcT}ZZkxjEYHzxMQ z{cUZK*g#g{V+16r85%bjRuzEJv6cie8g|n_f|40_YcpKa8X92ONMac7_ za%l;bkVaM@-c$=awLV34u|1OK7v-XBA5R=i-u@n<#3wiygicCyDVM1pEj#z~!`NY` zAu}T#B`f0@4P^$kzOA@-yX|8#iD4Nb*3mV|@E_57k16UPvz$42fv?KD;$c6Y+FG7mgUrtAis9GmN zS1^R{)G<5!E?gZaI5ULx0mU0c&w~DtKiWNMm4d&PudetxrENw9RaonD_2&CeKL+56 zMT?AxX?<@>6GC{PMn&56w4vV29s(hIXU;}>`q5^z0C0+&A{tyB5MNQl9r}sZ*sEfq zpR~6(Cn!Im&)nMvU&9OZc-YB_LxZIvC@-XTtgL)V_AII?h0&cvkB{yp0tMbJj0Ygn2M14d^}!k52OO-03c{*}^)x-^DOC zay(5|#fnVl=c1s-m&n(T<;rBxc65p3dJ?Y7_=ZRan_T%c%(DA5Tja@AG4N2&A3B@ZA-jvPI{hroI5(SGSHYr>Qq9MNU$% zv(69ubF(D_e#FXsO;91H3rQ2C^nz*G-)?8k??^8jF}2PV!O0#Mp)geZpy~EpY!AW4 z-NYN#&^1U&yUZ0B9Z0XGt7}4fxxM=6hUwCRyz@HF;>+)@tYE;|5UKZWDs{WR1|$Ty zx;Hazmh2Sjea9jzq@h%>u2$kn2`a=l14X+a|1xQ?-Io9$L;&<&%byBez|Md(oDUX3 z!_sbVOd{fx3U>cF8q5CI&%j|UFDnCXNZa*sYehrrrfeQs(?V_JG)g}OrkkOqWo0+F zH?R|@jmWP)G5_;fa*#R478_oN`~1<_=ZU+j`o7)h~D{oHS$2&K9AN)`C~B7#X>!slP5~MbH%Dp|`No z00z8dssF&5`c!nH># z4D|r{BwIu>x~FRN(6Qf7#68LNm}=ws>3QK(cB${ZK}e&P9gYw8i!m*E%eu!_#|K*X z^W#1-G27WKcSKr}$pB2{P2%*CR;3Q@044JorAATm@wJ4kP+}?JKgSe+cl;hcpUl6*admg-{I%+T4Y0>wLvI)f$?-C)FMRq0ogQQ% z$lXC9=In245@(;yvX{}|FIAho{_OCZ(=fsHU^D{Fxsog@Cc2XhTSM%{kiz7R2TRg= z#5yw@^O+#zZ38iseY1*496jCUF4g(=ZA8$wjas7k%JFoY!}tlbduOY|j%!wq<2GU$ zL=vKD1h*`?ue9b6DY5HBe}?d%J(fWPt>^ZDo^uR4O?b+g@q7Sz3k5nZ#?1va+uq#Y zkYq&L`9WR|^abhS;bUKapiNAun)y?zT==4Do%!F#NefDHZ5hvf}+yMrs~@_s?~$(cz6BsgM9G_?t1#IcyG#5+3)igu@J*$Hz{JY@re zOk(1lpD8M_apkXGCTP>5tQ9*7?tDMOU`*ipy2{I|t@Y^W;^fhm6JKWLbA?FsBE^h^ zWzike9R|wc=3WJIDDgm_M#@X;Bp_GxI>`u~G@ak!>C)d`MQ0({SB zEoiv8Vrz#)q(>QYRfaNeoqJ7AmsV1noX_b;^qz}Z$w8l49CC=Brsecx_e6{%7=>tq5ov-@K zr03Ji3-_ril*!wxy|x0mq^9Qm9*s3>p^M29HDYr=eo>5r>6EcN$8E}=bM@AGvx<3}*tz0nUv_yiq)?ymI+;~{!$Y@Ii%R1olWP>77AgM*_Me)trg zJx6NaMyaHw&&*gzg41aYJAUc0mEpF2{t=4(S0;D{S7*}$*+&Mz16|8%j6ofFX&|x@ z&tXC&gA6|^5c+d-0-BBh$fYjm1F*;qm7jM6z9IKM#jeO~ZJm#y6n_x0PDX+Q1AJ#g z8O4SQD=kmk$>QidDr&J${?gGTk6j)*jUtBIXg=S;?Kzxjp+TkuQ ze+twQ)_YQb;qZdck+y5uxbY1N120-g1ZtD(9sxWO(14KnQ(fmfyh-1z59c=mhjkjG z`09q&J=MpTV_hcFU903oJk#|2zIW+l>f+vlacN~!8jUnqZpsHy#bhAP{@t*Gaz_21 zqrKBVy)ZdrUse}FR6bbyD~f_FmQ_=2m;ApyEh}u%&dSH3vkOw%N+CRQS6*@;kB=nq z8}|d{$s*i0x8Zg9X4+eNrQR7~9|YqK#-NI`wk$^P!v9TBoLrpehs$nfP_w(M=RzzK z5sTKH))~vpOsa*)i1dg&FLkyqP%u!KnA-^m-Fl60s6I8iT)D7#f_&r^s_l5v3lb+A z4gH{v(ebfkLl1VmC17$UbsCu{Dt_32(Rx_y^`1H9ZftGHVt^(%F6qYrF_Ied5gD=L znxTJv#- zHI&=>$_^B%p52dJKpUmBwEhVH=mEmm*w~yN$YVycy9B^Q(T<=;;8%D@hoIiA-E920%F%gVj_F;m)Yud=MQK6vz{JF( z2ZIY78BW<4crCW`nh4RCSE~Gp)vjcr_OHuR5urck5(W+J*(!H;OEX@(#Wc6Jl9H3| z?v=dv&}Li-E^Megxv2f$$84&@Ir9i@rWYOO*Kt{)4P$cr9A!`9GH^$mX z=nsz`2dRhW`$^{SnX@G)KVLnPbk=!^Ovnvg$Ol9b78VwY7oP#WNfqHmZ-6fF(xllL zTb%1i{GXC5Ya~bflAp7Oa9*Sz3@FB?%9=iIK3aQ#+|w=5xMcVL6!+CpQHEc)3JORI z5=u*Vw}6CniAZ-#cgWD)F?1s#NP~1K-3W+)Gz=l#Fy!~(FTPm!u66&p_s(Cl79un6 z`#$IFv-dgsJS3{E<-U+P8g~HrdpgzzXFy`y-O+7!kND)wjNnlepMwsmfVn5U+VtZ6 z0X;J}-g+E!L8YJglX_`K@Kik{TA&qv-oUNzzF2ET`@9^m2wQ5@(d7Kfs4&ED@oe|sQq9@BhC5lWVj^8!;X=bj^({z9NG4rBpH7b*fbw5a(Xt(&(SP6j3bIF^ zV9%jw{r&5sc0%t>yA^U0J*B6*n4G2Ka;IBk7Z+9zd!?TK_&zgHf8GWw{-B)#%=#DxHzWm)2EO0I~YxRX;|7)F& zwD95&<*B(j_tqUPnK3+8CASn^*RlrS^r6-rb@CO>=an~LyD~D|&$iY&La_FrG4&h5 zJR{T@BVf$j9`@tsPcXot>QM8Fo4RUM&r?JCflPS$v$SK3;!D|oe`0z#=vuD_C9UQM z*Jc05;DHmlwa~4y+xl5-HC4**aGersH?%qSqw0>pc{dHRRzNLSZ!^@C;$6{-aa3Eo z&~sc;-1fMi1rG)%J}D|G_J=eC-%4TjWD0u-FUya^FHXLii0Ip8sE^)wcK1_yyK5}9 zwF*9m9pM34KG< zT}m9MD-Ert%E3U1yUQeVUq}VwneeT9{sjb_n-hNLK4Iv_m-2pd_Cl8+6?b>+5hE`b zZoH1&-)&Ehz!o6Q(t4Y_7zoJq3v{felr%@~VsphAJLvrqkhTv0S98KBZZte*qa)0* zSRpY7oguF%7LydLN*L^ZtG_w`>%4w?}KbQ*POIY6H&!b$}|&B z0Jt_ft3vI_#MhfQrb5%dW|@zs<=X$Gj=HK)r)Jc(?v4aRd!7qkETV1|an1(T*Dl%)h=sSVZlN(p}t>AO?a|1344A;KY;{a9?b-rgYg98C$QwE|E2!;wtEtg{yroYe1h z-O4~zf3-{ccB+4Sdpr8#azOv8Rk!5IJf|Z6UxjObW1qT4Y`f20TUXa{QhRa(lzW${ z2N!kSe|<_ee63=rH8nZ?ow|C2^!VIQI;$qvIV)C{CM`X+-`=37x_U?t`1}KYI6gaB zt}cd5h$=%Kg`z(A^74yz;?7GNcz$7ipPksb;NJIFnj0||N6llWM;uODBU@VxXKHgT zqN1Q4{Ba1FU6a9{?xCTi^}@kqRAZx0YZcuZR#_L;%9BHpk-&rqB&Os?FN@ehdfqByY#l6lBlA~Apw{s6(x$gctkcnbs$QY_nV%&i6IPizVU^X& z0wNsg$Mt;(gLyKzlrSAw1fK)3n#aeF8n=2PO1D~(iSSQ(d7tuLT3LR%i6#z<
    w+ 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

    e(nHwu~E83FoG*Y-~r_zF)9t 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 QAApz48%2q7F$4eq06M)Lxc~qF literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioClosing.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioClosing.java new file mode 100644 index 000000000..aed7054c3 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioClosing.java @@ -0,0 +1,269 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.LineBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.data.invoice.InvoiceNotesBlock; +import com.demcha.compose.document.templates.data.invoice.InvoicePaymentBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceTotalsBlock; + +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANK_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANK_PIPE_OFFSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANK_ROW_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANK_VALUE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANK_VALUE_OFFSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANNER_CONTENT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANNER_DISC_ICON_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANNER_DISC_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANNER_DUE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANNER_FLOW_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANNER_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANNER_SIGN_OFF; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANNER_TEXT_OFFSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.CLOSING_DIVIDER_INSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.CLOSING_LEFT_WEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.HAIRLINE_QUIET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.INK_SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.LINE_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.NOTE_TEXT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAGE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAGE_MARGIN_LEFT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAGE_MARGIN_RIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PANEL_HIGHLIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAPER; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SECTION_HEADING_OFFSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SMALL_BOLD; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TABLE_TO_TOTALS; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TOTALS_AMOUNT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TOTALS_LABEL_INSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TOTALS_ROW_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TOTALS_TO_RULE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TOTALS_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TOTAL_AMOUNT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TOTAL_DUE_AMOUNT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TOTAL_DUE_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TOTAL_DUE_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TOTAL_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TRACK_TOTAL_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.leading; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.money; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioWidgets.disc; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioWidgets.paragraph; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioWidgets.sectionHead; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioWidgets.tracked; + +/** + * What closes the sheet: the totals stack, the notes and payment pair, and + * the sign-off band. + */ +final class LumaStudioClosing { + + private LumaStudioClosing() { + } + + // -- totals ---------------------------------------------------------- + + /** + * The totals stack, right-aligned by its own left margin, closing on the + * filled total-due band. + */ + static void renderTotals(SectionBuilder section, InvoiceTotalsBlock totals, + String currencySymbol) { + section.name("Totals") + .keepTogether() + .spacing(0) + .margin(new DocumentInsets( + TABLE_TO_TOTALS, 0, 0, CONTENT_WIDTH - TOTALS_WIDTH)); + for (InvoiceTotalsBlock.Row row : totals.rows()) { + totalsRow(section, row.label(), money(currencySymbol, row.amount()), false); + } + totalsRow(section, totals.totalLabel(), + money(currencySymbol, totals.totalAmount()), true); + } + + private static void totalsRow(SectionBuilder section, String label, String amount, + boolean emphasised) { + section.addContainer(container -> { + container.name(emphasised ? "TotalDueBand" : "TotalsRow") + .rectangle(TOTALS_WIDTH, emphasised ? TOTAL_DUE_HEIGHT : TOTALS_ROW_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .position(tracked("TotalsLabel", label, + emphasised ? TOTAL_DUE_LABEL : TOTAL_LABEL, + TRACK_TOTAL_LABEL, + emphasised ? PANEL_HIGHLIGHT : PAPER), + TOTALS_LABEL_INSET, 0, LayerAlign.CENTER_LEFT) + .position(paragraph(amount, + emphasised ? TOTAL_DUE_AMOUNT : TOTAL_AMOUNT, + TextAlign.RIGHT), + -TOTALS_AMOUNT_INSET, 0, LayerAlign.CENTER_RIGHT); + if (emphasised) { + container.fillColor(PANEL_HIGHLIGHT) + .margin(new DocumentInsets(LINE_PITCH * 0.23, 0, 0, 0)); + } + }); + } + + /** The hairline that closes the totals and opens the pair below. */ + static void renderFooterRule(LineBuilder line) { + line.name("FooterRule") + .horizontal(CONTENT_WIDTH) + .thickness(RULE_THICKNESS) + .color(HAIRLINE) + .margin(new DocumentInsets(TOTALS_TO_RULE, 0, 0, 0)); + } + + // -- notes and payment ----------------------------------------------- + + /** The notes column: the disc heading, then the paragraphs under it. */ + static void renderNotes(SectionBuilder section, InvoiceNotesBlock notes) { + section.name("Notes").keepTogether().spacing(0); + sectionHead(section, LumaStudioIcons.NOTES, notes.heading(), + CONTENT_WIDTH * CLOSING_LEFT_WEIGHT); + SectionBuilder body = new SectionBuilder() + .name("NotesBody") + .spacing(LINE_PITCH * 0.75) + .padding(new DocumentInsets(0, 0, 0, SECTION_HEADING_OFFSET)) + .margin(new DocumentInsets(LINE_PITCH * 0.18, 0, 0, 0)); + for (String note : notes.paragraphs()) { + body.addParagraph(p -> p + .text(note) + .textStyle(NOTE_TEXT) + .lineSpacing(leading(LINE_PITCH * 0.91, NOTE_TEXT)) + .margin(DocumentInsets.zero())); + } + section.add(body.build()); + } + + /** + * The payment column: the disc heading, the instruction, who is paid, and + * the bank fields as label / pipe / value on one axis. + * + *

    The divider between the two columns is this column's own left + * border, so it takes its height from what this column holds.

    + */ + static void renderPayment(SectionBuilder section, InvoicePaymentBlock payment) { + section.name("PaymentDetails") + .keepTogether() + .spacing(0) + .accentLeft(HAIRLINE_QUIET, RULE_THICKNESS) + .padding(new DocumentInsets(0, 0, 0, CLOSING_DIVIDER_INSET)); + double blockWidth = CONTENT_WIDTH * (1.0 - CLOSING_LEFT_WEIGHT) - CLOSING_DIVIDER_INSET; + sectionHead(section, LumaStudioIcons.BANK, payment.heading(), blockWidth); + + SectionBuilder body = new SectionBuilder() + .name("PaymentBody") + .spacing(0) + .padding(new DocumentInsets(0, 0, 0, SECTION_HEADING_OFFSET)) + .margin(new DocumentInsets(LINE_PITCH * 0.18, 0, 0, 0)); + body.addParagraph(p -> p + .name("PaymentInstruction") + .text(payment.instruction()) + .textStyle(NOTE_TEXT) + .lineSpacing(0) + .margin(DocumentInsets.zero())) + .addParagraph(p -> p + .name("AccountHolder") + .text(payment.accountHolder()) + .textStyle(SMALL_BOLD) + .lineSpacing(0) + .margin(new DocumentInsets( + LINE_PITCH * 0.45, 0, LINE_PITCH * 0.55, 0))); + + double fieldWidth = blockWidth - SECTION_HEADING_OFFSET; + for (InvoicePaymentBlock.Field field : payment.fields()) { + body.addContainer(container -> container + .name("PaymentField") + .rectangle(fieldWidth, BANK_ROW_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(paragraph(field.label(), BANK_LABEL, TextAlign.LEFT)) + .position(pipe(), BANK_PIPE_OFFSET, 0, LayerAlign.CENTER_LEFT) + .position(paragraph(field.value(), BANK_VALUE, TextAlign.LEFT), + BANK_VALUE_OFFSET, 0, LayerAlign.CENTER_LEFT)); + } + section.add(body.build()); + } + + private static DocumentNode pipe() { + return new LineBuilder() + .name("BankPipe") + .vertical(BANK_ROW_HEIGHT * 0.66) + .thickness(0.8) + .color(ACCENT) + .margin(DocumentInsets.zero()) + .build(); + } + + // -- the closing band ------------------------------------------------ + + /** + * The sign-off band: the dark strip, the heart on its disc, and the two + * closing lines. + * + *

    The strip is drawn by this block rather than left to the page + * background that closes every page. On a one-page invoice the two + * coincide exactly — the flow ends at the foot, so the block lands on the + * background band and nothing about the sheet changes. On a longer one the + * flow ends wherever the closing blocks end, and a block that relied on the + * background would set white words on pale paper. Carrying its own ground + * is what makes the sign-off legible on whatever page it lands.

    + * + *

    The strip bleeds to both paper edges through negative side margins, + * and the ground is a layer rather than the container's fill: a container's + * own fill is dropped under a large negative margin. The block's height in + * the flow is almost nothing — it reaches down into the margin the page + * reserves for the band instead of pushing the flow.

    + * + *

    It is flow content only because footer chrome carries text today: one + * size and one colour across three slots, and no glyph, where this band + * needs two faces and a disc. Once a footer zone can hold a node, the + * sign-off belongs in one — pinned to the foot of the last page, where the + * design draws it — and this block and its strip go away.

    + */ + static void renderBanner(SectionBuilder section, InvoicePaymentBlock payment) { + section.name("ClosingBanner").keepTogether().spacing(0); + SectionBuilder lines = new SectionBuilder().name("BannerLines").spacing(0); + lines.addParagraph(p -> p + .name("SignOff") + .text(payment.signOff()) + .textStyle(BANNER_SIGN_OFF) + .lineSpacing(0) + .margin(DocumentInsets.zero())) + .addParagraph(p -> p + .name("DueNotice") + .text(payment.dueNotice()) + .textStyle(BANNER_DUE) + .lineSpacing(0) + .margin(new DocumentInsets(LINE_PITCH * 0.25, 0, 0, 0))); + section.addContainer(container -> container + .name("BannerContent") + .rectangle(PAGE.width(), BANNER_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .margin(new DocumentInsets( + 0, -PAGE_MARGIN_RIGHT, BANNER_FLOW_HEIGHT - BANNER_HEIGHT, + -PAGE_MARGIN_LEFT)) + .position(band(), 0, 0, LayerAlign.TOP_LEFT, 0) + .position(disc(BANNER_DISC_SIZE, LumaStudioIcons.HEART, BANNER_DISC_ICON_SIZE), + BANNER_CONTENT_INSET, 0, LayerAlign.CENTER_LEFT, 1) + .position(lines.build(), BANNER_CONTENT_INSET + BANNER_TEXT_OFFSET, 0, + LayerAlign.CENTER_LEFT, 1)); + } + + /** The strip the sign-off is set on, paper edge to paper edge. */ + private static DocumentNode band() { + return new ShapeBuilder() + .name("BannerBand") + .size(PAGE.width(), BANNER_HEIGHT) + .fillColor(INK_SURFACE) + .margin(DocumentInsets.zero()) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioIcons.java new file mode 100644 index 000000000..671fbdfc2 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioIcons.java @@ -0,0 +1,65 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.node.DocumentNode; +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 Luma Studio invoice marks: the three contact + * glyphs, the two section discs, the closing heart and the sidebar sprig. + * + *

    They ship inside the templates artifact under + * {@code templates/invoice/luma-studio/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 repeated mark reads its file once per JVM.

    + * + *

    Every mark here is chrome rather than data — this sheet draws the same + * ones whatever the invoice says — so the tokens are constants and no + * document names one.

    + */ +final class LumaStudioIcons { + + static final String PHONE = "phone"; + static final String EMAIL = "email"; + static final String WEBSITE = "website"; + static final String NOTES = "notes"; + static final String BANK = "bank"; + static final String HEART = "heart"; + static final String SPRIG = "sprig"; + + private static final String ICON_ROOT = "/templates/invoice/luma-studio/icons/"; + private static final Map CACHE = new ConcurrentHashMap<>(); + + private LumaStudioIcons() { + } + + /** + * Builds one mark at a given width; the height follows its ratio. + * + * @param token one of the constants on this class + * @param width the drawn width + * @return the icon node + */ + static DocumentNode icon(String token, double width) { + return CACHE.computeIfAbsent(token, LumaStudioIcons::read).node(width); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = LumaStudioIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException("Missing luma studio invoice icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read luma studio invoice icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoice.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoice.java new file mode 100644 index 000000000..f951ab8c9 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioInvoice.java @@ -0,0 +1,223 @@ +package com.demcha.compose.document.templates.invoice.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.invoice.StructuredInvoiceData; +import com.demcha.compose.document.templates.data.invoice.StructuredInvoiceDocumentSpec; + +import java.util.Currency; +import java.util.List; +import java.util.Locale; +import java.util.Objects; + +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANNER_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BANNER_HEIGHT_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.CLOSING_LEFT_WEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.CLOSING_TO_BANNER; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.FOLIO_ZONE_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.INK_SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.MASTHEAD_LEFT_WEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.MASTHEAD_RIGHT_WEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.MICRO_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ON_DARK; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAGE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAGE_MARGIN_LEFT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAGE_MARGIN_RIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAGE_MARGIN_TOP; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAPER; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PARTIES_LEFT_WEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PARTIES_TO_TABLE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.RULE_TO_CLOSING; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.RULE_TO_PARTIES; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SIDEBAR_SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SIDEBAR_WIDTH_RATIO; + +/** + * Luma Studio Invoice — a studio invoice built around a cream sidebar: the + * brand lockup sits on a terracotta block at the top of that column, an + * ornament runs down the rest of it, and the billing sheet is set in the + * page beside them. + * + *

    The sheet reads top to bottom: the sender over the document title and + * its metadata, the two parties across a rule, the priced service lines, the + * totals stack closing on a filled total-due band, and the notes and payment + * details side by side above the sign-off band at the foot.

    + * + *

    Long invoices flow. The line-items table repeats its dark header on the + * next page, the totals stack and each closing block stay whole, and the paper + * tint, the cream sidebar column and the dark foot band are page backgrounds, + * so every page carries the same frame and the folio always has a dark ground. + * Every page reserves the band's height as bottom margin, so no row runs under + * it.

    + * + *

    The sign-off carries its own strip rather than relying on that foot band. + * On a one-page invoice the two land together; on a longer one the flow ends + * where the closing blocks end, and a sign-off that relied on the background + * would set white words on pale paper. It is flow content only because footer + * chrome carries text today and this band needs two faces and a disc — once a + * footer zone can hold a node, the sign-off belongs in one.

    + * + *

    The preset owns its session geometry — A4, the margins, the page fills + * and the folio zone — so callers leave the session unconfigured; a margin + * set by the caller is overwritten. It consumes the structured invoice model + * ({@link StructuredInvoiceDocumentSpec}): every heading, label and column + * title is content, so the same composition prints an invoice in another + * studio's wording without a fork. Amounts are prefixed with the mark of the + * data's own currency code. The preset draws in Carlito, Spectral and Tinos; + * its marks — the contact icons, the two closing-block badges, the heart on + * the band and the sidebar sprig — are template chrome and ship inside the + * artifact.

    + * + * @since 2.2.3 + */ +public final class LumaStudioInvoice { + + /** + * Stable template identifier. + */ + public static final String ID = "invoice-luma-studio"; + + /** + * Human-readable display name. + */ + public static final String DISPLAY_NAME = "Luma Studio Invoice"; + + private LumaStudioInvoice() { + } + + /** + * 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, StructuredInvoiceDocumentSpec spec) { + Objects.requireNonNull(document, "document"); + StructuredInvoiceData data = Objects.requireNonNull(spec, "spec").invoice(); + String currency = currencyMark(data.currencyCode()); + + renderChrome(document); + + document.pageFlow(page -> { + page.name("LumaStudioInvoice").spacing(0).padding(DocumentInsets.zero()); + + page.add(LumaStudioSidebar.render(data.brand())); + + page.addRow("Masthead", row -> row + .spacing(0) + .gap(0) + .weights(MASTHEAD_LEFT_WEIGHT, MASTHEAD_RIGHT_WEIGHT) + .addSection("SupplierHeader", + section -> LumaStudioMasthead.renderSupplier(section, data.supplier())) + .addSection("InvoiceHeader", + section -> LumaStudioMasthead.renderTitle(section, data.masthead()))); + + page.addLine(LumaStudioMasthead::renderRule); + + // The gap down to the table is this row's bottom margin rather + // than a spacer: a block of its own would take the parties' + // place at a page break and leave the gap stranded. + page.addRow("Parties", row -> row + .spacing(0) + .gap(0) + .weights(PARTIES_LEFT_WEIGHT, 1.0 - PARTIES_LEFT_WEIGHT) + .margin(new DocumentInsets(RULE_TO_PARTIES, 0, PARTIES_TO_TABLE, 0)) + .addSection("BillTo", + section -> LumaStudioMasthead.renderParty(section, data.billTo(), false)) + .addSection("ShipTo", + section -> LumaStudioMasthead.renderParty(section, data.shipTo(), true))); + + LumaStudioLines.render(page, data.serviceLines(), currency); + + page.addSection("Totals", + section -> LumaStudioClosing.renderTotals(section, data.totals(), currency)); + + page.addLine(LumaStudioClosing::renderFooterRule); + + page.addRow("Closing", row -> row + .spacing(0) + .gap(0) + .weights(CLOSING_LEFT_WEIGHT, 1.0 - CLOSING_LEFT_WEIGHT) + .margin(new DocumentInsets(RULE_TO_CLOSING, 0, 0, 0)) + .addSection("Notes", + section -> LumaStudioClosing.renderNotes(section, data.notes())) + .addSection("PaymentDetails", + section -> LumaStudioClosing.renderPayment(section, data.payment()))); + + page.addSection("ClosingBannerBlock", block -> { + block.spacing(0).margin(new DocumentInsets(CLOSING_TO_BANNER, 0, 0, 0)); + LumaStudioClosing.renderBanner(block, data.payment()); + }); + }); + } + + /** + * The page frame: the paper tint, the cream sidebar column and the + * dark foot band are page-ratio background fills, and the folio is + * FOOTER-zone chrome, so all four repeat on every page. + * + *

    The bottom margin is the band's height, so the last row on a page + * stops above it rather than running underneath, and the sign-off block + * reaches down into that reserved space by its own negative bottom + * margin rather than pushing the flow onto another page.

    + */ + private static void renderChrome(DocumentSession document) { + document.pageSize(PAGE) + .margin(new DocumentInsets( + PAGE_MARGIN_TOP, PAGE_MARGIN_RIGHT, BANNER_HEIGHT, PAGE_MARGIN_LEFT)) + .pageBackgrounds(List.of( + PageBackgroundFill.fullPage(PAPER), + PageBackgroundFill.leftColumn(SIDEBAR_WIDTH_RATIO, SIDEBAR_SURFACE), + PageBackgroundFill.bottomBand(BANNER_HEIGHT_RATIO, INK_SURFACE))) + .footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .height((float) FOLIO_ZONE_HEIGHT) + .rightText("Page {page} of {pages}") + .fontSize((float) MICRO_SIZE) + .textColor(ON_DARK) + .showSeparator(false) + .build()); + } + + /** + * The mark amounts are written with, for the currency the data states. + * + *

    The model carries the ISO code, and this sheet prints a symbol + * against every figure, so the code is the authority and the symbol is + * derived from it — two stated fields could disagree, and then the + * document would contradict itself. A code the platform does not know + * prints as itself rather than as nothing, so an amount is never left + * bare.

    + */ + private static String currencyMark(String currencyCode) { + if (currencyCode.isBlank()) { + return ""; + } + try { + return Currency.getInstance(currencyCode).getSymbol(Locale.ENGLISH); + } catch (IllegalArgumentException unknownCode) { + return currencyCode; + } + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioLines.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioLines.java new file mode 100644 index 000000000..d1a2fc6d3 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioLines.java @@ -0,0 +1,182 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.node.TextVerticalAlign; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +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.invoice.InvoiceServiceLines; + +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BODY_BOLD; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.HAIRLINE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.INK_SURFACE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ITEM_DESC; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ITEM_INDEX; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ITEM_TITLE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.LINE_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAD_AMOUNT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAD_DESCRIPTION; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAD_HEADER_CENTRE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAD_HEADER_LEFT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAD_HEADER_RIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAD_INDEX; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAD_NUMERIC; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TABLE_HEADER; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TABLE_RATIOS; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TABLE_RULE_THICKNESS; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TRACK_TABLE_HEADER; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.cellStyle; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.headerStyle; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.leading; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.money; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.sans; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioWidgets.tracked; + +/** + * The line-items table: a dark header band, one row per service line, and a + * hairline row between neighbours. + */ +final class LumaStudioLines { + + private LumaStudioLines() { + } + + static void render(PageFlowBuilder page, InvoiceServiceLines serviceLines, + String currencySymbol) { + page.addTable(table -> { + compose(table, serviceLines, currencySymbol); + // The dark header band is the region a continuation page needs: + // without this a second page carries five unlabelled money columns. + table.repeatHeader(); + }); + } + + private static void compose(TableBuilder table, InvoiceServiceLines serviceLines, + String currencySymbol) { + InvoiceServiceLines.Columns columns = serviceLines.columns(); + DocumentTableStyle centred = headerStyle( + DocumentTableTextAnchor.CENTER, PAD_HEADER_CENTRE); + table.name("LineItems") + .columns(column(0), column(1), column(2), column(3), column(4), column(5)) + .headerCells( + headerCell(columns.description(), TextAlign.LEFT) + .withStyle(headerStyle( + DocumentTableTextAnchor.CENTER_LEFT, PAD_HEADER_LEFT)) + .colSpan(2), + headerCell(columns.quantity(), TextAlign.CENTER), + headerCell(columns.unitPrice(), TextAlign.CENTER), + headerCell(columns.vat(), TextAlign.CENTER), + headerCell(columns.amount(), TextAlign.RIGHT) + .withStyle(headerStyle( + DocumentTableTextAnchor.CENTER_RIGHT, PAD_HEADER_RIGHT))) + .headerStyle(centred) + .padding(DocumentInsets.zero()) + .margin(DocumentInsets.zero()); + + for (InvoiceServiceLines.Line line : serviceLines.lines()) { + table.rowCells( + DocumentTableCell.text(String.format("%02d", line.lineNumber())) + .withStyle(cellStyle(ITEM_INDEX, + DocumentTableTextAnchor.CENTER_LEFT, PAD_INDEX)), + DocumentTableCell.node(description(line)) + .withStyle(cellStyle(BODY, + DocumentTableTextAnchor.CENTER_LEFT, PAD_DESCRIPTION)), + DocumentTableCell.text(quantity(line)) + .withStyle(cellStyle(BODY, + DocumentTableTextAnchor.CENTER, PAD_NUMERIC)), + DocumentTableCell.text(money(currencySymbol, line.unitPrice())) + .withStyle(cellStyle(BODY, + DocumentTableTextAnchor.CENTER, PAD_NUMERIC)), + DocumentTableCell.text(line.vatRate()) + .withStyle(cellStyle(BODY, + DocumentTableTextAnchor.CENTER, PAD_NUMERIC)), + DocumentTableCell.text(money(currencySymbol, line.amount())) + .withStyle(cellStyle(BODY_BOLD, + DocumentTableTextAnchor.CENTER_RIGHT, PAD_AMOUNT))); + itemRule(table); + } + } + + private static DocumentTableColumn column(int index) { + return DocumentTableColumn.fixed(CONTENT_WIDTH * TABLE_RATIOS[index]); + } + + /** + * A tracked header cell, written run by run like every other tracked line + * on the sheet — its gaps painted in the band's own dark, not the paper's. + */ + private static DocumentTableCell headerCell(String text, TextAlign align) { + return DocumentTableCell.node(tracked("HeaderCell", text, TABLE_HEADER, + TRACK_TABLE_HEADER, INK_SURFACE, align, TextVerticalAlign.DEFAULT)); + } + + /** + * A line's title over its description, as one node so the index cell has + * a single thing to centre against. + * + *

    They are two paragraphs in a block rather than two runs of one + * paragraph: a single paragraph would need an invisible spacer sized to + * the remaining width to break after the title, and there is no + * compose-time text measurement to size one with. The block puts the + * same leading between them and lands in the same place.

    + */ + private static DocumentNode description(InvoiceServiceLines.Line line) { + double gap = leading(LINE_PITCH * 0.83, ITEM_DESC); + SectionBuilder block = new SectionBuilder(); + block.name("ItemDescription").spacing(0) + .padding(DocumentInsets.zero()) + .margin(DocumentInsets.zero()); + block.addParagraph(p -> p + .name("ItemTitle") + .text(line.title()) + .textStyle(ITEM_TITLE) + .align(TextAlign.LEFT) + .lineSpacing(gap) + .margin(DocumentInsets.zero())); + block.addParagraph(p -> p + .name("ItemBody") + .text(line.description()) + .textStyle(ITEM_DESC) + .align(TextAlign.LEFT) + .lineSpacing(gap) + .margin(new DocumentInsets(gap, 0, 0, 0))); + return block.build(); + } + + /** + * How much was delivered, written plainly: a whole number loses its + * decimals, because a sheet that says "1" should not say "1.00". + */ + private static String quantity(InvoiceServiceLines.Line line) { + return line.quantity().stripTrailingZeros().toPlainString(); + } + + /** The hairline under a row, drawn as a row of its own. */ + private static void itemRule(TableBuilder table) { + DocumentTableStyle rule = DocumentTableStyle.builder() + .padding(DocumentInsets.zero()) + .fillColor(HAIRLINE) + .stroke(DocumentStroke.of(HAIRLINE, 0)) + .textStyle(sans(TABLE_RULE_THICKNESS, DocumentTextDecoration.DEFAULT, HAIRLINE)) + .textAnchor(DocumentTableTextAnchor.CENTER) + .lineSpacing(0) + .build(); + table.rowCells( + DocumentTableCell.text("").withStyle(rule), + DocumentTableCell.text("").withStyle(rule), + DocumentTableCell.text("").withStyle(rule), + DocumentTableCell.text("").withStyle(rule), + DocumentTableCell.text("").withStyle(rule), + DocumentTableCell.text("").withStyle(rule)); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioMasthead.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioMasthead.java new file mode 100644 index 000000000..c1dfb32d0 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioMasthead.java @@ -0,0 +1,276 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.LineBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.node.TextVerticalAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.data.invoice.InvoiceContactBlock; +import com.demcha.compose.document.templates.data.invoice.InvoiceMasthead; +import com.demcha.compose.document.templates.data.invoice.InvoiceRecipient; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Pattern; + +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.BODY; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.CONTACT_ICON_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.CONTACT_ROW_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.CONTACT_TEXT_OFFSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.HAIRLINE_QUIET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.INVOICE_TITLE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.LINE_PITCH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.META_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.META_ROW_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.META_VALUE_SPLIT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.META_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.MASTHEAD_TO_RULE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.MICRO_MUTED; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAPER; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PARTIES_DIVIDER_INSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SECTION_HEADING; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SUPPLIER_NAME; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SUPPLIER_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TEXT_INSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TEXT_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TITLE_BLOCK_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TITLE_CAP_INSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TITLE_RULE_THICKNESS; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TITLE_RULE_TO_METADATA; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TITLE_RULE_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TRACK_META_LABEL; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TRACK_SECTION_HEADING; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TRACK_TITLE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.leading; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioWidgets.linkedParagraph; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioWidgets.paragraph; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioWidgets.tracked; + +/** + * The top of the sheet: the sender's block on the left, the title and its + * metadata on the right, and the two party blocks below the rule. + */ +final class LumaStudioMasthead { + + /** The break this sheet stacks address lines on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + /** A parenthesised trunk prefix, which an international dial target drops. */ + private static final Pattern TRUNK_PREFIX = Pattern.compile("\\(0+\\)"); + + private LumaStudioMasthead() { + } + + // -- supplier -------------------------------------------------------- + + /** + * The sender: the legal name, the address, the contact rows behind their + * marks, and the registration line. + * + *

    The channels carry {@code tel:} and {@code mailto:} targets built + * from the values, and the website its own {@code https:} — so a reader + * can act on them and the document does not carry each address twice.

    + */ + static void renderSupplier(SectionBuilder section, InvoiceContactBlock supplier) { + section.name("SupplierHeader") + .spacing(0) + .padding(new DocumentInsets(0, 0, 0, TEXT_INSET)); + section.addParagraph(p -> p + .name("SupplierName") + .text(supplier.legalName()) + .textStyle(SUPPLIER_NAME) + .lineSpacing(0) + .margin(DocumentInsets.zero())); + section.addParagraph(p -> p + .name("SupplierAddress") + .text(String.join(NEWLINE, supplier.addressLines())) + .textStyle(BODY) + .lineSpacing(leading(LINE_PITCH, BODY)) + .margin(new DocumentInsets(LINE_PITCH * 0.50, 0, 0, 0))); + + SectionBuilder contacts = new SectionBuilder() + .name("ContactRows") + .spacing(0) + .margin(new DocumentInsets(LINE_PITCH * 0.79, 0, 0, 0)); + contactRow(contacts, LumaStudioIcons.PHONE, supplier.phone(), + telUri(supplier.phone())); + contactRow(contacts, LumaStudioIcons.EMAIL, supplier.email(), + supplier.email().isBlank() ? null : "mailto:" + supplier.email()); + contactRow(contacts, LumaStudioIcons.WEBSITE, supplier.website(), + webUri(supplier.website())); + section.add(contacts.build()); + + section.addParagraph(p -> p + .name("Registration") + .text(registrationLine(supplier)) + .textStyle(MICRO_MUTED) + .lineSpacing(0) + .margin(new DocumentInsets(LINE_PITCH * 0.84, 0, 0, 0))); + } + + private static void contactRow(SectionBuilder section, String iconToken, + String value, String href) { + section.addContainer(container -> container + .name("ContactRow") + .rectangle(SUPPLIER_WIDTH, CONTACT_ROW_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(LumaStudioIcons.icon(iconToken, CONTACT_ICON_SIZE)) + .position(linkedParagraph(value, href, BODY), CONTACT_TEXT_OFFSET, 0, + LayerAlign.CENTER_LEFT)); + } + + /** + * The registration line: one labelled number, or both behind a pale pipe + * when the sender carries a tax registration as well. + */ + private static String registrationLine(InvoiceContactBlock supplier) { + String first = pair(supplier.registrationLabel(), supplier.registrationNumber()); + String second = pair(supplier.taxRegistrationLabel(), supplier.taxRegistrationNumber()); + if (first.isBlank()) { + return second; + } + return second.isBlank() ? first : first + " | " + second; + } + + private static String pair(String label, String value) { + if (label.isBlank() && value.isBlank()) { + return ""; + } + return label.isBlank() ? value : label + " " + value; + } + + /** + * The dial target for a phone number: its digits, keeping a leading + * {@code +} so an international number stays international. + * + *

    A parenthesised trunk prefix — the {@code (0)} in + * {@code +44 (0)20 7946 0832} — is the digit a caller drops when dialling + * from abroad, so it is dropped here too. A parenthesised area code is + * not, which is why only an all-zero group goes.

    + */ + private static String telUri(String phone) { + String dialled = TRUNK_PREFIX.matcher(phone).replaceAll(""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + /** A website target: what the document wrote, given a scheme if it has none. */ + private static String webUri(String website) { + if (website.isBlank()) { + return null; + } + return website.startsWith("http") ? website : "https://" + website; + } + + // -- title and metadata ---------------------------------------------- + + /** + * The document title over its accent rule, and the metadata rows beneath. + * + *

    The title and the rule share a band so the rule sits at the block's + * foot whatever the title measures: the title is seated to the top of the + * band and the rule anchored to its bottom.

    + */ + static void renderTitle(SectionBuilder section, InvoiceMasthead masthead) { + section.name("InvoiceHeader").spacing(0); + section.addContainer(container -> container + .name("InvoiceTitleBlock") + .rectangle(META_WIDTH, TITLE_BLOCK_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .position(tracked("InvoiceTitle", masthead.title(), INVOICE_TITLE, + TRACK_TITLE, PAPER, TextVerticalAlign.TOP), + 0, TITLE_CAP_INSET, LayerAlign.TOP_LEFT) + .position(new LineBuilder() + .name("TitleRule") + .horizontal(TITLE_RULE_WIDTH) + .thickness(TITLE_RULE_THICKNESS) + .color(ACCENT) + .margin(DocumentInsets.zero()) + .build(), + 0, 0, LayerAlign.BOTTOM_LEFT) + .margin(new DocumentInsets(0, 0, TITLE_RULE_TO_METADATA, 0))); + for (InvoiceMasthead.Entry entry : masthead.entries()) { + section.addContainer(container -> container + .name("MetadataRow") + .rectangle(META_WIDTH, META_ROW_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(tracked("MetaLabel", entry.label(), META_LABEL, + TRACK_META_LABEL, PAPER)) + .position(paragraph(entry.value(), BODY, TextAlign.LEFT), + META_WIDTH * META_VALUE_SPLIT, 0, LayerAlign.CENTER_LEFT)); + } + } + + // -- the rule between the masthead and the parties --------------------- + + /** + * The masthead rule, which stops at the text column rather than running + * to the table's edge — the only rule on the sheet that does. + * + * @param line the rule to draw + */ + static void renderRule(LineBuilder line) { + line.name("HeaderRule") + .horizontal(TEXT_WIDTH) + .thickness(RULE_THICKNESS) + .color(HAIRLINE_QUIET) + .margin(new DocumentInsets(MASTHEAD_TO_RULE, 0, 0, TEXT_INSET)); + } + + // -- parties --------------------------------------------------------- + + /** + * One party block: the tracked heading over its address. + * + * @param section the host column + * @param party the recipient to draw + * @param divided true for the right-hand block, which carries the + * hairline between the two as its own left border + */ + static void renderParty(SectionBuilder section, InvoiceRecipient party, boolean divided) { + // Named after the heading it draws, so the two columns are told apart + // in a layout snapshot; a party that states no heading still needs a + // name, so it falls back to its role. + String heading = party.heading(); + section.name(heading.isBlank() + ? (divided ? "ShipTo" : "BillTo") + : heading.replace(" ", "")).spacing(0); + if (divided) { + section.accentLeft(HAIRLINE_QUIET, RULE_THICKNESS) + .padding(new DocumentInsets(0, 0, 0, PARTIES_DIVIDER_INSET)); + } else { + section.padding(new DocumentInsets(0, 0, 0, TEXT_INSET)); + } + section.add(tracked("PartyHeading", heading, SECTION_HEADING, + TRACK_SECTION_HEADING, PAPER)) + .addParagraph(p -> p + .name("PartyAddress") + .text(String.join(NEWLINE, addressOf(party))) + .textStyle(BODY) + .lineSpacing(leading(LINE_PITCH * 1.183, BODY)) + .margin(new DocumentInsets(LINE_PITCH * 0.72, 0, 0, 0))); + } + + /** + * The lines a party is drawn as: the name, the subline when it carries + * one, then the address. This design sets them as one block, so a + * recipient that names an attention line gets it on the second line. + */ + private static List addressOf(InvoiceRecipient party) { + List lines = new ArrayList<>(); + if (!party.name().isBlank()) { + lines.add(party.name()); + } + if (!party.subline().isBlank()) { + lines.add(party.subline()); + } + lines.addAll(party.addressLines()); + return lines; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioSidebar.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioSidebar.java new file mode 100644 index 000000000..4d3d39b2b --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioSidebar.java @@ -0,0 +1,170 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.EllipseBuilder; +import com.demcha.compose.document.dsl.LineBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.ShapeBuilder; +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.TextAlign; +import com.demcha.compose.document.node.TextVerticalAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentCornerRadius; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.data.invoice.InvoiceBrand; + +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.LOCKUP_LEFT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.LOCKUP_RULE_THICKNESS; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.LOCKUP_RULE_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.LOCKUP_RULE_Y; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.MONOGRAM_BOTTOM; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.MONOGRAM_BOTTOM_Y; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.MONOGRAM_TOP; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.MONOGRAM_TOP_Y; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ON_ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ORNAMENT_ARCH_HEIGHT_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ORNAMENT_ARCH_LEFT_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ORNAMENT_ARCH_WIDTH_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ORNAMENT_DISC_LEFT_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ORNAMENT_DISC_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ORNAMENT_DISC_TOP_FACTOR; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ORNAMENT_SPRIG_LEFT_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ORNAMENT_SPRIG_TOP_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ORNAMENT_SPRIG_WIDTH_RATIO; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ORNAMENT_TINT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAGE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAGE_MARGIN_LEFT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAGE_MARGIN_TOP; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SIDEBAR_BRAND_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SIDEBAR_STUB_HEIGHT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SIDEBAR_WIDTH; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TAGLINE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TAGLINE_Y; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TRACK_WORDMARK; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.WORDMARK; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.WORDMARK_Y; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioWidgets.tracked; + +/** + * The sidebar: one node with one negative margin. + * + *

    The body flow's left margin excludes the column, so the lockup and the + * ornament are composed into a single overflowing stub pulled back over the + * margin — both of its offsets are the page margins themselves. The + * terracotta brand block is content rather than a page background, painted + * above the ornament in the stub's z-order, because the ornament's disc is a + * circle far larger than the column and the block has to cover its top.

    + */ +final class LumaStudioSidebar { + + private LumaStudioSidebar() { + } + + static DocumentNode render(InvoiceBrand brand) { + return new ShapeContainerBuilder() + .name("Sidebar") + .rectangle(SIDEBAR_WIDTH, SIDEBAR_STUB_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .margin(new DocumentInsets( + -PAGE_MARGIN_TOP, 0, PAGE_MARGIN_TOP - SIDEBAR_STUB_HEIGHT, + -PAGE_MARGIN_LEFT)) + .position(ornament(), 0, SIDEBAR_BRAND_HEIGHT, LayerAlign.TOP_LEFT, 0) + .position(brandBlock(), 0, 0, LayerAlign.TOP_LEFT, 1) + .position(lockup(brand), 0, 0, LayerAlign.TOP_LEFT, 2) + .build(); + } + + private static DocumentNode brandBlock() { + return new ShapeBuilder() + .name("BrandBlock") + .size(SIDEBAR_WIDTH, SIDEBAR_BRAND_HEIGHT) + .fillColor(ACCENT) + .margin(DocumentInsets.zero()) + .build(); + } + + /** + * The lockup: the two monogram lines, a short rule, the tracked wordmark + * and the tagline, each seated at its own measured height. + */ + private static DocumentNode lockup(InvoiceBrand brand) { + return new ShapeContainerBuilder() + .name("BrandLockup") + .rectangle(SIDEBAR_WIDTH, SIDEBAR_BRAND_HEIGHT) + .clipPolicy(ClipPolicy.CLIP_PATH) + .position(seated(brand.monogramTop(), MONOGRAM_TOP), + LOCKUP_LEFT, MONOGRAM_TOP_Y, LayerAlign.TOP_LEFT) + .position(seated(brand.monogramBottom(), MONOGRAM_BOTTOM), + LOCKUP_LEFT, MONOGRAM_BOTTOM_Y, LayerAlign.TOP_LEFT) + .position(new LineBuilder() + .name("LockupRule") + .horizontal(LOCKUP_RULE_WIDTH) + .thickness(LOCKUP_RULE_THICKNESS) + .color(ON_ACCENT) + .margin(DocumentInsets.zero()) + .build(), + LOCKUP_LEFT, LOCKUP_RULE_Y, LayerAlign.TOP_LEFT) + .position(tracked("Wordmark", brand.name(), WORDMARK, + TRACK_WORDMARK, ACCENT, TextVerticalAlign.TOP), + LOCKUP_LEFT, WORDMARK_Y, LayerAlign.TOP_LEFT) + .position(seated(brand.tagline(), TAGLINE), + LOCKUP_LEFT, TAGLINE_Y, LayerAlign.TOP_LEFT) + .build(); + } + + private static DocumentNode seated(String text, DocumentTextStyle style) { + return new ParagraphBuilder() + .text(text) + .textStyle(style) + .align(TextAlign.LEFT) + .verticalAlign(TextVerticalAlign.TOP) + .lineSpacing(0) + .margin(DocumentInsets.zero()) + .build(); + } + + /** + * The art below the brand block: a tinted quarter-disc, an arch at the + * foot, and the sprig between them. + * + *

    The container clips to its bounds rather than to its path: the disc + * is a circle far wider than the column, and a rectangular container's + * path clip does not cut its positioned layers.

    + */ + private static DocumentNode ornament() { + double columnHeight = PAGE.height() - SIDEBAR_BRAND_HEIGHT; + double discDiameter = PAGE.width() * ORNAMENT_DISC_RATIO; + double archWidth = PAGE.width() * ORNAMENT_ARCH_WIDTH_RATIO; + + DocumentNode disc = new EllipseBuilder() + .name("OrnamentDisc") + .circle(discDiameter) + .fillColor(ORNAMENT_TINT) + .margin(DocumentInsets.zero()) + .build(); + DocumentNode arch = new ShapeBuilder() + .name("OrnamentArch") + .size(archWidth, PAGE.height() * ORNAMENT_ARCH_HEIGHT_RATIO) + .cornerRadius(DocumentCornerRadius.top(archWidth / 2.0)) + .fillColor(ACCENT) + .margin(DocumentInsets.zero()) + .build(); + + return new ShapeContainerBuilder() + .name("SidebarOrnament") + .rectangle(SIDEBAR_WIDTH, columnHeight) + .clipPolicy(ClipPolicy.CLIP_BOUNDS) + .position(disc, PAGE.width() * ORNAMENT_DISC_LEFT_RATIO, + discDiameter * ORNAMENT_DISC_TOP_FACTOR, LayerAlign.TOP_LEFT) + .position(arch, PAGE.width() * ORNAMENT_ARCH_LEFT_RATIO, 0, + LayerAlign.BOTTOM_LEFT) + .position(LumaStudioIcons.icon(LumaStudioIcons.SPRIG, + PAGE.width() * ORNAMENT_SPRIG_WIDTH_RATIO), + PAGE.width() * ORNAMENT_SPRIG_LEFT_RATIO, + PAGE.height() * ORNAMENT_SPRIG_TOP_RATIO, LayerAlign.TOP_LEFT) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioStyles.java new file mode 100644 index 000000000..bbc203b99 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioStyles.java @@ -0,0 +1,356 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.document.table.DocumentTableTextAnchor; +import com.demcha.compose.document.templates.core.text.TextStyles; +import com.demcha.compose.font.FontName; + +import java.math.BigDecimal; +import java.text.NumberFormat; +import java.util.Locale; + +/** + * The measured geometry, palette and type scale of the Luma Studio invoice. + * + *

    Two left edges, and that is deliberate

    + * + *

    The body text column starts further in than the line-item table, the two + * rules that bracket the closing block and the notes disc. The table's own + * first-cell padding brings its text back onto the text edge, so the text runs + * straight down the page while the table and its rules sit one cell padding + * wider. {@link #PAGE_MARGIN_LEFT} is therefore the table's edge, and + * every text block carries {@link #TEXT_INSET} as its left padding — one + * property per block rather than an inset restated on every paragraph.

    + * + *

    Leading is authored as a pitch

    + * + *

    {@link #leading} takes the distance the design draws between line tops + * and subtracts the line box the type already fills. The ratio is per family, + * because the three faces here set different line boxes at the same size — + * one shared constant would be wrong by a line per block on two of them.

    + */ +final class LumaStudioStyles { + + private LumaStudioStyles() { + } + + // -- page ------------------------------------------------------------ + + static final DocumentPageSize PAGE = DocumentPageSize.A4; + + static final double SIDEBAR_WIDTH_RATIO = 0.2218; + static final double SIDEBAR_WIDTH = PAGE.width() * SIDEBAR_WIDTH_RATIO; + static final double SIDEBAR_BRAND_HEIGHT_RATIO = 0.24614; + static final double SIDEBAR_BRAND_HEIGHT = PAGE.height() * SIDEBAR_BRAND_HEIGHT_RATIO; + + static final double PAGE_MARGIN_LEFT = PAGE.width() * 0.25782; + static final double PAGE_MARGIN_RIGHT = PAGE.width() * 0.0654; + static final double PAGE_MARGIN_TOP = 46.3; + static final double CONTENT_WIDTH = PAGE.width() - PAGE_MARGIN_LEFT - PAGE_MARGIN_RIGHT; + static final double TEXT_INSET = PAGE.width() * 0.01232; + static final double TEXT_WIDTH = CONTENT_WIDTH - TEXT_INSET; + + /** The stub the sidebar is drawn from: it carries art, not height. */ + static final double SIDEBAR_STUB_HEIGHT = 0.4; + static final double BANNER_FLOW_HEIGHT = 0.3; + static final double BANNER_HEIGHT_RATIO = 0.07445; + static final double BANNER_HEIGHT = PAGE.height() * BANNER_HEIGHT_RATIO; + static final double FOLIO_ZONE_HEIGHT = 30.5; + + // -- block rhythm ---------------------------------------------------- + + static final double MASTHEAD_TO_RULE = 13.0; + static final double RULE_TO_PARTIES = 12.0; + static final double PARTIES_TO_TABLE = 12.9; + static final double TABLE_TO_TOTALS = 4.4; + static final double TOTALS_TO_RULE = 2.0; + static final double RULE_TO_CLOSING = 12.0; + static final double CLOSING_TO_BANNER = 8.6; + + // -- the column grid ------------------------------------------------- + + static final double MASTHEAD_LEFT_WEIGHT = 0.5868; + static final double MASTHEAD_RIGHT_WEIGHT = 1.0 - MASTHEAD_LEFT_WEIGHT; + static final double SUPPLIER_WIDTH = CONTENT_WIDTH * MASTHEAD_LEFT_WEIGHT - TEXT_INSET; + static final double META_WIDTH = CONTENT_WIDTH * MASTHEAD_RIGHT_WEIGHT; + static final double PARTIES_LEFT_WEIGHT = 0.4748; + static final double CLOSING_LEFT_WEIGHT = 0.4146; + static final double[] TABLE_RATIOS = {0.0630, 0.3124, 0.0980, 0.2395, 0.0742, 0.2129}; + static final double TOTALS_WIDTH = CONTENT_WIDTH * 0.6204; + + // -- type ------------------------------------------------------------ + + static final FontName SANS = FontName.CARLITO; + static final FontName DISPLAY_SERIF = FontName.SPECTRAL; + static final FontName TEXT_SERIF = FontName.TINOS; + + static final double BODY_SIZE = 9.4; + static final double LINE_PITCH = 12.42; + static final double SMALL_SIZE = BODY_SIZE * 0.851; + static final double MICRO_SIZE = BODY_SIZE * 0.766; + static final double SUPPLIER_NAME_SIZE = BODY_SIZE * 1.170; + static final double TITLE_SIZE = BODY_SIZE * 3.883; + static final double TOTAL_DUE_SIZE = BODY_SIZE * 1.968; + static final double MONOGRAM_TOP_SIZE = BODY_SIZE * 6.170; + static final double MONOGRAM_BOTTOM_SIZE = BODY_SIZE * 3.300; + static final double WORDMARK_SIZE = BODY_SIZE * 0.830; + static final double TAGLINE_SIZE = BODY_SIZE * 0.773; + + // -- band heights ---------------------------------------------------- + + static final double CONTACT_ROW_HEIGHT = LINE_PITCH * 1.159; + static final double META_ROW_HEIGHT = LINE_PITCH * 1.409; + static final double TOTALS_ROW_HEIGHT = LINE_PITCH * 1.458; + static final double TOTAL_DUE_HEIGHT = LINE_PITCH * 2.182; + static final double BANK_ROW_HEIGHT = LINE_PITCH * 0.821; + + // -- ornaments and offsets ------------------------------------------- + + static final double CONTACT_ICON_SIZE = 8.6; + static final double CONTACT_TEXT_OFFSET = 21.0; + static final double META_VALUE_SPLIT = 0.6134; + static final double SECTION_DISC_SIZE = 24.8; + static final double SECTION_DISC_ICON_SIZE = 12.0; + static final double SECTION_HEADING_OFFSET = 35.5; + static final double BANK_PIPE_OFFSET = 53.6; + static final double BANK_VALUE_OFFSET = 63.8; + static final double PARTIES_DIVIDER_INSET = 34.4; + static final double CLOSING_DIVIDER_INSET = 24.3; + static final double TITLE_RULE_WIDTH = 58.7; + static final double TITLE_RULE_THICKNESS = 1.7; + static final double TITLE_BLOCK_HEIGHT = 45.7; + static final double TITLE_CAP_INSET = 3.4; + static final double TITLE_RULE_TO_METADATA = 15.3; + static final double TOTALS_LABEL_INSET = 41.8; + static final double TOTALS_AMOUNT_INSET = 13.0; + static final double RULE_THICKNESS = 0.56; + static final double TABLE_RULE_THICKNESS = 0.62; + + static final double LOCKUP_LEFT = PAGE.width() * 0.05592; + static final double LOCKUP_RULE_WIDTH = PAGE.width() * 0.03412; + static final double LOCKUP_RULE_THICKNESS = 1.7; + static final double MONOGRAM_TOP_Y = PAGE.height() * 0.04561; + static final double MONOGRAM_BOTTOM_Y = PAGE.height() * 0.10597; + static final double LOCKUP_RULE_Y = PAGE.height() * 0.16097; + static final double WORDMARK_Y = PAGE.height() * 0.18645; + static final double TAGLINE_Y = PAGE.height() * 0.20456; + + static final double ORNAMENT_DISC_RATIO = 0.34502; + static final double ORNAMENT_DISC_LEFT_RATIO = 0.02938; + static final double ORNAMENT_DISC_TOP_FACTOR = -0.48; + static final double ORNAMENT_ARCH_WIDTH_RATIO = 0.19526; + static final double ORNAMENT_ARCH_HEIGHT_RATIO = 0.28102; + static final double ORNAMENT_ARCH_LEFT_RATIO = 0.02654; + static final double ORNAMENT_SPRIG_WIDTH_RATIO = 0.16000; + static final double ORNAMENT_SPRIG_LEFT_RATIO = 0.02180; + static final double ORNAMENT_SPRIG_TOP_RATIO = 0.30500; + + static final double BANNER_CONTENT_INSET = PAGE.width() * 0.05498; + static final double BANNER_DISC_SIZE = 33.9; + static final double BANNER_DISC_ICON_SIZE = 16.0; + static final double BANNER_TEXT_OFFSET = 47.9; + + // -- table padding --------------------------------------------------- + + static final double TABLE_CELL_PAD_X = 7.33; + static final double TABLE_CELL_PAD_Y = 9.3; + static final double TABLE_HEADER_PAD_Y = 7.2; + static final double TABLE_TIGHT_PAD_X = 2.0; + static final double TABLE_AMOUNT_PAD_RIGHT = 15.2; + + static final DocumentInsets PAD_INDEX = new DocumentInsets( + TABLE_CELL_PAD_Y, TABLE_TIGHT_PAD_X, TABLE_CELL_PAD_Y, TABLE_CELL_PAD_X); + static final DocumentInsets PAD_DESCRIPTION = new DocumentInsets( + TABLE_CELL_PAD_Y, TABLE_TIGHT_PAD_X, TABLE_CELL_PAD_Y, TABLE_CELL_PAD_X * 0.93); + static final DocumentInsets PAD_NUMERIC = DocumentInsets.symmetric( + TABLE_CELL_PAD_Y, TABLE_TIGHT_PAD_X); + static final DocumentInsets PAD_AMOUNT = new DocumentInsets( + TABLE_CELL_PAD_Y, TABLE_AMOUNT_PAD_RIGHT, TABLE_CELL_PAD_Y, TABLE_TIGHT_PAD_X); + static final DocumentInsets PAD_HEADER_LEFT = new DocumentInsets( + TABLE_HEADER_PAD_Y, TABLE_TIGHT_PAD_X, TABLE_HEADER_PAD_Y, TABLE_CELL_PAD_X); + static final DocumentInsets PAD_HEADER_CENTRE = DocumentInsets.symmetric( + TABLE_HEADER_PAD_Y, TABLE_TIGHT_PAD_X); + static final DocumentInsets PAD_HEADER_RIGHT = new DocumentInsets( + TABLE_HEADER_PAD_Y, TABLE_AMOUNT_PAD_RIGHT, TABLE_HEADER_PAD_Y, TABLE_TIGHT_PAD_X); + + // -- palette --------------------------------------------------------- + + static final DocumentColor ACCENT = DocumentColor.rgb(163, 78, 51); + static final DocumentColor INK_SURFACE = DocumentColor.rgb(46, 46, 46); + static final DocumentColor INK = DocumentColor.rgb(51, 51, 51); + static final DocumentColor MUTED = DocumentColor.rgb(90, 87, 80); + static final DocumentColor SIDEBAR_SURFACE = DocumentColor.rgb(243, 236, 224); + static final DocumentColor ORNAMENT_TINT = DocumentColor.rgb(219, 199, 182); + static final DocumentColor PAPER = DocumentColor.rgb(251, 250, 249); + static final DocumentColor PANEL_HIGHLIGHT = DocumentColor.rgb(232, 222, 213); + static final DocumentColor HAIRLINE = DocumentColor.rgb(221, 212, 202); + static final DocumentColor HAIRLINE_QUIET = DocumentColor.rgb(211, 202, 189); + static final DocumentColor ON_DARK = DocumentColor.WHITE; + static final DocumentColor ON_ACCENT = DocumentColor.rgb(247, 240, 231); + + // -- text styles ----------------------------------------------------- + + static final DocumentTextStyle BODY = sans(BODY_SIZE, DocumentTextDecoration.DEFAULT, INK); + static final DocumentTextStyle BODY_BOLD = sans(BODY_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle SMALL_BOLD = + sans(SMALL_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle MICRO_MUTED = + sans(MICRO_SIZE, DocumentTextDecoration.DEFAULT, MUTED); + static final DocumentTextStyle SUPPLIER_NAME = + sans(SUPPLIER_NAME_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle META_LABEL = + sans(SMALL_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle SECTION_HEADING = + sans(SMALL_SIZE, DocumentTextDecoration.BOLD, ACCENT); + static final DocumentTextStyle TABLE_HEADER = + sans(SMALL_SIZE, DocumentTextDecoration.BOLD, ON_DARK); + static final DocumentTextStyle ITEM_INDEX = + sans(BODY_SIZE * 1.15, DocumentTextDecoration.DEFAULT, ACCENT); + static final DocumentTextStyle ITEM_TITLE = + sans(BODY_SIZE * 0.875, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle ITEM_DESC = + serif(BODY_SIZE * 0.780, DocumentTextDecoration.ITALIC, MUTED); + static final DocumentTextStyle TOTAL_LABEL = + sans(BODY_SIZE * 1.02, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle TOTAL_AMOUNT = + sans(BODY_SIZE * 1.02, DocumentTextDecoration.DEFAULT, INK); + static final DocumentTextStyle TOTAL_DUE_LABEL = + sans(BODY_SIZE * 1.09, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle TOTAL_DUE_AMOUNT = + sans(TOTAL_DUE_SIZE, DocumentTextDecoration.BOLD, ACCENT); + static final DocumentTextStyle NOTE_TEXT = + serif(BODY_SIZE * 0.766, DocumentTextDecoration.ITALIC, INK); + static final DocumentTextStyle BANK_LABEL = + sans(MICRO_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle BANK_VALUE = + sans(MICRO_SIZE, DocumentTextDecoration.DEFAULT, MUTED); + static final DocumentTextStyle INVOICE_TITLE = + display(TITLE_SIZE, DocumentTextDecoration.DEFAULT, INK_SURFACE); + static final DocumentTextStyle MONOGRAM_TOP = + display(MONOGRAM_TOP_SIZE, DocumentTextDecoration.DEFAULT, ON_ACCENT); + static final DocumentTextStyle MONOGRAM_BOTTOM = + display(MONOGRAM_BOTTOM_SIZE, DocumentTextDecoration.DEFAULT, ON_ACCENT); + static final DocumentTextStyle WORDMARK = + sans(WORDMARK_SIZE, DocumentTextDecoration.BOLD, ON_ACCENT); + static final DocumentTextStyle TAGLINE = + serif(TAGLINE_SIZE, DocumentTextDecoration.ITALIC, ON_ACCENT); + static final DocumentTextStyle BANNER_SIGN_OFF = + sans(BODY_SIZE * 1.02, DocumentTextDecoration.BOLD, ON_DARK); + static final DocumentTextStyle BANNER_DUE = + serif(BODY_SIZE * 1.09, DocumentTextDecoration.ITALIC, ON_DARK); + + // -- tracking -------------------------------------------------------- + + /** + * The letter-spacing each tracked run is set with, in points. + * + *

    A text style carries no tracking, so a tracked run is written letter + * by letter with an invisible inline rectangle between the pairs, and + * these are its widths. They are frozen constants rather than a + * measurement: the design derived each by measuring the face and dividing + * the difference from a target width across the gaps, which would tie the + * preset to the font artifact's own resource layout at compose time. The + * numbers are what that measurement produced, and the pixel-parity gate + * is what proves they are still the right ones.

    + */ + static final double TRACK_TITLE = 0.059021; + static final double TRACK_META_LABEL = 1.462532; + static final double TRACK_SECTION_HEADING = 1.462576; + static final double TRACK_TABLE_HEADER = 1.525822; + static final double TRACK_TOTAL_LABEL = 0.612126; + static final double TRACK_WORDMARK = 0.990497; + + // -- helpers --------------------------------------------------------- + + static DocumentTextStyle sans(double size, DocumentTextDecoration decoration, + DocumentColor color) { + return TextStyles.of(SANS, size, decoration, color); + } + + static DocumentTextStyle display(double size, DocumentTextDecoration decoration, + DocumentColor color) { + return TextStyles.of(DISPLAY_SERIF, size, decoration, color); + } + + static DocumentTextStyle serif(double size, DocumentTextDecoration decoration, + DocumentColor color) { + return TextStyles.of(TEXT_SERIF, size, decoration, color); + } + + /** + * The leading to author so lines land on a given pitch. + * + * @param targetPitch the distance the design draws between line tops + * @param style the style of the lines + * @return the extra leading, never negative + */ + static double leading(double targetPitch, DocumentTextStyle style) { + return Math.max(0, targetPitch - style.size() * lineBoxRatio(style.fontName())); + } + + /** + * How tall a line box is as a share of its type size, per family. The + * three faces differ enough that one shared ratio would be wrong by a + * line per block on two of them. + */ + private static double lineBoxRatio(FontName fontName) { + if (fontName.sameFamily(DISPLAY_SERIF)) { + return 1.522; + } + if (fontName.sameFamily(TEXT_SERIF)) { + return 1.150; + } + return 1.221; + } + + static DocumentTableStyle cellStyle(DocumentTextStyle textStyle, + DocumentTableTextAnchor anchor, + DocumentInsets padding) { + return DocumentTableStyle.builder() + .padding(padding) + .fillColor(PAPER) + .stroke(DocumentStroke.of(PAPER, 0)) + .textStyle(textStyle) + .textAnchor(anchor) + .lineSpacing(0) + .build(); + } + + static DocumentTableStyle headerStyle(DocumentTableTextAnchor anchor, + DocumentInsets padding) { + return DocumentTableStyle.builder() + .padding(padding) + .fillColor(INK_SURFACE) + .stroke(DocumentStroke.of(INK_SURFACE, 0)) + .textStyle(TABLE_HEADER) + .textAnchor(anchor) + .lineSpacing(0) + .build(); + } + + /** + * A figure written the way this sheet writes money: the currency mark, + * then grouped digits to two places. + * + *

    The formatter is built per call rather than shared: {@link NumberFormat} + * is not thread-safe, and a document is cheap to format beside a static + * monitor every render on every thread would queue behind.

    + * + * @param currencySymbol the mark to prefix + * @param value the figure + * @return the formatted amount + */ + static String money(String currencySymbol, BigDecimal value) { + NumberFormat format = NumberFormat.getNumberInstance(Locale.ENGLISH); + format.setGroupingUsed(true); + format.setMinimumFractionDigits(2); + format.setMaximumFractionDigits(2); + return currencySymbol + format.format(value); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioWidgets.java new file mode 100644 index 000000000..ce754986a --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/invoice/presets/LumaStudioWidgets.java @@ -0,0 +1,172 @@ +package com.demcha.compose.document.templates.invoice.presets; + +import com.demcha.compose.document.dsl.EllipseBuilder; +import com.demcha.compose.document.dsl.LayerStackBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.node.TextVerticalAlign; +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.DocumentTextStyle; +import com.demcha.compose.document.style.ShapeOutline; + +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.ACCENT; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.PAPER; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SECTION_DISC_ICON_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SECTION_DISC_SIZE; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SECTION_HEADING; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.SECTION_HEADING_OFFSET; +import static com.demcha.compose.document.templates.invoice.presets.LumaStudioStyles.TRACK_SECTION_HEADING; + +/** + * The idioms this sheet repeats: the tracked run, the mark on its accent + * disc, the plain node-shaped paragraph, and the heading that pairs the two. + */ +final class LumaStudioWidgets { + + private LumaStudioWidgets() { + } + + /** + * A run of letter-spaced text. + * + *

    A text style carries no tracking, so the gap between letters is an + * inline rectangle of the ground colour — invisible, and exactly as wide + * as the spacing asks for. The rectangle is 0.05pt tall so it takes no + * part in the line box.

    + * + * @param name the node name + * @param text the text to space out + * @param style the style of the letters + * @param tracking the gap in points; zero or less writes the text plainly + * @param ground the colour behind the run, which the gaps are painted in + * @return the paragraph node + */ + static DocumentNode tracked(String name, String text, DocumentTextStyle style, + double tracking, DocumentColor ground) { + return tracked(name, text, style, tracking, ground, TextVerticalAlign.DEFAULT); + } + + /** + * The same, seated to a given vertical alignment. + * + * @param name the node name + * @param text the text to space out + * @param style the style of the letters + * @param tracking the gap in points + * @param ground the colour the gaps are painted in + * @param verticalAlign where the text sits in its box + * @return the paragraph node + */ + static DocumentNode tracked(String name, String text, DocumentTextStyle style, + double tracking, DocumentColor ground, + TextVerticalAlign verticalAlign) { + return tracked(name, text, style, tracking, ground, TextAlign.LEFT, verticalAlign); + } + + /** + * The same, aligned across the box it is drawn in — which the table + * headers need and the rest of the sheet does not. + * + * @param name the node name + * @param text the text to space out + * @param style the style of the letters + * @param tracking the gap in points + * @param ground the colour the gaps are painted in + * @param align where the run sits across its box + * @param verticalAlign where the text sits in its box + * @return the paragraph node + */ + static DocumentNode tracked(String name, String text, DocumentTextStyle style, + double tracking, DocumentColor ground, TextAlign align, + TextVerticalAlign verticalAlign) { + ParagraphBuilder paragraph = new ParagraphBuilder() + .name(name) + .textStyle(style) + .align(align) + .verticalAlign(verticalAlign) + .lineSpacing(0) + .margin(DocumentInsets.zero()); + if (tracking <= 0) { + return paragraph.text(text).build(); + } + return paragraph.rich(rich -> { + for (int index = 0; index < text.length(); index++) { + if (index > 0) { + rich.shape(new ShapeOutline.Rectangle(tracking, 0.05), ground); + } + rich.style(String.valueOf(text.charAt(index)), style); + } + }).build(); + } + + /** A plain paragraph as a node, for anchoring inside a container. */ + static DocumentNode paragraph(String text, DocumentTextStyle style, TextAlign align) { + return new ParagraphBuilder() + .text(text) + .textStyle(style) + .align(align) + .lineSpacing(0) + .margin(DocumentInsets.zero()) + .build(); + } + + /** The same, carrying a link when one is given. */ + static DocumentNode linkedParagraph(String text, String href, DocumentTextStyle style) { + ParagraphBuilder paragraph = new ParagraphBuilder() + .text(text) + .textStyle(style) + .align(TextAlign.LEFT) + .lineSpacing(0) + .margin(DocumentInsets.zero()); + if (href != null && !href.isBlank()) { + paragraph.link(new DocumentLinkOptions(href)); + } + return paragraph.build(); + } + + /** + * A mark centred on an accent disc. + * + *

    A layer stack over an ellipse rather than a filled shape container: + * a container's own fill is dropped when it sits inside a parent carrying + * a large negative margin, which is where the closing banner puts it.

    + */ + static DocumentNode disc(double diameter, String iconToken, double iconSize) { + return new LayerStackBuilder() + .name("Disc-" + iconToken) + .back(new EllipseBuilder() + .name("DiscFill") + .circle(diameter) + .fillColor(ACCENT) + .margin(DocumentInsets.zero()) + .build()) + .layer(LumaStudioIcons.icon(iconToken, iconSize), LayerAlign.CENTER) + .build(); + } + + /** + * A closing-block heading: the disc, and the tracked words on its axis. + * + * @param section the host block + * @param iconToken the mark on the disc + * @param heading the heading text + * @param width the band's width + */ + static void sectionHead(SectionBuilder section, String iconToken, String heading, + double width) { + section.addContainer(container -> container + .name("SectionHead") + .rectangle(width, SECTION_DISC_SIZE) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(disc(SECTION_DISC_SIZE, iconToken, SECTION_DISC_ICON_SIZE)) + .position(tracked("SectionHeading", heading, SECTION_HEADING, + TRACK_SECTION_HEADING, PAPER), + SECTION_HEADING_OFFSET, 0, LayerAlign.CENTER_LEFT)); + } +} diff --git a/templates/src/main/resources/templates/invoice/luma-studio/icons/bank.svg b/templates/src/main/resources/templates/invoice/luma-studio/icons/bank.svg new file mode 100644 index 000000000..ea87a64fb --- /dev/null +++ b/templates/src/main/resources/templates/invoice/luma-studio/icons/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/luma-studio/icons/email.svg b/templates/src/main/resources/templates/invoice/luma-studio/icons/email.svg new file mode 100644 index 000000000..13dc2974c --- /dev/null +++ b/templates/src/main/resources/templates/invoice/luma-studio/icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/luma-studio/icons/heart.svg b/templates/src/main/resources/templates/invoice/luma-studio/icons/heart.svg new file mode 100644 index 000000000..24d90b97a --- /dev/null +++ b/templates/src/main/resources/templates/invoice/luma-studio/icons/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/luma-studio/icons/notes.svg b/templates/src/main/resources/templates/invoice/luma-studio/icons/notes.svg new file mode 100644 index 000000000..a91fe98cf --- /dev/null +++ b/templates/src/main/resources/templates/invoice/luma-studio/icons/notes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/luma-studio/icons/phone.svg b/templates/src/main/resources/templates/invoice/luma-studio/icons/phone.svg new file mode 100644 index 000000000..b2a8bfc1b --- /dev/null +++ b/templates/src/main/resources/templates/invoice/luma-studio/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/luma-studio/icons/sprig.svg b/templates/src/main/resources/templates/invoice/luma-studio/icons/sprig.svg new file mode 100644 index 000000000..ea5849182 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/luma-studio/icons/sprig.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/invoice/luma-studio/icons/website.svg b/templates/src/main/resources/templates/invoice/luma-studio/icons/website.svg new file mode 100644 index 000000000..d2929ac57 --- /dev/null +++ b/templates/src/main/resources/templates/invoice/luma-studio/icons/website.svg @@ -0,0 +1 @@ + \ No newline at end of file From ac64e9d425cc5169b5d2ceddea06c775088a963b Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 13:39:21 +0100 Subject: [PATCH 17/85] feat(templates): add the Terracotta Rail two-column CV preset (#624) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An architect's one-page CV: a narrow column with a serif monogram over a terracotta rule, the contact channels behind their marks, two bulleted lists, the credentials and a block of closing facts, beside a wide column with a letter-spaced masthead, the summary, the roles held on a ringed rail, a projects grid and the degrees. It ports a published standalone template onto the existing CvDocument with no model change: eight berths reach their sections by title, and the software berth is claimed before the competency one so a section titled for both is drawn once rather than twice. The monogram is drawn from the name's own initials rather than a field of its own, so a document states its name once. A link in the contact block is set smaller than the channels above it, because a URL is one long token that cannot be broken and is the line that outgrows that column first; it takes the mark of the network it points at, or a globe. The headings are letter-spaced with a real space character rather than a style property — a hair space in the sidebar, a thin space in the wider column. Like its siblings it holds one page: the body is a single atomic row, so a longer CV raises AtomicNodeTooLargeException rather than losing an entry. Guarded by a smoke test, an exact layout snapshot and a pixel-parity gate; the examples showcase gains `cv-terracotta-rail-v2`. --- CHANGELOG.md | 25 + .../readme/examples/cv-terracotta-rail-v2.pdf | Bin 0 -> 40888 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../examples/support/ShowcaseMetadata.java | 1 + .../support/TerracottaRailSampleData.java | 207 + .../cv/v2/TerracottaRailExample.java | 57 + .../cv/presets/TerracottaRailFixtures.java | 205 + .../TerracottaRailLayoutSnapshotTest.java | 38 + .../cv/presets/TerracottaRailSmokeTest.java | 225 + .../TerracottaRailVisualParityTest.java | 45 + .../cv-v2/terracotta_rail_layout.json | 4637 +++++++++++++++++ .../cv-v2-layered/terracotta_rail-page-0.png | Bin 0 -> 143214 bytes .../templates/cv/presets/TerracottaRail.java | 219 + .../cv/presets/TerracottaRailAside.java | 306 ++ .../cv/presets/TerracottaRailIcons.java | 97 + .../cv/presets/TerracottaRailMain.java | 337 ++ .../cv/presets/TerracottaRailStyles.java | 182 + .../cv/presets/TerracottaRailWidgets.java | 260 + .../cv/terracotta-rail/icons/badge.svg | 1 + .../cv/terracotta-rail/icons/building.svg | 1 + .../cv/terracotta-rail/icons/clock.svg | 1 + .../cv/terracotta-rail/icons/email.svg | 1 + .../cv/terracotta-rail/icons/globe.svg | 1 + .../cv/terracotta-rail/icons/hotel.svg | 1 + .../cv/terracotta-rail/icons/house.svg | 1 + .../cv/terracotta-rail/icons/linkedin.svg | 1 + .../cv/terracotta-rail/icons/location.svg | 1 + .../cv/terracotta-rail/icons/phone.svg | 1 + .../cv/terracotta-rail/icons/square.svg | 1 + 29 files changed, 6854 insertions(+) create mode 100644 assets/readme/examples/cv-terracotta-rail-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/TerracottaRailSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/TerracottaRailExample.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/terracotta_rail-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRail.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/badge.svg create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/building.svg create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/clock.svg create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/email.svg create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/globe.svg create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/hotel.svg create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/house.svg create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/linkedin.svg create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/location.svg create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/phone.svg create mode 100644 templates/src/main/resources/templates/cv/terracotta-rail/icons/square.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 89c1ee8e3..d7f869e47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,6 +84,31 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **An architect's two-column CV preset: `TerracottaRail`.** A one-page A4 sheet whose + narrow column carries a serif monogram over a terracotta rule, the contact channels + behind their marks, two bulleted lists and a block of closing facts, beside a wide + column carrying a letter-spaced masthead, the summary, the roles held on a ringed + rail, a projects grid and the degrees. Ships as `cv.presets.TerracottaRail` on the + existing `CvDocument` model with **no model change at all**, porting the rendered + layout of a published standalone template. Like `CharcoalGold` it leaves the page to + the caller. Eight berths reach their sections by title; the two bulleted lists are + skills without levels, because this design writes them as plain lines — one takes a + terracotta square and no dash under its heading, the other a disc and a dash, which + is how the sheet tells two lists of one-liners apart. Each fact and each project + takes the mark its entry names in `CvEntry.icon()` from this preset's own vocabulary, + a project title is a link when its entry carries one, and the monogram is drawn from + the name's own initials rather than a field of its own — a document states its name + once, and a monogram that could disagree with it would be a second place to keep + true. A link in the contact block is set smaller than the channels above it, because + a URL is one long token that cannot be broken and is the line that outgrows that + column first; it takes the mark of the network it points at, or a globe. Like its + siblings it holds one page: the body is a single atomic row, so a longer CV raises + `AtomicNodeTooLargeException` rather than flowing or dropping entries. Guarded by a + smoke test (including the unknown-mark data error, an entry with no mark, an identity + with no links, a document with nothing but an identity, the monogram, the link + targets and the one-page limit), an exact layout snapshot and a pixel-parity gate; + the examples showcase gains `cv-terracotta-rail-v2`. + - **The first invoice preset that paginates what it ports: `LumaStudioInvoice`.** A studio invoice built around a cream sidebar — the two-line monogram and the wordmark on a terracotta block at its head, a tinted quarter-disc, an arch and a sprig running diff --git a/assets/readme/examples/cv-terracotta-rail-v2.pdf b/assets/readme/examples/cv-terracotta-rail-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f598c897ed65937bf19b1de54cf3d6c7e3144d13 GIT binary patch literal 40888 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� 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 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 55bb1da8a..398cd51e9 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -80,6 +80,7 @@ import com.demcha.examples.templates.coverletter.CvSidebarPortraitLetterV2Example; import com.demcha.examples.templates.coverletter.CvTimelineMinimalLetterV2Example; import com.demcha.examples.templates.cv.v2.CharcoalGoldExample; +import com.demcha.examples.templates.cv.v2.TerracottaRailExample; import com.demcha.examples.templates.cv.v2.CvBlueBannerExample; import com.demcha.examples.templates.cv.v2.CvBoxedV2Example; import com.demcha.examples.templates.cv.v2.CvCenteredHeadlineExample; @@ -154,6 +155,7 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + ProfessionalSidebarExample.generate()); System.out.println("Generated: " + SerifHeadlineExample.generate()); System.out.println("Generated: " + CharcoalGoldExample.generate()); + System.out.println("Generated: " + TerracottaRailExample.generate()); // Cover letters (v2 layered — 15 paired letters, one per CV preset) System.out.println("Generated: " + CvBlueBannerLetterV2Example.generate()); 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 da69b14cf..9df177429 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -64,6 +64,7 @@ record Entry(String title, String description, List tags, String codeUrl cv("cv-navy-sidebar-v2", "NavySidebarExample", "Navy Sidebar", "Navy plate with a ringed portrait, contact marks, degrees, skills and languages, beside a white column of summary, badged sections and roles strung on a timeline rail.", "sidebar", "navy", "portrait"); cv("cv-serif-headline-v2", "SerifHeadlineExample", "Serif Headline", "Volkhov masthead over a two-column body: roles on a timeline rail and marked project cards beside degrees and skill meters, closing with full-width certification and achievement bands.", "serif", "two-column"); cv("cv-charcoal-gold-v2", "CharcoalGoldExample", "Charcoal Gold", "Charcoal sidebar with a ringed photograph, rated skills and languages, beside a paper column with a two-tone name, a dated experience rail and paired credential columns.", "sidebar", "photo", "gold"); + cv("cv-terracotta-rail-v2", "TerracottaRailExample", "Terracotta Rail", "Serif monogram over a terracotta rule, contact channels behind their marks and two bulleted lists, beside a letter-spaced masthead, roles on a ringed rail, a projects grid and the degrees.", "sidebar", "monogram", "terracotta"); // ===== Templates / Cover Letter (v2 layered, paired 1:1 with CV) ===== // Registered directly: letter() points at the layered preset examples under diff --git a/examples/src/main/java/com/demcha/examples/support/TerracottaRailSampleData.java b/examples/src/main/java/com/demcha/examples/support/TerracottaRailSampleData.java new file mode 100644 index 000000000..2a6490270 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/TerracottaRailSampleData.java @@ -0,0 +1,207 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.OptionalDouble; + +/** + * Shared sample data for the Terracotta Rail CV example. + * + *

    The sample is the preset's reference content: an architect's one-page + * CV with a monogram, four contact rows including a link, two bulleted + * lists, two credentials, three facts behind their marks, a three-paragraph + * summary, three roles on the rail, three marked projects and two + * degrees.

    + * + *

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

    + */ +public final class TerracottaRailSampleData { + + /** The break a fact stacks its values on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + /** The dash this sheet writes a date range with. */ + private static final String EN_DASH = String.valueOf((char) 0x2013); + + private TerracottaRailSampleData() { + } + + /** The single-page reference CV. */ + public static CvDocument sample() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, competencies())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, software())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, certifications())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, facts())); + placements.add(new CvDocument.Placement(Slot.MAIN, summary())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.MAIN, projects())); + placements.add(new CvDocument.Placement(Slot.MAIN, education())); + return new CvDocument(identity(), placements); + } + + private static CvIdentity identity() { + return new CvIdentity( + CvName.of("OLIVER", "BENNETT"), + "SENIOR ARCHITECT", + new Contact("+44 7700 900123", "oliver.bennett@email.com", + "Bristol, United Kingdom"), + List.of(new Link("linkedin.com/in/oliverbennett-architect", + "https://linkedin.com/in/oliverbennett-architect")), + Optional.empty()); + } + + private static SkillsSection competencies() { + return plainSkills("CORE COMPETENCIES", + "Architectural Design", "Concept Development", "Planning Applications", + "Technical Drawings", "Revit", "AutoCAD", "BIM Coordination", + "Design Presentations", "Project Delivery", "Stakeholder Management", + "Sustainable Design", "Building Regulations"); + } + + private static SkillsSection software() { + return plainSkills("SOFTWARE", + "Revit", "AutoCAD", "Rhino", "SketchUp", "Adobe InDesign", "Photoshop", + "Microsoft Office"); + } + + private static EntriesSection certifications() { + return new EntriesSection("CERTIFICATIONS", List.of( + CvEntry.builder("ARB Registered Architect").build(), + CvEntry.builder("RIBA Chartered Member").build())); + } + + private static EntriesSection facts() { + return new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Languages:") + .icon("globe") + .body("English (Native)," + NEWLINE + "Spanish (Conversational)") + .build(), + CvEntry.builder("Right to Work:") + .icon("badge") + .body("United Kingdom") + .build(), + CvEntry.builder("Availability:") + .icon("clock") + .body("1 month notice") + .build())); + } + + private static ParagraphSection summary() { + return new ParagraphSection("PROFESSIONAL SUMMARY", String.join(NEWLINE, + "Senior Architect with over 8 years of experience delivering residential, " + + "mixed-use, and commercial projects across all RIBA work stages.", + "Proven expertise in design development, planning applications, and technical " + + "delivery with a strong focus on sustainability, quality, and user " + + "experience.", + "Collaborative communicator skilled in coordinating consultants, engaging " + + "stakeholders, and leading multidisciplinary teams to achieve " + + "successful outcomes.")); + } + + private static EntriesSection experience() { + return new EntriesSection("PROFESSIONAL EXPERIENCE", List.of( + CvEntry.builder("Senior Architect") + .subtitle("Northline Studio, Bristol, UK") + .date("2021" + EN_DASH + "Present") + .body(String.join(NEWLINE, + "Lead design packages from concept through to detailed design " + + "across mid-scale residential and mixed-use projects.", + "Coordinate structural, M&E, landscape and planning consultants " + + "to ensure integrated and buildable solutions.", + "Prepare and manage planning applications, design and access " + + "statements, and supporting documentation.", + "Present and communicate design proposals to clients and " + + "stakeholders, securing approvals and driving projects " + + "forward.")) + .build(), + CvEntry.builder("Architect") + .subtitle("Urban Form Partners, Bath, UK") + .date("2018" + EN_DASH + "2021") + .body(String.join(NEWLINE, + "Developed concept and technical designs for a range of " + + "residential, commercial, and education projects.", + "Prepared coordinated drawing sets, schedules, and " + + "specifications to support planning and construction.", + "Supported project delivery on site, resolving design queries " + + "and ensuring quality outcomes.", + "Coordinated with contractors and consultants to maintain " + + "programme, budget and design intent.")) + .build(), + CvEntry.builder("Part II Architectural Assistant") + .subtitle("Axis Design Workshop, Cardiff, UK") + .date("2016" + EN_DASH + "2018") + .body(String.join(NEWLINE, + "Supported senior architects across all RIBA stages on a " + + "variety of project types.", + "Produced CAD and Revit drawings, models, and visualisations to " + + "communicate design intent.", + "Undertook research, prepared presentation boards, and assisted " + + "with planning documentation.")) + .build())); + } + + private static EntriesSection projects() { + return new EntriesSection("SELECTED PROJECTS", List.of( + CvEntry.builder("Harbour Point") + .subtitle("Mixed-Use Regeneration") + .place("Bristol") + .icon("building") + .body("Mixed-use development delivering 142 homes, retail space and " + + "public realm improvements; secured planning consent and is " + + "now on site.") + .build(), + CvEntry.builder("The Assembly Hotel") + .subtitle("Boutique Hotel Refurbishment") + .place("Bath") + .icon("hotel") + .body("Sensitive refurbishment of listed building to create a " + + "36-bedroom boutique hotel; enhanced heritage features and " + + "guest experience.") + .build(), + CvEntry.builder("Elmwood Mews") + .subtitle("Residential Development") + .place("Clifton, Bristol") + .icon("house") + .body("Design of 28 high-quality homes within a sustainable masterplan; " + + "achieved high environmental standards and strong sales " + + "performance.") + .build())); + } + + private static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("MArch Architecture") + .subtitle("University of Sheffield") + .date("2014" + EN_DASH + "2016") + .build(), + CvEntry.builder("BA (Hons) Architecture") + .subtitle("University of the West of England") + .date("2011" + EN_DASH + "2014") + .build())); + } + + private static SkillsSection plainSkills(String title, String... names) { + List entries = new ArrayList<>(); + for (String name : names) { + entries.add(new CvSkill(name, OptionalDouble.empty())); + } + return new SkillsSection(title, List.of(new SkillGroup(title, entries))); + } +} diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/TerracottaRailExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/TerracottaRailExample.java new file mode 100644 index 000000000..6bce9e01d --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/TerracottaRailExample.java @@ -0,0 +1,57 @@ +package com.demcha.examples.templates.cv.v2; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.presets.TerracottaRail; +import com.demcha.examples.support.ExampleOutputPaths; +import com.demcha.examples.support.TerracottaRailSampleData; + +import java.nio.file.Path; + +/** + * Renders the layered {@code cv.v2} Terracotta Rail preset against the + * architect sample. + * + *

    Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-terracotta-rail-v2.pdf}.

    + * + *

    The preset leaves the page to the caller, so the session sets A4 with + * no margin: both columns run to the paper edge and each carries its own + * padding.

    + */ +public final class TerracottaRailExample { + + private TerracottaRailExample() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare( + "templates/cv", "cv-terracotta-rail-v2.pdf"); + CvDocument doc = TerracottaRailSampleData.sample(); + DocumentTemplate template = TerracottaRail.create(); + + try (DocumentSession document = GraphCompose.document(outputFile) + .pageSize(DocumentPageSize.A4) + .margin(0f, 0f, 0f, 0f) + .create()) { + template.compose(document, doc); + 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/cv/presets/TerracottaRailFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailFixtures.java new file mode 100644 index 000000000..6b8271bd5 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailFixtures.java @@ -0,0 +1,205 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; +import com.demcha.compose.document.templates.cv.data.Slot; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.OptionalDouble; + +/** + * Shared fixture data for the {@link TerracottaRail} gates — the SAME + * document feeds the pixel parity test and the layout snapshot test, so a + * geometry shift the pixel budget absorbs still trips the exact snapshot, + * and vice versa. + */ +final class TerracottaRailFixtures { + + /** The break a fact stacks its values on. */ + private static final String NEWLINE = String.valueOf((char) 10); + + /** The dash this sheet writes a date range with. */ + private static final String EN_DASH = String.valueOf((char) 0x2013); + + private TerracottaRailFixtures() { + } + + /** + * The canonical one-page CV — the monogram, four contact rows including + * a link, two bulleted lists, two credentials, three facts behind their + * marks, a three-paragraph summary, three roles on the rail, three + * marked projects and two degrees. + */ + static CvDocument canonicalCv() { + List placements = new ArrayList<>(); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, competencies())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, software())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, certifications())); + placements.add(new CvDocument.Placement(Slot.SIDEBAR, facts())); + placements.add(new CvDocument.Placement(Slot.MAIN, summary())); + placements.add(new CvDocument.Placement(Slot.MAIN, experience())); + placements.add(new CvDocument.Placement(Slot.MAIN, projects())); + placements.add(new CvDocument.Placement(Slot.MAIN, education())); + return new CvDocument(identity(), placements); + } + + static CvIdentity identity() { + return new CvIdentity( + CvName.of("OLIVER", "BENNETT"), + "SENIOR ARCHITECT", + new Contact("+44 7700 900123", "oliver.bennett@email.com", + "Bristol, United Kingdom"), + List.of(new Link("linkedin.com/in/oliverbennett-architect", + "https://linkedin.com/in/oliverbennett-architect")), + Optional.empty()); + } + + static SkillsSection competencies() { + return plainSkills("CORE COMPETENCIES", + "Architectural Design", "Concept Development", "Planning Applications", + "Technical Drawings", "Revit", "AutoCAD", "BIM Coordination", + "Design Presentations", "Project Delivery", "Stakeholder Management", + "Sustainable Design", "Building Regulations"); + } + + static SkillsSection software() { + return plainSkills("SOFTWARE", + "Revit", "AutoCAD", "Rhino", "SketchUp", "Adobe InDesign", "Photoshop", + "Microsoft Office"); + } + + static EntriesSection certifications() { + return new EntriesSection("CERTIFICATIONS", List.of( + CvEntry.builder("ARB Registered Architect").build(), + CvEntry.builder("RIBA Chartered Member").build())); + } + + static EntriesSection facts() { + return new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Languages:") + .icon("globe") + .body("English (Native)," + NEWLINE + "Spanish (Conversational)") + .build(), + CvEntry.builder("Right to Work:") + .icon("badge") + .body("United Kingdom") + .build(), + CvEntry.builder("Availability:") + .icon("clock") + .body("1 month notice") + .build())); + } + + static ParagraphSection summary() { + return new ParagraphSection("PROFESSIONAL SUMMARY", String.join(NEWLINE, + "Senior Architect with over 8 years of experience delivering residential, " + + "mixed-use, and commercial projects across all RIBA work stages.", + "Proven expertise in design development, planning applications, and technical " + + "delivery with a strong focus on sustainability, quality, and user " + + "experience.", + "Collaborative communicator skilled in coordinating consultants, engaging " + + "stakeholders, and leading multidisciplinary teams to achieve " + + "successful outcomes.")); + } + + static EntriesSection experience() { + return new EntriesSection("PROFESSIONAL EXPERIENCE", List.of( + CvEntry.builder("Senior Architect") + .subtitle("Northline Studio, Bristol, UK") + .date("2021" + EN_DASH + "Present") + .body(String.join(NEWLINE, + "Lead design packages from concept through to detailed design " + + "across mid-scale residential and mixed-use projects.", + "Coordinate structural, M&E, landscape and planning consultants " + + "to ensure integrated and buildable solutions.", + "Prepare and manage planning applications, design and access " + + "statements, and supporting documentation.", + "Present and communicate design proposals to clients and " + + "stakeholders, securing approvals and driving projects " + + "forward.")) + .build(), + CvEntry.builder("Architect") + .subtitle("Urban Form Partners, Bath, UK") + .date("2018" + EN_DASH + "2021") + .body(String.join(NEWLINE, + "Developed concept and technical designs for a range of " + + "residential, commercial, and education projects.", + "Prepared coordinated drawing sets, schedules, and " + + "specifications to support planning and construction.", + "Supported project delivery on site, resolving design queries " + + "and ensuring quality outcomes.", + "Coordinated with contractors and consultants to maintain " + + "programme, budget and design intent.")) + .build(), + CvEntry.builder("Part II Architectural Assistant") + .subtitle("Axis Design Workshop, Cardiff, UK") + .date("2016" + EN_DASH + "2018") + .body(String.join(NEWLINE, + "Supported senior architects across all RIBA stages on a " + + "variety of project types.", + "Produced CAD and Revit drawings, models, and visualisations to " + + "communicate design intent.", + "Undertook research, prepared presentation boards, and assisted " + + "with planning documentation.")) + .build())); + } + + static EntriesSection projects() { + return new EntriesSection("SELECTED PROJECTS", List.of( + CvEntry.builder("Harbour Point") + .subtitle("Mixed-Use Regeneration") + .place("Bristol") + .icon("building") + .body("Mixed-use development delivering 142 homes, retail space and " + + "public realm improvements; secured planning consent and is " + + "now on site.") + .build(), + CvEntry.builder("The Assembly Hotel") + .subtitle("Boutique Hotel Refurbishment") + .place("Bath") + .icon("hotel") + .body("Sensitive refurbishment of listed building to create a " + + "36-bedroom boutique hotel; enhanced heritage features and " + + "guest experience.") + .build(), + CvEntry.builder("Elmwood Mews") + .subtitle("Residential Development") + .place("Clifton, Bristol") + .icon("house") + .body("Design of 28 high-quality homes within a sustainable masterplan; " + + "achieved high environmental standards and strong sales " + + "performance.") + .build())); + } + + static EntriesSection education() { + return new EntriesSection("EDUCATION", List.of( + CvEntry.builder("MArch Architecture") + .subtitle("University of Sheffield") + .date("2014" + EN_DASH + "2016") + .build(), + CvEntry.builder("BA (Hons) Architecture") + .subtitle("University of the West of England") + .date("2011" + EN_DASH + "2014") + .build())); + } + + private static SkillsSection plainSkills(String title, String... names) { + List entries = new ArrayList<>(); + for (String name : names) { + entries.add(new CvSkill(name, OptionalDouble.empty())); + } + return new SkillsSection(title, List.of(new SkillGroup(title, entries))); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailLayoutSnapshotTest.java new file mode 100644 index 000000000..bb2a3af80 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailLayoutSnapshotTest.java @@ -0,0 +1,38 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +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 TerracottaRail} — freezes the + * resolved geometry of the canonical one-page CV, which the pixel budget + * cannot see: a small column or spacing shift stays under the visual-diff + * budget but changes the snapshot. + * + *

    This preset leaves the page to the caller, so the session sets A4 with + * no margin: both columns run to the paper edge and each carries its own + * padding.

    + * + *

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

    + */ +class TerracottaRailLayoutSnapshotTest { + + @Test + void canonicalCvMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(0f, 0f, 0f, 0f) + .create()) { + TerracottaRail.create().compose(session, TerracottaRailFixtures.canonicalCv()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(1); + TemplateTestSupport.assertCanonicalSnapshot( + session, "terracotta_rail_layout", "cv-v2"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java new file mode 100644 index 000000000..d443008f6 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java @@ -0,0 +1,225 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvDocument; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvName; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.Slot; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.interactive.action.PDActionURI; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link TerracottaRail} — proves the preset renders a + * {@link CvDocument} end-to-end with its packaged marks, draws the monogram + * from the name, reports an unknown icon token as a data error, refuses a CV + * longer than its sheet rather than losing an entry, and carries the contact + * channels and a project title as link annotations, which move no pixel and + * no layout node so neither gate would notice them going missing. + */ +class TerracottaRailSmokeTest { + + private static byte[] render(CvDocument doc) throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(0f, 0f, 0f, 0f) + .create()) { + TerracottaRail.create().compose(session, doc); + 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); + } + } + + /** + * The text with its spaces removed. The sheet's headings and its masthead + * are letter-spaced with real space characters, so what is being asserted + * is the wording, not the tracking. + */ + private static String compact(String text) { + return text.replaceAll("(?U)\\s", ""); + } + + private static List linkTargets(byte[] pdfBytes) throws Exception { + List targets = new ArrayList<>(); + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + for (PDPage page : document.getPages()) { + for (PDAnnotation annotation : page.getAnnotations()) { + if (annotation instanceof PDAnnotationLink link + && link.getAction() instanceof PDActionURI uri) { + targets.add(uri.getURI()); + } + } + } + } + return targets; + } + + /** The canonical document with one section replaced. */ + private static CvDocument withSection(Slot slot, EntriesSection replacement, + String replacedTitle) { + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : TerracottaRailFixtures.canonicalCv().placements()) { + if (placement.section().title().equals(replacedTitle)) { + placements.add(new CvDocument.Placement(slot, replacement)); + } else { + placements.add(placement); + } + } + return new CvDocument(TerracottaRailFixtures.identity(), placements); + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = TerracottaRail.create(); + assertThat(template.id()).isEqualTo(TerracottaRail.ID); + assertThat(template.displayName()).isEqualTo(TerracottaRail.DISPLAY_NAME); + } + + @Test + void rendersCanonicalCvWithPackagedMarks() throws Exception { + render(TerracottaRailFixtures.canonicalCv()); + } + + @Test + void canonicalRenderCarriesEveryColumnsText() throws Exception { + String text = textOf(render(TerracottaRailFixtures.canonicalCv())); + assertThat(text) + .contains("oliver.bennett@email.com") + .contains("Architectural Design") + .contains("Microsoft Office") + .contains("ARB Registered Architect") + .contains("Northline Studio, Bristol, UK") + .contains("Harbour Point") + .contains("University of Sheffield"); + assertThat(compact(text)) + .contains("OLIVERBENNETT") + .contains("SENIORARCHITECT") + .contains("PROFESSIONALEXPERIENCE"); + } + + @Test + void theMonogramIsDrawnFromTheName() throws Exception { + // Two capitals on their own line, and no field of their own in the + // model: the initials are the whole source. + String text = textOf(render(TerracottaRailFixtures.canonicalCv())); + assertThat(text.lines().map(String::strip).toList()).contains("OB"); + } + + @Test + void contactChannelsAndLinksAreClickable() throws Exception { + List targets = linkTargets(render(TerracottaRailFixtures.canonicalCv())); + assertThat(targets) + .contains("mailto:oliver.bennett@email.com") + .contains("tel:+447700900123") + .contains("https://linkedin.com/in/oliverbennett-architect"); + } + + @Test + void aProjectTitleBecomesALinkWhenItsEntryCarriesOne() throws Exception { + EntriesSection linked = new EntriesSection("SELECTED PROJECTS", List.of( + CvEntry.builder("Harbour Point") + .subtitle("Mixed-Use Regeneration") + .place("Bristol") + .icon("building") + .link("https://example.test/harbour-point") + .body("Mixed-use development delivering 142 homes.") + .build())); + + List targets = linkTargets( + render(withSection(Slot.MAIN, linked, "SELECTED PROJECTS"))); + assertThat(targets).contains("https://example.test/harbour-point"); + } + + @Test + void anEntryWithoutAMarkIsDrawnWithoutOne() throws Exception { + EntriesSection unmarked = new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Right to Work:").body("United Kingdom").build())); + + String text = textOf(render(withSection(Slot.SIDEBAR, unmarked, + "ADDITIONAL INFORMATION"))); + assertThat(text).contains("Right to Work:").contains("United Kingdom"); + } + + @Test + void anUnknownMarkIsReportedAsADataError() { + EntriesSection wrong = new EntriesSection("ADDITIONAL INFORMATION", List.of( + CvEntry.builder("Languages:").icon("telescope").body("English").build())); + + assertThatThrownBy(() -> render(withSection(Slot.SIDEBAR, wrong, + "ADDITIONAL INFORMATION"))) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("telescope") + .hasMessageContaining("badge"); + } + + @Test + void aDocumentWithNothingButAnIdentityStillRenders() throws Exception { + // Every berth empty: no heading, no divider, and nothing drawn but + // the monogram, its rule and the masthead. + render(new CvDocument(TerracottaRailFixtures.identity(), List.of())); + } + + @Test + void anIdentityWithoutLinksDrawsTheThreeChannelsAndNothingElse() throws Exception { + // The contact triple is non-blank by construction, so the three + // channels are always there; the links are what a document may omit. + CvIdentity noLinks = new CvIdentity(CvName.of("Ada", "Lovelace"), "Analyst", + new Contact("+44 20 7946 0000", "ada@example.test", "London, UK"), + List.of(), Optional.empty()); + + // A run that wraps or breaks at a space carries one annotation per + // piece, so it is the set of targets that is asserted, not the count. + byte[] pdfBytes = render(new CvDocument(noLinks, List.of())); + assertThat(Set.copyOf(linkTargets(pdfBytes))) + .containsExactlyInAnyOrder("mailto:ada@example.test", "tel:+442079460000"); + assertThat(textOf(pdfBytes).lines().map(String::strip).toList()).contains("AL"); + } + + @Test + void refusesACvLongerThanTheSheet() { + // The two columns are one row, and a row is atomic: a CV that outgrows + // the sheet raises rather than losing an entry to a silent cap. + List many = new ArrayList<>(); + for (int index = 0; index < 14; index++) { + many.add(CvEntry.builder("Senior Architect " + index) + .subtitle("Northline Studio, Bristol, UK") + .date("2021") + .body("Lead design packages from concept through to detailed design.") + .build()); + } + CvDocument tooLong = withSection(Slot.MAIN, + new EntriesSection("PROFESSIONAL EXPERIENCE", many), + "PROFESSIONAL EXPERIENCE"); + + assertThatThrownBy(() -> render(tooLong)) + .hasMessageContaining("Body"); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailVisualParityTest.java new file mode 100644 index 000000000..e4833448e --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailVisualParityTest.java @@ -0,0 +1,45 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentPageSize; +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 TerracottaRail} — the canonical + * one-page CV against a checked-in baseline. + * + *

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

    + */ +class TerracottaRailVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "cv-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() + .pageSize(DocumentPageSize.A4) + .margin(0f, 0f, 0f, 0f) + .create()) { + TerracottaRail.create().compose(document, TerracottaRailFixtures.canonicalCv()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("terracotta_rail", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json new file mode 100644 index 000000000..4e6f57818 --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json @@ -0,0 +1,4637 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 595.276, + "innerHeight" : 841.89, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, + "totalPages" : 1, + "nodes" : [ { + "path" : "TerracottaRailCv[0]", + "entityName" : "TerracottaRailCv", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 0.0, + "computedY" : 47.306, + "placementX" : 0.0, + "placementY" : 47.306, + "placementWidth" : 595.276, + "placementHeight" : 794.584, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 794.584, + "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" : "TerracottaRailCv[0]/Body[0]", + "entityName" : "Body", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 0.0, + "computedY" : 47.306, + "placementX" : 0.0, + "placementY" : 47.306, + "placementWidth" : 595.276, + "placementHeight" : 794.584, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 595.276, + "contentHeight" : 794.584, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "entityName" : "Sidebar", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 0.0, + "computedY" : 100.839, + "placementX" : 0.0, + "placementY" : 100.839, + "placementWidth" : 183.345, + "placementHeight" : 741.051, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 183.345, + "contentHeight" : 741.051, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 20.0, + "right" : 11.4, + "bottom" : 5.0, + "left" : 25.4 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Monogram[0]", + "entityName" : "Monogram", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 774.19, + "placementX" : 25.4, + "placementY" : 774.19, + "placementWidth" : 48.78, + "placementHeight" : 47.7, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.78, + "contentHeight" : 47.7, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/MonogramRule[1]", + "entityName" : "MonogramRule", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 764.79, + "placementX" : 25.4, + "placementY" : 764.79, + "placementWidth" : 48.0, + "placementHeight" : 1.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.0, + "contentHeight" : 1.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 10.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Contact[2]", + "entityName" : "Contact", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 684.99, + "placementX" : 25.4, + "placementY" : 684.99, + "placementWidth" : 138.313, + "placementHeight" : 69.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 138.313, + "contentHeight" : 69.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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Contact[2]/Contact_0[0]", + "entityName" : "Contact_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Contact[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 741.84, + "placementX" : 25.4, + "placementY" : 741.84, + "placementWidth" : 113.88, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 113.88, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Contact[2]/Contact_1[1]", + "entityName" : "Contact_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Contact[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 724.39, + "placementX" : 25.4, + "placementY" : 724.39, + "placementWidth" : 85.646, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 85.646, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Contact[2]/Contact_2[2]", + "entityName" : "Contact_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Contact[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 706.94, + "placementX" : 25.4, + "placementY" : 706.94, + "placementWidth" : 106.253, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.253, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Contact[2]/Contact_3[3]", + "entityName" : "Contact_3", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Contact[2]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 689.49, + "placementX" : 25.4, + "placementY" : 689.49, + "placementWidth" : 138.313, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 138.313, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 4.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Divider_AfterContact[3]", + "entityName" : "Divider_AfterContact", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 675.99, + "placementX" : 25.4, + "placementY" : 675.99, + "placementWidth" : 146.545, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 1.0, + "margin" : { + "top" : 8.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "entityName" : "CoreCompetencies", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 457.063, + "placementX" : 25.4, + "placementY" : 457.063, + "placementWidth" : 106.829, + "placementHeight" : 210.926, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.829, + "contentHeight" : 210.926, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Heading_CORECOMPETENCIES[0]", + "entityName" : "Heading_CORECOMPETENCIES", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 657.463, + "placementX" : 25.4, + "placementY" : 657.463, + "placementWidth" : 101.553, + "placementHeight" : 10.526, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 101.553, + "contentHeight" : 10.526, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_0[1]", + "entityName" : "Competency_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 635.513, + "placementX" : 25.4, + "placementY" : 635.513, + "placementWidth" : 87.369, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.369, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_1[2]", + "entityName" : "Competency_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 619.563, + "placementX" : 25.4, + "placementY" : 619.563, + "placementWidth" : 95.358, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 95.358, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_2[3]", + "entityName" : "Competency_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 603.613, + "placementX" : 25.4, + "placementY" : 603.613, + "placementWidth" : 91.068, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 91.068, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_3[4]", + "entityName" : "Competency_3", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 587.663, + "placementX" : 25.4, + "placementY" : 587.663, + "placementWidth" : 83.888, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 83.888, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_4[5]", + "entityName" : "Competency_4", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 571.713, + "placementX" : 25.4, + "placementY" : 571.713, + "placementWidth" : 30.716, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.716, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_5[6]", + "entityName" : "Competency_5", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 555.763, + "placementX" : 25.4, + "placementY" : 555.763, + "placementWidth" : 47.546, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 47.546, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_6[7]", + "entityName" : "Competency_6", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 539.813, + "placementX" : 25.4, + "placementY" : 539.813, + "placementWidth" : 77.803, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.803, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_7[8]", + "entityName" : "Competency_7", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 8, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 523.863, + "placementX" : 25.4, + "placementY" : 523.863, + "placementWidth" : 90.141, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.141, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_8[9]", + "entityName" : "Competency_8", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 9, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 507.913, + "placementX" : 25.4, + "placementY" : 507.913, + "placementWidth" : 71.271, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.271, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_9[10]", + "entityName" : "Competency_9", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 10, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 491.963, + "placementX" : 25.4, + "placementY" : 491.963, + "placementWidth" : 106.829, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.829, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_10[11]", + "entityName" : "Competency_10", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 11, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 476.013, + "placementX" : 25.4, + "placementY" : 476.013, + "placementWidth" : 81.579, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 81.579, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]/Competency_11[12]", + "entityName" : "Competency_11", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/CoreCompetencies[4]", + "childIndex" : 12, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 460.063, + "placementX" : 25.4, + "placementY" : 460.063, + "placementWidth" : 86.913, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.913, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Divider_AfterCompetencies[5]", + "entityName" : "Divider_AfterCompetencies", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 448.063, + "placementX" : 25.4, + "placementY" : 448.063, + "placementWidth" : 146.545, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 1.0, + "margin" : { + "top" : 8.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]", + "entityName" : "Software", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 307.487, + "placementX" : 25.4, + "placementY" : 307.487, + "placementWidth" : 72.249, + "placementHeight" : 132.576, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.249, + "contentHeight" : 132.576, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]/Heading_SOFTWARE[0]", + "entityName" : "Heading_SOFTWARE", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 429.537, + "placementX" : 25.4, + "placementY" : 429.537, + "placementWidth" : 52.0, + "placementHeight" : 10.526, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.0, + "contentHeight" : 10.526, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]/AccentLine_SOFTWARE[1]", + "entityName" : "AccentLine_SOFTWARE", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 424.637, + "placementX" : 25.4, + "placementY" : 424.637, + "placementWidth" : 20.0, + "placementHeight" : 1.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 1.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]/Software_0[2]", + "entityName" : "Software_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 406.187, + "placementX" : 25.4, + "placementY" : 406.187, + "placementWidth" : 29.916, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 29.916, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]/Software_1[3]", + "entityName" : "Software_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 390.237, + "placementX" : 25.4, + "placementY" : 390.237, + "placementWidth" : 46.746, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 46.746, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]/Software_2[4]", + "entityName" : "Software_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 374.287, + "placementX" : 25.4, + "placementY" : 374.287, + "placementWidth" : 32.275, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 32.275, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]/Software_3[5]", + "entityName" : "Software_3", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 358.337, + "placementX" : 25.4, + "placementY" : 358.337, + "placementWidth" : 46.78, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 46.78, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]/Software_4[6]", + "entityName" : "Software_4", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 342.387, + "placementX" : 25.4, + "placementY" : 342.387, + "placementWidth" : 69.999, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.999, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]/Software_5[7]", + "entityName" : "Software_5", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 326.437, + "placementX" : 25.4, + "placementY" : 326.437, + "placementWidth" : 50.994, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 50.994, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]/Software_6[8]", + "entityName" : "Software_6", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Software[6]", + "childIndex" : 8, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 310.487, + "placementX" : 25.4, + "placementY" : 310.487, + "placementWidth" : 72.249, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.249, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Divider_AfterSoftware[7]", + "entityName" : "Divider_AfterSoftware", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 298.487, + "placementX" : 25.4, + "placementY" : 298.487, + "placementWidth" : 146.545, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 1.0, + "margin" : { + "top" : 8.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Certifications[8]", + "entityName" : "Certifications", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 8, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 237.661, + "placementX" : 25.4, + "placementY" : 237.661, + "placementWidth" : 105.102, + "placementHeight" : 52.826, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.102, + "contentHeight" : 52.826, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Certifications[8]/Heading_CERTIFICATIONS[0]", + "entityName" : "Heading_CERTIFICATIONS", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Certifications[8]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 279.961, + "placementX" : 25.4, + "placementY" : 279.961, + "placementWidth" : 77.553, + "placementHeight" : 10.526, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 77.553, + "contentHeight" : 10.526, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Certifications[8]/AccentLine_CERTIFICATIONS[1]", + "entityName" : "AccentLine_CERTIFICATIONS", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Certifications[8]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 275.061, + "placementX" : 25.4, + "placementY" : 275.061, + "placementWidth" : 20.0, + "placementHeight" : 1.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 1.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Certifications[8]/Certification_0[2]", + "entityName" : "Certification_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Certifications[8]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 256.611, + "placementX" : 25.4, + "placementY" : 256.611, + "placementWidth" : 105.102, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 105.102, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Certifications[8]/Certification_1[3]", + "entityName" : "Certification_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Certifications[8]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 240.661, + "placementX" : 25.4, + "placementY" : 240.661, + "placementWidth" : 102.658, + "placementHeight" : 12.95, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 102.658, + "contentHeight" : 12.95, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/Divider_AfterCertifications[9]", + "entityName" : "Divider_AfterCertifications", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 9, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 228.661, + "placementX" : 25.4, + "placementY" : 228.661, + "placementWidth" : 146.545, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 1.0, + "margin" : { + "top" : 8.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]", + "entityName" : "AdditionalInformation", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]", + "childIndex" : 10, + "depth" : 4, + "layer" : 4, + "computedX" : 25.4, + "computedY" : 105.839, + "placementX" : 25.4, + "placementY" : 105.839, + "placementWidth" : 146.545, + "placementHeight" : 114.822, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 114.822, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/Heading_ADDITIONALINFORMATION[0]", + "entityName" : "Heading_ADDITIONALINFORMATION", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 210.134, + "placementX" : 25.4, + "placementY" : 210.134, + "placementWidth" : 131.334, + "placementHeight" : 10.526, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 131.334, + "contentHeight" : 10.526, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]", + "entityName" : "AddInfo_0Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 169.293, + "placementX" : 25.4, + "placementY" : 169.293, + "placementWidth" : 146.545, + "placementHeight" : 31.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 31.841, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]", + "entityName" : "AddInfo_0Layer", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 25.4, + "computedY" : 169.293, + "placementX" : 25.4, + "placementY" : 169.293, + "placementWidth" : 146.545, + "placementHeight" : 31.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 31.841, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]", + "entityName" : "AddInfo_0", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 25.4, + "computedY" : 169.293, + "placementX" : 25.4, + "placementY" : 169.293, + "placementWidth" : 146.545, + "placementHeight" : 31.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 31.841, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]/Icon_0[0]", + "entityName" : "Icon_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 25.4, + "computedY" : 185.134, + "placementX" : 25.4, + "placementY" : 185.134, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]/Text_0[1]", + "entityName" : "Text_0", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 51.778, + "computedY" : 169.293, + "placementX" : 51.778, + "placementY" : 169.293, + "placementWidth" : 90.753, + "placementHeight" : 31.841, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.753, + "contentHeight" : 31.841, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]/Text_0[1]/Label_0[0]", + "entityName" : "Label_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]/Text_0[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 51.778, + "computedY" : 191.021, + "placementX" : 51.778, + "placementY" : 191.021, + "placementWidth" : 41.735, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 41.735, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]/Text_0[1]/Val_0[1]", + "entityName" : "Val_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]/Text_0[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 51.778, + "computedY" : 180.407, + "placementX" : 51.778, + "placementY" : 180.407, + "placementWidth" : 59.367, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 59.367, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]/Text_0[1]/Val_0[2]", + "entityName" : "Val_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_0Stack[1]/AddInfo_0Layer[0]/AddInfo_0[0]/Text_0[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 51.778, + "computedY" : 169.793, + "placementX" : 51.778, + "placementY" : 169.793, + "placementWidth" : 90.753, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 90.753, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]", + "entityName" : "AddInfo_1Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 141.066, + "placementX" : 25.4, + "placementY" : 141.066, + "placementWidth" : 146.545, + "placementHeight" : 21.227, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 21.227, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]", + "entityName" : "AddInfo_1Layer", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 25.4, + "computedY" : 141.066, + "placementX" : 25.4, + "placementY" : 141.066, + "placementWidth" : 146.545, + "placementHeight" : 21.227, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 21.227, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]/AddInfo_1[0]", + "entityName" : "AddInfo_1", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 25.4, + "computedY" : 141.066, + "placementX" : 25.4, + "placementY" : 141.066, + "placementWidth" : 146.545, + "placementHeight" : 21.227, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 21.227, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]/AddInfo_1[0]/Icon_1[0]", + "entityName" : "Icon_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]/AddInfo_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 25.4, + "computedY" : 146.293, + "placementX" : 25.4, + "placementY" : 146.293, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]/AddInfo_1[0]/Text_1[1]", + "entityName" : "Text_1", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]/AddInfo_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 51.778, + "computedY" : 141.066, + "placementX" : 51.778, + "placementY" : 141.066, + "placementWidth" : 60.412, + "placementHeight" : 21.227, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.412, + "contentHeight" : 21.227, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]/AddInfo_1[0]/Text_1[1]/Label_1[0]", + "entityName" : "Label_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]/AddInfo_1[0]/Text_1[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 51.778, + "computedY" : 152.18, + "placementX" : 51.778, + "placementY" : 152.18, + "placementWidth" : 55.507, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 55.507, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]/AddInfo_1[0]/Text_1[1]/Val_1[1]", + "entityName" : "Val_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_1Stack[2]/AddInfo_1Layer[0]/AddInfo_1[0]/Text_1[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 51.778, + "computedY" : 141.566, + "placementX" : 51.778, + "placementY" : 141.566, + "placementWidth" : 60.412, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.412, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]", + "entityName" : "AddInfo_2Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 25.4, + "computedY" : 112.839, + "placementX" : 25.4, + "placementY" : 112.839, + "placementWidth" : 146.545, + "placementHeight" : 21.227, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 21.227, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 7.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]", + "entityName" : "AddInfo_2Layer", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 25.4, + "computedY" : 112.839, + "placementX" : 25.4, + "placementY" : 112.839, + "placementWidth" : 146.545, + "placementHeight" : 21.227, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 21.227, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]/AddInfo_2[0]", + "entityName" : "AddInfo_2", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 25.4, + "computedY" : 112.839, + "placementX" : 25.4, + "placementY" : 112.839, + "placementWidth" : 146.545, + "placementHeight" : 21.227, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.545, + "contentHeight" : 21.227, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]/AddInfo_2[0]/Icon_2[0]", + "entityName" : "Icon_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]/AddInfo_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 25.4, + "computedY" : 118.066, + "placementX" : 25.4, + "placementY" : 118.066, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]/AddInfo_2[0]/Text_2[1]", + "entityName" : "Text_2", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]/AddInfo_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 51.778, + "computedY" : 112.839, + "placementX" : 51.778, + "placementY" : 112.839, + "placementWidth" : 56.358, + "placementHeight" : 21.227, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.358, + "contentHeight" : 21.227, + "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" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]/AddInfo_2[0]/Text_2[1]/Label_2[0]", + "entityName" : "Label_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]/AddInfo_2[0]/Text_2[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 51.778, + "computedY" : 123.953, + "placementX" : 51.778, + "placementY" : 123.953, + "placementWidth" : 44.036, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 44.036, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]/AddInfo_2[0]/Text_2[1]/Val_2[1]", + "entityName" : "Val_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/Sidebar[0]/AdditionalInformation[10]/AddInfo_2Stack[3]/AddInfo_2Layer[0]/AddInfo_2[0]/Text_2[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 51.778, + "computedY" : 113.339, + "placementX" : 51.778, + "placementY" : 113.339, + "placementWidth" : 56.358, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 56.358, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "entityName" : "MainColumn", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 183.345, + "computedY" : 47.306, + "placementX" : 183.345, + "placementY" : 47.306, + "placementWidth" : 411.931, + "placementHeight" : 794.584, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 411.931, + "contentHeight" : 794.584, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 20.0, + "right" : 24.0, + "bottom" : 5.0, + "left" : 22.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 759.69, + "placementX" : 205.345, + "placementY" : 759.69, + "placementWidth" : 321.748, + "placementHeight" : 62.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 321.748, + "contentHeight" : 62.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Masthead[0]/FullName[0]", + "entityName" : "FullName", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Masthead[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 788.29, + "placementX" : 205.345, + "placementY" : 788.29, + "placementWidth" : 321.748, + "placementHeight" : 33.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 321.748, + "contentHeight" : 33.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 8.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Masthead[0]/JobTitle[1]", + "entityName" : "JobTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Masthead[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 764.69, + "placementX" : 205.345, + "placementY" : 764.69, + "placementWidth" : 169.468, + "placementHeight" : 15.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 169.468, + "contentHeight" : 15.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Divider_AfterMasthead[1]", + "entityName" : "Divider_AfterMasthead", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 754.69, + "placementX" : 205.345, + "placementY" : 754.69, + "placementWidth" : 365.931, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 1.0, + "margin" : { + "top" : 4.0, + "right" : 0.0, + "bottom" : 6.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]", + "entityName" : "Summary", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 654.443, + "placementX" : 205.345, + "placementY" : 654.443, + "placementWidth" : 346.356, + "placementHeight" : 94.246, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.356, + "contentHeight" : 94.246, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]/Heading_PROFESSIONALSUMMARY[0]", + "entityName" : "Heading_PROFESSIONALSUMMARY", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 738.163, + "placementX" : 205.345, + "placementY" : 738.163, + "placementWidth" : 133.212, + "placementHeight" : 10.526, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 133.212, + "contentHeight" : 10.526, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]/AccentLine_PROFESSIONALSUMMARY[1]", + "entityName" : "AccentLine_PROFESSIONALSUMMARY", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 733.263, + "placementX" : 205.345, + "placementY" : 733.263, + "placementWidth" : 22.0, + "placementHeight" : 1.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.0, + "contentHeight" : 1.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]/SummaryPara_0[2]", + "entityName" : "SummaryPara_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 705.823, + "placementX" : 205.345, + "placementY" : 705.823, + "placementWidth" : 323.91, + "placementHeight" : 21.94, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 323.91, + "contentHeight" : 21.94, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]/SummaryPara_1[3]", + "entityName" : "SummaryPara_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 681.383, + "placementX" : 205.345, + "placementY" : 681.383, + "placementWidth" : 346.356, + "placementHeight" : 21.94, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 346.356, + "contentHeight" : 21.94, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]/SummaryPara_2[4]", + "entityName" : "SummaryPara_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Summary[2]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 656.943, + "placementX" : 205.345, + "placementY" : 656.943, + "placementWidth" : 342.787, + "placementHeight" : 21.94, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 342.787, + "contentHeight" : 21.94, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Divider_AfterSummary[3]", + "entityName" : "Divider_AfterSummary", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 647.443, + "placementX" : 205.345, + "placementY" : 647.443, + "placementWidth" : 365.931, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 1.0, + "margin" : { + "top" : 6.0, + "right" : 0.0, + "bottom" : 6.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]", + "entityName" : "Experience", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 303.313, + "placementX" : 205.345, + "placementY" : 303.313, + "placementWidth" : 365.921, + "placementHeight" : 337.631, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.921, + "contentHeight" : 337.631, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/Heading_PROFESSIONALEXPERIENCE[0]", + "entityName" : "Heading_PROFESSIONALEXPERIENCE", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 630.417, + "placementX" : 205.345, + "placementY" : 630.417, + "placementWidth" : 143.475, + "placementHeight" : 10.526, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 143.475, + "contentHeight" : 10.526, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]", + "entityName" : "ExperienceEntry_0", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 497.072, + "placementX" : 205.345, + "placementY" : 497.072, + "placementWidth" : 365.921, + "placementHeight" : 124.345, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.921, + "contentHeight" : 124.345, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.0, + "left" : 13.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/RoleLine_0[0]", + "entityName" : "RoleLine_0", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 218.345, + "computedY" : 609.652, + "placementX" : 218.345, + "placementY" : 609.652, + "placementWidth" : 352.921, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/RoleLine_0[0]/RoleTable_0[0]", + "entityName" : "RoleTable_0", + "entityKind" : "TableNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/RoleLine_0[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 218.345, + "computedY" : 609.652, + "placementX" : 218.345, + "placementY" : 609.652, + "placementWidth" : 352.921, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/RoleLine_0[0]/RoleMarker_0[1]", + "entityName" : "RoleMarker_0", + "entityKind" : "EllipseNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/RoleLine_0[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 202.245, + "computedY" : 615.217, + "placementX" : 202.245, + "placementY" : 615.217, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/Employer_0[1]", + "entityName" : "Employer_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 218.345, + "computedY" : 599.332, + "placementX" : 218.345, + "placementY" : 599.332, + "placementWidth" : 100.783, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.783, + "contentHeight" : 10.32, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]/Highlights_0[2]", + "entityName" : "Highlights_0", + "entityKind" : "ListNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_0[1]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 218.345, + "computedY" : 506.072, + "placementX" : 218.345, + "placementY" : 506.072, + "placementWidth" : 348.171, + "placementHeight" : 90.76, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 348.171, + "contentHeight" : 90.76, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]", + "entityName" : "ExperienceEntry_1", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 384.197, + "placementX" : 205.345, + "placementY" : 384.197, + "placementWidth" : 365.921, + "placementHeight" : 112.875, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.921, + "contentHeight" : 112.875, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.0, + "left" : 13.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/RoleLine_1[0]", + "entityName" : "RoleLine_1", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 218.345, + "computedY" : 485.307, + "placementX" : 218.345, + "placementY" : 485.307, + "placementWidth" : 352.921, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/RoleLine_1[0]/RoleTable_1[0]", + "entityName" : "RoleTable_1", + "entityKind" : "TableNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/RoleLine_1[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 218.345, + "computedY" : 485.307, + "placementX" : 218.345, + "placementY" : 485.307, + "placementWidth" : 352.921, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/RoleLine_1[0]/RoleMarker_1[1]", + "entityName" : "RoleMarker_1", + "entityKind" : "EllipseNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/RoleLine_1[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 202.245, + "computedY" : 490.872, + "placementX" : 202.245, + "placementY" : 490.872, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/Employer_1[1]", + "entityName" : "Employer_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 218.345, + "computedY" : 474.987, + "placementX" : 218.345, + "placementY" : 474.987, + "placementWidth" : 111.654, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 111.654, + "contentHeight" : 10.32, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]/Highlights_1[2]", + "entityName" : "Highlights_1", + "entityKind" : "ListNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_1[2]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 218.345, + "computedY" : 393.197, + "placementX" : 218.345, + "placementY" : 393.197, + "placementWidth" : 349.599, + "placementHeight" : 79.29, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 349.599, + "contentHeight" : 79.29, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]", + "entityName" : "ExperienceEntry_2", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 303.313, + "placementX" : 205.345, + "placementY" : 303.313, + "placementWidth" : 365.921, + "placementHeight" : 80.885, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.921, + "contentHeight" : 80.885, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/RoleLine_2[0]", + "entityName" : "RoleLine_2", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 218.345, + "computedY" : 372.433, + "placementX" : 218.345, + "placementY" : 372.433, + "placementWidth" : 352.921, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/RoleLine_2[0]/RoleTable_2[0]", + "entityName" : "RoleTable_2", + "entityKind" : "TableNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/RoleLine_2[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 218.345, + "computedY" : 372.433, + "placementX" : 218.345, + "placementY" : 372.433, + "placementWidth" : 352.921, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 352.921, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/RoleLine_2[0]/RoleMarker_2[1]", + "entityName" : "RoleMarker_2", + "entityKind" : "EllipseNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/RoleLine_2[0]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 202.245, + "computedY" : 377.997, + "placementX" : 202.245, + "placementY" : 377.997, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/Employer_2[1]", + "entityName" : "Employer_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 218.345, + "computedY" : 362.113, + "placementX" : 218.345, + "placementY" : 362.113, + "placementWidth" : 123.771, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 123.771, + "contentHeight" : 10.32, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]/Highlights_2[2]", + "entityName" : "Highlights_2", + "entityKind" : "ListNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Experience[4]/ExperienceEntry_2[3]", + "childIndex" : 2, + "depth" : 6, + "layer" : 6, + "computedX" : 218.345, + "computedY" : 303.313, + "placementX" : 218.345, + "placementY" : 303.313, + "placementWidth" : 329.019, + "placementHeight" : 56.3, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 329.019, + "contentHeight" : 56.3, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Divider_AfterExperience[5]", + "entityName" : "Divider_AfterExperience", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 5, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 296.313, + "placementX" : 205.345, + "placementY" : 296.313, + "placementWidth" : 365.931, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 1.0, + "margin" : { + "top" : 6.0, + "right" : 0.0, + "bottom" : 6.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "entityName" : "SelectedProjects", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 6, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 139.902, + "placementX" : 205.345, + "placementY" : 139.902, + "placementWidth" : 365.931, + "placementHeight" : 149.91, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 149.91, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Heading_SELECTEDPROJECTS[0]", + "entityName" : "Heading_SELECTEDPROJECTS", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 279.286, + "placementX" : 205.345, + "placementY" : 279.286, + "placementWidth" : 104.79, + "placementHeight" : 10.526, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.79, + "contentHeight" : 10.526, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/AccentLine_SELECTEDPROJECTS[1]", + "entityName" : "AccentLine_SELECTEDPROJECTS", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 274.386, + "placementX" : 205.345, + "placementY" : 274.386, + "placementWidth" : 22.0, + "placementHeight" : 1.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.0, + "contentHeight" : 1.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]", + "entityName" : "Project_0Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 234.894, + "placementX" : 205.345, + "placementY" : 234.894, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]", + "entityName" : "Project_0Layer", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 205.345, + "computedY" : 234.894, + "placementX" : 205.345, + "placementY" : 234.894, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "entityName" : "Project_0", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 205.345, + "computedY" : 234.894, + "placementX" : 205.345, + "placementY" : 234.894, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjIcon_0[0]", + "entityName" : "ProjIcon_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 205.345, + "computedY" : 246.886, + "placementX" : 205.345, + "placementY" : 246.886, + "placementWidth" : 22.0, + "placementHeight" : 22.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.0, + "contentHeight" : 22.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "entityName" : "ProjMeta_0", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 234.619, + "computedY" : 234.894, + "placementX" : 234.619, + "placementY" : 234.894, + "placementWidth" : 98.269, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 98.269, + "contentHeight" : 33.992, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.0, + "bottom" : 0.0, + "left" : 4.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]/ProjTitle_0[0]", + "entityName" : "ProjTitle_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 257.121, + "placementX" : 238.619, + "placementY" : 257.121, + "placementWidth" : 62.344, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 62.344, + "contentHeight" : 11.765, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]/ProjSub_0[1]", + "entityName" : "ProjSub_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 246.008, + "placementX" : 238.619, + "placementY" : 246.008, + "placementWidth" : 86.269, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.269, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]/ProjLoc_0[2]", + "entityName" : "ProjLoc_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjMeta_0[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 234.894, + "placementX" : 238.619, + "placementY" : 234.894, + "placementWidth" : 23.986, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 23.986, + "contentHeight" : 10.114, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjDesc_0[2]", + "entityName" : "ProjDesc_0", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 366.354, + "computedY" : 235.446, + "placementX" : 366.354, + "placementY" : 235.446, + "placementWidth" : 187.16, + "placementHeight" : 33.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 187.16, + "contentHeight" : 33.44, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 10.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjDesc_0[2]/ProjDescText_0[0]", + "entityName" : "ProjDescText_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_0Stack[2]/Project_0Layer[0]/Project_0[0]/ProjDesc_0[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 376.354, + "computedY" : 235.446, + "placementX" : 376.354, + "placementY" : 235.446, + "placementWidth" : 177.16, + "placementHeight" : 33.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 177.16, + "contentHeight" : 33.44, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/ProjDiv_0[3]", + "entityName" : "ProjDiv_0", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 229.894, + "placementX" : 205.345, + "placementY" : 229.894, + "placementWidth" : 365.931, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 1.0, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]", + "entityName" : "Project_1Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 193.902, + "placementX" : 205.345, + "placementY" : 193.902, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]", + "entityName" : "Project_1Layer", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 205.345, + "computedY" : 193.902, + "placementX" : 205.345, + "placementY" : 193.902, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", + "entityName" : "Project_1", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 205.345, + "computedY" : 193.902, + "placementX" : 205.345, + "placementY" : 193.902, + "placementWidth" : 365.931, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 33.992, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjIcon_1[0]", + "entityName" : "ProjIcon_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 205.345, + "computedY" : 205.894, + "placementX" : 205.345, + "placementY" : 205.894, + "placementWidth" : 22.0, + "placementHeight" : 22.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.0, + "contentHeight" : 22.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", + "entityName" : "ProjMeta_1", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 234.619, + "computedY" : 193.902, + "placementX" : 234.619, + "placementY" : 193.902, + "placementWidth" : 118.269, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 118.269, + "contentHeight" : 33.992, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.0, + "bottom" : 0.0, + "left" : 4.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]/ProjTitle_1[0]", + "entityName" : "ProjTitle_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 216.129, + "placementX" : 238.619, + "placementY" : 216.129, + "placementWidth" : 88.011, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 88.011, + "contentHeight" : 11.765, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]/ProjSub_1[1]", + "entityName" : "ProjSub_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 205.016, + "placementX" : 238.619, + "placementY" : 205.016, + "placementWidth" : 106.269, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 106.269, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]/ProjLoc_1[2]", + "entityName" : "ProjLoc_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjMeta_1[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 193.902, + "placementX" : 238.619, + "placementY" : 193.902, + "placementWidth" : 17.37, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 17.37, + "contentHeight" : 10.114, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjDesc_1[2]", + "entityName" : "ProjDesc_1", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 366.354, + "computedY" : 194.454, + "placementX" : 366.354, + "placementY" : 194.454, + "placementWidth" : 200.327, + "placementHeight" : 33.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 200.327, + "contentHeight" : 33.44, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 10.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjDesc_1[2]/ProjDescText_1[0]", + "entityName" : "ProjDescText_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_1Stack[4]/Project_1Layer[0]/Project_1[0]/ProjDesc_1[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 376.354, + "computedY" : 194.454, + "placementX" : 376.354, + "placementY" : 194.454, + "placementWidth" : 190.327, + "placementHeight" : 33.44, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 190.327, + "contentHeight" : 33.44, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/ProjDiv_1[5]", + "entityName" : "ProjDiv_1", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 188.902, + "placementX" : 205.345, + "placementY" : 188.902, + "placementWidth" : 365.931, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 1.0, + "margin" : { + "top" : 2.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]", + "entityName" : "Project_2Stack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 141.902, + "placementX" : 205.345, + "placementY" : 141.902, + "placementWidth" : 365.931, + "placementHeight" : 45.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 45.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 2.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]", + "entityName" : "Project_2Layer", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 205.345, + "computedY" : 141.902, + "placementX" : 205.345, + "placementY" : 141.902, + "placementWidth" : 365.931, + "placementHeight" : 45.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 45.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", + "entityName" : "Project_2", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 205.345, + "computedY" : 141.902, + "placementX" : 205.345, + "placementY" : 141.902, + "placementWidth" : 365.931, + "placementHeight" : 45.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 45.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjIcon_2[0]", + "entityName" : "ProjIcon_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 205.345, + "computedY" : 164.902, + "placementX" : 205.345, + "placementY" : 164.902, + "placementWidth" : 22.0, + "placementHeight" : 22.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.0, + "contentHeight" : 22.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", + "entityName" : "ProjMeta_2", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 234.619, + "computedY" : 152.91, + "placementX" : 234.619, + "placementY" : 152.91, + "placementWidth" : 99.272, + "placementHeight" : 33.992, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 99.272, + "contentHeight" : 33.992, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.0, + "bottom" : 0.0, + "left" : 4.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]/ProjTitle_2[0]", + "entityName" : "ProjTitle_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 175.137, + "placementX" : 238.619, + "placementY" : 175.137, + "placementWidth" : 70.079, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 70.079, + "contentHeight" : 11.765, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]/ProjSub_2[1]", + "entityName" : "ProjSub_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 164.024, + "placementX" : 238.619, + "placementY" : 164.024, + "placementWidth" : 87.272, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.272, + "contentHeight" : 10.114, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 1.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]/ProjLoc_2[2]", + "entityName" : "ProjLoc_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjMeta_2[1]", + "childIndex" : 2, + "depth" : 9, + "layer" : 9, + "computedX" : 238.619, + "computedY" : 152.91, + "placementX" : 238.619, + "placementY" : 152.91, + "placementWidth" : 53.164, + "placementHeight" : 10.114, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 53.164, + "contentHeight" : 10.114, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjDesc_2[2]", + "entityName" : "ProjDesc_2", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]", + "childIndex" : 2, + "depth" : 8, + "layer" : 8, + "computedX" : 366.354, + "computedY" : 141.902, + "placementX" : 366.354, + "placementY" : 141.902, + "placementWidth" : 166.176, + "placementHeight" : 45.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 166.176, + "contentHeight" : 45.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" : 10.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjDesc_2[2]/ProjDescText_2[0]", + "entityName" : "ProjDescText_2", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/SelectedProjects[6]/Project_2Stack[6]/Project_2Layer[0]/Project_2[0]/ProjDesc_2[2]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 376.354, + "computedY" : 141.902, + "placementX" : 376.354, + "placementY" : 141.902, + "placementWidth" : 156.176, + "placementHeight" : 45.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 156.176, + "contentHeight" : 45.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Divider_AfterProjects[7]", + "entityName" : "Divider_AfterProjects", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 7, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 132.902, + "placementX" : 205.345, + "placementY" : 132.902, + "placementWidth" : 365.931, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 1.0, + "margin" : { + "top" : 6.0, + "right" : 0.0, + "bottom" : 6.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", + "entityName" : "Education", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]", + "childIndex" : 8, + "depth" : 4, + "layer" : 4, + "computedX" : 205.345, + "computedY" : 52.306, + "placementX" : 205.345, + "placementY" : 52.306, + "placementWidth" : 365.931, + "placementHeight" : 74.096, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 74.096, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/Heading_EDUCATION[0]", + "entityName" : "Heading_EDUCATION", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 115.876, + "placementX" : 205.345, + "placementY" : 115.876, + "placementWidth" : 60.632, + "placementHeight" : 10.526, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.632, + "contentHeight" : 10.526, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 3.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/AccentLine_EDUCATION[1]", + "entityName" : "AccentLine_EDUCATION", + "entityKind" : "LineNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 110.976, + "placementX" : 205.345, + "placementY" : 110.976, + "placementWidth" : 22.0, + "placementHeight" : 1.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 22.0, + "contentHeight" : 1.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 5.5, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]", + "entityName" : "EducationBandStack", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 205.345, + "computedY" : 52.306, + "placementX" : 205.345, + "placementY" : 52.306, + "placementWidth" : 365.931, + "placementHeight" : 53.17, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 53.17, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]", + "entityName" : "EducationBandLayer", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 205.345, + "computedY" : 52.306, + "placementX" : 205.345, + "placementY" : 52.306, + "placementWidth" : 365.931, + "placementHeight" : 53.17, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 53.17, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]", + "entityName" : "EducationBand", + "entityKind" : "RowNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 205.345, + "computedY" : 52.306, + "placementX" : 205.345, + "placementY" : 52.306, + "placementWidth" : 365.931, + "placementHeight" : 53.17, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 365.931, + "contentHeight" : 53.17, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]", + "entityName" : "EducationEntries", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 205.345, + "computedY" : 52.306, + "placementX" : 205.345, + "placementY" : 52.306, + "placementWidth" : 256.142, + "placementHeight" : 53.17, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 256.142, + "contentHeight" : 53.17, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]", + "entityName" : "EducationEntry_0", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]", + "childIndex" : 0, + "depth" : 9, + "layer" : 9, + "computedX" : 205.345, + "computedY" : 74.391, + "placementX" : 205.345, + "placementY" : 74.391, + "placementWidth" : 248.142, + "placementHeight" : 31.085, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 248.142, + "contentHeight" : 31.085, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 9.0, + "left" : 13.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/EduLine_0[0]", + "entityName" : "EduLine_0", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 218.345, + "computedY" : 93.711, + "placementX" : 218.345, + "placementY" : 93.711, + "placementWidth" : 235.142, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.142, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/EduLine_0[0]/EduTable_0[0]", + "entityName" : "EduTable_0", + "entityKind" : "TableNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/EduLine_0[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 218.345, + "computedY" : 93.711, + "placementX" : 218.345, + "placementY" : 93.711, + "placementWidth" : 235.142, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.142, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/EduLine_0[0]/EduMarker_0[1]", + "entityName" : "EduMarker_0", + "entityKind" : "EllipseNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/EduLine_0[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 202.245, + "computedY" : 99.276, + "placementX" : 202.245, + "placementY" : 99.276, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]/Institution_0[1]", + "entityName" : "Institution_0", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_0[0]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 218.345, + "computedY" : 83.391, + "placementX" : 218.345, + "placementY" : 83.391, + "placementWidth" : 78.604, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.604, + "contentHeight" : 10.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]", + "entityName" : "EducationEntry_1", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]", + "childIndex" : 1, + "depth" : 9, + "layer" : 9, + "computedX" : 205.345, + "computedY" : 52.306, + "placementX" : 205.345, + "placementY" : 52.306, + "placementWidth" : 248.142, + "placementHeight" : 22.085, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 248.142, + "contentHeight" : 22.085, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 13.0 + } + }, { + "path" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/EduLine_1[0]", + "entityName" : "EduLine_1", + "entityKind" : "LayerStackNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]", + "childIndex" : 0, + "depth" : 10, + "layer" : 10, + "computedX" : 218.345, + "computedY" : 62.626, + "placementX" : 218.345, + "placementY" : 62.626, + "placementWidth" : 235.142, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.142, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/EduLine_1[0]/EduTable_1[0]", + "entityName" : "EduTable_1", + "entityKind" : "TableNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/EduLine_1[0]", + "childIndex" : 0, + "depth" : 11, + "layer" : 11, + "computedX" : 218.345, + "computedY" : 62.626, + "placementX" : 218.345, + "placementY" : 62.626, + "placementWidth" : 235.142, + "placementHeight" : 11.765, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 235.142, + "contentHeight" : 11.765, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/EduLine_1[0]/EduMarker_1[1]", + "entityName" : "EduMarker_1", + "entityKind" : "EllipseNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/EduLine_1[0]", + "childIndex" : 1, + "depth" : 11, + "layer" : 11, + "computedX" : 202.245, + "computedY" : 68.191, + "placementX" : 202.245, + "placementY" : 68.191, + "placementWidth" : 6.2, + "placementHeight" : 6.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 6.2, + "contentHeight" : 6.2, + "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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]/Institution_1[1]", + "entityName" : "Institution_1", + "entityKind" : "ParagraphNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationEntries[0]/EducationEntry_1[1]", + "childIndex" : 1, + "depth" : 10, + "layer" : 10, + "computedX" : 218.345, + "computedY" : 52.306, + "placementX" : 218.345, + "placementY" : 52.306, + "placementWidth" : 120.056, + "placementHeight" : 10.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 120.056, + "contentHeight" : 10.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" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]/EducationBandRight[1]", + "entityName" : "EducationBandRight", + "entityKind" : "SectionNode", + "parentPath" : "TerracottaRailCv[0]/Body[0]/MainColumn[1]/Education[8]/EducationBandStack[2]/EducationBandLayer[0]/EducationBand[0]", + "childIndex" : 1, + "depth" : 8, + "layer" : 8, + "computedX" : 461.496, + "computedY" : 105.476, + "placementX" : 461.496, + "placementY" : 105.476, + "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 + } + } ] +} diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/terracotta_rail-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/terracotta_rail-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..67030d567b248940607ef41c525a5ca4cbbe65aa GIT binary patch literal 143214 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 z zZGQp-yFqj??b!%-mg;_lip!5*B+pD*Af6y<1acfhd+y{}-;M!j05e`mZ>ml9?Xp-E zP--o<=miCdLXBGqSz&Zzf4?c<_2!E$uw!7A5{eIJkg`p)50_eT9`rAO+44<110|qH z>p5eV#2)oVebA+5yZbzAhw>DzO25gVusn+gSFFzz_8#R9ftd$HW`XZ;coW)-mZg5D ziSE41AAZep?IUjuPIU%=Udp{_aa2j^z69%Bnp5Tmdapre{cA(NpA@+COj8)KrNfF9POPp({Z#B(rI-&3S;Q` zgo_pbDorFy%WIN&1@IczyUp4%%l4HVjce$ zOp<>40Wy$pYFvaf>3nFpg?e@!6T#Y>Gqj5VZ{_Xac1ORBDm?Q1534*8Kh4G43*MxTkA>xW@d@SO2hmJf@6Bi?>p*{ zl$!!}H=@DXR?gQ2j1=@j0|6^~Az^VfX0m?ly!4LO@a&Kt}35eBXE1`u%b5 zx|ct7V9mVqzUMi6pS|~)QIz`XuH1-;08LGwMfc^AR@Jvprt3hcp-2dV9%S)94S_M9 z9fUGt8mK84p6H8a59e;73mP%lHdRrh^kWjTW3}5JgLI2DRo0bs6yH?Ar~@eveo=xm zPf_RtlbKo^1dh?iu|Q@bFYH3NH9kwmXN
    BjO%1SV1iOoT3mRN^M^>xA%leDM>?F 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 columns are divided by a hairline the sidebar carries as its own + * right border, so it is as tall as the sidebar rather than as tall as the + * page. The preset paints nothing: the sheet is drawn on white paper and + * leaves the page size and the margin to the caller — the geometry follows + * the page's own width, so another page rescales rather than breaks.

    + * + *

    One page, and what happens past it

    + * + *

    The two columns are a single row, and a row is atomic — it cannot be + * split — so a CV longer than the sheet does not flow onto a second page: + * composing it raises {@code AtomicNodeTooLargeException}, naming the node + * and the height it needed. It draws no cap of its own, because a CV that + * quietly loses a job is worse than one that refuses to compose. + * {@link TimelineMinimal} is the preset in this package that splits its own + * columns across pages.

    + * + *

    How a document reaches its berth

    + * + *

    The columns are fixed, so the preset assigns each section a berth by + * title rather than reading {@link + * com.demcha.compose.document.templates.cv.data.Slot}. It has eight:

    + * + *
      + *
    • competencies and software, {@link SkillsSection}s; certifications, + * an {@link EntriesSection} of one-line entries; and the closing + * facts, an {@link EntriesSection} whose bodies are one line per + * value — in the sidebar;
    • + *
    • the summary, a {@link ParagraphSection} of one paragraph per line; + * experience, projects and education, {@link EntriesSection}s — in the + * main column.
    • + *
    + * + *

    A section whose title matches no berth is not drawn, a berth with no + * section takes its heading and the divider above it with it, and a berth is + * filled by the first section that names it. The two bulleted lists are + * skills without levels: this design writes them as plain lines, so a rating + * would have nowhere to go — one takes a terracotta square and no dash under + * its heading, the other a disc and a dash, which is how the sheet tells two + * lists of one-liners apart.

    + * + *

    The monogram, the marks and the links

    + * + *

    The monogram is drawn from the name's own initials rather than a field + * of its own: a document states its name once, and a monogram that could + * disagree with it would be a second place to keep true.

    + * + *

    Each fact and each project takes the mark its entry names in + * {@code CvEntry.icon()}, from this preset's own vocabulary — + * {@code globe}, {@code badge}, {@code clock}, {@code building}, + * {@code hotel}, {@code house} — and an unknown token is reported as a data + * error naming the set. An entry with no token is drawn without a mark, and + * a project title becomes a link when its entry carries + * {@code CvEntry.link()}.

    + * + *

    The email, the phone and each link are reachable from the PDF, with the + * {@code mailto:} and {@code tel:} targets built from the values. A link is + * set smaller than a channel above it, because a URL is one long token that + * cannot be broken and is the line that outgrows this column first; it takes + * the mark of the network it points at, or a globe.

    + * + *

    Fonts

    + * + *

    The sheet is set in Lato, with PT Serif for the monogram. The templates + * artifact carries neither — register them on the session, or the engine + * substitutes and the measured geometry here no longer matches the type + * sitting in it.

    + * + *

    Usage:

    + *
    {@code
    + * DocumentTemplate template = TerracottaRail.create();
    + * template.compose(session, cv);
    + * }
    + * + * @since 2.2.3 + */ +public final class TerracottaRail { + + /** Stable identifier of this preset. */ + public static final String ID = "terracotta-rail"; + + /** Human-readable name of this preset. */ + public static final String DISPLAY_NAME = "Terracotta Rail"; + + /** + * The margin this preset expects: none. Both columns run to the paper + * edge and each carries its own padding. + */ + public static final double RECOMMENDED_MARGIN = 0.0; + + private static final List COMPETENCY_KEYS = + List.of("competencies", "competency", "skills", "expertise"); + private static final List SOFTWARE_KEYS = + List.of("software", "tools", "stack"); + private static final List CERTIFICATION_KEYS = + List.of("certifications", "certification", "licences", "licenses"); + private static final List FACT_KEYS = + List.of("additional", "details", "other"); + private static final List SUMMARY_KEYS = + List.of("summary", "profile", "about"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "employment", "work history", "career"); + private static final List PROJECT_KEYS = + List.of("projects", "project", "portfolio", "selected work"); + private static final List EDUCATION_KEYS = + List.of("education", "qualifications"); + + private TerracottaRail() { + } + + /** + * Creates the template. + * + * @return a template composing a {@link CvDocument} + */ + 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, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + List sections = doc.sections(); + + // Software first, and the competency berth then skips whatever it + // claimed: a section titled for both — "Software Skills" — would + // otherwise fill the two berths and be drawn twice. + SkillsSection software = berth(sections, SkillsSection.class, SOFTWARE_KEYS); + SkillsSection competencies = + berthExcept(sections, SkillsSection.class, COMPETENCY_KEYS, software); + EntriesSection certifications = + berth(sections, EntriesSection.class, CERTIFICATION_KEYS); + EntriesSection facts = berth(sections, EntriesSection.class, FACT_KEYS); + ParagraphSection summary = berth(sections, ParagraphSection.class, SUMMARY_KEYS); + EntriesSection experience = berth(sections, EntriesSection.class, EXPERIENCE_KEYS); + EntriesSection projects = berth(sections, EntriesSection.class, PROJECT_KEYS); + EntriesSection education = berth(sections, EntriesSection.class, EDUCATION_KEYS); + + document.pageFlow(page -> page + .name("TerracottaRailCv") + .spacing(0) + .addRow("Body", row -> { + row.name("Body"); + row.spacing(0); + row.weights(SIDEBAR_WEIGHT, MAIN_WEIGHT); + row.addSection("Sidebar", side -> + TerracottaRailAside.compose(side, doc.identity(), competencies, + software, certifications, facts)); + row.addSection("MainColumn", main -> + TerracottaRailMain.compose(main, doc.identity(), summary, + experience, projects, education)); + })); + } + + /** + * The first section of the wanted shape whose title names this berth, + * or {@code null} when the document fills no such berth. + */ + private static T berth(List sections, + Class type, + List keys) { + return berthExcept(sections, type, keys, null); + } + + /** The same, skipping a section another berth has already claimed. */ + private static T berthExcept(List sections, + Class type, + List keys, + CvSection taken) { + for (CvSection section : sections) { + if (!type.isInstance(section) || section == taken) { + continue; + } + for (String key : keys) { + if (SectionLookup.titleContains(section.title(), key)) { + return type.cast(section); + } + } + } + return null; + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java new file mode 100644 index 000000000..3a8749596 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java @@ -0,0 +1,306 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.core.identity.Contact; +import com.demcha.compose.document.templates.core.identity.Link; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.CvSkill; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.SkillGroup; +import com.demcha.compose.document.templates.cv.data.SkillsSection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ACCENT_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.COLUMN_PAD_BOTTOM; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.CONTACT_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.DETAIL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.INFO_BLOCK_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.INFO_LINE_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.INFO_WEIGHTS; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.LINK_SCALE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MONOGRAM_RULE_TO_CONTACT_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MONOGRAM_RULE_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MONOGRAM_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MONOGRAM_TO_RULE_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SIDEBAR_DASH_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SIDEBAR_DIVIDER_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SIDEBAR_HEADING_SPACER; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SIDEBAR_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SIDEBAR_PAD_RIGHT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SIDEBAR_PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.serif; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.text; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.bulletLine; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.divider; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.heading; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.headingWithDash; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.inlineIcon; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.layeredRow; + +/** + * The narrow column: the monogram, the contact channels, the two bulleted + * lists, the credentials and the closing facts. + */ +final class TerracottaRailAside { + + private TerracottaRailAside() { + } + + static void compose(SectionBuilder side, CvIdentity identity, SkillsSection competencies, + SkillsSection software, EntriesSection certifications, + EntriesSection facts) { + side.name("Sidebar"); + side.spacing(0); + side.accentRight(RULE, RULE_THICKNESS); + side.padding((float) SIDEBAR_PAD_TOP, (float) SIDEBAR_PAD_RIGHT, + (float) COLUMN_PAD_BOTTOM, (float) SIDEBAR_PAD_LEFT); + + renderMonogram(side, identity); + renderContact(side, identity); + + if (hasSkills(competencies)) { + divider(side, "AfterContact", SIDEBAR_DIVIDER_GAP, SIDEBAR_DIVIDER_GAP); + renderBulletedSkills(side, competencies, "CoreCompetencies", "Competency", false); + } + if (hasSkills(software)) { + divider(side, "AfterCompetencies", SIDEBAR_DIVIDER_GAP, SIDEBAR_DIVIDER_GAP); + renderBulletedSkills(side, software, "Software", "Software", true); + } + if (hasEntries(certifications)) { + divider(side, "AfterSoftware", SIDEBAR_DIVIDER_GAP, SIDEBAR_DIVIDER_GAP); + renderCertifications(side, certifications); + } + if (hasEntries(facts)) { + divider(side, "AfterCertifications", SIDEBAR_DIVIDER_GAP, SIDEBAR_DIVIDER_GAP); + renderFacts(side, facts); + } + } + + // -- the lockup -------------------------------------------------------- + + /** + * The monogram over its terracotta rule. It is drawn from the name's own + * initials rather than a field of its own — a document states the name + * once, and a monogram that could disagree with it would be a second + * place to keep true. + */ + private static void renderMonogram(SectionBuilder side, CvIdentity identity) { + side.addParagraph(p -> p + .name("Monogram") + .text(monogram(identity)) + .textStyle(serif(MONOGRAM_SIZE, ACCENT)) + .margin(0f, 0f, (float) MONOGRAM_TO_RULE_GAP, 0f)); + side.addLine(line -> line + .name("MonogramRule") + .horizontal(MONOGRAM_RULE_WIDTH) + .thickness(ACCENT_RULE_THICKNESS) + .color(ACCENT) + .margin(new DocumentInsets(0, 0, MONOGRAM_RULE_TO_CONTACT_GAP, 0))); + } + + /** The initials of the given and the family name, in capitals. */ + private static String monogram(CvIdentity identity) { + StringBuilder out = new StringBuilder(2); + appendInitial(out, identity.name().first()); + appendInitial(out, identity.name().last()); + return out.toString(); + } + + private static void appendInitial(StringBuilder out, String part) { + if (!part.isBlank()) { + out.append(Character.toUpperCase(part.charAt(0))); + } + } + + // -- the channels ------------------------------------------------------ + + /** + * The contact block: each channel behind its mark, and the links beneath + * them. + * + *

    A link is set smaller than a channel. A URL is one long token that + * cannot be broken, so it is the line that outgrows this column first, + * while a phone, an address or a city is short enough at full size.

    + */ + private static void renderContact(SectionBuilder side, CvIdentity identity) { + side.addSection("Contact", block -> { + block.spacing(0); + // The contact triple is non-blank by construction, so the three + // channels are always drawn; only the links are optional. + Contact contact = identity.contact(); + channel(block, 0, TerracottaRailIcons.EMAIL, contact.email(), + "mailto:" + contact.email(), false); + channel(block, 1, TerracottaRailIcons.PHONE, contact.phone(), + telUri(contact.phone()), false); + channel(block, 2, TerracottaRailIcons.LOCATION, contact.address(), null, false); + int index = 3; + for (Link link : identity.links()) { + channel(block, index++, markFor(link), link.label(), link.url(), true); + } + }); + } + + private static void channel(SectionBuilder block, int index, String token, String value, + String href, boolean compact) { + block.addParagraph(p -> { + p.name("Contact_" + index); + inlineIcon(p, token, TerracottaRailIcons.CONTACT_SIZE); + p.inlineText(compact ? " " : " "); + double size = compact ? DETAIL_SIZE * LINK_SCALE : DETAIL_SIZE; + if (href == null || href.isBlank()) { + p.inlineText(value, text(size, INK, false)); + } else { + p.inlineText(value, text(size, INK, false), new DocumentLinkOptions(href)); + } + p.margin(0f, 0f, (float) CONTACT_ROW_GAP, 0f); + }); + } + + /** A link takes the mark of the network it points at, or a globe. */ + private static String markFor(Link link) { + String target = (link.url() + " " + link.label()).toLowerCase(Locale.ROOT); + return target.contains("linkedin") + ? TerracottaRailIcons.LINKEDIN + : TerracottaRailIcons.GLOBE; + } + + /** + * The dial target for a phone number: its digits, keeping a leading + * {@code +} so an international number stays international, and dropping + * a parenthesised trunk prefix the way a caller dialling from abroad + * drops it. + */ + private static String telUri(String phone) { + String dialled = phone.replaceAll("\\(0+\\)", ""); + String digits = dialled.replaceAll("[^0-9]", ""); + return digits.isEmpty() + ? null + : "tel:" + (phone.trim().startsWith("+") ? "+" : "") + digits; + } + + // -- the lists --------------------------------------------------------- + + /** + * A bulleted list of skills. The competencies take a terracotta square + * and no dash under their heading; the software list takes a disc and a + * dash — the design's own way of telling two lists of one-liners apart. + */ + private static void renderBulletedSkills(SectionBuilder side, SkillsSection section, + String blockName, String prefix, + boolean discBullet) { + side.addSection(blockName, block -> { + block.spacing(0); + if (discBullet) { + headingWithDash(block, section.title(), SIDEBAR_HEADING_SPACER, + SIDEBAR_DASH_WIDTH); + } else { + heading(block, section.title(), SIDEBAR_HEADING_SPACER); + } + int index = 0; + for (SkillGroup group : section.groups()) { + for (CvSkill skill : group.entries()) { + String name = prefix + "_" + index++; + if (discBullet) { + bulletLine(block, name, p -> p.dot(3.0, ACCENT), skill.name(), + INK, DETAIL_SIZE); + } else { + bulletLine(block, name, + p -> inlineIcon(p, TerracottaRailIcons.SQUARE, + TerracottaRailIcons.BULLET_SIZE), + skill.name(), INK, DETAIL_SIZE); + } + } + } + }); + } + + /** The credentials: one disc-bulleted line each. */ + private static void renderCertifications(SectionBuilder side, EntriesSection section) { + side.addSection("Certifications", block -> { + block.spacing(0); + headingWithDash(block, section.title(), SIDEBAR_HEADING_SPACER, SIDEBAR_DASH_WIDTH); + List entries = section.entries(); + for (int index = 0; index < entries.size(); index++) { + bulletLine(block, "Certification_" + index, p -> p.dot(3.0, ACCENT), + entries.get(index).title(), INK, DETAIL_SIZE); + } + }); + } + + /** + * The closing facts: a mark beside a label and the lines under it. + * + *

    The mark is an inline run inside a paragraph rather than a block + * icon node: a block icon in a row cell makes the whole row lay its cells + * out vertically.

    + */ + private static void renderFacts(SectionBuilder side, EntriesSection section) { + side.addSection("AdditionalInformation", block -> { + block.spacing(0); + heading(block, section.title(), SIDEBAR_HEADING_SPACER); + List entries = section.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + int index = i; + layeredRow(block, "AddInfo_" + index, 0.0, INFO_BLOCK_GAP, row -> { + row.weights(INFO_WEIGHTS[0], INFO_WEIGHTS[1]); + row.addParagraph(p -> { + p.name("Icon_" + index); + if (!entry.icon().isBlank()) { + inlineIcon(p, entry.icon(), TerracottaRailIcons.FACT_SIZE); + } + }); + row.addSection("Text_" + index, cell -> { + cell.spacing(0); + cell.addParagraph(p -> p + .name("Label_" + index) + .text(entry.title()) + .textStyle(text(DETAIL_SIZE, INK, true)) + .margin(0f, 0f, (float) INFO_LINE_GAP, 0f)); + for (String line : lines(entry.body())) { + cell.addParagraph(p -> p + .name("Val_" + index) + .text(line) + .textStyle(text(DETAIL_SIZE, INK, false)) + .margin(0f, 0f, (float) INFO_LINE_GAP, 0f)); + } + }); + }); + } + }); + } + + /** A fact's body, one line per line the document wrote. */ + private static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split(String.valueOf((char) 10))) { + if (!line.isBlank()) { + out.add(line.strip()); + } + } + return out; + } + + // -- presence ---------------------------------------------------------- + + private static boolean hasSkills(SkillsSection section) { + if (section == null) { + return false; + } + return section.groups().stream().anyMatch(group -> !group.entries().isEmpty()); + } + + private static boolean hasEntries(EntriesSection section) { + return section != null && !section.entries().isEmpty(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailIcons.java new file mode 100644 index 000000000..24f8795af --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailIcons.java @@ -0,0 +1,97 @@ +package com.demcha.compose.document.templates.cv.presets; + +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.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Terracotta Rail CV marks — the four contact + * glyphs and the bullet in the sidebar, the three marks a fact block may + * name, and the three a project may. + * + *

    They ship inside the templates artifact under + * {@code templates/cv/terracotta-rail/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 sheet that repeats a mark reads each file once per + * JVM.

    + * + *

    {@link #ENTRY_TOKENS} is the vocabulary a document names through + * {@code CvEntry.icon()}. It is scoped to this preset — another preset + * packages its own set — and an entry that names none is drawn without a + * mark.

    + */ +final class TerracottaRailIcons { + + static final String EMAIL = "email"; + static final String PHONE = "phone"; + static final String LOCATION = "location"; + static final String LINKEDIN = "linkedin"; + static final String GLOBE = "globe"; + static final String SQUARE = "square"; + + private static final String ICON_ROOT = "/templates/cv/terracotta-rail/icons/"; + + /** A contact glyph is set at the size of the line beside it. */ + static final double CONTACT_SIZE = 10.0; + + /** The competency bullet — a terracotta square, not a disc. */ + static final double BULLET_SIZE = 3.8; + + /** A fact's mark stands beside a two-line block, so it is drawn larger. */ + static final double FACT_SIZE = 16.0; + + /** A project's mark is the sketch that opens its row. */ + static final double PROJECT_SIZE = 22.0; + + /** The marks a document may name on a fact or a project entry. */ + static final Set ENTRY_TOKENS = + Set.of(GLOBE, "badge", "clock", "building", "hotel", "house"); + + private static final Set TOKENS = + Set.of(EMAIL, PHONE, LOCATION, LINKEDIN, SQUARE, + GLOBE, "badge", "clock", "building", "hotel", "house"); + + private static final Map CACHE = new ConcurrentHashMap<>(); + + private TerracottaRailIcons() { + } + + /** + * Reads one mark. + * + * @param token one of the packaged tokens + * @return the parsed icon + * @throws IllegalArgumentException when the token names no packaged mark, + * listing the ones a document may choose — an icon token is data, + * so a wrong one is a data error + */ + static SvgIcon icon(String token) { + if (!TOKENS.contains(token)) { + throw new IllegalArgumentException( + "Unknown terracotta rail CV icon token '" + token + + "'. This preset packages " + ENTRY_TOKENS.stream().sorted().toList() + + " for an entry mark."); + } + return CACHE.computeIfAbsent(token, TerracottaRailIcons::read); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = TerracottaRailIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalStateException( + "Missing terracotta rail CV icon: " + resourcePath); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read terracotta rail CV icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java new file mode 100644 index 000000000..985c12538 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java @@ -0,0 +1,337 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.ListMarker; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.cv.data.CvEntry; +import com.demcha.compose.document.templates.cv.data.CvIdentity; +import com.demcha.compose.document.templates.cv.data.EntriesSection; +import com.demcha.compose.document.templates.cv.data.ParagraphSection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.BODY_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.COLUMN_PAD_BOTTOM; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.DETAIL_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.EDUCATION_BAND_PAD_RIGHT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.EDUCATION_BAND_WEIGHT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.EDUCATION_ENTRY_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.EDUCATION_PERIOD_SHARE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.EMPLOYER_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ENTRY_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ENTRY_INDENT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ENTRY_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.HIGHLIGHT_ITEM_SPACING; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.HIGHLIGHT_LINE_SPACING; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ITEM_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MAIN_DASH_WIDTH; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MAIN_DIVIDER_BOTTOM; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MAIN_DIVIDER_TOP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MAIN_HEADING_SPACER; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MAIN_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MAIN_PAD_RIGHT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MAIN_PAD_TOP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MASTHEAD_DIVIDER_BOTTOM; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MASTHEAD_DIVIDER_TOP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MUTED; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.NAME_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.NAME_TO_SUBTITLE_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.PROJECT_DESCRIPTION_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.PROJECT_DIVIDER_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.PROJECT_LINE_SPACING; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.PROJECT_META_PAD_LEFT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.PROJECT_META_PAD_RIGHT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.PROJECT_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.PROJECT_WEIGHTS; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ROLE_PERIOD_SHARE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SUBTITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SUBTITLE_TO_RULE_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SUMMARY_LINE_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SUMMARY_LINE_SPACING; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.italic; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.text; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.divider; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.heading; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.headingWithDash; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.inlineIcon; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.layeredRow; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.railedLine; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.titleAndDate; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailWidgets.trackedWide; + +/** + * The wide column: the masthead, the summary, the roles held on a rail, the + * projects grid and the degrees. + */ +final class TerracottaRailMain { + + private TerracottaRailMain() { + } + + static void compose(SectionBuilder main, CvIdentity identity, ParagraphSection summary, + EntriesSection experience, EntriesSection projects, + EntriesSection education) { + main.name("MainColumn"); + main.spacing(0); + main.padding((float) MAIN_PAD_TOP, (float) MAIN_PAD_RIGHT, + (float) COLUMN_PAD_BOTTOM, (float) MAIN_PAD_LEFT); + + renderMasthead(main, identity); + + if (hasBody(summary)) { + divider(main, "AfterMasthead", MASTHEAD_DIVIDER_TOP, + MASTHEAD_DIVIDER_BOTTOM); + renderSummary(main, summary); + } + if (hasEntries(experience)) { + mainDivider(main, "AfterSummary"); + renderExperience(main, experience); + } + if (hasEntries(projects)) { + mainDivider(main, "AfterExperience"); + renderProjects(main, projects); + } + if (hasEntries(education)) { + mainDivider(main, "AfterProjects"); + renderEducation(main, education); + } + } + + private static void mainDivider(SectionBuilder main, String name) { + divider(main, name, MAIN_DIVIDER_TOP, + MAIN_DIVIDER_BOTTOM); + } + + // -- masthead ---------------------------------------------------------- + + /** The name over its role, both letter-spaced, the role in terracotta. */ + private static void renderMasthead(SectionBuilder main, CvIdentity identity) { + main.addSection("Masthead", block -> { + block.spacing(0); + block.addParagraph(p -> p + .name("FullName") + .text(trackedWide(identity.name().full().toUpperCase(Locale.ROOT))) + .textStyle(text(NAME_SIZE, INK, true)) + .margin(0f, 0f, (float) NAME_TO_SUBTITLE_GAP, 0f)); + block.addParagraph(p -> p + .name("JobTitle") + .text(trackedWide(identity.jobTitle().toUpperCase(Locale.ROOT))) + .textStyle(text(SUBTITLE_SIZE, ACCENT, true)) + .margin(0f, 0f, (float) SUBTITLE_TO_RULE_GAP, 0f)); + }); + } + + // -- summary ----------------------------------------------------------- + + /** The summary, one paragraph per line the document wrote. */ + private static void renderSummary(SectionBuilder main, ParagraphSection summary) { + main.addSection("Summary", block -> { + block.spacing(0); + headingWithDash(block, summary.title(), MAIN_HEADING_SPACER, MAIN_DASH_WIDTH); + List paragraphs = lines(summary.body()); + for (int i = 0; i < paragraphs.size(); i++) { + int index = i; + block.addParagraph(p -> p + .name("SummaryPara_" + index) + .text(paragraphs.get(index)) + .textStyle(text(BODY_SIZE, INK, false)) + .lineSpacing(SUMMARY_LINE_SPACING) + .margin(0f, 0f, (float) SUMMARY_LINE_GAP, 0f)); + } + }); + } + + // -- experience -------------------------------------------------------- + + /** + * The roles held, each on a rail: a ringed marker on a grey hairline that + * runs from one entry to the next. The last entry carries no rail, so the + * line stops at the last marker instead of running past it. + */ + private static void renderExperience(SectionBuilder main, EntriesSection experience) { + main.addSection("Experience", block -> { + block.spacing(0); + heading(block, experience.title(), MAIN_HEADING_SPACER); + List entries = experience.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + boolean last = i == entries.size() - 1; + int index = i; + block.addSection("ExperienceEntry_" + index, body -> { + body.spacing(0); + if (!last) { + body.accentLeft(RULE, RULE_THICKNESS); + } + body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, (float) ENTRY_INDENT); + railedLine(body, "Role", index, + titleAndDate("RoleTable_" + index, entry.title(), entry.date(), + ENTRY_WIDTH, ROLE_PERIOD_SHARE)); + body.addParagraph(p -> p + .name("Employer_" + index) + .text(entry.subtitle()) + .textStyle(italic(BODY_SIZE, MUTED)) + .margin(0f, 0f, (float) EMPLOYER_GAP, 0f)); + List highlights = lines(entry.body()); + if (!highlights.isEmpty()) { + body.addList(list -> list + .name("Highlights_" + index) + .items(highlights) + .marker(ListMarker.bullet()) + .textStyle(text(BODY_SIZE, INK, false)) + .itemSpacing(HIGHLIGHT_ITEM_SPACING) + .lineSpacing(HIGHLIGHT_LINE_SPACING)); + } + }); + } + }); + } + + // -- projects ---------------------------------------------------------- + + /** + * The projects grid: a sketch, the project's own three lines, and its + * description across a hairline. + * + *

    The mark is an inline run inside a paragraph rather than a block + * icon node: a block icon in a row cell makes the whole row lay its cells + * out vertically.

    + */ + private static void renderProjects(SectionBuilder main, EntriesSection projects) { + main.addSection("SelectedProjects", block -> { + block.spacing(0); + headingWithDash(block, projects.title(), MAIN_HEADING_SPACER, MAIN_DASH_WIDTH); + List entries = projects.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + boolean last = i == entries.size() - 1; + int index = i; + layeredRow(block, "Project_" + index, 0.0, PROJECT_ROW_GAP, row -> { + row.weights(PROJECT_WEIGHTS[0], PROJECT_WEIGHTS[1], PROJECT_WEIGHTS[2]); + row.addParagraph(p -> { + p.name("ProjIcon_" + index); + if (!entry.icon().isBlank()) { + inlineIcon(p, entry.icon(), TerracottaRailIcons.PROJECT_SIZE); + } + }); + row.addSection("ProjMeta_" + index, meta -> { + meta.spacing(0); + meta.padding(0f, (float) PROJECT_META_PAD_RIGHT, 0f, + (float) PROJECT_META_PAD_LEFT); + meta.addParagraph(p -> { + p.name("ProjTitle_" + index) + .text(entry.title()) + .textStyle(text(ITEM_TITLE_SIZE, INK, true)) + .margin(0f, 0f, 1.0f, 0f); + if (!entry.link().isBlank()) { + p.link(new DocumentLinkOptions(entry.link())); + } + }); + meta.addParagraph(p -> p + .name("ProjSub_" + index) + .text(entry.subtitle()) + .textStyle(italic(DETAIL_SIZE, MUTED)) + .margin(0f, 0f, 1.0f, 0f)); + meta.addParagraph(p -> p + .name("ProjLoc_" + index) + .text(entry.place()) + .textStyle(text(DETAIL_SIZE, INK, false))); + }); + row.addSection("ProjDesc_" + index, description -> { + description.spacing(0); + description.accentLeft(RULE, RULE_THICKNESS); + description.padding(0f, 0f, 0f, (float) PROJECT_DESCRIPTION_PAD_LEFT); + description.addParagraph(p -> p + .name("ProjDescText_" + index) + .text(entry.body()) + .textStyle(text(BODY_SIZE, INK, false)) + .lineSpacing(PROJECT_LINE_SPACING)); + }); + }); + if (!last) { + block.addLine(line -> line + .name("ProjDiv_" + index) + .fill() + .thickness(RULE_THICKNESS) + .color(RULE) + .margin(new DocumentInsets( + PROJECT_DIVIDER_GAP, 0, PROJECT_DIVIDER_GAP, 0))); + } + } + }); + } + + // -- education --------------------------------------------------------- + + /** + * The degrees, on a rail of their own. + * + *

    Their rail is terracotta where the roles' is grey, and the block + * stops short of the column: the design closes it with a hairline at + * about seven tenths of the main column, which is what the empty band + * beside it is for.

    + */ + private static void renderEducation(SectionBuilder main, EntriesSection education) { + main.addSection("Education", block -> { + block.spacing(0); + headingWithDash(block, education.title(), MAIN_HEADING_SPACER, MAIN_DASH_WIDTH); + layeredRow(block, "EducationBand", 0.0, 0.0, band -> { + band.weights(EDUCATION_BAND_WEIGHT, 1.0 - EDUCATION_BAND_WEIGHT); + band.addSection("EducationEntries", cell -> { + cell.spacing(0); + cell.accentRight(RULE, RULE_THICKNESS); + cell.padding(0f, (float) EDUCATION_BAND_PAD_RIGHT, 0f, 0f); + List entries = education.entries(); + for (int i = 0; i < entries.size(); i++) { + CvEntry entry = entries.get(i); + boolean last = i == entries.size() - 1; + int index = i; + cell.addSection("EducationEntry_" + index, body -> { + body.spacing(0); + if (!last) { + body.accentLeft(ACCENT, RULE_THICKNESS); + } + body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, + (float) ENTRY_INDENT); + railedLine(body, "Edu", index, + titleAndDate("EduTable_" + index, entry.title(), entry.date(), + EDUCATION_ENTRY_WIDTH, EDUCATION_PERIOD_SHARE)); + body.addParagraph(p -> p + .name("Institution_" + index) + .text(entry.subtitle()) + .textStyle(italic(BODY_SIZE, MUTED))); + }); + } + }); + band.addSection("EducationBandRight", empty -> empty.spacing(0)); + }); + }); + } + + // -- shared ------------------------------------------------------------ + + /** A body, one entry per line the document wrote. */ + private static List lines(String body) { + List out = new ArrayList<>(); + for (String line : body.split(String.valueOf((char) 10))) { + if (!line.isBlank()) { + out.add(line.strip()); + } + } + return out; + } + + private static boolean hasBody(ParagraphSection section) { + return section != null && !section.body().isBlank(); + } + + private static boolean hasEntries(EntriesSection section) { + return section != null && !section.entries().isEmpty(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailStyles.java new file mode 100644 index 000000000..83e5a3960 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailStyles.java @@ -0,0 +1,182 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.font.FontName; + +/** + * The measured geometry, palette and type scale of the Terracotta Rail CV. + * + *

    Every size here is derived from one body size and every width from the + * page's own, so the sheet is one edit rather than a walk through the + * regions that draw it.

    + */ +final class TerracottaRailStyles { + + private TerracottaRailStyles() { + } + + // -- the two columns -------------------------------------------------- + + /** + * The width every horizontal measure here is a share of: A4's, as the + * design drew it. It is a constant rather than the session's own page, + * because the sheet is a fixed composition — the columns and the bands + * inside them are shares of this number, and a caller who sets another + * page gets the same sheet on it rather than a rescaled one. + */ + static final double PAGE_WIDTH = 595.276; + + static final double SIDEBAR_WEIGHT = 0.308; + static final double MAIN_WEIGHT = 1.0 - SIDEBAR_WEIGHT; + + static final double SIDEBAR_PAD_LEFT = 25.4; + static final double SIDEBAR_PAD_RIGHT = 11.4; + static final double SIDEBAR_PAD_TOP = 20.0; + static final double COLUMN_PAD_BOTTOM = 5.0; + static final double MAIN_PAD_LEFT = 22.0; + static final double MAIN_PAD_RIGHT = 24.0; + static final double MAIN_PAD_TOP = 20.0; + + static final double MAIN_CONTENT_WIDTH = + PAGE_WIDTH * MAIN_WEIGHT - MAIN_PAD_LEFT - MAIN_PAD_RIGHT; + + // -- type ------------------------------------------------------------- + + static final FontName SANS = FontName.LATO; + static final FontName SERIF = FontName.PT_SERIF; + + static final double BODY_SIZE = 8.6; + static final double DETAIL_SIZE = BODY_SIZE * 0.98; + static final double ITEM_TITLE_SIZE = BODY_SIZE * 1.14; + static final double SECTION_HEADING_SIZE = BODY_SIZE * 1.02; + static final double MONOGRAM_SIZE = 36.0; + static final double NAME_SIZE = 28.0; + static final double SUBTITLE_SIZE = 13.0; + + /** + * How much smaller a link is set than the channels above it. A URL is one + * long token that cannot be broken, so it is the line that outgrows this + * sidebar first. + */ + static final double LINK_SCALE = 0.85; + + // -- palette ---------------------------------------------------------- + + static final DocumentColor ACCENT = DocumentColor.rgb(201, 74, 41); + static final DocumentColor INK = DocumentColor.rgb(26, 29, 32); + static final DocumentColor MUTED = DocumentColor.rgb(85, 90, 96); + static final DocumentColor RULE = DocumentColor.rgb(216, 216, 216); + static final DocumentColor PAPER = DocumentColor.WHITE; + + static final DocumentStroke NO_BORDER = DocumentStroke.of(PAPER, 0.0); + + // -- rules, rails and the rhythm between blocks ------------------------ + + static final double RULE_THICKNESS = 0.6; + static final double ACCENT_RULE_THICKNESS = 1.4; + static final double MARKER_DIAMETER = 6.2; + + /** How far an entry sits from the rail its marker rides. */ + static final double ENTRY_INDENT = 13.0; + static final double ENTRY_GAP = 9.0; + + static final double HEADING_TO_BODY_GAP = 9.0; + static final double HEADING_TO_DASH_GAP = 3.5; + static final double SIDEBAR_DASH_WIDTH = 20.0; + static final double MAIN_DASH_WIDTH = 22.0; + + static final double SIDEBAR_DIVIDER_GAP = 8.0; + static final double MAIN_DIVIDER_TOP = 6.0; + static final double MAIN_DIVIDER_BOTTOM = 6.5; + static final double MASTHEAD_DIVIDER_TOP = 4.0; + static final double MASTHEAD_DIVIDER_BOTTOM = 6.0; + + static final double MONOGRAM_RULE_WIDTH = 48.0; + static final double MONOGRAM_TO_RULE_GAP = 8.0; + static final double MONOGRAM_RULE_TO_CONTACT_GAP = 10.0; + static final double NAME_TO_SUBTITLE_GAP = 8.0; + static final double SUBTITLE_TO_RULE_GAP = 5.0; + + static final double CONTACT_ROW_GAP = 4.5; + static final double BULLET_ROW_GAP = 3.0; + static final double INFO_BLOCK_GAP = 7.0; + static final double INFO_LINE_GAP = 0.5; + static final double PROJECT_ROW_GAP = 2.0; + static final double PROJECT_DIVIDER_GAP = 2.0; + static final double SUMMARY_LINE_GAP = 2.5; + static final double SUMMARY_LINE_SPACING = 1.30; + static final double EMPLOYER_GAP = 2.5; + static final double HIGHLIGHT_ITEM_SPACING = 1.2; + static final double HIGHLIGHT_LINE_SPACING = 1.15; + + // -- the bands the entries are laid on --------------------------------- + + /** + * The slack a fixed table needs inside the cell it spans. Without it a + * table exactly as wide as its cell is one rounding step too wide. + */ + static final double TABLE_SLACK = 0.01; + + static final double ENTRY_WIDTH = MAIN_CONTENT_WIDTH - ENTRY_INDENT - TABLE_SLACK; + static final double ROLE_PERIOD_SHARE = 0.30; + static final double EDUCATION_PERIOD_SHARE = 0.34; + + /** Education stops short of the column and closes on a hairline. */ + static final double EDUCATION_BAND_WEIGHT = 0.70; + static final double EDUCATION_BAND_PAD_RIGHT = 8.0; + static final double EDUCATION_ENTRY_WIDTH = + MAIN_CONTENT_WIDTH * EDUCATION_BAND_WEIGHT - EDUCATION_BAND_PAD_RIGHT + - ENTRY_INDENT - TABLE_SLACK; + + static final double[] PROJECT_WEIGHTS = {0.08, 0.36, 0.56}; + static final double PROJECT_META_PAD_RIGHT = 8.0; + static final double PROJECT_META_PAD_LEFT = 4.0; + static final double PROJECT_DESCRIPTION_PAD_LEFT = 10.0; + static final double PROJECT_LINE_SPACING = 1.24; + static final double[] INFO_WEIGHTS = {0.18, 0.82}; + + // -- tracking ---------------------------------------------------------- + + /** + * The gaps a heading is letter-spaced with. A text style carries no + * tracking, so a tracked line is written with a space character between + * the letters, and which space is the whole choice: the sidebar takes a + * hair space (a tenth of an em) because a full one would set ADDITIONAL + * INFORMATION wider than the column and wrap it, and the main column, + * being wider, takes a thin space (a fifth). + */ + static final char SIDEBAR_HEADING_SPACER = '\u200A'; + static final char MAIN_HEADING_SPACER = '\u2009'; + + // -- helpers ------------------------------------------------------------ + + static DocumentTextStyle text(double size, DocumentColor color, boolean bold) { + return DocumentTextStyle.builder() + .fontName(SANS) + .size(size) + .color(color) + .decoration(bold ? DocumentTextDecoration.BOLD : DocumentTextDecoration.DEFAULT) + .build(); + } + + static DocumentTextStyle italic(double size, DocumentColor color) { + return DocumentTextStyle.builder() + .fontName(SANS) + .size(size) + .color(color) + .decoration(DocumentTextDecoration.ITALIC) + .build(); + } + + static DocumentTextStyle serif(double size, DocumentColor color) { + return DocumentTextStyle.builder() + .fontName(SERIF) + .size(size) + .color(color) + .decoration(DocumentTextDecoration.DEFAULT) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java new file mode 100644 index 000000000..590883f1a --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java @@ -0,0 +1,260 @@ +package com.demcha.compose.document.templates.cv.presets; + +import com.demcha.compose.document.dsl.EllipseBuilder; +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.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.InlineImageAlignment; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +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 java.util.function.Consumer; + +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ACCENT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ACCENT_RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.BULLET_ROW_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ENTRY_INDENT; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.HEADING_TO_BODY_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.HEADING_TO_DASH_GAP; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.INK; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.ITEM_TITLE_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MARKER_DIAMETER; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.NO_BORDER; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.PAPER; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.RULE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.RULE_THICKNESS; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.SECTION_HEADING_SIZE; +import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.text; + +/** + * The idioms this sheet repeats: the tracked heading, the rule between + * blocks, the marker riding a rail, the title-and-date line, and the row a + * column has to wrap to hold. + */ +final class TerracottaRailWidgets { + + private TerracottaRailWidgets() { + } + + // -- headings ---------------------------------------------------------- + + /** + * A letter-spaced heading. + * + *

    A text style carries no tracking, so the gap between letters is a + * space character — which one is the whole choice, and the caller makes + * it. The word gap stays clearly wider than the letter gap, or a tracked + * heading reads as one long word.

    + * + * @param text the heading + * @param spacer the space to set between letters + * @return the tracked string + */ + static String tracked(String text, char spacer) { + if (text == null || text.isEmpty()) { + return ""; + } + StringBuilder out = new StringBuilder(text.length() * 2); + for (int index = 0; index < text.length(); index++) { + char letter = text.charAt(index); + if (letter == ' ') { + out.append(spacer).append(' ').append(spacer); + continue; + } + if (index > 0 && text.charAt(index - 1) != ' ') { + out.append(spacer); + } + out.append(letter); + } + return out.toString(); + } + + /** The masthead's own tracking: a full space between letters. */ + static String trackedWide(String text) { + if (text == null || text.isEmpty()) { + return ""; + } + StringBuilder out = new StringBuilder(text.length() * 2); + boolean startOfWord = true; + for (int index = 0; index < text.length(); index++) { + char letter = text.charAt(index); + if (letter == ' ') { + out.append(" "); + startOfWord = true; + continue; + } + if (!startOfWord) { + out.append(' '); + } + out.append(letter); + startOfWord = false; + } + return out.toString(); + } + + /** A heading with nothing under it. */ + static void heading(SectionBuilder block, String title, char spacer) { + block.addParagraph(p -> p + .name("Heading_" + compact(title)) + .text(tracked(title, spacer)) + .textStyle(text(SECTION_HEADING_SIZE, INK, true)) + .margin(0f, 0f, (float) HEADING_TO_BODY_GAP, 0f)); + } + + /** A heading over a short terracotta dash. */ + static void headingWithDash(SectionBuilder block, String title, char spacer, double dashWidth) { + block.addParagraph(p -> p + .name("Heading_" + compact(title)) + .text(tracked(title, spacer)) + .textStyle(text(SECTION_HEADING_SIZE, INK, true)) + .margin(0f, 0f, (float) HEADING_TO_DASH_GAP, 0f)); + block.addLine(line -> line + .name("AccentLine_" + compact(title)) + .horizontal(dashWidth) + .thickness(ACCENT_RULE_THICKNESS) + .color(ACCENT) + .margin(new DocumentInsets( + 0, 0, HEADING_TO_BODY_GAP - HEADING_TO_DASH_GAP, 0))); + } + + /** A node name built from a heading, with the spacing taken out of it. */ + static String compact(String value) { + StringBuilder out = new StringBuilder(value.length()); + for (int index = 0; index < value.length(); index++) { + char letter = value.charAt(index); + if (Character.isLetterOrDigit(letter)) { + out.append(letter); + } + } + return out.toString(); + } + + // -- rules ------------------------------------------------------------- + + /** The hairline that separates two blocks in a column. */ + static void divider(SectionBuilder column, String name, double top, double bottom) { + column.addLine(line -> line + .name("Divider_" + name) + .fill() + .thickness(RULE_THICKNESS) + .color(RULE) + .margin(new DocumentInsets(top, 0, bottom, 0))); + } + + // -- marks ------------------------------------------------------------- + + /** An inline mark, drawn at the size the preset gives its kind. */ + static void inlineIcon(ParagraphBuilder paragraph, String token, double size) { + paragraph.inlineSvgIcon(TerracottaRailIcons.icon(token), size, + InlineImageAlignment.CENTER); + } + + // -- the rail ---------------------------------------------------------- + + /** The marker an entry rides: a terracotta ring with the paper inside. */ + private static DocumentNode marker(String prefix, int index) { + return new EllipseBuilder() + .name(prefix + "Marker_" + index) + .circle(MARKER_DIAMETER) + .fillColor(PAPER) + .stroke(DocumentStroke.of(ACCENT, 1.0)) + .build(); + } + + /** + * An entry's first line, with its marker sitting ON the rail. + * + *

    The marker is nudged left by the entry's own indent plus half the + * ring, so the ring's centre lands on the rail rather than beside it. + * Both terms are geometry the sheet already holds, not offsets tuned by + * eye.

    + */ + static void railedLine(SectionBuilder body, String prefix, int index, DocumentNode line) { + body.addLayerStack(stack -> stack + .name(prefix + "Line_" + index) + .layer(line, LayerAlign.TOP_LEFT, 0) + .position(marker(prefix, index), + -(ENTRY_INDENT + MARKER_DIAMETER / 2.0), 0.0, + LayerAlign.TOP_LEFT, 1)); + } + + /** + * A title with its date flush right on the same line. + * + *

    A table, not a row: a row cannot nest in a row cell and a table can + * — it spans the cell and its columns lay out. Both cells hold a + * paragraph, because a table inside a row cell draws only leaf + * content.

    + */ + static DocumentNode titleAndDate(String name, String title, String date, + double width, double dateShare) { + double dateColumn = width * dateShare; + return new TableBuilder() + .name(name) + .width(width) + .columns(DocumentTableColumn.fixed(width - dateColumn), + DocumentTableColumn.fixed(dateColumn)) + .defaultCellStyle(DocumentTableStyle.builder() + .padding(DocumentInsets.zero()) + .textAnchor(DocumentTableTextAnchor.BOTTOM_LEFT) + .stroke(NO_BORDER) + .build()) + .rowCells( + DocumentTableCell.node(new ParagraphBuilder() + .name(name + "_Title") + .text(title) + .lineSpacing(0) + .textStyle(text(ITEM_TITLE_SIZE, INK, true)) + .build()), + DocumentTableCell.node(new ParagraphBuilder() + .name(name + "_Period") + .text(date) + .align(TextAlign.RIGHT) + .lineSpacing(0) + .textStyle(text(ITEM_TITLE_SIZE, ACCENT, false)) + .build())) + .build(); + } + + // -- rows -------------------------------------------------------------- + + /** + * A row inside a column. + * + *

    A row cannot nest in a row cell on this engine, and both of this + * sheet's columns are cells of the body row — so every horizontal pair + * inside one is wrapped in a layer stack, which can.

    + */ + static void layeredRow(SectionBuilder parent, String name, double marginTop, + double marginBottom, Consumer spec) { + SectionBuilder layer = new SectionBuilder(); + layer.name(name + "Layer"); + layer.spacing(0); + layer.addRow(name, spec); + parent.addLayerStack(stack -> stack + .name(name + "Stack") + .margin(new DocumentInsets(marginTop, 0, marginBottom, 0)) + .layer(layer.build(), LayerAlign.TOP_LEFT, 0)); + } + + /** A bullet line: a mark, a gap, and the item beside it. */ + static void bulletLine(SectionBuilder block, String name, Consumer mark, + String item, DocumentColor color, double size) { + block.addParagraph(p -> { + p.name(name); + mark.accept(p); + p.inlineText(" "); + p.inlineText(item, text(size, color, false)); + p.margin(0f, 0f, (float) BULLET_ROW_GAP, 0f); + }); + } +} diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/badge.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/badge.svg new file mode 100644 index 000000000..0d35d8d18 --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/building.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/building.svg new file mode 100644 index 000000000..9a6de887c --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/building.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/clock.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/clock.svg new file mode 100644 index 000000000..f06099851 --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/email.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/email.svg new file mode 100644 index 000000000..817215132 --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/globe.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/globe.svg new file mode 100644 index 000000000..4a6528580 --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/hotel.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/hotel.svg new file mode 100644 index 000000000..13fb4cd92 --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/hotel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/house.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/house.svg new file mode 100644 index 000000000..9c1299801 --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/house.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/linkedin.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/linkedin.svg new file mode 100644 index 000000000..d955b83d5 --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/location.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/location.svg new file mode 100644 index 000000000..6564329cc --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/phone.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/phone.svg new file mode 100644 index 000000000..b8c11ac2d --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/cv/terracotta-rail/icons/square.svg b/templates/src/main/resources/templates/cv/terracotta-rail/icons/square.svg new file mode 100644 index 000000000..ee5989d1e --- /dev/null +++ b/templates/src/main/resources/templates/cv/terracotta-rail/icons/square.svg @@ -0,0 +1 @@ + \ No newline at end of file From 58dbe13fc9045ff4a94d7f86e67b81657f29b2c0 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 14:17:09 +0100 Subject: [PATCH 18/85] fix(templates): put the Terracotta Rail contact rows on one axis (#625) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The sidebar had one row that did not belong with the other three. The sheet this preset ports writes a profile's whole URL out, which is long enough that it has to be set smaller and started further in than the channels above it — so the link sat on an axis of its own, and the block's width was whatever that particular profile happened to be called. A link is now drawn as its own label with the address behind it: Link("LinkedIn", "https://linkedin.com/in/…") sets the word and links the URL. Every contact row is one size, one mark width and one gap, so the block is the same shape for every document. The link row's smaller type went with it — LINK_SCALE was the only reason it existed. The departure from the ported sheet is measured: two of 154 layout nodes narrow, 1,743 of 2,173,720 pixels change, and nothing moves vertically. Both baselines were re-recorded with it. Neither gate can see a label swap, so the smoke test now asserts that the text layer carries the label and not the URL while the annotation still carries the URL, and that the four rows share one height. --- CHANGELOG.md | 16 ++++++--- .../readme/examples/cv-terracotta-rail-v2.pdf | Bin 40888 -> 40785 bytes .../support/TerracottaRailSampleData.java | 2 +- .../cv/presets/TerracottaRailFixtures.java | 2 +- .../cv/presets/TerracottaRailSmokeTest.java | 31 ++++++++++++++++++ .../cv-v2/terracotta_rail_layout.json | 8 ++--- .../cv-v2-layered/terracotta_rail-page-0.png | Bin 143214 -> 142447 bytes .../templates/cv/presets/TerracottaRail.java | 5 +-- .../cv/presets/TerracottaRailAside.java | 31 +++++++++--------- .../cv/presets/TerracottaRailStyles.java | 7 ---- 10 files changed, 67 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7f869e47..f04c042f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -99,14 +99,20 @@ follow semantic versioning; release dates are ISO 8601. a project title is a link when its entry carries one, and the monogram is drawn from the name's own initials rather than a field of its own — a document states its name once, and a monogram that could disagree with it would be a second place to keep - true. A link in the contact block is set smaller than the channels above it, because - a URL is one long token that cannot be broken and is the line that outgrows that - column first; it takes the mark of the network it points at, or a globe. Like its - siblings it holds one page: the body is a single atomic row, so a longer CV raises + true. **A link in the contact block is drawn as its own label with the address behind + it**, which is where the preset departs from the sheet it ports: writing the URL out + makes that row as wide as whatever the reader's profile happens to be called — long + enough that the published design sets it smaller and nudged in, on an axis of its + own. Stating `Link("LinkedIn", "https://…")` puts the four rows on one axis at one + size for every document. The departure is exactly measured — two of 154 nodes narrow, + 1 743 of 2 173 720 pixels change, and nothing moves vertically — and both baselines + were recorded with it. A link takes the mark of the network it points at, or a globe. + Like its siblings it holds one page: the body is a single atomic row, so a longer CV raises `AtomicNodeTooLargeException` rather than flowing or dropping entries. Guarded by a smoke test (including the unknown-mark data error, an entry with no mark, an identity with no links, a document with nothing but an identity, the monogram, the link - targets and the one-page limit), an exact layout snapshot and a pixel-parity gate; + targets, the four contact rows sharing one axis and the one-page limit), an exact + layout snapshot and a pixel-parity gate; the examples showcase gains `cv-terracotta-rail-v2`. - **The first invoice preset that paginates what it ports: `LumaStudioInvoice`.** A diff --git a/assets/readme/examples/cv-terracotta-rail-v2.pdf b/assets/readme/examples/cv-terracotta-rail-v2.pdf index f598c897ed65937bf19b1de54cf3d6c7e3144d13..acd667adf7646e77ee252a1286d1828c34098950 100644 GIT binary patch delta 20006 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 diff --git a/examples/src/main/java/com/demcha/examples/support/TerracottaRailSampleData.java b/examples/src/main/java/com/demcha/examples/support/TerracottaRailSampleData.java index 2a6490270..b4f2d7885 100644 --- a/examples/src/main/java/com/demcha/examples/support/TerracottaRailSampleData.java +++ b/examples/src/main/java/com/demcha/examples/support/TerracottaRailSampleData.java @@ -62,7 +62,7 @@ private static CvIdentity identity() { "SENIOR ARCHITECT", new Contact("+44 7700 900123", "oliver.bennett@email.com", "Bristol, United Kingdom"), - List.of(new Link("linkedin.com/in/oliverbennett-architect", + List.of(new Link("LinkedIn", "https://linkedin.com/in/oliverbennett-architect")), Optional.empty()); } diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailFixtures.java index 6b8271bd5..4852b5601 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailFixtures.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailFixtures.java @@ -60,7 +60,7 @@ static CvIdentity identity() { "SENIOR ARCHITECT", new Contact("+44 7700 900123", "oliver.bennett@email.com", "Bristol, United Kingdom"), - List.of(new Link("linkedin.com/in/oliverbennett-architect", + List.of(new Link("LinkedIn", "https://linkedin.com/in/oliverbennett-architect")), Optional.empty()); } diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java index d443008f6..1cbf9fc03 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java @@ -142,6 +142,37 @@ void contactChannelsAndLinksAreClickable() throws Exception { .contains("https://linkedin.com/in/oliverbennett-architect"); } + @Test + void aLinkShowsItsLabelAndHidesItsAddress() throws Exception { + // The row draws the label, so its width is the same whatever the + // profile behind it is called; the address is reachable, not written. + byte[] pdfBytes = render(TerracottaRailFixtures.canonicalCv()); + assertThat(textOf(pdfBytes)) + .contains("LinkedIn") + .doesNotContain("linkedin.com/in/oliverbennett-architect"); + assertThat(linkTargets(pdfBytes)) + .contains("https://linkedin.com/in/oliverbennett-architect"); + } + + @Test + void everyContactRowStartsOnTheSameAxis() throws Exception { + // Four rows, one mark width and one gap: a link that was set smaller + // or nudged in would put its text on an axis of its own. + try (DocumentSession session = GraphCompose.document() + .pageSize(DocumentPageSize.A4) + .margin(0f, 0f, 0f, 0f) + .create()) { + TerracottaRail.create().compose(session, TerracottaRailFixtures.canonicalCv()); + List heights = session.layoutSnapshot().nodes().stream() + .filter(node -> node.entityName().startsWith("Contact_")) + .map(node -> node.placementHeight()) + .toList(); + assertThat(heights).hasSize(4); + assertThat(heights).allMatch(height -> Math.abs(height - heights.get(0)) < 0.01, + "every contact row is as tall as the first"); + } + } + @Test void aProjectTitleBecomesALinkWhenItsEntryCarriesOne() throws Exception { EntriesSection linked = new EntriesSection("SELECTED PROJECTS", List.of( diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json index 4e6f57818..fef4c7d24 100644 --- a/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/terracotta_rail_layout.json @@ -175,11 +175,11 @@ "computedY" : 684.99, "placementX" : 25.4, "placementY" : 684.99, - "placementWidth" : 138.313, + "placementWidth" : 113.88, "placementHeight" : 69.8, "startPage" : 0, "endPage" : 0, - "contentWidth" : 138.313, + "contentWidth" : 113.88, "contentHeight" : 69.8, "margin" : { "top" : 0.0, @@ -295,11 +295,11 @@ "computedY" : 689.49, "placementX" : 25.4, "placementY" : 689.49, - "placementWidth" : 138.313, + "placementWidth" : 49.355, "placementHeight" : 12.95, "startPage" : 0, "endPage" : 0, - "contentWidth" : 138.313, + "contentWidth" : 49.355, "contentHeight" : 12.95, "margin" : { "top" : 0.0, diff --git a/qa/src/test/resources/visual-baselines/cv-v2-layered/terracotta_rail-page-0.png b/qa/src/test/resources/visual-baselines/cv-v2-layered/terracotta_rail-page-0.png index 67030d567b248940607ef41c525a5ca4cbbe65aa..ee8cfdaefe58dfb34ecf0ed583dedfa2c014bf45 100644 GIT binary patch literal 142447 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
    * *

    Fonts

    diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java index 3a8749596..b9a8aa33e 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java @@ -25,7 +25,6 @@ import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.INFO_LINE_GAP; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.INFO_WEIGHTS; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.INK; -import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.LINK_SCALE; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MONOGRAM_RULE_TO_CONTACT_GAP; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MONOGRAM_RULE_WIDTH; import static com.demcha.compose.document.templates.cv.presets.TerracottaRailStyles.MONOGRAM_SIZE; @@ -125,12 +124,14 @@ private static void appendInitial(StringBuilder out, String part) { // -- the channels ------------------------------------------------------ /** - * The contact block: each channel behind its mark, and the links beneath - * them. + * The contact block: the three channels and a row per link, all on one + * axis behind their marks. * - *

    A link is set smaller than a channel. A URL is one long token that - * cannot be broken, so it is the line that outgrows this column first, - * while a phone, an address or a city is short enough at full size.

    + *

    A link shows its own label and carries the address behind it, which + * is what keeps the rows the same. Writing the URL out would make that row + * as wide as whatever the reader's profile happens to be called — long + * enough to need setting smaller than the rows above it, and a different + * width for every document.

    */ private static void renderContact(SectionBuilder side, CvIdentity identity) { side.addSection("Contact", block -> { @@ -139,28 +140,28 @@ private static void renderContact(SectionBuilder side, CvIdentity identity) { // channels are always drawn; only the links are optional. Contact contact = identity.contact(); channel(block, 0, TerracottaRailIcons.EMAIL, contact.email(), - "mailto:" + contact.email(), false); + "mailto:" + contact.email()); channel(block, 1, TerracottaRailIcons.PHONE, contact.phone(), - telUri(contact.phone()), false); - channel(block, 2, TerracottaRailIcons.LOCATION, contact.address(), null, false); + telUri(contact.phone())); + channel(block, 2, TerracottaRailIcons.LOCATION, contact.address(), null); int index = 3; for (Link link : identity.links()) { - channel(block, index++, markFor(link), link.label(), link.url(), true); + channel(block, index++, markFor(link), link.label(), link.url()); } }); } private static void channel(SectionBuilder block, int index, String token, String value, - String href, boolean compact) { + String href) { block.addParagraph(p -> { p.name("Contact_" + index); inlineIcon(p, token, TerracottaRailIcons.CONTACT_SIZE); - p.inlineText(compact ? " " : " "); - double size = compact ? DETAIL_SIZE * LINK_SCALE : DETAIL_SIZE; + p.inlineText(" "); if (href == null || href.isBlank()) { - p.inlineText(value, text(size, INK, false)); + p.inlineText(value, text(DETAIL_SIZE, INK, false)); } else { - p.inlineText(value, text(size, INK, false), new DocumentLinkOptions(href)); + p.inlineText(value, text(DETAIL_SIZE, INK, false), + new DocumentLinkOptions(href)); } p.margin(0f, 0f, (float) CONTACT_ROW_GAP, 0f); }); diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailStyles.java index 83e5a3960..89be2b0a5 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailStyles.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailStyles.java @@ -56,13 +56,6 @@ private TerracottaRailStyles() { static final double NAME_SIZE = 28.0; static final double SUBTITLE_SIZE = 13.0; - /** - * How much smaller a link is set than the channels above it. A URL is one - * long token that cannot be broken, so it is the line that outgrows this - * sidebar first. - */ - static final double LINK_SCALE = 0.85; - // -- palette ---------------------------------------------------------- static final DocumentColor ACCENT = DocumentColor.rgb(201, 74, 41); From c76f8475fa4afcba3e714cc71ec303ed39346dc0 Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 14:27:32 +0100 Subject: [PATCH 19/85] feat(templates): link every title Terracotta Rail draws (#626) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only a project title could point somewhere. A role, a degree and a credential are just as often things a reader wants to open — a company, a campus, a registry entry — and the model already carries the target on every entry. Each of them is now a link when its entry carries CvEntry.link(). It costs the layout nothing, because a link is an annotation rather than ink: both gates pass on the baselines recorded before this change, which is the proof. The closing facts stay plain. Their bold line is a label for the values under it — "Languages:", "Availability:" — rather than the name of something a reader could open. --- CHANGELOG.md | 7 +-- .../cv/presets/TerracottaRailSmokeTest.java | 40 +++++++++++++++++ .../templates/cv/presets/TerracottaRail.java | 12 ++++-- .../cv/presets/TerracottaRailAside.java | 7 +-- .../cv/presets/TerracottaRailMain.java | 5 ++- .../cv/presets/TerracottaRailWidgets.java | 43 ++++++++++++++----- 6 files changed, 93 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f04c042f6..cef198cb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -96,7 +96,8 @@ follow semantic versioning; release dates are ISO 8601. terracotta square and no dash under its heading, the other a disc and a dash, which is how the sheet tells two lists of one-liners apart. Each fact and each project takes the mark its entry names in `CvEntry.icon()` from this preset's own vocabulary, - a project title is a link when its entry carries one, and the monogram is drawn from + every title it draws — a role, a project, a degree, a credential — is a link when its + entry carries one, and the monogram is drawn from the name's own initials rather than a field of its own — a document states its name once, and a monogram that could disagree with it would be a second place to keep true. **A link in the contact block is drawn as its own label with the address behind @@ -111,8 +112,8 @@ follow semantic versioning; release dates are ISO 8601. `AtomicNodeTooLargeException` rather than flowing or dropping entries. Guarded by a smoke test (including the unknown-mark data error, an entry with no mark, an identity with no links, a document with nothing but an identity, the monogram, the link - targets, the four contact rows sharing one axis and the one-page limit), an exact - layout snapshot and a pixel-parity gate; + targets on every kind of title, the four contact rows sharing one axis and the + one-page limit), an exact layout snapshot and a pixel-parity gate; the examples showcase gains `cv-terracotta-rail-v2`. - **The first invoice preset that paginates what it ports: `LumaStudioInvoice`.** A diff --git a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java index 1cbf9fc03..86332096f 100644 --- a/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java +++ b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailSmokeTest.java @@ -173,6 +173,46 @@ void everyContactRowStartsOnTheSameAxis() throws Exception { } } + @Test + void everyTitleBecomesALinkWhenItsEntryCarriesOne() throws Exception { + // A role, a degree and a credential, each pointing somewhere. None of + // it moves a pixel or a layout node, so this is the only thing that + // would notice the annotations going missing. + List placements = new ArrayList<>(); + for (CvDocument.Placement placement : TerracottaRailFixtures.canonicalCv().placements()) { + placements.add(switch (placement.section().title()) { + case "PROFESSIONAL EXPERIENCE" -> new CvDocument.Placement(Slot.MAIN, + new EntriesSection("PROFESSIONAL EXPERIENCE", List.of( + CvEntry.builder("Senior Architect") + .subtitle("Northline Studio, Bristol, UK") + .date("2021") + .link("https://example.test/northline") + .body("Lead design packages.") + .build()))); + case "EDUCATION" -> new CvDocument.Placement(Slot.MAIN, + new EntriesSection("EDUCATION", List.of( + CvEntry.builder("MArch Architecture") + .subtitle("University of Sheffield") + .date("2014") + .link("https://example.test/sheffield") + .build()))); + case "CERTIFICATIONS" -> new CvDocument.Placement(Slot.SIDEBAR, + new EntriesSection("CERTIFICATIONS", List.of( + CvEntry.builder("ARB Registered Architect") + .link("https://example.test/arb") + .build()))); + default -> placement; + }); + } + + List targets = linkTargets( + render(new CvDocument(TerracottaRailFixtures.identity(), placements))); + assertThat(targets) + .contains("https://example.test/northline") + .contains("https://example.test/sheffield") + .contains("https://example.test/arb"); + } + @Test void aProjectTitleBecomesALinkWhenItsEntryCarriesOne() throws Exception { EntriesSection linked = new EntriesSection("SELECTED PROJECTS", List.of( diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRail.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRail.java index 06dd1b06e..2dc44a148 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRail.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRail.java @@ -72,9 +72,15 @@ * {@code CvEntry.icon()}, from this preset's own vocabulary — * {@code globe}, {@code badge}, {@code clock}, {@code building}, * {@code hotel}, {@code house} — and an unknown token is reported as a data - * error naming the set. An entry with no token is drawn without a mark, and - * a project title becomes a link when its entry carries - * {@code CvEntry.link()}.

    + * error naming the set. An entry with no token is drawn without a mark.

    + * + *

    Every title the preset draws — a role, a project, a degree, a + * credential — becomes a link when its entry carries {@code CvEntry.link()}. + * It costs the layout nothing, because a link is an annotation rather than + * ink, so a linked title and a plain one are the same line. The closing facts + * are the exception: their bold line is a label for the values under it — + * "Languages:", "Availability:" — rather than the name of something a reader + * could open.

    * *

    The email, the phone and each link are reachable from the PDF, with the * {@code mailto:} and {@code tel:} targets built from the values. A link is diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java index b9a8aa33e..50e82e123 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailAside.java @@ -213,12 +213,12 @@ private static void renderBulletedSkills(SectionBuilder side, SkillsSection sect String name = prefix + "_" + index++; if (discBullet) { bulletLine(block, name, p -> p.dot(3.0, ACCENT), skill.name(), - INK, DETAIL_SIZE); + INK, DETAIL_SIZE, null); } else { bulletLine(block, name, p -> inlineIcon(p, TerracottaRailIcons.SQUARE, TerracottaRailIcons.BULLET_SIZE), - skill.name(), INK, DETAIL_SIZE); + skill.name(), INK, DETAIL_SIZE, null); } } } @@ -232,8 +232,9 @@ private static void renderCertifications(SectionBuilder side, EntriesSection sec headingWithDash(block, section.title(), SIDEBAR_HEADING_SPACER, SIDEBAR_DASH_WIDTH); List entries = section.entries(); for (int index = 0; index < entries.size(); index++) { + CvEntry entry = entries.get(index); bulletLine(block, "Certification_" + index, p -> p.dot(3.0, ACCENT), - entries.get(index).title(), INK, DETAIL_SIZE); + entry.title(), INK, DETAIL_SIZE, entry.link()); } }); } diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java index 985c12538..c9bc38fc4 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailMain.java @@ -172,7 +172,7 @@ private static void renderExperience(SectionBuilder main, EntriesSection experie body.padding(0f, 0f, last ? 0f : (float) ENTRY_GAP, (float) ENTRY_INDENT); railedLine(body, "Role", index, titleAndDate("RoleTable_" + index, entry.title(), entry.date(), - ENTRY_WIDTH, ROLE_PERIOD_SHARE)); + ENTRY_WIDTH, ROLE_PERIOD_SHARE, entry.link())); body.addParagraph(p -> p .name("Employer_" + index) .text(entry.subtitle()) @@ -301,7 +301,8 @@ private static void renderEducation(SectionBuilder main, EntriesSection educatio (float) ENTRY_INDENT); railedLine(body, "Edu", index, titleAndDate("EduTable_" + index, entry.title(), entry.date(), - EDUCATION_ENTRY_WIDTH, EDUCATION_PERIOD_SHARE)); + EDUCATION_ENTRY_WIDTH, EDUCATION_PERIOD_SHARE, + entry.link())); body.addParagraph(p -> p .name("Institution_" + index) .text(entry.subtitle()) diff --git a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java index 590883f1a..4a70b3b2c 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TerracottaRailWidgets.java @@ -5,6 +5,7 @@ import com.demcha.compose.document.dsl.RowBuilder; import com.demcha.compose.document.dsl.SectionBuilder; import com.demcha.compose.document.dsl.TableBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; import com.demcha.compose.document.node.DocumentNode; import com.demcha.compose.document.node.InlineImageAlignment; import com.demcha.compose.document.node.LayerAlign; @@ -194,10 +195,30 @@ static void railedLine(SectionBuilder body, String prefix, int index, DocumentNo * — it spans the cell and its columns lay out. Both cells hold a * paragraph, because a table inside a row cell draws only leaf * content.

    + * + *

    The title carries the entry's link when it has one. That costs the + * layout nothing — a link is an annotation rather than ink — so a linked + * title and a plain one are the same line.

    + * + * @param name the node name this line's parts are built from + * @param title the entry's title + * @param date the date, set flush right + * @param width the line's width + * @param dateShare how much of that width the date takes + * @param link the target the title points at, blank for none + * @return the line node */ static DocumentNode titleAndDate(String name, String title, String date, - double width, double dateShare) { + double width, double dateShare, String link) { double dateColumn = width * dateShare; + ParagraphBuilder titleCell = new ParagraphBuilder() + .name(name + "_Title") + .text(title) + .lineSpacing(0) + .textStyle(text(ITEM_TITLE_SIZE, INK, true)); + if (link != null && !link.isBlank()) { + titleCell.link(new DocumentLinkOptions(link)); + } return new TableBuilder() .name(name) .width(width) @@ -209,12 +230,7 @@ static DocumentNode titleAndDate(String name, String title, String date, .stroke(NO_BORDER) .build()) .rowCells( - DocumentTableCell.node(new ParagraphBuilder() - .name(name + "_Title") - .text(title) - .lineSpacing(0) - .textStyle(text(ITEM_TITLE_SIZE, INK, true)) - .build()), + DocumentTableCell.node(titleCell.build()), DocumentTableCell.node(new ParagraphBuilder() .name(name + "_Period") .text(date) @@ -246,14 +262,21 @@ static void layeredRow(SectionBuilder parent, String name, double marginTop, .layer(layer.build(), LayerAlign.TOP_LEFT, 0)); } - /** A bullet line: a mark, a gap, and the item beside it. */ + /** + * A bullet line: a mark, a gap, and the item beside it — carrying a link + * when one is given. + */ static void bulletLine(SectionBuilder block, String name, Consumer mark, - String item, DocumentColor color, double size) { + String item, DocumentColor color, double size, String link) { block.addParagraph(p -> { p.name(name); mark.accept(p); p.inlineText(" "); - p.inlineText(item, text(size, color, false)); + if (link == null || link.isBlank()) { + p.inlineText(item, text(size, color, false)); + } else { + p.inlineText(item, text(size, color, false), new DocumentLinkOptions(link)); + } p.margin(0f, 0f, (float) BULLET_ROW_GAP, 0f); }); } From adf961d244c805833a83eb7b2690fef6aa5c1e2b Mon Sep 17 00:00:00 2001 From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com> Date: Mon, 31 Aug 2026 17:22:38 +0100 Subject: [PATCH 20/85] feat(templates): add the Teal Pulse clinical CV preset (#627) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A one-page clinical sheet in five bands: a heart crossed by a flat pulse beside a letter-spaced name; a contact strip divided by short rules; a two-column body carrying the competencies as dotted lines beside the summary and the roles under badged headings; a three-column closing band for the degree, the certifications and the facts; and a tracked line under a rule that ends in a small heart. It ports a published standalone template onto the existing CvDocument with no model change. Six berths reach their sections by title, including a tagline berth whose body is drawn and whose title is not. The preset sets its own page: the design was drawn on a raster whose proportion is not A4's and every length is a share of that grid, so a caller's page size and margin are overwritten. Both vertical rules are the left border of the column to their right, so they are the grid rather than lines beside it, and the main headings are laid over their own rule with the paper knocked out behind every letter — a row cannot nest in a row cell, and the rule's visible length still has to follow the words. Past one page it behaves unlike the other ported CV presets: the bands are stacked in the page flow, so a longer CV carries the closing band onto a second page rather than losing anything, while the body row is atomic and a body taller than a page raises AtomicNodeTooLargeException. A link is drawn as its own label with the address behind it, the one deliberate departure from the ported sheet: six of 121 nodes shift sideways and 7,724 of 1,987,720 pixels change, with nothing moving vertically. Guarded by a smoke test, an exact layout snapshot and a pixel-parity gate; the examples showcase gains `cv-teal-pulse-v2`. --- CHANGELOG.md | 30 + assets/readme/examples/cv-teal-pulse-v2.pdf | Bin 0 -> 41604 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../examples/support/ShowcaseMetadata.java | 1 + .../examples/support/TealPulseSampleData.java | 167 + .../templates/cv/v2/TealPulseExample.java | 51 + .../cv/presets/TealPulseFixtures.java | 166 + .../presets/TealPulseLayoutSnapshotTest.java | 32 + .../cv/presets/TealPulseSmokeTest.java | 265 ++ .../cv/presets/TealPulseVisualParityTest.java | 41 + .../cv-v2/teal_pulse_layout.json | 3647 +++++++++++++++++ .../cv-v2-layered/teal_pulse-page-0.png | Bin 0 -> 113663 bytes .../templates/cv/presets/TealPulse.java | 220 + .../templates/cv/presets/TealPulseBody.java | 239 ++ .../cv/presets/TealPulseClosing.java | 235 ++ .../templates/cv/presets/TealPulseIcons.java | 105 + .../cv/presets/TealPulseMasthead.java | 264 ++ .../templates/cv/presets/TealPulseStyles.java | 313 ++ .../cv/presets/TealPulseWidgets.java | 234 ++ .../cv/teal-pulse/icons/additional.svg | 1 + .../cv/teal-pulse/icons/brand-heart.svg | 1 + .../cv/teal-pulse/icons/brand-pulse.svg | 1 + .../cv/teal-pulse/icons/certifications.svg | 1 + .../cv/teal-pulse/icons/education.svg | 1 + .../templates/cv/teal-pulse/icons/email.svg | 1 + .../cv/teal-pulse/icons/experience.svg | 1 + .../templates/cv/teal-pulse/icons/heart.svg | 1 + .../cv/teal-pulse/icons/linkedin.svg | 1 + .../cv/teal-pulse/icons/location.svg | 1 + .../templates/cv/teal-pulse/icons/phone.svg | 1 + .../templates/cv/teal-pulse/icons/summary.svg | 1 + 31 files changed, 6024 insertions(+) create mode 100644 assets/readme/examples/cv-teal-pulse-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/TealPulseSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/TealPulseExample.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TealPulseVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/cv-v2/teal_pulse_layout.json create mode 100644 qa/src/test/resources/visual-baselines/cv-v2-layered/teal_pulse-page-0.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulse.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseBody.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseClosing.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseMasthead.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/cv/presets/TealPulseWidgets.java create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/additional.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/brand-heart.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/brand-pulse.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/certifications.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/education.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/email.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/experience.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/heart.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/linkedin.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/location.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/phone.svg create mode 100644 templates/src/main/resources/templates/cv/teal-pulse/icons/summary.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index cef198cb3..f2e77d060 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,6 +84,36 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A clinical CV preset in five bands: `TealPulse`.** A one-page sheet whose mark is a + heart crossed by a flat pulse, beside a letter-spaced name over a contact strip + divided by short rules; then a two-column body carrying the competencies as dotted + lines beside the summary and the roles under badged headings; then a three-column + closing band for the degree, the certifications and the facts; and a tracked line + under a rule that ends in a small heart. Ships as `cv.presets.TealPulse` on the + existing `CvDocument` model with **no model change at all**, porting the rendered + layout of a published standalone template. **It sets its own page**, unlike every CV + preset before it: the design was drawn on a raster whose proportion is not A4's and + every length is a share of that grid, so a caller's page size and margin are + overwritten rather than followed. Six berths reach their sections by title, including + a tagline berth whose body is drawn and whose title is not — the title is how a + document names the berth. Both vertical rules are the left border of the column to + their right rather than lines placed beside them, so they are the grid: change a + weight and the rules follow. The main headings are laid over their own rule with the + paper knocked out behind every letter, because a row cannot nest in a row cell and the + rule's visible length still has to follow the words. **What happens past one page is + not what the other ported CV presets do:** the bands are stacked in the page flow, so + a CV with more roles than the design holds carries the closing band onto a second page + rather than losing anything, while the body row itself is atomic and a body taller + than a page raises `AtomicNodeTooLargeException`. As on `TerracottaRail`, a link is + drawn as its own label with the address behind it, which is the one deliberate + departure from the ported sheet — writing the URL out makes the strip's gaps depend on + how long a profile is called — measured at six of 121 nodes shifting sideways and + 7 724 of 1 987 720 pixels, with nothing moving vertically. Guarded by a smoke test + (including the empty document, the page override, the tagline's title staying off the + sheet, the link targets, a linked role and degree, the run onto a second page and the + refusal of a body taller than one), an exact layout snapshot and a pixel-parity gate; + the examples showcase gains `cv-teal-pulse-v2`. + - **An architect's two-column CV preset: `TerracottaRail`.** A one-page A4 sheet whose narrow column carries a serif monogram over a terracotta rule, the contact channels behind their marks, two bulleted lists and a block of closing facts, beside a wide diff --git a/assets/readme/examples/cv-teal-pulse-v2.pdf b/assets/readme/examples/cv-teal-pulse-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..73b531b291e77dde23269cd0801d7918a6466c34 GIT binary patch literal 41604 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

    s1UfryyG# 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�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 G^!Z=zi0u{t literal 143214 zcmdqJRalg5`!{M(l1g`Xhjb}j(jX;>fCxx844`y(r*sR_If!&C-8q0X3^^e1T|V#g z{@2=B-`4teK6f|{nPKkxzOL&$e|1inx~e=DIw|^t2M@3m6=XCYJb0w_;K5@>v`657 zib*&x9z6K;KvCwUwukY4R*)aT>$}UG4zrx?#*X?!yVj`#-4b;rL#1!;dX`wez6=mW zatHr#x0q~r$Y=343_C%NpM__!zRYZ;f&yg%_-m=$;pC>32H;_;2m{!ZHnN9hlK;hg@v21 zzzdzYz&kiN?BoBh_|xU-{VCbm-#mvJJ_m#d*!4D%X%=si z2@6x){mGg97!_ykvW{7d_J=1?vcB^lW&=&98Xr`(e)mPBZ8~gH-jC5MZLWKQGIFwW z?#w1+g0^m|gPsG!!*xeizw#KA!#4PwT;K-_7uDmMPc-ep5A-L^j69cALLYG0Di1{6 zl!gh|Ue9%9K3}vfaNhZdVQaZkDYL<-;uL-KE|+aSfjg2+FfYrjMNhX%-%@S;Rr23; z^UQ?AP>Pd^PhXDt-Sko2ZL3*uav0P{g}2zPR6=fds{B$Y_V_=T_#EF(3N>M)6sEYB(k7cZ0B=h$8dc$ zF_yK_sy9A9exOL)3oh;N?Y6k=nf}l1CPOgm*qnCnPR9J4A7W-0V_jfQ)l9lUiQ48!AS*{QW`~6KyqiU9f?Mf}Wld^>VwEgUdl?lac1}fzk zK-m>SBG|_Sa<4Oj@--86FM&#w2-JOhj@47s)x1D!A&JgwM8+|jBTtzJ8 z@w=4@VlKYIiq?@LEiu`6|AOFjd~@hx6}OX^z_w{j0ovv1iJ}P%wJqI@}}2HqFeEkC|@&D(O1nBvjAI$ zP4{d1hTvFBi7DZ^Eyg>R(?N)oR31nASpToGf^*Wlj~K4r?Uy6t$_yqNhqacM@s#pN zV$CE;IcrERojgm_|E>*>y3`cs{#7G6bm4bzwEz%5)|#-o}PM zK|bhY*qzQ#2`79;VujPtuLM28V_FDcV`M{oyi7w!M;CS3&65(eUAD%m497=6udc}q zpDsHTb1qH3Y&@E^ig=rl1mXO{I#UyO6ytYSexFo+p-{y7N+S7TK=3SGS{XS4TCO!i zsmt=PEMD^-Y$ek-9lp{8&XdF@-qr3q7O`BCe7DQfg>gO^NR!?RErE3v&m^5^H;!w( zi<#{-S3cxK*ThQcZ6E1B^1J&U-@hH_L(0T{Jc21^ndo<}Sk4N^M^s!6_?E34&(&I9 z5HqApm?ekL?WZJPyk%;C4$rmkD5vAOhfhmVN&0@o5s0j-JG;LfG9(yQb4?iI&aqI> z^$2YEsWgO)`1#AMZ|da<@qTBa4h75%v6_FMh-lN)>Awtd`YQba-mYI}3@0EWSYB!7 zE!pV^(wv!}ilms?OI|5SkMy0G! z&Q-x2wLf!a<^=r4%UTp1v}+}wO#w&-w@5T2%a3+6{~8n+Z+@2>yI@2`c`E`Rzs+hpbI3*~sv z(0@5Cxq`S^xQ}-gS*W+kZAeXr*e938L1aCfzioJ9Bz)0+|6SjPSzV>WL#$%Lee6vm zVUC3?iawp5PT~!F$w>(AsYXA8jr!s3!T_5kk^tn=Q=}5gjFV@Olq}y*L`qsTT0U*N zun>?{=QSciu+oFKoR^{~@kh*}+4oQBXYtu}{JV{;OQV%^USo6wa~!&>VFE#l4SeJx zgDuxiUO2dTK+qAM=tdz@ij=jqs1$pYbtxg{@w6dHB(KMiCjI1TyI<|v;7pgL zi%Cha4H&hp6ydv{7KN`g_{f8%(5?a}*}^bog^p15kg2~U;GyFB47o+c)Xe>wljup4 zBo8fC%lW!ets#yi>eI_^^C1n+j_AFL9vUA0^CzN8CtcM2=v!|E65nbAa{pP#_*Y*tg?UDH_qJtM)J zLj~1=14FD^l*AkID9tn&8#6N|Hulc1z1IYj?UqO5H#&;p5WR&lYe*qsrr6xwa>)I1 zlV^laV-4)05@owQVzeecCMQzid(uZ!c9zz1ot$Jg2x8KbY&Sb)2ljv?%lw4Fs(sKSs(Cs!kQa=(^ z5$H;NUD*!ceA9Yau}T&=^-`kFY@0JlDvHadOi%>Wki_)lB4ZlrEa{M#ez#XpLFFka zXln+cc!>I~J6!W{Az(<;Jg2v2s9wN?fCzs!fb9h|a)=2Z0oNS#_@Z1s4o5@uzDg|^ zEe}UPf(E60^lOvFo9c`u5TJRKxOGYl_GY!Zl}A;ifUD9UxQuCBsTWbJi6oQ!1&v8C zN~r36y;7myntfe&q|46&e;M?i!=SX#u042g?%mE}y|?GlcNYDDKIXn=Tvqt|2tGvQ z_y$L+wzjspb`%6n%|N{M=CbkLm2de(`^{#*yvS$}ve^a2qGH04tPTfEYphb{!uA~w zn|za3xMAAsv45^VF<+EkN+Dt_@}2zsG(1sE3Yt_tQ*vs(!z+k$lY4b#$m$!RYkSaH zcn%*3xjzHP{F{Z^8+7mOcAPhDwWdjZN2fj~=Yp&9X;R6(uQFP*N6MX8k0f$Tp@~m? zS&cbkR<^asPESuOtEPr-2zI?bZuW;vSFU^+|FgAlw1b&MmjfNUEQ5K%#b1SMVJaI- zj8GayXLp;t_GaKDx5WAS05RzU<#nGa3;(*iO3CPnsf|RuF(X1Nma*PG!NRKTW3GHH1w9T$tDgZl zPT!p3u4k#uD&|deSq!8}wBGMZ!}hg%ff&OKj8AFoEIHfwVqz)Jnt`eXGI#&Cu?0eJ z4^h#@bZDp~+FNFBP@T~Q^?$*<>A<5}GUnHct5Q))Dn7Q895ntc>9;CI7J&gT%n~P_ z?0!Z%f0)4}xYP!((0Sq+2nj||khog&Up0qCEJ*I!R!gRG(SbU8rqmxIl(|1u;>c&= z$;P`Asd*lU6BH!R9B~hhvg#}4+I?-EW(Jd5!bM%m+!QLEObBB!P@~5PC6@f@cYkQ4y_5iEUmQoV$jKcZ+tJn5INO; zaAmIP3w3K`X+d2Xr&?T$DLjSWrnI(PvDPF$KK`Sllamvp>fMo{*8OR5hc2uc`dSt` zV%RWX{6Ma~vxw58G_))U@&P_+#adz*V?6zZb&wzNr^-mDabi(mP??%)ce%DvB%ED` zo=U{$I+C@B9kii9F*Rt@z%9Y|Y{ura*3Pou8d+1(qiTVy@T6wY{2iTlzhmAfjE?5% zPHnP)ay@qr&ZQ31?ET$lC3aQ|yHT4tfN%r>8|nfL$9fwN+I_Oj0shk zFJBIFd4f7BHkA(Qr4|N$-O&y``1OEh=h11ByhK+fvBIkk1S(EkRY?ijeCczOPzWa> z(aN@SGUH0b;3-U5Z?#+~k>J?}98QzC+w?LDjGTE?ch198g6(Z_u{wq(1QRYzoe#%t zY=q?|i(zSEa&okHpZ+f7$Iy6*V{L4#&BfB-3>$sUxiZ@QWsIMyN}WlEE5IWXFi|`I z@Sk6$nYXTG8|jEcpQ<-FHMF67YX-Yaf`w%e|C5Vq-~Ws5F{CfB zwP+W0yDUr)`zoq5X73${xUbtL|~>f=%-ChO}gz=VZOaU}?s&L%oNW zcB`aHPE#7uHp0Bgcd69xO>nn6q357*vnu>Y4AFiAleV(NX2tJOy{aEB?a5wJ)}3%& zCSHazS1sbSHZhvaH%oVpNF<~2n6=u3jMe`4Q|S=u*F77%8~Zes9c`@^Cka=3$oeq= zFN%jnw6#yGt?h0lK9n8Hp1%}4Kf9;|jrI{)I};Bc;Z>1|*o6@7Cx)(jSUZRExNVQ8t^3AW~lyk!vhts zp$*u-vGJ7p&)O7NGvzRI9W<_B+ePQ_v(FcsdBk|lpf*NRtlV6r3rBD38;$a0`QC+I z^L7RJ>{;}V!U!hp5mE0HjrmXS4*AnQZ=ZYbO#vA6SKk>|rp=iq=9Fjf(Ck1 zlv1+p54kCtQLFM}G`T0YwrY<3M~n!BAjj~nGoB~d3(B2Y$2uYc`JZnLS}p7&Jvo&# zr0aflNHvWJ@t5DRR(`)KoM$16Wblr}y^$T8*=G6lN9H~(iSKJYVleY^wf(ooo0>d- zTSs;C6-KAC)%W*dyDMUwzp=d|;YoGoxT1_)Io3Gbu0HBR@rjbrfE%sla$FFv7E~WE zUu>FYL7lrR?nk3c5B3We+WIv_hKQQRxhO4%>`?^`--+Mr4F>p-O(t8q<5jwrC->#P z*3LY`khjeZi(o2I|5Ypc#4+I-h5s)0XDne314ouhPub6s&mBTk>&Yw3%8v{Ts)GKC zaDa!k3R^rNJiUu1z`?O?mnay?!aA+Ym4aT8NKbVm&&^0zJfo(1mM8C~S)21Z6B4B6 zOs=&!<+r^x`4H!#vZMXI+lN;Bx7>l%a(pUqWd7SmVcQ?Upz15I9t=M;%;eQcykx&h zQ42_i;E%&k^V*EOs}-Su1th@jZv@e4G@}pL3G$ot20glpy8^^*jw*79mJj3?8nf75 zLH#RK(va7;&N?4%EjGaUE<0@r{B%L<2m>l~5%y!ar-8p$e>hWGJU zIT|KDy}lADIFuC=HObHG>Wne|krDxK8?TYuZ!*59WWa?tU-btEpl>1lc2I86&V;y6 zkJQIeOY%`neAFzPWUq?Fc`Y~XOtoxQb*0}``D{>Yx70@_cn@1ITl@o#zyQ(Y6`lUr zmmza;YaSm;!-Y>_o6%sI+0O~Jo;AeHC zJ>70Q6l&#sQvvhFB~lDru(_>xHi)Na*IRDXy&=6pIR@Il2yj|}6ff!Que2Z1Tv>idR zG(~FN?*sknik>6!9u1zS%Bh|`1tB*mD znR#EVAq$#>Y=#_zcYT))!SCfmYIr<*T=sh5pah?%1C4m79boM)NEu!}xnL=mz}fZB zhH2^rABpWMZgd3ZX}M14$Q|CV@|V{LIszIhbZhuC%3@axCGlpa?*l!bA)m2U+SevJ z9gEAB1gBB0jhH>BRQg^@SHbSwQZi8!H(AhU^L#|sul&pZL~0u%A=tytKR>g4g0QPf z%eU(pFyp7B&uJO6^tnRbr0+%&5_i+i1`B8G{LiK;?k~pYD-y+ybyb%A>IN>Sx%>5f zR`sZ)b}R%GXlaUtpzfwHpHReemeCfCHwO?8m)3#Q?MwVOB~8?l1@&DgHJnWrJwb(> zU(3p~oaDK!=J0Jw)*J{a1nJhk*|zFb9a~#EzI=JimBUL~(tpXt|KE>(JvD$zX*Y85 zjGDk)+}{+)LWXp0PZ5#0f^1*j!G@rexU;KEq03k~-EzmZ$BM~fr%ujFrIsp~dp^+h zb$~kO*hEDp3Hyr9BKj0|LBSP*)GRJQ#lG)g=bcNKMB3vhd_*Q5RBn#p8u~?nBTY!8 zVaCFAvAV3k(Iy4YZ6zZ@NqznDRFmSChHLX7=W4>Ng16W!iOQM3QvRWiD}3|Ljj7Je zc7F@dQxpLR5sFxg+Z<`G)X}Lv&^5G)4<>lPg-Tm(+oHmMr z28Vs5J9F`=@D)#fD=1<=uM^EWHzGmR=!@R73eyRP#0Ctn*3LuO6te(oHXSklGi<86 za>5Wh)-t=iO~>@aSze!R6a;1>oDb*F2f#6&K{yR$>SW&Nu791 zwwG^nB_#Rg;H1tO`}Voh8~DCYcQpg*idp`|o9A7SVl1w3%*B;&QkjyL7RKTUZilhg zVO{dp(<#gQtemRi^<#35XUwp7yF0hjeLA27>6>8DKQ8#QZyY~Q`-AG0_)b54bpHA6 zLyghO4~9DqJQO>N%@$$jZM->*eTIU`=q+zpp$hS=Q%Hp?+jwyyH=?iOyAsVrP20q0 zwdd0U5@(<~%6s*3OapysT_4WQ_4{MQBMg$_<^Kbj()$x&3CcWGV^Y5R`jcge|N11^ z^f?!ZHl2Tgl3Kjlkm3J9+vM+h!(au#+Og7krH9+KK~yck7p{R zl<89D#-)xcU&K-tc_H7rUHD%_1AZqMTyHTD{bcO+;46FDL(8s~X+>j+Dav~CO2dw| zpKEj&L|k)i78&9dkf;+1_YJu^pFND-frQNOU#NAn#l77&cTdNRi3kY~7yQ24AO7LD znX$C6NSe=mcYV<+f^I6Uz^T#863&4h(pv#?wB#dLkAc5fR2Xc42OA{`9^x02TKk94Nd2KmGls z=HSO`UBkmFx`0Vl9|4{}8U2U;z2m@T&CznZJh|?VA9Ts=Z$_0|T!z~a7+84TWMWxK`#%N8V}*<|1LCK41r!lMb;zRK{1QZUoE>e#rF|H?$v{gsHv%4aNWmr z5^+0BPfVnTEmS*B0L#hi;_&ge(1~0vqMzffYLX47M9F7VLLNV3O=Xg0s8_gio}ChL zS}#E96fz{t2#q&Nc%Vd_#`8^9&Oog|%oWUWeJOFCIZP;0$r7>c{rwHP4{V0xDVynY zDsJY(tr74M4b~IbIQCbe8h}SH*LxoU6_t*bF5m2(<#4*VOOu+C^)8%%ZEhU+5k@b@ znS#>mp&L#3rm)}N@EBjM{d^IDPsnbtxHkipdvaO z5L|;>`2FPXv!_g)uk&PsMTAA^gq4(M-J)PdMnzSgObK=)NqxtJKjiBQBsV7rh1bq; zalABG^1=#xQu1X67(GGHQ#efsb8uu%h_+s8!9QUrq!&Cso!tv*InS2xQ4;As$q>z1 zV$i=^_gZI}w)xrrt?)Tww$Ng)p$0o_>LMrOc?jfF+PUKfQ*fXW-TPMTEc&x4rT<{? zv)zFZ6XZX7PtY)b;MK(AEI)V>8z7Am^?u|;%loB-tJSaSSR6qf8k&b=YRD|`HT>Sb z6;@g3@6>1cy(OumFgi(3PfrhzkQj1{%X2aT6cpq&8%9RP(sm@*QzG`jiHhg8%d|8! zac_XfbgOk69F0~ukdl-XWXZA@i?gjcO~!9m)E{z0Oi0<8YuISZm0P6?)LSTfSCFi7 zanFJ&=hwIHzy_vk4f~a z2&YjS3|2b9+26Nfa&yr~sFouvO3NFMJnmrBHeh1V(D~(U>KBTqKR$0TzpK4c)Kzrb zts`NjU_(?7#oBLdaje{5CD8c?L4Zy7g?gPg{uH**sECvolOyCg2Pas51?}j#<=XWG z8{Mz%_OSVsXtu^}=^7~J#N7|cRo?J>~kH5Cz5J(Dd+Npn`;l)wS{OEi%{on zocmKIel%}5{dPdi9o?-GScy(~{kb`K!dF#u{tH^(Tz2c+yOX z82pyJKZhpO7#MU&gSwxDXEvU3a+28Y}CgKu!WJD?P>8yKSUbD*r^KdqO$@}6R z;Wu|`2jJm4ss9mhqK$zmhu9xOP)xVM}>71oV2#uvam7P6v1u6Yk45>T&i%)3%Xa z^9@I#Hq3^B5Es`LJchh{()ZgT{*edFLuLFn3`NP)N4izW2xI4g{Nk!7fyQBCvJ#7; zy-!o$HjAMl9t@M8Mzg5ani?y2TN|3FcZP_%T!os($Mgev$>P~P%Et$onO0&}VJdu6 zWw(z}f0Ps6$;$V|J}P;8MVn76D{)dc`2g+qfa<7!fj!oKV0=?(Q92l*H-M_GfFAAC zU%AjQBu4~$>}0+bQPrUV;fR576Mwn*ea3;+NZCI7Itp3v<06u}&HZtH3wA}}dFwxc60k1RmcS*-@5?s1 zPA<=ieJm7K9+h_2w{Vo*;h;hLqN?NW_FyRG7ApZl?Cy8Z#@=KTtOyN`%J9e9qcG`e z^U>QV2g2Plt)yet9CBvABLPB)7JKu2PmrFJ^XmR~Bj=NA)UYgAzj4+12zqNB@pt9^qG=!m z4@{{txYpOc2~m{}x#^eNm+)0|a8QtvdUyXYK#yoN$+KRozmHZ8vU>YsWU{W#3(GG# zqjkZ3zm4>1Xye(G;L6}B@AM6%DQ1;PjP}ucm;FVZPPzU*^p}2j3zGB+f15-3Lc`Ig zeEM@>s>ET0nKvmnQpRI>252E!ftW>NVj?~%VYDEN?{4>i7O*r!}+CJcPib(6+iWx8L8My;jm@WoZ)$r|>FRM3`F(aP#}^xxb48)=%hq5aFi|Ao5$o2b)&h}5N{ z%nKbt&1$AHAd>2^fD$QuA_!P(?-=B6KQr0AWEZqEPmLGtjpa45{^A-yGOJV?==v)% z`T?;dbU6y$Ia`fSPk3`{%fLiz5CnQujmasWeFKK0zEszbDkCg)Nwarm5fKqMRKhLq zrmWL&E53Yj*gh1ung05Etb%MS|J3{9kWSUB#jK&Mt*s3lYx~(I#pUAB!BODTcQqV{ zPFB4B^^0fMu-^S}8T8Gb+%9=@!a7jLBa+$0UFS1Q63Rpnbz?wRJ-_bnf(?x+ME#zk z&a=Grueg6#L|dckYoD64WA$qnQ4D!7{Jm2eXy27m3HB?=jqbn-TdMcw+K$sFPxRXDF!@~iWfGqf%^p+t{BT0ems7um9J`drI|(F4KBcu) ze@v|v!)OFW-3U$4Z!HgxN$o_7Hjw1*spEik@_N z`|dI7z^B-wfduk2G%_j|P%+50O8_!|k7x>f{Vxs#`nZLBi0p-xQR3yF3>G_rXC%UX z_RBGn{HsUcfjis+v=_cKu)nDwMV$OP@@zB#8{3!6=UY^I$D=GvUp??IjNDQ%rE zduLXCg6qGovB(a^^4qQ$ABWE2oN1iEt?liN*i!v%K3?9*?I8lhtk23_fc0IMBOarEhs5>OiCIou zKG>Q4gM&4yFc0|Tj;RD4j7g$Ug~Wn^%6RJwP1j_jxCJL9Rm6Sy(cHSvf2D8?AcY6z zKNH^r!UAk9?f}U5lC2pZKpPnx(bRk`Dl3ps=MPwAoc1tSAJL_dq$N6!(%5 zdD+=Hd&oHA`^`6Jb2YaMK)d%>{KGccGgT`JN~(6#c?9%k@_&RgH4v&5rZhQkaZrZX z2a3lsDFl6KTiK0kRD8(4-~87+;DqP?C>92)$znPmt(SSRKYO3{HCF)^nV`NOh*|u) z#v5mjd`Ouls+X9NAqti;RKpCMMy!d(3^CVv;uXi~kPi+d;IDJ!B+HgsSsmjB4_w;C z+pkaxd$B)HVv@YvUt-D$dfcd?F=LTsah~oPjF_^Ye*M)rUm|epf1U>&qOMKuUm@UM z-Op|@w6{E)zfTSN%OD%DLBPIjR}7K?z}g-$x%wL+{3JV3G^R~;$urE93U;-#lhb5I z`sTp(g=JbEeqvBkMFqR3s>hk0iFW~Os0yb+O(JPTtLFsemPVF@v)d$b%q9eEVC_&J zo5JU=^O&riEt`i+-pVPJt4B4PY!wSbT6T7a05IzJ@I5-KY^CG3J3rOrCJ~`KiYxZw{Z+r2t%mnu3^Q-13a+#-E5`6~Q z+=K*wymkQ>{2RNvUQDPJaoK%mL5%W9sZy_AgqL*?w;U6T_<1+9v7J`&Gd+mPGL|jMwZfqLH=B9R69n&OuJ&KiGHSKE1*iMKP@JQe z+~*pr+TMrnpKhSTWa4&_FuyWmipeHP5~-FZ;xnFD3fFs@?+pn87#m^IJUGS!-N2j( z#-Sy@E* z+~DB1z8GvgT70Mxh=Lj-)7KqME>0N3B)~b!-NA#=do0xH990EP+Ymf5RSGxFKIT1J zZneLU%kR@m6SaT%;+#V8vl+m-OJ^jtc1ucErM}X-%t4E92{mZLxgCzxqkFii3~B-K zbOaq2hf1RR75SbhrD(K;`O2ZVx3uV7+yQ9hQqTGe-oGV2I9-LrKv2y`>;6s8n3 z)dXTkr5c6ioBiK>PS2Buqlqmvi6tH3e+i|{_3#`(NZjZ&3$Wzt#PGsNKt==MwfCQ1 z?#oWp5=nwAA9`Aed2|p{G4Cg{mr-#CAR+e{_F;WnQML~a(T|(m2V{yrw^hVjHX5St z2Sxf}y~f(4EU{~V1)(6LDx2h?INW*N&ZqQ~Cw`T(_=F^D@K4!EfMP6y90%a|v(%9~9`Z9xyyd1*;d4~Pv+LWX& z`DjgLaP;SbiU#`on@Fg*S{G2hXgWAGL3)(BAc~Re--T;N)KH!xeai=;|B=F9^)num zZuG?+5UPmLMisl-r25rTJB7p2y3UBVio1CBsIl18m|Gu&*+Xxay-ZJ++i&17j$o9G z{z0Z3KN>0r`^hGf-XNc~hlCF^euz*O7ko_pgO^kFsujB+jAILeBAM#cm02X;qaE*V z#_gGEuW2)ri|1!S7Zy5pc^f17(1W{li|oflP|cr0A;3Vls@l8*Xi(CC$dbrZ)^h$^ zHdwO!gy5~Ze4u$GK?#yd#(XFRQaf=sWxH?BL9F}dW7&p}OL9T645{Ka(JKfHqHi~| z@BF#*gN2{P7kt9${Dn2a_``mWO+46B*5K54Zv6p8}e z{U`5m^3kpLPr0DU1COlUMJw}^;{Bm#7fLo@HNOpx`r-%}|9VmF4D=S2_#yF@g476a zrv|-6ypwsAG!tt`5j_hH6+>bBgEo4M&#Ny%gDWM(9+6A`R94%t;qJN{kM@fhgW7cQ zyPR7b9qn+tn6c_IF;=xy{o}CfDAEM%dZv*PhwYSPTOst3KF0wj?SyvXiJt@(=DJlc z>Fx%<_j7ZJ{XBzTA8m0gtk&@%9uy1{Pqo;3U*r|U2D2tv&JSFGd{g1tZ`?_go;3$@ zZ9A+NEd6~ntK<{`Jk$QN5p&q`FZnkJ##1C-I8P`mc3#wp<&KjLJdiD_)~5UQ`}=c? zg!dilk1;<0fy`GPM8#w{v5@Q5S!eHL_-JByN? zsMVP@{9CfmW`WMH$tl&O8dDmo>NqiO1(W*sm6!>#0&r88<6drO;%CI4+<&V`2qW#y zV$Wd=A?KOD`5ECFF!4ijKcC#^?uRTf?|57)?G=YJ-P!&UDjqx8$@^-f$XhO>wr=h= zAc@64a>ELUK0qNmCWCh>bhWu)qVY@*ZU-28Ux*axDM5Y6yshb|rfY3)qT}Cx_>gJ} zHBo-vMcx!@qp&W73ZP!s3=Ju2UVj;K5ag3OZl|%dgku|br*=&~%DZ*TJB}6awCSgyl=l>xFC2-!y{Exw|)5M@dCZhZEDb>oAlrmK)s0G0-nT;UHz53BSlKn`YcYHh1nUQMi z2}Y=5kJ2L?G9WC1sNR)ku&{2A1wB+L@PvhAba=R%gE;|GO(P_Pbc+5N)N|_Bp9rZi z?t>>`tWQ^IM)KkXb*dSKvOqb0@a28w5iTw+0fHLUO-Zg#&IOO6V!|963Eq+(p62ijb;j8Wm0?|f_=$tq|xY1Ub)t_Dl z=$;KT?5L*+z&oXyT~wZ;82BF#1-YTseRpMz@?!KBs%j#oM>hBf3t-SLdK$q2n$0+~ zp5F|t>s!&@u#*^D`}>1AWh882`4~KQLn9-FPX8P*Kz)QJ-ckw>mG_bK zJc&dm7gsP{q5Ei_v!h)hfai-?B2KNe7nX7jM*_yWb?9&XcfSWW8UjOpg^oU_Lha&6o` zdi^5<(~5^EU4A+t1$6rUahUC;f%$#WwJ8UlviqXi)Y?l3yo1H|kg^0|G+n)mO{{a_v+{GD@yzLdHvGd5Z2ZPnSCi;~RVCv@HF zNIg?*rWvNW6wCzi+@>&Q()`ZgE#^&I-boi%3btnUgliUU!^5#0|Zfz z67aiZ65}3?7ltt&GFs3`*yWU|eX69~W4J$4(M(XA?yr0$FY;cWnad&m3oAABvhvM1a7t-+oSNXPO&GafCkNoq35_R=^?!njAV*L!0!1vKkZ7~7yX z;Z)UJSN?+Yy8Yr@6SW=u6yq>S9l5Uo*jaWfqHemfxG5p?L-+zE{+6n47kHkJ)<^!z zWMGO41hSOH>yHkLWI?tjU*6T%ZCiK$YFRD8=#|t%0+2!7`0LMD&6omiJ^clso!*qY zcL&QpH6ZU%!(=n9+-9*&jFLCCd+7qXVq%m^)mVaqjkTL{fOe1W z7YL&M;$AuJnfxKK$0b;cuO>aP)A5QOrJm9{kD+Pv^7W;qz zk$joY@N#bb$WQjoSX_73fI9%~)KOhbIQwfhMa7nZ!NH~W=ik0k&NJS!y?(6w)tC;J zuMTpB&CSihX(Z%>q5b{9t`jI@Vlh^0-+?)=wRY&|<=_(%j&D|&P8~$0%&3+n;Me&BunYsHXn)A*7T5k_eXE#?TJY`GD6p+hz=}M> z6B|CsXawz(r1ri0(VQq9UBDNhm<*hur*Pd|9!SPY4=qfP+x?0!G!Le$QO@rjnS6X! zmAgz0XP~DSX}x-tew$~!`Spvh)tsETqjAw_R)_l4_>rkI=VHhGr*A2Ph9C5VvO+jA z`7sMHPhHWvGN~f6d)<27b{S3p95q07<|+dk%z)_XW|%7HV^NOE8KZ0_surG#rGyNP ziURV5v^tj>kV3~te31fEG+!R!4+s|D;lZ&;c`=m+B6yva<>dSNU2qXwmsVK=A&-l{ z^gPgKY>IEJGB;+R$uY}Mqt-ho5hg{tj?Va$QUtZNIYl(sEf{xbnAMo;^%qlS^y0_& z1MT(;1v}CJ{7<9N0g^Yb><^&teG-A8e3MD`S0A65<2u1dIOHcyI2_t_}|sDtUc;{=ak15W<9!@#f8JX<)~A$Y8yq)E+^H?a8- z_Zwk2lxBvk0EOP-St~s~{h+OtC7j30>`&j|$ki1%cQu;j7dXL)Wnwzkt~RfiD+&Dv zA}*vNiy@Spl31q}4+fYX%dk{UQj)}8o8J!L^?hWYJPnE<3W7}LwhX-L!PP24-qudK zC^VY);&wmiBN+>`fx#Rc&x6`fbAcl{n$`HA3Yks< zjLdw4Zp>|hvB=z@dpniy$Euoh zC`}hcDD(SwB?-+{W+Z;Q-PG5ZF_7b*Yjt-!6PEoncH+iDajoaSksn_iE{y%MdPn#` z#oA*R7JGM!ATk-t6yM$&@u(R&1Y9urY^TuNsxz;L!?3ZCO#M5c^a&q<73lLxGZtSw z`6VTCu2!7Rt~nw+$)&ih4YDd@{fMJf&`H@Ep4Wl_|JA3^R~;KuG59goiBA-mt#)$v zM}n)uXjrFjkaxaoKiktr>-ntt$HKj)&lq##N*L13yh{$}aib^OJ#YQI<<2%>YOXyA zh8KsddT9Ee6mFcY?Hjk5lN<;QTOtv}XJsvcQ5c{uouv5xB&;Jv_G2KjulF4TA=X?F z!bKLmr|(+fStzwBWinbNwxc9;0A&;+lr`T}5xyt^EP|s!o4jxDh)6 zg@jX`aey39EI!OOm8zJkGa^25vSr48K_mP8%={Q5lY6kBH?0a+Tdhfm@i!TFi3;4b zL&W_+Rlj9@aSgC)5B;TyM1eMgtmc8XyV5Fq`c z$YbG)Y_JlqPF-vaXPr-TKC&s>naH0(6sS|Vbv-T98IWW;y35GvLPrK1}fB|g& zf`Sx2kofkD%80frQv?Py=0po%j>0l!6r$o1*2B>h)MbBuRe|%!Q0LIodaA<`J|p+U zDL!C)m8Rs*Kb$!+VBwD4JsTJOYVU=5uQ~5Pbep&8`rGW?q!@0KHkYu^kA@p0%2j&* zx=FqnD!Q}_JACG0aNhU_g_&GH`x5e9r|-hpO&G3NsgCo~`{tD7k!E1Pr8Olh0XoU8 zznPS9j6xO}X5N(I(7^k4!QiAgmiTOjVDfDp}(_ey2MVuWqafe z)|5wxh~akCZCDE^vmuUWtJ^?K0>-6FcBJp?&-{sAl$20y>17{o zigJGnIaVy>%%bz54oGq+TR~sgApdDMYBFNbpm?X%fDlL=^BxD8>y8Z zr-UBPd=gL<_<&_R@!9~t&cc*xSKHl7-Mz_5E<6GB4-Ea>Jea@o^S*9m{E#ferj!PT zoF=*u4HdstD$MMQ+;WBc3*n&;)IT%qM{!hb;z?Mks!xd2QXcV6cc12GE9y!hQ~#I> z2*Urv@ApG_=tkQX=Dkz4y5Krh_WO4#i&pU%7`ZbpngI`|s|gGey6rU_cywXvSFg^x zldmH%2z4_de+~rSQWxR9{e&(nfg&z+28@pUtsuzNN|$`(k5S+I4Yg6&V*(h`)*6Hj z9!H9jegNt*ZKIS#G&W{~?aF5x|Cig$)NVj|O7&jFlKi^T^f@6A(c2k+wh1Lo{dnw* z*Ds&^8yAL`q7jD^_?<64PnB6h2Pn-blid;GuGe)fd?38!0x~penPRffjACPw`b(HK z^JR2%aLnWJzc2f(Qctn9s?)%E9zNTUwGJatU|ALj`Ti_WZ_-@GydVjJA2P3-;6fL! zw$(`!5}XCQhi|fhs7tp`$Zf3s+ByS;s5^z2i;(M3u49n?-xSKaLg$l0HGFk-gkw2w%40^g1It`r!^_()=c_^GRM-K22L&m4v;?_{C0O#1FqdSZJh zzjC@0)--de8e$jEZ_}TfZ1aSim#f(|u&Cgv7Abc4#-bJhEP<8}ePD33h!LxH4VEp! zujn)QxdOSdAud_h_21YjbVlZiWZk3rCy+xY>-8&H(O2Sr^#TKw^~%$cqcVm1A32@z z?^haF{clXXe|-|*PdIVK#2x|hZFgs6M%~J4XLm%ENJ&Yx!Jf79$B*rpvSg-4mRXnk zy8t4urB{^xK8UCB^AdC9-cgoT9(ApCc-Wa~jPk|}+uY|QZeb@q*J#}hBd z_wS2Nztz;#WZDRcFeVGMcwc5)7H4v>vesCv>bU+0|L2yBG7|`9X6miSPBLclXR1J9 zcW@-_F#pRcQ=TVtm^iMk(tttH&F$?WGJDR%q^!ziX)Y~Z@l+oh#9w8z?X~gC<`Gi{ z*pXik|7g@WUX!*AumUglxkI-MYu#?w=;Yt{iDsk0jg@Yq-xz;TIFS;D;avA+b&Lb;o1T-T$yg&wvamSb5t9jhJA?4bbfs%A(`G-xbOkqCKw_-K^LQNpUE z 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 email, the phone and each link are reachable from the PDF, with the * {@code mailto:} and {@code tel:} targets built from the values. A link is - * set smaller than a channel above it, because a URL is one long token that - * cannot be broken and is the line that outgrows this column first; it takes + * drawn as its own label with the address behind it — {@code Link("LinkedIn", + * "https://…")} sets the word and links the URL — so the four contact rows sit + * on one axis at one size whatever a profile happens to be called. It takes * the mark of the network it points at, or a globe.

    eLHn3=B=5Y3^6I1zCr_3fDe8 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 + * + *