@pdfme/schemas 4.1.0 → 4.1.1-dev.2

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.
Files changed (72) hide show
  1. package/dist/cjs/src/constants.js +1 -1
  2. package/dist/cjs/src/constants.js.map +1 -1
  3. package/dist/cjs/src/graphics/image.js +3 -1
  4. package/dist/cjs/src/graphics/image.js.map +1 -1
  5. package/dist/cjs/src/index.js +11 -9
  6. package/dist/cjs/src/index.js.map +1 -1
  7. package/dist/cjs/src/multiVariableText/helper.js +19 -0
  8. package/dist/cjs/src/multiVariableText/helper.js.map +1 -0
  9. package/dist/cjs/src/multiVariableText/index.js +8 -0
  10. package/dist/cjs/src/multiVariableText/index.js.map +1 -0
  11. package/dist/cjs/src/multiVariableText/pdfRender.js +16 -0
  12. package/dist/cjs/src/multiVariableText/pdfRender.js.map +1 -0
  13. package/dist/cjs/src/multiVariableText/propPanel.js +128 -0
  14. package/dist/cjs/src/multiVariableText/propPanel.js.map +1 -0
  15. package/dist/cjs/src/multiVariableText/types.js +3 -0
  16. package/dist/cjs/src/multiVariableText/types.js.map +1 -0
  17. package/dist/cjs/src/multiVariableText/uiRender.js +133 -0
  18. package/dist/cjs/src/multiVariableText/uiRender.js.map +1 -0
  19. package/dist/cjs/src/tables/tableHelper.js +2 -2
  20. package/dist/cjs/src/tables/tableHelper.js.map +1 -1
  21. package/dist/cjs/src/text/extraFormatter.js +1 -1
  22. package/dist/cjs/src/text/propPanel.js +1 -1
  23. package/dist/cjs/src/text/uiRender.js +122 -103
  24. package/dist/cjs/src/text/uiRender.js.map +1 -1
  25. package/dist/esm/src/constants.js +1 -1
  26. package/dist/esm/src/constants.js.map +1 -1
  27. package/dist/esm/src/graphics/image.js +3 -1
  28. package/dist/esm/src/graphics/image.js.map +1 -1
  29. package/dist/esm/src/index.js +2 -1
  30. package/dist/esm/src/index.js.map +1 -1
  31. package/dist/esm/src/multiVariableText/helper.js +15 -0
  32. package/dist/esm/src/multiVariableText/helper.js.map +1 -0
  33. package/dist/esm/src/multiVariableText/index.js +6 -0
  34. package/dist/esm/src/multiVariableText/index.js.map +1 -0
  35. package/dist/esm/src/multiVariableText/pdfRender.js +12 -0
  36. package/dist/esm/src/multiVariableText/pdfRender.js.map +1 -0
  37. package/dist/esm/src/multiVariableText/propPanel.js +125 -0
  38. package/dist/esm/src/multiVariableText/propPanel.js.map +1 -0
  39. package/dist/esm/src/multiVariableText/types.js +2 -0
  40. package/dist/esm/src/multiVariableText/types.js.map +1 -0
  41. package/dist/esm/src/multiVariableText/uiRender.js +129 -0
  42. package/dist/esm/src/multiVariableText/uiRender.js.map +1 -0
  43. package/dist/esm/src/tables/tableHelper.js +2 -2
  44. package/dist/esm/src/tables/tableHelper.js.map +1 -1
  45. package/dist/esm/src/text/extraFormatter.js +1 -1
  46. package/dist/esm/src/text/propPanel.js +1 -1
  47. package/dist/esm/src/text/uiRender.js +118 -101
  48. package/dist/esm/src/text/uiRender.js.map +1 -1
  49. package/dist/types/src/constants.d.ts +1 -1
  50. package/dist/types/src/index.d.ts +2 -1
  51. package/dist/types/src/multiVariableText/helper.d.ts +1 -0
  52. package/dist/types/src/multiVariableText/index.d.ts +4 -0
  53. package/dist/types/src/multiVariableText/pdfRender.d.ts +3 -0
  54. package/dist/types/src/multiVariableText/propPanel.d.ts +3 -0
  55. package/dist/types/src/multiVariableText/types.d.ts +5 -0
  56. package/dist/types/src/multiVariableText/uiRender.d.ts +3 -0
  57. package/dist/types/src/shapes/rectAndEllipse.d.ts +2 -0
  58. package/dist/types/src/text/uiRender.d.ts +6 -0
  59. package/package.json +1 -1
  60. package/src/constants.ts +1 -1
  61. package/src/graphics/image.ts +2 -1
  62. package/src/index.ts +2 -0
  63. package/src/multiVariableText/helper.ts +18 -0
  64. package/src/multiVariableText/index.ts +8 -0
  65. package/src/multiVariableText/pdfRender.ts +16 -0
  66. package/src/multiVariableText/propPanel.ts +139 -0
  67. package/src/multiVariableText/types.ts +6 -0
  68. package/src/multiVariableText/uiRender.ts +161 -0
  69. package/src/tables/tableHelper.ts +2 -2
  70. package/src/text/extraFormatter.ts +1 -1
  71. package/src/text/propPanel.ts +1 -1
  72. package/src/text/uiRender.ts +150 -118
@@ -0,0 +1,129 @@
1
+ import { uiRender as parentUiRender, buildStyledTextContainer, makeElementPlainTextContentEditable } from '../text/uiRender';
2
+ import { isEditable } from '../utils';
3
+ import { substituteVariables } from './helper';
4
+ export const uiRender = async (arg) => {
5
+ const { value, schema, rootElement, mode, onChange, ...rest } = arg;
6
+ let text = schema.text;
7
+ let numVariables = schema.variables.length;
8
+ if (mode === 'form' && numVariables > 0) {
9
+ await formUiRender(arg);
10
+ return;
11
+ }
12
+ await parentUiRender({
13
+ value: isEditable(mode, schema) ? text : substituteVariables(text, value),
14
+ schema,
15
+ mode: mode == 'form' ? 'viewer' : mode,
16
+ rootElement,
17
+ onChange: (arg) => {
18
+ if (!Array.isArray(arg)) {
19
+ onChange && onChange({ key: 'text', value: arg.value });
20
+ }
21
+ else {
22
+ throw new Error('onChange is not an array, the parent text plugin has changed...');
23
+ }
24
+ },
25
+ ...rest,
26
+ });
27
+ const textBlock = rootElement.querySelector('#text-' + schema.id);
28
+ if (!textBlock) {
29
+ throw new Error('Text block not found. Ensure the text block has an id of "text-" + schema.id');
30
+ }
31
+ if (mode === 'designer') {
32
+ textBlock.addEventListener('keyup', (event) => {
33
+ text = textBlock.textContent || '';
34
+ if (keyPressShouldBeChecked(event)) {
35
+ const newNumVariables = countUniqueVariableNames(text);
36
+ if (numVariables !== newNumVariables) {
37
+ // If variables were modified during this keypress, we trigger a change
38
+ if (onChange) {
39
+ onChange({ key: 'text', value: text });
40
+ }
41
+ numVariables = newNumVariables;
42
+ }
43
+ }
44
+ });
45
+ }
46
+ };
47
+ const formUiRender = async (arg) => {
48
+ const { value, schema, rootElement, onChange, stopEditing, theme, } = arg;
49
+ const rawText = schema.text;
50
+ if (rootElement.parentElement) {
51
+ // remove the outline for the whole schema, we'll apply outlines on each individual variable field instead
52
+ rootElement.parentElement.style.outline = '';
53
+ }
54
+ const variables = JSON.parse(value) || {};
55
+ const variableIndices = getVariableIndices(rawText);
56
+ const substitutedText = substituteVariables(rawText, variables);
57
+ const textBlock = await buildStyledTextContainer(arg, substitutedText);
58
+ // Construct content-editable spans for each variable within the string
59
+ let inVarString = false;
60
+ for (let i = 0; i < rawText.length; i++) {
61
+ if (variableIndices[i]) {
62
+ inVarString = true;
63
+ let span = document.createElement('span');
64
+ span.style.outline = `${theme.colorPrimary} dashed 1px`;
65
+ makeElementPlainTextContentEditable(span);
66
+ span.textContent = variables[variableIndices[i]];
67
+ span.addEventListener('blur', (e) => {
68
+ const newValue = e.target.innerText;
69
+ if (newValue !== variables[variableIndices[i]]) {
70
+ variables[variableIndices[i]] = newValue;
71
+ onChange && onChange({ key: 'content', value: JSON.stringify(variables) });
72
+ stopEditing && stopEditing();
73
+ }
74
+ });
75
+ textBlock.appendChild(span);
76
+ }
77
+ else if (inVarString) {
78
+ if (rawText[i] === '}') {
79
+ inVarString = false;
80
+ }
81
+ }
82
+ else {
83
+ let span = document.createElement('span');
84
+ span.style.letterSpacing = rawText.length === i + 1 ? '0' : 'inherit';
85
+ span.textContent = rawText[i];
86
+ textBlock.appendChild(span);
87
+ }
88
+ }
89
+ };
90
+ const getVariableIndices = (content) => {
91
+ const regex = /\{([^}]+)}/g;
92
+ const indices = [];
93
+ let match;
94
+ while ((match = regex.exec(content)) !== null) {
95
+ indices[match.index] = match[1];
96
+ }
97
+ return indices;
98
+ };
99
+ const countUniqueVariableNames = (content) => {
100
+ const regex = /\{([^}]+)}/g;
101
+ const uniqueMatchesSet = new Set();
102
+ let match;
103
+ while ((match = regex.exec(content)) !== null) {
104
+ uniqueMatchesSet.add(match[1]);
105
+ }
106
+ return uniqueMatchesSet.size;
107
+ };
108
+ /**
109
+ * An optimisation to try to minimise jank while typing.
110
+ * Only check whether variables were modified based on certain key presses.
111
+ * Regex would otherwise be performed on every key press (which isn't terrible, but this code helps).
112
+ */
113
+ const keyPressShouldBeChecked = (event) => {
114
+ if (event.key == "ArrowUp" || event.key == "ArrowDown" || event.key == "ArrowLeft" || event.key == "ArrowRight") {
115
+ return false;
116
+ }
117
+ const selection = window.getSelection();
118
+ const contenteditable = event.target;
119
+ const isCursorAtEnd = selection?.focusOffset === contenteditable?.textContent?.length;
120
+ if (isCursorAtEnd) {
121
+ return event.key === '}' || event.key === 'Backspace' || event.key === 'Delete';
122
+ }
123
+ const isCursorAtStart = selection?.anchorOffset === 0;
124
+ if (isCursorAtStart) {
125
+ return event.key === '{' || event.key === 'Backspace' || event.key === 'Delete';
126
+ }
127
+ return true;
128
+ };
129
+ //# sourceMappingURL=uiRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uiRender.js","sourceRoot":"","sources":["../../../../src/multiVariableText/uiRender.ts"],"names":[],"mappings":"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"}
@@ -188,7 +188,7 @@ function parseInput(schema, body) {
188
188
  export function createSingleTable(body, args) {
189
189
  const { options, _cache, basePdf } = args;
190
190
  if (!isBlankPdf(basePdf))
191
- throw new Error('[@pdfme/schema/table] Blank PDF is not supported');
191
+ throw new Error('[@pdfme/schema/table] Custom PDF is not supported');
192
192
  const input = parseInput(args.schema, body);
193
193
  const font = options.font || getDefaultFont();
194
194
  const fallbackFontName = getFallbackFontName(font);
@@ -198,7 +198,7 @@ export function createSingleTable(body, args) {
198
198
  export async function createMultiTables(body, args) {
199
199
  const { basePdf, schema } = args;
200
200
  if (!isBlankPdf(basePdf))
201
- throw new Error('[@pdfme/schema/table] Blank PDF is not supported');
201
+ throw new Error('[@pdfme/schema/table] Custom PDF is not supported');
202
202
  const pageHeight = basePdf.height;
203
203
  const paddingBottom = basePdf.padding[2];
204
204
  const paddingTop = basePdf.padding[0];
@@ -1 +1 @@
1
- {"version":3,"file":"tableHelper.js","sourceRoot":"","sources":["../../../../src/tables/tableHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tableHelper.js","sourceRoot":"","sources":["../../../../src/tables/tableHelper.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ export function getExtraFormatterSchema(i18n) {
37
37
  title: i18n('schemas.text.format'),
38
38
  widget: 'ButtonGroup',
39
39
  buttons,
40
- span: 16,
40
+ span: 17,
41
41
  };
42
42
  }
43
43
  //# sourceMappingURL=extraFormatter.js.map
@@ -59,7 +59,7 @@ export const propPanel = {
59
59
  type: 'number',
60
60
  widget: 'inputNumber',
61
61
  props: { step: 0.1, min: 0 },
62
- span: 8,
62
+ span: 7,
63
63
  },
64
64
  useDynamicFontSize: { type: 'boolean', widget: 'UseDynamicFontSize', bind: false, span: 16 },
65
65
  dynamicFontSize: {
@@ -2,35 +2,85 @@ import { getDefaultFont } from '@pdfme/common';
2
2
  import { DEFAULT_FONT_SIZE, DEFAULT_ALIGNMENT, VERTICAL_ALIGN_TOP, VERTICAL_ALIGN_MIDDLE, VERTICAL_ALIGN_BOTTOM, DEFAULT_VERTICAL_ALIGNMENT, DEFAULT_LINE_HEIGHT, DEFAULT_CHARACTER_SPACING, DEFAULT_FONT_COLOR, PLACEHOLDER_FONT_COLOR, } from './constants.js';
3
3
  import { calculateDynamicFontSize, getFontKitFont, getBrowserVerticalFontAdjustments, isFirefox, } from './helper.js';
4
4
  import { isEditable } from '../utils.js';
5
- const mapVerticalAlignToFlex = (verticalAlignmentValue) => {
6
- switch (verticalAlignmentValue) {
7
- case VERTICAL_ALIGN_TOP:
8
- return 'flex-start';
9
- case VERTICAL_ALIGN_MIDDLE:
10
- return 'center';
11
- case VERTICAL_ALIGN_BOTTOM:
12
- return 'flex-end';
5
+ export const uiRender = async (arg) => {
6
+ const { value, schema, mode, onChange, stopEditing, tabIndex, placeholder, options, _cache, } = arg;
7
+ const usePlaceholder = isEditable(mode, schema) && placeholder && !value;
8
+ const textBlock = await buildStyledTextContainer(arg, usePlaceholder ? placeholder : value);
9
+ if (!isEditable(mode, schema)) {
10
+ // Read-only mode
11
+ textBlock.innerHTML = value
12
+ .split('')
13
+ .map((l, i) => `<span style="letter-spacing:${String(value).length === i + 1 ? 0 : 'inherit'};">${l}</span>`)
14
+ .join('');
15
+ return;
16
+ }
17
+ makeElementPlainTextContentEditable(textBlock);
18
+ textBlock.tabIndex = tabIndex || 0;
19
+ textBlock.innerText = value;
20
+ textBlock.addEventListener('blur', (e) => {
21
+ onChange && onChange({ key: 'content', value: e.target.innerText });
22
+ stopEditing && stopEditing();
23
+ });
24
+ if (schema.dynamicFontSize) {
25
+ let dynamicFontSize = undefined;
26
+ const font = options?.font || getDefaultFont();
27
+ const fontKitFont = await getFontKitFont(schema.fontName, font, _cache);
28
+ textBlock.addEventListener('keyup', () => {
29
+ setTimeout(() => {
30
+ void (async () => {
31
+ if (!textBlock.textContent)
32
+ return;
33
+ dynamicFontSize = await calculateDynamicFontSize({
34
+ textSchema: schema,
35
+ font,
36
+ value: textBlock.textContent,
37
+ startingFontSize: dynamicFontSize,
38
+ _cache,
39
+ });
40
+ textBlock.style.fontSize = `${dynamicFontSize}pt`;
41
+ const { topAdj: newTopAdj, bottomAdj: newBottomAdj } = getBrowserVerticalFontAdjustments(fontKitFont, dynamicFontSize ?? schema.fontSize ?? DEFAULT_FONT_SIZE, schema.lineHeight ?? DEFAULT_LINE_HEIGHT, schema.verticalAlignment ?? DEFAULT_VERTICAL_ALIGNMENT);
42
+ textBlock.style.paddingTop = `${newTopAdj}px`;
43
+ textBlock.style.marginBottom = `${newBottomAdj}px`;
44
+ })();
45
+ }, 0);
46
+ });
47
+ }
48
+ if (usePlaceholder) {
49
+ textBlock.style.color = PLACEHOLDER_FONT_COLOR;
50
+ textBlock.addEventListener('focus', () => {
51
+ if (textBlock.innerText === placeholder) {
52
+ textBlock.innerText = '';
53
+ textBlock.style.color = schema.fontColor ?? DEFAULT_FONT_COLOR;
54
+ }
55
+ });
56
+ }
57
+ if (mode === 'designer') {
58
+ setTimeout(() => {
59
+ textBlock.focus();
60
+ // Set the focus to the end of the editable element when you focus, as we would for a textarea
61
+ const selection = window.getSelection();
62
+ const range = document.createRange();
63
+ if (selection && range) {
64
+ range.selectNodeContents(textBlock);
65
+ range.collapse(false); // Collapse range to the end
66
+ selection?.removeAllRanges();
67
+ selection?.addRange(range);
68
+ }
69
+ });
13
70
  }
14
- return 'flex-start';
15
- };
16
- const getBackgroundColor = (value, schema) => {
17
- if (!value || !schema.backgroundColor)
18
- return 'transparent';
19
- return schema.backgroundColor;
20
71
  };
21
- export const uiRender = async (arg) => {
22
- const { value, schema, rootElement, mode, onChange, stopEditing, tabIndex, placeholder, options, _cache, } = arg;
72
+ export const buildStyledTextContainer = async (arg, value) => {
73
+ const { schema, rootElement, mode, options, _cache, } = arg;
23
74
  const font = options?.font || getDefaultFont();
24
75
  let dynamicFontSize = undefined;
25
- const getCdfArg = (v) => ({
26
- textSchema: schema,
27
- font,
28
- value: v,
29
- startingFontSize: dynamicFontSize,
30
- _cache,
31
- });
32
76
  if (schema.dynamicFontSize && value) {
33
- dynamicFontSize = await calculateDynamicFontSize(getCdfArg(value));
77
+ dynamicFontSize = await calculateDynamicFontSize({
78
+ textSchema: schema,
79
+ font,
80
+ value,
81
+ startingFontSize: dynamicFontSize,
82
+ _cache,
83
+ });
34
84
  }
35
85
  const fontKitFont = await getFontKitFont(schema.fontName, font, _cache);
36
86
  // Depending on vertical alignment, we need to move the top or bottom of the font to keep
@@ -80,85 +130,52 @@ export const uiRender = async (arg) => {
80
130
  textDecoration: textDecorations.join(' '),
81
131
  };
82
132
  const textBlock = document.createElement('div');
133
+ textBlock.id = 'text-' + schema.id;
83
134
  Object.assign(textBlock.style, textBlockStyle);
84
- if (isEditable(mode, schema)) {
85
- if (!isFirefox()) {
86
- textBlock.contentEditable = 'plaintext-only';
87
- }
88
- else {
89
- textBlock.contentEditable = 'true';
90
- textBlock.addEventListener('keydown', (e) => {
91
- if (e.key === 'Enter' && !e.shiftKey) {
92
- e.preventDefault();
93
- document.execCommand('insertLineBreak', false, undefined);
94
- }
95
- });
96
- textBlock.addEventListener('paste', (e) => {
97
- e.preventDefault();
98
- const paste = e.clipboardData?.getData('text');
99
- const selection = window.getSelection();
100
- if (!selection?.rangeCount)
101
- return;
102
- selection.deleteFromDocument();
103
- selection.getRangeAt(0).insertNode(document.createTextNode(paste || ''));
104
- selection.collapseToEnd();
105
- });
106
- }
107
- textBlock.tabIndex = tabIndex || 0;
108
- textBlock.innerText = value;
109
- textBlock.addEventListener('blur', (e) => {
110
- onChange && onChange({ key: 'content', value: e.target.innerText });
111
- stopEditing && stopEditing();
112
- });
113
- if (schema.dynamicFontSize) {
114
- textBlock.addEventListener('keyup', () => {
115
- setTimeout(() => {
116
- void (async () => {
117
- if (!textBlock.textContent)
118
- return;
119
- dynamicFontSize = await calculateDynamicFontSize(getCdfArg(textBlock.textContent));
120
- textBlock.style.fontSize = `${dynamicFontSize}pt`;
121
- const { topAdj: newTopAdj, bottomAdj: newBottomAdj } = getBrowserVerticalFontAdjustments(fontKitFont, dynamicFontSize ?? schema.fontSize ?? DEFAULT_FONT_SIZE, schema.lineHeight ?? DEFAULT_LINE_HEIGHT, schema.verticalAlignment ?? DEFAULT_VERTICAL_ALIGNMENT);
122
- textBlock.style.paddingTop = `${newTopAdj}px`;
123
- textBlock.style.marginBottom = `${newBottomAdj}px`;
124
- })();
125
- }, 0);
126
- });
127
- }
128
- if (placeholder && !value) {
129
- textBlock.innerText = placeholder;
130
- textBlock.style.color = PLACEHOLDER_FONT_COLOR;
131
- if (schema.dynamicFontSize) {
132
- const fontSize = await calculateDynamicFontSize(getCdfArg(placeholder));
133
- textBlock.style.fontSize = `${fontSize}pt`;
134
- }
135
- textBlock.addEventListener('focus', () => {
136
- if (textBlock.innerText === placeholder) {
137
- textBlock.innerText = '';
138
- textBlock.style.color = schema.fontColor ?? DEFAULT_FONT_COLOR;
139
- }
140
- });
141
- }
142
- container.appendChild(textBlock);
143
- if (mode === 'designer') {
144
- setTimeout(() => {
145
- textBlock.focus();
146
- // Set the focus to the end of the editable element when you focus, as we would for a textarea
147
- const selection = window.getSelection();
148
- const range = document.createRange();
149
- range.selectNodeContents(textBlock);
150
- range.collapse(false); // Collapse range to the end
151
- selection?.removeAllRanges();
152
- selection?.addRange(range);
153
- });
154
- }
135
+ container.appendChild(textBlock);
136
+ return textBlock;
137
+ };
138
+ /**
139
+ * Firefox doesn't support 'plaintext-only' contentEditable mode, which we want to avoid mark-up.
140
+ * This function adds a workaround for Firefox to make the contentEditable element behave like 'plaintext-only'.
141
+ */
142
+ export const makeElementPlainTextContentEditable = (element) => {
143
+ if (!isFirefox()) {
144
+ element.contentEditable = 'plaintext-only';
145
+ return;
155
146
  }
156
- else {
157
- textBlock.innerHTML = value
158
- .split('')
159
- .map((l, i) => `<span style="letter-spacing:${String(value).length === i + 1 ? 0 : 'inherit'};">${l}</span>`)
160
- .join('');
161
- container.appendChild(textBlock);
147
+ element.contentEditable = 'true';
148
+ element.addEventListener('keydown', (e) => {
149
+ if (e.key === 'Enter' && !e.shiftKey) {
150
+ e.preventDefault();
151
+ document.execCommand('insertLineBreak', false, undefined);
152
+ }
153
+ });
154
+ element.addEventListener('paste', (e) => {
155
+ e.preventDefault();
156
+ const paste = e.clipboardData?.getData('text');
157
+ const selection = window.getSelection();
158
+ if (!selection?.rangeCount)
159
+ return;
160
+ selection.deleteFromDocument();
161
+ selection.getRangeAt(0).insertNode(document.createTextNode(paste || ''));
162
+ selection.collapseToEnd();
163
+ });
164
+ };
165
+ const mapVerticalAlignToFlex = (verticalAlignmentValue) => {
166
+ switch (verticalAlignmentValue) {
167
+ case VERTICAL_ALIGN_TOP:
168
+ return 'flex-start';
169
+ case VERTICAL_ALIGN_MIDDLE:
170
+ return 'center';
171
+ case VERTICAL_ALIGN_BOTTOM:
172
+ return 'flex-end';
162
173
  }
174
+ return 'flex-start';
175
+ };
176
+ const getBackgroundColor = (value, schema) => {
177
+ if (!value || !schema.backgroundColor)
178
+ return 'transparent';
179
+ return schema.backgroundColor;
163
180
  };
164
181
  //# sourceMappingURL=uiRender.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uiRender.js","sourceRoot":"","sources":["../../../../src/text/uiRender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uiRender.js","sourceRoot":"","sources":["../../../../src/text/uiRender.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export declare const DEFAULT_OPACITY = 1;
2
- export declare const HEX_COLOR_PATTERN = "^#(?:[A-Fa-f0-9]{3,4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$";
2
+ export declare const HEX_COLOR_PATTERN = "^#(?:[A-Fa-f0-9]{6})$";
@@ -1,3 +1,4 @@
1
+ import multiVariableText from './multiVariableText/index.js';
1
2
  import text, { readOnlyText } from './text/index.js';
2
3
  import image, { readOnlyImage } from './graphics/image.js';
3
4
  import svg, { readOnlySvg } from './graphics/svg.js';
@@ -10,4 +11,4 @@ declare const tableBeta: import("@pdfme/common").Plugin<import("./tables/types.j
10
11
  declare const builtInPlugins: {
11
12
  Text: import("@pdfme/common").Plugin<import("./text/types.js").TextSchema>;
12
13
  };
13
- export { text, readOnlyText, image, readOnlyImage, svg, readOnlySvg, barcodes, line, tableBeta, modifyTemplateForTable, getDynamicHeightForTable, rectangle, ellipse, builtInPlugins, convertForPdfLayoutProps, rotatePoint, };
14
+ export { multiVariableText, text, readOnlyText, image, readOnlyImage, svg, readOnlySvg, barcodes, line, tableBeta, modifyTemplateForTable, getDynamicHeightForTable, rectangle, ellipse, builtInPlugins, convertForPdfLayoutProps, rotatePoint, };
@@ -0,0 +1 @@
1
+ export declare const substituteVariables: (text: string, variablesIn: string | Record<string, string>) => string;
@@ -0,0 +1,4 @@
1
+ import type { Plugin } from '@pdfme/common';
2
+ import type { MultiVariableTextSchema } from './types';
3
+ declare const schema: Plugin<MultiVariableTextSchema>;
4
+ export default schema;
@@ -0,0 +1,3 @@
1
+ import { PDFRenderProps } from '@pdfme/common';
2
+ import { MultiVariableTextSchema } from './types';
3
+ export declare const pdfRender: (arg: PDFRenderProps<MultiVariableTextSchema>) => Promise<void>;
@@ -0,0 +1,3 @@
1
+ import { PropPanel } from '@pdfme/common';
2
+ import { MultiVariableTextSchema } from './types';
3
+ export declare const propPanel: PropPanel<MultiVariableTextSchema>;
@@ -0,0 +1,5 @@
1
+ import type { TextSchema } from '../text/types';
2
+ export interface MultiVariableTextSchema extends TextSchema {
3
+ text: string;
4
+ variables: string[];
5
+ }
@@ -0,0 +1,3 @@
1
+ import { UIRenderProps } from '@pdfme/common';
2
+ import { MultiVariableTextSchema } from './types';
3
+ export declare const uiRender: (arg: UIRenderProps<MultiVariableTextSchema>) => Promise<void>;
@@ -68,6 +68,7 @@ export declare const rectangle: {
68
68
  };
69
69
  pdf: (arg: import("@pdfme/common").PDFRenderProps<ShapeSchema>) => void | Promise<void>;
70
70
  ui: (arg: import("@pdfme/common").UIRenderProps<ShapeSchema>) => void | Promise<void>;
71
+ uninterruptedEditMode?: boolean | undefined;
71
72
  };
72
73
  export declare const ellipse: {
73
74
  propPanel: {
@@ -132,5 +133,6 @@ export declare const ellipse: {
132
133
  };
133
134
  pdf: (arg: import("@pdfme/common").PDFRenderProps<ShapeSchema>) => void | Promise<void>;
134
135
  ui: (arg: import("@pdfme/common").UIRenderProps<ShapeSchema>) => void | Promise<void>;
136
+ uninterruptedEditMode?: boolean | undefined;
135
137
  };
136
138
  export {};
@@ -1,3 +1,9 @@
1
1
  import { UIRenderProps } from '@pdfme/common';
2
2
  import type { TextSchema } from './types';
3
3
  export declare const uiRender: (arg: UIRenderProps<TextSchema>) => Promise<void>;
4
+ export declare const buildStyledTextContainer: (arg: UIRenderProps<TextSchema>, value: string) => Promise<HTMLDivElement>;
5
+ /**
6
+ * Firefox doesn't support 'plaintext-only' contentEditable mode, which we want to avoid mark-up.
7
+ * This function adds a workaround for Firefox to make the contentEditable element behave like 'plaintext-only'.
8
+ */
9
+ export declare const makeElementPlainTextContentEditable: (element: HTMLElement) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pdfme/schemas",
3
- "version": "4.1.0",
3
+ "version": "4.1.1-dev.2",
4
4
  "sideEffects": false,
5
5
  "author": "hand-dot",
6
6
  "license": "MIT",
package/src/constants.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const DEFAULT_OPACITY = 1;
2
- export const HEX_COLOR_PATTERN = '^#(?:[A-Fa-f0-9]{3,4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$';
2
+ export const HEX_COLOR_PATTERN = '^#(?:[A-Fa-f0-9]{6})$';
@@ -19,9 +19,10 @@ export interface ImageSchema extends Schema {}
19
19
  const imageSchema: Plugin<ImageSchema> = {
20
20
  pdf: async (arg: PDFRenderProps<ImageSchema>) => {
21
21
  const { value, schema, pdfDoc, page, _cache } = arg;
22
+ if (!value) return;
22
23
  const isGraphicPdf = isPdf(value);
23
24
  const isImageOrPdf = value.startsWith('data:image/') || isGraphicPdf;
24
- if (!value || !isImageOrPdf) return;
25
+ if (!isImageOrPdf) return;
25
26
 
26
27
  const inputImageCacheKey = getCacheKey(schema, value);
27
28
  let image = _cache.get(inputImageCacheKey) as PDFImage | PDFEmbeddedPage;
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import multiVariableText from './multiVariableText/index.js'
1
2
  import text, { readOnlyText } from './text/index.js';
2
3
  import image, { readOnlyImage } from './graphics/image.js';
3
4
  import svg, { readOnlySvg } from './graphics/svg.js';
@@ -13,6 +14,7 @@ const tableBeta = table;
13
14
  const builtInPlugins = { Text: text };
14
15
 
15
16
  export {
17
+ multiVariableText,
16
18
  text,
17
19
  readOnlyText,
18
20
  image,