mirror of
https://github.com/documenso/documenso.git
synced 2025-11-10 04:22:32 +10:00
feat: add custom font sizes to fields (#1376)
Adds custom font sizes to fields https://github.com/user-attachments/assets/1473a4d7-8dc6-4ead-acf5-dd78be7782a0
This commit is contained in:
@ -128,7 +128,7 @@ export const SigningFieldContainer = ({
|
||||
};
|
||||
|
||||
return (
|
||||
<div className={cn('[container-type:size]', type === 'Checkbox' ? 'group' : '')}>
|
||||
<div className={cn('[container-type:size]', { group: type === 'Checkbox' })}>
|
||||
<FieldRootContainer field={field}>
|
||||
{!field.inserted && !loading && !readOnlyField && (
|
||||
<button
|
||||
|
||||
@ -1,15 +1,10 @@
|
||||
import { checkboxValidationSigns } from '@documenso/ui/primitives/document-flow/field-items-advanced-settings/constants';
|
||||
|
||||
interface CheckboxFieldMeta {
|
||||
readOnly?: boolean;
|
||||
required?: boolean;
|
||||
validationRule?: string;
|
||||
validationLength?: number;
|
||||
}
|
||||
import type { TCheckboxFieldMeta } from '../types/field-meta';
|
||||
|
||||
export const validateCheckboxField = (
|
||||
values: string[],
|
||||
fieldMeta: CheckboxFieldMeta,
|
||||
fieldMeta: TCheckboxFieldMeta,
|
||||
isSigningPage: boolean = false,
|
||||
): string[] => {
|
||||
const errors = [];
|
||||
|
||||
@ -1,14 +1,10 @@
|
||||
interface DropdownFieldMeta {
|
||||
readOnly?: boolean;
|
||||
required?: boolean;
|
||||
values?: { value: string }[];
|
||||
defaultValue?: string;
|
||||
}
|
||||
import type { TDropdownFieldMeta as DropdownFieldMeta } from '../types/field-meta';
|
||||
|
||||
export const validateDropdownField = (
|
||||
value: string | undefined,
|
||||
fieldMeta: DropdownFieldMeta,
|
||||
isSigningPage: boolean = false,
|
||||
fontSize?: number,
|
||||
): string[] => {
|
||||
const errors = [];
|
||||
|
||||
@ -50,5 +46,9 @@ export const validateDropdownField = (
|
||||
errors.push('Duplicate values are not allowed');
|
||||
}
|
||||
|
||||
if (fontSize && (fontSize < 8 || fontSize > 96)) {
|
||||
errors.push('Font size must be between 8 and 96.');
|
||||
}
|
||||
|
||||
return errors;
|
||||
};
|
||||
|
||||
19
packages/lib/advanced-fields-validation/validate-fields.ts
Normal file
19
packages/lib/advanced-fields-validation/validate-fields.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import type {
|
||||
TDateFieldMeta as DateFieldMeta,
|
||||
TEmailFieldMeta as EmailFieldMeta,
|
||||
TInitialsFieldMeta as InitialsFieldMeta,
|
||||
TNameFieldMeta as NameFieldMeta,
|
||||
} from '../types/field-meta';
|
||||
|
||||
export const validateFields = (
|
||||
fieldMeta: DateFieldMeta | EmailFieldMeta | InitialsFieldMeta | NameFieldMeta,
|
||||
): string[] => {
|
||||
const errors = [];
|
||||
const { fontSize } = fieldMeta;
|
||||
|
||||
if (fontSize && (fontSize < 8 || fontSize > 96)) {
|
||||
errors.push('Font size must be between 8 and 96.');
|
||||
}
|
||||
|
||||
return errors;
|
||||
};
|
||||
@ -1,12 +1,5 @@
|
||||
// import { numberFormatValues } from '@documenso/ui/primitives/document-flow/field-items-advanced-settings/constants';
|
||||
|
||||
interface NumberFieldMeta {
|
||||
minValue?: number;
|
||||
maxValue?: number;
|
||||
readOnly?: boolean;
|
||||
required?: boolean;
|
||||
numberFormat?: string;
|
||||
}
|
||||
import type { TNumberFieldMeta as NumberFieldMeta } from '../types/field-meta';
|
||||
|
||||
export const validateNumberField = (
|
||||
value: string,
|
||||
@ -15,7 +8,7 @@ export const validateNumberField = (
|
||||
): string[] => {
|
||||
const errors = [];
|
||||
|
||||
const { minValue, maxValue, readOnly, required, numberFormat } = fieldMeta || {};
|
||||
const { minValue, maxValue, readOnly, required, numberFormat, fontSize } = fieldMeta || {};
|
||||
|
||||
const formatRegex: { [key: string]: RegExp } = {
|
||||
'123,456,789.00': /^(?:\d{1,3}(?:,\d{3})*|\d+)(?:\.\d{1,2})?$/,
|
||||
@ -63,5 +56,9 @@ export const validateNumberField = (
|
||||
errors.push('A field cannot be both read-only and required');
|
||||
}
|
||||
|
||||
if (fontSize && (fontSize < 8 || fontSize > 96)) {
|
||||
errors.push('Font size must be between 8 and 96.');
|
||||
}
|
||||
|
||||
return errors;
|
||||
};
|
||||
|
||||
@ -1,8 +1,4 @@
|
||||
interface RadioFieldMeta {
|
||||
readOnly?: boolean;
|
||||
required?: boolean;
|
||||
values?: { checked: boolean; value: string }[];
|
||||
}
|
||||
import type { TRadioFieldMeta as RadioFieldMeta } from '../types/field-meta';
|
||||
|
||||
export const validateRadioField = (
|
||||
value: string | undefined,
|
||||
|
||||
@ -1,8 +1,4 @@
|
||||
interface TextFieldMeta {
|
||||
characterLimit?: number;
|
||||
readOnly?: boolean;
|
||||
required?: boolean;
|
||||
}
|
||||
import type { TTextFieldMeta as TextFieldMeta } from '../types/field-meta';
|
||||
|
||||
export const validateTextField = (
|
||||
value: string,
|
||||
@ -11,7 +7,7 @@ export const validateTextField = (
|
||||
): string[] => {
|
||||
const errors = [];
|
||||
|
||||
const { characterLimit, readOnly, required } = fieldMeta;
|
||||
const { characterLimit, readOnly, required, fontSize } = fieldMeta;
|
||||
|
||||
if (required && !value && isSigningPage) {
|
||||
errors.push('Value is required');
|
||||
@ -29,5 +25,9 @@ export const validateTextField = (
|
||||
errors.push('A field cannot be both read-only and required');
|
||||
}
|
||||
|
||||
if (fontSize && (fontSize < 8 || fontSize > 96)) {
|
||||
errors.push('Font size must be between 8 and 96.');
|
||||
}
|
||||
|
||||
return errors;
|
||||
};
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
// https://github.com/Hopding/pdf-lib/issues/20#issuecomment-412852821
|
||||
import fontkit from '@pdf-lib/fontkit';
|
||||
import { PDFDocument, RotationTypes, degrees, radiansToDegrees } from 'pdf-lib';
|
||||
import type { PDFDocument } from 'pdf-lib';
|
||||
import { RotationTypes, degrees, radiansToDegrees } from 'pdf-lib';
|
||||
import { P, match } from 'ts-pattern';
|
||||
|
||||
import {
|
||||
@ -13,7 +14,16 @@ import { FieldType } from '@documenso/prisma/client';
|
||||
import { isSignatureFieldType } from '@documenso/prisma/guards/is-signature-field';
|
||||
import type { FieldWithSignature } from '@documenso/prisma/types/field-with-signature';
|
||||
|
||||
import { ZCheckboxFieldMeta, ZRadioFieldMeta } from '../../types/field-meta';
|
||||
import {
|
||||
ZCheckboxFieldMeta,
|
||||
ZDateFieldMeta,
|
||||
ZEmailFieldMeta,
|
||||
ZInitialsFieldMeta,
|
||||
ZNameFieldMeta,
|
||||
ZNumberFieldMeta,
|
||||
ZRadioFieldMeta,
|
||||
ZTextFieldMeta,
|
||||
} from '../../types/field-meta';
|
||||
|
||||
export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignature) => {
|
||||
const fontCaveat = await fetch(process.env.FONT_CAVEAT_URI).then(async (res) =>
|
||||
@ -32,7 +42,6 @@ export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignatu
|
||||
|
||||
const minFontSize = isSignatureField ? MIN_HANDWRITING_FONT_SIZE : MIN_STANDARD_FONT_SIZE;
|
||||
const maxFontSize = isSignatureField ? DEFAULT_HANDWRITING_FONT_SIZE : DEFAULT_STANDARD_FONT_SIZE;
|
||||
let fontSize = maxFontSize;
|
||||
|
||||
const page = pages.at(field.page - 1);
|
||||
|
||||
@ -207,16 +216,33 @@ export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignatu
|
||||
}
|
||||
})
|
||||
.otherwise((field) => {
|
||||
const fieldMetaParsers = {
|
||||
[FieldType.TEXT]: ZTextFieldMeta,
|
||||
[FieldType.NUMBER]: ZNumberFieldMeta,
|
||||
[FieldType.DATE]: ZDateFieldMeta,
|
||||
[FieldType.EMAIL]: ZEmailFieldMeta,
|
||||
[FieldType.NAME]: ZNameFieldMeta,
|
||||
[FieldType.INITIALS]: ZInitialsFieldMeta,
|
||||
} as const;
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
||||
const Parser = fieldMetaParsers[field.type as keyof typeof fieldMetaParsers];
|
||||
const meta = Parser ? Parser.safeParse(field.fieldMeta) : null;
|
||||
|
||||
const customFontSize = meta?.success && meta.data.fontSize ? meta.data.fontSize : null;
|
||||
const longestLineInTextForWidth = field.customText
|
||||
.split('\n')
|
||||
.sort((a, b) => b.length - a.length)[0];
|
||||
|
||||
let fontSize = customFontSize || maxFontSize;
|
||||
let textWidth = font.widthOfTextAtSize(longestLineInTextForWidth, fontSize);
|
||||
const textHeight = font.heightAtSize(fontSize);
|
||||
|
||||
const scalingFactor = Math.min(fieldWidth / textWidth, fieldHeight / textHeight, 1);
|
||||
if (!customFontSize) {
|
||||
const scalingFactor = Math.min(fieldWidth / textWidth, fieldHeight / textHeight, 1);
|
||||
fontSize = Math.max(Math.min(fontSize * scalingFactor, maxFontSize), minFontSize);
|
||||
}
|
||||
|
||||
fontSize = Math.max(Math.min(fontSize * scalingFactor, maxFontSize), minFontSize);
|
||||
textWidth = font.widthOfTextAtSize(longestLineInTextForWidth, fontSize);
|
||||
|
||||
let textX = fieldX + (fieldWidth - textWidth) / 2;
|
||||
@ -250,17 +276,6 @@ export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignatu
|
||||
return pdf;
|
||||
};
|
||||
|
||||
export const insertFieldInPDFBytes = async (
|
||||
pdf: ArrayBuffer | Uint8Array | string,
|
||||
field: FieldWithSignature,
|
||||
) => {
|
||||
const pdfDoc = await PDFDocument.load(pdf);
|
||||
|
||||
await insertFieldInPDF(pdfDoc, field);
|
||||
|
||||
return await pdfDoc.save();
|
||||
};
|
||||
|
||||
const adjustPositionForRotation = (
|
||||
pageWidth: number,
|
||||
pageHeight: number,
|
||||
|
||||
@ -10,6 +10,7 @@ export async function insertTextInPDF(
|
||||
positionY: number,
|
||||
page = 0,
|
||||
useHandwritingFont = true,
|
||||
customFontSize?: number,
|
||||
): Promise<string> {
|
||||
// Fetch the font file from the public URL.
|
||||
const fontResponse = await fetch(CAVEAT_FONT_PATH());
|
||||
@ -24,7 +25,7 @@ export async function insertTextInPDF(
|
||||
const pages = pdfDoc.getPages();
|
||||
const pdfPage = pages[page];
|
||||
|
||||
const textSize = useHandwritingFont ? 50 : 15;
|
||||
const textSize = customFontSize || (useHandwritingFont ? 50 : 15);
|
||||
const textWidth = font.widthOfTextAtSize(text, textSize);
|
||||
const textHeight = font.heightAtSize(textSize);
|
||||
const fieldSize = { width: 250, height: 64 };
|
||||
|
||||
@ -73,11 +73,11 @@ msgstr "Fügen Sie dem Dokument eine externe ID hinzu. Diese kann verwendet werd
|
||||
msgid "Add an external ID to the template. This can be used to identify in external systems."
|
||||
msgstr "Fügen Sie der Vorlage eine externe ID hinzu. Diese kann zur Identifizierung in externen Systemen verwendet werden."
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:177
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:187
|
||||
msgid "Add another option"
|
||||
msgstr "Weitere Option hinzufügen"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:230
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:232
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167
|
||||
msgid "Add another value"
|
||||
msgstr "Weiteren Wert hinzufügen"
|
||||
@ -98,11 +98,11 @@ msgstr "Platzhalterempfänger hinzufügen"
|
||||
msgid "Add Signer"
|
||||
msgstr "Unterzeichner hinzufügen"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:70
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:73
|
||||
msgid "Add text"
|
||||
msgstr "Text hinzufügen"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:75
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:78
|
||||
msgid "Add text to the field"
|
||||
msgstr "Text zum Feld hinzufügen"
|
||||
|
||||
@ -148,7 +148,7 @@ msgstr "Schwarz"
|
||||
msgid "Blue"
|
||||
msgstr "Blau"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:287
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:356
|
||||
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
@ -174,7 +174,7 @@ msgstr "CC"
|
||||
msgid "CC'd"
|
||||
msgstr "CC'd"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:83
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86
|
||||
msgid "Character Limit"
|
||||
msgstr "Zeichenbeschränkung"
|
||||
|
||||
@ -183,7 +183,7 @@ msgstr "Zeichenbeschränkung"
|
||||
msgid "Checkbox"
|
||||
msgstr "Checkbox"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:195
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197
|
||||
msgid "Checkbox values"
|
||||
msgstr "Checkbox-Werte"
|
||||
|
||||
@ -261,7 +261,7 @@ msgstr "Ziehen Sie Ihr PDF hierher."
|
||||
msgid "Dropdown"
|
||||
msgstr "Dropdown"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:148
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:158
|
||||
msgid "Dropdown options"
|
||||
msgstr "Dropdown-Optionen"
|
||||
|
||||
@ -295,7 +295,7 @@ msgstr "Aktiviere die Signaturreihenfolge"
|
||||
msgid "Enter password"
|
||||
msgstr "Passwort eingeben"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:216
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:257
|
||||
msgid "Error"
|
||||
msgstr "Fehler"
|
||||
|
||||
@ -304,26 +304,44 @@ msgstr "Fehler"
|
||||
msgid "External ID"
|
||||
msgstr "Externe ID"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:217
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:258
|
||||
msgid "Failed to save settings."
|
||||
msgstr "Einstellungen konnten nicht gespeichert werden."
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:90
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:93
|
||||
msgid "Field character limit"
|
||||
msgstr "Zeichenbeschränkung des Feldes"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:107
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:62
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:44
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:44
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:44
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:130
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:107
|
||||
msgid "Field font size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:110
|
||||
msgid "Field format"
|
||||
msgstr "Feldformat"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:50
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:53
|
||||
msgid "Field label"
|
||||
msgstr "Feldbeschriftung"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:62
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:65
|
||||
msgid "Field placeholder"
|
||||
msgstr "Feldplatzhalter"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:56
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:38
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:38
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:38
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:124
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:101
|
||||
msgid "Font Size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx:64
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Globale Empfängerauthentifizierung"
|
||||
@ -361,9 +379,9 @@ msgstr "Ich bin verpflichtet, eine Kopie dieses Dokuments zu erhalten"
|
||||
msgid "Inherit authentication method"
|
||||
msgstr "Authentifizierungsmethode erben"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:64
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:69
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:45
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48
|
||||
msgid "Label"
|
||||
msgstr "Beschriftung"
|
||||
|
||||
@ -371,7 +389,7 @@ msgstr "Beschriftung"
|
||||
msgid "Manager"
|
||||
msgstr "Manager"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:168
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:188
|
||||
msgid "Max"
|
||||
msgstr "Max"
|
||||
|
||||
@ -384,7 +402,7 @@ msgstr "Mitglied"
|
||||
msgid "Message <0>(Optional)</0>"
|
||||
msgstr "Nachricht <0>(Optional)</0>"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:176
|
||||
msgid "Min"
|
||||
msgstr "Min"
|
||||
|
||||
@ -445,7 +463,7 @@ msgstr "Kein Wert gefunden."
|
||||
msgid "Number"
|
||||
msgstr "Nummer"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:100
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:103
|
||||
msgid "Number format"
|
||||
msgstr "Zahlenformat"
|
||||
|
||||
@ -465,13 +483,13 @@ msgstr "Seite {0} von {1}"
|
||||
msgid "Password Required"
|
||||
msgstr "Passwort erforderlich"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:154
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:156
|
||||
msgid "Pick a number"
|
||||
msgstr "Wählen Sie eine Zahl"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:76
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:81
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:57
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:79
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:84
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:60
|
||||
msgid "Placeholder"
|
||||
msgstr "Platzhalter"
|
||||
|
||||
@ -484,11 +502,11 @@ msgstr "Radio"
|
||||
msgid "Radio values"
|
||||
msgstr "Radio-Werte"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:184
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:136
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:186
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:147
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:114
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:133
|
||||
msgid "Read only"
|
||||
msgstr "Nur lesen"
|
||||
|
||||
@ -515,11 +533,11 @@ msgstr "Weiterleitungs-URL"
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:174
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:127
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:126
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:176
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:146
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:104
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:123
|
||||
msgid "Required field"
|
||||
msgstr "Pflichtfeld"
|
||||
|
||||
@ -527,7 +545,7 @@ msgstr "Pflichtfeld"
|
||||
msgid "Rows per page"
|
||||
msgstr "Zeilen pro Seite"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:286
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:355
|
||||
msgid "Save"
|
||||
msgstr "Speichern"
|
||||
|
||||
@ -539,7 +557,7 @@ msgstr "Vorlage speichern"
|
||||
msgid "Search languages..."
|
||||
msgstr "Sprachen suchen..."
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:115
|
||||
msgid "Select"
|
||||
msgstr "Auswählen"
|
||||
|
||||
@ -547,11 +565,11 @@ msgstr "Auswählen"
|
||||
msgid "Select an option"
|
||||
msgstr "Option auswählen"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:137
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:139
|
||||
msgid "Select at least"
|
||||
msgstr "Wählen Sie mindestens"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:95
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
|
||||
msgid "Select default option"
|
||||
msgstr "Standardoption auswählen"
|
||||
|
||||
@ -749,13 +767,13 @@ msgstr "Upgrade"
|
||||
msgid "Upload Template Document"
|
||||
msgstr "Vorlagendokument hochladen"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:130
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:147
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:132
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:167
|
||||
msgid "Validation"
|
||||
msgstr "Validierung"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:88
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:93
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:91
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:96
|
||||
msgid "Value"
|
||||
msgstr "Wert"
|
||||
|
||||
|
||||
1
packages/lib/translations/de/marketing.js
Normal file
1
packages/lib/translations/de/marketing.js
Normal file
File diff suppressed because one or more lines are too long
1
packages/lib/translations/de/web.js
Normal file
1
packages/lib/translations/de/web.js
Normal file
File diff suppressed because one or more lines are too long
@ -68,11 +68,11 @@ msgstr "Add an external ID to the document. This can be used to identify the doc
|
||||
msgid "Add an external ID to the template. This can be used to identify in external systems."
|
||||
msgstr "Add an external ID to the template. This can be used to identify in external systems."
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:177
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:187
|
||||
msgid "Add another option"
|
||||
msgstr "Add another option"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:230
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:232
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167
|
||||
msgid "Add another value"
|
||||
msgstr "Add another value"
|
||||
@ -93,11 +93,11 @@ msgstr "Add Placeholder Recipient"
|
||||
msgid "Add Signer"
|
||||
msgstr "Add Signer"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:70
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:73
|
||||
msgid "Add text"
|
||||
msgstr "Add text"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:75
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:78
|
||||
msgid "Add text to the field"
|
||||
msgstr "Add text to the field"
|
||||
|
||||
@ -143,7 +143,7 @@ msgstr "Black"
|
||||
msgid "Blue"
|
||||
msgstr "Blue"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:287
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:356
|
||||
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
@ -169,7 +169,7 @@ msgstr "CC"
|
||||
msgid "CC'd"
|
||||
msgstr "CC'd"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:83
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86
|
||||
msgid "Character Limit"
|
||||
msgstr "Character Limit"
|
||||
|
||||
@ -178,7 +178,7 @@ msgstr "Character Limit"
|
||||
msgid "Checkbox"
|
||||
msgstr "Checkbox"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:195
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197
|
||||
msgid "Checkbox values"
|
||||
msgstr "Checkbox values"
|
||||
|
||||
@ -256,7 +256,7 @@ msgstr "Drag & drop your PDF here."
|
||||
msgid "Dropdown"
|
||||
msgstr "Dropdown"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:148
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:158
|
||||
msgid "Dropdown options"
|
||||
msgstr "Dropdown options"
|
||||
|
||||
@ -290,7 +290,7 @@ msgstr "Enable signing order"
|
||||
msgid "Enter password"
|
||||
msgstr "Enter password"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:216
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:257
|
||||
msgid "Error"
|
||||
msgstr "Error"
|
||||
|
||||
@ -299,26 +299,44 @@ msgstr "Error"
|
||||
msgid "External ID"
|
||||
msgstr "External ID"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:217
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:258
|
||||
msgid "Failed to save settings."
|
||||
msgstr "Failed to save settings."
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:90
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:93
|
||||
msgid "Field character limit"
|
||||
msgstr "Field character limit"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:107
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:62
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:44
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:44
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:44
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:130
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:107
|
||||
msgid "Field font size"
|
||||
msgstr "Field font size"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:110
|
||||
msgid "Field format"
|
||||
msgstr "Field format"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:50
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:53
|
||||
msgid "Field label"
|
||||
msgstr "Field label"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:62
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:65
|
||||
msgid "Field placeholder"
|
||||
msgstr "Field placeholder"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:56
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:38
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:38
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:38
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:124
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:101
|
||||
msgid "Font Size"
|
||||
msgstr "Font Size"
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx:64
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Global recipient action authentication"
|
||||
@ -356,9 +374,9 @@ msgstr "I am required to receive a copy of this document"
|
||||
msgid "Inherit authentication method"
|
||||
msgstr "Inherit authentication method"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:64
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:69
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:45
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48
|
||||
msgid "Label"
|
||||
msgstr "Label"
|
||||
|
||||
@ -366,7 +384,7 @@ msgstr "Label"
|
||||
msgid "Manager"
|
||||
msgstr "Manager"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:168
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:188
|
||||
msgid "Max"
|
||||
msgstr "Max"
|
||||
|
||||
@ -379,7 +397,7 @@ msgstr "Member"
|
||||
msgid "Message <0>(Optional)</0>"
|
||||
msgstr "Message <0>(Optional)</0>"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:176
|
||||
msgid "Min"
|
||||
msgstr "Min"
|
||||
|
||||
@ -440,7 +458,7 @@ msgstr "No value found."
|
||||
msgid "Number"
|
||||
msgstr "Number"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:100
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:103
|
||||
msgid "Number format"
|
||||
msgstr "Number format"
|
||||
|
||||
@ -460,13 +478,13 @@ msgstr "Page {0} of {1}"
|
||||
msgid "Password Required"
|
||||
msgstr "Password Required"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:154
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:156
|
||||
msgid "Pick a number"
|
||||
msgstr "Pick a number"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:76
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:81
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:57
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:79
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:84
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:60
|
||||
msgid "Placeholder"
|
||||
msgstr "Placeholder"
|
||||
|
||||
@ -479,11 +497,11 @@ msgstr "Radio"
|
||||
msgid "Radio values"
|
||||
msgstr "Radio values"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:184
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:136
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:186
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:147
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:114
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:133
|
||||
msgid "Read only"
|
||||
msgstr "Read only"
|
||||
|
||||
@ -510,11 +528,11 @@ msgstr "Redirect URL"
|
||||
msgid "Remove"
|
||||
msgstr "Remove"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:174
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:127
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:126
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:176
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:146
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:104
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:123
|
||||
msgid "Required field"
|
||||
msgstr "Required field"
|
||||
|
||||
@ -522,7 +540,7 @@ msgstr "Required field"
|
||||
msgid "Rows per page"
|
||||
msgstr "Rows per page"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:286
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:355
|
||||
msgid "Save"
|
||||
msgstr "Save"
|
||||
|
||||
@ -534,7 +552,7 @@ msgstr "Save Template"
|
||||
msgid "Search languages..."
|
||||
msgstr "Search languages..."
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:115
|
||||
msgid "Select"
|
||||
msgstr "Select"
|
||||
|
||||
@ -542,11 +560,11 @@ msgstr "Select"
|
||||
msgid "Select an option"
|
||||
msgstr "Select an option"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:137
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:139
|
||||
msgid "Select at least"
|
||||
msgstr "Select at least"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:95
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
|
||||
msgid "Select default option"
|
||||
msgstr "Select default option"
|
||||
|
||||
@ -744,13 +762,13 @@ msgstr "Upgrade"
|
||||
msgid "Upload Template Document"
|
||||
msgstr "Upload Template Document"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:130
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:147
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:132
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:167
|
||||
msgid "Validation"
|
||||
msgstr "Validation"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:88
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:93
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:91
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:96
|
||||
msgid "Value"
|
||||
msgstr "Value"
|
||||
|
||||
|
||||
1
packages/lib/translations/en/marketing.js
Normal file
1
packages/lib/translations/en/marketing.js
Normal file
File diff suppressed because one or more lines are too long
1
packages/lib/translations/en/web.js
Normal file
1
packages/lib/translations/en/web.js
Normal file
File diff suppressed because one or more lines are too long
@ -73,11 +73,11 @@ msgstr "Ajouter un ID externe au document. Cela peut être utilisé pour identif
|
||||
msgid "Add an external ID to the template. This can be used to identify in external systems."
|
||||
msgstr "Ajouter un ID externe au modèle. Cela peut être utilisé pour identifier dans des systèmes externes."
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:177
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:187
|
||||
msgid "Add another option"
|
||||
msgstr "Ajouter une autre option"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:230
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:232
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167
|
||||
msgid "Add another value"
|
||||
msgstr "Ajouter une autre valeur"
|
||||
@ -98,11 +98,11 @@ msgstr "Ajouter un destinataire de substitution"
|
||||
msgid "Add Signer"
|
||||
msgstr "Ajouter un signataire"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:70
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:73
|
||||
msgid "Add text"
|
||||
msgstr "Ajouter du texte"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:75
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:78
|
||||
msgid "Add text to the field"
|
||||
msgstr "Ajouter du texte au champ"
|
||||
|
||||
@ -148,7 +148,7 @@ msgstr "Noir"
|
||||
msgid "Blue"
|
||||
msgstr "Bleu"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:287
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:356
|
||||
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
@ -174,7 +174,7 @@ msgstr "CC"
|
||||
msgid "CC'd"
|
||||
msgstr "CC'd"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:83
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86
|
||||
msgid "Character Limit"
|
||||
msgstr "Limite de caractères"
|
||||
|
||||
@ -183,7 +183,7 @@ msgstr "Limite de caractères"
|
||||
msgid "Checkbox"
|
||||
msgstr "Case à cocher"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:195
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197
|
||||
msgid "Checkbox values"
|
||||
msgstr "Valeurs de case à cocher"
|
||||
|
||||
@ -261,7 +261,7 @@ msgstr "Faites glisser et déposez votre PDF ici."
|
||||
msgid "Dropdown"
|
||||
msgstr "Liste déroulante"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:148
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:158
|
||||
msgid "Dropdown options"
|
||||
msgstr "Options de liste déroulante"
|
||||
|
||||
@ -295,7 +295,7 @@ msgstr "Activer l'ordre de signature"
|
||||
msgid "Enter password"
|
||||
msgstr "Entrez le mot de passe"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:216
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:257
|
||||
msgid "Error"
|
||||
msgstr "Erreur"
|
||||
|
||||
@ -304,26 +304,44 @@ msgstr "Erreur"
|
||||
msgid "External ID"
|
||||
msgstr "ID externe"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:217
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:258
|
||||
msgid "Failed to save settings."
|
||||
msgstr "Échec de l'enregistrement des paramètres."
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:90
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:93
|
||||
msgid "Field character limit"
|
||||
msgstr "Limite de caractères du champ"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:107
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:62
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:44
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:44
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:44
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:130
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:107
|
||||
msgid "Field font size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:110
|
||||
msgid "Field format"
|
||||
msgstr "Format du champ"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:50
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:53
|
||||
msgid "Field label"
|
||||
msgstr "Étiquette du champ"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:62
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:65
|
||||
msgid "Field placeholder"
|
||||
msgstr "Espace réservé du champ"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:56
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:38
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:38
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:38
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:124
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:101
|
||||
msgid "Font Size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx:64
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Authentification d'action de destinataire globale"
|
||||
@ -361,9 +379,9 @@ msgstr "Je dois recevoir une copie de ce document"
|
||||
msgid "Inherit authentication method"
|
||||
msgstr "Hériter de la méthode d'authentification"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:64
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:69
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:45
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48
|
||||
msgid "Label"
|
||||
msgstr "Étiquette"
|
||||
|
||||
@ -371,7 +389,7 @@ msgstr "Étiquette"
|
||||
msgid "Manager"
|
||||
msgstr "Gestionnaire"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:168
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:188
|
||||
msgid "Max"
|
||||
msgstr "Max"
|
||||
|
||||
@ -384,7 +402,7 @@ msgstr "Membre"
|
||||
msgid "Message <0>(Optional)</0>"
|
||||
msgstr "Message <0>(Optionnel)</0>"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:176
|
||||
msgid "Min"
|
||||
msgstr "Min"
|
||||
|
||||
@ -445,7 +463,7 @@ msgstr "Aucune valeur trouvée."
|
||||
msgid "Number"
|
||||
msgstr "Numéro"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:100
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:103
|
||||
msgid "Number format"
|
||||
msgstr "Format de numéro"
|
||||
|
||||
@ -465,13 +483,13 @@ msgstr "Page {0} sur {1}"
|
||||
msgid "Password Required"
|
||||
msgstr "Mot de passe requis"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:154
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:156
|
||||
msgid "Pick a number"
|
||||
msgstr "Choisissez un numéro"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:76
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:81
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:57
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:79
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:84
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:60
|
||||
msgid "Placeholder"
|
||||
msgstr "Espace réservé"
|
||||
|
||||
@ -484,11 +502,11 @@ msgstr "Radio"
|
||||
msgid "Radio values"
|
||||
msgstr "Valeurs radio"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:184
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:136
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:186
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:147
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:114
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:133
|
||||
msgid "Read only"
|
||||
msgstr "Lecture seule"
|
||||
|
||||
@ -515,11 +533,11 @@ msgstr "URL de redirection"
|
||||
msgid "Remove"
|
||||
msgstr "Retirer"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:174
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:127
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:126
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:176
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:146
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:104
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:123
|
||||
msgid "Required field"
|
||||
msgstr "Champ requis"
|
||||
|
||||
@ -527,7 +545,7 @@ msgstr "Champ requis"
|
||||
msgid "Rows per page"
|
||||
msgstr "Lignes par page"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:286
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:355
|
||||
msgid "Save"
|
||||
msgstr "Sauvegarder"
|
||||
|
||||
@ -539,7 +557,7 @@ msgstr "Sauvegarder le modèle"
|
||||
msgid "Search languages..."
|
||||
msgstr "Rechercher des langues..."
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:115
|
||||
msgid "Select"
|
||||
msgstr "Sélectionner"
|
||||
|
||||
@ -547,11 +565,11 @@ msgstr "Sélectionner"
|
||||
msgid "Select an option"
|
||||
msgstr "Sélectionner une option"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:137
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:139
|
||||
msgid "Select at least"
|
||||
msgstr "Sélectionnez au moins"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:95
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
|
||||
msgid "Select default option"
|
||||
msgstr "Sélectionner l'option par défaut"
|
||||
|
||||
@ -749,13 +767,13 @@ msgstr "Améliorer"
|
||||
msgid "Upload Template Document"
|
||||
msgstr "Télécharger le document modèle"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:130
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:147
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:132
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:167
|
||||
msgid "Validation"
|
||||
msgstr "Validation"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:88
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:93
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:91
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:96
|
||||
msgid "Value"
|
||||
msgstr "Valeur"
|
||||
|
||||
|
||||
1
packages/lib/translations/fr/marketing.js
Normal file
1
packages/lib/translations/fr/marketing.js
Normal file
File diff suppressed because one or more lines are too long
1
packages/lib/translations/fr/web.js
Normal file
1
packages/lib/translations/fr/web.js
Normal file
File diff suppressed because one or more lines are too long
@ -9,10 +9,39 @@ export const ZBaseFieldMeta = z.object({
|
||||
|
||||
export type TBaseFieldMeta = z.infer<typeof ZBaseFieldMeta>;
|
||||
|
||||
export const ZInitialsFieldMeta = z.object({
|
||||
type: z.literal('initials').default('initials'),
|
||||
fontSize: z.number().min(8).max(96).optional(),
|
||||
});
|
||||
|
||||
export type TInitialsFieldMeta = z.infer<typeof ZInitialsFieldMeta>;
|
||||
|
||||
export const ZNameFieldMeta = z.object({
|
||||
type: z.literal('name').default('name'),
|
||||
fontSize: z.number().min(8).max(96).optional(),
|
||||
});
|
||||
|
||||
export type TNameFieldMeta = z.infer<typeof ZNameFieldMeta>;
|
||||
|
||||
export const ZEmailFieldMeta = z.object({
|
||||
type: z.literal('email').default('email'),
|
||||
fontSize: z.number().min(8).max(96).optional(),
|
||||
});
|
||||
|
||||
export type TEmailFieldMeta = z.infer<typeof ZEmailFieldMeta>;
|
||||
|
||||
export const ZDateFieldMeta = z.object({
|
||||
type: z.literal('date').default('date'),
|
||||
fontSize: z.number().min(8).max(96).optional(),
|
||||
});
|
||||
|
||||
export type TDateFieldMeta = z.infer<typeof ZDateFieldMeta>;
|
||||
|
||||
export const ZTextFieldMeta = ZBaseFieldMeta.extend({
|
||||
type: z.literal('text').default('text'),
|
||||
text: z.string().optional(),
|
||||
characterLimit: z.number().optional(),
|
||||
fontSize: z.number().min(8).max(96).optional(),
|
||||
});
|
||||
|
||||
export type TTextFieldMeta = z.infer<typeof ZTextFieldMeta>;
|
||||
@ -23,6 +52,7 @@ export const ZNumberFieldMeta = ZBaseFieldMeta.extend({
|
||||
value: z.string().optional(),
|
||||
minValue: z.number().optional(),
|
||||
maxValue: z.number().optional(),
|
||||
fontSize: z.number().min(8).max(96).optional(),
|
||||
});
|
||||
|
||||
export type TNumberFieldMeta = z.infer<typeof ZNumberFieldMeta>;
|
||||
@ -69,6 +99,10 @@ export type TDropdownFieldMeta = z.infer<typeof ZDropdownFieldMeta>;
|
||||
|
||||
export const ZFieldMetaSchema = z
|
||||
.union([
|
||||
ZBaseFieldMeta.extend(ZInitialsFieldMeta.shape),
|
||||
ZBaseFieldMeta.extend(ZNameFieldMeta.shape),
|
||||
ZBaseFieldMeta.extend(ZEmailFieldMeta.shape),
|
||||
ZBaseFieldMeta.extend(ZDateFieldMeta.shape),
|
||||
ZTextFieldMeta,
|
||||
ZNumberFieldMeta,
|
||||
ZRadioFieldMeta,
|
||||
|
||||
@ -13,8 +13,12 @@ import { match } from 'ts-pattern';
|
||||
import {
|
||||
type TBaseFieldMeta as BaseFieldMeta,
|
||||
type TCheckboxFieldMeta as CheckboxFieldMeta,
|
||||
type TDateFieldMeta as DateFieldMeta,
|
||||
type TDropdownFieldMeta as DropdownFieldMeta,
|
||||
type TEmailFieldMeta as EmailFieldMeta,
|
||||
type TFieldMetaSchema as FieldMeta,
|
||||
type TInitialsFieldMeta as InitialsFieldMeta,
|
||||
type TNameFieldMeta as NameFieldMeta,
|
||||
type TNumberFieldMeta as NumberFieldMeta,
|
||||
type TRadioFieldMeta as RadioFieldMeta,
|
||||
type TTextFieldMeta as TextFieldMeta,
|
||||
@ -33,7 +37,11 @@ import {
|
||||
} from './document-flow-root';
|
||||
import { FieldItem } from './field-item';
|
||||
import { CheckboxFieldAdvancedSettings } from './field-items-advanced-settings/checkbox-field';
|
||||
import { DateFieldAdvancedSettings } from './field-items-advanced-settings/date-field';
|
||||
import { DropdownFieldAdvancedSettings } from './field-items-advanced-settings/dropdown-field';
|
||||
import { EmailFieldAdvancedSettings } from './field-items-advanced-settings/email-field';
|
||||
import { InitialsFieldAdvancedSettings } from './field-items-advanced-settings/initials-field';
|
||||
import { NameFieldAdvancedSettings } from './field-items-advanced-settings/name-field';
|
||||
import { NumberFieldAdvancedSettings } from './field-items-advanced-settings/number-field';
|
||||
import { RadioFieldAdvancedSettings } from './field-items-advanced-settings/radio-field';
|
||||
import { TextFieldAdvancedSettings } from './field-items-advanced-settings/text-field';
|
||||
@ -55,10 +63,34 @@ export type FieldMetaKeys =
|
||||
| keyof NumberFieldMeta
|
||||
| keyof RadioFieldMeta
|
||||
| keyof CheckboxFieldMeta
|
||||
| keyof DropdownFieldMeta;
|
||||
| keyof DropdownFieldMeta
|
||||
| keyof InitialsFieldMeta
|
||||
| keyof NameFieldMeta
|
||||
| keyof EmailFieldMeta
|
||||
| keyof DateFieldMeta;
|
||||
|
||||
const getDefaultState = (fieldType: FieldType): FieldMeta => {
|
||||
switch (fieldType) {
|
||||
case FieldType.INITIALS:
|
||||
return {
|
||||
type: 'initials',
|
||||
fontSize: 14,
|
||||
};
|
||||
case FieldType.NAME:
|
||||
return {
|
||||
type: 'name',
|
||||
fontSize: 14,
|
||||
};
|
||||
case FieldType.EMAIL:
|
||||
return {
|
||||
type: 'email',
|
||||
fontSize: 14,
|
||||
};
|
||||
case FieldType.DATE:
|
||||
return {
|
||||
type: 'date',
|
||||
fontSize: 14,
|
||||
};
|
||||
case FieldType.TEXT:
|
||||
return {
|
||||
type: 'text',
|
||||
@ -66,6 +98,7 @@ const getDefaultState = (fieldType: FieldType): FieldMeta => {
|
||||
placeholder: '',
|
||||
text: '',
|
||||
characterLimit: 0,
|
||||
fontSize: 14,
|
||||
required: false,
|
||||
readOnly: false,
|
||||
};
|
||||
@ -80,6 +113,7 @@ const getDefaultState = (fieldType: FieldType): FieldMeta => {
|
||||
maxValue: 0,
|
||||
required: false,
|
||||
readOnly: false,
|
||||
fontSize: 14,
|
||||
};
|
||||
case FieldType.RADIO:
|
||||
return {
|
||||
@ -180,10 +214,17 @@ export const FieldAdvancedSettings = forwardRef<HTMLDivElement, FieldAdvancedSet
|
||||
|
||||
const handleFieldChange = (
|
||||
key: FieldMetaKeys,
|
||||
value: string | { checked: boolean; value: string }[] | { value: string }[] | boolean,
|
||||
value:
|
||||
| string
|
||||
| { checked: boolean; value: string }[]
|
||||
| { value: string }[]
|
||||
| boolean
|
||||
| number,
|
||||
) => {
|
||||
setFieldState((prevState: FieldMeta) => {
|
||||
if (['characterLimit', 'minValue', 'maxValue', 'validationLength'].includes(key)) {
|
||||
if (
|
||||
['characterLimit', 'minValue', 'maxValue', 'validationLength', 'fontSize'].includes(key)
|
||||
) {
|
||||
const parsedValue = Number(value);
|
||||
|
||||
return {
|
||||
@ -232,6 +273,35 @@ export const FieldAdvancedSettings = forwardRef<HTMLDivElement, FieldAdvancedSet
|
||||
))}
|
||||
|
||||
{match(field.type)
|
||||
.with(FieldType.INITIALS, () => (
|
||||
<InitialsFieldAdvancedSettings
|
||||
fieldState={fieldState}
|
||||
handleFieldChange={handleFieldChange}
|
||||
handleErrors={setErrors}
|
||||
/>
|
||||
))
|
||||
.with(FieldType.NAME, () => (
|
||||
<NameFieldAdvancedSettings
|
||||
fieldState={fieldState}
|
||||
handleFieldChange={handleFieldChange}
|
||||
handleErrors={setErrors}
|
||||
/>
|
||||
))
|
||||
.with(FieldType.EMAIL, () => (
|
||||
<EmailFieldAdvancedSettings
|
||||
fieldState={fieldState}
|
||||
handleFieldChange={handleFieldChange}
|
||||
handleErrors={setErrors}
|
||||
/>
|
||||
))
|
||||
.with(FieldType.DATE, () => (
|
||||
<DateFieldAdvancedSettings
|
||||
fieldState={fieldState}
|
||||
handleFieldChange={handleFieldChange}
|
||||
handleErrors={setErrors}
|
||||
/>
|
||||
))
|
||||
|
||||
.with(FieldType.TEXT, () => (
|
||||
<TextFieldAdvancedSettings
|
||||
fieldState={fieldState}
|
||||
@ -268,7 +338,6 @@ export const FieldAdvancedSettings = forwardRef<HTMLDivElement, FieldAdvancedSet
|
||||
/>
|
||||
))
|
||||
.otherwise(() => null)}
|
||||
|
||||
{errors.length > 0 && (
|
||||
<div className="mt-4">
|
||||
<ul>
|
||||
|
||||
@ -76,7 +76,17 @@ export const FieldItem = ({
|
||||
|
||||
const signerStyles = useSignerColors(recipientIndex);
|
||||
|
||||
const advancedField = ['NUMBER', 'RADIO', 'CHECKBOX', 'DROPDOWN', 'TEXT'].includes(field.type);
|
||||
const advancedField = [
|
||||
'NUMBER',
|
||||
'RADIO',
|
||||
'CHECKBOX',
|
||||
'DROPDOWN',
|
||||
'TEXT',
|
||||
'INITIALS',
|
||||
'EMAIL',
|
||||
'DATE',
|
||||
'NAME',
|
||||
].includes(field.type);
|
||||
|
||||
const calculateCoords = useCallback(() => {
|
||||
const $page = document.querySelector<HTMLElement>(
|
||||
|
||||
@ -66,6 +66,7 @@ export const CheckboxFieldAdvancedSettings = ({
|
||||
required,
|
||||
validationRule,
|
||||
validationLength,
|
||||
type: 'checkbox',
|
||||
},
|
||||
);
|
||||
handleErrors(errors);
|
||||
@ -86,6 +87,7 @@ export const CheckboxFieldAdvancedSettings = ({
|
||||
required,
|
||||
validationRule,
|
||||
validationLength,
|
||||
type: 'checkbox',
|
||||
},
|
||||
);
|
||||
handleErrors(errors);
|
||||
|
||||
@ -0,0 +1,71 @@
|
||||
import { Trans, msg } from '@lingui/macro';
|
||||
import { useLingui } from '@lingui/react';
|
||||
|
||||
import { validateFields as validateDateFields } from '@documenso/lib/advanced-fields-validation/validate-fields';
|
||||
import { type TDateFieldMeta as DateFieldMeta } from '@documenso/lib/types/field-meta';
|
||||
import { Input } from '@documenso/ui/primitives/input';
|
||||
import { Label } from '@documenso/ui/primitives/label';
|
||||
|
||||
type DateFieldAdvancedSettingsProps = {
|
||||
fieldState: DateFieldMeta;
|
||||
handleFieldChange: (key: keyof DateFieldMeta, value: string | boolean) => void;
|
||||
handleErrors: (errors: string[]) => void;
|
||||
};
|
||||
|
||||
export const DateFieldAdvancedSettings = ({
|
||||
fieldState,
|
||||
handleFieldChange,
|
||||
handleErrors,
|
||||
}: DateFieldAdvancedSettingsProps) => {
|
||||
const { _ } = useLingui();
|
||||
|
||||
// const handleInput = (field: keyof DateFieldMeta, value: string | boolean) => {
|
||||
// if (field === 'fontSize') {
|
||||
// const fontSize = value === '' ? '' : Number(value);
|
||||
// if (typeof fontSize === 'number' && !Number.isNaN(fontSize)) {
|
||||
// const errors = validateDateFields({
|
||||
// fontSize,
|
||||
// type: 'date',
|
||||
// });
|
||||
// handleErrors(errors);
|
||||
// handleFieldChange(field, fontSize.toString());
|
||||
// } else {
|
||||
// handleErrors(['Invalid font size']);
|
||||
// }
|
||||
// } else {
|
||||
// handleFieldChange(field, value);
|
||||
// }
|
||||
// };
|
||||
|
||||
const handleInput = (field: keyof DateFieldMeta, value: string | boolean) => {
|
||||
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
|
||||
|
||||
const errors = validateDateFields({
|
||||
fontSize,
|
||||
type: 'date',
|
||||
});
|
||||
|
||||
handleErrors(errors);
|
||||
handleFieldChange(field, value);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-4">
|
||||
<div>
|
||||
<Label>
|
||||
<Trans>Font Size</Trans>
|
||||
</Label>
|
||||
<Input
|
||||
id="fontSize"
|
||||
type="number"
|
||||
className="bg-background mt-2"
|
||||
placeholder={_(msg`Field font size`)}
|
||||
value={fieldState.fontSize}
|
||||
onChange={(e) => handleInput('fontSize', e.target.value)}
|
||||
min={8}
|
||||
max={96}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@ -62,7 +62,12 @@ export const DropdownFieldAdvancedSettings = ({
|
||||
setReadOnly(readOnly);
|
||||
setRequired(required);
|
||||
|
||||
const errors = validateDropdownField(undefined, { readOnly, required, values });
|
||||
const errors = validateDropdownField(undefined, {
|
||||
readOnly,
|
||||
required,
|
||||
values,
|
||||
type: 'dropdown',
|
||||
});
|
||||
handleErrors(errors);
|
||||
|
||||
handleFieldChange(field, value);
|
||||
@ -76,7 +81,12 @@ export const DropdownFieldAdvancedSettings = ({
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
const errors = validateDropdownField(undefined, { readOnly, required, values });
|
||||
const errors = validateDropdownField(undefined, {
|
||||
readOnly,
|
||||
required,
|
||||
values,
|
||||
type: 'dropdown',
|
||||
});
|
||||
handleErrors(errors);
|
||||
}, [values]);
|
||||
|
||||
|
||||
@ -0,0 +1,53 @@
|
||||
import { Trans, msg } from '@lingui/macro';
|
||||
import { useLingui } from '@lingui/react';
|
||||
|
||||
import { validateFields as validateEmailFields } from '@documenso/lib/advanced-fields-validation/validate-fields';
|
||||
import { type TEmailFieldMeta as EmailFieldMeta } from '@documenso/lib/types/field-meta';
|
||||
import { Input } from '@documenso/ui/primitives/input';
|
||||
import { Label } from '@documenso/ui/primitives/label';
|
||||
|
||||
type EmailFieldAdvancedSettingsProps = {
|
||||
fieldState: EmailFieldMeta;
|
||||
handleFieldChange: (key: keyof EmailFieldMeta, value: string | boolean) => void;
|
||||
handleErrors: (errors: string[]) => void;
|
||||
};
|
||||
|
||||
export const EmailFieldAdvancedSettings = ({
|
||||
fieldState,
|
||||
handleFieldChange,
|
||||
handleErrors,
|
||||
}: EmailFieldAdvancedSettingsProps) => {
|
||||
const { _ } = useLingui();
|
||||
|
||||
const handleInput = (field: keyof EmailFieldMeta, value: string | boolean) => {
|
||||
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
|
||||
|
||||
const errors = validateEmailFields({
|
||||
fontSize,
|
||||
type: 'email',
|
||||
});
|
||||
|
||||
handleErrors(errors);
|
||||
handleFieldChange(field, value);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-4">
|
||||
<div>
|
||||
<Label>
|
||||
<Trans>Font Size</Trans>
|
||||
</Label>
|
||||
<Input
|
||||
id="fontSize"
|
||||
type="number"
|
||||
className="bg-background mt-2"
|
||||
placeholder={_(msg`Field font size`)}
|
||||
value={fieldState.fontSize}
|
||||
onChange={(e) => handleInput('fontSize', e.target.value)}
|
||||
min={8}
|
||||
max={96}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@ -0,0 +1,53 @@
|
||||
import { Trans, msg } from '@lingui/macro';
|
||||
import { useLingui } from '@lingui/react';
|
||||
|
||||
import { validateFields as validateInitialsFields } from '@documenso/lib/advanced-fields-validation/validate-fields';
|
||||
import { type TInitialsFieldMeta as InitialsFieldMeta } from '@documenso/lib/types/field-meta';
|
||||
import { Input } from '@documenso/ui/primitives/input';
|
||||
import { Label } from '@documenso/ui/primitives/label';
|
||||
|
||||
type InitialsFieldAdvancedSettingsProps = {
|
||||
fieldState: InitialsFieldMeta;
|
||||
handleFieldChange: (key: keyof InitialsFieldMeta, value: string | boolean) => void;
|
||||
handleErrors: (errors: string[]) => void;
|
||||
};
|
||||
|
||||
export const InitialsFieldAdvancedSettings = ({
|
||||
fieldState,
|
||||
handleFieldChange,
|
||||
handleErrors,
|
||||
}: InitialsFieldAdvancedSettingsProps) => {
|
||||
const { _ } = useLingui();
|
||||
|
||||
const handleInput = (field: keyof InitialsFieldMeta, value: string | boolean) => {
|
||||
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
|
||||
|
||||
const errors = validateInitialsFields({
|
||||
fontSize,
|
||||
type: 'initials',
|
||||
});
|
||||
|
||||
handleErrors(errors);
|
||||
handleFieldChange(field, value);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-4">
|
||||
<div>
|
||||
<Label>
|
||||
<Trans>Font Size</Trans>
|
||||
</Label>
|
||||
<Input
|
||||
id="fontSize"
|
||||
type="number"
|
||||
className="bg-background mt-2"
|
||||
placeholder={_(msg`Field font size`)}
|
||||
value={fieldState.fontSize}
|
||||
onChange={(e) => handleInput('fontSize', e.target.value)}
|
||||
min={8}
|
||||
max={96}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@ -0,0 +1,53 @@
|
||||
import { Trans, msg } from '@lingui/macro';
|
||||
import { useLingui } from '@lingui/react';
|
||||
|
||||
import { validateFields as validateNameFields } from '@documenso/lib/advanced-fields-validation/validate-fields';
|
||||
import { type TNameFieldMeta as NameFieldMeta } from '@documenso/lib/types/field-meta';
|
||||
import { Input } from '@documenso/ui/primitives/input';
|
||||
import { Label } from '@documenso/ui/primitives/label';
|
||||
|
||||
type NameFieldAdvancedSettingsProps = {
|
||||
fieldState: NameFieldMeta;
|
||||
handleFieldChange: (key: keyof NameFieldMeta, value: string | boolean) => void;
|
||||
handleErrors: (errors: string[]) => void;
|
||||
};
|
||||
|
||||
export const NameFieldAdvancedSettings = ({
|
||||
fieldState,
|
||||
handleFieldChange,
|
||||
handleErrors,
|
||||
}: NameFieldAdvancedSettingsProps) => {
|
||||
const { _ } = useLingui();
|
||||
|
||||
const handleInput = (field: keyof NameFieldMeta, value: string | boolean) => {
|
||||
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
|
||||
|
||||
const errors = validateNameFields({
|
||||
fontSize,
|
||||
type: 'name',
|
||||
});
|
||||
|
||||
handleErrors(errors);
|
||||
handleFieldChange(field, value);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-4">
|
||||
<div>
|
||||
<Label>
|
||||
<Trans>Font Size</Trans>
|
||||
</Label>
|
||||
<Input
|
||||
id="fontSize"
|
||||
type="number"
|
||||
className="bg-background mt-2"
|
||||
placeholder={_(msg`Field font size`)}
|
||||
value={fieldState.fontSize}
|
||||
onChange={(e) => handleInput('fontSize', e.target.value)}
|
||||
min={8}
|
||||
max={96}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@ -38,12 +38,13 @@ export const NumberFieldAdvancedSettings = ({
|
||||
const [showValidation, setShowValidation] = useState(false);
|
||||
|
||||
const handleInput = (field: keyof NumberFieldMeta, value: string | boolean) => {
|
||||
const userValue = field === 'value' ? value : fieldState.value || 0;
|
||||
const userMinValue = field === 'minValue' ? Number(value) : Number(fieldState.minValue || 0);
|
||||
const userMaxValue = field === 'maxValue' ? Number(value) : Number(fieldState.maxValue || 0);
|
||||
const userValue = field === 'value' ? value : fieldState.value ?? 0;
|
||||
const userMinValue = field === 'minValue' ? Number(value) : Number(fieldState.minValue ?? 0);
|
||||
const userMaxValue = field === 'maxValue' ? Number(value) : Number(fieldState.maxValue ?? 0);
|
||||
const readOnly = field === 'readOnly' ? Boolean(value) : Boolean(fieldState.readOnly);
|
||||
const required = field === 'required' ? Boolean(value) : Boolean(fieldState.required);
|
||||
const numberFormat = field === 'numberFormat' ? String(value) : fieldState.numberFormat || '';
|
||||
const numberFormat = field === 'numberFormat' ? String(value) : fieldState.numberFormat ?? '';
|
||||
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
|
||||
|
||||
const valueErrors = validateNumberField(String(userValue), {
|
||||
minValue: userMinValue,
|
||||
@ -51,6 +52,8 @@ export const NumberFieldAdvancedSettings = ({
|
||||
readOnly,
|
||||
required,
|
||||
numberFormat,
|
||||
fontSize,
|
||||
type: 'number',
|
||||
});
|
||||
handleErrors(valueErrors);
|
||||
|
||||
@ -115,6 +118,23 @@ export const NumberFieldAdvancedSettings = ({
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Label>
|
||||
<Trans>Font Size</Trans>
|
||||
</Label>
|
||||
<Input
|
||||
id="fontSize"
|
||||
type="number"
|
||||
className="bg-background mt-2"
|
||||
placeholder={_(msg`Field font size`)}
|
||||
value={fieldState.fontSize}
|
||||
onChange={(e) => handleInput('fontSize', e.target.value)}
|
||||
min={8}
|
||||
max={96}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="mt-2 flex flex-col gap-4">
|
||||
<div className="flex flex-row items-center gap-2">
|
||||
<Switch
|
||||
|
||||
@ -70,7 +70,7 @@ export const RadioFieldAdvancedSettings = ({
|
||||
setReadOnly(readOnly);
|
||||
setRequired(required);
|
||||
|
||||
const errors = validateRadioField(String(value), { readOnly, required, values });
|
||||
const errors = validateRadioField(String(value), { readOnly, required, values, type: 'radio' });
|
||||
handleErrors(errors);
|
||||
|
||||
handleFieldChange(field, value);
|
||||
@ -95,7 +95,7 @@ export const RadioFieldAdvancedSettings = ({
|
||||
}, [fieldState.values]);
|
||||
|
||||
useEffect(() => {
|
||||
const errors = validateRadioField(undefined, { readOnly, required, values });
|
||||
const errors = validateRadioField(undefined, { readOnly, required, values, type: 'radio' });
|
||||
handleErrors(errors);
|
||||
}, [values]);
|
||||
|
||||
|
||||
@ -22,9 +22,10 @@ export const TextFieldAdvancedSettings = ({
|
||||
const { _ } = useLingui();
|
||||
|
||||
const handleInput = (field: keyof TextFieldMeta, value: string | boolean) => {
|
||||
const text = field === 'text' ? String(value) : fieldState.text || '';
|
||||
const text = field === 'text' ? String(value) : fieldState.text ?? '';
|
||||
const limit =
|
||||
field === 'characterLimit' ? Number(value) : Number(fieldState.characterLimit || 0);
|
||||
field === 'characterLimit' ? Number(value) : Number(fieldState.characterLimit ?? 0);
|
||||
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
|
||||
const readOnly = field === 'readOnly' ? Boolean(value) : Boolean(fieldState.readOnly);
|
||||
const required = field === 'required' ? Boolean(value) : Boolean(fieldState.required);
|
||||
|
||||
@ -32,6 +33,8 @@ export const TextFieldAdvancedSettings = ({
|
||||
characterLimit: Number(limit),
|
||||
readOnly,
|
||||
required,
|
||||
fontSize,
|
||||
type: 'text',
|
||||
});
|
||||
|
||||
handleErrors(textErrors);
|
||||
@ -93,6 +96,22 @@ export const TextFieldAdvancedSettings = ({
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Label>
|
||||
<Trans>Font Size</Trans>
|
||||
</Label>
|
||||
<Input
|
||||
id="fontSize"
|
||||
type="number"
|
||||
className="bg-background mt-2"
|
||||
placeholder={_(msg`Field font size`)}
|
||||
value={fieldState.fontSize}
|
||||
onChange={(e) => handleInput('fontSize', e.target.value)}
|
||||
min={8}
|
||||
max={96}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="mt-4 flex flex-col gap-4">
|
||||
<div className="flex flex-row items-center gap-2">
|
||||
<Switch
|
||||
|
||||
Reference in New Issue
Block a user