react-pdf-html-flabs-2 1.1.9 → 1.2.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/dist/renderers.js +39 -8
- package/dist/renderers.js.map +1 -1
- package/dist/styles.js +4 -0
- package/dist/styles.js.map +1 -1
- package/package.json +1 -1
package/dist/renderers.js
CHANGED
|
@@ -33,17 +33,27 @@ const renderInline = ({ style, children }) => {
|
|
|
33
33
|
return react_1.default.createElement(renderer_1.Text, { style: style }, children);
|
|
34
34
|
};
|
|
35
35
|
exports.renderInline = renderInline;
|
|
36
|
+
let spanIndex = 0;
|
|
36
37
|
const renderCell = ({ style, element, children }) => {
|
|
37
38
|
const table = element.closest('table');
|
|
39
|
+
const colSpan = parseInt(element.attributes.colspan) || 1;
|
|
38
40
|
const tableAttributes = table === null || table === void 0 ? void 0 : table.attributes;
|
|
39
41
|
if (!table) {
|
|
40
42
|
throw new Error('td element rendered outside of a table');
|
|
41
43
|
}
|
|
42
|
-
const columnIndex = element.indexOfType;
|
|
43
44
|
const combinedStyle = style.reduce((acc, current) => Object.assign(acc, current), {});
|
|
44
45
|
const tableStyles = table.style.reduce((combined, tableStyle) => Object.assign(combined, tableStyle), {});
|
|
45
46
|
const colWidths = tableStyles.colWidths || [];
|
|
46
|
-
|
|
47
|
+
let columnWidth = 0;
|
|
48
|
+
if ((colWidths === null || colWidths === void 0 ? void 0 : colWidths.length) > 0) {
|
|
49
|
+
for (let i = 0; i < colSpan; i++) {
|
|
50
|
+
columnWidth += parseInt(colWidths[spanIndex + i]) || 0;
|
|
51
|
+
}
|
|
52
|
+
spanIndex += colSpan;
|
|
53
|
+
if (spanIndex == (colWidths === null || colWidths === void 0 ? void 0 : colWidths.length)) {
|
|
54
|
+
spanIndex = 0;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
47
57
|
const baseStyles = {
|
|
48
58
|
border: tableStyles.border,
|
|
49
59
|
borderColor: tableStyles.borderColor,
|
|
@@ -77,7 +87,7 @@ const renderCell = ({ style, element, children }) => {
|
|
|
77
87
|
overrides.justifyContent = 'center';
|
|
78
88
|
}
|
|
79
89
|
if (columnWidth) {
|
|
80
|
-
overrides.width = columnWidth
|
|
90
|
+
overrides.width = `${columnWidth}%`;
|
|
81
91
|
}
|
|
82
92
|
const finalStyles = Object.assign({}, baseStyles, combinedStyle, overrides);
|
|
83
93
|
if (!finalStyles.width)
|
|
@@ -188,20 +198,40 @@ const renderers = {
|
|
|
188
198
|
colgroup: ({ element, children }) => {
|
|
189
199
|
let cols = children;
|
|
190
200
|
cols = Array.isArray(cols) ? cols : [cols];
|
|
191
|
-
const colWidths = cols
|
|
201
|
+
const colWidths = cols
|
|
202
|
+
.map((col) => {
|
|
192
203
|
var _a;
|
|
193
204
|
const style = ((_a = col === null || col === void 0 ? void 0 : col.props) === null || _a === void 0 ? void 0 : _a.style) || '';
|
|
194
205
|
const widthStyle = style.find((s) => s.hasOwnProperty('width'));
|
|
195
|
-
if (widthStyle)
|
|
196
|
-
return widthStyle.width;
|
|
206
|
+
if (widthStyle) {
|
|
207
|
+
return parseInt(widthStyle.width);
|
|
208
|
+
}
|
|
197
209
|
return undefined;
|
|
198
|
-
})
|
|
210
|
+
})
|
|
211
|
+
.filter((width) => width !== undefined);
|
|
199
212
|
const table = element.closest('table');
|
|
200
|
-
if (table) {
|
|
213
|
+
if (table && (colWidths === null || colWidths === void 0 ? void 0 : colWidths.length) > 0) {
|
|
214
|
+
const totalWidth = colWidths.reduce((acc, curr) => acc + curr, 0);
|
|
201
215
|
if (Array.isArray(table.style)) {
|
|
216
|
+
const diff = 100 - totalWidth;
|
|
217
|
+
let idx = 0;
|
|
218
|
+
while (idx < colWidths.length && colWidths[idx] + diff < 0) {
|
|
219
|
+
idx++;
|
|
220
|
+
}
|
|
221
|
+
if (idx < colWidths.length) {
|
|
222
|
+
colWidths[idx] += diff;
|
|
223
|
+
}
|
|
202
224
|
table.style.push({ colWidths });
|
|
203
225
|
}
|
|
204
226
|
else {
|
|
227
|
+
const diff = 100 - totalWidth;
|
|
228
|
+
let idx = 0;
|
|
229
|
+
while (idx < colWidths.length && colWidths[idx] + diff < 0) {
|
|
230
|
+
idx++;
|
|
231
|
+
}
|
|
232
|
+
if (idx < colWidths.length) {
|
|
233
|
+
colWidths[idx] += diff;
|
|
234
|
+
}
|
|
205
235
|
table.style = [{ colWidths }];
|
|
206
236
|
}
|
|
207
237
|
}
|
|
@@ -213,6 +243,7 @@ const renderers = {
|
|
|
213
243
|
return (react_1.default.createElement(renderer_1.View, { wrap: true, style: finalStyles }, children));
|
|
214
244
|
},
|
|
215
245
|
br: ({ style }) => (react_1.default.createElement(renderer_1.Text, { wrap: true, style: style }, '\n')),
|
|
246
|
+
sup: ({ style, children }) => (react_1.default.createElement(renderer_1.Text, { style: [...style, { verticalAlign: 'super' }] }, children)),
|
|
216
247
|
td: exports.renderCell,
|
|
217
248
|
th: exports.renderCell,
|
|
218
249
|
};
|
package/dist/renderers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../src/renderers.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Link, Text, View, Image } from '@react-pdf/renderer';\nimport { HtmlRenderer, HtmlRenderers } from './render';\nimport { HtmlElement } from './parse';\nimport { HtmlStyle } from './styles';\nimport { lowerAlpha, orderedAlpha, upperAlpha } from './ordered.type';\n\nexport const renderNoop: HtmlRenderer = ({ children }) => <></>;\n\nexport const renderPassThrough: React.FC<React.PropsWithChildren<any>> = ({\n children,\n}) => children;\n\nexport const renderBlock: HtmlRenderer = ({ style, children }) => {\n if (style?.find((e) => e.textAlign == 'center')) {\n style?.push({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n });\n }\n return <View style={style}>{children}</View>;\n};\n\nexport const renderInline: HtmlRenderer = ({ style, children }) => {\n if (style?.find((e) => e.textAlign == 'center')) {\n style?.push({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n });\n }\n return <Text style={style}>{children}</Text>;\n};\n\nexport const renderCell: HtmlRenderer = ({ style, element, children }) => {\n const table = element.closest('table') as HtmlElement | undefined;\n const tableAttributes = table?.attributes as any;\n if (!table) {\n throw new Error('td element rendered outside of a table');\n }\n const columnIndex = element.indexOfType;\n const combinedStyle = style.reduce(\n (acc, current) => Object.assign(acc, current),\n {} as HtmlStyle\n );\n\n const tableStyles = table.style.reduce(\n (combined, tableStyle) => Object.assign(combined, tableStyle),\n {} as HtmlStyle\n );\n\n const colWidths = tableStyles.colWidths || [];\n const columnWidth = colWidths[columnIndex];\n\n const baseStyles: HtmlStyle = {\n border: tableStyles.border,\n borderColor: tableStyles.borderColor,\n borderWidth: tableStyles.borderWidth,\n borderStyle: tableStyles.borderStyle,\n };\n\n if (\n (tableStyles as any).borderSpacing &&\n (tableStyles as any).borderCollapse !== 'collapse'\n ) {\n baseStyles.borderWidth = tableStyles.borderWidth;\n baseStyles.margin = (tableStyles as any).borderSpacing;\n } else {\n baseStyles.borderRightWidth = 0;\n baseStyles.borderBottomWidth = 0;\n if (element.indexOfType !== 0) {\n baseStyles.borderLeftWidth = tableStyles.borderWidth;\n baseStyles.borderTopWidth = tableStyles.borderWidth;\n }\n }\n\n if (tableAttributes?.border == 0) {\n baseStyles.borderRightWidth = '0px';\n baseStyles.borderBottomWidth = '0px';\n baseStyles.borderTopWidth = '0px';\n baseStyles.borderLeftWidth = '0px';\n }\n\n const overrides: HtmlStyle = {};\n if (combinedStyle.textAlign == 'center') {\n overrides.alignItems = 'center';\n }\n\n if (combinedStyle.verticalAlign == 'center') {\n overrides.justifyContent = 'center';\n }\n\n if (columnWidth) {\n overrides.width = columnWidth;\n }\n\n const finalStyles = Object.assign({}, baseStyles, combinedStyle, overrides);\n if (!finalStyles.width) finalStyles.flex = 1;\n delete finalStyles.height;\n\n return <View style={finalStyles}>{children}</View>;\n};\n\nconst renderers: HtmlRenderers = {\n style: renderNoop,\n script: renderNoop,\n html: renderPassThrough,\n li: ({ element, stylesheets, style, children }) => {\n const bulletStyles = stylesheets.map((stylesheet) => stylesheet.li_bullet);\n const contentStyles = stylesheets.map(\n (stylesheet) => stylesheet.li_content\n );\n const list: HtmlElement = element.closest('ol, ul') as HtmlElement;\n const ordered = list?.tag === 'ol' || element.parentNode.tag === 'ol';\n const listStyle =\n list?.style?.reduce(\n (combined, listStyle) => Object.assign(combined, listStyle),\n {} as HtmlStyle\n ) || {};\n const itemStyle = element.style.reduce(\n (combined, itemStyle) => Object.assign(combined, itemStyle),\n {} as HtmlStyle\n );\n const listStyleType =\n itemStyle.listStyleType ||\n itemStyle.listStyle ||\n listStyle.listStyleType ||\n listStyle.listStyle ||\n '';\n\n let bullet;\n if (listStyleType.includes('none')) {\n bullet = false;\n } else if (listStyleType.includes('url(')) {\n bullet = (\n <Image\n src={listStyleType.match(/\\((.*?)\\)/)[1].replace(/(['\"])/g, '')}\n />\n );\n } else if (ordered) {\n if (lowerAlpha.includes(listStyleType)) {\n bullet = (\n <Text>{orderedAlpha[element.indexOfType].toLowerCase()}.</Text>\n );\n } else if (upperAlpha.includes(listStyleType)) {\n bullet = (\n <Text>{orderedAlpha[element.indexOfType].toUpperCase()}.</Text>\n );\n } else {\n bullet = <Text>{element.indexOfType + 1}.</Text>;\n }\n } else {\n // if (listStyleType.includes('square')) {\n // bullet = <Text>■</Text>;\n // } else {\n bullet = <Text>•</Text>;\n // }\n }\n return (\n <View style={style}>\n {bullet && <View style={bulletStyles}>{bullet}</View>}\n <View style={contentStyles}>{children}</View>\n </View>\n );\n },\n a: ({ style, element, children }) => (\n <Link style={style} src={element.attributes.href}>\n {children}\n </Link>\n ),\n img: ({ style, element }) => {\n const { width, height } = element.attributes;\n const dimensions: any = {};\n if (width) {\n dimensions.width = width;\n }\n if (height) {\n dimensions.height = height;\n }\n const finalStyles = Object.assign({}, ...style, dimensions);\n return (\n <View wrap={true}>\n <Image\n style={finalStyles}\n source={{\n uri: element.attributes.src,\n body: null,\n method: 'GET',\n headers: {\n 'Cache-Control': 'no-cache',\n 'Access-Control-Allow-Origin': '*',\n },\n }}\n />\n </View>\n );\n },\n table: ({ element, style, children }) => {\n const tableStyles = element.style.reduce(\n (combined, tableStyle) => Object.assign(combined, tableStyle),\n {} as HtmlStyle\n );\n const { border } = element.attributes as any;\n const overrides: HtmlStyle = {};\n if (\n !(tableStyles as any).borderSpacing ||\n (tableStyles as any).borderCollapse === 'collapse'\n ) {\n overrides.borderLeftWidth = 0;\n overrides.borderTopWidth = 0;\n }\n\n if (border == 0) {\n overrides.borderWidth = '0px';\n overrides.borderStyle = 'none';\n }\n const borderColor = style.find(\n (s) => s.borderColor && s.borderColor !== 'gray'\n )?.borderColor;\n if (borderColor) {\n overrides.borderColor = borderColor;\n }\n const finalStyles = Object.assign({}, ...style, overrides);\n if (!finalStyles.width || parseFloat(finalStyles.width) > 100) {\n finalStyles.width = '100%';\n }\n delete finalStyles.height;\n return <View style={finalStyles}>{children}</View>;\n },\n colgroup: ({ element, children }) => {\n let cols = children as any;\n cols = Array.isArray(cols) ? cols : [cols];\n const colWidths = cols.map((col: any) => {\n const style = col?.props?.style || '';\n const widthStyle = style.find((s: any) => s.hasOwnProperty('width'));\n if (widthStyle) return widthStyle.width;\n return undefined;\n });\n\n const table = element.closest('table') as HtmlElement | undefined;\n if (table) {\n if (Array.isArray(table.style)) {\n table.style.push({ colWidths });\n } else {\n table.style = [{ colWidths }];\n }\n }\n\n return <></>; // don't render anything\n },\n tr: ({ style, children }) => {\n const finalStyles = Object.assign({}, ...style);\n delete finalStyles.height;\n return (\n <View wrap={true} style={finalStyles}>\n {children}\n </View>\n );\n },\n br: ({ style }) => (\n <Text wrap={true} style={style}>\n {'\\n'}\n </Text>\n ),\n td: renderCell,\n th: renderCell,\n};\n\nexport default renderers;\n"]}
|
|
1
|
+
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../src/renderers.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Link, Text, View, Image } from '@react-pdf/renderer';\nimport { HtmlRenderer, HtmlRenderers } from './render';\nimport { HtmlElement } from './parse';\nimport { HtmlStyle } from './styles';\nimport { lowerAlpha, orderedAlpha, upperAlpha } from './ordered.type';\n\nexport const renderNoop: HtmlRenderer = ({ children }) => <></>;\n\nexport const renderPassThrough: React.FC<React.PropsWithChildren<any>> = ({\n children,\n}) => children;\n\nexport const renderBlock: HtmlRenderer = ({ style, children }) => {\n if (style?.find((e) => e.textAlign == 'center')) {\n style?.push({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n });\n }\n return <View style={style}>{children}</View>;\n};\n\nexport const renderInline: HtmlRenderer = ({ style, children }) => {\n if (style?.find((e) => e.textAlign == 'center')) {\n style?.push({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n });\n }\n return <Text style={style}>{children}</Text>;\n};\n\nlet spanIndex = 0;\n\nexport const renderCell: HtmlRenderer = ({ style, element, children }) => {\n const table = element.closest('table') as HtmlElement | undefined;\n const colSpan = parseInt(element.attributes.colspan) || 1;\n const tableAttributes = table?.attributes as any;\n if (!table) {\n throw new Error('td element rendered outside of a table');\n }\n const combinedStyle = style.reduce(\n (acc, current) => Object.assign(acc, current),\n {} as HtmlStyle\n );\n\n const tableStyles = table.style.reduce(\n (combined, tableStyle) => Object.assign(combined, tableStyle),\n {} as HtmlStyle\n );\n\n const colWidths = tableStyles.colWidths || [];\n let columnWidth = 0;\n if (colWidths?.length > 0) {\n for (let i = 0; i < colSpan; i++) {\n columnWidth += parseInt(colWidths[spanIndex + i]) || 0;\n }\n spanIndex += colSpan;\n if (spanIndex == colWidths?.length) {\n spanIndex = 0;\n }\n }\n\n const baseStyles: HtmlStyle = {\n border: tableStyles.border,\n borderColor: tableStyles.borderColor,\n borderWidth: tableStyles.borderWidth,\n borderStyle: tableStyles.borderStyle,\n };\n\n if (\n (tableStyles as any).borderSpacing &&\n (tableStyles as any).borderCollapse !== 'collapse'\n ) {\n baseStyles.borderWidth = tableStyles.borderWidth;\n baseStyles.margin = (tableStyles as any).borderSpacing;\n } else {\n baseStyles.borderRightWidth = 0;\n baseStyles.borderBottomWidth = 0;\n if (element.indexOfType !== 0) {\n baseStyles.borderLeftWidth = tableStyles.borderWidth;\n baseStyles.borderTopWidth = tableStyles.borderWidth;\n }\n }\n\n if (tableAttributes?.border == 0) {\n baseStyles.borderRightWidth = '0px';\n baseStyles.borderBottomWidth = '0px';\n baseStyles.borderTopWidth = '0px';\n baseStyles.borderLeftWidth = '0px';\n }\n\n const overrides: HtmlStyle = {};\n if (combinedStyle.textAlign == 'center') {\n overrides.alignItems = 'center';\n }\n\n if (combinedStyle.verticalAlign == 'center') {\n overrides.justifyContent = 'center';\n }\n\n if (columnWidth) {\n overrides.width = `${columnWidth}%`;\n }\n\n const finalStyles = Object.assign({}, baseStyles, combinedStyle, overrides);\n if (!finalStyles.width) finalStyles.flex = 1;\n delete finalStyles.height;\n\n return <View style={finalStyles}>{children}</View>;\n};\n\nconst renderers: HtmlRenderers = {\n style: renderNoop,\n script: renderNoop,\n html: renderPassThrough,\n li: ({ element, stylesheets, style, children }) => {\n const bulletStyles = stylesheets.map((stylesheet) => stylesheet.li_bullet);\n const contentStyles = stylesheets.map(\n (stylesheet) => stylesheet.li_content\n );\n const list: HtmlElement = element.closest('ol, ul') as HtmlElement;\n const ordered = list?.tag === 'ol' || element.parentNode.tag === 'ol';\n const listStyle =\n list?.style?.reduce(\n (combined, listStyle) => Object.assign(combined, listStyle),\n {} as HtmlStyle\n ) || {};\n const itemStyle = element.style.reduce(\n (combined, itemStyle) => Object.assign(combined, itemStyle),\n {} as HtmlStyle\n );\n const listStyleType =\n itemStyle.listStyleType ||\n itemStyle.listStyle ||\n listStyle.listStyleType ||\n listStyle.listStyle ||\n '';\n\n let bullet;\n if (listStyleType.includes('none')) {\n bullet = false;\n } else if (listStyleType.includes('url(')) {\n bullet = (\n <Image\n src={listStyleType.match(/\\((.*?)\\)/)[1].replace(/(['\"])/g, '')}\n />\n );\n } else if (ordered) {\n if (lowerAlpha.includes(listStyleType)) {\n bullet = (\n <Text>{orderedAlpha[element.indexOfType].toLowerCase()}.</Text>\n );\n } else if (upperAlpha.includes(listStyleType)) {\n bullet = (\n <Text>{orderedAlpha[element.indexOfType].toUpperCase()}.</Text>\n );\n } else {\n bullet = <Text>{element.indexOfType + 1}.</Text>;\n }\n } else {\n // if (listStyleType.includes('square')) {\n // bullet = <Text>■</Text>;\n // } else {\n bullet = <Text>•</Text>;\n // }\n }\n return (\n <View style={style}>\n {bullet && <View style={bulletStyles}>{bullet}</View>}\n <View style={contentStyles}>{children}</View>\n </View>\n );\n },\n a: ({ style, element, children }) => (\n <Link style={style} src={element.attributes.href}>\n {children}\n </Link>\n ),\n img: ({ style, element }) => {\n const { width, height } = element.attributes;\n const dimensions: any = {};\n if (width) {\n dimensions.width = width;\n }\n if (height) {\n dimensions.height = height;\n }\n const finalStyles = Object.assign({}, ...style, dimensions);\n return (\n <View wrap={true}>\n <Image\n style={finalStyles}\n source={{\n uri: element.attributes.src,\n body: null,\n method: 'GET',\n headers: {\n 'Cache-Control': 'no-cache',\n 'Access-Control-Allow-Origin': '*',\n },\n }}\n />\n </View>\n );\n },\n table: ({ element, style, children }) => {\n const tableStyles = element.style.reduce(\n (combined, tableStyle) => Object.assign(combined, tableStyle),\n {} as HtmlStyle\n );\n const { border } = element.attributes as any;\n const overrides: HtmlStyle = {};\n if (\n !(tableStyles as any).borderSpacing ||\n (tableStyles as any).borderCollapse === 'collapse'\n ) {\n overrides.borderLeftWidth = 0;\n overrides.borderTopWidth = 0;\n }\n\n if (border == 0) {\n overrides.borderWidth = '0px';\n overrides.borderStyle = 'none';\n }\n const borderColor = style.find(\n (s) => s.borderColor && s.borderColor !== 'gray'\n )?.borderColor;\n if (borderColor) {\n overrides.borderColor = borderColor;\n }\n const finalStyles = Object.assign({}, ...style, overrides);\n if (!finalStyles.width || parseFloat(finalStyles.width) > 100) {\n finalStyles.width = '100%';\n }\n delete finalStyles.height;\n return <View style={finalStyles}>{children}</View>;\n },\n colgroup: ({ element, children }) => {\n let cols = children as any;\n cols = Array.isArray(cols) ? cols : [cols];\n const colWidths = cols\n .map((col: any) => {\n const style = col?.props?.style || '';\n const widthStyle = style.find((s: any) => s.hasOwnProperty('width'));\n if (widthStyle) {\n return parseInt(widthStyle.width);\n }\n return undefined;\n })\n .filter((width: any) => width !== undefined);\n const table = element.closest('table') as HtmlElement | undefined;\n if (table && colWidths?.length > 0) {\n const totalWidth = colWidths.reduce(\n (acc: any, curr: any) => acc + curr,\n 0\n );\n if (Array.isArray(table.style)) {\n const diff = 100 - totalWidth;\n let idx = 0;\n while (idx < colWidths.length && colWidths[idx] + diff < 0) {\n idx++;\n }\n if (idx < colWidths.length) {\n colWidths[idx] += diff;\n }\n table.style.push({ colWidths });\n } else {\n const diff = 100 - totalWidth;\n let idx = 0;\n while (idx < colWidths.length && colWidths[idx] + diff < 0) {\n idx++;\n }\n if (idx < colWidths.length) {\n colWidths[idx] += diff;\n }\n table.style = [{ colWidths }];\n }\n }\n\n return <></>; // don't render anything\n },\n tr: ({ style, children }) => {\n const finalStyles = Object.assign({}, ...style);\n delete finalStyles.height;\n return (\n <View wrap={true} style={finalStyles}>\n {children}\n </View>\n );\n },\n br: ({ style }) => (\n <Text wrap={true} style={style}>\n {'\\n'}\n </Text>\n ),\n sup: ({ style, children }) => (\n <Text style={[...style, { verticalAlign: 'super' } as HtmlStyle]}>\n {children}\n </Text>\n ),\n td: renderCell,\n th: renderCell,\n};\n\nexport default renderers;\n"]}
|
package/dist/styles.js
CHANGED
package/dist/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"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","sourcesContent":["import { StyleSheet } from '@react-pdf/renderer';\nimport { Style } from '@react-pdf/types';\nimport { Tag } from './tags';\n\nexport type HtmlStyle =\n | (Style & {\n listStyle?: string;\n listStyleType?: string;\n borderSpacing?: number | string;\n borderCollapse?: string;\n })\n | any;\n\nexport type HtmlStyles = Record<Tag | string, HtmlStyle>;\n\nexport const createHtmlStylesheet = <T extends HtmlStyles>(\n fontSize: number,\n reset: boolean = false\n): HtmlStyles => {\n const em = (em: number, relativeSize: number = fontSize) => em * relativeSize;\n\n let base: HtmlStyles = {\n body: {\n margin: 8,\n fontFamily: 'Times-Roman',\n },\n h1: {\n fontSize: em(2),\n // marginVertical: em(0.67, em(2)),\n fontWeight: 'bold',\n },\n h2: {\n fontSize: em(1.5),\n // marginVertical: em(0.83, em(1.5)),\n fontWeight: 'bold',\n },\n h3: {\n fontSize: em(1.17),\n // marginVertical: em(1, em(1.17)),\n fontWeight: 'bold',\n },\n h4: {\n fontSize: em(1),\n // marginVertical: em(1.33, em(1)),\n fontWeight: 'bold',\n },\n h5: {\n fontSize: em(0.83),\n // marginVertical: em(1.67, em(0.83)),\n fontWeight: 'bold',\n },\n h6: {\n fontSize: em(0.67),\n // marginVertical: em(2.33, em(0.67)),\n fontWeight: 'bold',\n },\n p: {\n fontSize: em(1),\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n // marginVertical: em(1),\n },\n blockquote: {\n // marginVertical: em(1),\n marginHorizontal: 30,\n },\n hr: {\n marginVertical: em(0.5),\n borderBottomWidth: 1,\n borderBottomColor: '#000',\n },\n address: {\n fontStyle: 'italic',\n },\n pre: {\n // fontFamily: 'monospace',\n // whiteSpace: 'pre',\n marginVertical: em(1),\n },\n b: {\n fontWeight: 'bold',\n },\n strong: {\n fontWeight: 'bold',\n },\n i: {\n fontStyle: 'italic',\n },\n em: {\n fontStyle: 'italic',\n },\n s: {\n textDecoration: 'line-through',\n },\n u: {\n textDecoration: 'underline',\n },\n cite: {\n fontStyle: 'italic',\n },\n code: {\n // fontFamily: 'monospace',\n },\n sup: {\n fontSize: em(0.83),\n verticalAlign: 'super',\n },\n a: {\n textDecoration: 'underline',\n },\n ul: {\n marginVertical: em(0.5),\n },\n ol: {\n marginVertical: em(0.5),\n },\n li: {\n display: 'flex',\n flexDirection: 'row',\n paddingRight: 25,\n },\n li_bullet: {\n width: 30,\n textAlign: 'right',\n flexShrink: 0,\n flexGrow: 0,\n paddingRight: 5,\n },\n li_content: {\n textAlign: 'left',\n flexGrow: 1,\n },\n table: {\n display: 'flex',\n flexDirection: 'column',\n borderColor: 'gray',\n borderWidth: 1,\n // flexShrink: 1,\n borderCollapse: 'collapse',\n // borderSpacing: 2,\n },\n thead: {\n display: 'flex',\n flexDirection: 'column',\n },\n tbody: {\n display: 'flex',\n flexDirection: 'column',\n },\n tr: {\n display: 'flex',\n flexDirection: 'row',\n // flexShrink: 1,\n },\n td: {\n // flexGrow: 1,\n // flexShrink: 1,\n // flexBasis: 1,\n padding: 2,\n },\n th: {\n // flexGrow: 1,\n // flexShrink: 1,\n // flexBasis: 1,\n padding: 2,\n backgroundColor: '#f2f2f2',\n fontWeight: 'bold',\n },\n };\n\n if (reset) {\n for (const key of Object.keys(base)) {\n for (const style of Object.keys(base[key])) {\n if (\n style.startsWith('margin') ||\n style.startsWith('padding') ||\n style === 'fontSize'\n ) {\n delete (base as any)[key][style];\n }\n }\n }\n base.li_bullet.display = 'none';\n base.table.borderCollapse = 'collapse';\n base.table.borderSpacing = 0;\n }\n\n return StyleSheet.create(base);\n};\n"]}
|