ts-d2 0.0.22 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -40,13 +40,27 @@ import * as fs from "fs";
40
40
  import Deuterium from "ts-d2";
41
41
 
42
42
  new Deuterium.Content.Document("Hello World")
43
- .convertTo(Deuterium.OutputFormat.PDF)
43
+ .convertTo(Deuterium.Output.OutputFormat.PDF)
44
44
  .then(async (buffer) => {
45
45
  // save blob to file
46
46
  fs.writeFileSync("output.pdf", Buffer.from(await buffer.arrayBuffer()));
47
47
  });
48
48
  ```
49
49
 
50
+ ### Job Parameters
51
+
52
+ Both `convertTo` and `convertToPDF` accept an optional `jobParams` argument — a free-form object that is merged into the request metadata sent to the docPIPE server:
53
+
54
+ ```typescript
55
+ new Deuterium.Content.Document("Hello World")
56
+ .convertTo(Deuterium.Output.OutputFormat.PDF, undefined, { locale: "en-US" })
57
+ .then(async (buffer) => {
58
+ fs.writeFileSync("output.pdf", Buffer.from(await buffer.arrayBuffer()));
59
+ });
60
+ ```
61
+
62
+ These job parameters are available in docPIPE as job variables.
63
+
50
64
  ### Custom Connection
51
65
 
52
66
  By default, the library uses the connection credentials from your `.env` file. If you need to use different credentials for a specific conversion, you can create a custom `Connection` instance:
@@ -62,7 +76,7 @@ const customConnection = new Deuterium.Connection(
62
76
 
63
77
  // Use the custom connection for conversion
64
78
  const doc = new Deuterium.Content.Document("Hello World");
65
- customConnection.convertTo(Deuterium.OutputFormat.PDF, doc)
79
+ customConnection.convertTo(Deuterium.Output.OutputFormat.PDF, doc)
66
80
  .then(async (buffer) => {
67
81
  fs.writeFileSync("output.pdf", Buffer.from(await buffer.arrayBuffer()));
68
82
  });
package/dist/index.cjs CHANGED
@@ -907,11 +907,21 @@ var Document = class extends BranchDocumentElement {
907
907
  registerParagraphFormat(name, pf) {
908
908
  this.paragraphFormats[name] = pf;
909
909
  }
910
- convertTo(outputFormat, outputParams) {
911
- return defaultConnection.convertTo(outputFormat, this, outputParams);
912
- }
913
- convertToPDF(outputParams) {
914
- return defaultConnection.convertTo("pdf" /* PDF */, this, outputParams);
910
+ convertTo(outputFormat, outputParams, jobParams) {
911
+ return defaultConnection.convertTo(
912
+ outputFormat,
913
+ this,
914
+ outputParams,
915
+ jobParams
916
+ );
917
+ }
918
+ convertToPDF(outputParams, jobParams) {
919
+ return defaultConnection.convertTo(
920
+ "pdf" /* PDF */,
921
+ this,
922
+ outputParams,
923
+ jobParams
924
+ );
915
925
  }
916
926
  /*
917
927
  public getProtoParagraphFormat(format?: ParagraphFormat): Proto.IProtoParagraphFormat {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/Alignment/index.ts","../src/Border/index.ts","../src/Color/index.ts","../src/Connection/index.ts","../src/Content/AdjustHorizontally/index.ts","../src/Content/DocumentElement/index.ts","../src/Content/Text/index.ts","../src/Content/BranchDocumentElement/index.ts","../src/Content/AdvancedIllustrationArea/index.ts","../src/Content/Barcode/index.ts","../src/Measure/index.ts","../src/Measure/Measure.ts","../src/Content/ReferencePoint/index.ts","../src/Content/CarryOver/index.ts","../src/Content/ColumnDefinition/index.ts","../src/Content/Condition/index.ts","../src/Content/Directory/index.ts","../src/Content/Document/index.ts","../src/OutputFormat/index.ts","../src/Content/Footer/index.ts","../src/Content/Header/index.ts","../src/Content/PageDefinition/index.ts","../src/ParagraphFormat/index.ts","../src/Content/SpaceVertically/index.ts","../src/Font/index.ts","../src/Content/Formatted/index.ts","../src/Content/Image/index.ts","../src/Content/Indentation/index.ts","../src/Content/Linebreak/index.ts","../src/Content/Link/index.ts","../src/Content/Loop/index.ts","../src/Content/LoopEntry/index.ts","../src/Content/Pagebreak/index.ts","../src/Content/PageCondition/index.ts","../src/Content/Paragraph/index.ts","../src/Content/Rule/index.ts","../src/Content/Section/index.ts","../src/Content/Selection/index.ts","../src/Content/SelectionEntry/index.ts","../src/Content/Span/index.ts","../src/Content/SubTotal/index.ts","../src/Content/Table/index.ts","../src/Content/TableCell/index.ts","../src/Content/TableContentGroup/index.ts","../src/Content/TableRow/index.ts","../src/Content/Tag/index.ts","../src/Content/Variable/index.ts","../src/Content/WsArea/index.ts","../src/Content/index.ts"],"sourcesContent":["import { Alignment } from \"./Alignment\";\nimport { Border, SideBorders } from \"./Border\";\nimport { Color, Colors } from \"./Color\";\nimport { Connection } from \"./Connection\";\nimport Content from \"./Content\";\nimport { Font, StandardFonts } from \"./Font\";\nimport * as Measure from \"./Measure\";\nimport * as Output from \"./OutputFormat\";\nimport { ParagraphFormat } from \"./ParagraphFormat\";\n\nexport default {\n Alignment,\n Border: {\n Border,\n SideBorders,\n },\n Color: {\n Color,\n Colors,\n },\n Connection,\n Content,\n Font: {\n Font,\n StandardFonts,\n },\n Measure,\n Output,\n ParagraphFormat,\n};\n","import Proto from \"docframe-types\";\n\nexport class HorizontalAlignment {\n public readonly value: Proto.ProtoHorizontalAlignment;\n\n constructor(value: Proto.ProtoHorizontalAlignment) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoHorizontalAlignment {\n return this.value;\n }\n}\n\nexport class VerticalAlignment {\n public readonly value: Proto.ProtoVerticalAlignment;\n\n constructor(value: Proto.ProtoVerticalAlignment) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoVerticalAlignment {\n return this.value;\n }\n}\n\nexport namespace Alignment {\n export const Horizontal = {\n Left: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_LEFT),\n Center: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_CENTER),\n Right: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_RIGHT),\n Justify: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_JUSTIFY),\n FullJustify: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_FULL_JUSTIFY),\n };\n\n export const Vertical = {\n Top: new VerticalAlignment(Proto.ProtoVerticalAlignment.TOP),\n Middle: new VerticalAlignment(Proto.ProtoVerticalAlignment.MIDDLE),\n Bottom: new VerticalAlignment(Proto.ProtoVerticalAlignment.BOTTOM),\n };\n}\n\n","import Proto from \"docframe-types\";\nimport { Color } from \"~/Color\";\nimport { AbsoluteMeasure, Sides } from \"~/Measure\";\n\nexport class Border {\n width: AbsoluteMeasure;\n color: Color;\n\n constructor(width: AbsoluteMeasure, color: Color) {\n this.width = width;\n this.color = color;\n }\n\n public toDocFrame(): Proto.ProtoBorder {\n return new Proto.ProtoBorder({\n weight: this.width.toDocFrame(),\n color: this.color.toDocFrame(),\n });\n }\n}\n\nexport class SideBorders {\n value: Sides<Border>;\n\n constructor(settings: Sides<Border>) {\n this.value = settings;\n }\n\n public toDocFrame(): Proto.ProtoSideBorders {\n return new Proto.ProtoSideBorders({\n top: this.value.top?.toDocFrame(),\n right: this.value.right?.toDocFrame(),\n bottom: this.value.bottom?.toDocFrame(),\n left: this.value.left?.toDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport class Color {\n private color: Proto.ProtoColor;\n\n static rgb(r: number, g: number, b: number): Color {\n if (r < 0 || r > 255) {\n throw new Error(`Invalid red value: ${r}`);\n }\n\n if (g < 0 || g > 255) {\n throw new Error(`Invalid green value: ${g}`);\n }\n\n if (b < 0 || b > 255) {\n throw new Error(`Invalid blue value: ${b}`);\n }\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.RGB,\n r,\n g,\n b,\n }));\n }\n\n static cmyk(c: number, m: number, y: number, k: number): Color {\n if (c < 0 || c > 100) {\n throw new Error(`Invalid cyan value: ${c}`);\n }\n\n if (m < 0 || m > 100) {\n throw new Error(`Invalid magenta value: ${m}`);\n }\n\n if (y < 0 || y > 100) {\n throw new Error(`Invalid yellow value: ${y}`);\n }\n\n if (k < 0 || k > 100) {\n throw new Error(`Invalid black value: ${k}`);\n }\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.CMYK,\n c,\n m,\n y,\n k,\n }));\n }\n\n static fromHex(hex: string): Color {\n if (hex.startsWith(\"#\")) {\n hex = hex.slice(1);\n }\n\n if (hex.length !== 6) {\n throw new Error(`Invalid hex color: ${hex}`);\n }\n\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const b = parseInt(hex.slice(4, 6), 16);\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.RGB,\n r,\n g,\n b,\n }));\n }\n\n private constructor(color: Proto.ProtoColor) {\n this.color = color;\n }\n\n\n public toDocFrame(): Proto.ProtoColor {\n return this.color;\n }\n}\n\nexport namespace Colors {\n export const white = Color.rgb(255, 255, 255);\n\n export const black = Color.cmyk(0, 0, 0, 100);\n}\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport dotenv from \"dotenv\";\n\nimport Proto from \"docframe-types\";\n\nimport { Document } from \"content/Document\";\nimport { OutputParams } from \"~/OutputFormat\";\n\n// Load environment variables from .env file\ndotenv.config();\n\nexport class Connection {\n url: string;\n token: string;\n\n constructor(url?: string, token?: string) {\n this.url = url || process.env.DOCPIPE_URL || \"http://localhost:8080\";\n this.token = token || process.env.DOCPIPE_TOKEN || \"\";\n }\n\n get docframeCallUrl() {\n return `${this.url}/api/docframe?token=${this.token}`;\n }\n\n convertTo<K extends keyof OutputParams>(\n format: K,\n doc: Document,\n outputParams?: OutputParams[K],\n jobParams?: Record<string, any>,\n ): Promise<Blob> {\n const node = doc.toDocFrame();\n\n const protoData = Proto.Node.encode(node).finish();\n\n const form = new FormData();\n\n let meta = {\n format,\n };\n\n if (outputParams) {\n meta = {\n ...meta,\n ...outputParams,\n };\n }\n\n if (jobParams) {\n meta = {\n ...meta,\n ...jobParams,\n };\n }\n\n form.append(\"meta\", JSON.stringify(meta), {\n contentType: \"application/json\",\n filename: \"meta\",\n });\n\n form.append(\"proto-data\", protoData, {\n contentType: \"application/protobuf\",\n filename: \"data.proto\",\n });\n\n return new Promise((resolve, reject) => {\n axios\n .postForm(this.docframeCallUrl, form, {\n headers: {\n ...form.getHeaders(),\n },\n responseType: \"arraybuffer\",\n })\n .then(async (res) => {\n const blob = await new Response(res.data, {\n headers: {\n \"Content-Type\": res.headers[\"content-type\"],\n },\n }).blob();\n\n resolve(blob);\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n}\n\nexport const defaultConnection = new Connection();\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface AdjustHorizontallyProperties {\n /** Minimum font size for horizontal adjustment */\n minFontSize?: Measure;\n /** Maximum font size for horizontal adjustment */\n maxFontSize?: Measure;\n}\n\nexport class AdjustHorizontally extends BranchDocumentElement<AdjustHorizontallyProperties> {\n constructor(content?: Content, props?: AdjustHorizontallyProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n adjustHorizontally: Proto.ProtoAdjustHorizontally.create({\n minFontSize: this.props?.minFontSize?.toDocFrame(),\n maxFontSize: this.props?.maxFontSize?.toDocFrame(),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport abstract class DocumentElement {\n public abstract toDocFrame(): Proto.Node;\n}\n\nexport type Content = string | DocumentElement | (DocumentElement | string)[];\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Text extends DocumentElement {\n constructor(content: string) {\n super();\n this.content = content;\n }\n\n public content: string;\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n text: Proto.ProtoText.create({\n content: this.content,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\nimport { Content, DocumentElement } from \"content/DocumentElement\";\nimport { Text } from \"content/Text\";\n\nexport abstract class BranchDocumentElement<P = never> extends DocumentElement {\n protected children: DocumentElement[] = [];\n protected _props?: P;\n\n constructor(children?: Content, props?: P) {\n super();\n\n this._props = props;\n\n if (children === undefined) {\n this.children = [];\n return;\n }\n\n this.children = documentElementsFromContent(children);\n }\n\n public appendChildren(children: DocumentElement[]): void {\n this.children = this.children.concat(children);\n }\n\n public appendChild(child: DocumentElement): void {\n this.children.push(child);\n }\n\n public prependChildren(children: DocumentElement[]): void {\n this.children = children.concat(this.children);\n }\n\n public prependChild(child: DocumentElement): void {\n this.children.unshift(child);\n }\n\n public childrenToDocFrame(): Proto.Node[] {\n return this.children.map((child) => child.toDocFrame());\n }\n\n set props(props: P | undefined) {\n this._props = props;\n }\n\n get props(): P | undefined {\n return this._props;\n }\n}\n\nfunction documentElementsFromContent(content: Content): DocumentElement[] {\n if (typeof content === \"string\") {\n return [new Text(content)];\n } else if (Array.isArray(content)) {\n return content.map(documentElementsFromContent).flat();\n } else {\n return [content];\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport type TextFlowType = \"around\" | \"no-flow\" | \"foreground\" | \"background\";\n\nfunction textFlowTypeToDocFrame(\n type: TextFlowType,\n): Proto.ProtoAdvancedIllustrationAreaTextFlowType {\n switch (type) {\n case \"around\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.AROUND;\n case \"no-flow\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.NO_FLOW;\n case \"foreground\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.FOREGROUND;\n case \"background\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.BACKGROUND;\n default:\n throw new Error(`Unknown text flow type: ${type}`);\n }\n}\n\nexport interface AdvancedIllustrationAreaProperties {\n /** UUID */\n uuid?: string;\n /** Whether the AIA is absolutely positioned */\n absolute?: boolean;\n /** Width */\n width?: Measure;\n /** Height */\n height?: Measure;\n /** X position */\n x?: Measure;\n /** Y position */\n y?: Measure;\n /** How text flows around the AIA */\n textFlow?: TextFlowType;\n /** Rotation in degrees */\n rotation?: number;\n}\n\nexport class AdvancedIllustrationArea extends BranchDocumentElement<AdvancedIllustrationAreaProperties> {\n constructor(\n content?: Content,\n props?: AdvancedIllustrationAreaProperties,\n ) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n advancedIllustrationArea:\n Proto.ProtoAdvancedIllustrationArea.create({\n uuid: this.props?.uuid,\n absolute: this.props?.absolute,\n width: this.props?.width?.toDocFrame(),\n height: this.props?.height?.toDocFrame(),\n x: this.props?.x?.toDocFrame(),\n y: this.props?.y?.toDocFrame(),\n textFlow: this.props?.textFlow\n ? textFlowTypeToDocFrame(this.props.textFlow)\n : undefined,\n rotation: this.props?.rotation,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { AbsoluteMeasure, Measure } from \"~/Measure\";\nimport {\n ReferencePoint,\n referencePointToDocFrame,\n} from \"content/ReferencePoint\";\n\nexport interface BarcodeProperties {\n type: Proto.ProtoBarcodeType;\n x: AbsoluteMeasure;\n y: AbsoluteMeasure;\n referencePoint: ReferencePoint;\n\n /**\n * Rotation in degrees, counter-clockwise\n */\n rotation: number;\n width: AbsoluteMeasure;\n height: AbsoluteMeasure;\n data: string;\n positionAbsolute: boolean;\n padding?: AbsoluteMeasure;\n code?: string;\n altText?: string;\n uuid?: string;\n}\n\nexport class Barcode extends DocumentElement {\n props: BarcodeProperties;\n\n constructor(props: BarcodeProperties) {\n super();\n\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n barcode: Proto.ProtoBarcode.create({\n type: this.props.type,\n\n positionAbsolute: this.props.positionAbsolute,\n referencePoint: referencePointToDocFrame(this.props.referencePoint),\n x: this.props.x.toDocFrame(),\n y: this.props.y.toDocFrame(),\n rotation: this.props.rotation,\n\n width: this.props.width.toDocFrame(),\n height: this.props.height.toDocFrame(),\n padding: (this.props.padding ?? Measure.zero).toDocFrame(),\n\n data: this.props.data,\n code: this.props.code,\n altText: this.props.altText,\n uuid: this.props.uuid,\n }),\n });\n }\n}\n","import { AbsoluteMeasure, Measure, SideMeasures, Sides } from \"./Measure\";\n\nexport { AbsoluteMeasure, Measure, SideMeasures, Sides };\n","import Proto from \"docframe-types\";\n\nexport type AbsoluteMeasureUnit = \"pt\" | \"cm\" | \"mm\" | \"in\" | \"px\";\n\nexport type RelativeMeasureUnit = \"%\";\nexport type MeasureUnit = AbsoluteMeasureUnit | RelativeMeasureUnit;\n\nexport class Measure<Unit = MeasureUnit> {\n readonly value: number;\n readonly unit: Unit;\n\n static zero = new Measure(0, \"pt\" as AbsoluteMeasureUnit);\n\n constructor(value: number, unit: Unit) {\n this.value = value;\n this.unit = unit;\n }\n\n public toDocFrame(): Proto.ProtoMeasure {\n switch (this.unit) {\n case \"pt\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PT,\n });\n\n case \"cm\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.CM,\n });\n\n case \"mm\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.MM,\n });\n\n case \"in\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.IN,\n });\n\n case \"px\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PX,\n });\n\n case \"%\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PERCENT,\n });\n\n default:\n throw new Error(`Unknown measure unit: ${this.unit}`);\n }\n }\n}\n\nexport class AbsoluteMeasure extends Measure<AbsoluteMeasureUnit> {}\n\nexport class SideMeasures {\n value: Sides<AbsoluteMeasure>;\n\n constructor(settings: Sides<AbsoluteMeasure>) {\n this.value = settings;\n }\n\n public toDocFrame(): Proto.ProtoSideMeasures {\n return new Proto.ProtoSideMeasures({\n top: this.value.top?.toDocFrame(),\n right: this.value.right?.toDocFrame(),\n bottom: this.value.bottom?.toDocFrame(),\n left: this.value.left?.toDocFrame(),\n });\n }\n}\n\n\nexport class Sides<T> {\n top?: T;\n right?: T;\n bottom?: T;\n left?: T;\n}\n\n/*\n\n\n\nexport class RelativeMeasure extends Measure<RelativeMeasureUnit> {\n constructor(value: number) {\n super(value, \"%\");\n }\n}\n\n\n\n\n*/","import Proto from \"docframe-types\";\n\n/**\n * A ReferencePoint is used for elements like barcodes to specify the reference point\n * of an object.\n * Example:\n * When specified reference point \"top-left\", the top-left point of a barcode is positioned\n * relative to the top-left edge of the current line or page.\n */\nexport type ReferencePoint = \"top-left\" | \"top-right\" | \"center\" | \"bottom-left\" | \"bottom-right\";\n\nexport function referencePointToDocFrame(point: ReferencePoint): Proto.ProtoImageReferencePoint {\n switch (point) {\n case \"top-left\":\n return Proto.ProtoImageReferencePoint.REF_POINT_TOP_LEFT;\n\n case \"top-right\":\n return Proto.ProtoImageReferencePoint.REF_POINT_TOP_RIGHT;\n\n case \"center\":\n return Proto.ProtoImageReferencePoint.REF_POINT_CENTER;\n\n case \"bottom-left\":\n return Proto.ProtoImageReferencePoint.REF_POINT_BOTTOM_LEFT;\n\n case \"bottom-right\":\n return Proto.ProtoImageReferencePoint.REF_POINT_BOTTOM_RIGHT;\n\n default:\n throw new Error(`Unknown reference point: ${point}`);\n }\n}","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\n/**\n * CarryOver defines content that is carried over to the next page\n * when a table or other element breaks across pages.\n */\nexport class CarryOver extends BranchDocumentElement {\n constructor(content?: Content) {\n super(content);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n carryOver: Proto.ProtoCarryOver.create({}),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nclass ColumnPositionMode {\n public readonly value: Proto.ProtoPositionMode;\n\n constructor(value: Proto.ProtoPositionMode) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoPositionMode {\n return this.value;\n }\n}\n\nexport namespace ColumnPosition {\n export const Center = new ColumnPositionMode(Proto.ProtoPositionMode.CENTER);\n export const Left = new ColumnPositionMode(Proto.ProtoPositionMode.LEFT);\n export const Folio = new ColumnPositionMode(Proto.ProtoPositionMode.FOLIO);\n export const Right = new ColumnPositionMode(Proto.ProtoPositionMode.RIGHT);\n export const ReverseFolio = new ColumnPositionMode(\n Proto.ProtoPositionMode.REVERSE_FOLIO,\n );\n}\n\nexport interface ColumnDefinitionProperties {\n width: AbsoluteMeasure;\n position: ColumnPositionMode;\n interColumnSpace: AbsoluteMeasure;\n positionOffset: AbsoluteMeasure;\n}\n\nexport class ColumnDefinition {\n props: ColumnDefinitionProperties;\n uuid: string;\n\n constructor(props: ColumnDefinitionProperties) {\n this.props = props;\n\n this.uuid = uuidv4();\n }\n\n public toDocFrame(applyImmediate: boolean): Proto.Node[] {\n const result = [\n Proto.Node.create({\n cDef: Proto.ProtoCDef.create({\n Uuid: this.uuid,\n columSettings: Proto.ProtoColumnSettings.create({\n width: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.width.toDocFrame(),\n }),\n positionOffset: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.positionOffset.toDocFrame(),\n }),\n positionMode: this.props.position.toDocFrame(),\n interColumnSpace: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.interColumnSpace.toDocFrame(),\n }),\n }),\n }),\n }),\n ];\n\n if (applyImmediate) {\n result.push(\n Proto.Node.create({\n applyCDef: Proto.ProtoApplyProtoCDef.create({\n cDefUuid: this.uuid,\n }),\n }),\n );\n }\n\n return result;\n }\n}\n\nexport const ColumnDefinitions = {\n A4: {\n Single: new ColumnDefinition({\n width: new AbsoluteMeasure(490, \"pt\"),\n position: ColumnPosition.Left,\n positionOffset: new AbsoluteMeasure(70, \"pt\"),\n interColumnSpace: new AbsoluteMeasure(30, \"pt\"),\n }),\n Double: new ColumnDefinition({\n width: new AbsoluteMeasure(230, \"pt\"),\n position: ColumnPosition.Left,\n positionOffset: new AbsoluteMeasure(70, \"pt\"),\n interColumnSpace: new AbsoluteMeasure(30, \"pt\"),\n }),\n },\n};\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface ConditionProperties {\n /** UUID */\n uuid?: string;\n /** Code expression to evaluate */\n code?: string;\n /** Pre-evaluated result */\n result?: boolean;\n /** Whether the condition should be re-evaluated on regeneration */\n regenerate?: boolean;\n}\n\nexport class Condition extends BranchDocumentElement<ConditionProperties> {\n constructor(content?: Content, props?: ConditionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n condition: Proto.ProtoCondition.create({\n uuid: this.props?.uuid,\n code: this.props?.code,\n result: this.props?.result,\n regenerate: this.props?.regenerate,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport type SemanticType = \"none\" | \"part\" | \"art\" | \"sect\" | \"div\";\n\nfunction semanticTypeToDocFrame(type: SemanticType): Proto.ProtoSemanticType {\n switch (type) {\n case \"none\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_NONE;\n case \"part\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_PART;\n case \"art\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_ART;\n case \"sect\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_SECT;\n case \"div\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_DIV;\n default:\n throw new Error(`Unknown semantic type: ${type}`);\n }\n}\n\nexport interface DirectoryProperties {\n name?: string;\n editable?: boolean;\n semanticType?: SemanticType;\n}\n\nexport class Directory extends BranchDocumentElement<DirectoryProperties> {\n constructor(content?: Content, props?: DirectoryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n directory: Proto.ProtoDirectory.create({\n name: this.props?.name,\n editable: this.props?.editable,\n semanticType: this.props?.semanticType\n ? semanticTypeToDocFrame(this.props.semanticType)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { defaultConnection } from \"~/Connection\";\nimport { OutputFormat, OutputParams } from \"~/OutputFormat\";\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { ColumnDefinition, ColumnDefinitions } from \"content/ColumnDefinition\";\nimport { Content } from \"content/DocumentElement\";\nimport { Footer } from \"content/Footer\";\nimport { Header } from \"content/Header\";\nimport { PageDefinition, PageDefinitions } from \"content/PageDefinition\";\nimport { ParagraphFormat } from \"~/ParagraphFormat\";\nimport { SpaceVertically } from \"content/SpaceVertically\";\nimport { StandardFonts } from \"~/Font\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport interface DocumentProperties {\n pageDefinition: PageDefinition;\n columnDefinition: ColumnDefinition;\n\n defaultHeader?: Header;\n defaultFooter?: Footer;\n\n paragraphFormats?: Record<string, ParagraphFormat>;\n}\n\nexport class Document extends BranchDocumentElement<DocumentProperties> {\n paragraphFormats: Record<string, ParagraphFormat> = {};\n\n constructor(content?: Content, props?: DocumentProperties) {\n super(content, props);\n\n if (props === undefined) {\n this.props = {\n pageDefinition: PageDefinitions.A4,\n columnDefinition: ColumnDefinitions.A4.Single,\n defaultHeader: new Header(\n new SpaceVertically(new AbsoluteMeasure(40, \"pt\")),\n ),\n defaultFooter: new Footer(\n new SpaceVertically(new AbsoluteMeasure(40, \"pt\")),\n ),\n };\n } else {\n this.props = props;\n }\n\n this.paragraphFormats = this.props.paragraphFormats || {\n Text: new ParagraphFormat({\n font: StandardFonts.Helvetica,\n fontSize: new AbsoluteMeasure(12, \"pt\"),\n lineFeed: new AbsoluteMeasure(14, \"pt\"),\n indentionWidth: new AbsoluteMeasure(15, \"pt\"),\n name: \"Text\",\n default: true,\n }),\n };\n }\n\n getParagraphFormat(name: string): ParagraphFormat | undefined {\n return this.paragraphFormats[name];\n }\n\n registerParagraphFormat(name: string, pf: ParagraphFormat) {\n this.paragraphFormats[name] = pf;\n }\n\n convertTo<Format extends keyof OutputParams>(\n outputFormat: Format,\n outputParams?: OutputParams[Format],\n ): Promise<Blob> {\n return defaultConnection.convertTo(outputFormat, this, outputParams);\n }\n\n convertToPDF(outputParams?: OutputParams[\"pdf\"]): Promise<Blob> {\n return defaultConnection.convertTo(OutputFormat.PDF, this, outputParams);\n }\n\n /*\n public getProtoParagraphFormat(format?: ParagraphFormat): Proto.IProtoParagraphFormat {\n if (!format) {\n return this.defaultParagraphFormat;\n }\n\n if (!format.format.name) {\n throw new Error(\"ParagraphFormat must have a name\");\n }\n\n if (!this.paragraphFormats[format.format.name]) {\n this.paragraphFormats[format.format.name] = format.toDocFrame();\n }\n\n return this.paragraphFormats[format.format.name];\n }\n */\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const docSettings = Object.values(this.paragraphFormats)\n .map((pf) =>\n Proto.Node.create({\n paragraphFormat: pf.toDocFrame(),\n }),\n )\n .concat([\n Proto.Node.create({\n pDef: props.pageDefinition.toDocFrame(),\n }),\n Proto.Node.create({\n applyPDef: Proto.ProtoApplyProtoPDef.create({\n pDefUuid: props.pageDefinition.uuid,\n }),\n }),\n ...props.columnDefinition.toDocFrame(true),\n ]);\n\n if (props.defaultHeader) {\n docSettings.push(props.defaultHeader.toDocFrame());\n }\n\n if (props.defaultFooter) {\n docSettings.push(props.defaultFooter.toDocFrame());\n }\n\n const content = this.childrenToDocFrame();\n\n for (const format of Object.values(this.paragraphFormats)) {\n docSettings.push(\n Proto.Node.create({\n paragraphFormat: format.toDocFrame(),\n }),\n );\n }\n\n return Proto.Node.create({\n children: docSettings.concat(...content),\n });\n }\n}\n","enum OutputFormat {\n PDF = \"pdf\",\n PNG = \"png\",\n JPEG = \"jpeg\",\n HTML = \"html\",\n PS = \"ps\",\n TEXT = \"text\",\n}\n\ntype OutputParams = {\n [OutputFormat.HTML]: {};\n [OutputFormat.PDF]: {};\n [OutputFormat.JPEG]: {};\n [OutputFormat.PS]: {};\n [OutputFormat.TEXT]: {};\n [OutputFormat.PNG]: {\n /**\n * The width of the output in pixels.\n * @default The width of the document in pixels.\n */\n width?: number;\n\n /**\n * The height of the output in pixels.\n * @default The height of the document in pixels.\n */\n height?: number;\n\n /**\n * The resolution of the output in pixels per inch.\n * @default 300 dpi.\n */\n dpi?: number;\n };\n}\n\nexport {\n OutputFormat,\n OutputParams,\n}","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nimport Proto from \"docframe-types\";\n\nexport type FooterMode = \"append-initial\" | \"append\" | \"extend\" | \"replace\";\n\nfunction footerModeToDocFrame(mode: FooterMode): Proto.ProtoFooterMode {\n switch (mode) {\n case \"append-initial\":\n return Proto.ProtoFooterMode.FOOTER_MODE_APPEND_INITIAL;\n case \"append\":\n return Proto.ProtoFooterMode.FOOTER_MODE_APPEND;\n case \"extend\":\n return Proto.ProtoFooterMode.FOOTER_MODE_EXTEND;\n case \"replace\":\n return Proto.ProtoFooterMode.FOOTER_MODE_REPLACE;\n default:\n throw new Error(`Unknown footer mode: ${mode}`);\n }\n}\n\nexport interface FooterProperties {\n mode?: FooterMode;\n}\n\nexport class Footer extends BranchDocumentElement<FooterProperties> {\n constructor(content?: Content, props?: FooterProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n footer: Proto.ProtoFooter.create({\n mode: this.props?.mode\n ? footerModeToDocFrame(this.props.mode)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nimport Proto from \"docframe-types\";\n\nexport type HeaderMode = \"append-initial\" | \"append\" | \"extend\" | \"replace\";\n\nfunction headerModeToDocFrame(mode: HeaderMode): Proto.ProtoHeaderMode {\n switch (mode) {\n case \"append-initial\":\n return Proto.ProtoHeaderMode.HEADER_MODE_APPEND_INITIAL;\n case \"append\":\n return Proto.ProtoHeaderMode.HEADER_MODE_APPEND;\n case \"extend\":\n return Proto.ProtoHeaderMode.HEADER_MODE_EXTEND;\n case \"replace\":\n return Proto.ProtoHeaderMode.HEADER_MODE_REPLACE;\n default:\n throw new Error(`Unknown header mode: ${mode}`);\n }\n}\n\nexport interface HeaderProperties {\n mode?: HeaderMode;\n}\n\nexport class Header extends BranchDocumentElement<HeaderProperties> {\n constructor(content?: Content, props?: HeaderProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n header: Proto.ProtoHeader.create({\n mode: this.props?.mode\n ? headerModeToDocFrame(this.props.mode)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\nimport { v4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport class PageDefinition {\n width?: AbsoluteMeasure;\n height?: AbsoluteMeasure;\n uuid: string;\n\n constructor(width?: AbsoluteMeasure, height?: AbsoluteMeasure) {\n this.width = width;\n this.height = height;\n\n this.uuid = v4();\n }\n\n public toDocFrame(): Proto.ProtoPDef {\n return new Proto.ProtoPDef({\n pageDepth: new Proto.ProtoBoxedMeasure({\n isNull: this.height === undefined,\n value: this.height?.toDocFrame(),\n }),\n pageWidth: new Proto.ProtoBoxedMeasure({\n isNull: this.width === undefined,\n value: this.width?.toDocFrame(),\n }),\n Uuid: this.uuid,\n });\n }\n}\n\nexport namespace PageDefinitions {\n export const A3 = new PageDefinition(\n new AbsoluteMeasure(297, \"mm\"),\n new AbsoluteMeasure(420, \"mm\"),\n );\n\n export const A4 = new PageDefinition(\n new AbsoluteMeasure(210, \"mm\"),\n new AbsoluteMeasure(297, \"mm\"),\n );\n\n export const A5 = new PageDefinition(\n new AbsoluteMeasure(148, \"mm\"),\n new AbsoluteMeasure(210, \"mm\"),\n );\n}\n","import Proto from \"docframe-types\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\nimport { Font } from \"~/Font\";\nimport { HorizontalAlignment } from \"~/Alignment\";\n\nexport interface ParagraphFormatProperties {\n default?: boolean;\n name?: string;\n\n alignment?: HorizontalAlignment;\n\n font?: Font;\n fontSize?: AbsoluteMeasure;\n characterWidth?: AbsoluteMeasure;\n characterSpacing?: AbsoluteMeasure;\n lineFeed?: AbsoluteMeasure;\n bold?: boolean;\n italic?: boolean;\n\n indentionLevel?: number;\n indentionWidth?: AbsoluteMeasure;\n\n spaceAbove?: AbsoluteMeasure;\n spaceBelow?: AbsoluteMeasure;\n}\n\nexport class ParagraphFormat {\n props: ParagraphFormatProperties;\n\n constructor(props: ParagraphFormatProperties) {\n this.props = props;\n\n this.props.name = props.name || uuidv4();\n }\n\n public toDocFrame(): Proto.IProtoParagraphFormat {\n let format: Proto.IProtoParagraphFormat = {\n default: Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.default || false,\n }),\n name: Proto.ProtoBoxedString.create({\n isNull: false,\n value: this.props.name,\n }),\n };\n\n if (this.props.alignment) {\n format.alignment = Proto.ProtoBoxedHorizontalAlignment.create({\n isNull: false,\n value: this.props.alignment.toDocFrame(),\n });\n }\n\n if (this.props.font) {\n format.font = Proto.ProtoBoxedFont.create({\n isNull: false,\n value: this.props.font.toDocFrame(),\n });\n }\n\n if (this.props.fontSize) {\n format.fontSize = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.fontSize.toDocFrame(),\n });\n }\n\n if (this.props.characterWidth) {\n format.characterWidth = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.characterWidth.toDocFrame(),\n });\n }\n\n if (this.props.characterSpacing) {\n format.characterSpacing = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.characterSpacing.toDocFrame(),\n });\n }\n\n if (this.props.lineFeed) {\n format.lineFeed = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.lineFeed.toDocFrame(),\n });\n }\n\n if (this.props.indentionLevel !== undefined) {\n format.indentionLevel = Proto.ProtoBoxedInt32.create({\n isNull: false,\n value: this.props.indentionLevel,\n });\n }\n\n if (this.props.indentionWidth) {\n format.indentionWidth = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.indentionWidth.toDocFrame(),\n });\n }\n\n if (this.props.bold !== undefined) {\n format.bold = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: !!this.props.bold,\n });\n }\n\n if (this.props.italic !== undefined) {\n format.italic = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: !!this.props.italic,\n });\n }\n\n if (this.props.spaceAbove) {\n format.spaceAbove = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.spaceAbove.toDocFrame(),\n });\n }\n\n if (this.props.spaceBelow) {\n format.spaceBelow = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.spaceBelow.toDocFrame(),\n });\n }\n\n return Proto.ProtoParagraphFormat.create(format);\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport class SpaceVertically extends DocumentElement {\n space: AbsoluteMeasure;\n\n constructor(space: AbsoluteMeasure) {\n super();\n\n this.space = space;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n spaceVertically: Proto.ProtoSpaceVertically.create({\n space: this.space.toDocFrame(),\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport class Font {\n private name: string;\n\n constructor(name: string) {\n this.name = name;\n }\n\n public toDocFrame(): Proto.ProtoFont {\n return Proto.ProtoFont.create({\n name: this.name,\n // TODO: suppot font mapping for docframe step\n id: 5\n });\n }\n}\n\nexport const StandardFonts = {\n Helvetica: new Font(\"helvetica\"),\n};\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Formatted extends DocumentElement {\n constructor(doctypeContent: string | undefined, htmlContent?: string) {\n super();\n this.content = {\n doctype: doctypeContent,\n html: htmlContent,\n };\n }\n\n public content: {\n doctype: string | undefined;\n html: string | undefined;\n };\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n formatted: Proto.ProtoFormatted.create({\n doctypeContent: this.content.doctype,\n htmlContent: this.content.html,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\nimport {\n ReferencePoint,\n referencePointToDocFrame,\n} from \"content/ReferencePoint\";\n\nexport type ImageScaleType = \"relative\" | \"absolute\" | \"relative-to-column\";\n\nfunction imageScaleTypeToDocFrame(\n type: ImageScaleType,\n): Proto.ProtoImageScaleType {\n switch (type) {\n case \"relative\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_RELATIVE;\n case \"absolute\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_ABSOLUTE;\n case \"relative-to-column\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_RELATIVE_TO_COLUMN;\n default:\n throw new Error(`Unknown image scale type: ${type}`);\n }\n}\n\nexport interface FlipSettings {\n x?: boolean;\n y?: boolean;\n}\n\nexport interface CropSettings {\n x?: Measure;\n y?: Measure;\n width?: Measure;\n height?: Measure;\n}\n\nexport interface ImageProperties {\n /** Alternative text for accessibility */\n alt?: string;\n /** Image name */\n name?: string;\n /** Image source URL or path */\n src?: string;\n /** Image filename */\n filename?: string;\n /** Scale factor (e.g. 1.0 = 100%) */\n scale?: number;\n /** Scale relative to column width (e.g. 0.5 = 50% of column) */\n columnScale?: number;\n /** Image width */\n width?: Measure;\n /** Image height */\n height?: Measure;\n /** X position */\n x?: Measure;\n /** Y position */\n y?: Measure;\n /** Whether the image is positioned absolutely */\n positionAbsolute?: boolean;\n /** Rotation in degrees */\n rotation?: number;\n /** Flip settings */\n flip?: FlipSettings;\n /** Crop settings */\n crop?: CropSettings;\n /** Reference point for positioning */\n referencePoint?: ReferencePoint;\n /** Hyperlink URL */\n hyperlink?: string;\n /** Scale type */\n scaleType?: ImageScaleType;\n /** UUID */\n uuid?: string;\n /** Inline image content as base64-encoded string */\n imageContent?: string;\n}\n\nexport class Image extends DocumentElement {\n props: ImageProperties;\n\n constructor(props: ImageProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n const p = this.props;\n\n const image: Proto.IProtoImage = {\n alt: p.alt,\n name: p.name,\n src: p.src,\n filename: p.filename,\n rotation: p.rotation,\n hyperlink: p.hyperlink,\n uuid: p.uuid,\n imageContent: p.imageContent,\n };\n\n if (p.scale !== undefined) {\n image.scale = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: p.scale,\n });\n }\n\n if (p.columnScale !== undefined) {\n image.columnScale = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: p.columnScale,\n });\n }\n\n if (p.width) {\n image.width = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.width.toDocFrame(),\n });\n }\n\n if (p.height) {\n image.height = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.height.toDocFrame(),\n });\n }\n\n if (p.x) {\n image.x = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.x.toDocFrame(),\n });\n }\n\n if (p.y) {\n image.y = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.y.toDocFrame(),\n });\n }\n\n if (p.positionAbsolute !== undefined) {\n image.positionAbsolute = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: p.positionAbsolute,\n });\n }\n\n if (p.flip) {\n image.flipSettings = Proto.ProtoFlipSettings.create({\n x: p.flip.x,\n y: p.flip.y,\n });\n }\n\n if (p.crop) {\n const cropSettings: Proto.IProtoCropSettings = {};\n if (p.crop.x) {\n cropSettings.x = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.x.toDocFrame(),\n });\n }\n if (p.crop.y) {\n cropSettings.y = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.y.toDocFrame(),\n });\n }\n if (p.crop.width) {\n cropSettings.width = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.width.toDocFrame(),\n });\n }\n if (p.crop.height) {\n cropSettings.height = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.height.toDocFrame(),\n });\n }\n image.cropSettings = Proto.ProtoCropSettings.create(cropSettings);\n }\n\n if (p.referencePoint) {\n image.referencePoint = referencePointToDocFrame(p.referencePoint);\n }\n\n if (p.scaleType) {\n image.scaleType = imageScaleTypeToDocFrame(p.scaleType);\n }\n\n return Proto.Node.create({\n image: Proto.ProtoImage.create(image),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface IndentationProperties {\n /** Left indentation */\n left?: Measure;\n /** Right indentation */\n right?: Measure;\n /** UUID */\n uuid?: string;\n}\n\nexport class Indentation extends BranchDocumentElement<IndentationProperties> {\n constructor(content?: Content, props?: IndentationProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n const indent: Proto.IProtoIndentation = {\n uuid: this.props?.uuid,\n };\n\n if (this.props?.left) {\n indent.left = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.left.toDocFrame(),\n });\n }\n\n if (this.props?.right) {\n indent.right = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.right.toDocFrame(),\n });\n }\n\n return Proto.Node.create({\n indentation: Proto.ProtoIndentation.create(indent),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Linebreak extends DocumentElement {\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n linebreak: Proto.ProtoLinebreak.create({}),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LinkProperties {\n /** The URL to link to */\n url: string;\n}\n\nexport class Link extends BranchDocumentElement<LinkProperties> {\n constructor(content?: Content, url?: string) {\n super(content, url ? { url } : undefined);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n link: Proto.ProtoLink.create({\n url: this.props?.url,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LoopProperties {\n /** Data path to iterate over */\n path?: string;\n /** UUID */\n uuid?: string;\n}\n\nexport class Loop extends BranchDocumentElement<LoopProperties> {\n constructor(content?: Content, props?: LoopProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n loop: Proto.ProtoLoop.create({\n path: this.props?.path,\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LoopEntryProperties {\n /** Data path for this loop entry */\n path?: string;\n /** Index of this entry in the loop */\n index?: number;\n /** UUID */\n uuid?: string;\n}\n\nexport class LoopEntry extends BranchDocumentElement<LoopEntryProperties> {\n constructor(content?: Content, props?: LoopEntryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n loopEntry: Proto.ProtoLoopEntry.create({\n path: this.props?.path,\n index: this.props?.index,\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Pagebreak extends DocumentElement {\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n newPage: Proto.ProtoNewPage.create({}),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface PageConditionProperties {\n /** UUID */\n uuid?: string;\n /** Code expression to evaluate per page */\n code?: string;\n}\n\nexport class PageCondition extends BranchDocumentElement<PageConditionProperties> {\n constructor(content?: Content, props?: PageConditionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n pageCondition: Proto.ProtoPageCondition.create({\n uuid: this.props?.uuid,\n code: this.props?.code,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\n\nimport Proto from \"docframe-types\";\nimport { ParagraphFormat } from \"~/ParagraphFormat\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface ParagraphSettings {\n paragraphFormatName?: string;\n overwrite?: ParagraphFormat;\n}\n\nexport class Paragraph extends BranchDocumentElement<ParagraphSettings> {\n constructor(\n content?: Content,\n paragraphFormatName?: string | ParagraphFormat,\n overwrite?: ParagraphFormat,\n ) {\n super(content, {\n overwrite,\n paragraphFormatName:\n typeof paragraphFormatName === \"string\"\n ? paragraphFormatName\n : paragraphFormatName?.props?.name,\n });\n }\n\n public toDocFrame(): Proto.Node {\n const par = {} as Proto.IProtoParagraph;\n\n if (this.props!.overwrite) {\n par.overwrite = this.props!.overwrite.toDocFrame();\n }\n\n if (this.props!.paragraphFormatName) {\n par.format = Proto.ProtoParagraphFormat.create({\n name: Proto.ProtoBoxedString.create({\n isNull: false,\n value: this.props!.paragraphFormatName,\n }),\n });\n }\n\n return Proto.Node.create({\n paragraph: Proto.ProtoParagraph.create(par),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\nimport { Color } from \"~/Color\";\n\nexport type RuleStyle =\n | \"solid\"\n | \"sparse-shading\"\n | \"medium-shading\"\n | \"dense-shading\"\n | \"light-dotted\"\n | \"medium-dotted\"\n | \"heavy-dotted\"\n | \"light-dashed\"\n | \"medium-dashed\"\n | \"heavy-dashed\"\n | \"dash-pattern\"\n | \"double\";\n\nfunction ruleStyleToDocFrame(style: RuleStyle): Proto.ProtoRuleStyle {\n switch (style) {\n case \"solid\":\n return Proto.ProtoRuleStyle.SOLID;\n case \"sparse-shading\":\n return Proto.ProtoRuleStyle.SPARSE_SHADING;\n case \"medium-shading\":\n return Proto.ProtoRuleStyle.MEDIUM_SHADING;\n case \"dense-shading\":\n return Proto.ProtoRuleStyle.DENSE_SHADING;\n case \"light-dotted\":\n return Proto.ProtoRuleStyle.LIGHT_DOTTED;\n case \"medium-dotted\":\n return Proto.ProtoRuleStyle.MEDIUM_DOTTED;\n case \"heavy-dotted\":\n return Proto.ProtoRuleStyle.HEAVY_DOTTED;\n case \"light-dashed\":\n return Proto.ProtoRuleStyle.LIGHT_DASHED;\n case \"medium-dashed\":\n return Proto.ProtoRuleStyle.MEDIUM_DASHED;\n case \"heavy-dashed\":\n return Proto.ProtoRuleStyle.HEAVY_DASHED;\n case \"dash-pattern\":\n return Proto.ProtoRuleStyle.DASH_PATTERN;\n case \"double\":\n return Proto.ProtoRuleStyle.DOUBLE;\n default:\n throw new Error(`Unknown rule style: ${style}`);\n }\n}\n\nexport type RuleMode = \"normal\" | \"boundary\";\n\nfunction ruleModeToDocFrame(mode: RuleMode): Proto.ProtoRuleMode {\n switch (mode) {\n case \"normal\":\n return Proto.ProtoRuleMode.NORMAL;\n case \"boundary\":\n return Proto.ProtoRuleMode.BOUNDARY;\n default:\n throw new Error(`Unknown rule mode: ${mode}`);\n }\n}\n\nexport interface RuleBoundaries {\n start?: Measure;\n end?: Measure;\n}\n\nexport interface RuleProperties {\n /** Horizontal offset */\n xOffset?: Measure;\n /** Vertical offset */\n yOffset?: Measure;\n /** Width of the rule */\n width?: Measure;\n /** Thickness of the rule line */\n thickness?: Measure;\n /** Rotation in degrees */\n rotation?: number;\n /** Rule color */\n color?: Color;\n /** Rule style (solid, dashed, dotted, etc.) */\n style?: RuleStyle;\n /** Rule mode */\n mode?: RuleMode;\n /** Rule boundaries for boundary mode */\n boundaries?: RuleBoundaries;\n}\n\nexport class Rule extends DocumentElement {\n props: RuleProperties;\n\n constructor(props: RuleProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n const rule: Proto.IProtoRule = {\n xOffset: this.props.xOffset?.toDocFrame(),\n yOffset: this.props.yOffset?.toDocFrame(),\n width: this.props.width?.toDocFrame(),\n thickness: this.props.thickness?.toDocFrame(),\n rotation: this.props.rotation,\n color: this.props.color?.toDocFrame(),\n };\n\n if (this.props.style) {\n rule.style = ruleStyleToDocFrame(this.props.style);\n }\n\n if (this.props.mode) {\n rule.mode = ruleModeToDocFrame(this.props.mode);\n }\n\n if (this.props.boundaries) {\n rule.boundaries = Proto.ProtoRuleBoundaries.create({\n start: this.props.boundaries.start?.toDocFrame(),\n end: this.props.boundaries.end?.toDocFrame(),\n });\n }\n\n return Proto.Node.create({\n rule: Proto.ProtoRule.create(rule),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SectionProperties {\n uuid?: string;\n /** UUID of the column definition to apply to this section */\n cDefUuid?: string;\n}\n\nexport class Section extends BranchDocumentElement<SectionProperties> {\n constructor(content?: Content, props?: SectionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n section: Proto.ProtoSection.create({\n uuid: this.props?.uuid,\n cDefUuid: this.props?.cDefUuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SelectionProperties {\n /** UUID */\n uuid?: string;\n /** Internal name for the selection */\n internalName?: string;\n /** Display name */\n name?: string;\n /** Whether multiple entries can be selected */\n multi?: boolean;\n /** Minimum number of selections required */\n min?: number;\n /** Maximum number of selections allowed */\n max?: number;\n}\n\nexport class Selection extends BranchDocumentElement<SelectionProperties> {\n constructor(content?: Content, props?: SelectionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n selection: Proto.ProtoSelection.create({\n uuid: this.props?.uuid,\n internalName: this.props?.internalName,\n name: this.props?.name,\n multi: this.props?.multi,\n min: this.props?.min,\n max: this.props?.max,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SelectionEntryProperties {\n /** UUID */\n uuid?: string;\n /** Internal name for the selection entry */\n internalName?: string;\n /** Display name */\n name?: string;\n /** Whether this entry is selected */\n selected?: boolean;\n}\n\nexport class SelectionEntry extends BranchDocumentElement<SelectionEntryProperties> {\n constructor(content?: Content, props?: SelectionEntryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n selectionEntry: Proto.ProtoSelectionEntry.create({\n uuid: this.props?.uuid,\n internalName: this.props?.internalName,\n name: this.props?.name,\n selected: this.props?.selected,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Color } from \"~/Color\";\n\nexport interface SpanProperties {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strikethrough?: boolean;\n color?: Color;\n subscript?: boolean;\n superscript?: boolean;\n}\n\nexport class Span extends BranchDocumentElement<SpanProperties> {\n constructor(content?: Content, props?: SpanProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n let bold: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.bold !== undefined) {\n bold = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.bold,\n });\n }\n\n let italic: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.italic !== undefined) {\n italic = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.italic,\n });\n }\n\n let underline: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.underline !== undefined) {\n underline = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.underline,\n });\n }\n\n let strikethrough: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.strikethrough !== undefined) {\n strikethrough = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.strikethrough,\n });\n }\n\n let subscript: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.subscript !== undefined) {\n subscript = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.subscript,\n });\n }\n\n let superscript: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.superscript !== undefined) {\n superscript = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.superscript,\n });\n }\n\n return Proto.Node.create({\n span: Proto.ProtoSpan.create({\n bold: bold,\n italic: italic,\n underline: underline,\n strikethrough: strikethrough,\n color: this.props?.color?.toDocFrame(),\n subscript: subscript,\n superscript: superscript,\n }),\n\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport type SubTotalPosition = \"above-footer\" | \"below-content\";\n\nfunction subTotalPositionToDocFrame(\n pos: SubTotalPosition,\n): Proto.ProtoSubTotalPosition {\n switch (pos) {\n case \"above-footer\":\n return Proto.ProtoSubTotalPosition.POSITION_ABOVE_FOOTER;\n case \"below-content\":\n return Proto.ProtoSubTotalPosition.POSITION_BELOW_CONTENT;\n default:\n throw new Error(`Unknown sub total position: ${pos}`);\n }\n}\n\nexport interface SubTotalProperties {\n /** Whether to apply immediately */\n applyImmediate?: boolean;\n /** Position of the sub total */\n position?: SubTotalPosition;\n /** Height of the sub total area */\n height?: Measure;\n}\n\nexport class SubTotal extends BranchDocumentElement<SubTotalProperties> {\n constructor(content?: Content, props?: SubTotalProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n subTotal: Proto.ProtoSubTotal.create({\n applyImmediate: this.props?.applyImmediate,\n position: this.props?.position\n ? subTotalPositionToDocFrame(this.props.position)\n : undefined,\n height: this.props?.height?.toDocFrame(),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface TableSettings {\n width?: Measure;\n xOffset?: Measure;\n leftMeasure?: boolean;\n repeatHeader?: number;\n}\n\nexport class Table extends BranchDocumentElement<TableSettings> {\n constructor(content?: Content, props?: TableSettings) {\n super(content, props || {});\n if (!this.props!.xOffset) {\n this.props!.xOffset = Measure.zero;\n }\n }\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const settings: Proto.IProtoTableSettings = {\n width: props.width?.toDocFrame(),\n xOffset: props.xOffset?.toDocFrame(),\n leftMeasure: Proto.ProtoBoxedBool.create({\n isNull: false,\n value: props.leftMeasure ?? false,\n }),\n };\n\n if (props.repeatHeader !== undefined) {\n settings.repeatHeader = Proto.ProtoBoxedUint32.create({\n isNull: false,\n value: props.repeatHeader,\n });\n }\n\n return Proto.Node.create({\n table: Proto.ProtoTable.create({\n settings: Proto.ProtoTableSettings.create(settings),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure, SideMeasures } from \"~/Measure\";\nimport { HorizontalAlignment, VerticalAlignment } from \"~/Alignment\";\nimport { Color } from \"~/Color\";\nimport { SideBorders } from \"~/Border\";\n\nexport interface TableCellProperties {\n alignment?: HorizontalAlignment;\n backgroundColor?: Color;\n border?: SideBorders;\n margin?: SideMeasures;\n padding?: SideMeasures;\n verticalAlignment?: VerticalAlignment;\n width?: Measure;\n rotation?: number;\n defaultParagraphFormat?: string;\n}\n\nexport class TableCell extends BranchDocumentElement<TableCellProperties> {\n constructor(content?: Content, props?: TableCellProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const settings: Proto.IProtoTableCellSettings = {\n align: Proto.ProtoBoxedHorizontalAlignment.create({\n isNull: false,\n value:\n props!.alignment?.toDocFrame() ||\n Proto.ProtoHorizontalAlignment.ALIGN_LEFT,\n }),\n backgroundColor: props.backgroundColor?.toDocFrame(),\n border: props.border?.toDocFrame(),\n margin: props.margin?.toDocFrame(),\n padding: props.padding?.toDocFrame(),\n valign: Proto.ProtoBoxedVerticalAlignment.create({\n isNull: false,\n value:\n props.verticalAlignment?.toDocFrame() ||\n Proto.ProtoVerticalAlignment.TOP,\n }),\n width: props.width?.toDocFrame(),\n };\n\n if (props.rotation !== undefined) {\n settings.rotation = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: props.rotation,\n });\n }\n\n if (props.defaultParagraphFormat !== undefined) {\n settings.defaultParagraphFormat = Proto.ProtoBoxedString.create({\n isNull: false,\n value: props.defaultParagraphFormat,\n });\n }\n\n return Proto.Node.create({\n tableCell: Proto.ProtoTableCell.create({\n settings: Proto.ProtoTableCellSettings.create(settings),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface TableContentGroupProperties {\n /** UUID */\n uuid?: string;\n}\n\nexport class TableContentGroup extends BranchDocumentElement<TableContentGroupProperties> {\n constructor(content?: Content, props?: TableContentGroupProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tableContentGroup: Proto.ProtoTableContentGroup.create({\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport interface TableRowProperties {\n minHeight?: AbsoluteMeasure;\n}\n\nexport class TableRow extends BranchDocumentElement<TableRowProperties> {\n constructor(content?: Content, props?: TableRowProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tableRow: Proto.ProtoTableRow.create({\n settings: Proto.ProtoTableRowSettings.create({\n minHeight: this.props!.minHeight?.toDocFrame(),\n }),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport interface TagProperties {\n /** Tag name */\n name: string;\n /** UUID */\n uuid?: string;\n /** Tag parameters */\n params?: string[];\n /** Name code expression */\n nameCode?: string;\n /** Whether name is in code mode */\n codeMode?: boolean;\n}\n\nexport class Tag extends DocumentElement {\n props: TagProperties;\n\n constructor(props: TagProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tag: Proto.ProtoTag.create({\n name: this.props.name,\n uuid: this.props.uuid,\n params: this.props.params,\n nameCode: this.props.nameCode,\n codeMode: this.props.codeMode,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport type VariableSpecialType =\n | \"table-number\"\n | \"doc-page-count\"\n | \"doc-cur-page\"\n | \"cur-page\"\n | \"page-count\"\n | \"prev-page\"\n | \"section-page\"\n | \"updated-at\"\n | \"generated-at\";\n\nfunction specialTypeToDocFrame(\n type: VariableSpecialType,\n): Proto.ProtoVariableSpecialType {\n switch (type) {\n case \"table-number\":\n return Proto.ProtoVariableSpecialType.TABLE_NUMBER;\n case \"doc-page-count\":\n return Proto.ProtoVariableSpecialType.DOC_PAGE_COUNT;\n case \"doc-cur-page\":\n return Proto.ProtoVariableSpecialType.DOC_CUR_PAGE;\n case \"cur-page\":\n return Proto.ProtoVariableSpecialType.CUR_PAGE;\n case \"page-count\":\n return Proto.ProtoVariableSpecialType.PAGE_COUNT;\n case \"prev-page\":\n return Proto.ProtoVariableSpecialType.PREV_PAGE;\n case \"section-page\":\n return Proto.ProtoVariableSpecialType.SECTION_PAGE;\n case \"updated-at\":\n return Proto.ProtoVariableSpecialType.UPDATED_AT;\n case \"generated-at\":\n return Proto.ProtoVariableSpecialType.GENERATED_AT;\n default:\n throw new Error(`Unknown variable special type: ${type}`);\n }\n}\n\nexport interface VariableProperties {\n /** Data path to the variable */\n path?: string;\n /** Static content value */\n content?: string;\n /** UUID of the format to apply */\n formatUuid?: string;\n /** Special type of the variable (e.g. page number) */\n specialType?: VariableSpecialType;\n /** UUID */\n uuid?: string;\n}\n\nexport class Variable extends DocumentElement {\n props: VariableProperties;\n\n constructor(props: VariableProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n variable: Proto.ProtoVariable.create({\n path: this.props.path,\n content: this.props.content,\n formatUuid: this.props.formatUuid,\n specialType: this.props.specialType\n ? specialTypeToDocFrame(this.props.specialType)\n : undefined,\n uuid: this.props.uuid,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\n/**\n * WsArea (Widow/orphan and Split area) wraps content to control\n * page break behavior.\n */\nexport class WsArea extends BranchDocumentElement {\n constructor(content?: Content) {\n super(content);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n wsArea: Proto.ProtoWsArea.create({}),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { AdjustHorizontally } from \"./AdjustHorizontally\";\nimport { AdvancedIllustrationArea } from \"./AdvancedIllustrationArea\";\nimport { Barcode } from \"./Barcode\";\nimport { CarryOver } from \"./CarryOver\";\nimport { ColumnDefinition, ColumnPosition } from \"./ColumnDefinition\";\nimport { Condition } from \"./Condition\";\nimport { Directory } from \"./Directory\";\nimport { Document } from \"./Document\";\nimport { Footer } from \"./Footer\";\nimport { Formatted } from \"./Formatted\";\nimport { Header } from \"./Header\";\nimport { Image } from \"./Image\";\nimport { Indentation } from \"./Indentation\";\nimport { Linebreak } from \"./Linebreak\";\nimport { Link } from \"./Link\";\nimport { Loop } from \"./Loop\";\nimport { LoopEntry } from \"./LoopEntry\";\nimport { Pagebreak } from \"./Pagebreak\";\nimport { PageCondition } from \"./PageCondition\";\nimport { PageDefinition } from \"./PageDefinition\";\nimport { Paragraph } from \"./Paragraph\";\nimport { Rule } from \"./Rule\";\nimport { Section } from \"./Section\";\nimport { Selection } from \"./Selection\";\nimport { SelectionEntry } from \"./SelectionEntry\";\nimport { SpaceVertically } from \"./SpaceVertically\";\nimport { Span } from \"./Span\";\nimport { SubTotal } from \"./SubTotal\";\nimport { Table } from \"./Table\";\nimport { TableCell } from \"./TableCell\";\nimport { TableContentGroup } from \"./TableContentGroup\";\nimport { TableRow } from \"./TableRow\";\nimport { Tag } from \"./Tag\";\nimport { Text } from \"./Text\";\nimport { Variable } from \"./Variable\";\nimport { WsArea } from \"./WsArea\";\n\nexport default {\n AdjustHorizontally,\n AdvancedIllustrationArea,\n Barcode,\n CarryOver,\n ColumnDefinition,\n ColumnPosition,\n Condition,\n Directory,\n Document,\n Footer,\n Formatted,\n Header,\n Image,\n Indentation,\n Linebreak,\n Link,\n Loop,\n LoopEntry,\n Pagebreak,\n PageCondition,\n PageDefinition,\n Paragraph,\n Rule,\n Section,\n Selection,\n SelectionEntry,\n SpaceVertically,\n Span,\n SubTotal,\n Table,\n TableCell,\n TableContentGroup,\n TableRow,\n Tag,\n Text,\n Variable,\n WsArea,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,4BAAkB;AAEX,IAAM,sBAAN,MAA0B;AAAA,EAG/B,YAAY,OAAuC;AACjD,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAA6C;AAClD,WAAO,KAAK;AAAA,EACd;AACF;AAEO,IAAM,oBAAN,MAAwB;AAAA,EAG7B,YAAY,OAAqC;AAC/C,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAA2C;AAChD,WAAO,KAAK;AAAA,EACd;AACF;AAEO,IAAU;AAAA,CAAV,CAAUA,eAAV;AACE,EAAMA,WAAA,aAAa;AAAA,IACxB,MAAM,IAAI,oBAAoB,sBAAAC,QAAM,yBAAyB,UAAU;AAAA,IACvE,QAAQ,IAAI,oBAAoB,sBAAAA,QAAM,yBAAyB,YAAY;AAAA,IAC3E,OAAO,IAAI,oBAAoB,sBAAAA,QAAM,yBAAyB,WAAW;AAAA,IACzE,SAAS,IAAI,oBAAoB,sBAAAA,QAAM,yBAAyB,aAAa;AAAA,IAC7E,aAAa,IAAI,oBAAoB,sBAAAA,QAAM,yBAAyB,kBAAkB;AAAA,EACxF;AAEO,EAAMD,WAAA,WAAW;AAAA,IACtB,KAAK,IAAI,kBAAkB,sBAAAC,QAAM,uBAAuB,GAAG;AAAA,IAC3D,QAAQ,IAAI,kBAAkB,sBAAAA,QAAM,uBAAuB,MAAM;AAAA,IACjE,QAAQ,IAAI,kBAAkB,sBAAAA,QAAM,uBAAuB,MAAM;AAAA,EACnE;AAAA,GAbe;;;AC1BjB,IAAAC,yBAAkB;AAIX,IAAM,SAAN,MAAa;AAAA,EAIlB,YAAY,OAAwB,OAAc;AAChD,SAAK,QAAQ;AACb,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAAgC;AACrC,WAAO,IAAI,uBAAAC,QAAM,YAAY;AAAA,MAC3B,QAAQ,KAAK,MAAM,WAAW;AAAA,MAC9B,OAAO,KAAK,MAAM,WAAW;AAAA,IAC/B,CAAC;AAAA,EACH;AACF;AAEO,IAAM,cAAN,MAAkB;AAAA,EAGvB,YAAY,UAAyB;AACnC,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAAqC;AA5B9C;AA6BI,WAAO,IAAI,uBAAAA,QAAM,iBAAiB;AAAA,MAChC,MAAK,UAAK,MAAM,QAAX,mBAAgB;AAAA,MACrB,QAAO,UAAK,MAAM,UAAX,mBAAkB;AAAA,MACzB,SAAQ,UAAK,MAAM,WAAX,mBAAmB;AAAA,MAC3B,OAAM,UAAK,MAAM,SAAX,mBAAiB;AAAA,IACzB,CAAC;AAAA,EACH;AACF;;;ACpCA,IAAAC,yBAAkB;AAEX,IAAM,QAAN,MAAM,OAAM;AAAA,EAGjB,OAAO,IAAI,GAAW,GAAW,GAAkB;AACjD,QAAI,IAAI,KAAK,IAAI,KAAK;AACpB,YAAM,IAAI,MAAM,sBAAsB,CAAC,EAAE;AAAA,IAC3C;AAEA,QAAI,IAAI,KAAK,IAAI,KAAK;AACpB,YAAM,IAAI,MAAM,wBAAwB,CAAC,EAAE;AAAA,IAC7C;AAEA,QAAI,IAAI,KAAK,IAAI,KAAK;AACpB,YAAM,IAAI,MAAM,uBAAuB,CAAC,EAAE;AAAA,IAC5C;AAEA,WAAO,IAAI,OAAM,uBAAAC,QAAM,WAAW,OAAO;AAAA,MACvC,MAAM,uBAAAA,QAAM,eAAe;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,CAAC;AAAA,EACJ;AAAA,EAEA,OAAO,KAAK,GAAW,GAAW,GAAW,GAAkB;AAC7D,QAAI,IAAI,KAAK,IAAI,KAAK;AACpB,YAAM,IAAI,MAAM,uBAAuB,CAAC,EAAE;AAAA,IAC5C;AAEA,QAAI,IAAI,KAAK,IAAI,KAAK;AACpB,YAAM,IAAI,MAAM,0BAA0B,CAAC,EAAE;AAAA,IAC/C;AAEA,QAAI,IAAI,KAAK,IAAI,KAAK;AACpB,YAAM,IAAI,MAAM,yBAAyB,CAAC,EAAE;AAAA,IAC9C;AAEA,QAAI,IAAI,KAAK,IAAI,KAAK;AACpB,YAAM,IAAI,MAAM,wBAAwB,CAAC,EAAE;AAAA,IAC7C;AAEA,WAAO,IAAI,OAAM,uBAAAA,QAAM,WAAW,OAAO;AAAA,MACvC,MAAM,uBAAAA,QAAM,eAAe;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,CAAC;AAAA,EACJ;AAAA,EAEA,OAAO,QAAQ,KAAoB;AACjC,QAAI,IAAI,WAAW,GAAG,GAAG;AACvB,YAAM,IAAI,MAAM,CAAC;AAAA,IACnB;AAEA,QAAI,IAAI,WAAW,GAAG;AACpB,YAAM,IAAI,MAAM,sBAAsB,GAAG,EAAE;AAAA,IAC7C;AAEA,UAAM,IAAI,SAAS,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AACtC,UAAM,IAAI,SAAS,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AACtC,UAAM,IAAI,SAAS,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AAEtC,WAAO,IAAI,OAAM,uBAAAA,QAAM,WAAW,OAAO;AAAA,MACvC,MAAM,uBAAAA,QAAM,eAAe;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,CAAC;AAAA,EACJ;AAAA,EAEQ,YAAY,OAAyB;AAC3C,SAAK,QAAQ;AAAA,EACf;AAAA,EAGO,aAA+B;AACpC,WAAO,KAAK;AAAA,EACd;AACF;AAEO,IAAU;AAAA,CAAV,CAAUC,YAAV;AACE,EAAMA,QAAA,QAAQ,MAAM,IAAI,KAAK,KAAK,GAAG;AAErC,EAAMA,QAAA,QAAQ,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG;AAAA,GAH7B;;;ACnFjB,mBAAkB;AAClB,uBAAqB;AACrB,oBAAmB;AAEnB,IAAAC,yBAAkB;AAMlB,cAAAC,QAAO,OAAO;AAEP,IAAM,aAAN,MAAiB;AAAA,EAItB,YAAY,KAAc,OAAgB;AACxC,SAAK,MAAM,OAAO,QAAQ,IAAI,eAAe;AAC7C,SAAK,QAAQ,SAAS,QAAQ,IAAI,iBAAiB;AAAA,EACrD;AAAA,EAEA,IAAI,kBAAkB;AACpB,WAAO,GAAG,KAAK,GAAG,uBAAuB,KAAK,KAAK;AAAA,EACrD;AAAA,EAEA,UACE,QACA,KACA,cACA,WACe;AACf,UAAM,OAAO,IAAI,WAAW;AAE5B,UAAM,YAAY,uBAAAC,QAAM,KAAK,OAAO,IAAI,EAAE,OAAO;AAEjD,UAAM,OAAO,IAAI,iBAAAC,QAAS;AAE1B,QAAI,OAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAI,cAAc;AAChB,aAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,IACF;AAEA,QAAI,WAAW;AACb,aAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,IACF;AAEA,SAAK,OAAO,QAAQ,KAAK,UAAU,IAAI,GAAG;AAAA,MACxC,aAAa;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AAED,SAAK,OAAO,cAAc,WAAW;AAAA,MACnC,aAAa;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AAED,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,mBAAAC,QACG,SAAS,KAAK,iBAAiB,MAAM;AAAA,QACpC,SAAS;AAAA,UACP,GAAG,KAAK,WAAW;AAAA,QACrB;AAAA,QACA,cAAc;AAAA,MAChB,CAAC,EACA,KAAK,OAAO,QAAQ;AACnB,cAAM,OAAO,MAAM,IAAI,SAAS,IAAI,MAAM;AAAA,UACxC,SAAS;AAAA,YACP,gBAAgB,IAAI,QAAQ,cAAc;AAAA,UAC5C;AAAA,QACF,CAAC,EAAE,KAAK;AAER,gBAAQ,IAAI;AAAA,MACd,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,eAAO,GAAG;AAAA,MACZ,CAAC;AAAA,IACL,CAAC;AAAA,EACH;AACF;AAEO,IAAM,oBAAoB,IAAI,WAAW;;;ACzFhD,IAAAC,yBAAkB;;;ACEX,IAAe,kBAAf,MAA+B;AAEtC;;;ACJA,IAAAC,yBAAkB;AAIX,IAAM,OAAN,cAAmB,gBAAgB;AAAA,EACxC,YAAY,SAAiB;AAC3B,UAAM;AACN,SAAK,UAAU;AAAA,EACjB;AAAA,EAIO,aAAyB;AAC9B,WAAO,uBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,MAAM,uBAAAA,QAAM,UAAU,OAAO;AAAA,QAC3B,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;;;ACfO,IAAe,wBAAf,cAAwD,gBAAgB;AAAA,EAI7E,YAAY,UAAoB,OAAW;AACzC,UAAM;AAJR,SAAU,WAA8B,CAAC;AAMvC,SAAK,SAAS;AAEd,QAAI,aAAa,QAAW;AAC1B,WAAK,WAAW,CAAC;AACjB;AAAA,IACF;AAEA,SAAK,WAAW,4BAA4B,QAAQ;AAAA,EACtD;AAAA,EAEO,eAAe,UAAmC;AACvD,SAAK,WAAW,KAAK,SAAS,OAAO,QAAQ;AAAA,EAC/C;AAAA,EAEO,YAAY,OAA8B;AAC/C,SAAK,SAAS,KAAK,KAAK;AAAA,EAC1B;AAAA,EAEO,gBAAgB,UAAmC;AACxD,SAAK,WAAW,SAAS,OAAO,KAAK,QAAQ;AAAA,EAC/C;AAAA,EAEO,aAAa,OAA8B;AAChD,SAAK,SAAS,QAAQ,KAAK;AAAA,EAC7B;AAAA,EAEO,qBAAmC;AACxC,WAAO,KAAK,SAAS,IAAI,CAAC,UAAU,MAAM,WAAW,CAAC;AAAA,EACxD;AAAA,EAEA,IAAI,MAAM,OAAsB;AAC9B,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAI,QAAuB;AACzB,WAAO,KAAK;AAAA,EACd;AACF;AAEA,SAAS,4BAA4B,SAAqC;AACxE,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,CAAC,IAAI,KAAK,OAAO,CAAC;AAAA,EAC3B,WAAW,MAAM,QAAQ,OAAO,GAAG;AACjC,WAAO,QAAQ,IAAI,2BAA2B,EAAE,KAAK;AAAA,EACvD,OAAO;AACL,WAAO,CAAC,OAAO;AAAA,EACjB;AACF;;;AH7CO,IAAM,qBAAN,cAAiC,sBAAoD;AAAA,EAC1F,YAAY,SAAmB,OAAsC;AACnE,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AAlBlC;AAmBI,WAAO,uBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,oBAAoB,uBAAAA,QAAM,wBAAwB,OAAO;AAAA,QACvD,cAAa,gBAAK,UAAL,mBAAY,gBAAZ,mBAAyB;AAAA,QACtC,cAAa,gBAAK,UAAL,mBAAY,gBAAZ,mBAAyB;AAAA,MACxC,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;AI3BA,IAAAC,yBAAkB;AAQlB,SAAS,uBACP,MACiD;AACjD,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,uBAAAC,QAAM,0CAA0C;AAAA,IACzD,KAAK;AACH,aAAO,uBAAAA,QAAM,0CAA0C;AAAA,IACzD,KAAK;AACH,aAAO,uBAAAA,QAAM,0CAA0C;AAAA,IACzD,KAAK;AACH,aAAO,uBAAAA,QAAM,0CAA0C;AAAA,IACzD;AACE,YAAM,IAAI,MAAM,2BAA2B,IAAI,EAAE;AAAA,EACrD;AACF;AAqBO,IAAM,2BAAN,cAAuC,sBAA0D;AAAA,EACtG,YACE,SACA,OACA;AACA,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AApDlC;AAqDI,WAAO,uBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,0BACE,uBAAAA,QAAM,8BAA8B,OAAO;AAAA,QACzC,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,WAAU,UAAK,UAAL,mBAAY;AAAA,QACtB,QAAO,gBAAK,UAAL,mBAAY,UAAZ,mBAAmB;AAAA,QAC1B,SAAQ,gBAAK,UAAL,mBAAY,WAAZ,mBAAoB;AAAA,QAC5B,IAAG,gBAAK,UAAL,mBAAY,MAAZ,mBAAe;AAAA,QAClB,IAAG,gBAAK,UAAL,mBAAY,MAAZ,mBAAe;AAAA,QAClB,YAAU,UAAK,UAAL,mBAAY,YAClB,uBAAuB,KAAK,MAAM,QAAQ,IAC1C;AAAA,QACJ,WAAU,UAAK,UAAL,mBAAY;AAAA,MACxB,CAAC;AAAA,MACH,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACtEA,IAAAC,0BAAkB;;;ACAlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAC,yBAAkB;AAOX,IAAM,WAAN,MAAM,SAA4B;AAAA,EAMvC,YAAY,OAAe,MAAY;AACrC,SAAK,QAAQ;AACb,SAAK,OAAO;AAAA,EACd;AAAA,EAEO,aAAiC;AACtC,YAAQ,KAAK,MAAM;AAAA,MACjB,KAAK;AACH,eAAO,IAAI,uBAAAC,QAAM,aAAa;AAAA,UAC5B,OAAO,KAAK;AAAA,UACZ,OAAO,uBAAAA,QAAM,iBAAiB;AAAA,QAChC,CAAC;AAAA,MAEH,KAAK;AACH,eAAO,IAAI,uBAAAA,QAAM,aAAa;AAAA,UAC5B,OAAO,KAAK;AAAA,UACZ,OAAO,uBAAAA,QAAM,iBAAiB;AAAA,QAChC,CAAC;AAAA,MAEH,KAAK;AACH,eAAO,IAAI,uBAAAA,QAAM,aAAa;AAAA,UAC5B,OAAO,KAAK;AAAA,UACZ,OAAO,uBAAAA,QAAM,iBAAiB;AAAA,QAChC,CAAC;AAAA,MAEH,KAAK;AACH,eAAO,IAAI,uBAAAA,QAAM,aAAa;AAAA,UAC5B,OAAO,KAAK;AAAA,UACZ,OAAO,uBAAAA,QAAM,iBAAiB;AAAA,QAChC,CAAC;AAAA,MAEH,KAAK;AACH,eAAO,IAAI,uBAAAA,QAAM,aAAa;AAAA,UAC5B,OAAO,KAAK;AAAA,UACZ,OAAO,uBAAAA,QAAM,iBAAiB;AAAA,QAChC,CAAC;AAAA,MAEH,KAAK;AACH,eAAO,IAAI,uBAAAA,QAAM,aAAa;AAAA,UAC5B,OAAO,KAAK;AAAA,UACZ,OAAO,uBAAAA,QAAM,iBAAiB;AAAA,QAChC,CAAC;AAAA,MAEH;AACE,cAAM,IAAI,MAAM,yBAAyB,KAAK,IAAI,EAAE;AAAA,IACxD;AAAA,EACF;AACF;AArDa,SAIJ,OAAO,IAAI,SAAQ,GAAG,IAA2B;AAJnD,IAAM,UAAN;AAuDA,IAAM,kBAAN,cAA8B,QAA6B;AAAC;AAE5D,IAAM,eAAN,MAAmB;AAAA,EAGxB,YAAY,UAAkC;AAC5C,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAAsC;AAvE/C;AAwEI,WAAO,IAAI,uBAAAA,QAAM,kBAAkB;AAAA,MACjC,MAAK,UAAK,MAAM,QAAX,mBAAgB;AAAA,MACrB,QAAO,UAAK,MAAM,UAAX,mBAAkB;AAAA,MACzB,SAAQ,UAAK,MAAM,WAAX,mBAAmB;AAAA,MAC3B,OAAM,UAAK,MAAM,SAAX,mBAAiB;AAAA,IACzB,CAAC;AAAA,EACH;AACF;AAGO,IAAM,QAAN,MAAe;AAKtB;;;ACvFA,IAAAC,yBAAkB;AAWX,SAAS,yBAAyB,OAAuD;AAC9F,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,uBAAAC,QAAM,yBAAyB;AAAA,IAExC,KAAK;AACH,aAAO,uBAAAA,QAAM,yBAAyB;AAAA,IAExC,KAAK;AACH,aAAO,uBAAAA,QAAM,yBAAyB;AAAA,IAExC,KAAK;AACH,aAAO,uBAAAA,QAAM,yBAAyB;AAAA,IAExC,KAAK;AACH,aAAO,uBAAAA,QAAM,yBAAyB;AAAA,IAExC;AACE,YAAM,IAAI,MAAM,4BAA4B,KAAK,EAAE;AAAA,EACvD;AACF;;;AHFO,IAAM,UAAN,cAAsB,gBAAgB;AAAA,EAG3C,YAAY,OAA0B;AACpC,UAAM;AAEN,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAAyB;AAC9B,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,SAAS,wBAAAA,QAAM,aAAa,OAAO;AAAA,QACjC,MAAM,KAAK,MAAM;AAAA,QAEjB,kBAAkB,KAAK,MAAM;AAAA,QAC7B,gBAAgB,yBAAyB,KAAK,MAAM,cAAc;AAAA,QAClE,GAAG,KAAK,MAAM,EAAE,WAAW;AAAA,QAC3B,GAAG,KAAK,MAAM,EAAE,WAAW;AAAA,QAC3B,UAAU,KAAK,MAAM;AAAA,QAErB,OAAO,KAAK,MAAM,MAAM,WAAW;AAAA,QACnC,QAAQ,KAAK,MAAM,OAAO,WAAW;AAAA,QACrC,UAAU,KAAK,MAAM,WAAW,QAAQ,MAAM,WAAW;AAAA,QAEzD,MAAM,KAAK,MAAM;AAAA,QACjB,MAAM,KAAK,MAAM;AAAA,QACjB,SAAS,KAAK,MAAM;AAAA,QACpB,MAAM,KAAK,MAAM;AAAA,MACnB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;;;AI5DA,IAAAC,0BAAkB;AASX,IAAM,YAAN,cAAwB,sBAAsB;AAAA,EACnD,YAAY,SAAmB;AAC7B,UAAM,OAAO;AAAA,EACf;AAAA,EAEO,aAAyB;AAC9B,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,WAAW,wBAAAA,QAAM,eAAe,OAAO,CAAC,CAAC;AAAA,MACzC,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACpBA,IAAAC,0BAAkB;AAElB,kBAA6B;AAG7B,IAAM,qBAAN,MAAyB;AAAA,EAGvB,YAAY,OAAgC;AAC1C,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAAsC;AAC3C,WAAO,KAAK;AAAA,EACd;AACF;AAEO,IAAU;AAAA,CAAV,CAAUC,oBAAV;AACE,EAAMA,gBAAA,SAAS,IAAI,mBAAmB,wBAAAC,QAAM,kBAAkB,MAAM;AACpE,EAAMD,gBAAA,OAAO,IAAI,mBAAmB,wBAAAC,QAAM,kBAAkB,IAAI;AAChE,EAAMD,gBAAA,QAAQ,IAAI,mBAAmB,wBAAAC,QAAM,kBAAkB,KAAK;AAClE,EAAMD,gBAAA,QAAQ,IAAI,mBAAmB,wBAAAC,QAAM,kBAAkB,KAAK;AAClE,EAAMD,gBAAA,eAAe,IAAI;AAAA,IAC9B,wBAAAC,QAAM,kBAAkB;AAAA,EAC1B;AAAA,GAPe;AAiBV,IAAM,mBAAN,MAAuB;AAAA,EAI5B,YAAY,OAAmC;AAC7C,SAAK,QAAQ;AAEb,SAAK,WAAO,YAAAC,IAAO;AAAA,EACrB;AAAA,EAEO,WAAW,gBAAuC;AACvD,UAAM,SAAS;AAAA,MACb,wBAAAD,QAAM,KAAK,OAAO;AAAA,QAChB,MAAM,wBAAAA,QAAM,UAAU,OAAO;AAAA,UAC3B,MAAM,KAAK;AAAA,UACX,eAAe,wBAAAA,QAAM,oBAAoB,OAAO;AAAA,YAC9C,OAAO,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,cACpC,QAAQ;AAAA,cACR,OAAO,KAAK,MAAM,MAAM,WAAW;AAAA,YACrC,CAAC;AAAA,YACD,gBAAgB,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,cAC7C,QAAQ;AAAA,cACR,OAAO,KAAK,MAAM,eAAe,WAAW;AAAA,YAC9C,CAAC;AAAA,YACD,cAAc,KAAK,MAAM,SAAS,WAAW;AAAA,YAC7C,kBAAkB,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,cAC/C,QAAQ;AAAA,cACR,OAAO,KAAK,MAAM,iBAAiB,WAAW;AAAA,YAChD,CAAC;AAAA,UACH,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,QAAI,gBAAgB;AAClB,aAAO;AAAA,QACL,wBAAAA,QAAM,KAAK,OAAO;AAAA,UAChB,WAAW,wBAAAA,QAAM,oBAAoB,OAAO;AAAA,YAC1C,UAAU,KAAK;AAAA,UACjB,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEO,IAAM,oBAAoB;AAAA,EAC/B,IAAI;AAAA,IACF,QAAQ,IAAI,iBAAiB;AAAA,MAC3B,OAAO,IAAI,gBAAgB,KAAK,IAAI;AAAA,MACpC,UAAU,eAAe;AAAA,MACzB,gBAAgB,IAAI,gBAAgB,IAAI,IAAI;AAAA,MAC5C,kBAAkB,IAAI,gBAAgB,IAAI,IAAI;AAAA,IAChD,CAAC;AAAA,IACD,QAAQ,IAAI,iBAAiB;AAAA,MAC3B,OAAO,IAAI,gBAAgB,KAAK,IAAI;AAAA,MACpC,UAAU,eAAe;AAAA,MACzB,gBAAgB,IAAI,gBAAgB,IAAI,IAAI;AAAA,MAC5C,kBAAkB,IAAI,gBAAgB,IAAI,IAAI;AAAA,IAChD,CAAC;AAAA,EACH;AACF;;;ACjGA,IAAAE,0BAAkB;AAgBX,IAAM,YAAN,cAAwB,sBAA2C;AAAA,EACxE,YAAY,SAAmB,OAA6B;AAC1D,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AArBlC;AAsBI,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,WAAW,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACrC,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,SAAQ,UAAK,UAAL,mBAAY;AAAA,QACpB,aAAY,UAAK,UAAL,mBAAY;AAAA,MAC1B,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;AChCA,IAAAC,0BAAkB;AAOlB,SAAS,uBAAuB,MAA6C;AAC3E,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,wBAAAC,QAAM,kBAAkB;AAAA,IACjC,KAAK;AACH,aAAO,wBAAAA,QAAM,kBAAkB;AAAA,IACjC,KAAK;AACH,aAAO,wBAAAA,QAAM,kBAAkB;AAAA,IACjC,KAAK;AACH,aAAO,wBAAAA,QAAM,kBAAkB;AAAA,IACjC,KAAK;AACH,aAAO,wBAAAA,QAAM,kBAAkB;AAAA,IACjC;AACE,YAAM,IAAI,MAAM,0BAA0B,IAAI,EAAE;AAAA,EACpD;AACF;AAQO,IAAM,YAAN,cAAwB,sBAA2C;AAAA,EACxE,YAAY,SAAmB,OAA6B;AAC1D,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AAnClC;AAoCI,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,WAAW,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACrC,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,WAAU,UAAK,UAAL,mBAAY;AAAA,QACtB,gBAAc,UAAK,UAAL,mBAAY,gBACtB,uBAAuB,KAAK,MAAM,YAAY,IAC9C;AAAA,MACN,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;AC/CA,IAAAC,0BAAkB;;;ACAlB;AAAA;AAAA;AAAA;AAAA,IAAK,eAAL,kBAAKC,kBAAL;AACE,EAAAA,cAAA,SAAM;AACN,EAAAA,cAAA,SAAM;AACN,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,QAAK;AACL,EAAAA,cAAA,UAAO;AANJ,SAAAA;AAAA,GAAA;;;ACGL,IAAAC,0BAAkB;AAIlB,SAAS,qBAAqB,MAAyC;AACrE,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,wBAAAC,QAAM,gBAAgB;AAAA,IAC/B,KAAK;AACH,aAAO,wBAAAA,QAAM,gBAAgB;AAAA,IAC/B,KAAK;AACH,aAAO,wBAAAA,QAAM,gBAAgB;AAAA,IAC/B,KAAK;AACH,aAAO,wBAAAA,QAAM,gBAAgB;AAAA,IAC/B;AACE,YAAM,IAAI,MAAM,wBAAwB,IAAI,EAAE;AAAA,EAClD;AACF;AAMO,IAAM,SAAN,cAAqB,sBAAwC;AAAA,EAClE,YAAY,SAAmB,OAA0B;AACvD,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AA/BlC;AAgCI,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,QAAQ,wBAAAA,QAAM,YAAY,OAAO;AAAA,QAC/B,QAAM,UAAK,UAAL,mBAAY,QACd,qBAAqB,KAAK,MAAM,IAAI,IACpC;AAAA,MACN,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACtCA,IAAAC,0BAAkB;AAIlB,SAAS,qBAAqB,MAAyC;AACrE,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,wBAAAC,QAAM,gBAAgB;AAAA,IAC/B,KAAK;AACH,aAAO,wBAAAA,QAAM,gBAAgB;AAAA,IAC/B,KAAK;AACH,aAAO,wBAAAA,QAAM,gBAAgB;AAAA,IAC/B,KAAK;AACH,aAAO,wBAAAA,QAAM,gBAAgB;AAAA,IAC/B;AACE,YAAM,IAAI,MAAM,wBAAwB,IAAI,EAAE;AAAA,EAClD;AACF;AAMO,IAAM,SAAN,cAAqB,sBAAwC;AAAA,EAClE,YAAY,SAAmB,OAA0B;AACvD,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AA/BlC;AAgCI,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,QAAQ,wBAAAA,QAAM,YAAY,OAAO;AAAA,QAC/B,QAAM,UAAK,UAAL,mBAAY,QACd,qBAAqB,KAAK,MAAM,IAAI,IACpC;AAAA,MACN,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACzCA,IAAAC,0BAAkB;AAClB,IAAAC,eAAmB;AAGZ,IAAM,iBAAN,MAAqB;AAAA,EAK1B,YAAY,OAAyB,QAA0B;AAC7D,SAAK,QAAQ;AACb,SAAK,SAAS;AAEd,SAAK,WAAO,iBAAG;AAAA,EACjB;AAAA,EAEO,aAA8B;AAhBvC;AAiBI,WAAO,IAAI,wBAAAC,QAAM,UAAU;AAAA,MACzB,WAAW,IAAI,wBAAAA,QAAM,kBAAkB;AAAA,QACrC,QAAQ,KAAK,WAAW;AAAA,QACxB,QAAO,UAAK,WAAL,mBAAa;AAAA,MACtB,CAAC;AAAA,MACD,WAAW,IAAI,wBAAAA,QAAM,kBAAkB;AAAA,QACrC,QAAQ,KAAK,UAAU;AAAA,QACvB,QAAO,UAAK,UAAL,mBAAY;AAAA,MACrB,CAAC;AAAA,MACD,MAAM,KAAK;AAAA,IACb,CAAC;AAAA,EACH;AACF;AAEO,IAAU;AAAA,CAAV,CAAUC,qBAAV;AACE,EAAMA,iBAAA,KAAK,IAAI;AAAA,IACpB,IAAI,gBAAgB,KAAK,IAAI;AAAA,IAC7B,IAAI,gBAAgB,KAAK,IAAI;AAAA,EAC/B;AAEO,EAAMA,iBAAA,KAAK,IAAI;AAAA,IACpB,IAAI,gBAAgB,KAAK,IAAI;AAAA,IAC7B,IAAI,gBAAgB,KAAK,IAAI;AAAA,EAC/B;AAEO,EAAMA,iBAAA,KAAK,IAAI;AAAA,IACpB,IAAI,gBAAgB,KAAK,IAAI;AAAA,IAC7B,IAAI,gBAAgB,KAAK,IAAI;AAAA,EAC/B;AAAA,GAde;;;AC/BjB,IAAAC,0BAAkB;AAClB,IAAAC,eAA6B;AA0BtB,IAAM,kBAAN,MAAsB;AAAA,EAG3B,YAAY,OAAkC;AAC5C,SAAK,QAAQ;AAEb,SAAK,MAAM,OAAO,MAAM,YAAQ,aAAAC,IAAO;AAAA,EACzC;AAAA,EAEO,aAA0C;AAC/C,QAAI,SAAsC;AAAA,MACxC,SAAS,wBAAAC,QAAM,eAAe,OAAO;AAAA,QACnC,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,WAAW;AAAA,MAC/B,CAAC;AAAA,MACD,MAAM,wBAAAA,QAAM,iBAAiB,OAAO;AAAA,QAClC,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,WAAW;AACxB,aAAO,YAAY,wBAAAA,QAAM,8BAA8B,OAAO;AAAA,QAC5D,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,UAAU,WAAW;AAAA,MACzC,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,MAAM;AACnB,aAAO,OAAO,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACxC,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,KAAK,WAAW;AAAA,MACpC,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,UAAU;AACvB,aAAO,WAAW,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QAC/C,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,SAAS,WAAW;AAAA,MACxC,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,gBAAgB;AAC7B,aAAO,iBAAiB,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QACrD,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,eAAe,WAAW;AAAA,MAC9C,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,kBAAkB;AAC/B,aAAO,mBAAmB,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QACvD,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,iBAAiB,WAAW;AAAA,MAChD,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,UAAU;AACvB,aAAO,WAAW,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QAC/C,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,SAAS,WAAW;AAAA,MACxC,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,mBAAmB,QAAW;AAC3C,aAAO,iBAAiB,wBAAAA,QAAM,gBAAgB,OAAO;AAAA,QACnD,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,gBAAgB;AAC7B,aAAO,iBAAiB,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QACrD,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,eAAe,WAAW;AAAA,MAC9C,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,SAAS,QAAW;AACjC,aAAO,OAAO,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACxC,QAAQ;AAAA,QACR,OAAO,CAAC,CAAC,KAAK,MAAM;AAAA,MACtB,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,WAAW,QAAW;AACnC,aAAO,SAAS,wBAAAA,QAAM,eAAe,OAAO;AAAA,QAC1C,QAAQ;AAAA,QACR,OAAO,CAAC,CAAC,KAAK,MAAM;AAAA,MACtB,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,YAAY;AACzB,aAAO,aAAa,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QACjD,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,WAAW,WAAW;AAAA,MAC1C,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,MAAM,YAAY;AACzB,aAAO,aAAa,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QACjD,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,WAAW,WAAW;AAAA,MAC1C,CAAC;AAAA,IACH;AAEA,WAAO,wBAAAA,QAAM,qBAAqB,OAAO,MAAM;AAAA,EACjD;AACF;;;ACtIA,IAAAC,0BAAkB;AAKX,IAAM,kBAAN,cAA8B,gBAAgB;AAAA,EAGnD,YAAY,OAAwB;AAClC,UAAM;AAEN,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAAyB;AAC9B,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,iBAAiB,wBAAAA,QAAM,qBAAqB,OAAO;AAAA,QACjD,OAAO,KAAK,MAAM,WAAW;AAAA,MAC/B,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;;;ACrBA,IAAAC,0BAAkB;AAEX,IAAM,OAAN,MAAW;AAAA,EAGhB,YAAY,MAAc;AACxB,SAAK,OAAO;AAAA,EACd;AAAA,EAEO,aAA8B;AACnC,WAAO,wBAAAC,QAAM,UAAU,OAAO;AAAA,MAC5B,MAAM,KAAK;AAAA;AAAA,MAEX,IAAI;AAAA,IACN,CAAC;AAAA,EACH;AACF;AAEO,IAAM,gBAAgB;AAAA,EAC3B,WAAW,IAAI,KAAK,WAAW;AACjC;;;APKO,IAAM,WAAN,cAAuB,sBAA0C;AAAA,EAGtE,YAAY,SAAmB,OAA4B;AACzD,UAAM,SAAS,KAAK;AAHtB,4BAAoD,CAAC;AAKnD,QAAI,UAAU,QAAW;AACvB,WAAK,QAAQ;AAAA,QACX,gBAAgB,gBAAgB;AAAA,QAChC,kBAAkB,kBAAkB,GAAG;AAAA,QACvC,eAAe,IAAI;AAAA,UACjB,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,IAAI,CAAC;AAAA,QACnD;AAAA,QACA,eAAe,IAAI;AAAA,UACjB,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,IAAI,CAAC;AAAA,QACnD;AAAA,MACF;AAAA,IACF,OAAO;AACL,WAAK,QAAQ;AAAA,IACf;AAEA,SAAK,mBAAmB,KAAK,MAAM,oBAAoB;AAAA,MACrD,MAAM,IAAI,gBAAgB;AAAA,QACxB,MAAM,cAAc;AAAA,QACpB,UAAU,IAAI,gBAAgB,IAAI,IAAI;AAAA,QACtC,UAAU,IAAI,gBAAgB,IAAI,IAAI;AAAA,QACtC,gBAAgB,IAAI,gBAAgB,IAAI,IAAI;AAAA,QAC5C,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,mBAAmB,MAA2C;AAC5D,WAAO,KAAK,iBAAiB,IAAI;AAAA,EACnC;AAAA,EAEA,wBAAwB,MAAc,IAAqB;AACzD,SAAK,iBAAiB,IAAI,IAAI;AAAA,EAChC;AAAA,EAEA,UACE,cACA,cACe;AACf,WAAO,kBAAkB,UAAU,cAAc,MAAM,YAAY;AAAA,EACrE;AAAA,EAEA,aAAa,cAAmD;AAC9D,WAAO,kBAAkB,2BAA4B,MAAM,YAAY;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBO,aAAyB;AAC9B,UAAM,QAAQ,KAAK;AAEnB,UAAM,cAAc,OAAO,OAAO,KAAK,gBAAgB,EACpD;AAAA,MAAI,CAAC,OACJ,wBAAAC,QAAM,KAAK,OAAO;AAAA,QAChB,iBAAiB,GAAG,WAAW;AAAA,MACjC,CAAC;AAAA,IACH,EACC,OAAO;AAAA,MACN,wBAAAA,QAAM,KAAK,OAAO;AAAA,QAChB,MAAM,MAAM,eAAe,WAAW;AAAA,MACxC,CAAC;AAAA,MACD,wBAAAA,QAAM,KAAK,OAAO;AAAA,QAChB,WAAW,wBAAAA,QAAM,oBAAoB,OAAO;AAAA,UAC1C,UAAU,MAAM,eAAe;AAAA,QACjC,CAAC;AAAA,MACH,CAAC;AAAA,MACD,GAAG,MAAM,iBAAiB,WAAW,IAAI;AAAA,IAC3C,CAAC;AAEH,QAAI,MAAM,eAAe;AACvB,kBAAY,KAAK,MAAM,cAAc,WAAW,CAAC;AAAA,IACnD;AAEA,QAAI,MAAM,eAAe;AACvB,kBAAY,KAAK,MAAM,cAAc,WAAW,CAAC;AAAA,IACnD;AAEA,UAAM,UAAU,KAAK,mBAAmB;AAExC,eAAW,UAAU,OAAO,OAAO,KAAK,gBAAgB,GAAG;AACzD,kBAAY;AAAA,QACV,wBAAAA,QAAM,KAAK,OAAO;AAAA,UAChB,iBAAiB,OAAO,WAAW;AAAA,QACrC,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,UAAU,YAAY,OAAO,GAAG,OAAO;AAAA,IACzC,CAAC;AAAA,EACH;AACF;;;AQ1IA,IAAAC,0BAAkB;AAIX,IAAM,YAAN,cAAwB,gBAAgB;AAAA,EAC7C,YAAY,gBAAoC,aAAsB;AACpE,UAAM;AACN,SAAK,UAAU;AAAA,MACb,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EAOO,aAAyB;AAC9B,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,WAAW,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACrC,gBAAgB,KAAK,QAAQ;AAAA,QAC7B,aAAa,KAAK,QAAQ;AAAA,MAC5B,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;;;AC1BA,IAAAC,0BAAkB;AAWlB,SAAS,yBACP,MAC2B;AAC3B,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,wBAAAC,QAAM,oBAAoB;AAAA,IACnC,KAAK;AACH,aAAO,wBAAAA,QAAM,oBAAoB;AAAA,IACnC,KAAK;AACH,aAAO,wBAAAA,QAAM,oBAAoB;AAAA,IACnC;AACE,YAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAAA,EACvD;AACF;AAuDO,IAAM,QAAN,cAAoB,gBAAgB;AAAA,EAGzC,YAAY,OAAwB;AAClC,UAAM;AACN,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAAyB;AAC9B,UAAM,IAAI,KAAK;AAEf,UAAM,QAA2B;AAAA,MAC/B,KAAK,EAAE;AAAA,MACP,MAAM,EAAE;AAAA,MACR,KAAK,EAAE;AAAA,MACP,UAAU,EAAE;AAAA,MACZ,UAAU,EAAE;AAAA,MACZ,WAAW,EAAE;AAAA,MACb,MAAM,EAAE;AAAA,MACR,cAAc,EAAE;AAAA,IAClB;AAEA,QAAI,EAAE,UAAU,QAAW;AACzB,YAAM,QAAQ,wBAAAA,QAAM,iBAAiB,OAAO;AAAA,QAC1C,QAAQ;AAAA,QACR,OAAO,EAAE;AAAA,MACX,CAAC;AAAA,IACH;AAEA,QAAI,EAAE,gBAAgB,QAAW;AAC/B,YAAM,cAAc,wBAAAA,QAAM,iBAAiB,OAAO;AAAA,QAChD,QAAQ;AAAA,QACR,OAAO,EAAE;AAAA,MACX,CAAC;AAAA,IACH;AAEA,QAAI,EAAE,OAAO;AACX,YAAM,QAAQ,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QAC3C,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,WAAW;AAAA,MAC5B,CAAC;AAAA,IACH;AAEA,QAAI,EAAE,QAAQ;AACZ,YAAM,SAAS,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QAC5C,QAAQ;AAAA,QACR,OAAO,EAAE,OAAO,WAAW;AAAA,MAC7B,CAAC;AAAA,IACH;AAEA,QAAI,EAAE,GAAG;AACP,YAAM,IAAI,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QACvC,QAAQ;AAAA,QACR,OAAO,EAAE,EAAE,WAAW;AAAA,MACxB,CAAC;AAAA,IACH;AAEA,QAAI,EAAE,GAAG;AACP,YAAM,IAAI,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QACvC,QAAQ;AAAA,QACR,OAAO,EAAE,EAAE,WAAW;AAAA,MACxB,CAAC;AAAA,IACH;AAEA,QAAI,EAAE,qBAAqB,QAAW;AACpC,YAAM,mBAAmB,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACnD,QAAQ;AAAA,QACR,OAAO,EAAE;AAAA,MACX,CAAC;AAAA,IACH;AAEA,QAAI,EAAE,MAAM;AACV,YAAM,eAAe,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QAClD,GAAG,EAAE,KAAK;AAAA,QACV,GAAG,EAAE,KAAK;AAAA,MACZ,CAAC;AAAA,IACH;AAEA,QAAI,EAAE,MAAM;AACV,YAAM,eAAyC,CAAC;AAChD,UAAI,EAAE,KAAK,GAAG;AACZ,qBAAa,IAAI,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,UAC9C,QAAQ;AAAA,UACR,OAAO,EAAE,KAAK,EAAE,WAAW;AAAA,QAC7B,CAAC;AAAA,MACH;AACA,UAAI,EAAE,KAAK,GAAG;AACZ,qBAAa,IAAI,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,UAC9C,QAAQ;AAAA,UACR,OAAO,EAAE,KAAK,EAAE,WAAW;AAAA,QAC7B,CAAC;AAAA,MACH;AACA,UAAI,EAAE,KAAK,OAAO;AAChB,qBAAa,QAAQ,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,UAClD,QAAQ;AAAA,UACR,OAAO,EAAE,KAAK,MAAM,WAAW;AAAA,QACjC,CAAC;AAAA,MACH;AACA,UAAI,EAAE,KAAK,QAAQ;AACjB,qBAAa,SAAS,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,UACnD,QAAQ;AAAA,UACR,OAAO,EAAE,KAAK,OAAO,WAAW;AAAA,QAClC,CAAC;AAAA,MACH;AACA,YAAM,eAAe,wBAAAA,QAAM,kBAAkB,OAAO,YAAY;AAAA,IAClE;AAEA,QAAI,EAAE,gBAAgB;AACpB,YAAM,iBAAiB,yBAAyB,EAAE,cAAc;AAAA,IAClE;AAEA,QAAI,EAAE,WAAW;AACf,YAAM,YAAY,yBAAyB,EAAE,SAAS;AAAA,IACxD;AAEA,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,OAAO,wBAAAA,QAAM,WAAW,OAAO,KAAK;AAAA,IACtC,CAAC;AAAA,EACH;AACF;;;ACtMA,IAAAC,0BAAkB;AAeX,IAAM,cAAN,cAA0B,sBAA6C;AAAA,EAC5E,YAAY,SAAmB,OAA+B;AAC5D,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AApBlC;AAqBI,UAAM,SAAkC;AAAA,MACtC,OAAM,UAAK,UAAL,mBAAY;AAAA,IACpB;AAEA,SAAI,UAAK,UAAL,mBAAY,MAAM;AACpB,aAAO,OAAO,wBAAAC,QAAM,kBAAkB,OAAO;AAAA,QAC3C,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,KAAK,WAAW;AAAA,MACpC,CAAC;AAAA,IACH;AAEA,SAAI,UAAK,UAAL,mBAAY,OAAO;AACrB,aAAO,QAAQ,wBAAAA,QAAM,kBAAkB,OAAO;AAAA,QAC5C,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM,MAAM,WAAW;AAAA,MACrC,CAAC;AAAA,IACH;AAEA,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,aAAa,wBAAAA,QAAM,iBAAiB,OAAO,MAAM;AAAA,MACjD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;AC5CA,IAAAC,0BAAkB;AAIX,IAAM,YAAN,cAAwB,gBAAgB;AAAA,EACtC,aAAyB;AAC9B,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,WAAW,wBAAAA,QAAM,eAAe,OAAO,CAAC,CAAC;AAAA,IAC3C,CAAC;AAAA,EACH;AACF;;;ACVA,IAAAC,0BAAkB;AAUX,IAAM,OAAN,cAAmB,sBAAsC;AAAA,EAC9D,YAAY,SAAmB,KAAc;AAC3C,UAAM,SAAS,MAAM,EAAE,IAAI,IAAI,MAAS;AAAA,EAC1C;AAAA,EAEO,aAAyB;AAflC;AAgBI,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,MAAM,wBAAAA,QAAM,UAAU,OAAO;AAAA,QAC3B,MAAK,UAAK,UAAL,mBAAY;AAAA,MACnB,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACvBA,IAAAC,0BAAkB;AAYX,IAAM,OAAN,cAAmB,sBAAsC;AAAA,EAC9D,YAAY,SAAmB,OAAwB;AACrD,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AAjBlC;AAkBI,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,MAAM,wBAAAA,QAAM,UAAU,OAAO;AAAA,QAC3B,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,OAAM,UAAK,UAAL,mBAAY;AAAA,MACpB,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;AC1BA,IAAAC,0BAAkB;AAcX,IAAM,YAAN,cAAwB,sBAA2C;AAAA,EACxE,YAAY,SAAmB,OAA6B;AAC1D,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AAnBlC;AAoBI,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,WAAW,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACrC,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,QAAO,UAAK,UAAL,mBAAY;AAAA,QACnB,OAAM,UAAK,UAAL,mBAAY;AAAA,MACpB,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;AC7BA,IAAAC,0BAAkB;AAIX,IAAM,YAAN,cAAwB,gBAAgB;AAAA,EACtC,aAAyB;AAC9B,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,SAAS,wBAAAA,QAAM,aAAa,OAAO,CAAC,CAAC;AAAA,IACvC,CAAC;AAAA,EACH;AACF;;;ACVA,IAAAC,0BAAkB;AAYX,IAAM,gBAAN,cAA4B,sBAA+C;AAAA,EAChF,YAAY,SAAmB,OAAiC;AAC9D,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AAjBlC;AAkBI,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,eAAe,wBAAAA,QAAM,mBAAmB,OAAO;AAAA,QAC7C,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,OAAM,UAAK,UAAL,mBAAY;AAAA,MACpB,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACxBA,IAAAC,0BAAkB;AASX,IAAM,YAAN,cAAwB,sBAAyC;AAAA,EACtE,YACE,SACA,qBACA,WACA;AAhBJ;AAiBI,UAAM,SAAS;AAAA,MACb;AAAA,MACA,qBACE,OAAO,wBAAwB,WAC3B,uBACA,gEAAqB,UAArB,mBAA4B;AAAA,IACpC,CAAC;AAAA,EACH;AAAA,EAEO,aAAyB;AAC9B,UAAM,MAAM,CAAC;AAEb,QAAI,KAAK,MAAO,WAAW;AACzB,UAAI,YAAY,KAAK,MAAO,UAAU,WAAW;AAAA,IACnD;AAEA,QAAI,KAAK,MAAO,qBAAqB;AACnC,UAAI,SAAS,wBAAAC,QAAM,qBAAqB,OAAO;AAAA,QAC7C,MAAM,wBAAAA,QAAM,iBAAiB,OAAO;AAAA,UAClC,QAAQ;AAAA,UACR,OAAO,KAAK,MAAO;AAAA,QACrB,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,WAAW,wBAAAA,QAAM,eAAe,OAAO,GAAG;AAAA,MAC1C,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;AC/CA,IAAAC,0BAAkB;AAoBlB,SAAS,oBAAoB,OAAwC;AACnE,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,wBAAAC,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B,KAAK;AACH,aAAO,wBAAAA,QAAM,eAAe;AAAA,IAC9B;AACE,YAAM,IAAI,MAAM,uBAAuB,KAAK,EAAE;AAAA,EAClD;AACF;AAIA,SAAS,mBAAmB,MAAqC;AAC/D,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,wBAAAA,QAAM,cAAc;AAAA,IAC7B,KAAK;AACH,aAAO,wBAAAA,QAAM,cAAc;AAAA,IAC7B;AACE,YAAM,IAAI,MAAM,sBAAsB,IAAI,EAAE;AAAA,EAChD;AACF;AA4BO,IAAM,OAAN,cAAmB,gBAAgB;AAAA,EAGxC,YAAY,OAAuB;AACjC,UAAM;AACN,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAAyB;AAlGlC;AAmGI,UAAM,OAAyB;AAAA,MAC7B,UAAS,UAAK,MAAM,YAAX,mBAAoB;AAAA,MAC7B,UAAS,UAAK,MAAM,YAAX,mBAAoB;AAAA,MAC7B,QAAO,UAAK,MAAM,UAAX,mBAAkB;AAAA,MACzB,YAAW,UAAK,MAAM,cAAX,mBAAsB;AAAA,MACjC,UAAU,KAAK,MAAM;AAAA,MACrB,QAAO,UAAK,MAAM,UAAX,mBAAkB;AAAA,IAC3B;AAEA,QAAI,KAAK,MAAM,OAAO;AACpB,WAAK,QAAQ,oBAAoB,KAAK,MAAM,KAAK;AAAA,IACnD;AAEA,QAAI,KAAK,MAAM,MAAM;AACnB,WAAK,OAAO,mBAAmB,KAAK,MAAM,IAAI;AAAA,IAChD;AAEA,QAAI,KAAK,MAAM,YAAY;AACzB,WAAK,aAAa,wBAAAA,QAAM,oBAAoB,OAAO;AAAA,QACjD,QAAO,UAAK,MAAM,WAAW,UAAtB,mBAA6B;AAAA,QACpC,MAAK,UAAK,MAAM,WAAW,QAAtB,mBAA2B;AAAA,MAClC,CAAC;AAAA,IACH;AAEA,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,MAAM,wBAAAA,QAAM,UAAU,OAAO,IAAI;AAAA,IACnC,CAAC;AAAA,EACH;AACF;;;AC/HA,IAAAC,0BAAkB;AAWX,IAAM,UAAN,cAAsB,sBAAyC;AAAA,EACpE,YAAY,SAAmB,OAA2B;AACxD,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AAhBlC;AAiBI,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,SAAS,wBAAAA,QAAM,aAAa,OAAO;AAAA,QACjC,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,WAAU,UAAK,UAAL,mBAAY;AAAA,MACxB,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACzBA,IAAAC,0BAAkB;AAoBX,IAAM,YAAN,cAAwB,sBAA2C;AAAA,EACxE,YAAY,SAAmB,OAA6B;AAC1D,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AAzBlC;AA0BI,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,WAAW,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACrC,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,eAAc,UAAK,UAAL,mBAAY;AAAA,QAC1B,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,QAAO,UAAK,UAAL,mBAAY;AAAA,QACnB,MAAK,UAAK,UAAL,mBAAY;AAAA,QACjB,MAAK,UAAK,UAAL,mBAAY;AAAA,MACnB,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACtCA,IAAAC,0BAAkB;AAgBX,IAAM,iBAAN,cAA6B,sBAAgD;AAAA,EAClF,YAAY,SAAmB,OAAkC;AAC/D,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AArBlC;AAsBI,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,gBAAgB,wBAAAA,QAAM,oBAAoB,OAAO;AAAA,QAC/C,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,eAAc,UAAK,UAAL,mBAAY;AAAA,QAC1B,OAAM,UAAK,UAAL,mBAAY;AAAA,QAClB,WAAU,UAAK,UAAL,mBAAY;AAAA,MACxB,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;AChCA,IAAAC,0BAAkB;AAgBX,IAAM,OAAN,cAAmB,sBAAsC;AAAA,EAC9D,YAAY,SAAmB,OAAwB;AACrD,UAAM,SAAS,SAAS,CAAC,CAAC;AAAA,EAC5B;AAAA,EAEO,aAAyB;AArBlC;AAsBI,QAAI,OAAyC;AAC7C,UAAI,UAAK,UAAL,mBAAY,UAAS,QAAW;AAClC,aAAO,wBAAAC,QAAM,eAAe,OAAO;AAAA,QACjC,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,QAAI,SAA2C;AAC/C,UAAI,UAAK,UAAL,mBAAY,YAAW,QAAW;AACpC,eAAS,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACnC,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,QAAI,YAA8C;AAClD,UAAI,UAAK,UAAL,mBAAY,eAAc,QAAW;AACvC,kBAAY,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACtC,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,QAAI,gBAAkD;AACtD,UAAI,UAAK,UAAL,mBAAY,mBAAkB,QAAW;AAC3C,sBAAgB,wBAAAA,QAAM,eAAe,OAAO;AAAA,QAC1C,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,QAAI,YAA8C;AAClD,UAAI,UAAK,UAAL,mBAAY,eAAc,QAAW;AACvC,kBAAY,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACtC,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,QAAI,cAAgD;AACpD,UAAI,UAAK,UAAL,mBAAY,iBAAgB,QAAW;AACzC,oBAAc,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACxC,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,MAAM,wBAAAA,QAAM,UAAU,OAAO;AAAA,QAC3B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAO,gBAAK,UAAL,mBAAY,UAAZ,mBAAmB;AAAA,QAC1B;AAAA,QACA;AAAA,MACF,CAAC;AAAA,MAED,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACpFA,IAAAC,0BAAkB;AAQlB,SAAS,2BACP,KAC6B;AAC7B,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,aAAO,wBAAAC,QAAM,sBAAsB;AAAA,IACrC,KAAK;AACH,aAAO,wBAAAA,QAAM,sBAAsB;AAAA,IACrC;AACE,YAAM,IAAI,MAAM,+BAA+B,GAAG,EAAE;AAAA,EACxD;AACF;AAWO,IAAM,WAAN,cAAuB,sBAA0C;AAAA,EACtE,YAAY,SAAmB,OAA4B;AACzD,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AAnClC;AAoCI,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,UAAU,wBAAAA,QAAM,cAAc,OAAO;AAAA,QACnC,iBAAgB,UAAK,UAAL,mBAAY;AAAA,QAC5B,YAAU,UAAK,UAAL,mBAAY,YAClB,2BAA2B,KAAK,MAAM,QAAQ,IAC9C;AAAA,QACJ,SAAQ,gBAAK,UAAL,mBAAY,WAAZ,mBAAoB;AAAA,MAC9B,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;AC/CA,IAAAC,0BAAkB;AAaX,IAAM,QAAN,cAAoB,sBAAqC;AAAA,EAC9D,YAAY,SAAmB,OAAuB;AACpD,UAAM,SAAS,SAAS,CAAC,CAAC;AAC1B,QAAI,CAAC,KAAK,MAAO,SAAS;AACxB,WAAK,MAAO,UAAU,QAAQ;AAAA,IAChC;AAAA,EACF;AAAA,EAEO,aAAyB;AArBlC;AAsBI,UAAM,QAAQ,KAAK;AAEnB,UAAM,WAAsC;AAAA,MAC1C,QAAO,WAAM,UAAN,mBAAa;AAAA,MACpB,UAAS,WAAM,YAAN,mBAAe;AAAA,MACxB,aAAa,wBAAAC,QAAM,eAAe,OAAO;AAAA,QACvC,QAAQ;AAAA,QACR,OAAO,MAAM,eAAe;AAAA,MAC9B,CAAC;AAAA,IACH;AAEA,QAAI,MAAM,iBAAiB,QAAW;AACpC,eAAS,eAAe,wBAAAA,QAAM,iBAAiB,OAAO;AAAA,QACpD,QAAQ;AAAA,QACR,OAAO,MAAM;AAAA,MACf,CAAC;AAAA,IACH;AAEA,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,OAAO,wBAAAA,QAAM,WAAW,OAAO;AAAA,QAC7B,UAAU,wBAAAA,QAAM,mBAAmB,OAAO,QAAQ;AAAA,MACpD,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;AC/CA,IAAAC,0BAAkB;AAqBX,IAAM,YAAN,cAAwB,sBAA2C;AAAA,EACxE,YAAY,SAAmB,OAA6B;AAC1D,UAAM,SAAS,SAAS,CAAC,CAAC;AAAA,EAC5B;AAAA,EAEO,aAAyB;AA1BlC;AA2BI,UAAM,QAAQ,KAAK;AAEnB,UAAM,WAA0C;AAAA,MAC9C,OAAO,wBAAAC,QAAM,8BAA8B,OAAO;AAAA,QAChD,QAAQ;AAAA,QACR,SACE,WAAO,cAAP,mBAAkB,iBAClB,wBAAAA,QAAM,yBAAyB;AAAA,MACnC,CAAC;AAAA,MACD,kBAAiB,WAAM,oBAAN,mBAAuB;AAAA,MACxC,SAAQ,WAAM,WAAN,mBAAc;AAAA,MACtB,SAAQ,WAAM,WAAN,mBAAc;AAAA,MACtB,UAAS,WAAM,YAAN,mBAAe;AAAA,MACxB,QAAQ,wBAAAA,QAAM,4BAA4B,OAAO;AAAA,QAC/C,QAAQ;AAAA,QACR,SACE,WAAM,sBAAN,mBAAyB,iBACzB,wBAAAA,QAAM,uBAAuB;AAAA,MACjC,CAAC;AAAA,MACD,QAAO,WAAM,UAAN,mBAAa;AAAA,IACtB;AAEA,QAAI,MAAM,aAAa,QAAW;AAChC,eAAS,WAAW,wBAAAA,QAAM,iBAAiB,OAAO;AAAA,QAChD,QAAQ;AAAA,QACR,OAAO,MAAM;AAAA,MACf,CAAC;AAAA,IACH;AAEA,QAAI,MAAM,2BAA2B,QAAW;AAC9C,eAAS,yBAAyB,wBAAAA,QAAM,iBAAiB,OAAO;AAAA,QAC9D,QAAQ;AAAA,QACR,OAAO,MAAM;AAAA,MACf,CAAC;AAAA,IACH;AAEA,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,WAAW,wBAAAA,QAAM,eAAe,OAAO;AAAA,QACrC,UAAU,wBAAAA,QAAM,uBAAuB,OAAO,QAAQ;AAAA,MACxD,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACtEA,IAAAC,0BAAkB;AAUX,IAAM,oBAAN,cAAgC,sBAAmD;AAAA,EACxF,YAAY,SAAmB,OAAqC;AAClE,UAAM,SAAS,KAAK;AAAA,EACtB;AAAA,EAEO,aAAyB;AAflC;AAgBI,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,mBAAmB,wBAAAA,QAAM,uBAAuB,OAAO;AAAA,QACrD,OAAM,UAAK,UAAL,mBAAY;AAAA,MACpB,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACvBA,IAAAC,0BAAkB;AAUX,IAAM,WAAN,cAAuB,sBAA0C;AAAA,EACtE,YAAY,SAAmB,OAA4B;AACzD,UAAM,SAAS,SAAS,CAAC,CAAC;AAAA,EAC5B;AAAA,EAEO,aAAyB;AAflC;AAgBI,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,UAAU,wBAAAA,QAAM,cAAc,OAAO;AAAA,QACnC,UAAU,wBAAAA,QAAM,sBAAsB,OAAO;AAAA,UAC3C,YAAW,UAAK,MAAO,cAAZ,mBAAuB;AAAA,QACpC,CAAC;AAAA,MACH,CAAC;AAAA,MACD,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACzBA,IAAAC,0BAAkB;AAiBX,IAAM,MAAN,cAAkB,gBAAgB;AAAA,EAGvC,YAAY,OAAsB;AAChC,UAAM;AACN,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAAyB;AAC9B,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,KAAK,wBAAAA,QAAM,SAAS,OAAO;AAAA,QACzB,MAAM,KAAK,MAAM;AAAA,QACjB,MAAM,KAAK,MAAM;AAAA,QACjB,QAAQ,KAAK,MAAM;AAAA,QACnB,UAAU,KAAK,MAAM;AAAA,QACrB,UAAU,KAAK,MAAM;AAAA,MACvB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;;;ACpCA,IAAAC,0BAAkB;AAelB,SAAS,sBACP,MACgC;AAChC,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,wBAAAC,QAAM,yBAAyB;AAAA,IACxC,KAAK;AACH,aAAO,wBAAAA,QAAM,yBAAyB;AAAA,IACxC,KAAK;AACH,aAAO,wBAAAA,QAAM,yBAAyB;AAAA,IACxC,KAAK;AACH,aAAO,wBAAAA,QAAM,yBAAyB;AAAA,IACxC,KAAK;AACH,aAAO,wBAAAA,QAAM,yBAAyB;AAAA,IACxC,KAAK;AACH,aAAO,wBAAAA,QAAM,yBAAyB;AAAA,IACxC,KAAK;AACH,aAAO,wBAAAA,QAAM,yBAAyB;AAAA,IACxC,KAAK;AACH,aAAO,wBAAAA,QAAM,yBAAyB;AAAA,IACxC,KAAK;AACH,aAAO,wBAAAA,QAAM,yBAAyB;AAAA,IACxC;AACE,YAAM,IAAI,MAAM,kCAAkC,IAAI,EAAE;AAAA,EAC5D;AACF;AAeO,IAAM,WAAN,cAAuB,gBAAgB;AAAA,EAG5C,YAAY,OAA2B;AACrC,UAAM;AACN,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,aAAyB;AAC9B,WAAO,wBAAAA,QAAM,KAAK,OAAO;AAAA,MACvB,UAAU,wBAAAA,QAAM,cAAc,OAAO;AAAA,QACnC,MAAM,KAAK,MAAM;AAAA,QACjB,SAAS,KAAK,MAAM;AAAA,QACpB,YAAY,KAAK,MAAM;AAAA,QACvB,aAAa,KAAK,MAAM,cACpB,sBAAsB,KAAK,MAAM,WAAW,IAC5C;AAAA,QACJ,MAAM,KAAK,MAAM;AAAA,MACnB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;;;AC5EA,IAAAC,0BAAkB;AASX,IAAM,SAAN,cAAqB,sBAAsB;AAAA,EAChD,YAAY,SAAmB;AAC7B,UAAM,OAAO;AAAA,EACf;AAAA,EAEO,aAAyB;AAC9B,WAAO,wBAAAC,QAAM,KAAK,OAAO;AAAA,MACvB,QAAQ,wBAAAA,QAAM,YAAY,OAAO,CAAC,CAAC;AAAA,MACnC,UAAU,KAAK,mBAAmB;AAAA,IACpC,CAAC;AAAA,EACH;AACF;;;ACiBA,IAAO,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AjDjEA,IAAO,gBAAQ;AAAA,EACb;AAAA,EACA,QAAQ;AAAA,IACN;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":["Alignment","Proto","import_docframe_types","Proto","import_docframe_types","Proto","Colors","import_docframe_types","dotenv","Proto","FormData","axios","import_docframe_types","import_docframe_types","Proto","Proto","import_docframe_types","Proto","import_docframe_types","import_docframe_types","Proto","import_docframe_types","Proto","Proto","import_docframe_types","Proto","import_docframe_types","ColumnPosition","Proto","uuidv4","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","OutputFormat","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","import_uuid","Proto","PageDefinitions","import_docframe_types","import_uuid","uuidv4","Proto","import_docframe_types","Proto","import_docframe_types","Proto","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/Alignment/index.ts","../src/Border/index.ts","../src/Color/index.ts","../src/Connection/index.ts","../src/Content/AdjustHorizontally/index.ts","../src/Content/DocumentElement/index.ts","../src/Content/Text/index.ts","../src/Content/BranchDocumentElement/index.ts","../src/Content/AdvancedIllustrationArea/index.ts","../src/Content/Barcode/index.ts","../src/Measure/index.ts","../src/Measure/Measure.ts","../src/Content/ReferencePoint/index.ts","../src/Content/CarryOver/index.ts","../src/Content/ColumnDefinition/index.ts","../src/Content/Condition/index.ts","../src/Content/Directory/index.ts","../src/Content/Document/index.ts","../src/OutputFormat/index.ts","../src/Content/Footer/index.ts","../src/Content/Header/index.ts","../src/Content/PageDefinition/index.ts","../src/ParagraphFormat/index.ts","../src/Content/SpaceVertically/index.ts","../src/Font/index.ts","../src/Content/Formatted/index.ts","../src/Content/Image/index.ts","../src/Content/Indentation/index.ts","../src/Content/Linebreak/index.ts","../src/Content/Link/index.ts","../src/Content/Loop/index.ts","../src/Content/LoopEntry/index.ts","../src/Content/Pagebreak/index.ts","../src/Content/PageCondition/index.ts","../src/Content/Paragraph/index.ts","../src/Content/Rule/index.ts","../src/Content/Section/index.ts","../src/Content/Selection/index.ts","../src/Content/SelectionEntry/index.ts","../src/Content/Span/index.ts","../src/Content/SubTotal/index.ts","../src/Content/Table/index.ts","../src/Content/TableCell/index.ts","../src/Content/TableContentGroup/index.ts","../src/Content/TableRow/index.ts","../src/Content/Tag/index.ts","../src/Content/Variable/index.ts","../src/Content/WsArea/index.ts","../src/Content/index.ts"],"sourcesContent":["import { Alignment } from \"./Alignment\";\nimport { Border, SideBorders } from \"./Border\";\nimport { Color, Colors } from \"./Color\";\nimport { Connection } from \"./Connection\";\nimport Content from \"./Content\";\nimport { Font, StandardFonts } from \"./Font\";\nimport * as Measure from \"./Measure\";\nimport * as Output from \"./OutputFormat\";\nimport { ParagraphFormat } from \"./ParagraphFormat\";\n\nexport default {\n Alignment,\n Border: {\n Border,\n SideBorders,\n },\n Color: {\n Color,\n Colors,\n },\n Connection,\n Content,\n Font: {\n Font,\n StandardFonts,\n },\n Measure,\n Output,\n ParagraphFormat,\n};\n","import Proto from \"docframe-types\";\n\nexport class HorizontalAlignment {\n public readonly value: Proto.ProtoHorizontalAlignment;\n\n constructor(value: Proto.ProtoHorizontalAlignment) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoHorizontalAlignment {\n return this.value;\n }\n}\n\nexport class VerticalAlignment {\n public readonly value: Proto.ProtoVerticalAlignment;\n\n constructor(value: Proto.ProtoVerticalAlignment) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoVerticalAlignment {\n return this.value;\n }\n}\n\nexport namespace Alignment {\n export const Horizontal = {\n Left: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_LEFT),\n Center: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_CENTER),\n Right: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_RIGHT),\n Justify: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_JUSTIFY),\n FullJustify: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_FULL_JUSTIFY),\n };\n\n export const Vertical = {\n Top: new VerticalAlignment(Proto.ProtoVerticalAlignment.TOP),\n Middle: new VerticalAlignment(Proto.ProtoVerticalAlignment.MIDDLE),\n Bottom: new VerticalAlignment(Proto.ProtoVerticalAlignment.BOTTOM),\n };\n}\n\n","import Proto from \"docframe-types\";\nimport { Color } from \"~/Color\";\nimport { AbsoluteMeasure, Sides } from \"~/Measure\";\n\nexport class Border {\n width: AbsoluteMeasure;\n color: Color;\n\n constructor(width: AbsoluteMeasure, color: Color) {\n this.width = width;\n this.color = color;\n }\n\n public toDocFrame(): Proto.ProtoBorder {\n return new Proto.ProtoBorder({\n weight: this.width.toDocFrame(),\n color: this.color.toDocFrame(),\n });\n }\n}\n\nexport class SideBorders {\n value: Sides<Border>;\n\n constructor(settings: Sides<Border>) {\n this.value = settings;\n }\n\n public toDocFrame(): Proto.ProtoSideBorders {\n return new Proto.ProtoSideBorders({\n top: this.value.top?.toDocFrame(),\n right: this.value.right?.toDocFrame(),\n bottom: this.value.bottom?.toDocFrame(),\n left: this.value.left?.toDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport class Color {\n private color: Proto.ProtoColor;\n\n static rgb(r: number, g: number, b: number): Color {\n if (r < 0 || r > 255) {\n throw new Error(`Invalid red value: ${r}`);\n }\n\n if (g < 0 || g > 255) {\n throw new Error(`Invalid green value: ${g}`);\n }\n\n if (b < 0 || b > 255) {\n throw new Error(`Invalid blue value: ${b}`);\n }\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.RGB,\n r,\n g,\n b,\n }));\n }\n\n static cmyk(c: number, m: number, y: number, k: number): Color {\n if (c < 0 || c > 100) {\n throw new Error(`Invalid cyan value: ${c}`);\n }\n\n if (m < 0 || m > 100) {\n throw new Error(`Invalid magenta value: ${m}`);\n }\n\n if (y < 0 || y > 100) {\n throw new Error(`Invalid yellow value: ${y}`);\n }\n\n if (k < 0 || k > 100) {\n throw new Error(`Invalid black value: ${k}`);\n }\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.CMYK,\n c,\n m,\n y,\n k,\n }));\n }\n\n static fromHex(hex: string): Color {\n if (hex.startsWith(\"#\")) {\n hex = hex.slice(1);\n }\n\n if (hex.length !== 6) {\n throw new Error(`Invalid hex color: ${hex}`);\n }\n\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const b = parseInt(hex.slice(4, 6), 16);\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.RGB,\n r,\n g,\n b,\n }));\n }\n\n private constructor(color: Proto.ProtoColor) {\n this.color = color;\n }\n\n\n public toDocFrame(): Proto.ProtoColor {\n return this.color;\n }\n}\n\nexport namespace Colors {\n export const white = Color.rgb(255, 255, 255);\n\n export const black = Color.cmyk(0, 0, 0, 100);\n}\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport dotenv from \"dotenv\";\n\nimport Proto from \"docframe-types\";\n\nimport { Document } from \"content/Document\";\nimport { OutputParams } from \"~/OutputFormat\";\n\n// Load environment variables from .env file\ndotenv.config();\n\nexport class Connection {\n url: string;\n token: string;\n\n constructor(url?: string, token?: string) {\n this.url = url || process.env.DOCPIPE_URL || \"http://localhost:8080\";\n this.token = token || process.env.DOCPIPE_TOKEN || \"\";\n }\n\n get docframeCallUrl() {\n return `${this.url}/api/docframe?token=${this.token}`;\n }\n\n convertTo<K extends keyof OutputParams>(\n format: K,\n doc: Document,\n outputParams?: OutputParams[K],\n jobParams?: Record<string, any>,\n ): Promise<Blob> {\n const node = doc.toDocFrame();\n\n const protoData = Proto.Node.encode(node).finish();\n\n const form = new FormData();\n\n let meta = {\n format,\n };\n\n if (outputParams) {\n meta = {\n ...meta,\n ...outputParams,\n };\n }\n\n if (jobParams) {\n meta = {\n ...meta,\n ...jobParams,\n };\n }\n\n form.append(\"meta\", JSON.stringify(meta), {\n contentType: \"application/json\",\n filename: \"meta\",\n });\n\n form.append(\"proto-data\", protoData, {\n contentType: \"application/protobuf\",\n filename: \"data.proto\",\n });\n\n return new Promise((resolve, reject) => {\n axios\n .postForm(this.docframeCallUrl, form, {\n headers: {\n ...form.getHeaders(),\n },\n responseType: \"arraybuffer\",\n })\n .then(async (res) => {\n const blob = await new Response(res.data, {\n headers: {\n \"Content-Type\": res.headers[\"content-type\"],\n },\n }).blob();\n\n resolve(blob);\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n}\n\nexport const defaultConnection = new Connection();\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface AdjustHorizontallyProperties {\n /** Minimum font size for horizontal adjustment */\n minFontSize?: Measure;\n /** Maximum font size for horizontal adjustment */\n maxFontSize?: Measure;\n}\n\nexport class AdjustHorizontally extends BranchDocumentElement<AdjustHorizontallyProperties> {\n constructor(content?: Content, props?: AdjustHorizontallyProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n adjustHorizontally: Proto.ProtoAdjustHorizontally.create({\n minFontSize: this.props?.minFontSize?.toDocFrame(),\n maxFontSize: this.props?.maxFontSize?.toDocFrame(),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport abstract class DocumentElement {\n public abstract toDocFrame(): Proto.Node;\n}\n\nexport type Content = string | DocumentElement | (DocumentElement | string)[];\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Text extends DocumentElement {\n constructor(content: string) {\n super();\n this.content = content;\n }\n\n public content: string;\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n text: Proto.ProtoText.create({\n content: this.content,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\nimport { Content, DocumentElement } from \"content/DocumentElement\";\nimport { Text } from \"content/Text\";\n\nexport abstract class BranchDocumentElement<P = never> extends DocumentElement {\n protected children: DocumentElement[] = [];\n protected _props?: P;\n\n constructor(children?: Content, props?: P) {\n super();\n\n this._props = props;\n\n if (children === undefined) {\n this.children = [];\n return;\n }\n\n this.children = documentElementsFromContent(children);\n }\n\n public appendChildren(children: DocumentElement[]): void {\n this.children = this.children.concat(children);\n }\n\n public appendChild(child: DocumentElement): void {\n this.children.push(child);\n }\n\n public prependChildren(children: DocumentElement[]): void {\n this.children = children.concat(this.children);\n }\n\n public prependChild(child: DocumentElement): void {\n this.children.unshift(child);\n }\n\n public childrenToDocFrame(): Proto.Node[] {\n return this.children.map((child) => child.toDocFrame());\n }\n\n set props(props: P | undefined) {\n this._props = props;\n }\n\n get props(): P | undefined {\n return this._props;\n }\n}\n\nfunction documentElementsFromContent(content: Content): DocumentElement[] {\n if (typeof content === \"string\") {\n return [new Text(content)];\n } else if (Array.isArray(content)) {\n return content.map(documentElementsFromContent).flat();\n } else {\n return [content];\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport type TextFlowType = \"around\" | \"no-flow\" | \"foreground\" | \"background\";\n\nfunction textFlowTypeToDocFrame(\n type: TextFlowType,\n): Proto.ProtoAdvancedIllustrationAreaTextFlowType {\n switch (type) {\n case \"around\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.AROUND;\n case \"no-flow\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.NO_FLOW;\n case \"foreground\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.FOREGROUND;\n case \"background\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.BACKGROUND;\n default:\n throw new Error(`Unknown text flow type: ${type}`);\n }\n}\n\nexport interface AdvancedIllustrationAreaProperties {\n /** UUID */\n uuid?: string;\n /** Whether the AIA is absolutely positioned */\n absolute?: boolean;\n /** Width */\n width?: Measure;\n /** Height */\n height?: Measure;\n /** X position */\n x?: Measure;\n /** Y position */\n y?: Measure;\n /** How text flows around the AIA */\n textFlow?: TextFlowType;\n /** Rotation in degrees */\n rotation?: number;\n}\n\nexport class AdvancedIllustrationArea extends BranchDocumentElement<AdvancedIllustrationAreaProperties> {\n constructor(\n content?: Content,\n props?: AdvancedIllustrationAreaProperties,\n ) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n advancedIllustrationArea:\n Proto.ProtoAdvancedIllustrationArea.create({\n uuid: this.props?.uuid,\n absolute: this.props?.absolute,\n width: this.props?.width?.toDocFrame(),\n height: this.props?.height?.toDocFrame(),\n x: this.props?.x?.toDocFrame(),\n y: this.props?.y?.toDocFrame(),\n textFlow: this.props?.textFlow\n ? textFlowTypeToDocFrame(this.props.textFlow)\n : undefined,\n rotation: this.props?.rotation,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { AbsoluteMeasure, Measure } from \"~/Measure\";\nimport {\n ReferencePoint,\n referencePointToDocFrame,\n} from \"content/ReferencePoint\";\n\nexport interface BarcodeProperties {\n type: Proto.ProtoBarcodeType;\n x: AbsoluteMeasure;\n y: AbsoluteMeasure;\n referencePoint: ReferencePoint;\n\n /**\n * Rotation in degrees, counter-clockwise\n */\n rotation: number;\n width: AbsoluteMeasure;\n height: AbsoluteMeasure;\n data: string;\n positionAbsolute: boolean;\n padding?: AbsoluteMeasure;\n code?: string;\n altText?: string;\n uuid?: string;\n}\n\nexport class Barcode extends DocumentElement {\n props: BarcodeProperties;\n\n constructor(props: BarcodeProperties) {\n super();\n\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n barcode: Proto.ProtoBarcode.create({\n type: this.props.type,\n\n positionAbsolute: this.props.positionAbsolute,\n referencePoint: referencePointToDocFrame(this.props.referencePoint),\n x: this.props.x.toDocFrame(),\n y: this.props.y.toDocFrame(),\n rotation: this.props.rotation,\n\n width: this.props.width.toDocFrame(),\n height: this.props.height.toDocFrame(),\n padding: (this.props.padding ?? Measure.zero).toDocFrame(),\n\n data: this.props.data,\n code: this.props.code,\n altText: this.props.altText,\n uuid: this.props.uuid,\n }),\n });\n }\n}\n","import { AbsoluteMeasure, Measure, SideMeasures, Sides } from \"./Measure\";\n\nexport { AbsoluteMeasure, Measure, SideMeasures, Sides };\n","import Proto from \"docframe-types\";\n\nexport type AbsoluteMeasureUnit = \"pt\" | \"cm\" | \"mm\" | \"in\" | \"px\";\n\nexport type RelativeMeasureUnit = \"%\";\nexport type MeasureUnit = AbsoluteMeasureUnit | RelativeMeasureUnit;\n\nexport class Measure<Unit = MeasureUnit> {\n readonly value: number;\n readonly unit: Unit;\n\n static zero = new Measure(0, \"pt\" as AbsoluteMeasureUnit);\n\n constructor(value: number, unit: Unit) {\n this.value = value;\n this.unit = unit;\n }\n\n public toDocFrame(): Proto.ProtoMeasure {\n switch (this.unit) {\n case \"pt\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PT,\n });\n\n case \"cm\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.CM,\n });\n\n case \"mm\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.MM,\n });\n\n case \"in\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.IN,\n });\n\n case \"px\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PX,\n });\n\n case \"%\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PERCENT,\n });\n\n default:\n throw new Error(`Unknown measure unit: ${this.unit}`);\n }\n }\n}\n\nexport class AbsoluteMeasure extends Measure<AbsoluteMeasureUnit> {}\n\nexport class SideMeasures {\n value: Sides<AbsoluteMeasure>;\n\n constructor(settings: Sides<AbsoluteMeasure>) {\n this.value = settings;\n }\n\n public toDocFrame(): Proto.ProtoSideMeasures {\n return new Proto.ProtoSideMeasures({\n top: this.value.top?.toDocFrame(),\n right: this.value.right?.toDocFrame(),\n bottom: this.value.bottom?.toDocFrame(),\n left: this.value.left?.toDocFrame(),\n });\n }\n}\n\n\nexport class Sides<T> {\n top?: T;\n right?: T;\n bottom?: T;\n left?: T;\n}\n\n/*\n\n\n\nexport class RelativeMeasure extends Measure<RelativeMeasureUnit> {\n constructor(value: number) {\n super(value, \"%\");\n }\n}\n\n\n\n\n*/","import Proto from \"docframe-types\";\n\n/**\n * A ReferencePoint is used for elements like barcodes to specify the reference point\n * of an object.\n * Example:\n * When specified reference point \"top-left\", the top-left point of a barcode is positioned\n * relative to the top-left edge of the current line or page.\n */\nexport type ReferencePoint = \"top-left\" | \"top-right\" | \"center\" | \"bottom-left\" | \"bottom-right\";\n\nexport function referencePointToDocFrame(point: ReferencePoint): Proto.ProtoImageReferencePoint {\n switch (point) {\n case \"top-left\":\n return Proto.ProtoImageReferencePoint.REF_POINT_TOP_LEFT;\n\n case \"top-right\":\n return Proto.ProtoImageReferencePoint.REF_POINT_TOP_RIGHT;\n\n case \"center\":\n return Proto.ProtoImageReferencePoint.REF_POINT_CENTER;\n\n case \"bottom-left\":\n return Proto.ProtoImageReferencePoint.REF_POINT_BOTTOM_LEFT;\n\n case \"bottom-right\":\n return Proto.ProtoImageReferencePoint.REF_POINT_BOTTOM_RIGHT;\n\n default:\n throw new Error(`Unknown reference point: ${point}`);\n }\n}","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\n/**\n * CarryOver defines content that is carried over to the next page\n * when a table or other element breaks across pages.\n */\nexport class CarryOver extends BranchDocumentElement {\n constructor(content?: Content) {\n super(content);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n carryOver: Proto.ProtoCarryOver.create({}),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nclass ColumnPositionMode {\n public readonly value: Proto.ProtoPositionMode;\n\n constructor(value: Proto.ProtoPositionMode) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoPositionMode {\n return this.value;\n }\n}\n\nexport namespace ColumnPosition {\n export const Center = new ColumnPositionMode(Proto.ProtoPositionMode.CENTER);\n export const Left = new ColumnPositionMode(Proto.ProtoPositionMode.LEFT);\n export const Folio = new ColumnPositionMode(Proto.ProtoPositionMode.FOLIO);\n export const Right = new ColumnPositionMode(Proto.ProtoPositionMode.RIGHT);\n export const ReverseFolio = new ColumnPositionMode(\n Proto.ProtoPositionMode.REVERSE_FOLIO,\n );\n}\n\nexport interface ColumnDefinitionProperties {\n width: AbsoluteMeasure;\n position: ColumnPositionMode;\n interColumnSpace: AbsoluteMeasure;\n positionOffset: AbsoluteMeasure;\n}\n\nexport class ColumnDefinition {\n props: ColumnDefinitionProperties;\n uuid: string;\n\n constructor(props: ColumnDefinitionProperties) {\n this.props = props;\n\n this.uuid = uuidv4();\n }\n\n public toDocFrame(applyImmediate: boolean): Proto.Node[] {\n const result = [\n Proto.Node.create({\n cDef: Proto.ProtoCDef.create({\n Uuid: this.uuid,\n columSettings: Proto.ProtoColumnSettings.create({\n width: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.width.toDocFrame(),\n }),\n positionOffset: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.positionOffset.toDocFrame(),\n }),\n positionMode: this.props.position.toDocFrame(),\n interColumnSpace: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.interColumnSpace.toDocFrame(),\n }),\n }),\n }),\n }),\n ];\n\n if (applyImmediate) {\n result.push(\n Proto.Node.create({\n applyCDef: Proto.ProtoApplyProtoCDef.create({\n cDefUuid: this.uuid,\n }),\n }),\n );\n }\n\n return result;\n }\n}\n\nexport const ColumnDefinitions = {\n A4: {\n Single: new ColumnDefinition({\n width: new AbsoluteMeasure(490, \"pt\"),\n position: ColumnPosition.Left,\n positionOffset: new AbsoluteMeasure(70, \"pt\"),\n interColumnSpace: new AbsoluteMeasure(30, \"pt\"),\n }),\n Double: new ColumnDefinition({\n width: new AbsoluteMeasure(230, \"pt\"),\n position: ColumnPosition.Left,\n positionOffset: new AbsoluteMeasure(70, \"pt\"),\n interColumnSpace: new AbsoluteMeasure(30, \"pt\"),\n }),\n },\n};\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface ConditionProperties {\n /** UUID */\n uuid?: string;\n /** Code expression to evaluate */\n code?: string;\n /** Pre-evaluated result */\n result?: boolean;\n /** Whether the condition should be re-evaluated on regeneration */\n regenerate?: boolean;\n}\n\nexport class Condition extends BranchDocumentElement<ConditionProperties> {\n constructor(content?: Content, props?: ConditionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n condition: Proto.ProtoCondition.create({\n uuid: this.props?.uuid,\n code: this.props?.code,\n result: this.props?.result,\n regenerate: this.props?.regenerate,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport type SemanticType = \"none\" | \"part\" | \"art\" | \"sect\" | \"div\";\n\nfunction semanticTypeToDocFrame(type: SemanticType): Proto.ProtoSemanticType {\n switch (type) {\n case \"none\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_NONE;\n case \"part\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_PART;\n case \"art\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_ART;\n case \"sect\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_SECT;\n case \"div\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_DIV;\n default:\n throw new Error(`Unknown semantic type: ${type}`);\n }\n}\n\nexport interface DirectoryProperties {\n name?: string;\n editable?: boolean;\n semanticType?: SemanticType;\n}\n\nexport class Directory extends BranchDocumentElement<DirectoryProperties> {\n constructor(content?: Content, props?: DirectoryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n directory: Proto.ProtoDirectory.create({\n name: this.props?.name,\n editable: this.props?.editable,\n semanticType: this.props?.semanticType\n ? semanticTypeToDocFrame(this.props.semanticType)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { defaultConnection } from \"~/Connection\";\nimport { OutputFormat, OutputParams } from \"~/OutputFormat\";\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { ColumnDefinition, ColumnDefinitions } from \"content/ColumnDefinition\";\nimport { Content } from \"content/DocumentElement\";\nimport { Footer } from \"content/Footer\";\nimport { Header } from \"content/Header\";\nimport { PageDefinition, PageDefinitions } from \"content/PageDefinition\";\nimport { ParagraphFormat } from \"~/ParagraphFormat\";\nimport { SpaceVertically } from \"content/SpaceVertically\";\nimport { StandardFonts } from \"~/Font\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport interface DocumentProperties {\n pageDefinition: PageDefinition;\n columnDefinition: ColumnDefinition;\n\n defaultHeader?: Header;\n defaultFooter?: Footer;\n\n paragraphFormats?: Record<string, ParagraphFormat>;\n}\n\nexport class Document extends BranchDocumentElement<DocumentProperties> {\n paragraphFormats: Record<string, ParagraphFormat> = {};\n\n constructor(content?: Content, props?: DocumentProperties) {\n super(content, props);\n\n if (props === undefined) {\n this.props = {\n pageDefinition: PageDefinitions.A4,\n columnDefinition: ColumnDefinitions.A4.Single,\n defaultHeader: new Header(\n new SpaceVertically(new AbsoluteMeasure(40, \"pt\")),\n ),\n defaultFooter: new Footer(\n new SpaceVertically(new AbsoluteMeasure(40, \"pt\")),\n ),\n };\n } else {\n this.props = props;\n }\n\n this.paragraphFormats = this.props.paragraphFormats || {\n Text: new ParagraphFormat({\n font: StandardFonts.Helvetica,\n fontSize: new AbsoluteMeasure(12, \"pt\"),\n lineFeed: new AbsoluteMeasure(14, \"pt\"),\n indentionWidth: new AbsoluteMeasure(15, \"pt\"),\n name: \"Text\",\n default: true,\n }),\n };\n }\n\n getParagraphFormat(name: string): ParagraphFormat | undefined {\n return this.paragraphFormats[name];\n }\n\n registerParagraphFormat(name: string, pf: ParagraphFormat) {\n this.paragraphFormats[name] = pf;\n }\n\n convertTo<Format extends keyof OutputParams>(\n outputFormat: Format,\n outputParams?: OutputParams[Format],\n jobParams?: Record<string, any>,\n ): Promise<Blob> {\n return defaultConnection.convertTo(\n outputFormat,\n this,\n outputParams,\n jobParams,\n );\n }\n\n convertToPDF(\n outputParams?: OutputParams[\"pdf\"],\n jobParams?: Record<string, any>,\n ): Promise<Blob> {\n return defaultConnection.convertTo(\n OutputFormat.PDF,\n this,\n outputParams,\n jobParams,\n );\n }\n\n /*\n public getProtoParagraphFormat(format?: ParagraphFormat): Proto.IProtoParagraphFormat {\n if (!format) {\n return this.defaultParagraphFormat;\n }\n\n if (!format.format.name) {\n throw new Error(\"ParagraphFormat must have a name\");\n }\n\n if (!this.paragraphFormats[format.format.name]) {\n this.paragraphFormats[format.format.name] = format.toDocFrame();\n }\n\n return this.paragraphFormats[format.format.name];\n }\n */\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const docSettings = Object.values(this.paragraphFormats)\n .map((pf) =>\n Proto.Node.create({\n paragraphFormat: pf.toDocFrame(),\n }),\n )\n .concat([\n Proto.Node.create({\n pDef: props.pageDefinition.toDocFrame(),\n }),\n Proto.Node.create({\n applyPDef: Proto.ProtoApplyProtoPDef.create({\n pDefUuid: props.pageDefinition.uuid,\n }),\n }),\n ...props.columnDefinition.toDocFrame(true),\n ]);\n\n if (props.defaultHeader) {\n docSettings.push(props.defaultHeader.toDocFrame());\n }\n\n if (props.defaultFooter) {\n docSettings.push(props.defaultFooter.toDocFrame());\n }\n\n const content = this.childrenToDocFrame();\n\n for (const format of Object.values(this.paragraphFormats)) {\n docSettings.push(\n Proto.Node.create({\n paragraphFormat: format.toDocFrame(),\n }),\n );\n }\n\n return Proto.Node.create({\n children: docSettings.concat(...content),\n });\n }\n}\n","enum OutputFormat {\n PDF = \"pdf\",\n PNG = \"png\",\n JPEG = \"jpeg\",\n HTML = \"html\",\n PS = \"ps\",\n TEXT = \"text\",\n}\n\ntype OutputParams = {\n [OutputFormat.HTML]: {};\n [OutputFormat.PDF]: {};\n [OutputFormat.JPEG]: {};\n [OutputFormat.PS]: {};\n [OutputFormat.TEXT]: {};\n [OutputFormat.PNG]: {\n /**\n * The width of the output in pixels.\n * @default The width of the document in pixels.\n */\n width?: number;\n\n /**\n * The height of the output in pixels.\n * @default The height of the document in pixels.\n */\n height?: number;\n\n /**\n * The resolution of the output in pixels per inch.\n * @default 300 dpi.\n */\n dpi?: number;\n };\n}\n\nexport {\n OutputFormat,\n OutputParams,\n}","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nimport Proto from \"docframe-types\";\n\nexport type FooterMode = \"append-initial\" | \"append\" | \"extend\" | \"replace\";\n\nfunction footerModeToDocFrame(mode: FooterMode): Proto.ProtoFooterMode {\n switch (mode) {\n case \"append-initial\":\n return Proto.ProtoFooterMode.FOOTER_MODE_APPEND_INITIAL;\n case \"append\":\n return Proto.ProtoFooterMode.FOOTER_MODE_APPEND;\n case \"extend\":\n return Proto.ProtoFooterMode.FOOTER_MODE_EXTEND;\n case \"replace\":\n return Proto.ProtoFooterMode.FOOTER_MODE_REPLACE;\n default:\n throw new Error(`Unknown footer mode: ${mode}`);\n }\n}\n\nexport interface FooterProperties {\n mode?: FooterMode;\n}\n\nexport class Footer extends BranchDocumentElement<FooterProperties> {\n constructor(content?: Content, props?: FooterProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n footer: Proto.ProtoFooter.create({\n mode: this.props?.mode\n ? footerModeToDocFrame(this.props.mode)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nimport Proto from \"docframe-types\";\n\nexport type HeaderMode = \"append-initial\" | \"append\" | \"extend\" | \"replace\";\n\nfunction headerModeToDocFrame(mode: HeaderMode): Proto.ProtoHeaderMode {\n switch (mode) {\n case \"append-initial\":\n return Proto.ProtoHeaderMode.HEADER_MODE_APPEND_INITIAL;\n case \"append\":\n return Proto.ProtoHeaderMode.HEADER_MODE_APPEND;\n case \"extend\":\n return Proto.ProtoHeaderMode.HEADER_MODE_EXTEND;\n case \"replace\":\n return Proto.ProtoHeaderMode.HEADER_MODE_REPLACE;\n default:\n throw new Error(`Unknown header mode: ${mode}`);\n }\n}\n\nexport interface HeaderProperties {\n mode?: HeaderMode;\n}\n\nexport class Header extends BranchDocumentElement<HeaderProperties> {\n constructor(content?: Content, props?: HeaderProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n header: Proto.ProtoHeader.create({\n mode: this.props?.mode\n ? headerModeToDocFrame(this.props.mode)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\nimport { v4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport class PageDefinition {\n width?: AbsoluteMeasure;\n height?: AbsoluteMeasure;\n uuid: string;\n\n constructor(width?: AbsoluteMeasure, height?: AbsoluteMeasure) {\n this.width = width;\n this.height = height;\n\n this.uuid = v4();\n }\n\n public toDocFrame(): Proto.ProtoPDef {\n return new Proto.ProtoPDef({\n pageDepth: new Proto.ProtoBoxedMeasure({\n isNull: this.height === undefined,\n value: this.height?.toDocFrame(),\n }),\n pageWidth: new Proto.ProtoBoxedMeasure({\n isNull: this.width === undefined,\n value: this.width?.toDocFrame(),\n }),\n Uuid: this.uuid,\n });\n }\n}\n\nexport namespace PageDefinitions {\n export const A3 = new PageDefinition(\n new AbsoluteMeasure(297, \"mm\"),\n new AbsoluteMeasure(420, \"mm\"),\n );\n\n export const A4 = new PageDefinition(\n new AbsoluteMeasure(210, \"mm\"),\n new AbsoluteMeasure(297, \"mm\"),\n );\n\n export const A5 = new PageDefinition(\n new AbsoluteMeasure(148, \"mm\"),\n new AbsoluteMeasure(210, \"mm\"),\n );\n}\n","import Proto from \"docframe-types\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\nimport { Font } from \"~/Font\";\nimport { HorizontalAlignment } from \"~/Alignment\";\n\nexport interface ParagraphFormatProperties {\n default?: boolean;\n name?: string;\n\n alignment?: HorizontalAlignment;\n\n font?: Font;\n fontSize?: AbsoluteMeasure;\n characterWidth?: AbsoluteMeasure;\n characterSpacing?: AbsoluteMeasure;\n lineFeed?: AbsoluteMeasure;\n bold?: boolean;\n italic?: boolean;\n\n indentionLevel?: number;\n indentionWidth?: AbsoluteMeasure;\n\n spaceAbove?: AbsoluteMeasure;\n spaceBelow?: AbsoluteMeasure;\n}\n\nexport class ParagraphFormat {\n props: ParagraphFormatProperties;\n\n constructor(props: ParagraphFormatProperties) {\n this.props = props;\n\n this.props.name = props.name || uuidv4();\n }\n\n public toDocFrame(): Proto.IProtoParagraphFormat {\n let format: Proto.IProtoParagraphFormat = {\n default: Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.default || false,\n }),\n name: Proto.ProtoBoxedString.create({\n isNull: false,\n value: this.props.name,\n }),\n };\n\n if (this.props.alignment) {\n format.alignment = Proto.ProtoBoxedHorizontalAlignment.create({\n isNull: false,\n value: this.props.alignment.toDocFrame(),\n });\n }\n\n if (this.props.font) {\n format.font = Proto.ProtoBoxedFont.create({\n isNull: false,\n value: this.props.font.toDocFrame(),\n });\n }\n\n if (this.props.fontSize) {\n format.fontSize = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.fontSize.toDocFrame(),\n });\n }\n\n if (this.props.characterWidth) {\n format.characterWidth = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.characterWidth.toDocFrame(),\n });\n }\n\n if (this.props.characterSpacing) {\n format.characterSpacing = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.characterSpacing.toDocFrame(),\n });\n }\n\n if (this.props.lineFeed) {\n format.lineFeed = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.lineFeed.toDocFrame(),\n });\n }\n\n if (this.props.indentionLevel !== undefined) {\n format.indentionLevel = Proto.ProtoBoxedInt32.create({\n isNull: false,\n value: this.props.indentionLevel,\n });\n }\n\n if (this.props.indentionWidth) {\n format.indentionWidth = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.indentionWidth.toDocFrame(),\n });\n }\n\n if (this.props.bold !== undefined) {\n format.bold = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: !!this.props.bold,\n });\n }\n\n if (this.props.italic !== undefined) {\n format.italic = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: !!this.props.italic,\n });\n }\n\n if (this.props.spaceAbove) {\n format.spaceAbove = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.spaceAbove.toDocFrame(),\n });\n }\n\n if (this.props.spaceBelow) {\n format.spaceBelow = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.spaceBelow.toDocFrame(),\n });\n }\n\n return Proto.ProtoParagraphFormat.create(format);\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport class SpaceVertically extends DocumentElement {\n space: AbsoluteMeasure;\n\n constructor(space: AbsoluteMeasure) {\n super();\n\n this.space = space;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n spaceVertically: Proto.ProtoSpaceVertically.create({\n space: this.space.toDocFrame(),\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport class Font {\n private name: string;\n\n constructor(name: string) {\n this.name = name;\n }\n\n public toDocFrame(): Proto.ProtoFont {\n return Proto.ProtoFont.create({\n name: this.name,\n // TODO: suppot font mapping for docframe step\n id: 5\n });\n }\n}\n\nexport const StandardFonts = {\n Helvetica: new Font(\"helvetica\"),\n};\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Formatted extends DocumentElement {\n constructor(doctypeContent: string | undefined, htmlContent?: string) {\n super();\n this.content = {\n doctype: doctypeContent,\n html: htmlContent,\n };\n }\n\n public content: {\n doctype: string | undefined;\n html: string | undefined;\n };\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n formatted: Proto.ProtoFormatted.create({\n doctypeContent: this.content.doctype,\n htmlContent: this.content.html,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\nimport {\n ReferencePoint,\n referencePointToDocFrame,\n} from \"content/ReferencePoint\";\n\nexport type ImageScaleType = \"relative\" | \"absolute\" | \"relative-to-column\";\n\nfunction imageScaleTypeToDocFrame(\n type: ImageScaleType,\n): Proto.ProtoImageScaleType {\n switch (type) {\n case \"relative\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_RELATIVE;\n case \"absolute\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_ABSOLUTE;\n case \"relative-to-column\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_RELATIVE_TO_COLUMN;\n default:\n throw new Error(`Unknown image scale type: ${type}`);\n }\n}\n\nexport interface FlipSettings {\n x?: boolean;\n y?: boolean;\n}\n\nexport interface CropSettings {\n x?: Measure;\n y?: Measure;\n width?: Measure;\n height?: Measure;\n}\n\nexport interface ImageProperties {\n /** Alternative text for accessibility */\n alt?: string;\n /** Image name */\n name?: string;\n /** Image source URL or path */\n src?: string;\n /** Image filename */\n filename?: string;\n /** Scale factor (e.g. 1.0 = 100%) */\n scale?: number;\n /** Scale relative to column width (e.g. 0.5 = 50% of column) */\n columnScale?: number;\n /** Image width */\n width?: Measure;\n /** Image height */\n height?: Measure;\n /** X position */\n x?: Measure;\n /** Y position */\n y?: Measure;\n /** Whether the image is positioned absolutely */\n positionAbsolute?: boolean;\n /** Rotation in degrees */\n rotation?: number;\n /** Flip settings */\n flip?: FlipSettings;\n /** Crop settings */\n crop?: CropSettings;\n /** Reference point for positioning */\n referencePoint?: ReferencePoint;\n /** Hyperlink URL */\n hyperlink?: string;\n /** Scale type */\n scaleType?: ImageScaleType;\n /** UUID */\n uuid?: string;\n /** Inline image content as base64-encoded string */\n imageContent?: string;\n}\n\nexport class Image extends DocumentElement {\n props: ImageProperties;\n\n constructor(props: ImageProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n const p = this.props;\n\n const image: Proto.IProtoImage = {\n alt: p.alt,\n name: p.name,\n src: p.src,\n filename: p.filename,\n rotation: p.rotation,\n hyperlink: p.hyperlink,\n uuid: p.uuid,\n imageContent: p.imageContent,\n };\n\n if (p.scale !== undefined) {\n image.scale = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: p.scale,\n });\n }\n\n if (p.columnScale !== undefined) {\n image.columnScale = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: p.columnScale,\n });\n }\n\n if (p.width) {\n image.width = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.width.toDocFrame(),\n });\n }\n\n if (p.height) {\n image.height = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.height.toDocFrame(),\n });\n }\n\n if (p.x) {\n image.x = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.x.toDocFrame(),\n });\n }\n\n if (p.y) {\n image.y = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.y.toDocFrame(),\n });\n }\n\n if (p.positionAbsolute !== undefined) {\n image.positionAbsolute = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: p.positionAbsolute,\n });\n }\n\n if (p.flip) {\n image.flipSettings = Proto.ProtoFlipSettings.create({\n x: p.flip.x,\n y: p.flip.y,\n });\n }\n\n if (p.crop) {\n const cropSettings: Proto.IProtoCropSettings = {};\n if (p.crop.x) {\n cropSettings.x = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.x.toDocFrame(),\n });\n }\n if (p.crop.y) {\n cropSettings.y = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.y.toDocFrame(),\n });\n }\n if (p.crop.width) {\n cropSettings.width = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.width.toDocFrame(),\n });\n }\n if (p.crop.height) {\n cropSettings.height = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.height.toDocFrame(),\n });\n }\n image.cropSettings = Proto.ProtoCropSettings.create(cropSettings);\n }\n\n if (p.referencePoint) {\n image.referencePoint = referencePointToDocFrame(p.referencePoint);\n }\n\n if (p.scaleType) {\n image.scaleType = imageScaleTypeToDocFrame(p.scaleType);\n }\n\n return Proto.Node.create({\n image: Proto.ProtoImage.create(image),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface IndentationProperties {\n /** Left indentation */\n left?: Measure;\n /** Right indentation */\n right?: Measure;\n /** UUID */\n uuid?: string;\n}\n\nexport class Indentation extends BranchDocumentElement<IndentationProperties> {\n constructor(content?: Content, props?: IndentationProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n const indent: Proto.IProtoIndentation = {\n uuid: this.props?.uuid,\n };\n\n if (this.props?.left) {\n indent.left = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.left.toDocFrame(),\n });\n }\n\n if (this.props?.right) {\n indent.right = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.right.toDocFrame(),\n });\n }\n\n return Proto.Node.create({\n indentation: Proto.ProtoIndentation.create(indent),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Linebreak extends DocumentElement {\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n linebreak: Proto.ProtoLinebreak.create({}),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LinkProperties {\n /** The URL to link to */\n url: string;\n}\n\nexport class Link extends BranchDocumentElement<LinkProperties> {\n constructor(content?: Content, url?: string) {\n super(content, url ? { url } : undefined);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n link: Proto.ProtoLink.create({\n url: this.props?.url,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LoopProperties {\n /** Data path to iterate over */\n path?: string;\n /** UUID */\n uuid?: string;\n}\n\nexport class Loop extends BranchDocumentElement<LoopProperties> {\n constructor(content?: Content, props?: LoopProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n loop: Proto.ProtoLoop.create({\n path: this.props?.path,\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LoopEntryProperties {\n /** Data path for this loop entry */\n path?: string;\n /** Index of this entry in the loop */\n index?: number;\n /** UUID */\n uuid?: string;\n}\n\nexport class LoopEntry extends BranchDocumentElement<LoopEntryProperties> {\n constructor(content?: Content, props?: LoopEntryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n loopEntry: Proto.ProtoLoopEntry.create({\n path: this.props?.path,\n index: this.props?.index,\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Pagebreak extends DocumentElement {\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n newPage: Proto.ProtoNewPage.create({}),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface PageConditionProperties {\n /** UUID */\n uuid?: string;\n /** Code expression to evaluate per page */\n code?: string;\n}\n\nexport class PageCondition extends BranchDocumentElement<PageConditionProperties> {\n constructor(content?: Content, props?: PageConditionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n pageCondition: Proto.ProtoPageCondition.create({\n uuid: this.props?.uuid,\n code: this.props?.code,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\n\nimport Proto from \"docframe-types\";\nimport { ParagraphFormat } from \"~/ParagraphFormat\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface ParagraphSettings {\n paragraphFormatName?: string;\n overwrite?: ParagraphFormat;\n}\n\nexport class Paragraph extends BranchDocumentElement<ParagraphSettings> {\n constructor(\n content?: Content,\n paragraphFormatName?: string | ParagraphFormat,\n overwrite?: ParagraphFormat,\n ) {\n super(content, {\n overwrite,\n paragraphFormatName:\n typeof paragraphFormatName === \"string\"\n ? paragraphFormatName\n : paragraphFormatName?.props?.name,\n });\n }\n\n public toDocFrame(): Proto.Node {\n const par = {} as Proto.IProtoParagraph;\n\n if (this.props!.overwrite) {\n par.overwrite = this.props!.overwrite.toDocFrame();\n }\n\n if (this.props!.paragraphFormatName) {\n par.format = Proto.ProtoParagraphFormat.create({\n name: Proto.ProtoBoxedString.create({\n isNull: false,\n value: this.props!.paragraphFormatName,\n }),\n });\n }\n\n return Proto.Node.create({\n paragraph: Proto.ProtoParagraph.create(par),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\nimport { Color } from \"~/Color\";\n\nexport type RuleStyle =\n | \"solid\"\n | \"sparse-shading\"\n | \"medium-shading\"\n | \"dense-shading\"\n | \"light-dotted\"\n | \"medium-dotted\"\n | \"heavy-dotted\"\n | \"light-dashed\"\n | \"medium-dashed\"\n | \"heavy-dashed\"\n | \"dash-pattern\"\n | \"double\";\n\nfunction ruleStyleToDocFrame(style: RuleStyle): Proto.ProtoRuleStyle {\n switch (style) {\n case \"solid\":\n return Proto.ProtoRuleStyle.SOLID;\n case \"sparse-shading\":\n return Proto.ProtoRuleStyle.SPARSE_SHADING;\n case \"medium-shading\":\n return Proto.ProtoRuleStyle.MEDIUM_SHADING;\n case \"dense-shading\":\n return Proto.ProtoRuleStyle.DENSE_SHADING;\n case \"light-dotted\":\n return Proto.ProtoRuleStyle.LIGHT_DOTTED;\n case \"medium-dotted\":\n return Proto.ProtoRuleStyle.MEDIUM_DOTTED;\n case \"heavy-dotted\":\n return Proto.ProtoRuleStyle.HEAVY_DOTTED;\n case \"light-dashed\":\n return Proto.ProtoRuleStyle.LIGHT_DASHED;\n case \"medium-dashed\":\n return Proto.ProtoRuleStyle.MEDIUM_DASHED;\n case \"heavy-dashed\":\n return Proto.ProtoRuleStyle.HEAVY_DASHED;\n case \"dash-pattern\":\n return Proto.ProtoRuleStyle.DASH_PATTERN;\n case \"double\":\n return Proto.ProtoRuleStyle.DOUBLE;\n default:\n throw new Error(`Unknown rule style: ${style}`);\n }\n}\n\nexport type RuleMode = \"normal\" | \"boundary\";\n\nfunction ruleModeToDocFrame(mode: RuleMode): Proto.ProtoRuleMode {\n switch (mode) {\n case \"normal\":\n return Proto.ProtoRuleMode.NORMAL;\n case \"boundary\":\n return Proto.ProtoRuleMode.BOUNDARY;\n default:\n throw new Error(`Unknown rule mode: ${mode}`);\n }\n}\n\nexport interface RuleBoundaries {\n start?: Measure;\n end?: Measure;\n}\n\nexport interface RuleProperties {\n /** Horizontal offset */\n xOffset?: Measure;\n /** Vertical offset */\n yOffset?: Measure;\n /** Width of the rule */\n width?: Measure;\n /** Thickness of the rule line */\n thickness?: Measure;\n /** Rotation in degrees */\n rotation?: number;\n /** Rule color */\n color?: Color;\n /** Rule style (solid, dashed, dotted, etc.) */\n style?: RuleStyle;\n /** Rule mode */\n mode?: RuleMode;\n /** Rule boundaries for boundary mode */\n boundaries?: RuleBoundaries;\n}\n\nexport class Rule extends DocumentElement {\n props: RuleProperties;\n\n constructor(props: RuleProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n const rule: Proto.IProtoRule = {\n xOffset: this.props.xOffset?.toDocFrame(),\n yOffset: this.props.yOffset?.toDocFrame(),\n width: this.props.width?.toDocFrame(),\n thickness: this.props.thickness?.toDocFrame(),\n rotation: this.props.rotation,\n color: this.props.color?.toDocFrame(),\n };\n\n if (this.props.style) {\n rule.style = ruleStyleToDocFrame(this.props.style);\n }\n\n if (this.props.mode) {\n rule.mode = ruleModeToDocFrame(this.props.mode);\n }\n\n if (this.props.boundaries) {\n rule.boundaries = Proto.ProtoRuleBoundaries.create({\n start: this.props.boundaries.start?.toDocFrame(),\n end: this.props.boundaries.end?.toDocFrame(),\n });\n }\n\n return Proto.Node.create({\n rule: Proto.ProtoRule.create(rule),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SectionProperties {\n uuid?: string;\n /** UUID of the column definition to apply to this section */\n cDefUuid?: string;\n}\n\nexport class Section extends BranchDocumentElement<SectionProperties> {\n constructor(content?: Content, props?: SectionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n section: Proto.ProtoSection.create({\n uuid: this.props?.uuid,\n cDefUuid: this.props?.cDefUuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SelectionProperties {\n /** UUID */\n uuid?: string;\n /** Internal name for the selection */\n internalName?: string;\n /** Display name */\n name?: string;\n /** Whether multiple entries can be selected */\n multi?: boolean;\n /** Minimum number of selections required */\n min?: number;\n /** Maximum number of selections allowed */\n max?: number;\n}\n\nexport class Selection extends BranchDocumentElement<SelectionProperties> {\n constructor(content?: Content, props?: SelectionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n selection: Proto.ProtoSelection.create({\n uuid: this.props?.uuid,\n internalName: this.props?.internalName,\n name: this.props?.name,\n multi: this.props?.multi,\n min: this.props?.min,\n max: this.props?.max,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SelectionEntryProperties {\n /** UUID */\n uuid?: string;\n /** Internal name for the selection entry */\n internalName?: string;\n /** Display name */\n name?: string;\n /** Whether this entry is selected */\n selected?: boolean;\n}\n\nexport class SelectionEntry extends BranchDocumentElement<SelectionEntryProperties> {\n constructor(content?: Content, props?: SelectionEntryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n selectionEntry: Proto.ProtoSelectionEntry.create({\n uuid: this.props?.uuid,\n internalName: this.props?.internalName,\n name: this.props?.name,\n selected: this.props?.selected,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Color } from \"~/Color\";\n\nexport interface SpanProperties {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strikethrough?: boolean;\n color?: Color;\n subscript?: boolean;\n superscript?: boolean;\n}\n\nexport class Span extends BranchDocumentElement<SpanProperties> {\n constructor(content?: Content, props?: SpanProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n let bold: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.bold !== undefined) {\n bold = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.bold,\n });\n }\n\n let italic: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.italic !== undefined) {\n italic = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.italic,\n });\n }\n\n let underline: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.underline !== undefined) {\n underline = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.underline,\n });\n }\n\n let strikethrough: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.strikethrough !== undefined) {\n strikethrough = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.strikethrough,\n });\n }\n\n let subscript: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.subscript !== undefined) {\n subscript = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.subscript,\n });\n }\n\n let superscript: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.superscript !== undefined) {\n superscript = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.superscript,\n });\n }\n\n return Proto.Node.create({\n span: Proto.ProtoSpan.create({\n bold: bold,\n italic: italic,\n underline: underline,\n strikethrough: strikethrough,\n color: this.props?.color?.toDocFrame(),\n subscript: subscript,\n superscript: superscript,\n }),\n\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport type SubTotalPosition = \"above-footer\" | \"below-content\";\n\nfunction subTotalPositionToDocFrame(\n pos: SubTotalPosition,\n): Proto.ProtoSubTotalPosition {\n switch (pos) {\n case \"above-footer\":\n return Proto.ProtoSubTotalPosition.POSITION_ABOVE_FOOTER;\n case \"below-content\":\n return Proto.ProtoSubTotalPosition.POSITION_BELOW_CONTENT;\n default:\n throw new Error(`Unknown sub total position: ${pos}`);\n }\n}\n\nexport interface SubTotalProperties {\n /** Whether to apply immediately */\n applyImmediate?: boolean;\n /** Position of the sub total */\n position?: SubTotalPosition;\n /** Height of the sub total area */\n height?: Measure;\n}\n\nexport class SubTotal extends BranchDocumentElement<SubTotalProperties> {\n constructor(content?: Content, props?: SubTotalProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n subTotal: Proto.ProtoSubTotal.create({\n applyImmediate: this.props?.applyImmediate,\n position: this.props?.position\n ? subTotalPositionToDocFrame(this.props.position)\n : undefined,\n height: this.props?.height?.toDocFrame(),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface TableSettings {\n width?: Measure;\n xOffset?: Measure;\n leftMeasure?: boolean;\n repeatHeader?: number;\n}\n\nexport class Table extends BranchDocumentElement<TableSettings> {\n constructor(content?: Content, props?: TableSettings) {\n super(content, props || {});\n if (!this.props!.xOffset) {\n this.props!.xOffset = Measure.zero;\n }\n }\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const settings: Proto.IProtoTableSettings = {\n width: props.width?.toDocFrame(),\n xOffset: props.xOffset?.toDocFrame(),\n leftMeasure: Proto.ProtoBoxedBool.create({\n isNull: false,\n value: props.leftMeasure ?? false,\n }),\n };\n\n if (props.repeatHeader !== undefined) {\n settings.repeatHeader = Proto.ProtoBoxedUint32.create({\n isNull: false,\n value: props.repeatHeader,\n });\n }\n\n return Proto.Node.create({\n table: Proto.ProtoTable.create({\n settings: Proto.ProtoTableSettings.create(settings),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure, SideMeasures } from \"~/Measure\";\nimport { HorizontalAlignment, VerticalAlignment } from \"~/Alignment\";\nimport { Color } from \"~/Color\";\nimport { SideBorders } from \"~/Border\";\n\nexport interface TableCellProperties {\n alignment?: HorizontalAlignment;\n backgroundColor?: Color;\n border?: SideBorders;\n margin?: SideMeasures;\n padding?: SideMeasures;\n verticalAlignment?: VerticalAlignment;\n width?: Measure;\n rotation?: number;\n defaultParagraphFormat?: string;\n}\n\nexport class TableCell extends BranchDocumentElement<TableCellProperties> {\n constructor(content?: Content, props?: TableCellProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const settings: Proto.IProtoTableCellSettings = {\n align: Proto.ProtoBoxedHorizontalAlignment.create({\n isNull: false,\n value:\n props!.alignment?.toDocFrame() ||\n Proto.ProtoHorizontalAlignment.ALIGN_LEFT,\n }),\n backgroundColor: props.backgroundColor?.toDocFrame(),\n border: props.border?.toDocFrame(),\n margin: props.margin?.toDocFrame(),\n padding: props.padding?.toDocFrame(),\n valign: Proto.ProtoBoxedVerticalAlignment.create({\n isNull: false,\n value:\n props.verticalAlignment?.toDocFrame() ||\n Proto.ProtoVerticalAlignment.TOP,\n }),\n width: props.width?.toDocFrame(),\n };\n\n if (props.rotation !== undefined) {\n settings.rotation = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: props.rotation,\n });\n }\n\n if (props.defaultParagraphFormat !== undefined) {\n settings.defaultParagraphFormat = Proto.ProtoBoxedString.create({\n isNull: false,\n value: props.defaultParagraphFormat,\n });\n }\n\n return Proto.Node.create({\n tableCell: Proto.ProtoTableCell.create({\n settings: Proto.ProtoTableCellSettings.create(settings),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface TableContentGroupProperties {\n /** UUID */\n uuid?: string;\n}\n\nexport class TableContentGroup extends BranchDocumentElement<TableContentGroupProperties> {\n constructor(content?: Content, props?: TableContentGroupProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tableContentGroup: Proto.ProtoTableContentGroup.create({\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport interface TableRowProperties {\n minHeight?: AbsoluteMeasure;\n}\n\nexport class TableRow extends BranchDocumentElement<TableRowProperties> {\n constructor(content?: Content, props?: TableRowProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tableRow: Proto.ProtoTableRow.create({\n settings: Proto.ProtoTableRowSettings.create({\n minHeight: this.props!.minHeight?.toDocFrame(),\n }),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport interface TagProperties {\n /** Tag name */\n name: string;\n /** UUID */\n uuid?: string;\n /** Tag parameters */\n params?: string[];\n /** Name code expression */\n nameCode?: string;\n /** Whether name is in code mode */\n codeMode?: boolean;\n}\n\nexport class Tag extends DocumentElement {\n props: TagProperties;\n\n constructor(props: TagProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tag: Proto.ProtoTag.create({\n name: this.props.name,\n uuid: this.props.uuid,\n params: this.props.params,\n nameCode: this.props.nameCode,\n codeMode: this.props.codeMode,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport type VariableSpecialType =\n | \"table-number\"\n | \"doc-page-count\"\n | \"doc-cur-page\"\n | \"cur-page\"\n | \"page-count\"\n | \"prev-page\"\n | \"section-page\"\n | \"updated-at\"\n | \"generated-at\";\n\nfunction specialTypeToDocFrame(\n type: VariableSpecialType,\n): Proto.ProtoVariableSpecialType {\n switch (type) {\n case \"table-number\":\n return Proto.ProtoVariableSpecialType.TABLE_NUMBER;\n case \"doc-page-count\":\n return Proto.ProtoVariableSpecialType.DOC_PAGE_COUNT;\n case \"doc-cur-page\":\n return Proto.ProtoVariableSpecialType.DOC_CUR_PAGE;\n case \"cur-page\":\n return Proto.ProtoVariableSpecialType.CUR_PAGE;\n case \"page-count\":\n return Proto.ProtoVariableSpecialType.PAGE_COUNT;\n case \"prev-page\":\n return Proto.ProtoVariableSpecialType.PREV_PAGE;\n case \"section-page\":\n return Proto.ProtoVariableSpecialType.SECTION_PAGE;\n case \"updated-at\":\n return Proto.ProtoVariableSpecialType.UPDATED_AT;\n case \"generated-at\":\n return Proto.ProtoVariableSpecialType.GENERATED_AT;\n default:\n throw new Error(`Unknown variable special type: ${type}`);\n }\n}\n\nexport interface VariableProperties {\n /** Data path to the variable */\n path?: string;\n /** Static content value */\n content?: string;\n /** UUID of the format to apply */\n formatUuid?: string;\n /** Special type of the variable (e.g. page number) */\n specialType?: VariableSpecialType;\n /** UUID */\n uuid?: string;\n}\n\nexport class Variable extends DocumentElement {\n props: VariableProperties;\n\n constructor(props: VariableProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n variable: Proto.ProtoVariable.create({\n path: this.props.path,\n content: this.props.content,\n formatUuid: this.props.formatUuid,\n specialType: this.props.specialType\n ? specialTypeToDocFrame(this.props.specialType)\n : undefined,\n uuid: this.props.uuid,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\n/**\n * WsArea (Widow/orphan and Split area) wraps content to control\n * page break behavior.\n */\nexport class WsArea extends BranchDocumentElement {\n constructor(content?: Content) {\n super(content);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n wsArea: Proto.ProtoWsArea.create({}),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { AdjustHorizontally } from \"./AdjustHorizontally\";\nimport { AdvancedIllustrationArea } from \"./AdvancedIllustrationArea\";\nimport { Barcode } from \"./Barcode\";\nimport { CarryOver } from \"./CarryOver\";\nimport { ColumnDefinition, ColumnPosition } from \"./ColumnDefinition\";\nimport { Condition } from \"./Condition\";\nimport { Directory } from \"./Directory\";\nimport { Document } from \"./Document\";\nimport { Footer } from \"./Footer\";\nimport { Formatted } from \"./Formatted\";\nimport { Header } from \"./Header\";\nimport { Image } from \"./Image\";\nimport { Indentation } from \"./Indentation\";\nimport { Linebreak } from \"./Linebreak\";\nimport { Link } from \"./Link\";\nimport { Loop } from \"./Loop\";\nimport { LoopEntry } from \"./LoopEntry\";\nimport { Pagebreak } from \"./Pagebreak\";\nimport { PageCondition } from \"./PageCondition\";\nimport { PageDefinition } from \"./PageDefinition\";\nimport { Paragraph } from \"./Paragraph\";\nimport { Rule } from \"./Rule\";\nimport { Section } from \"./Section\";\nimport { Selection } from \"./Selection\";\nimport { SelectionEntry } from \"./SelectionEntry\";\nimport { SpaceVertically } from \"./SpaceVertically\";\nimport { Span } from \"./Span\";\nimport { SubTotal } from \"./SubTotal\";\nimport { Table } from \"./Table\";\nimport { TableCell } from \"./TableCell\";\nimport { TableContentGroup } from \"./TableContentGroup\";\nimport { TableRow } from \"./TableRow\";\nimport { Tag } from \"./Tag\";\nimport { Text } from \"./Text\";\nimport { Variable } from \"./Variable\";\nimport { WsArea } from \"./WsArea\";\n\nexport default {\n AdjustHorizontally,\n AdvancedIllustrationArea,\n Barcode,\n CarryOver,\n ColumnDefinition,\n ColumnPosition,\n Condition,\n Directory,\n Document,\n Footer,\n Formatted,\n Header,\n Image,\n Indentation,\n Linebreak,\n Link,\n Loop,\n LoopEntry,\n Pagebreak,\n PageCondition,\n PageDefinition,\n Paragraph,\n Rule,\n Section,\n Selection,\n SelectionEntry,\n SpaceVertically,\n Span,\n SubTotal,\n Table,\n TableCell,\n TableContentGroup,\n TableRow,\n Tag,\n Text,\n Variable,\n WsArea,\n};\n"],"mappings":"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","names":["Alignment","Proto","import_docframe_types","Proto","import_docframe_types","Proto","Colors","import_docframe_types","dotenv","Proto","FormData","axios","import_docframe_types","import_docframe_types","Proto","Proto","import_docframe_types","Proto","import_docframe_types","import_docframe_types","Proto","import_docframe_types","Proto","Proto","import_docframe_types","Proto","import_docframe_types","ColumnPosition","Proto","uuidv4","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","OutputFormat","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","import_uuid","Proto","PageDefinitions","import_docframe_types","import_uuid","uuidv4","Proto","import_docframe_types","Proto","import_docframe_types","Proto","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto","import_docframe_types","Proto"]}
package/dist/index.d.cts CHANGED
@@ -588,8 +588,8 @@ declare class Document extends BranchDocumentElement<DocumentProperties> {
588
588
  constructor(content?: Content, props?: DocumentProperties);
589
589
  getParagraphFormat(name: string): ParagraphFormat | undefined;
590
590
  registerParagraphFormat(name: string, pf: ParagraphFormat): void;
591
- convertTo<Format extends keyof OutputParams>(outputFormat: Format, outputParams?: OutputParams[Format]): Promise<Blob>;
592
- convertToPDF(outputParams?: OutputParams["pdf"]): Promise<Blob>;
591
+ convertTo<Format extends keyof OutputParams>(outputFormat: Format, outputParams?: OutputParams[Format], jobParams?: Record<string, any>): Promise<Blob>;
592
+ convertToPDF(outputParams?: OutputParams["pdf"], jobParams?: Record<string, any>): Promise<Blob>;
593
593
  toDocFrame(): Proto.Node;
594
594
  }
595
595
 
package/dist/index.d.ts CHANGED
@@ -588,8 +588,8 @@ declare class Document extends BranchDocumentElement<DocumentProperties> {
588
588
  constructor(content?: Content, props?: DocumentProperties);
589
589
  getParagraphFormat(name: string): ParagraphFormat | undefined;
590
590
  registerParagraphFormat(name: string, pf: ParagraphFormat): void;
591
- convertTo<Format extends keyof OutputParams>(outputFormat: Format, outputParams?: OutputParams[Format]): Promise<Blob>;
592
- convertToPDF(outputParams?: OutputParams["pdf"]): Promise<Blob>;
591
+ convertTo<Format extends keyof OutputParams>(outputFormat: Format, outputParams?: OutputParams[Format], jobParams?: Record<string, any>): Promise<Blob>;
592
+ convertToPDF(outputParams?: OutputParams["pdf"], jobParams?: Record<string, any>): Promise<Blob>;
593
593
  toDocFrame(): Proto.Node;
594
594
  }
595
595
 
package/dist/index.js CHANGED
@@ -877,11 +877,21 @@ var Document = class extends BranchDocumentElement {
877
877
  registerParagraphFormat(name, pf) {
878
878
  this.paragraphFormats[name] = pf;
879
879
  }
880
- convertTo(outputFormat, outputParams) {
881
- return defaultConnection.convertTo(outputFormat, this, outputParams);
882
- }
883
- convertToPDF(outputParams) {
884
- return defaultConnection.convertTo("pdf" /* PDF */, this, outputParams);
880
+ convertTo(outputFormat, outputParams, jobParams) {
881
+ return defaultConnection.convertTo(
882
+ outputFormat,
883
+ this,
884
+ outputParams,
885
+ jobParams
886
+ );
887
+ }
888
+ convertToPDF(outputParams, jobParams) {
889
+ return defaultConnection.convertTo(
890
+ "pdf" /* PDF */,
891
+ this,
892
+ outputParams,
893
+ jobParams
894
+ );
885
895
  }
886
896
  /*
887
897
  public getProtoParagraphFormat(format?: ParagraphFormat): Proto.IProtoParagraphFormat {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Alignment/index.ts","../src/Border/index.ts","../src/Color/index.ts","../src/Connection/index.ts","../src/Content/AdjustHorizontally/index.ts","../src/Content/DocumentElement/index.ts","../src/Content/Text/index.ts","../src/Content/BranchDocumentElement/index.ts","../src/Content/AdvancedIllustrationArea/index.ts","../src/Content/Barcode/index.ts","../src/Measure/index.ts","../src/Measure/Measure.ts","../src/Content/ReferencePoint/index.ts","../src/Content/CarryOver/index.ts","../src/Content/ColumnDefinition/index.ts","../src/Content/Condition/index.ts","../src/Content/Directory/index.ts","../src/Content/Document/index.ts","../src/OutputFormat/index.ts","../src/Content/Footer/index.ts","../src/Content/Header/index.ts","../src/Content/PageDefinition/index.ts","../src/ParagraphFormat/index.ts","../src/Content/SpaceVertically/index.ts","../src/Font/index.ts","../src/Content/Formatted/index.ts","../src/Content/Image/index.ts","../src/Content/Indentation/index.ts","../src/Content/Linebreak/index.ts","../src/Content/Link/index.ts","../src/Content/Loop/index.ts","../src/Content/LoopEntry/index.ts","../src/Content/Pagebreak/index.ts","../src/Content/PageCondition/index.ts","../src/Content/Paragraph/index.ts","../src/Content/Rule/index.ts","../src/Content/Section/index.ts","../src/Content/Selection/index.ts","../src/Content/SelectionEntry/index.ts","../src/Content/Span/index.ts","../src/Content/SubTotal/index.ts","../src/Content/Table/index.ts","../src/Content/TableCell/index.ts","../src/Content/TableContentGroup/index.ts","../src/Content/TableRow/index.ts","../src/Content/Tag/index.ts","../src/Content/Variable/index.ts","../src/Content/WsArea/index.ts","../src/Content/index.ts","../src/index.ts"],"sourcesContent":["import Proto from \"docframe-types\";\n\nexport class HorizontalAlignment {\n public readonly value: Proto.ProtoHorizontalAlignment;\n\n constructor(value: Proto.ProtoHorizontalAlignment) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoHorizontalAlignment {\n return this.value;\n }\n}\n\nexport class VerticalAlignment {\n public readonly value: Proto.ProtoVerticalAlignment;\n\n constructor(value: Proto.ProtoVerticalAlignment) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoVerticalAlignment {\n return this.value;\n }\n}\n\nexport namespace Alignment {\n export const Horizontal = {\n Left: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_LEFT),\n Center: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_CENTER),\n Right: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_RIGHT),\n Justify: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_JUSTIFY),\n FullJustify: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_FULL_JUSTIFY),\n };\n\n export const Vertical = {\n Top: new VerticalAlignment(Proto.ProtoVerticalAlignment.TOP),\n Middle: new VerticalAlignment(Proto.ProtoVerticalAlignment.MIDDLE),\n Bottom: new VerticalAlignment(Proto.ProtoVerticalAlignment.BOTTOM),\n };\n}\n\n","import Proto from \"docframe-types\";\nimport { Color } from \"~/Color\";\nimport { AbsoluteMeasure, Sides } from \"~/Measure\";\n\nexport class Border {\n width: AbsoluteMeasure;\n color: Color;\n\n constructor(width: AbsoluteMeasure, color: Color) {\n this.width = width;\n this.color = color;\n }\n\n public toDocFrame(): Proto.ProtoBorder {\n return new Proto.ProtoBorder({\n weight: this.width.toDocFrame(),\n color: this.color.toDocFrame(),\n });\n }\n}\n\nexport class SideBorders {\n value: Sides<Border>;\n\n constructor(settings: Sides<Border>) {\n this.value = settings;\n }\n\n public toDocFrame(): Proto.ProtoSideBorders {\n return new Proto.ProtoSideBorders({\n top: this.value.top?.toDocFrame(),\n right: this.value.right?.toDocFrame(),\n bottom: this.value.bottom?.toDocFrame(),\n left: this.value.left?.toDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport class Color {\n private color: Proto.ProtoColor;\n\n static rgb(r: number, g: number, b: number): Color {\n if (r < 0 || r > 255) {\n throw new Error(`Invalid red value: ${r}`);\n }\n\n if (g < 0 || g > 255) {\n throw new Error(`Invalid green value: ${g}`);\n }\n\n if (b < 0 || b > 255) {\n throw new Error(`Invalid blue value: ${b}`);\n }\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.RGB,\n r,\n g,\n b,\n }));\n }\n\n static cmyk(c: number, m: number, y: number, k: number): Color {\n if (c < 0 || c > 100) {\n throw new Error(`Invalid cyan value: ${c}`);\n }\n\n if (m < 0 || m > 100) {\n throw new Error(`Invalid magenta value: ${m}`);\n }\n\n if (y < 0 || y > 100) {\n throw new Error(`Invalid yellow value: ${y}`);\n }\n\n if (k < 0 || k > 100) {\n throw new Error(`Invalid black value: ${k}`);\n }\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.CMYK,\n c,\n m,\n y,\n k,\n }));\n }\n\n static fromHex(hex: string): Color {\n if (hex.startsWith(\"#\")) {\n hex = hex.slice(1);\n }\n\n if (hex.length !== 6) {\n throw new Error(`Invalid hex color: ${hex}`);\n }\n\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const b = parseInt(hex.slice(4, 6), 16);\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.RGB,\n r,\n g,\n b,\n }));\n }\n\n private constructor(color: Proto.ProtoColor) {\n this.color = color;\n }\n\n\n public toDocFrame(): Proto.ProtoColor {\n return this.color;\n }\n}\n\nexport namespace Colors {\n export const white = Color.rgb(255, 255, 255);\n\n export const black = Color.cmyk(0, 0, 0, 100);\n}\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport dotenv from \"dotenv\";\n\nimport Proto from \"docframe-types\";\n\nimport { Document } from \"content/Document\";\nimport { OutputParams } from \"~/OutputFormat\";\n\n// Load environment variables from .env file\ndotenv.config();\n\nexport class Connection {\n url: string;\n token: string;\n\n constructor(url?: string, token?: string) {\n this.url = url || process.env.DOCPIPE_URL || \"http://localhost:8080\";\n this.token = token || process.env.DOCPIPE_TOKEN || \"\";\n }\n\n get docframeCallUrl() {\n return `${this.url}/api/docframe?token=${this.token}`;\n }\n\n convertTo<K extends keyof OutputParams>(\n format: K,\n doc: Document,\n outputParams?: OutputParams[K],\n jobParams?: Record<string, any>,\n ): Promise<Blob> {\n const node = doc.toDocFrame();\n\n const protoData = Proto.Node.encode(node).finish();\n\n const form = new FormData();\n\n let meta = {\n format,\n };\n\n if (outputParams) {\n meta = {\n ...meta,\n ...outputParams,\n };\n }\n\n if (jobParams) {\n meta = {\n ...meta,\n ...jobParams,\n };\n }\n\n form.append(\"meta\", JSON.stringify(meta), {\n contentType: \"application/json\",\n filename: \"meta\",\n });\n\n form.append(\"proto-data\", protoData, {\n contentType: \"application/protobuf\",\n filename: \"data.proto\",\n });\n\n return new Promise((resolve, reject) => {\n axios\n .postForm(this.docframeCallUrl, form, {\n headers: {\n ...form.getHeaders(),\n },\n responseType: \"arraybuffer\",\n })\n .then(async (res) => {\n const blob = await new Response(res.data, {\n headers: {\n \"Content-Type\": res.headers[\"content-type\"],\n },\n }).blob();\n\n resolve(blob);\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n}\n\nexport const defaultConnection = new Connection();\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface AdjustHorizontallyProperties {\n /** Minimum font size for horizontal adjustment */\n minFontSize?: Measure;\n /** Maximum font size for horizontal adjustment */\n maxFontSize?: Measure;\n}\n\nexport class AdjustHorizontally extends BranchDocumentElement<AdjustHorizontallyProperties> {\n constructor(content?: Content, props?: AdjustHorizontallyProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n adjustHorizontally: Proto.ProtoAdjustHorizontally.create({\n minFontSize: this.props?.minFontSize?.toDocFrame(),\n maxFontSize: this.props?.maxFontSize?.toDocFrame(),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport abstract class DocumentElement {\n public abstract toDocFrame(): Proto.Node;\n}\n\nexport type Content = string | DocumentElement | (DocumentElement | string)[];\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Text extends DocumentElement {\n constructor(content: string) {\n super();\n this.content = content;\n }\n\n public content: string;\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n text: Proto.ProtoText.create({\n content: this.content,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\nimport { Content, DocumentElement } from \"content/DocumentElement\";\nimport { Text } from \"content/Text\";\n\nexport abstract class BranchDocumentElement<P = never> extends DocumentElement {\n protected children: DocumentElement[] = [];\n protected _props?: P;\n\n constructor(children?: Content, props?: P) {\n super();\n\n this._props = props;\n\n if (children === undefined) {\n this.children = [];\n return;\n }\n\n this.children = documentElementsFromContent(children);\n }\n\n public appendChildren(children: DocumentElement[]): void {\n this.children = this.children.concat(children);\n }\n\n public appendChild(child: DocumentElement): void {\n this.children.push(child);\n }\n\n public prependChildren(children: DocumentElement[]): void {\n this.children = children.concat(this.children);\n }\n\n public prependChild(child: DocumentElement): void {\n this.children.unshift(child);\n }\n\n public childrenToDocFrame(): Proto.Node[] {\n return this.children.map((child) => child.toDocFrame());\n }\n\n set props(props: P | undefined) {\n this._props = props;\n }\n\n get props(): P | undefined {\n return this._props;\n }\n}\n\nfunction documentElementsFromContent(content: Content): DocumentElement[] {\n if (typeof content === \"string\") {\n return [new Text(content)];\n } else if (Array.isArray(content)) {\n return content.map(documentElementsFromContent).flat();\n } else {\n return [content];\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport type TextFlowType = \"around\" | \"no-flow\" | \"foreground\" | \"background\";\n\nfunction textFlowTypeToDocFrame(\n type: TextFlowType,\n): Proto.ProtoAdvancedIllustrationAreaTextFlowType {\n switch (type) {\n case \"around\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.AROUND;\n case \"no-flow\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.NO_FLOW;\n case \"foreground\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.FOREGROUND;\n case \"background\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.BACKGROUND;\n default:\n throw new Error(`Unknown text flow type: ${type}`);\n }\n}\n\nexport interface AdvancedIllustrationAreaProperties {\n /** UUID */\n uuid?: string;\n /** Whether the AIA is absolutely positioned */\n absolute?: boolean;\n /** Width */\n width?: Measure;\n /** Height */\n height?: Measure;\n /** X position */\n x?: Measure;\n /** Y position */\n y?: Measure;\n /** How text flows around the AIA */\n textFlow?: TextFlowType;\n /** Rotation in degrees */\n rotation?: number;\n}\n\nexport class AdvancedIllustrationArea extends BranchDocumentElement<AdvancedIllustrationAreaProperties> {\n constructor(\n content?: Content,\n props?: AdvancedIllustrationAreaProperties,\n ) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n advancedIllustrationArea:\n Proto.ProtoAdvancedIllustrationArea.create({\n uuid: this.props?.uuid,\n absolute: this.props?.absolute,\n width: this.props?.width?.toDocFrame(),\n height: this.props?.height?.toDocFrame(),\n x: this.props?.x?.toDocFrame(),\n y: this.props?.y?.toDocFrame(),\n textFlow: this.props?.textFlow\n ? textFlowTypeToDocFrame(this.props.textFlow)\n : undefined,\n rotation: this.props?.rotation,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { AbsoluteMeasure, Measure } from \"~/Measure\";\nimport {\n ReferencePoint,\n referencePointToDocFrame,\n} from \"content/ReferencePoint\";\n\nexport interface BarcodeProperties {\n type: Proto.ProtoBarcodeType;\n x: AbsoluteMeasure;\n y: AbsoluteMeasure;\n referencePoint: ReferencePoint;\n\n /**\n * Rotation in degrees, counter-clockwise\n */\n rotation: number;\n width: AbsoluteMeasure;\n height: AbsoluteMeasure;\n data: string;\n positionAbsolute: boolean;\n padding?: AbsoluteMeasure;\n code?: string;\n altText?: string;\n uuid?: string;\n}\n\nexport class Barcode extends DocumentElement {\n props: BarcodeProperties;\n\n constructor(props: BarcodeProperties) {\n super();\n\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n barcode: Proto.ProtoBarcode.create({\n type: this.props.type,\n\n positionAbsolute: this.props.positionAbsolute,\n referencePoint: referencePointToDocFrame(this.props.referencePoint),\n x: this.props.x.toDocFrame(),\n y: this.props.y.toDocFrame(),\n rotation: this.props.rotation,\n\n width: this.props.width.toDocFrame(),\n height: this.props.height.toDocFrame(),\n padding: (this.props.padding ?? Measure.zero).toDocFrame(),\n\n data: this.props.data,\n code: this.props.code,\n altText: this.props.altText,\n uuid: this.props.uuid,\n }),\n });\n }\n}\n","import { AbsoluteMeasure, Measure, SideMeasures, Sides } from \"./Measure\";\n\nexport { AbsoluteMeasure, Measure, SideMeasures, Sides };\n","import Proto from \"docframe-types\";\n\nexport type AbsoluteMeasureUnit = \"pt\" | \"cm\" | \"mm\" | \"in\" | \"px\";\n\nexport type RelativeMeasureUnit = \"%\";\nexport type MeasureUnit = AbsoluteMeasureUnit | RelativeMeasureUnit;\n\nexport class Measure<Unit = MeasureUnit> {\n readonly value: number;\n readonly unit: Unit;\n\n static zero = new Measure(0, \"pt\" as AbsoluteMeasureUnit);\n\n constructor(value: number, unit: Unit) {\n this.value = value;\n this.unit = unit;\n }\n\n public toDocFrame(): Proto.ProtoMeasure {\n switch (this.unit) {\n case \"pt\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PT,\n });\n\n case \"cm\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.CM,\n });\n\n case \"mm\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.MM,\n });\n\n case \"in\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.IN,\n });\n\n case \"px\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PX,\n });\n\n case \"%\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PERCENT,\n });\n\n default:\n throw new Error(`Unknown measure unit: ${this.unit}`);\n }\n }\n}\n\nexport class AbsoluteMeasure extends Measure<AbsoluteMeasureUnit> {}\n\nexport class SideMeasures {\n value: Sides<AbsoluteMeasure>;\n\n constructor(settings: Sides<AbsoluteMeasure>) {\n this.value = settings;\n }\n\n public toDocFrame(): Proto.ProtoSideMeasures {\n return new Proto.ProtoSideMeasures({\n top: this.value.top?.toDocFrame(),\n right: this.value.right?.toDocFrame(),\n bottom: this.value.bottom?.toDocFrame(),\n left: this.value.left?.toDocFrame(),\n });\n }\n}\n\n\nexport class Sides<T> {\n top?: T;\n right?: T;\n bottom?: T;\n left?: T;\n}\n\n/*\n\n\n\nexport class RelativeMeasure extends Measure<RelativeMeasureUnit> {\n constructor(value: number) {\n super(value, \"%\");\n }\n}\n\n\n\n\n*/","import Proto from \"docframe-types\";\n\n/**\n * A ReferencePoint is used for elements like barcodes to specify the reference point\n * of an object.\n * Example:\n * When specified reference point \"top-left\", the top-left point of a barcode is positioned\n * relative to the top-left edge of the current line or page.\n */\nexport type ReferencePoint = \"top-left\" | \"top-right\" | \"center\" | \"bottom-left\" | \"bottom-right\";\n\nexport function referencePointToDocFrame(point: ReferencePoint): Proto.ProtoImageReferencePoint {\n switch (point) {\n case \"top-left\":\n return Proto.ProtoImageReferencePoint.REF_POINT_TOP_LEFT;\n\n case \"top-right\":\n return Proto.ProtoImageReferencePoint.REF_POINT_TOP_RIGHT;\n\n case \"center\":\n return Proto.ProtoImageReferencePoint.REF_POINT_CENTER;\n\n case \"bottom-left\":\n return Proto.ProtoImageReferencePoint.REF_POINT_BOTTOM_LEFT;\n\n case \"bottom-right\":\n return Proto.ProtoImageReferencePoint.REF_POINT_BOTTOM_RIGHT;\n\n default:\n throw new Error(`Unknown reference point: ${point}`);\n }\n}","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\n/**\n * CarryOver defines content that is carried over to the next page\n * when a table or other element breaks across pages.\n */\nexport class CarryOver extends BranchDocumentElement {\n constructor(content?: Content) {\n super(content);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n carryOver: Proto.ProtoCarryOver.create({}),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nclass ColumnPositionMode {\n public readonly value: Proto.ProtoPositionMode;\n\n constructor(value: Proto.ProtoPositionMode) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoPositionMode {\n return this.value;\n }\n}\n\nexport namespace ColumnPosition {\n export const Center = new ColumnPositionMode(Proto.ProtoPositionMode.CENTER);\n export const Left = new ColumnPositionMode(Proto.ProtoPositionMode.LEFT);\n export const Folio = new ColumnPositionMode(Proto.ProtoPositionMode.FOLIO);\n export const Right = new ColumnPositionMode(Proto.ProtoPositionMode.RIGHT);\n export const ReverseFolio = new ColumnPositionMode(\n Proto.ProtoPositionMode.REVERSE_FOLIO,\n );\n}\n\nexport interface ColumnDefinitionProperties {\n width: AbsoluteMeasure;\n position: ColumnPositionMode;\n interColumnSpace: AbsoluteMeasure;\n positionOffset: AbsoluteMeasure;\n}\n\nexport class ColumnDefinition {\n props: ColumnDefinitionProperties;\n uuid: string;\n\n constructor(props: ColumnDefinitionProperties) {\n this.props = props;\n\n this.uuid = uuidv4();\n }\n\n public toDocFrame(applyImmediate: boolean): Proto.Node[] {\n const result = [\n Proto.Node.create({\n cDef: Proto.ProtoCDef.create({\n Uuid: this.uuid,\n columSettings: Proto.ProtoColumnSettings.create({\n width: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.width.toDocFrame(),\n }),\n positionOffset: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.positionOffset.toDocFrame(),\n }),\n positionMode: this.props.position.toDocFrame(),\n interColumnSpace: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.interColumnSpace.toDocFrame(),\n }),\n }),\n }),\n }),\n ];\n\n if (applyImmediate) {\n result.push(\n Proto.Node.create({\n applyCDef: Proto.ProtoApplyProtoCDef.create({\n cDefUuid: this.uuid,\n }),\n }),\n );\n }\n\n return result;\n }\n}\n\nexport const ColumnDefinitions = {\n A4: {\n Single: new ColumnDefinition({\n width: new AbsoluteMeasure(490, \"pt\"),\n position: ColumnPosition.Left,\n positionOffset: new AbsoluteMeasure(70, \"pt\"),\n interColumnSpace: new AbsoluteMeasure(30, \"pt\"),\n }),\n Double: new ColumnDefinition({\n width: new AbsoluteMeasure(230, \"pt\"),\n position: ColumnPosition.Left,\n positionOffset: new AbsoluteMeasure(70, \"pt\"),\n interColumnSpace: new AbsoluteMeasure(30, \"pt\"),\n }),\n },\n};\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface ConditionProperties {\n /** UUID */\n uuid?: string;\n /** Code expression to evaluate */\n code?: string;\n /** Pre-evaluated result */\n result?: boolean;\n /** Whether the condition should be re-evaluated on regeneration */\n regenerate?: boolean;\n}\n\nexport class Condition extends BranchDocumentElement<ConditionProperties> {\n constructor(content?: Content, props?: ConditionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n condition: Proto.ProtoCondition.create({\n uuid: this.props?.uuid,\n code: this.props?.code,\n result: this.props?.result,\n regenerate: this.props?.regenerate,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport type SemanticType = \"none\" | \"part\" | \"art\" | \"sect\" | \"div\";\n\nfunction semanticTypeToDocFrame(type: SemanticType): Proto.ProtoSemanticType {\n switch (type) {\n case \"none\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_NONE;\n case \"part\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_PART;\n case \"art\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_ART;\n case \"sect\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_SECT;\n case \"div\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_DIV;\n default:\n throw new Error(`Unknown semantic type: ${type}`);\n }\n}\n\nexport interface DirectoryProperties {\n name?: string;\n editable?: boolean;\n semanticType?: SemanticType;\n}\n\nexport class Directory extends BranchDocumentElement<DirectoryProperties> {\n constructor(content?: Content, props?: DirectoryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n directory: Proto.ProtoDirectory.create({\n name: this.props?.name,\n editable: this.props?.editable,\n semanticType: this.props?.semanticType\n ? semanticTypeToDocFrame(this.props.semanticType)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { defaultConnection } from \"~/Connection\";\nimport { OutputFormat, OutputParams } from \"~/OutputFormat\";\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { ColumnDefinition, ColumnDefinitions } from \"content/ColumnDefinition\";\nimport { Content } from \"content/DocumentElement\";\nimport { Footer } from \"content/Footer\";\nimport { Header } from \"content/Header\";\nimport { PageDefinition, PageDefinitions } from \"content/PageDefinition\";\nimport { ParagraphFormat } from \"~/ParagraphFormat\";\nimport { SpaceVertically } from \"content/SpaceVertically\";\nimport { StandardFonts } from \"~/Font\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport interface DocumentProperties {\n pageDefinition: PageDefinition;\n columnDefinition: ColumnDefinition;\n\n defaultHeader?: Header;\n defaultFooter?: Footer;\n\n paragraphFormats?: Record<string, ParagraphFormat>;\n}\n\nexport class Document extends BranchDocumentElement<DocumentProperties> {\n paragraphFormats: Record<string, ParagraphFormat> = {};\n\n constructor(content?: Content, props?: DocumentProperties) {\n super(content, props);\n\n if (props === undefined) {\n this.props = {\n pageDefinition: PageDefinitions.A4,\n columnDefinition: ColumnDefinitions.A4.Single,\n defaultHeader: new Header(\n new SpaceVertically(new AbsoluteMeasure(40, \"pt\")),\n ),\n defaultFooter: new Footer(\n new SpaceVertically(new AbsoluteMeasure(40, \"pt\")),\n ),\n };\n } else {\n this.props = props;\n }\n\n this.paragraphFormats = this.props.paragraphFormats || {\n Text: new ParagraphFormat({\n font: StandardFonts.Helvetica,\n fontSize: new AbsoluteMeasure(12, \"pt\"),\n lineFeed: new AbsoluteMeasure(14, \"pt\"),\n indentionWidth: new AbsoluteMeasure(15, \"pt\"),\n name: \"Text\",\n default: true,\n }),\n };\n }\n\n getParagraphFormat(name: string): ParagraphFormat | undefined {\n return this.paragraphFormats[name];\n }\n\n registerParagraphFormat(name: string, pf: ParagraphFormat) {\n this.paragraphFormats[name] = pf;\n }\n\n convertTo<Format extends keyof OutputParams>(\n outputFormat: Format,\n outputParams?: OutputParams[Format],\n ): Promise<Blob> {\n return defaultConnection.convertTo(outputFormat, this, outputParams);\n }\n\n convertToPDF(outputParams?: OutputParams[\"pdf\"]): Promise<Blob> {\n return defaultConnection.convertTo(OutputFormat.PDF, this, outputParams);\n }\n\n /*\n public getProtoParagraphFormat(format?: ParagraphFormat): Proto.IProtoParagraphFormat {\n if (!format) {\n return this.defaultParagraphFormat;\n }\n\n if (!format.format.name) {\n throw new Error(\"ParagraphFormat must have a name\");\n }\n\n if (!this.paragraphFormats[format.format.name]) {\n this.paragraphFormats[format.format.name] = format.toDocFrame();\n }\n\n return this.paragraphFormats[format.format.name];\n }\n */\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const docSettings = Object.values(this.paragraphFormats)\n .map((pf) =>\n Proto.Node.create({\n paragraphFormat: pf.toDocFrame(),\n }),\n )\n .concat([\n Proto.Node.create({\n pDef: props.pageDefinition.toDocFrame(),\n }),\n Proto.Node.create({\n applyPDef: Proto.ProtoApplyProtoPDef.create({\n pDefUuid: props.pageDefinition.uuid,\n }),\n }),\n ...props.columnDefinition.toDocFrame(true),\n ]);\n\n if (props.defaultHeader) {\n docSettings.push(props.defaultHeader.toDocFrame());\n }\n\n if (props.defaultFooter) {\n docSettings.push(props.defaultFooter.toDocFrame());\n }\n\n const content = this.childrenToDocFrame();\n\n for (const format of Object.values(this.paragraphFormats)) {\n docSettings.push(\n Proto.Node.create({\n paragraphFormat: format.toDocFrame(),\n }),\n );\n }\n\n return Proto.Node.create({\n children: docSettings.concat(...content),\n });\n }\n}\n","enum OutputFormat {\n PDF = \"pdf\",\n PNG = \"png\",\n JPEG = \"jpeg\",\n HTML = \"html\",\n PS = \"ps\",\n TEXT = \"text\",\n}\n\ntype OutputParams = {\n [OutputFormat.HTML]: {};\n [OutputFormat.PDF]: {};\n [OutputFormat.JPEG]: {};\n [OutputFormat.PS]: {};\n [OutputFormat.TEXT]: {};\n [OutputFormat.PNG]: {\n /**\n * The width of the output in pixels.\n * @default The width of the document in pixels.\n */\n width?: number;\n\n /**\n * The height of the output in pixels.\n * @default The height of the document in pixels.\n */\n height?: number;\n\n /**\n * The resolution of the output in pixels per inch.\n * @default 300 dpi.\n */\n dpi?: number;\n };\n}\n\nexport {\n OutputFormat,\n OutputParams,\n}","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nimport Proto from \"docframe-types\";\n\nexport type FooterMode = \"append-initial\" | \"append\" | \"extend\" | \"replace\";\n\nfunction footerModeToDocFrame(mode: FooterMode): Proto.ProtoFooterMode {\n switch (mode) {\n case \"append-initial\":\n return Proto.ProtoFooterMode.FOOTER_MODE_APPEND_INITIAL;\n case \"append\":\n return Proto.ProtoFooterMode.FOOTER_MODE_APPEND;\n case \"extend\":\n return Proto.ProtoFooterMode.FOOTER_MODE_EXTEND;\n case \"replace\":\n return Proto.ProtoFooterMode.FOOTER_MODE_REPLACE;\n default:\n throw new Error(`Unknown footer mode: ${mode}`);\n }\n}\n\nexport interface FooterProperties {\n mode?: FooterMode;\n}\n\nexport class Footer extends BranchDocumentElement<FooterProperties> {\n constructor(content?: Content, props?: FooterProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n footer: Proto.ProtoFooter.create({\n mode: this.props?.mode\n ? footerModeToDocFrame(this.props.mode)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nimport Proto from \"docframe-types\";\n\nexport type HeaderMode = \"append-initial\" | \"append\" | \"extend\" | \"replace\";\n\nfunction headerModeToDocFrame(mode: HeaderMode): Proto.ProtoHeaderMode {\n switch (mode) {\n case \"append-initial\":\n return Proto.ProtoHeaderMode.HEADER_MODE_APPEND_INITIAL;\n case \"append\":\n return Proto.ProtoHeaderMode.HEADER_MODE_APPEND;\n case \"extend\":\n return Proto.ProtoHeaderMode.HEADER_MODE_EXTEND;\n case \"replace\":\n return Proto.ProtoHeaderMode.HEADER_MODE_REPLACE;\n default:\n throw new Error(`Unknown header mode: ${mode}`);\n }\n}\n\nexport interface HeaderProperties {\n mode?: HeaderMode;\n}\n\nexport class Header extends BranchDocumentElement<HeaderProperties> {\n constructor(content?: Content, props?: HeaderProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n header: Proto.ProtoHeader.create({\n mode: this.props?.mode\n ? headerModeToDocFrame(this.props.mode)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\nimport { v4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport class PageDefinition {\n width?: AbsoluteMeasure;\n height?: AbsoluteMeasure;\n uuid: string;\n\n constructor(width?: AbsoluteMeasure, height?: AbsoluteMeasure) {\n this.width = width;\n this.height = height;\n\n this.uuid = v4();\n }\n\n public toDocFrame(): Proto.ProtoPDef {\n return new Proto.ProtoPDef({\n pageDepth: new Proto.ProtoBoxedMeasure({\n isNull: this.height === undefined,\n value: this.height?.toDocFrame(),\n }),\n pageWidth: new Proto.ProtoBoxedMeasure({\n isNull: this.width === undefined,\n value: this.width?.toDocFrame(),\n }),\n Uuid: this.uuid,\n });\n }\n}\n\nexport namespace PageDefinitions {\n export const A3 = new PageDefinition(\n new AbsoluteMeasure(297, \"mm\"),\n new AbsoluteMeasure(420, \"mm\"),\n );\n\n export const A4 = new PageDefinition(\n new AbsoluteMeasure(210, \"mm\"),\n new AbsoluteMeasure(297, \"mm\"),\n );\n\n export const A5 = new PageDefinition(\n new AbsoluteMeasure(148, \"mm\"),\n new AbsoluteMeasure(210, \"mm\"),\n );\n}\n","import Proto from \"docframe-types\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\nimport { Font } from \"~/Font\";\nimport { HorizontalAlignment } from \"~/Alignment\";\n\nexport interface ParagraphFormatProperties {\n default?: boolean;\n name?: string;\n\n alignment?: HorizontalAlignment;\n\n font?: Font;\n fontSize?: AbsoluteMeasure;\n characterWidth?: AbsoluteMeasure;\n characterSpacing?: AbsoluteMeasure;\n lineFeed?: AbsoluteMeasure;\n bold?: boolean;\n italic?: boolean;\n\n indentionLevel?: number;\n indentionWidth?: AbsoluteMeasure;\n\n spaceAbove?: AbsoluteMeasure;\n spaceBelow?: AbsoluteMeasure;\n}\n\nexport class ParagraphFormat {\n props: ParagraphFormatProperties;\n\n constructor(props: ParagraphFormatProperties) {\n this.props = props;\n\n this.props.name = props.name || uuidv4();\n }\n\n public toDocFrame(): Proto.IProtoParagraphFormat {\n let format: Proto.IProtoParagraphFormat = {\n default: Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.default || false,\n }),\n name: Proto.ProtoBoxedString.create({\n isNull: false,\n value: this.props.name,\n }),\n };\n\n if (this.props.alignment) {\n format.alignment = Proto.ProtoBoxedHorizontalAlignment.create({\n isNull: false,\n value: this.props.alignment.toDocFrame(),\n });\n }\n\n if (this.props.font) {\n format.font = Proto.ProtoBoxedFont.create({\n isNull: false,\n value: this.props.font.toDocFrame(),\n });\n }\n\n if (this.props.fontSize) {\n format.fontSize = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.fontSize.toDocFrame(),\n });\n }\n\n if (this.props.characterWidth) {\n format.characterWidth = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.characterWidth.toDocFrame(),\n });\n }\n\n if (this.props.characterSpacing) {\n format.characterSpacing = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.characterSpacing.toDocFrame(),\n });\n }\n\n if (this.props.lineFeed) {\n format.lineFeed = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.lineFeed.toDocFrame(),\n });\n }\n\n if (this.props.indentionLevel !== undefined) {\n format.indentionLevel = Proto.ProtoBoxedInt32.create({\n isNull: false,\n value: this.props.indentionLevel,\n });\n }\n\n if (this.props.indentionWidth) {\n format.indentionWidth = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.indentionWidth.toDocFrame(),\n });\n }\n\n if (this.props.bold !== undefined) {\n format.bold = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: !!this.props.bold,\n });\n }\n\n if (this.props.italic !== undefined) {\n format.italic = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: !!this.props.italic,\n });\n }\n\n if (this.props.spaceAbove) {\n format.spaceAbove = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.spaceAbove.toDocFrame(),\n });\n }\n\n if (this.props.spaceBelow) {\n format.spaceBelow = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.spaceBelow.toDocFrame(),\n });\n }\n\n return Proto.ProtoParagraphFormat.create(format);\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport class SpaceVertically extends DocumentElement {\n space: AbsoluteMeasure;\n\n constructor(space: AbsoluteMeasure) {\n super();\n\n this.space = space;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n spaceVertically: Proto.ProtoSpaceVertically.create({\n space: this.space.toDocFrame(),\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport class Font {\n private name: string;\n\n constructor(name: string) {\n this.name = name;\n }\n\n public toDocFrame(): Proto.ProtoFont {\n return Proto.ProtoFont.create({\n name: this.name,\n // TODO: suppot font mapping for docframe step\n id: 5\n });\n }\n}\n\nexport const StandardFonts = {\n Helvetica: new Font(\"helvetica\"),\n};\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Formatted extends DocumentElement {\n constructor(doctypeContent: string | undefined, htmlContent?: string) {\n super();\n this.content = {\n doctype: doctypeContent,\n html: htmlContent,\n };\n }\n\n public content: {\n doctype: string | undefined;\n html: string | undefined;\n };\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n formatted: Proto.ProtoFormatted.create({\n doctypeContent: this.content.doctype,\n htmlContent: this.content.html,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\nimport {\n ReferencePoint,\n referencePointToDocFrame,\n} from \"content/ReferencePoint\";\n\nexport type ImageScaleType = \"relative\" | \"absolute\" | \"relative-to-column\";\n\nfunction imageScaleTypeToDocFrame(\n type: ImageScaleType,\n): Proto.ProtoImageScaleType {\n switch (type) {\n case \"relative\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_RELATIVE;\n case \"absolute\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_ABSOLUTE;\n case \"relative-to-column\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_RELATIVE_TO_COLUMN;\n default:\n throw new Error(`Unknown image scale type: ${type}`);\n }\n}\n\nexport interface FlipSettings {\n x?: boolean;\n y?: boolean;\n}\n\nexport interface CropSettings {\n x?: Measure;\n y?: Measure;\n width?: Measure;\n height?: Measure;\n}\n\nexport interface ImageProperties {\n /** Alternative text for accessibility */\n alt?: string;\n /** Image name */\n name?: string;\n /** Image source URL or path */\n src?: string;\n /** Image filename */\n filename?: string;\n /** Scale factor (e.g. 1.0 = 100%) */\n scale?: number;\n /** Scale relative to column width (e.g. 0.5 = 50% of column) */\n columnScale?: number;\n /** Image width */\n width?: Measure;\n /** Image height */\n height?: Measure;\n /** X position */\n x?: Measure;\n /** Y position */\n y?: Measure;\n /** Whether the image is positioned absolutely */\n positionAbsolute?: boolean;\n /** Rotation in degrees */\n rotation?: number;\n /** Flip settings */\n flip?: FlipSettings;\n /** Crop settings */\n crop?: CropSettings;\n /** Reference point for positioning */\n referencePoint?: ReferencePoint;\n /** Hyperlink URL */\n hyperlink?: string;\n /** Scale type */\n scaleType?: ImageScaleType;\n /** UUID */\n uuid?: string;\n /** Inline image content as base64-encoded string */\n imageContent?: string;\n}\n\nexport class Image extends DocumentElement {\n props: ImageProperties;\n\n constructor(props: ImageProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n const p = this.props;\n\n const image: Proto.IProtoImage = {\n alt: p.alt,\n name: p.name,\n src: p.src,\n filename: p.filename,\n rotation: p.rotation,\n hyperlink: p.hyperlink,\n uuid: p.uuid,\n imageContent: p.imageContent,\n };\n\n if (p.scale !== undefined) {\n image.scale = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: p.scale,\n });\n }\n\n if (p.columnScale !== undefined) {\n image.columnScale = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: p.columnScale,\n });\n }\n\n if (p.width) {\n image.width = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.width.toDocFrame(),\n });\n }\n\n if (p.height) {\n image.height = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.height.toDocFrame(),\n });\n }\n\n if (p.x) {\n image.x = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.x.toDocFrame(),\n });\n }\n\n if (p.y) {\n image.y = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.y.toDocFrame(),\n });\n }\n\n if (p.positionAbsolute !== undefined) {\n image.positionAbsolute = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: p.positionAbsolute,\n });\n }\n\n if (p.flip) {\n image.flipSettings = Proto.ProtoFlipSettings.create({\n x: p.flip.x,\n y: p.flip.y,\n });\n }\n\n if (p.crop) {\n const cropSettings: Proto.IProtoCropSettings = {};\n if (p.crop.x) {\n cropSettings.x = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.x.toDocFrame(),\n });\n }\n if (p.crop.y) {\n cropSettings.y = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.y.toDocFrame(),\n });\n }\n if (p.crop.width) {\n cropSettings.width = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.width.toDocFrame(),\n });\n }\n if (p.crop.height) {\n cropSettings.height = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.height.toDocFrame(),\n });\n }\n image.cropSettings = Proto.ProtoCropSettings.create(cropSettings);\n }\n\n if (p.referencePoint) {\n image.referencePoint = referencePointToDocFrame(p.referencePoint);\n }\n\n if (p.scaleType) {\n image.scaleType = imageScaleTypeToDocFrame(p.scaleType);\n }\n\n return Proto.Node.create({\n image: Proto.ProtoImage.create(image),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface IndentationProperties {\n /** Left indentation */\n left?: Measure;\n /** Right indentation */\n right?: Measure;\n /** UUID */\n uuid?: string;\n}\n\nexport class Indentation extends BranchDocumentElement<IndentationProperties> {\n constructor(content?: Content, props?: IndentationProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n const indent: Proto.IProtoIndentation = {\n uuid: this.props?.uuid,\n };\n\n if (this.props?.left) {\n indent.left = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.left.toDocFrame(),\n });\n }\n\n if (this.props?.right) {\n indent.right = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.right.toDocFrame(),\n });\n }\n\n return Proto.Node.create({\n indentation: Proto.ProtoIndentation.create(indent),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Linebreak extends DocumentElement {\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n linebreak: Proto.ProtoLinebreak.create({}),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LinkProperties {\n /** The URL to link to */\n url: string;\n}\n\nexport class Link extends BranchDocumentElement<LinkProperties> {\n constructor(content?: Content, url?: string) {\n super(content, url ? { url } : undefined);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n link: Proto.ProtoLink.create({\n url: this.props?.url,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LoopProperties {\n /** Data path to iterate over */\n path?: string;\n /** UUID */\n uuid?: string;\n}\n\nexport class Loop extends BranchDocumentElement<LoopProperties> {\n constructor(content?: Content, props?: LoopProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n loop: Proto.ProtoLoop.create({\n path: this.props?.path,\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LoopEntryProperties {\n /** Data path for this loop entry */\n path?: string;\n /** Index of this entry in the loop */\n index?: number;\n /** UUID */\n uuid?: string;\n}\n\nexport class LoopEntry extends BranchDocumentElement<LoopEntryProperties> {\n constructor(content?: Content, props?: LoopEntryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n loopEntry: Proto.ProtoLoopEntry.create({\n path: this.props?.path,\n index: this.props?.index,\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Pagebreak extends DocumentElement {\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n newPage: Proto.ProtoNewPage.create({}),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface PageConditionProperties {\n /** UUID */\n uuid?: string;\n /** Code expression to evaluate per page */\n code?: string;\n}\n\nexport class PageCondition extends BranchDocumentElement<PageConditionProperties> {\n constructor(content?: Content, props?: PageConditionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n pageCondition: Proto.ProtoPageCondition.create({\n uuid: this.props?.uuid,\n code: this.props?.code,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\n\nimport Proto from \"docframe-types\";\nimport { ParagraphFormat } from \"~/ParagraphFormat\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface ParagraphSettings {\n paragraphFormatName?: string;\n overwrite?: ParagraphFormat;\n}\n\nexport class Paragraph extends BranchDocumentElement<ParagraphSettings> {\n constructor(\n content?: Content,\n paragraphFormatName?: string | ParagraphFormat,\n overwrite?: ParagraphFormat,\n ) {\n super(content, {\n overwrite,\n paragraphFormatName:\n typeof paragraphFormatName === \"string\"\n ? paragraphFormatName\n : paragraphFormatName?.props?.name,\n });\n }\n\n public toDocFrame(): Proto.Node {\n const par = {} as Proto.IProtoParagraph;\n\n if (this.props!.overwrite) {\n par.overwrite = this.props!.overwrite.toDocFrame();\n }\n\n if (this.props!.paragraphFormatName) {\n par.format = Proto.ProtoParagraphFormat.create({\n name: Proto.ProtoBoxedString.create({\n isNull: false,\n value: this.props!.paragraphFormatName,\n }),\n });\n }\n\n return Proto.Node.create({\n paragraph: Proto.ProtoParagraph.create(par),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\nimport { Color } from \"~/Color\";\n\nexport type RuleStyle =\n | \"solid\"\n | \"sparse-shading\"\n | \"medium-shading\"\n | \"dense-shading\"\n | \"light-dotted\"\n | \"medium-dotted\"\n | \"heavy-dotted\"\n | \"light-dashed\"\n | \"medium-dashed\"\n | \"heavy-dashed\"\n | \"dash-pattern\"\n | \"double\";\n\nfunction ruleStyleToDocFrame(style: RuleStyle): Proto.ProtoRuleStyle {\n switch (style) {\n case \"solid\":\n return Proto.ProtoRuleStyle.SOLID;\n case \"sparse-shading\":\n return Proto.ProtoRuleStyle.SPARSE_SHADING;\n case \"medium-shading\":\n return Proto.ProtoRuleStyle.MEDIUM_SHADING;\n case \"dense-shading\":\n return Proto.ProtoRuleStyle.DENSE_SHADING;\n case \"light-dotted\":\n return Proto.ProtoRuleStyle.LIGHT_DOTTED;\n case \"medium-dotted\":\n return Proto.ProtoRuleStyle.MEDIUM_DOTTED;\n case \"heavy-dotted\":\n return Proto.ProtoRuleStyle.HEAVY_DOTTED;\n case \"light-dashed\":\n return Proto.ProtoRuleStyle.LIGHT_DASHED;\n case \"medium-dashed\":\n return Proto.ProtoRuleStyle.MEDIUM_DASHED;\n case \"heavy-dashed\":\n return Proto.ProtoRuleStyle.HEAVY_DASHED;\n case \"dash-pattern\":\n return Proto.ProtoRuleStyle.DASH_PATTERN;\n case \"double\":\n return Proto.ProtoRuleStyle.DOUBLE;\n default:\n throw new Error(`Unknown rule style: ${style}`);\n }\n}\n\nexport type RuleMode = \"normal\" | \"boundary\";\n\nfunction ruleModeToDocFrame(mode: RuleMode): Proto.ProtoRuleMode {\n switch (mode) {\n case \"normal\":\n return Proto.ProtoRuleMode.NORMAL;\n case \"boundary\":\n return Proto.ProtoRuleMode.BOUNDARY;\n default:\n throw new Error(`Unknown rule mode: ${mode}`);\n }\n}\n\nexport interface RuleBoundaries {\n start?: Measure;\n end?: Measure;\n}\n\nexport interface RuleProperties {\n /** Horizontal offset */\n xOffset?: Measure;\n /** Vertical offset */\n yOffset?: Measure;\n /** Width of the rule */\n width?: Measure;\n /** Thickness of the rule line */\n thickness?: Measure;\n /** Rotation in degrees */\n rotation?: number;\n /** Rule color */\n color?: Color;\n /** Rule style (solid, dashed, dotted, etc.) */\n style?: RuleStyle;\n /** Rule mode */\n mode?: RuleMode;\n /** Rule boundaries for boundary mode */\n boundaries?: RuleBoundaries;\n}\n\nexport class Rule extends DocumentElement {\n props: RuleProperties;\n\n constructor(props: RuleProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n const rule: Proto.IProtoRule = {\n xOffset: this.props.xOffset?.toDocFrame(),\n yOffset: this.props.yOffset?.toDocFrame(),\n width: this.props.width?.toDocFrame(),\n thickness: this.props.thickness?.toDocFrame(),\n rotation: this.props.rotation,\n color: this.props.color?.toDocFrame(),\n };\n\n if (this.props.style) {\n rule.style = ruleStyleToDocFrame(this.props.style);\n }\n\n if (this.props.mode) {\n rule.mode = ruleModeToDocFrame(this.props.mode);\n }\n\n if (this.props.boundaries) {\n rule.boundaries = Proto.ProtoRuleBoundaries.create({\n start: this.props.boundaries.start?.toDocFrame(),\n end: this.props.boundaries.end?.toDocFrame(),\n });\n }\n\n return Proto.Node.create({\n rule: Proto.ProtoRule.create(rule),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SectionProperties {\n uuid?: string;\n /** UUID of the column definition to apply to this section */\n cDefUuid?: string;\n}\n\nexport class Section extends BranchDocumentElement<SectionProperties> {\n constructor(content?: Content, props?: SectionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n section: Proto.ProtoSection.create({\n uuid: this.props?.uuid,\n cDefUuid: this.props?.cDefUuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SelectionProperties {\n /** UUID */\n uuid?: string;\n /** Internal name for the selection */\n internalName?: string;\n /** Display name */\n name?: string;\n /** Whether multiple entries can be selected */\n multi?: boolean;\n /** Minimum number of selections required */\n min?: number;\n /** Maximum number of selections allowed */\n max?: number;\n}\n\nexport class Selection extends BranchDocumentElement<SelectionProperties> {\n constructor(content?: Content, props?: SelectionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n selection: Proto.ProtoSelection.create({\n uuid: this.props?.uuid,\n internalName: this.props?.internalName,\n name: this.props?.name,\n multi: this.props?.multi,\n min: this.props?.min,\n max: this.props?.max,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SelectionEntryProperties {\n /** UUID */\n uuid?: string;\n /** Internal name for the selection entry */\n internalName?: string;\n /** Display name */\n name?: string;\n /** Whether this entry is selected */\n selected?: boolean;\n}\n\nexport class SelectionEntry extends BranchDocumentElement<SelectionEntryProperties> {\n constructor(content?: Content, props?: SelectionEntryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n selectionEntry: Proto.ProtoSelectionEntry.create({\n uuid: this.props?.uuid,\n internalName: this.props?.internalName,\n name: this.props?.name,\n selected: this.props?.selected,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Color } from \"~/Color\";\n\nexport interface SpanProperties {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strikethrough?: boolean;\n color?: Color;\n subscript?: boolean;\n superscript?: boolean;\n}\n\nexport class Span extends BranchDocumentElement<SpanProperties> {\n constructor(content?: Content, props?: SpanProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n let bold: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.bold !== undefined) {\n bold = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.bold,\n });\n }\n\n let italic: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.italic !== undefined) {\n italic = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.italic,\n });\n }\n\n let underline: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.underline !== undefined) {\n underline = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.underline,\n });\n }\n\n let strikethrough: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.strikethrough !== undefined) {\n strikethrough = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.strikethrough,\n });\n }\n\n let subscript: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.subscript !== undefined) {\n subscript = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.subscript,\n });\n }\n\n let superscript: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.superscript !== undefined) {\n superscript = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.superscript,\n });\n }\n\n return Proto.Node.create({\n span: Proto.ProtoSpan.create({\n bold: bold,\n italic: italic,\n underline: underline,\n strikethrough: strikethrough,\n color: this.props?.color?.toDocFrame(),\n subscript: subscript,\n superscript: superscript,\n }),\n\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport type SubTotalPosition = \"above-footer\" | \"below-content\";\n\nfunction subTotalPositionToDocFrame(\n pos: SubTotalPosition,\n): Proto.ProtoSubTotalPosition {\n switch (pos) {\n case \"above-footer\":\n return Proto.ProtoSubTotalPosition.POSITION_ABOVE_FOOTER;\n case \"below-content\":\n return Proto.ProtoSubTotalPosition.POSITION_BELOW_CONTENT;\n default:\n throw new Error(`Unknown sub total position: ${pos}`);\n }\n}\n\nexport interface SubTotalProperties {\n /** Whether to apply immediately */\n applyImmediate?: boolean;\n /** Position of the sub total */\n position?: SubTotalPosition;\n /** Height of the sub total area */\n height?: Measure;\n}\n\nexport class SubTotal extends BranchDocumentElement<SubTotalProperties> {\n constructor(content?: Content, props?: SubTotalProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n subTotal: Proto.ProtoSubTotal.create({\n applyImmediate: this.props?.applyImmediate,\n position: this.props?.position\n ? subTotalPositionToDocFrame(this.props.position)\n : undefined,\n height: this.props?.height?.toDocFrame(),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface TableSettings {\n width?: Measure;\n xOffset?: Measure;\n leftMeasure?: boolean;\n repeatHeader?: number;\n}\n\nexport class Table extends BranchDocumentElement<TableSettings> {\n constructor(content?: Content, props?: TableSettings) {\n super(content, props || {});\n if (!this.props!.xOffset) {\n this.props!.xOffset = Measure.zero;\n }\n }\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const settings: Proto.IProtoTableSettings = {\n width: props.width?.toDocFrame(),\n xOffset: props.xOffset?.toDocFrame(),\n leftMeasure: Proto.ProtoBoxedBool.create({\n isNull: false,\n value: props.leftMeasure ?? false,\n }),\n };\n\n if (props.repeatHeader !== undefined) {\n settings.repeatHeader = Proto.ProtoBoxedUint32.create({\n isNull: false,\n value: props.repeatHeader,\n });\n }\n\n return Proto.Node.create({\n table: Proto.ProtoTable.create({\n settings: Proto.ProtoTableSettings.create(settings),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure, SideMeasures } from \"~/Measure\";\nimport { HorizontalAlignment, VerticalAlignment } from \"~/Alignment\";\nimport { Color } from \"~/Color\";\nimport { SideBorders } from \"~/Border\";\n\nexport interface TableCellProperties {\n alignment?: HorizontalAlignment;\n backgroundColor?: Color;\n border?: SideBorders;\n margin?: SideMeasures;\n padding?: SideMeasures;\n verticalAlignment?: VerticalAlignment;\n width?: Measure;\n rotation?: number;\n defaultParagraphFormat?: string;\n}\n\nexport class TableCell extends BranchDocumentElement<TableCellProperties> {\n constructor(content?: Content, props?: TableCellProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const settings: Proto.IProtoTableCellSettings = {\n align: Proto.ProtoBoxedHorizontalAlignment.create({\n isNull: false,\n value:\n props!.alignment?.toDocFrame() ||\n Proto.ProtoHorizontalAlignment.ALIGN_LEFT,\n }),\n backgroundColor: props.backgroundColor?.toDocFrame(),\n border: props.border?.toDocFrame(),\n margin: props.margin?.toDocFrame(),\n padding: props.padding?.toDocFrame(),\n valign: Proto.ProtoBoxedVerticalAlignment.create({\n isNull: false,\n value:\n props.verticalAlignment?.toDocFrame() ||\n Proto.ProtoVerticalAlignment.TOP,\n }),\n width: props.width?.toDocFrame(),\n };\n\n if (props.rotation !== undefined) {\n settings.rotation = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: props.rotation,\n });\n }\n\n if (props.defaultParagraphFormat !== undefined) {\n settings.defaultParagraphFormat = Proto.ProtoBoxedString.create({\n isNull: false,\n value: props.defaultParagraphFormat,\n });\n }\n\n return Proto.Node.create({\n tableCell: Proto.ProtoTableCell.create({\n settings: Proto.ProtoTableCellSettings.create(settings),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface TableContentGroupProperties {\n /** UUID */\n uuid?: string;\n}\n\nexport class TableContentGroup extends BranchDocumentElement<TableContentGroupProperties> {\n constructor(content?: Content, props?: TableContentGroupProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tableContentGroup: Proto.ProtoTableContentGroup.create({\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport interface TableRowProperties {\n minHeight?: AbsoluteMeasure;\n}\n\nexport class TableRow extends BranchDocumentElement<TableRowProperties> {\n constructor(content?: Content, props?: TableRowProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tableRow: Proto.ProtoTableRow.create({\n settings: Proto.ProtoTableRowSettings.create({\n minHeight: this.props!.minHeight?.toDocFrame(),\n }),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport interface TagProperties {\n /** Tag name */\n name: string;\n /** UUID */\n uuid?: string;\n /** Tag parameters */\n params?: string[];\n /** Name code expression */\n nameCode?: string;\n /** Whether name is in code mode */\n codeMode?: boolean;\n}\n\nexport class Tag extends DocumentElement {\n props: TagProperties;\n\n constructor(props: TagProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tag: Proto.ProtoTag.create({\n name: this.props.name,\n uuid: this.props.uuid,\n params: this.props.params,\n nameCode: this.props.nameCode,\n codeMode: this.props.codeMode,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport type VariableSpecialType =\n | \"table-number\"\n | \"doc-page-count\"\n | \"doc-cur-page\"\n | \"cur-page\"\n | \"page-count\"\n | \"prev-page\"\n | \"section-page\"\n | \"updated-at\"\n | \"generated-at\";\n\nfunction specialTypeToDocFrame(\n type: VariableSpecialType,\n): Proto.ProtoVariableSpecialType {\n switch (type) {\n case \"table-number\":\n return Proto.ProtoVariableSpecialType.TABLE_NUMBER;\n case \"doc-page-count\":\n return Proto.ProtoVariableSpecialType.DOC_PAGE_COUNT;\n case \"doc-cur-page\":\n return Proto.ProtoVariableSpecialType.DOC_CUR_PAGE;\n case \"cur-page\":\n return Proto.ProtoVariableSpecialType.CUR_PAGE;\n case \"page-count\":\n return Proto.ProtoVariableSpecialType.PAGE_COUNT;\n case \"prev-page\":\n return Proto.ProtoVariableSpecialType.PREV_PAGE;\n case \"section-page\":\n return Proto.ProtoVariableSpecialType.SECTION_PAGE;\n case \"updated-at\":\n return Proto.ProtoVariableSpecialType.UPDATED_AT;\n case \"generated-at\":\n return Proto.ProtoVariableSpecialType.GENERATED_AT;\n default:\n throw new Error(`Unknown variable special type: ${type}`);\n }\n}\n\nexport interface VariableProperties {\n /** Data path to the variable */\n path?: string;\n /** Static content value */\n content?: string;\n /** UUID of the format to apply */\n formatUuid?: string;\n /** Special type of the variable (e.g. page number) */\n specialType?: VariableSpecialType;\n /** UUID */\n uuid?: string;\n}\n\nexport class Variable extends DocumentElement {\n props: VariableProperties;\n\n constructor(props: VariableProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n variable: Proto.ProtoVariable.create({\n path: this.props.path,\n content: this.props.content,\n formatUuid: this.props.formatUuid,\n specialType: this.props.specialType\n ? specialTypeToDocFrame(this.props.specialType)\n : undefined,\n uuid: this.props.uuid,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\n/**\n * WsArea (Widow/orphan and Split area) wraps content to control\n * page break behavior.\n */\nexport class WsArea extends BranchDocumentElement {\n constructor(content?: Content) {\n super(content);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n wsArea: Proto.ProtoWsArea.create({}),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { AdjustHorizontally } from \"./AdjustHorizontally\";\nimport { AdvancedIllustrationArea } from \"./AdvancedIllustrationArea\";\nimport { Barcode } from \"./Barcode\";\nimport { CarryOver } from \"./CarryOver\";\nimport { ColumnDefinition, ColumnPosition } from \"./ColumnDefinition\";\nimport { Condition } from \"./Condition\";\nimport { Directory } from \"./Directory\";\nimport { Document } from \"./Document\";\nimport { Footer } from \"./Footer\";\nimport { Formatted } from \"./Formatted\";\nimport { Header } from \"./Header\";\nimport { Image } from \"./Image\";\nimport { Indentation } from \"./Indentation\";\nimport { Linebreak } from \"./Linebreak\";\nimport { Link } from \"./Link\";\nimport { Loop } from \"./Loop\";\nimport { LoopEntry } from \"./LoopEntry\";\nimport { Pagebreak } from \"./Pagebreak\";\nimport { PageCondition } from \"./PageCondition\";\nimport { PageDefinition } from \"./PageDefinition\";\nimport { Paragraph } from \"./Paragraph\";\nimport { Rule } from \"./Rule\";\nimport { Section } from \"./Section\";\nimport { Selection } from \"./Selection\";\nimport { SelectionEntry } from \"./SelectionEntry\";\nimport { SpaceVertically } from \"./SpaceVertically\";\nimport { Span } from \"./Span\";\nimport { SubTotal } from \"./SubTotal\";\nimport { Table } from \"./Table\";\nimport { TableCell } from \"./TableCell\";\nimport { TableContentGroup } from \"./TableContentGroup\";\nimport { TableRow } from \"./TableRow\";\nimport { Tag } from \"./Tag\";\nimport { Text } from \"./Text\";\nimport { Variable } from \"./Variable\";\nimport { WsArea } from \"./WsArea\";\n\nexport default {\n AdjustHorizontally,\n AdvancedIllustrationArea,\n Barcode,\n CarryOver,\n ColumnDefinition,\n ColumnPosition,\n Condition,\n Directory,\n Document,\n Footer,\n Formatted,\n Header,\n Image,\n Indentation,\n Linebreak,\n Link,\n Loop,\n LoopEntry,\n Pagebreak,\n PageCondition,\n PageDefinition,\n Paragraph,\n Rule,\n Section,\n Selection,\n SelectionEntry,\n SpaceVertically,\n Span,\n SubTotal,\n Table,\n TableCell,\n TableContentGroup,\n TableRow,\n Tag,\n Text,\n Variable,\n WsArea,\n};\n","import { Alignment } from \"./Alignment\";\nimport { Border, SideBorders } from \"./Border\";\nimport { Color, Colors } from \"./Color\";\nimport { Connection } from \"./Connection\";\nimport Content from \"./Content\";\nimport { Font, StandardFonts } from \"./Font\";\nimport * as Measure from \"./Measure\";\nimport * as Output from \"./OutputFormat\";\nimport { ParagraphFormat } from \"./ParagraphFormat\";\n\nexport default {\n Alignment,\n Border: {\n Border,\n SideBorders,\n },\n Color: {\n Color,\n Colors,\n },\n Connection,\n Content,\n Font: {\n Font,\n StandardFonts,\n },\n Measure,\n Output,\n ParagraphFormat,\n};\n"],"mappings":"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","names":["Alignment","Proto","Proto","Colors","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","ColumnPosition","Proto","Proto","Proto","Proto","Proto","Proto","OutputFormat","Proto","Proto","Proto","Proto","PageDefinitions","Proto","uuidv4","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto"]}
1
+ {"version":3,"sources":["../src/Alignment/index.ts","../src/Border/index.ts","../src/Color/index.ts","../src/Connection/index.ts","../src/Content/AdjustHorizontally/index.ts","../src/Content/DocumentElement/index.ts","../src/Content/Text/index.ts","../src/Content/BranchDocumentElement/index.ts","../src/Content/AdvancedIllustrationArea/index.ts","../src/Content/Barcode/index.ts","../src/Measure/index.ts","../src/Measure/Measure.ts","../src/Content/ReferencePoint/index.ts","../src/Content/CarryOver/index.ts","../src/Content/ColumnDefinition/index.ts","../src/Content/Condition/index.ts","../src/Content/Directory/index.ts","../src/Content/Document/index.ts","../src/OutputFormat/index.ts","../src/Content/Footer/index.ts","../src/Content/Header/index.ts","../src/Content/PageDefinition/index.ts","../src/ParagraphFormat/index.ts","../src/Content/SpaceVertically/index.ts","../src/Font/index.ts","../src/Content/Formatted/index.ts","../src/Content/Image/index.ts","../src/Content/Indentation/index.ts","../src/Content/Linebreak/index.ts","../src/Content/Link/index.ts","../src/Content/Loop/index.ts","../src/Content/LoopEntry/index.ts","../src/Content/Pagebreak/index.ts","../src/Content/PageCondition/index.ts","../src/Content/Paragraph/index.ts","../src/Content/Rule/index.ts","../src/Content/Section/index.ts","../src/Content/Selection/index.ts","../src/Content/SelectionEntry/index.ts","../src/Content/Span/index.ts","../src/Content/SubTotal/index.ts","../src/Content/Table/index.ts","../src/Content/TableCell/index.ts","../src/Content/TableContentGroup/index.ts","../src/Content/TableRow/index.ts","../src/Content/Tag/index.ts","../src/Content/Variable/index.ts","../src/Content/WsArea/index.ts","../src/Content/index.ts","../src/index.ts"],"sourcesContent":["import Proto from \"docframe-types\";\n\nexport class HorizontalAlignment {\n public readonly value: Proto.ProtoHorizontalAlignment;\n\n constructor(value: Proto.ProtoHorizontalAlignment) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoHorizontalAlignment {\n return this.value;\n }\n}\n\nexport class VerticalAlignment {\n public readonly value: Proto.ProtoVerticalAlignment;\n\n constructor(value: Proto.ProtoVerticalAlignment) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoVerticalAlignment {\n return this.value;\n }\n}\n\nexport namespace Alignment {\n export const Horizontal = {\n Left: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_LEFT),\n Center: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_CENTER),\n Right: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_RIGHT),\n Justify: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_JUSTIFY),\n FullJustify: new HorizontalAlignment(Proto.ProtoHorizontalAlignment.ALIGN_FULL_JUSTIFY),\n };\n\n export const Vertical = {\n Top: new VerticalAlignment(Proto.ProtoVerticalAlignment.TOP),\n Middle: new VerticalAlignment(Proto.ProtoVerticalAlignment.MIDDLE),\n Bottom: new VerticalAlignment(Proto.ProtoVerticalAlignment.BOTTOM),\n };\n}\n\n","import Proto from \"docframe-types\";\nimport { Color } from \"~/Color\";\nimport { AbsoluteMeasure, Sides } from \"~/Measure\";\n\nexport class Border {\n width: AbsoluteMeasure;\n color: Color;\n\n constructor(width: AbsoluteMeasure, color: Color) {\n this.width = width;\n this.color = color;\n }\n\n public toDocFrame(): Proto.ProtoBorder {\n return new Proto.ProtoBorder({\n weight: this.width.toDocFrame(),\n color: this.color.toDocFrame(),\n });\n }\n}\n\nexport class SideBorders {\n value: Sides<Border>;\n\n constructor(settings: Sides<Border>) {\n this.value = settings;\n }\n\n public toDocFrame(): Proto.ProtoSideBorders {\n return new Proto.ProtoSideBorders({\n top: this.value.top?.toDocFrame(),\n right: this.value.right?.toDocFrame(),\n bottom: this.value.bottom?.toDocFrame(),\n left: this.value.left?.toDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport class Color {\n private color: Proto.ProtoColor;\n\n static rgb(r: number, g: number, b: number): Color {\n if (r < 0 || r > 255) {\n throw new Error(`Invalid red value: ${r}`);\n }\n\n if (g < 0 || g > 255) {\n throw new Error(`Invalid green value: ${g}`);\n }\n\n if (b < 0 || b > 255) {\n throw new Error(`Invalid blue value: ${b}`);\n }\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.RGB,\n r,\n g,\n b,\n }));\n }\n\n static cmyk(c: number, m: number, y: number, k: number): Color {\n if (c < 0 || c > 100) {\n throw new Error(`Invalid cyan value: ${c}`);\n }\n\n if (m < 0 || m > 100) {\n throw new Error(`Invalid magenta value: ${m}`);\n }\n\n if (y < 0 || y > 100) {\n throw new Error(`Invalid yellow value: ${y}`);\n }\n\n if (k < 0 || k > 100) {\n throw new Error(`Invalid black value: ${k}`);\n }\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.CMYK,\n c,\n m,\n y,\n k,\n }));\n }\n\n static fromHex(hex: string): Color {\n if (hex.startsWith(\"#\")) {\n hex = hex.slice(1);\n }\n\n if (hex.length !== 6) {\n throw new Error(`Invalid hex color: ${hex}`);\n }\n\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const b = parseInt(hex.slice(4, 6), 16);\n\n return new Color(Proto.ProtoColor.create({\n type: Proto.ProtoColorType.RGB,\n r,\n g,\n b,\n }));\n }\n\n private constructor(color: Proto.ProtoColor) {\n this.color = color;\n }\n\n\n public toDocFrame(): Proto.ProtoColor {\n return this.color;\n }\n}\n\nexport namespace Colors {\n export const white = Color.rgb(255, 255, 255);\n\n export const black = Color.cmyk(0, 0, 0, 100);\n}\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport dotenv from \"dotenv\";\n\nimport Proto from \"docframe-types\";\n\nimport { Document } from \"content/Document\";\nimport { OutputParams } from \"~/OutputFormat\";\n\n// Load environment variables from .env file\ndotenv.config();\n\nexport class Connection {\n url: string;\n token: string;\n\n constructor(url?: string, token?: string) {\n this.url = url || process.env.DOCPIPE_URL || \"http://localhost:8080\";\n this.token = token || process.env.DOCPIPE_TOKEN || \"\";\n }\n\n get docframeCallUrl() {\n return `${this.url}/api/docframe?token=${this.token}`;\n }\n\n convertTo<K extends keyof OutputParams>(\n format: K,\n doc: Document,\n outputParams?: OutputParams[K],\n jobParams?: Record<string, any>,\n ): Promise<Blob> {\n const node = doc.toDocFrame();\n\n const protoData = Proto.Node.encode(node).finish();\n\n const form = new FormData();\n\n let meta = {\n format,\n };\n\n if (outputParams) {\n meta = {\n ...meta,\n ...outputParams,\n };\n }\n\n if (jobParams) {\n meta = {\n ...meta,\n ...jobParams,\n };\n }\n\n form.append(\"meta\", JSON.stringify(meta), {\n contentType: \"application/json\",\n filename: \"meta\",\n });\n\n form.append(\"proto-data\", protoData, {\n contentType: \"application/protobuf\",\n filename: \"data.proto\",\n });\n\n return new Promise((resolve, reject) => {\n axios\n .postForm(this.docframeCallUrl, form, {\n headers: {\n ...form.getHeaders(),\n },\n responseType: \"arraybuffer\",\n })\n .then(async (res) => {\n const blob = await new Response(res.data, {\n headers: {\n \"Content-Type\": res.headers[\"content-type\"],\n },\n }).blob();\n\n resolve(blob);\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n}\n\nexport const defaultConnection = new Connection();\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface AdjustHorizontallyProperties {\n /** Minimum font size for horizontal adjustment */\n minFontSize?: Measure;\n /** Maximum font size for horizontal adjustment */\n maxFontSize?: Measure;\n}\n\nexport class AdjustHorizontally extends BranchDocumentElement<AdjustHorizontallyProperties> {\n constructor(content?: Content, props?: AdjustHorizontallyProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n adjustHorizontally: Proto.ProtoAdjustHorizontally.create({\n minFontSize: this.props?.minFontSize?.toDocFrame(),\n maxFontSize: this.props?.maxFontSize?.toDocFrame(),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport abstract class DocumentElement {\n public abstract toDocFrame(): Proto.Node;\n}\n\nexport type Content = string | DocumentElement | (DocumentElement | string)[];\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Text extends DocumentElement {\n constructor(content: string) {\n super();\n this.content = content;\n }\n\n public content: string;\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n text: Proto.ProtoText.create({\n content: this.content,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\nimport { Content, DocumentElement } from \"content/DocumentElement\";\nimport { Text } from \"content/Text\";\n\nexport abstract class BranchDocumentElement<P = never> extends DocumentElement {\n protected children: DocumentElement[] = [];\n protected _props?: P;\n\n constructor(children?: Content, props?: P) {\n super();\n\n this._props = props;\n\n if (children === undefined) {\n this.children = [];\n return;\n }\n\n this.children = documentElementsFromContent(children);\n }\n\n public appendChildren(children: DocumentElement[]): void {\n this.children = this.children.concat(children);\n }\n\n public appendChild(child: DocumentElement): void {\n this.children.push(child);\n }\n\n public prependChildren(children: DocumentElement[]): void {\n this.children = children.concat(this.children);\n }\n\n public prependChild(child: DocumentElement): void {\n this.children.unshift(child);\n }\n\n public childrenToDocFrame(): Proto.Node[] {\n return this.children.map((child) => child.toDocFrame());\n }\n\n set props(props: P | undefined) {\n this._props = props;\n }\n\n get props(): P | undefined {\n return this._props;\n }\n}\n\nfunction documentElementsFromContent(content: Content): DocumentElement[] {\n if (typeof content === \"string\") {\n return [new Text(content)];\n } else if (Array.isArray(content)) {\n return content.map(documentElementsFromContent).flat();\n } else {\n return [content];\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport type TextFlowType = \"around\" | \"no-flow\" | \"foreground\" | \"background\";\n\nfunction textFlowTypeToDocFrame(\n type: TextFlowType,\n): Proto.ProtoAdvancedIllustrationAreaTextFlowType {\n switch (type) {\n case \"around\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.AROUND;\n case \"no-flow\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.NO_FLOW;\n case \"foreground\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.FOREGROUND;\n case \"background\":\n return Proto.ProtoAdvancedIllustrationAreaTextFlowType.BACKGROUND;\n default:\n throw new Error(`Unknown text flow type: ${type}`);\n }\n}\n\nexport interface AdvancedIllustrationAreaProperties {\n /** UUID */\n uuid?: string;\n /** Whether the AIA is absolutely positioned */\n absolute?: boolean;\n /** Width */\n width?: Measure;\n /** Height */\n height?: Measure;\n /** X position */\n x?: Measure;\n /** Y position */\n y?: Measure;\n /** How text flows around the AIA */\n textFlow?: TextFlowType;\n /** Rotation in degrees */\n rotation?: number;\n}\n\nexport class AdvancedIllustrationArea extends BranchDocumentElement<AdvancedIllustrationAreaProperties> {\n constructor(\n content?: Content,\n props?: AdvancedIllustrationAreaProperties,\n ) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n advancedIllustrationArea:\n Proto.ProtoAdvancedIllustrationArea.create({\n uuid: this.props?.uuid,\n absolute: this.props?.absolute,\n width: this.props?.width?.toDocFrame(),\n height: this.props?.height?.toDocFrame(),\n x: this.props?.x?.toDocFrame(),\n y: this.props?.y?.toDocFrame(),\n textFlow: this.props?.textFlow\n ? textFlowTypeToDocFrame(this.props.textFlow)\n : undefined,\n rotation: this.props?.rotation,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { AbsoluteMeasure, Measure } from \"~/Measure\";\nimport {\n ReferencePoint,\n referencePointToDocFrame,\n} from \"content/ReferencePoint\";\n\nexport interface BarcodeProperties {\n type: Proto.ProtoBarcodeType;\n x: AbsoluteMeasure;\n y: AbsoluteMeasure;\n referencePoint: ReferencePoint;\n\n /**\n * Rotation in degrees, counter-clockwise\n */\n rotation: number;\n width: AbsoluteMeasure;\n height: AbsoluteMeasure;\n data: string;\n positionAbsolute: boolean;\n padding?: AbsoluteMeasure;\n code?: string;\n altText?: string;\n uuid?: string;\n}\n\nexport class Barcode extends DocumentElement {\n props: BarcodeProperties;\n\n constructor(props: BarcodeProperties) {\n super();\n\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n barcode: Proto.ProtoBarcode.create({\n type: this.props.type,\n\n positionAbsolute: this.props.positionAbsolute,\n referencePoint: referencePointToDocFrame(this.props.referencePoint),\n x: this.props.x.toDocFrame(),\n y: this.props.y.toDocFrame(),\n rotation: this.props.rotation,\n\n width: this.props.width.toDocFrame(),\n height: this.props.height.toDocFrame(),\n padding: (this.props.padding ?? Measure.zero).toDocFrame(),\n\n data: this.props.data,\n code: this.props.code,\n altText: this.props.altText,\n uuid: this.props.uuid,\n }),\n });\n }\n}\n","import { AbsoluteMeasure, Measure, SideMeasures, Sides } from \"./Measure\";\n\nexport { AbsoluteMeasure, Measure, SideMeasures, Sides };\n","import Proto from \"docframe-types\";\n\nexport type AbsoluteMeasureUnit = \"pt\" | \"cm\" | \"mm\" | \"in\" | \"px\";\n\nexport type RelativeMeasureUnit = \"%\";\nexport type MeasureUnit = AbsoluteMeasureUnit | RelativeMeasureUnit;\n\nexport class Measure<Unit = MeasureUnit> {\n readonly value: number;\n readonly unit: Unit;\n\n static zero = new Measure(0, \"pt\" as AbsoluteMeasureUnit);\n\n constructor(value: number, unit: Unit) {\n this.value = value;\n this.unit = unit;\n }\n\n public toDocFrame(): Proto.ProtoMeasure {\n switch (this.unit) {\n case \"pt\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PT,\n });\n\n case \"cm\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.CM,\n });\n\n case \"mm\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.MM,\n });\n\n case \"in\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.IN,\n });\n\n case \"px\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PX,\n });\n\n case \"%\":\n return new Proto.ProtoMeasure({\n value: this.value,\n mtype: Proto.ProtoMeasureType.PERCENT,\n });\n\n default:\n throw new Error(`Unknown measure unit: ${this.unit}`);\n }\n }\n}\n\nexport class AbsoluteMeasure extends Measure<AbsoluteMeasureUnit> {}\n\nexport class SideMeasures {\n value: Sides<AbsoluteMeasure>;\n\n constructor(settings: Sides<AbsoluteMeasure>) {\n this.value = settings;\n }\n\n public toDocFrame(): Proto.ProtoSideMeasures {\n return new Proto.ProtoSideMeasures({\n top: this.value.top?.toDocFrame(),\n right: this.value.right?.toDocFrame(),\n bottom: this.value.bottom?.toDocFrame(),\n left: this.value.left?.toDocFrame(),\n });\n }\n}\n\n\nexport class Sides<T> {\n top?: T;\n right?: T;\n bottom?: T;\n left?: T;\n}\n\n/*\n\n\n\nexport class RelativeMeasure extends Measure<RelativeMeasureUnit> {\n constructor(value: number) {\n super(value, \"%\");\n }\n}\n\n\n\n\n*/","import Proto from \"docframe-types\";\n\n/**\n * A ReferencePoint is used for elements like barcodes to specify the reference point\n * of an object.\n * Example:\n * When specified reference point \"top-left\", the top-left point of a barcode is positioned\n * relative to the top-left edge of the current line or page.\n */\nexport type ReferencePoint = \"top-left\" | \"top-right\" | \"center\" | \"bottom-left\" | \"bottom-right\";\n\nexport function referencePointToDocFrame(point: ReferencePoint): Proto.ProtoImageReferencePoint {\n switch (point) {\n case \"top-left\":\n return Proto.ProtoImageReferencePoint.REF_POINT_TOP_LEFT;\n\n case \"top-right\":\n return Proto.ProtoImageReferencePoint.REF_POINT_TOP_RIGHT;\n\n case \"center\":\n return Proto.ProtoImageReferencePoint.REF_POINT_CENTER;\n\n case \"bottom-left\":\n return Proto.ProtoImageReferencePoint.REF_POINT_BOTTOM_LEFT;\n\n case \"bottom-right\":\n return Proto.ProtoImageReferencePoint.REF_POINT_BOTTOM_RIGHT;\n\n default:\n throw new Error(`Unknown reference point: ${point}`);\n }\n}","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\n/**\n * CarryOver defines content that is carried over to the next page\n * when a table or other element breaks across pages.\n */\nexport class CarryOver extends BranchDocumentElement {\n constructor(content?: Content) {\n super(content);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n carryOver: Proto.ProtoCarryOver.create({}),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nclass ColumnPositionMode {\n public readonly value: Proto.ProtoPositionMode;\n\n constructor(value: Proto.ProtoPositionMode) {\n this.value = value;\n }\n\n public toDocFrame(): Proto.ProtoPositionMode {\n return this.value;\n }\n}\n\nexport namespace ColumnPosition {\n export const Center = new ColumnPositionMode(Proto.ProtoPositionMode.CENTER);\n export const Left = new ColumnPositionMode(Proto.ProtoPositionMode.LEFT);\n export const Folio = new ColumnPositionMode(Proto.ProtoPositionMode.FOLIO);\n export const Right = new ColumnPositionMode(Proto.ProtoPositionMode.RIGHT);\n export const ReverseFolio = new ColumnPositionMode(\n Proto.ProtoPositionMode.REVERSE_FOLIO,\n );\n}\n\nexport interface ColumnDefinitionProperties {\n width: AbsoluteMeasure;\n position: ColumnPositionMode;\n interColumnSpace: AbsoluteMeasure;\n positionOffset: AbsoluteMeasure;\n}\n\nexport class ColumnDefinition {\n props: ColumnDefinitionProperties;\n uuid: string;\n\n constructor(props: ColumnDefinitionProperties) {\n this.props = props;\n\n this.uuid = uuidv4();\n }\n\n public toDocFrame(applyImmediate: boolean): Proto.Node[] {\n const result = [\n Proto.Node.create({\n cDef: Proto.ProtoCDef.create({\n Uuid: this.uuid,\n columSettings: Proto.ProtoColumnSettings.create({\n width: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.width.toDocFrame(),\n }),\n positionOffset: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.positionOffset.toDocFrame(),\n }),\n positionMode: this.props.position.toDocFrame(),\n interColumnSpace: Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.interColumnSpace.toDocFrame(),\n }),\n }),\n }),\n }),\n ];\n\n if (applyImmediate) {\n result.push(\n Proto.Node.create({\n applyCDef: Proto.ProtoApplyProtoCDef.create({\n cDefUuid: this.uuid,\n }),\n }),\n );\n }\n\n return result;\n }\n}\n\nexport const ColumnDefinitions = {\n A4: {\n Single: new ColumnDefinition({\n width: new AbsoluteMeasure(490, \"pt\"),\n position: ColumnPosition.Left,\n positionOffset: new AbsoluteMeasure(70, \"pt\"),\n interColumnSpace: new AbsoluteMeasure(30, \"pt\"),\n }),\n Double: new ColumnDefinition({\n width: new AbsoluteMeasure(230, \"pt\"),\n position: ColumnPosition.Left,\n positionOffset: new AbsoluteMeasure(70, \"pt\"),\n interColumnSpace: new AbsoluteMeasure(30, \"pt\"),\n }),\n },\n};\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface ConditionProperties {\n /** UUID */\n uuid?: string;\n /** Code expression to evaluate */\n code?: string;\n /** Pre-evaluated result */\n result?: boolean;\n /** Whether the condition should be re-evaluated on regeneration */\n regenerate?: boolean;\n}\n\nexport class Condition extends BranchDocumentElement<ConditionProperties> {\n constructor(content?: Content, props?: ConditionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n condition: Proto.ProtoCondition.create({\n uuid: this.props?.uuid,\n code: this.props?.code,\n result: this.props?.result,\n regenerate: this.props?.regenerate,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport type SemanticType = \"none\" | \"part\" | \"art\" | \"sect\" | \"div\";\n\nfunction semanticTypeToDocFrame(type: SemanticType): Proto.ProtoSemanticType {\n switch (type) {\n case \"none\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_NONE;\n case \"part\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_PART;\n case \"art\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_ART;\n case \"sect\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_SECT;\n case \"div\":\n return Proto.ProtoSemanticType.SEMANTIC_TYPE_DIV;\n default:\n throw new Error(`Unknown semantic type: ${type}`);\n }\n}\n\nexport interface DirectoryProperties {\n name?: string;\n editable?: boolean;\n semanticType?: SemanticType;\n}\n\nexport class Directory extends BranchDocumentElement<DirectoryProperties> {\n constructor(content?: Content, props?: DirectoryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n directory: Proto.ProtoDirectory.create({\n name: this.props?.name,\n editable: this.props?.editable,\n semanticType: this.props?.semanticType\n ? semanticTypeToDocFrame(this.props.semanticType)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { defaultConnection } from \"~/Connection\";\nimport { OutputFormat, OutputParams } from \"~/OutputFormat\";\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { ColumnDefinition, ColumnDefinitions } from \"content/ColumnDefinition\";\nimport { Content } from \"content/DocumentElement\";\nimport { Footer } from \"content/Footer\";\nimport { Header } from \"content/Header\";\nimport { PageDefinition, PageDefinitions } from \"content/PageDefinition\";\nimport { ParagraphFormat } from \"~/ParagraphFormat\";\nimport { SpaceVertically } from \"content/SpaceVertically\";\nimport { StandardFonts } from \"~/Font\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport interface DocumentProperties {\n pageDefinition: PageDefinition;\n columnDefinition: ColumnDefinition;\n\n defaultHeader?: Header;\n defaultFooter?: Footer;\n\n paragraphFormats?: Record<string, ParagraphFormat>;\n}\n\nexport class Document extends BranchDocumentElement<DocumentProperties> {\n paragraphFormats: Record<string, ParagraphFormat> = {};\n\n constructor(content?: Content, props?: DocumentProperties) {\n super(content, props);\n\n if (props === undefined) {\n this.props = {\n pageDefinition: PageDefinitions.A4,\n columnDefinition: ColumnDefinitions.A4.Single,\n defaultHeader: new Header(\n new SpaceVertically(new AbsoluteMeasure(40, \"pt\")),\n ),\n defaultFooter: new Footer(\n new SpaceVertically(new AbsoluteMeasure(40, \"pt\")),\n ),\n };\n } else {\n this.props = props;\n }\n\n this.paragraphFormats = this.props.paragraphFormats || {\n Text: new ParagraphFormat({\n font: StandardFonts.Helvetica,\n fontSize: new AbsoluteMeasure(12, \"pt\"),\n lineFeed: new AbsoluteMeasure(14, \"pt\"),\n indentionWidth: new AbsoluteMeasure(15, \"pt\"),\n name: \"Text\",\n default: true,\n }),\n };\n }\n\n getParagraphFormat(name: string): ParagraphFormat | undefined {\n return this.paragraphFormats[name];\n }\n\n registerParagraphFormat(name: string, pf: ParagraphFormat) {\n this.paragraphFormats[name] = pf;\n }\n\n convertTo<Format extends keyof OutputParams>(\n outputFormat: Format,\n outputParams?: OutputParams[Format],\n jobParams?: Record<string, any>,\n ): Promise<Blob> {\n return defaultConnection.convertTo(\n outputFormat,\n this,\n outputParams,\n jobParams,\n );\n }\n\n convertToPDF(\n outputParams?: OutputParams[\"pdf\"],\n jobParams?: Record<string, any>,\n ): Promise<Blob> {\n return defaultConnection.convertTo(\n OutputFormat.PDF,\n this,\n outputParams,\n jobParams,\n );\n }\n\n /*\n public getProtoParagraphFormat(format?: ParagraphFormat): Proto.IProtoParagraphFormat {\n if (!format) {\n return this.defaultParagraphFormat;\n }\n\n if (!format.format.name) {\n throw new Error(\"ParagraphFormat must have a name\");\n }\n\n if (!this.paragraphFormats[format.format.name]) {\n this.paragraphFormats[format.format.name] = format.toDocFrame();\n }\n\n return this.paragraphFormats[format.format.name];\n }\n */\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const docSettings = Object.values(this.paragraphFormats)\n .map((pf) =>\n Proto.Node.create({\n paragraphFormat: pf.toDocFrame(),\n }),\n )\n .concat([\n Proto.Node.create({\n pDef: props.pageDefinition.toDocFrame(),\n }),\n Proto.Node.create({\n applyPDef: Proto.ProtoApplyProtoPDef.create({\n pDefUuid: props.pageDefinition.uuid,\n }),\n }),\n ...props.columnDefinition.toDocFrame(true),\n ]);\n\n if (props.defaultHeader) {\n docSettings.push(props.defaultHeader.toDocFrame());\n }\n\n if (props.defaultFooter) {\n docSettings.push(props.defaultFooter.toDocFrame());\n }\n\n const content = this.childrenToDocFrame();\n\n for (const format of Object.values(this.paragraphFormats)) {\n docSettings.push(\n Proto.Node.create({\n paragraphFormat: format.toDocFrame(),\n }),\n );\n }\n\n return Proto.Node.create({\n children: docSettings.concat(...content),\n });\n }\n}\n","enum OutputFormat {\n PDF = \"pdf\",\n PNG = \"png\",\n JPEG = \"jpeg\",\n HTML = \"html\",\n PS = \"ps\",\n TEXT = \"text\",\n}\n\ntype OutputParams = {\n [OutputFormat.HTML]: {};\n [OutputFormat.PDF]: {};\n [OutputFormat.JPEG]: {};\n [OutputFormat.PS]: {};\n [OutputFormat.TEXT]: {};\n [OutputFormat.PNG]: {\n /**\n * The width of the output in pixels.\n * @default The width of the document in pixels.\n */\n width?: number;\n\n /**\n * The height of the output in pixels.\n * @default The height of the document in pixels.\n */\n height?: number;\n\n /**\n * The resolution of the output in pixels per inch.\n * @default 300 dpi.\n */\n dpi?: number;\n };\n}\n\nexport {\n OutputFormat,\n OutputParams,\n}","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nimport Proto from \"docframe-types\";\n\nexport type FooterMode = \"append-initial\" | \"append\" | \"extend\" | \"replace\";\n\nfunction footerModeToDocFrame(mode: FooterMode): Proto.ProtoFooterMode {\n switch (mode) {\n case \"append-initial\":\n return Proto.ProtoFooterMode.FOOTER_MODE_APPEND_INITIAL;\n case \"append\":\n return Proto.ProtoFooterMode.FOOTER_MODE_APPEND;\n case \"extend\":\n return Proto.ProtoFooterMode.FOOTER_MODE_EXTEND;\n case \"replace\":\n return Proto.ProtoFooterMode.FOOTER_MODE_REPLACE;\n default:\n throw new Error(`Unknown footer mode: ${mode}`);\n }\n}\n\nexport interface FooterProperties {\n mode?: FooterMode;\n}\n\nexport class Footer extends BranchDocumentElement<FooterProperties> {\n constructor(content?: Content, props?: FooterProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n footer: Proto.ProtoFooter.create({\n mode: this.props?.mode\n ? footerModeToDocFrame(this.props.mode)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nimport Proto from \"docframe-types\";\n\nexport type HeaderMode = \"append-initial\" | \"append\" | \"extend\" | \"replace\";\n\nfunction headerModeToDocFrame(mode: HeaderMode): Proto.ProtoHeaderMode {\n switch (mode) {\n case \"append-initial\":\n return Proto.ProtoHeaderMode.HEADER_MODE_APPEND_INITIAL;\n case \"append\":\n return Proto.ProtoHeaderMode.HEADER_MODE_APPEND;\n case \"extend\":\n return Proto.ProtoHeaderMode.HEADER_MODE_EXTEND;\n case \"replace\":\n return Proto.ProtoHeaderMode.HEADER_MODE_REPLACE;\n default:\n throw new Error(`Unknown header mode: ${mode}`);\n }\n}\n\nexport interface HeaderProperties {\n mode?: HeaderMode;\n}\n\nexport class Header extends BranchDocumentElement<HeaderProperties> {\n constructor(content?: Content, props?: HeaderProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n header: Proto.ProtoHeader.create({\n mode: this.props?.mode\n ? headerModeToDocFrame(this.props.mode)\n : undefined,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\nimport { v4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport class PageDefinition {\n width?: AbsoluteMeasure;\n height?: AbsoluteMeasure;\n uuid: string;\n\n constructor(width?: AbsoluteMeasure, height?: AbsoluteMeasure) {\n this.width = width;\n this.height = height;\n\n this.uuid = v4();\n }\n\n public toDocFrame(): Proto.ProtoPDef {\n return new Proto.ProtoPDef({\n pageDepth: new Proto.ProtoBoxedMeasure({\n isNull: this.height === undefined,\n value: this.height?.toDocFrame(),\n }),\n pageWidth: new Proto.ProtoBoxedMeasure({\n isNull: this.width === undefined,\n value: this.width?.toDocFrame(),\n }),\n Uuid: this.uuid,\n });\n }\n}\n\nexport namespace PageDefinitions {\n export const A3 = new PageDefinition(\n new AbsoluteMeasure(297, \"mm\"),\n new AbsoluteMeasure(420, \"mm\"),\n );\n\n export const A4 = new PageDefinition(\n new AbsoluteMeasure(210, \"mm\"),\n new AbsoluteMeasure(297, \"mm\"),\n );\n\n export const A5 = new PageDefinition(\n new AbsoluteMeasure(148, \"mm\"),\n new AbsoluteMeasure(210, \"mm\"),\n );\n}\n","import Proto from \"docframe-types\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { AbsoluteMeasure } from \"~/Measure\";\nimport { Font } from \"~/Font\";\nimport { HorizontalAlignment } from \"~/Alignment\";\n\nexport interface ParagraphFormatProperties {\n default?: boolean;\n name?: string;\n\n alignment?: HorizontalAlignment;\n\n font?: Font;\n fontSize?: AbsoluteMeasure;\n characterWidth?: AbsoluteMeasure;\n characterSpacing?: AbsoluteMeasure;\n lineFeed?: AbsoluteMeasure;\n bold?: boolean;\n italic?: boolean;\n\n indentionLevel?: number;\n indentionWidth?: AbsoluteMeasure;\n\n spaceAbove?: AbsoluteMeasure;\n spaceBelow?: AbsoluteMeasure;\n}\n\nexport class ParagraphFormat {\n props: ParagraphFormatProperties;\n\n constructor(props: ParagraphFormatProperties) {\n this.props = props;\n\n this.props.name = props.name || uuidv4();\n }\n\n public toDocFrame(): Proto.IProtoParagraphFormat {\n let format: Proto.IProtoParagraphFormat = {\n default: Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.default || false,\n }),\n name: Proto.ProtoBoxedString.create({\n isNull: false,\n value: this.props.name,\n }),\n };\n\n if (this.props.alignment) {\n format.alignment = Proto.ProtoBoxedHorizontalAlignment.create({\n isNull: false,\n value: this.props.alignment.toDocFrame(),\n });\n }\n\n if (this.props.font) {\n format.font = Proto.ProtoBoxedFont.create({\n isNull: false,\n value: this.props.font.toDocFrame(),\n });\n }\n\n if (this.props.fontSize) {\n format.fontSize = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.fontSize.toDocFrame(),\n });\n }\n\n if (this.props.characterWidth) {\n format.characterWidth = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.characterWidth.toDocFrame(),\n });\n }\n\n if (this.props.characterSpacing) {\n format.characterSpacing = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.characterSpacing.toDocFrame(),\n });\n }\n\n if (this.props.lineFeed) {\n format.lineFeed = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.lineFeed.toDocFrame(),\n });\n }\n\n if (this.props.indentionLevel !== undefined) {\n format.indentionLevel = Proto.ProtoBoxedInt32.create({\n isNull: false,\n value: this.props.indentionLevel,\n });\n }\n\n if (this.props.indentionWidth) {\n format.indentionWidth = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.indentionWidth.toDocFrame(),\n });\n }\n\n if (this.props.bold !== undefined) {\n format.bold = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: !!this.props.bold,\n });\n }\n\n if (this.props.italic !== undefined) {\n format.italic = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: !!this.props.italic,\n });\n }\n\n if (this.props.spaceAbove) {\n format.spaceAbove = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.spaceAbove.toDocFrame(),\n });\n }\n\n if (this.props.spaceBelow) {\n format.spaceBelow = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.spaceBelow.toDocFrame(),\n });\n }\n\n return Proto.ProtoParagraphFormat.create(format);\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport class SpaceVertically extends DocumentElement {\n space: AbsoluteMeasure;\n\n constructor(space: AbsoluteMeasure) {\n super();\n\n this.space = space;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n spaceVertically: Proto.ProtoSpaceVertically.create({\n space: this.space.toDocFrame(),\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nexport class Font {\n private name: string;\n\n constructor(name: string) {\n this.name = name;\n }\n\n public toDocFrame(): Proto.ProtoFont {\n return Proto.ProtoFont.create({\n name: this.name,\n // TODO: suppot font mapping for docframe step\n id: 5\n });\n }\n}\n\nexport const StandardFonts = {\n Helvetica: new Font(\"helvetica\"),\n};\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Formatted extends DocumentElement {\n constructor(doctypeContent: string | undefined, htmlContent?: string) {\n super();\n this.content = {\n doctype: doctypeContent,\n html: htmlContent,\n };\n }\n\n public content: {\n doctype: string | undefined;\n html: string | undefined;\n };\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n formatted: Proto.ProtoFormatted.create({\n doctypeContent: this.content.doctype,\n htmlContent: this.content.html,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\nimport {\n ReferencePoint,\n referencePointToDocFrame,\n} from \"content/ReferencePoint\";\n\nexport type ImageScaleType = \"relative\" | \"absolute\" | \"relative-to-column\";\n\nfunction imageScaleTypeToDocFrame(\n type: ImageScaleType,\n): Proto.ProtoImageScaleType {\n switch (type) {\n case \"relative\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_RELATIVE;\n case \"absolute\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_ABSOLUTE;\n case \"relative-to-column\":\n return Proto.ProtoImageScaleType.IMAGE_SCALE_TYPE_RELATIVE_TO_COLUMN;\n default:\n throw new Error(`Unknown image scale type: ${type}`);\n }\n}\n\nexport interface FlipSettings {\n x?: boolean;\n y?: boolean;\n}\n\nexport interface CropSettings {\n x?: Measure;\n y?: Measure;\n width?: Measure;\n height?: Measure;\n}\n\nexport interface ImageProperties {\n /** Alternative text for accessibility */\n alt?: string;\n /** Image name */\n name?: string;\n /** Image source URL or path */\n src?: string;\n /** Image filename */\n filename?: string;\n /** Scale factor (e.g. 1.0 = 100%) */\n scale?: number;\n /** Scale relative to column width (e.g. 0.5 = 50% of column) */\n columnScale?: number;\n /** Image width */\n width?: Measure;\n /** Image height */\n height?: Measure;\n /** X position */\n x?: Measure;\n /** Y position */\n y?: Measure;\n /** Whether the image is positioned absolutely */\n positionAbsolute?: boolean;\n /** Rotation in degrees */\n rotation?: number;\n /** Flip settings */\n flip?: FlipSettings;\n /** Crop settings */\n crop?: CropSettings;\n /** Reference point for positioning */\n referencePoint?: ReferencePoint;\n /** Hyperlink URL */\n hyperlink?: string;\n /** Scale type */\n scaleType?: ImageScaleType;\n /** UUID */\n uuid?: string;\n /** Inline image content as base64-encoded string */\n imageContent?: string;\n}\n\nexport class Image extends DocumentElement {\n props: ImageProperties;\n\n constructor(props: ImageProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n const p = this.props;\n\n const image: Proto.IProtoImage = {\n alt: p.alt,\n name: p.name,\n src: p.src,\n filename: p.filename,\n rotation: p.rotation,\n hyperlink: p.hyperlink,\n uuid: p.uuid,\n imageContent: p.imageContent,\n };\n\n if (p.scale !== undefined) {\n image.scale = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: p.scale,\n });\n }\n\n if (p.columnScale !== undefined) {\n image.columnScale = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: p.columnScale,\n });\n }\n\n if (p.width) {\n image.width = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.width.toDocFrame(),\n });\n }\n\n if (p.height) {\n image.height = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.height.toDocFrame(),\n });\n }\n\n if (p.x) {\n image.x = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.x.toDocFrame(),\n });\n }\n\n if (p.y) {\n image.y = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.y.toDocFrame(),\n });\n }\n\n if (p.positionAbsolute !== undefined) {\n image.positionAbsolute = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: p.positionAbsolute,\n });\n }\n\n if (p.flip) {\n image.flipSettings = Proto.ProtoFlipSettings.create({\n x: p.flip.x,\n y: p.flip.y,\n });\n }\n\n if (p.crop) {\n const cropSettings: Proto.IProtoCropSettings = {};\n if (p.crop.x) {\n cropSettings.x = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.x.toDocFrame(),\n });\n }\n if (p.crop.y) {\n cropSettings.y = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.y.toDocFrame(),\n });\n }\n if (p.crop.width) {\n cropSettings.width = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.width.toDocFrame(),\n });\n }\n if (p.crop.height) {\n cropSettings.height = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: p.crop.height.toDocFrame(),\n });\n }\n image.cropSettings = Proto.ProtoCropSettings.create(cropSettings);\n }\n\n if (p.referencePoint) {\n image.referencePoint = referencePointToDocFrame(p.referencePoint);\n }\n\n if (p.scaleType) {\n image.scaleType = imageScaleTypeToDocFrame(p.scaleType);\n }\n\n return Proto.Node.create({\n image: Proto.ProtoImage.create(image),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface IndentationProperties {\n /** Left indentation */\n left?: Measure;\n /** Right indentation */\n right?: Measure;\n /** UUID */\n uuid?: string;\n}\n\nexport class Indentation extends BranchDocumentElement<IndentationProperties> {\n constructor(content?: Content, props?: IndentationProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n const indent: Proto.IProtoIndentation = {\n uuid: this.props?.uuid,\n };\n\n if (this.props?.left) {\n indent.left = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.left.toDocFrame(),\n });\n }\n\n if (this.props?.right) {\n indent.right = Proto.ProtoBoxedMeasure.create({\n isNull: false,\n value: this.props.right.toDocFrame(),\n });\n }\n\n return Proto.Node.create({\n indentation: Proto.ProtoIndentation.create(indent),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Linebreak extends DocumentElement {\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n linebreak: Proto.ProtoLinebreak.create({}),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LinkProperties {\n /** The URL to link to */\n url: string;\n}\n\nexport class Link extends BranchDocumentElement<LinkProperties> {\n constructor(content?: Content, url?: string) {\n super(content, url ? { url } : undefined);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n link: Proto.ProtoLink.create({\n url: this.props?.url,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LoopProperties {\n /** Data path to iterate over */\n path?: string;\n /** UUID */\n uuid?: string;\n}\n\nexport class Loop extends BranchDocumentElement<LoopProperties> {\n constructor(content?: Content, props?: LoopProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n loop: Proto.ProtoLoop.create({\n path: this.props?.path,\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface LoopEntryProperties {\n /** Data path for this loop entry */\n path?: string;\n /** Index of this entry in the loop */\n index?: number;\n /** UUID */\n uuid?: string;\n}\n\nexport class LoopEntry extends BranchDocumentElement<LoopEntryProperties> {\n constructor(content?: Content, props?: LoopEntryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n loopEntry: Proto.ProtoLoopEntry.create({\n path: this.props?.path,\n index: this.props?.index,\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport class Pagebreak extends DocumentElement {\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n newPage: Proto.ProtoNewPage.create({}),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface PageConditionProperties {\n /** UUID */\n uuid?: string;\n /** Code expression to evaluate per page */\n code?: string;\n}\n\nexport class PageCondition extends BranchDocumentElement<PageConditionProperties> {\n constructor(content?: Content, props?: PageConditionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n pageCondition: Proto.ProtoPageCondition.create({\n uuid: this.props?.uuid,\n code: this.props?.code,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { BranchDocumentElement } from \"content/BranchDocumentElement\";\n\nimport Proto from \"docframe-types\";\nimport { ParagraphFormat } from \"~/ParagraphFormat\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface ParagraphSettings {\n paragraphFormatName?: string;\n overwrite?: ParagraphFormat;\n}\n\nexport class Paragraph extends BranchDocumentElement<ParagraphSettings> {\n constructor(\n content?: Content,\n paragraphFormatName?: string | ParagraphFormat,\n overwrite?: ParagraphFormat,\n ) {\n super(content, {\n overwrite,\n paragraphFormatName:\n typeof paragraphFormatName === \"string\"\n ? paragraphFormatName\n : paragraphFormatName?.props?.name,\n });\n }\n\n public toDocFrame(): Proto.Node {\n const par = {} as Proto.IProtoParagraph;\n\n if (this.props!.overwrite) {\n par.overwrite = this.props!.overwrite.toDocFrame();\n }\n\n if (this.props!.paragraphFormatName) {\n par.format = Proto.ProtoParagraphFormat.create({\n name: Proto.ProtoBoxedString.create({\n isNull: false,\n value: this.props!.paragraphFormatName,\n }),\n });\n }\n\n return Proto.Node.create({\n paragraph: Proto.ProtoParagraph.create(par),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\nimport { Color } from \"~/Color\";\n\nexport type RuleStyle =\n | \"solid\"\n | \"sparse-shading\"\n | \"medium-shading\"\n | \"dense-shading\"\n | \"light-dotted\"\n | \"medium-dotted\"\n | \"heavy-dotted\"\n | \"light-dashed\"\n | \"medium-dashed\"\n | \"heavy-dashed\"\n | \"dash-pattern\"\n | \"double\";\n\nfunction ruleStyleToDocFrame(style: RuleStyle): Proto.ProtoRuleStyle {\n switch (style) {\n case \"solid\":\n return Proto.ProtoRuleStyle.SOLID;\n case \"sparse-shading\":\n return Proto.ProtoRuleStyle.SPARSE_SHADING;\n case \"medium-shading\":\n return Proto.ProtoRuleStyle.MEDIUM_SHADING;\n case \"dense-shading\":\n return Proto.ProtoRuleStyle.DENSE_SHADING;\n case \"light-dotted\":\n return Proto.ProtoRuleStyle.LIGHT_DOTTED;\n case \"medium-dotted\":\n return Proto.ProtoRuleStyle.MEDIUM_DOTTED;\n case \"heavy-dotted\":\n return Proto.ProtoRuleStyle.HEAVY_DOTTED;\n case \"light-dashed\":\n return Proto.ProtoRuleStyle.LIGHT_DASHED;\n case \"medium-dashed\":\n return Proto.ProtoRuleStyle.MEDIUM_DASHED;\n case \"heavy-dashed\":\n return Proto.ProtoRuleStyle.HEAVY_DASHED;\n case \"dash-pattern\":\n return Proto.ProtoRuleStyle.DASH_PATTERN;\n case \"double\":\n return Proto.ProtoRuleStyle.DOUBLE;\n default:\n throw new Error(`Unknown rule style: ${style}`);\n }\n}\n\nexport type RuleMode = \"normal\" | \"boundary\";\n\nfunction ruleModeToDocFrame(mode: RuleMode): Proto.ProtoRuleMode {\n switch (mode) {\n case \"normal\":\n return Proto.ProtoRuleMode.NORMAL;\n case \"boundary\":\n return Proto.ProtoRuleMode.BOUNDARY;\n default:\n throw new Error(`Unknown rule mode: ${mode}`);\n }\n}\n\nexport interface RuleBoundaries {\n start?: Measure;\n end?: Measure;\n}\n\nexport interface RuleProperties {\n /** Horizontal offset */\n xOffset?: Measure;\n /** Vertical offset */\n yOffset?: Measure;\n /** Width of the rule */\n width?: Measure;\n /** Thickness of the rule line */\n thickness?: Measure;\n /** Rotation in degrees */\n rotation?: number;\n /** Rule color */\n color?: Color;\n /** Rule style (solid, dashed, dotted, etc.) */\n style?: RuleStyle;\n /** Rule mode */\n mode?: RuleMode;\n /** Rule boundaries for boundary mode */\n boundaries?: RuleBoundaries;\n}\n\nexport class Rule extends DocumentElement {\n props: RuleProperties;\n\n constructor(props: RuleProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n const rule: Proto.IProtoRule = {\n xOffset: this.props.xOffset?.toDocFrame(),\n yOffset: this.props.yOffset?.toDocFrame(),\n width: this.props.width?.toDocFrame(),\n thickness: this.props.thickness?.toDocFrame(),\n rotation: this.props.rotation,\n color: this.props.color?.toDocFrame(),\n };\n\n if (this.props.style) {\n rule.style = ruleStyleToDocFrame(this.props.style);\n }\n\n if (this.props.mode) {\n rule.mode = ruleModeToDocFrame(this.props.mode);\n }\n\n if (this.props.boundaries) {\n rule.boundaries = Proto.ProtoRuleBoundaries.create({\n start: this.props.boundaries.start?.toDocFrame(),\n end: this.props.boundaries.end?.toDocFrame(),\n });\n }\n\n return Proto.Node.create({\n rule: Proto.ProtoRule.create(rule),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SectionProperties {\n uuid?: string;\n /** UUID of the column definition to apply to this section */\n cDefUuid?: string;\n}\n\nexport class Section extends BranchDocumentElement<SectionProperties> {\n constructor(content?: Content, props?: SectionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n section: Proto.ProtoSection.create({\n uuid: this.props?.uuid,\n cDefUuid: this.props?.cDefUuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SelectionProperties {\n /** UUID */\n uuid?: string;\n /** Internal name for the selection */\n internalName?: string;\n /** Display name */\n name?: string;\n /** Whether multiple entries can be selected */\n multi?: boolean;\n /** Minimum number of selections required */\n min?: number;\n /** Maximum number of selections allowed */\n max?: number;\n}\n\nexport class Selection extends BranchDocumentElement<SelectionProperties> {\n constructor(content?: Content, props?: SelectionProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n selection: Proto.ProtoSelection.create({\n uuid: this.props?.uuid,\n internalName: this.props?.internalName,\n name: this.props?.name,\n multi: this.props?.multi,\n min: this.props?.min,\n max: this.props?.max,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface SelectionEntryProperties {\n /** UUID */\n uuid?: string;\n /** Internal name for the selection entry */\n internalName?: string;\n /** Display name */\n name?: string;\n /** Whether this entry is selected */\n selected?: boolean;\n}\n\nexport class SelectionEntry extends BranchDocumentElement<SelectionEntryProperties> {\n constructor(content?: Content, props?: SelectionEntryProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n selectionEntry: Proto.ProtoSelectionEntry.create({\n uuid: this.props?.uuid,\n internalName: this.props?.internalName,\n name: this.props?.name,\n selected: this.props?.selected,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Color } from \"~/Color\";\n\nexport interface SpanProperties {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strikethrough?: boolean;\n color?: Color;\n subscript?: boolean;\n superscript?: boolean;\n}\n\nexport class Span extends BranchDocumentElement<SpanProperties> {\n constructor(content?: Content, props?: SpanProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n let bold: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.bold !== undefined) {\n bold = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.bold,\n });\n }\n\n let italic: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.italic !== undefined) {\n italic = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.italic,\n });\n }\n\n let underline: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.underline !== undefined) {\n underline = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.underline,\n });\n }\n\n let strikethrough: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.strikethrough !== undefined) {\n strikethrough = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.strikethrough,\n });\n }\n\n let subscript: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.subscript !== undefined) {\n subscript = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.subscript,\n });\n }\n\n let superscript: Proto.ProtoBoxedBool | undefined = undefined;\n if (this.props?.superscript !== undefined) {\n superscript = Proto.ProtoBoxedBool.create({\n isNull: false,\n value: this.props.superscript,\n });\n }\n\n return Proto.Node.create({\n span: Proto.ProtoSpan.create({\n bold: bold,\n italic: italic,\n underline: underline,\n strikethrough: strikethrough,\n color: this.props?.color?.toDocFrame(),\n subscript: subscript,\n superscript: superscript,\n }),\n\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport type SubTotalPosition = \"above-footer\" | \"below-content\";\n\nfunction subTotalPositionToDocFrame(\n pos: SubTotalPosition,\n): Proto.ProtoSubTotalPosition {\n switch (pos) {\n case \"above-footer\":\n return Proto.ProtoSubTotalPosition.POSITION_ABOVE_FOOTER;\n case \"below-content\":\n return Proto.ProtoSubTotalPosition.POSITION_BELOW_CONTENT;\n default:\n throw new Error(`Unknown sub total position: ${pos}`);\n }\n}\n\nexport interface SubTotalProperties {\n /** Whether to apply immediately */\n applyImmediate?: boolean;\n /** Position of the sub total */\n position?: SubTotalPosition;\n /** Height of the sub total area */\n height?: Measure;\n}\n\nexport class SubTotal extends BranchDocumentElement<SubTotalProperties> {\n constructor(content?: Content, props?: SubTotalProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n subTotal: Proto.ProtoSubTotal.create({\n applyImmediate: this.props?.applyImmediate,\n position: this.props?.position\n ? subTotalPositionToDocFrame(this.props.position)\n : undefined,\n height: this.props?.height?.toDocFrame(),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure } from \"~/Measure\";\n\nexport interface TableSettings {\n width?: Measure;\n xOffset?: Measure;\n leftMeasure?: boolean;\n repeatHeader?: number;\n}\n\nexport class Table extends BranchDocumentElement<TableSettings> {\n constructor(content?: Content, props?: TableSettings) {\n super(content, props || {});\n if (!this.props!.xOffset) {\n this.props!.xOffset = Measure.zero;\n }\n }\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const settings: Proto.IProtoTableSettings = {\n width: props.width?.toDocFrame(),\n xOffset: props.xOffset?.toDocFrame(),\n leftMeasure: Proto.ProtoBoxedBool.create({\n isNull: false,\n value: props.leftMeasure ?? false,\n }),\n };\n\n if (props.repeatHeader !== undefined) {\n settings.repeatHeader = Proto.ProtoBoxedUint32.create({\n isNull: false,\n value: props.repeatHeader,\n });\n }\n\n return Proto.Node.create({\n table: Proto.ProtoTable.create({\n settings: Proto.ProtoTableSettings.create(settings),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { Measure, SideMeasures } from \"~/Measure\";\nimport { HorizontalAlignment, VerticalAlignment } from \"~/Alignment\";\nimport { Color } from \"~/Color\";\nimport { SideBorders } from \"~/Border\";\n\nexport interface TableCellProperties {\n alignment?: HorizontalAlignment;\n backgroundColor?: Color;\n border?: SideBorders;\n margin?: SideMeasures;\n padding?: SideMeasures;\n verticalAlignment?: VerticalAlignment;\n width?: Measure;\n rotation?: number;\n defaultParagraphFormat?: string;\n}\n\nexport class TableCell extends BranchDocumentElement<TableCellProperties> {\n constructor(content?: Content, props?: TableCellProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n const props = this.props!;\n\n const settings: Proto.IProtoTableCellSettings = {\n align: Proto.ProtoBoxedHorizontalAlignment.create({\n isNull: false,\n value:\n props!.alignment?.toDocFrame() ||\n Proto.ProtoHorizontalAlignment.ALIGN_LEFT,\n }),\n backgroundColor: props.backgroundColor?.toDocFrame(),\n border: props.border?.toDocFrame(),\n margin: props.margin?.toDocFrame(),\n padding: props.padding?.toDocFrame(),\n valign: Proto.ProtoBoxedVerticalAlignment.create({\n isNull: false,\n value:\n props.verticalAlignment?.toDocFrame() ||\n Proto.ProtoVerticalAlignment.TOP,\n }),\n width: props.width?.toDocFrame(),\n };\n\n if (props.rotation !== undefined) {\n settings.rotation = Proto.ProtoBoxedDouble.create({\n isNull: false,\n value: props.rotation,\n });\n }\n\n if (props.defaultParagraphFormat !== undefined) {\n settings.defaultParagraphFormat = Proto.ProtoBoxedString.create({\n isNull: false,\n value: props.defaultParagraphFormat,\n });\n }\n\n return Proto.Node.create({\n tableCell: Proto.ProtoTableCell.create({\n settings: Proto.ProtoTableCellSettings.create(settings),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\nexport interface TableContentGroupProperties {\n /** UUID */\n uuid?: string;\n}\n\nexport class TableContentGroup extends BranchDocumentElement<TableContentGroupProperties> {\n constructor(content?: Content, props?: TableContentGroupProperties) {\n super(content, props);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tableContentGroup: Proto.ProtoTableContentGroup.create({\n uuid: this.props?.uuid,\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\nimport { AbsoluteMeasure } from \"~/Measure\";\n\nexport interface TableRowProperties {\n minHeight?: AbsoluteMeasure;\n}\n\nexport class TableRow extends BranchDocumentElement<TableRowProperties> {\n constructor(content?: Content, props?: TableRowProperties) {\n super(content, props || {});\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tableRow: Proto.ProtoTableRow.create({\n settings: Proto.ProtoTableRowSettings.create({\n minHeight: this.props!.minHeight?.toDocFrame(),\n }),\n }),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport interface TagProperties {\n /** Tag name */\n name: string;\n /** UUID */\n uuid?: string;\n /** Tag parameters */\n params?: string[];\n /** Name code expression */\n nameCode?: string;\n /** Whether name is in code mode */\n codeMode?: boolean;\n}\n\nexport class Tag extends DocumentElement {\n props: TagProperties;\n\n constructor(props: TagProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n tag: Proto.ProtoTag.create({\n name: this.props.name,\n uuid: this.props.uuid,\n params: this.props.params,\n nameCode: this.props.nameCode,\n codeMode: this.props.codeMode,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { DocumentElement } from \"content/DocumentElement\";\n\nexport type VariableSpecialType =\n | \"table-number\"\n | \"doc-page-count\"\n | \"doc-cur-page\"\n | \"cur-page\"\n | \"page-count\"\n | \"prev-page\"\n | \"section-page\"\n | \"updated-at\"\n | \"generated-at\";\n\nfunction specialTypeToDocFrame(\n type: VariableSpecialType,\n): Proto.ProtoVariableSpecialType {\n switch (type) {\n case \"table-number\":\n return Proto.ProtoVariableSpecialType.TABLE_NUMBER;\n case \"doc-page-count\":\n return Proto.ProtoVariableSpecialType.DOC_PAGE_COUNT;\n case \"doc-cur-page\":\n return Proto.ProtoVariableSpecialType.DOC_CUR_PAGE;\n case \"cur-page\":\n return Proto.ProtoVariableSpecialType.CUR_PAGE;\n case \"page-count\":\n return Proto.ProtoVariableSpecialType.PAGE_COUNT;\n case \"prev-page\":\n return Proto.ProtoVariableSpecialType.PREV_PAGE;\n case \"section-page\":\n return Proto.ProtoVariableSpecialType.SECTION_PAGE;\n case \"updated-at\":\n return Proto.ProtoVariableSpecialType.UPDATED_AT;\n case \"generated-at\":\n return Proto.ProtoVariableSpecialType.GENERATED_AT;\n default:\n throw new Error(`Unknown variable special type: ${type}`);\n }\n}\n\nexport interface VariableProperties {\n /** Data path to the variable */\n path?: string;\n /** Static content value */\n content?: string;\n /** UUID of the format to apply */\n formatUuid?: string;\n /** Special type of the variable (e.g. page number) */\n specialType?: VariableSpecialType;\n /** UUID */\n uuid?: string;\n}\n\nexport class Variable extends DocumentElement {\n props: VariableProperties;\n\n constructor(props: VariableProperties) {\n super();\n this.props = props;\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n variable: Proto.ProtoVariable.create({\n path: this.props.path,\n content: this.props.content,\n formatUuid: this.props.formatUuid,\n specialType: this.props.specialType\n ? specialTypeToDocFrame(this.props.specialType)\n : undefined,\n uuid: this.props.uuid,\n }),\n });\n }\n}\n","import Proto from \"docframe-types\";\n\nimport { BranchDocumentElement } from \"content/BranchDocumentElement\";\nimport { Content } from \"content/DocumentElement\";\n\n/**\n * WsArea (Widow/orphan and Split area) wraps content to control\n * page break behavior.\n */\nexport class WsArea extends BranchDocumentElement {\n constructor(content?: Content) {\n super(content);\n }\n\n public toDocFrame(): Proto.Node {\n return Proto.Node.create({\n wsArea: Proto.ProtoWsArea.create({}),\n children: this.childrenToDocFrame(),\n });\n }\n}\n","import { AdjustHorizontally } from \"./AdjustHorizontally\";\nimport { AdvancedIllustrationArea } from \"./AdvancedIllustrationArea\";\nimport { Barcode } from \"./Barcode\";\nimport { CarryOver } from \"./CarryOver\";\nimport { ColumnDefinition, ColumnPosition } from \"./ColumnDefinition\";\nimport { Condition } from \"./Condition\";\nimport { Directory } from \"./Directory\";\nimport { Document } from \"./Document\";\nimport { Footer } from \"./Footer\";\nimport { Formatted } from \"./Formatted\";\nimport { Header } from \"./Header\";\nimport { Image } from \"./Image\";\nimport { Indentation } from \"./Indentation\";\nimport { Linebreak } from \"./Linebreak\";\nimport { Link } from \"./Link\";\nimport { Loop } from \"./Loop\";\nimport { LoopEntry } from \"./LoopEntry\";\nimport { Pagebreak } from \"./Pagebreak\";\nimport { PageCondition } from \"./PageCondition\";\nimport { PageDefinition } from \"./PageDefinition\";\nimport { Paragraph } from \"./Paragraph\";\nimport { Rule } from \"./Rule\";\nimport { Section } from \"./Section\";\nimport { Selection } from \"./Selection\";\nimport { SelectionEntry } from \"./SelectionEntry\";\nimport { SpaceVertically } from \"./SpaceVertically\";\nimport { Span } from \"./Span\";\nimport { SubTotal } from \"./SubTotal\";\nimport { Table } from \"./Table\";\nimport { TableCell } from \"./TableCell\";\nimport { TableContentGroup } from \"./TableContentGroup\";\nimport { TableRow } from \"./TableRow\";\nimport { Tag } from \"./Tag\";\nimport { Text } from \"./Text\";\nimport { Variable } from \"./Variable\";\nimport { WsArea } from \"./WsArea\";\n\nexport default {\n AdjustHorizontally,\n AdvancedIllustrationArea,\n Barcode,\n CarryOver,\n ColumnDefinition,\n ColumnPosition,\n Condition,\n Directory,\n Document,\n Footer,\n Formatted,\n Header,\n Image,\n Indentation,\n Linebreak,\n Link,\n Loop,\n LoopEntry,\n Pagebreak,\n PageCondition,\n PageDefinition,\n Paragraph,\n Rule,\n Section,\n Selection,\n SelectionEntry,\n SpaceVertically,\n Span,\n SubTotal,\n Table,\n TableCell,\n TableContentGroup,\n TableRow,\n Tag,\n Text,\n Variable,\n WsArea,\n};\n","import { Alignment } from \"./Alignment\";\nimport { Border, SideBorders } from \"./Border\";\nimport { Color, Colors } from \"./Color\";\nimport { Connection } from \"./Connection\";\nimport Content from \"./Content\";\nimport { Font, StandardFonts } from \"./Font\";\nimport * as Measure from \"./Measure\";\nimport * as Output from \"./OutputFormat\";\nimport { ParagraphFormat } from \"./ParagraphFormat\";\n\nexport default {\n Alignment,\n Border: {\n Border,\n SideBorders,\n },\n Color: {\n Color,\n Colors,\n },\n Connection,\n Content,\n Font: {\n Font,\n StandardFonts,\n },\n Measure,\n Output,\n ParagraphFormat,\n};\n"],"mappings":"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","names":["Alignment","Proto","Proto","Colors","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","ColumnPosition","Proto","Proto","Proto","Proto","Proto","Proto","OutputFormat","Proto","Proto","Proto","Proto","PageDefinitions","Proto","uuidv4","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto","Proto"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-d2",
3
- "version": "0.0.22",
3
+ "version": "0.0.23",
4
4
  "description": "Deuterium is a TypeScript library for professional output creation.",
5
5
  "keywords": [
6
6
  "pdf",
@@ -70,4 +70,4 @@
70
70
  "tslib": "^2.8.1",
71
71
  "uuid": "^13.0.0"
72
72
  }
73
- }
73
+ }