@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.
- package/dist/cjs/src/constants.js +1 -1
- package/dist/cjs/src/constants.js.map +1 -1
- package/dist/cjs/src/graphics/image.js +3 -1
- package/dist/cjs/src/graphics/image.js.map +1 -1
- package/dist/cjs/src/index.js +11 -9
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/multiVariableText/helper.js +19 -0
- package/dist/cjs/src/multiVariableText/helper.js.map +1 -0
- package/dist/cjs/src/multiVariableText/index.js +8 -0
- package/dist/cjs/src/multiVariableText/index.js.map +1 -0
- package/dist/cjs/src/multiVariableText/pdfRender.js +16 -0
- package/dist/cjs/src/multiVariableText/pdfRender.js.map +1 -0
- package/dist/cjs/src/multiVariableText/propPanel.js +128 -0
- package/dist/cjs/src/multiVariableText/propPanel.js.map +1 -0
- package/dist/cjs/src/multiVariableText/types.js +3 -0
- package/dist/cjs/src/multiVariableText/types.js.map +1 -0
- package/dist/cjs/src/multiVariableText/uiRender.js +133 -0
- package/dist/cjs/src/multiVariableText/uiRender.js.map +1 -0
- package/dist/cjs/src/tables/tableHelper.js +2 -2
- package/dist/cjs/src/tables/tableHelper.js.map +1 -1
- package/dist/cjs/src/text/extraFormatter.js +1 -1
- package/dist/cjs/src/text/propPanel.js +1 -1
- package/dist/cjs/src/text/uiRender.js +122 -103
- package/dist/cjs/src/text/uiRender.js.map +1 -1
- package/dist/esm/src/constants.js +1 -1
- package/dist/esm/src/constants.js.map +1 -1
- package/dist/esm/src/graphics/image.js +3 -1
- package/dist/esm/src/graphics/image.js.map +1 -1
- package/dist/esm/src/index.js +2 -1
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/multiVariableText/helper.js +15 -0
- package/dist/esm/src/multiVariableText/helper.js.map +1 -0
- package/dist/esm/src/multiVariableText/index.js +6 -0
- package/dist/esm/src/multiVariableText/index.js.map +1 -0
- package/dist/esm/src/multiVariableText/pdfRender.js +12 -0
- package/dist/esm/src/multiVariableText/pdfRender.js.map +1 -0
- package/dist/esm/src/multiVariableText/propPanel.js +125 -0
- package/dist/esm/src/multiVariableText/propPanel.js.map +1 -0
- package/dist/esm/src/multiVariableText/types.js +2 -0
- package/dist/esm/src/multiVariableText/types.js.map +1 -0
- package/dist/esm/src/multiVariableText/uiRender.js +129 -0
- package/dist/esm/src/multiVariableText/uiRender.js.map +1 -0
- package/dist/esm/src/tables/tableHelper.js +2 -2
- package/dist/esm/src/tables/tableHelper.js.map +1 -1
- package/dist/esm/src/text/extraFormatter.js +1 -1
- package/dist/esm/src/text/propPanel.js +1 -1
- package/dist/esm/src/text/uiRender.js +118 -101
- package/dist/esm/src/text/uiRender.js.map +1 -1
- package/dist/types/src/constants.d.ts +1 -1
- package/dist/types/src/index.d.ts +2 -1
- package/dist/types/src/multiVariableText/helper.d.ts +1 -0
- package/dist/types/src/multiVariableText/index.d.ts +4 -0
- package/dist/types/src/multiVariableText/pdfRender.d.ts +3 -0
- package/dist/types/src/multiVariableText/propPanel.d.ts +3 -0
- package/dist/types/src/multiVariableText/types.d.ts +5 -0
- package/dist/types/src/multiVariableText/uiRender.d.ts +3 -0
- package/dist/types/src/shapes/rectAndEllipse.d.ts +2 -0
- package/dist/types/src/text/uiRender.d.ts +6 -0
- package/package.json +1 -1
- package/src/constants.ts +1 -1
- package/src/graphics/image.ts +2 -1
- package/src/index.ts +2 -0
- package/src/multiVariableText/helper.ts +18 -0
- package/src/multiVariableText/index.ts +8 -0
- package/src/multiVariableText/pdfRender.ts +16 -0
- package/src/multiVariableText/propPanel.ts +139 -0
- package/src/multiVariableText/types.ts +6 -0
- package/src/multiVariableText/uiRender.ts +161 -0
- package/src/tables/tableHelper.ts +2 -2
- package/src/text/extraFormatter.ts +1 -1
- package/src/text/propPanel.ts +1 -1
- 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":"AAEA,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,wBAAwB,EACxB,mCAAmC,EACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,GAA2C,EAAE,EAAE;IAC5E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IAEpE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACvB,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;IAE3C,IAAI,IAAI,KAAK,MAAM,IAAI,YAAY,GAAG,CAAC,EAAE;QACvC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO;KACR;IAED,MAAM,cAAc,CAAC;QACnB,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC;QACzE,MAAM;QACN,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QACtC,WAAW;QACX,QAAQ,EAAE,CAAC,GAAkE,EAAE,EAAE;YAC/E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvB,QAAQ,IAAI,QAAQ,CAAC,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAC,CAAC,CAAC;aACvD;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;aACpF;QACH,CAAC;QACD,GAAG,IAAI;KACR,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAmB,CAAC;IACpF,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;KACjG;IAED,IAAI,IAAI,KAAK,UAAU,EAAE;QACvB,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAoB,EAAE,EAAE;YAC3D,IAAI,GAAG,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC;YACnC,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE;gBAClC,MAAM,eAAe,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,YAAY,KAAK,eAAe,EAAE;oBACpC,uEAAuE;oBACvE,IAAI,QAAQ,EAAE;wBACZ,QAAQ,CAAC,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;qBACtC;oBACD,YAAY,GAAG,eAAe,CAAC;iBAChC;aACF;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,EAAE,GAA2C,EAAE,EAAE;IACzE,MAAM,EACJ,KAAK,EACL,MAAM,EACN,WAAW,EACX,QAAQ,EACR,WAAW,EACX,KAAK,GACN,GAAG,GAAG,CAAC;IACR,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;IAE5B,IAAI,WAAW,CAAC,aAAa,EAAE;QAC7B,0GAA0G;QAC1G,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;KAC9C;IAED,MAAM,SAAS,GAA2B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACjE,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAEvE,uEAAuE;IACvE,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE;YACtB,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,KAAK,CAAC,YAAY,aAAa,CAAC;YACxD,mCAAmC,CAAC,IAAI,CAAC,CAAA;YACzC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAQ,EAAE,EAAE;gBACzC,MAAM,QAAQ,GAAI,CAAC,CAAC,MAA0B,CAAC,SAAS,CAAC;gBACzD,IAAI,QAAQ,KAAK,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC9C,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;oBACzC,QAAQ,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBAC3E,WAAW,IAAI,WAAW,EAAE,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC7B;aAAM,IAAI,WAAW,EAAE;YACtB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACtB,WAAW,GAAG,KAAK,CAAC;aACrB;SACF;aAAM;YACL,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC7B;KACF;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,aAAa,CAAC;IAC5B,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE;QAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KACjC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,OAAe,EAAE,EAAE;IACnD,MAAM,KAAK,GAAG,aAAa,CAAC;IAC5B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE;QAC7C,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAChC;IAED,OAAO,gBAAgB,CAAC,IAAI,CAAC;AAC/B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAAC,KAAoB,EAAE,EAAE;IACvD,IAAI,KAAK,CAAC,GAAG,IAAI,SAAS,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,IAAI,YAAY,EAAE;QAC/G,OAAO,KAAK,CAAC;KACd;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IACxC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAwB,CAAC;IAEvD,MAAM,aAAa,GAAG,SAAS,EAAE,WAAW,KAAK,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC;IACtF,IAAI,aAAa,EAAE;QACjB,OAAO,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC;KACjF;IAED,MAAM,eAAe,GAAG,SAAS,EAAE,YAAY,KAAK,CAAC,CAAC;IACtD,IAAI,eAAe,EAAE;QACnB,OAAO,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC;KACjF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAA"}
|
@@ -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]
|
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]
|
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":"AAAA,OAAO,EAEL,UAAU,EAGV,cAAc,EACd,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAUvB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AA8BrD,SAAS,YAAY,CACnB,WAAoB,EACpB,WAAuB,EACvB,OAAiB,EACjB,UAAuB,EACvB,gBAAwB;IAExB,MAAM,qBAAqB,GAAuD,EAAE,CAAC;IACrF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QAClD,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,MAAM,KAAK,GAA4B,EAAE,CAAC;QAE1C,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IACE,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI;gBAC3C,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,EAC9C;gBACA,IAAI,eAAe,KAAK,CAAC,EAAE;oBACzB,IAAI,OAAO,CAAC;oBACZ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBACzB,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,GAAG,qBAAqB,CAAC,CAAC;qBACxE;yBAAM;wBACL,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBAChC;oBACD,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;oBACvF,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;oBACpD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;oBAE3B,eAAe,GAAG,CAAC,CAAC;oBACpB,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;wBACpC,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,eAAe;qBACvB,CAAC;iBACH;qBAAM;oBACL,eAAe,EAAE,CAAC;oBAClB,aAAa,EAAE,CAAC;iBACjB;aACF;iBAAM;gBACL,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3C,eAAe,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;gBAC5D,qBAAqB,EAAE,CAAC;aACzB;SACF;QACD,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAiB,EAAE,gBAAwB;IACrE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,OAAO;QACL,OAAO;QACP,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC;QAC3E,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,WAAoB,EACpB,MAAc,EACd,QAAgB,EAChB,MAAmB,EACnB,gBAAwB;IAExB,IAAI,aAAa,CAAC;IAClB,IAAI,WAAW,KAAK,MAAM,EAAE;QAC1B,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;KACnC;SAAM,IAAI,WAAW,KAAK,MAAM,EAAE;QACjC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;KACnC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEpE,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAE/F,MAAM,SAAS,GACb,WAAW,KAAK,MAAM,IAAI,QAAQ,GAAG,CAAC,KAAK,CAAC;QAC1C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC;QAC9C,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,CAAC;QACb,gBAAgB,EAAE,CAAC;QACnB,SAAS,EAAE,MAAM;QACjB,iBAAiB,EAAE,QAAQ;QAC3B,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,CAAC;KAChB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAW,CAAC;AAClF,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB;IACpC,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,MAAM;QACN,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,WAAW;QAC5B,SAAS,EAAE,KAAK,CAAC,WAAW;QAC5B,WAAW,EAAE,KAAK,CAAC,OAAO;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,SAAgB,EAChB,eAAuB,EACvB,IAAqB;IAErB,IAAI,KAAK,GAAG,eAAe,CAAC;IAC5B,MAAM,YAAY,GAAe,EAAE,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE;QAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,MAAM;QAChB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC,EAAE;YACzB,MAAM;SACP;QACD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,IAAI,SAAS,CAAC;QACnB,KAAK,EAAE,CAAC;KACT;IACD,OAAO,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,MAAmB,EAAE,IAAgB;IAC5D,MAAM,iBAAiB,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAC1D,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,EAC7E,EAAqC,CACtC,CAAC;IAEF,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CACtF,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,EAChE,EAAqC,CACtC,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;QACtB,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QAC7C,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;KAClD,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3D,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,cAAc,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACxD,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,cAAc,EAAE,EAAE,CAAC;IACjE,CAAC,EAAE,EAAqC,CAAC,CAAC;IAE1C,OAAO;QACL,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;QACnB,IAAI;QACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC,KAAK;QACxB,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW;QAC9C,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW;QAC9C,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;QAC3C,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;QAC3C,kBAAkB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE;QACnF,YAAY;QACZ,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;KACjE,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB;IACtC,MAAM,YAAY,GAAgB;QAChC,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,kBAAkB,EAAE,EAAE;QACtB,YAAY,EAAE,EAAE;KACjB,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAgB,EAAE;QAC3D,IAAI,IAAI,KAAK,cAAc,EAAE;YAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7B,YAAY,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SACxD;aAAM;YACL,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACzE;KACF;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAoB;IAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CAAC,MAAmB,EAAE,IAAgB;IACvD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,CAAC;QAC3C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;KAC7C,CAAC;IAEF,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAgB,EAAE,IAAqB;IACvE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,
|
1
|
+
{"version":3,"file":"tableHelper.js","sourceRoot":"","sources":["../../../../src/tables/tableHelper.ts"],"names":[],"mappings":"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"}
|
@@ -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
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
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
|
22
|
-
const {
|
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(
|
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
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
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
|
-
|
157
|
-
|
158
|
-
|
159
|
-
.
|
160
|
-
.
|
161
|
-
|
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":"AACA,OAAO,
|
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]{
|
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;
|
@@ -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
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]{
|
2
|
+
export const HEX_COLOR_PATTERN = '^#(?:[A-Fa-f0-9]{6})$';
|
package/src/graphics/image.ts
CHANGED
@@ -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 (!
|
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,
|