@nxgt/material-core 0.1.0
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/LICENSE +21 -0
- package/README.md +335 -0
- package/dist/chunks/index-0xc5q9tp.js +81 -0
- package/dist/chunks/index-0xc5q9tp.js.map +10 -0
- package/dist/chunks/index-2gcgcmc0.js +36 -0
- package/dist/chunks/index-2gcgcmc0.js.map +10 -0
- package/dist/chunks/index-3ca6xe71.js +36 -0
- package/dist/chunks/index-3ca6xe71.js.map +10 -0
- package/dist/chunks/index-5r6rzp43.js +90 -0
- package/dist/chunks/index-5r6rzp43.js.map +10 -0
- package/dist/chunks/index-6tn0wjsb.js +13 -0
- package/dist/chunks/index-6tn0wjsb.js.map +10 -0
- package/dist/chunks/index-8gf9e2d4.js +76 -0
- package/dist/chunks/index-8gf9e2d4.js.map +11 -0
- package/dist/chunks/index-eh0e5ex7.js +61 -0
- package/dist/chunks/index-eh0e5ex7.js.map +10 -0
- package/dist/chunks/index-g7rh8fpv.js +57 -0
- package/dist/chunks/index-g7rh8fpv.js.map +10 -0
- package/dist/chunks/index-h3vjydz7.js +113 -0
- package/dist/chunks/index-h3vjydz7.js.map +10 -0
- package/dist/chunks/index-paaaedrm.js +37 -0
- package/dist/chunks/index-paaaedrm.js.map +10 -0
- package/dist/chunks/index-w3ajz57t.js +72 -0
- package/dist/chunks/index-w3ajz57t.js.map +10 -0
- package/dist/chunks/index-z3yjh0a8.js +642 -0
- package/dist/chunks/index-z3yjh0a8.js.map +18 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +133 -0
- package/dist/index.js.map +9 -0
- package/dist/lib/currency-digits.d.ts +8 -0
- package/dist/lib/currency-digits.d.ts.map +1 -0
- package/dist/lib/currency-digits.js +24 -0
- package/dist/lib/currency-digits.js.map +10 -0
- package/dist/lib/field-blur-layers.d.ts +35 -0
- package/dist/lib/field-blur-layers.d.ts.map +1 -0
- package/dist/lib/field-blur-layers.js +52 -0
- package/dist/lib/field-blur-layers.js.map +10 -0
- package/dist/lib/pdf-download.d.ts +36 -0
- package/dist/lib/pdf-download.d.ts.map +1 -0
- package/dist/lib/pdf-download.js +15 -0
- package/dist/lib/pdf-download.js.map +9 -0
- package/dist/lib/pdf-file-name.d.ts +10 -0
- package/dist/lib/pdf-file-name.d.ts.map +1 -0
- package/dist/lib/pdf-file-name.js +12 -0
- package/dist/lib/pdf-file-name.js.map +9 -0
- package/dist/lib/pdf-source.d.ts +58 -0
- package/dist/lib/pdf-source.d.ts.map +1 -0
- package/dist/lib/pdf-source.js +21 -0
- package/dist/lib/pdf-source.js.map +9 -0
- package/dist/lib/print-format.utils.d.ts +72 -0
- package/dist/lib/print-format.utils.d.ts.map +1 -0
- package/dist/lib/print-format.utils.js +14 -0
- package/dist/lib/print-format.utils.js.map +9 -0
- package/dist/lib/print-fraction-digits.d.ts +13 -0
- package/dist/lib/print-fraction-digits.d.ts.map +1 -0
- package/dist/lib/print-fraction-digits.js +11 -0
- package/dist/lib/print-fraction-digits.js.map +9 -0
- package/dist/lib/print-table.utils.d.ts +69 -0
- package/dist/lib/print-table.utils.d.ts.map +1 -0
- package/dist/lib/print-table.utils.js +15 -0
- package/dist/lib/print-table.utils.js.map +9 -0
- package/dist/lib/print-value.utils.d.ts +41 -0
- package/dist/lib/print-value.utils.d.ts.map +1 -0
- package/dist/lib/print-value.utils.js +13 -0
- package/dist/lib/print-value.utils.js.map +9 -0
- package/dist/pdf/file-loader.d.ts +19 -0
- package/dist/pdf/file-loader.d.ts.map +1 -0
- package/dist/pdf/file-loader.js +11 -0
- package/dist/pdf/file-loader.js.map +9 -0
- package/dist/pdf/http.d.ts +23 -0
- package/dist/pdf/http.d.ts.map +1 -0
- package/dist/pdf/http.js +13 -0
- package/dist/pdf/http.js.map +9 -0
- package/dist/pdf/index.d.ts +12 -0
- package/dist/pdf/index.d.ts.map +1 -0
- package/dist/pdf/index.js +99 -0
- package/dist/pdf/index.js.map +9 -0
- package/dist/pdf/model/builders.d.ts +59 -0
- package/dist/pdf/model/builders.d.ts.map +1 -0
- package/dist/pdf/model/data-table.d.ts +25 -0
- package/dist/pdf/model/data-table.d.ts.map +1 -0
- package/dist/pdf/model/index.d.ts +5 -0
- package/dist/pdf/model/index.d.ts.map +1 -0
- package/dist/pdf/model/index.js +60 -0
- package/dist/pdf/model/index.js.map +9 -0
- package/dist/pdf/model/nodes.d.ts +135 -0
- package/dist/pdf/model/nodes.d.ts.map +1 -0
- package/dist/pdf/model/theme.d.ts +17 -0
- package/dist/pdf/model/theme.d.ts.map +1 -0
- package/dist/pdf/model/types.d.ts +124 -0
- package/dist/pdf/model/types.d.ts.map +1 -0
- package/dist/pdf/render/context.d.ts +51 -0
- package/dist/pdf/render/context.d.ts.map +1 -0
- package/dist/pdf/render/document.d.ts +22 -0
- package/dist/pdf/render/document.d.ts.map +1 -0
- package/dist/pdf/render/index.d.ts +9 -0
- package/dist/pdf/render/index.d.ts.map +1 -0
- package/dist/pdf/render/index.js +44 -0
- package/dist/pdf/render/index.js.map +9 -0
- package/dist/pdf/render/nodes/blocks.d.ts +20 -0
- package/dist/pdf/render/nodes/blocks.d.ts.map +1 -0
- package/dist/pdf/render/nodes/header.d.ts +15 -0
- package/dist/pdf/render/nodes/header.d.ts.map +1 -0
- package/dist/pdf/render/nodes/layout.d.ts +45 -0
- package/dist/pdf/render/nodes/layout.d.ts.map +1 -0
- package/dist/pdf/render/nodes/table.d.ts +15 -0
- package/dist/pdf/render/nodes/table.d.ts.map +1 -0
- package/dist/pdf/render/page.d.ts +31 -0
- package/dist/pdf/render/page.d.ts.map +1 -0
- package/dist/pdf/render/render-node.d.ts +11 -0
- package/dist/pdf/render/render-node.d.ts.map +1 -0
- package/dist/pdf/render/styles.d.ts +304 -0
- package/dist/pdf/render/styles.d.ts.map +1 -0
- package/dist/pdf-viewer/index.d.ts +14 -0
- package/dist/pdf-viewer/index.d.ts.map +1 -0
- package/dist/pdf-viewer/index.js +380 -0
- package/dist/pdf-viewer/index.js.map +15 -0
- package/dist/pdf-viewer/pdf-document-search.d.ts +44 -0
- package/dist/pdf-viewer/pdf-document-search.d.ts.map +1 -0
- package/dist/pdf-viewer/pdf-escape.d.ts +7 -0
- package/dist/pdf-viewer/pdf-escape.d.ts.map +1 -0
- package/dist/pdf-viewer/pdf-page-geometry.d.ts +62 -0
- package/dist/pdf-viewer/pdf-page-geometry.d.ts.map +1 -0
- package/dist/pdf-viewer/pdf-page-sizes.d.ts +38 -0
- package/dist/pdf-viewer/pdf-page-sizes.d.ts.map +1 -0
- package/dist/pdf-viewer/pdf-scroll-spy.d.ts +43 -0
- package/dist/pdf-viewer/pdf-scroll-spy.d.ts.map +1 -0
- package/dist/pdf-viewer/pdf-text-search.d.ts +26 -0
- package/dist/pdf-viewer/pdf-text-search.d.ts.map +1 -0
- package/dist/vite/index.d.ts +81 -0
- package/dist/vite/index.d.ts.map +1 -0
- package/dist/vite/index.js +31 -0
- package/dist/vite/index.js.map +10 -0
- package/docs/README.md +9 -0
- package/docs/roadmap.md +35 -0
- package/docs/troubleshooting.md +105 -0
- package/package.json +187 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Text, View } from '@react-pdf/renderer';
|
|
2
|
+
import type { PdfNode } from '../../model/types';
|
|
3
|
+
import { type PdfRenderContext } from '../context';
|
|
4
|
+
type NodeOf<T extends PdfNode['type']> = Extract<PdfNode, {
|
|
5
|
+
type: T;
|
|
6
|
+
}>;
|
|
7
|
+
/** Label and value pairs, in one or two columns; empty values are skipped. */
|
|
8
|
+
export declare function renderKeyValue(node: NodeOf<'keyValue'>, ctx: PdfRenderContext): import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View> | null;
|
|
9
|
+
/** A right-aligned box of totals; an `emphasis` row is the dark last row. */
|
|
10
|
+
export declare function renderTotals(node: NodeOf<'totals'>, ctx: PdfRenderContext): import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View>;
|
|
11
|
+
/** One figure with its label, an optional hint and change. */
|
|
12
|
+
export declare function renderMetric(node: NodeOf<'metric'>, ctx: PdfRenderContext): import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View>;
|
|
13
|
+
export declare function renderBadge(node: NodeOf<'badge'>, ctx: PdfRenderContext): import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View>;
|
|
14
|
+
/**
|
|
15
|
+
* "Page 2 of 5" (or "Page 2"), translated. react-pdf calls `render` at layout
|
|
16
|
+
* time, outside React, so it only uses what the context already resolved.
|
|
17
|
+
*/
|
|
18
|
+
export declare function renderPageNumber(node: NodeOf<'pageNumber'>, ctx: PdfRenderContext): import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").TextProps> | import("@react-pdf/renderer").SVGTextProps, Text>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=blocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../src/pdf/render/nodes/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,gBAAgB,EAAa,MAAM,YAAY,CAAC;AAE9D,KAAK,MAAM,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAEvE,8EAA8E;AAC9E,wBAAgB,cAAc,CAC7B,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EACxB,GAAG,EAAE,gBAAgB,qHA4BrB;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,gBAAgB,8GA8BzE;AAYD,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,gBAAgB,8GAoBzE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,gBAAgB,8GAavE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,EAC1B,GAAG,EAAE,gBAAgB,2JAoBrB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { View } from '@react-pdf/renderer';
|
|
2
|
+
import type { PdfNode } from '../../model/types';
|
|
3
|
+
import { type PdfRenderContext } from '../context';
|
|
4
|
+
type HeaderNode = Extract<PdfNode, {
|
|
5
|
+
type: 'header';
|
|
6
|
+
}>;
|
|
7
|
+
/**
|
|
8
|
+
* The title block: logo (an image, or `logoText` in a box) on the left, the
|
|
9
|
+
* title, subtitle and reference centred, a QR code on the right. A side with
|
|
10
|
+
* nothing to show keeps an empty box of the other side's width, so the title
|
|
11
|
+
* stays centred; with neither, the title is centred on the page.
|
|
12
|
+
*/
|
|
13
|
+
export declare function renderHeader(node: HeaderNode, ctx: PdfRenderContext): import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/pdf/render/nodes/header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,gBAAgB,EAAa,MAAM,YAAY,CAAC;AAE9D,KAAK,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AA0BvD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,8GAuCnE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Image, Text, View } from '@react-pdf/renderer';
|
|
2
|
+
import type { PdfNode, PdfStyle } from '../../model/types';
|
|
3
|
+
import { type PdfRenderContext } from '../context';
|
|
4
|
+
type NodeOf<T extends PdfNode['type']> = Extract<PdfNode, {
|
|
5
|
+
type: T;
|
|
6
|
+
}>;
|
|
7
|
+
/** A model style with its theme colours and font resolved. */
|
|
8
|
+
export declare function toStyle(style: PdfStyle | undefined, ctx: PdfRenderContext): {
|
|
9
|
+
borderColor?: string | undefined;
|
|
10
|
+
backgroundColor?: string | undefined;
|
|
11
|
+
color?: string | undefined;
|
|
12
|
+
fontFamily?: string | undefined;
|
|
13
|
+
margin?: number;
|
|
14
|
+
marginTop?: number;
|
|
15
|
+
marginRight?: number;
|
|
16
|
+
marginBottom?: number;
|
|
17
|
+
marginLeft?: number;
|
|
18
|
+
padding?: number;
|
|
19
|
+
paddingTop?: number;
|
|
20
|
+
paddingRight?: number;
|
|
21
|
+
paddingBottom?: number;
|
|
22
|
+
paddingLeft?: number;
|
|
23
|
+
width?: number | string;
|
|
24
|
+
height?: number | string;
|
|
25
|
+
flex?: number;
|
|
26
|
+
gap?: number;
|
|
27
|
+
fontSize?: number;
|
|
28
|
+
fontWeight?: "normal" | "bold";
|
|
29
|
+
fontStyle?: "normal" | "italic";
|
|
30
|
+
textAlign?: "left" | "center" | "right" | "justify";
|
|
31
|
+
borderWidth?: number;
|
|
32
|
+
borderRadius?: number;
|
|
33
|
+
};
|
|
34
|
+
export declare const renderStack: (node: NodeOf<"stack">, ctx: PdfRenderContext) => import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View>;
|
|
35
|
+
export declare const renderRow: (node: NodeOf<"row">, ctx: PdfRenderContext) => import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View>;
|
|
36
|
+
export declare const renderText: (node: NodeOf<"text">, ctx: PdfRenderContext) => import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").TextProps> | import("@react-pdf/renderer").SVGTextProps, Text>;
|
|
37
|
+
export declare const renderHeading: (node: NodeOf<"heading">, ctx: PdfRenderContext) => import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").TextProps> | import("@react-pdf/renderer").SVGTextProps, Text>;
|
|
38
|
+
export declare const renderSection: (node: NodeOf<"section">, ctx: PdfRenderContext) => import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View>;
|
|
39
|
+
export declare const renderImage: (node: NodeOf<"image">) => import("react").CElement<import("@react-pdf/renderer").ImageProps, Image>;
|
|
40
|
+
export declare const renderLink: (node: NodeOf<"link">, ctx: PdfRenderContext) => import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").TextProps> | import("@react-pdf/renderer").SVGTextProps, Text>;
|
|
41
|
+
export declare const renderSpacer: (node: NodeOf<"spacer">) => import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View>;
|
|
42
|
+
export declare const renderDivider: (_node: NodeOf<"divider">, ctx: PdfRenderContext) => import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View>;
|
|
43
|
+
export declare const renderPageBreak: () => import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View>;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/pdf/render/nodes/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAQ,IAAI,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,KAAK,EAAa,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,KAAK,gBAAgB,EAAa,MAAM,YAAY,CAAC;AAG9D,KAAK,MAAM,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAEvE,8DAA8D;AAC9D,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE,GAAG,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;EAiBzE;AAeD,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,gBAAgB,+GAWtE,CAAC;AAEH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,gBAAgB,+GAalE,CAAC;AAsBH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,gBAAgB,4JAYpE,CAAC;AAEH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,gBAAgB,4JAQ1E,CAAC;AAEH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,gBAAgB,+GAU1E,CAAC;AAEH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,CAAC,OAAO,CAAC,8EAQ9C,CAAC;AAEJ,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,gBAAgB,4JAKpE,CAAC;AAEH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,CAAC,QAAQ,CAAC,+GACT,CAAC;AAE3C,eAAO,MAAM,aAAa,GACzB,OAAO,MAAM,CAAC,SAAS,CAAC,EACxB,KAAK,gBAAgB,+GACqB,CAAC;AAE5C,eAAO,MAAM,eAAe,kHAAiC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { View } from '@react-pdf/renderer';
|
|
2
|
+
import type { PdfNode } from '../../model/types';
|
|
3
|
+
import { type PdfRenderContext } from '../context';
|
|
4
|
+
type TableNode = Extract<PdfNode, {
|
|
5
|
+
type: 'table';
|
|
6
|
+
}>;
|
|
7
|
+
/**
|
|
8
|
+
* A table: a header row that repeats at the top of each page the table
|
|
9
|
+
* crosses, body rows that never split (and stripe), then footer rows (totals)
|
|
10
|
+
* kept together. With no rows, the header and one muted row, or nothing with
|
|
11
|
+
* `hideWhenEmpty`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function renderTable(node: TableNode, ctx: PdfRenderContext): import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").ViewProps>, View> | null;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/pdf/render/nodes/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,KAAK,gBAAgB,EAAa,MAAM,YAAY,CAAC;AAG9D,KAAK,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AA2DrD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,gBAAgB,qHAmEjE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Page } from '@react-pdf/renderer';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
import type { PdfBox, PdfPageOptions } from '../model/types';
|
|
4
|
+
import { type PdfRenderContext } from './context';
|
|
5
|
+
export declare const DEFAULT_PDF_MARGINS: {
|
|
6
|
+
top: number;
|
|
7
|
+
right: number;
|
|
8
|
+
bottom: number;
|
|
9
|
+
left: number;
|
|
10
|
+
};
|
|
11
|
+
export declare const DEFAULT_FOOTER_HEIGHT = 24;
|
|
12
|
+
export type PdfMargins = typeof DEFAULT_PDF_MARGINS;
|
|
13
|
+
/**
|
|
14
|
+
* Margins in points from a number or a box: a side wins over its axis
|
|
15
|
+
* (`x`, `y`), which wins over the default.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolvePdfMargins(margins?: number | PdfBox): PdfMargins;
|
|
18
|
+
export type PdfPageParts = {
|
|
19
|
+
/** Repeated at the top of every page, in the flow. */
|
|
20
|
+
header?: ReactNode;
|
|
21
|
+
/** Repeated at the bottom of every page, in the space kept for it. */
|
|
22
|
+
footer?: ReactNode;
|
|
23
|
+
body: ReactNode[];
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* One react-pdf `Page`: size, orientation and margins, the header fixed at
|
|
27
|
+
* the top of each page, the footer and page number fixed in the space kept
|
|
28
|
+
* at the bottom, and the watermark behind everything.
|
|
29
|
+
*/
|
|
30
|
+
export declare function renderPdfPage(options: PdfPageOptions, parts: PdfPageParts, ctx: PdfRenderContext): import("react").CElement<import("react").PropsWithChildren<import("@react-pdf/renderer").PageProps>, Page>;
|
|
31
|
+
//# sourceMappingURL=page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/pdf/render/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,KAAK,gBAAgB,EAAa,MAAM,WAAW,CAAC;AAG7D,eAAO,MAAM,mBAAmB;;;;;CAA+C,CAAC;AAChF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,MAAM,UAAU,GAAG,OAAO,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAYvE;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,sDAAsD;IACtD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,sEAAsE;IACtE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,SAAS,EAAE,CAAC;CAClB,CAAC;AAuFF;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,gBAAgB,8GA6CrB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { PdfNode } from '../model/types';
|
|
3
|
+
import type { PdfRenderContext } from './context';
|
|
4
|
+
/**
|
|
5
|
+
* Renders one model node as react-pdf elements. An unknown `type` throws: a
|
|
6
|
+
* document from a newer version, or a typo in hand-written JSON.
|
|
7
|
+
*/
|
|
8
|
+
export declare function renderPdfNode(node: PdfNode, context: PdfRenderContext): ReactNode;
|
|
9
|
+
/** Renders a list of nodes, each under its index as key. */
|
|
10
|
+
export declare function renderPdfNodes(nodes: PdfNode[] | undefined, context: PdfRenderContext): ReactNode[];
|
|
11
|
+
//# sourceMappingURL=render-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-node.d.ts","sourceRoot":"","sources":["../../../src/pdf/render/render-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAiElD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,aAarE;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAC7B,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAC5B,OAAO,EAAE,gBAAgB,GACvB,SAAS,EAAE,CAIb"}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import type { Styles } from '@react-pdf/renderer';
|
|
2
|
+
import type { PdfTheme } from '../model/theme';
|
|
3
|
+
/** One react-pdf style object. */
|
|
4
|
+
export type PdfElementStyle = Styles[string];
|
|
5
|
+
/**
|
|
6
|
+
* Plain react-pdf styles for every block, from a theme. The keys shared with
|
|
7
|
+
* `commonPrintStyles` hold exactly what `tw(commonPrintStyles.x)` gives in
|
|
8
|
+
* `@nxgt/material/print` (a test there compares them), so a document built
|
|
9
|
+
* from the model looks like one written with the JSX blocks.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createPdfStyles({ colors: c, fonts }: PdfTheme): {
|
|
12
|
+
page: {
|
|
13
|
+
flexDirection: "column";
|
|
14
|
+
gap: number;
|
|
15
|
+
paddingTop: number;
|
|
16
|
+
paddingBottom: number;
|
|
17
|
+
paddingLeft: number;
|
|
18
|
+
paddingRight: number;
|
|
19
|
+
fontFamily: string;
|
|
20
|
+
fontSize: string;
|
|
21
|
+
color: string;
|
|
22
|
+
};
|
|
23
|
+
header: {
|
|
24
|
+
flexDirection: "row";
|
|
25
|
+
alignItems: "center";
|
|
26
|
+
marginBottom: number;
|
|
27
|
+
};
|
|
28
|
+
headerTitle: {
|
|
29
|
+
fontSize: string;
|
|
30
|
+
fontWeight: number;
|
|
31
|
+
color: string;
|
|
32
|
+
letterSpacing: number;
|
|
33
|
+
};
|
|
34
|
+
headerRef: {
|
|
35
|
+
fontSize: string;
|
|
36
|
+
color: string;
|
|
37
|
+
marginTop: number;
|
|
38
|
+
};
|
|
39
|
+
divider: {
|
|
40
|
+
borderBottomWidth: number;
|
|
41
|
+
borderColor: string;
|
|
42
|
+
marginBottom: number;
|
|
43
|
+
};
|
|
44
|
+
sectionTitle: {
|
|
45
|
+
fontSize: string;
|
|
46
|
+
fontWeight: number;
|
|
47
|
+
color: string;
|
|
48
|
+
marginBottom: number;
|
|
49
|
+
textTransform: "uppercase";
|
|
50
|
+
letterSpacing: number;
|
|
51
|
+
};
|
|
52
|
+
infoGrid: {
|
|
53
|
+
flexDirection: "row";
|
|
54
|
+
gap: number;
|
|
55
|
+
marginBottom: number;
|
|
56
|
+
};
|
|
57
|
+
infoCol: {
|
|
58
|
+
flex: string;
|
|
59
|
+
flexDirection: "column";
|
|
60
|
+
gap: number;
|
|
61
|
+
};
|
|
62
|
+
infoRow: {
|
|
63
|
+
flexDirection: "row";
|
|
64
|
+
gap: number;
|
|
65
|
+
};
|
|
66
|
+
infoLabel: {
|
|
67
|
+
fontSize: string;
|
|
68
|
+
color: string;
|
|
69
|
+
fontWeight: number;
|
|
70
|
+
width: number;
|
|
71
|
+
};
|
|
72
|
+
infoValue: {
|
|
73
|
+
fontSize: string;
|
|
74
|
+
color: string;
|
|
75
|
+
flex: string;
|
|
76
|
+
};
|
|
77
|
+
tableSection: {
|
|
78
|
+
marginBottom: number;
|
|
79
|
+
};
|
|
80
|
+
tableHeader: {
|
|
81
|
+
gap: number;
|
|
82
|
+
marginBottom: number;
|
|
83
|
+
paddingTop: number;
|
|
84
|
+
paddingBottom: number;
|
|
85
|
+
paddingLeft: number;
|
|
86
|
+
paddingRight: number;
|
|
87
|
+
flexDirection: "row";
|
|
88
|
+
backgroundColor: string;
|
|
89
|
+
borderRadius: number;
|
|
90
|
+
};
|
|
91
|
+
tableHeaderCell: {
|
|
92
|
+
fontSize: string;
|
|
93
|
+
fontWeight: number;
|
|
94
|
+
color: string;
|
|
95
|
+
};
|
|
96
|
+
tableRow: {
|
|
97
|
+
gap: number;
|
|
98
|
+
borderBottomWidth: number;
|
|
99
|
+
borderColor: string;
|
|
100
|
+
paddingTop: number;
|
|
101
|
+
paddingBottom: number;
|
|
102
|
+
paddingLeft: number;
|
|
103
|
+
paddingRight: number;
|
|
104
|
+
flexDirection: "row";
|
|
105
|
+
};
|
|
106
|
+
tableRowAlt: {
|
|
107
|
+
backgroundColor: string;
|
|
108
|
+
};
|
|
109
|
+
tableCell: {
|
|
110
|
+
fontSize: string;
|
|
111
|
+
color: string;
|
|
112
|
+
};
|
|
113
|
+
totalsSection: {
|
|
114
|
+
alignItems: "flex-end";
|
|
115
|
+
marginBottom: number;
|
|
116
|
+
};
|
|
117
|
+
totalsTable: {
|
|
118
|
+
width: string;
|
|
119
|
+
borderWidth: number;
|
|
120
|
+
borderColor: string;
|
|
121
|
+
borderRadius: number;
|
|
122
|
+
};
|
|
123
|
+
totalsRow: {
|
|
124
|
+
borderBottomWidth: number;
|
|
125
|
+
borderColor: string;
|
|
126
|
+
paddingTop: number;
|
|
127
|
+
paddingBottom: number;
|
|
128
|
+
paddingLeft: number;
|
|
129
|
+
paddingRight: number;
|
|
130
|
+
flexDirection: "row";
|
|
131
|
+
justifyContent: "space-between";
|
|
132
|
+
};
|
|
133
|
+
totalsRowLast: {
|
|
134
|
+
backgroundColor: string;
|
|
135
|
+
borderRadius: number;
|
|
136
|
+
paddingTop: number;
|
|
137
|
+
paddingBottom: number;
|
|
138
|
+
paddingLeft: number;
|
|
139
|
+
paddingRight: number;
|
|
140
|
+
flexDirection: "row";
|
|
141
|
+
justifyContent: "space-between";
|
|
142
|
+
};
|
|
143
|
+
totalsLabel: {
|
|
144
|
+
fontSize: string;
|
|
145
|
+
color: string;
|
|
146
|
+
};
|
|
147
|
+
totalsValue: {
|
|
148
|
+
fontSize: string;
|
|
149
|
+
color: string;
|
|
150
|
+
fontWeight: number;
|
|
151
|
+
};
|
|
152
|
+
totalsLabelBold: {
|
|
153
|
+
fontSize: string;
|
|
154
|
+
color: string;
|
|
155
|
+
fontWeight: number;
|
|
156
|
+
};
|
|
157
|
+
totalsValueBold: {
|
|
158
|
+
fontSize: string;
|
|
159
|
+
color: string;
|
|
160
|
+
fontWeight: number;
|
|
161
|
+
};
|
|
162
|
+
notesSection: {
|
|
163
|
+
borderWidth: number;
|
|
164
|
+
borderColor: string;
|
|
165
|
+
borderRadius: number;
|
|
166
|
+
padding: number;
|
|
167
|
+
};
|
|
168
|
+
notesText: {
|
|
169
|
+
fontSize: string;
|
|
170
|
+
color: string;
|
|
171
|
+
lineHeight: number;
|
|
172
|
+
};
|
|
173
|
+
badge: {
|
|
174
|
+
alignSelf: "flex-start";
|
|
175
|
+
paddingTop: number;
|
|
176
|
+
paddingBottom: number;
|
|
177
|
+
paddingLeft: number;
|
|
178
|
+
paddingRight: number;
|
|
179
|
+
borderRadius: number;
|
|
180
|
+
};
|
|
181
|
+
badgeText: {
|
|
182
|
+
fontSize: string;
|
|
183
|
+
fontWeight: number;
|
|
184
|
+
color: string;
|
|
185
|
+
};
|
|
186
|
+
section: {
|
|
187
|
+
marginBottom: number;
|
|
188
|
+
};
|
|
189
|
+
logoBox: {
|
|
190
|
+
width: string;
|
|
191
|
+
height: string;
|
|
192
|
+
borderRadius: number;
|
|
193
|
+
justifyContent: "center";
|
|
194
|
+
alignItems: "center";
|
|
195
|
+
};
|
|
196
|
+
logoText: {
|
|
197
|
+
fontSize: string;
|
|
198
|
+
fontWeight: number;
|
|
199
|
+
color: string;
|
|
200
|
+
letterSpacing: number;
|
|
201
|
+
textTransform: "uppercase";
|
|
202
|
+
};
|
|
203
|
+
headerCentre: {
|
|
204
|
+
flex: string;
|
|
205
|
+
flexDirection: "column";
|
|
206
|
+
alignItems: "center";
|
|
207
|
+
};
|
|
208
|
+
headerSubtitle: {
|
|
209
|
+
fontSize: string;
|
|
210
|
+
color: string;
|
|
211
|
+
marginTop: number;
|
|
212
|
+
};
|
|
213
|
+
qrBox: {
|
|
214
|
+
width: string;
|
|
215
|
+
height: string;
|
|
216
|
+
borderRadius: number;
|
|
217
|
+
};
|
|
218
|
+
heading1: {
|
|
219
|
+
fontSize: string;
|
|
220
|
+
fontWeight: number;
|
|
221
|
+
color: string;
|
|
222
|
+
marginBottom: number;
|
|
223
|
+
};
|
|
224
|
+
heading2: {
|
|
225
|
+
fontSize: string;
|
|
226
|
+
fontWeight: number;
|
|
227
|
+
color: string;
|
|
228
|
+
marginBottom: number;
|
|
229
|
+
};
|
|
230
|
+
heading3: {
|
|
231
|
+
fontSize: string;
|
|
232
|
+
fontWeight: number;
|
|
233
|
+
color: string;
|
|
234
|
+
marginBottom: number;
|
|
235
|
+
};
|
|
236
|
+
textBody: {
|
|
237
|
+
fontSize: string;
|
|
238
|
+
color: string;
|
|
239
|
+
};
|
|
240
|
+
textMuted: {
|
|
241
|
+
fontSize: string;
|
|
242
|
+
color: string;
|
|
243
|
+
};
|
|
244
|
+
textCaption: {
|
|
245
|
+
fontSize: string;
|
|
246
|
+
color: string;
|
|
247
|
+
};
|
|
248
|
+
textLabel: {
|
|
249
|
+
fontSize: string;
|
|
250
|
+
fontWeight: number;
|
|
251
|
+
color: string;
|
|
252
|
+
textTransform: "uppercase";
|
|
253
|
+
};
|
|
254
|
+
link: {
|
|
255
|
+
color: string;
|
|
256
|
+
textDecoration: "underline";
|
|
257
|
+
};
|
|
258
|
+
tableEmpty: {
|
|
259
|
+
fontSize: string;
|
|
260
|
+
color: string;
|
|
261
|
+
fontStyle: "italic";
|
|
262
|
+
};
|
|
263
|
+
tableFooter: {
|
|
264
|
+
gap: number;
|
|
265
|
+
paddingTop: number;
|
|
266
|
+
paddingBottom: number;
|
|
267
|
+
paddingLeft: number;
|
|
268
|
+
paddingRight: number;
|
|
269
|
+
flexDirection: "row";
|
|
270
|
+
};
|
|
271
|
+
tableFooterCell: {
|
|
272
|
+
fontSize: string;
|
|
273
|
+
fontWeight: number;
|
|
274
|
+
color: string;
|
|
275
|
+
};
|
|
276
|
+
metric: {
|
|
277
|
+
flex: string;
|
|
278
|
+
borderWidth: number;
|
|
279
|
+
borderColor: string;
|
|
280
|
+
borderRadius: number;
|
|
281
|
+
padding: number;
|
|
282
|
+
gap: number;
|
|
283
|
+
};
|
|
284
|
+
metricValue: {
|
|
285
|
+
fontSize: string;
|
|
286
|
+
fontWeight: number;
|
|
287
|
+
color: string;
|
|
288
|
+
};
|
|
289
|
+
deltaUp: {
|
|
290
|
+
fontSize: string;
|
|
291
|
+
color: string;
|
|
292
|
+
};
|
|
293
|
+
deltaDown: {
|
|
294
|
+
fontSize: string;
|
|
295
|
+
color: string;
|
|
296
|
+
};
|
|
297
|
+
pageNumber: {
|
|
298
|
+
fontSize: string;
|
|
299
|
+
color: string;
|
|
300
|
+
};
|
|
301
|
+
};
|
|
302
|
+
export type PdfStyles = ReturnType<typeof createPdfStyles>;
|
|
303
|
+
export type PdfStyleName = keyof PdfStyles;
|
|
304
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/pdf/render/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,kCAAkC;AAClC,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkK7D;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC3D,MAAM,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@nxgt/material-core/pdf-viewer` — the framework-free half of both
|
|
3
|
+
* libraries' PDF viewer: page geometry and fit, reading page sizes from a
|
|
4
|
+
* pdf.js document, the scroll spy, and the text search. Plain functions over
|
|
5
|
+
* numbers, strings and the few DOM methods the viewer hands them; nothing
|
|
6
|
+
* here imports pdf.js, React or Vue.
|
|
7
|
+
*/
|
|
8
|
+
export * from './pdf-document-search';
|
|
9
|
+
export * from './pdf-escape';
|
|
10
|
+
export * from './pdf-page-geometry';
|
|
11
|
+
export * from './pdf-page-sizes';
|
|
12
|
+
export * from './pdf-scroll-spy';
|
|
13
|
+
export * from './pdf-text-search';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pdf-viewer/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|