@10x-media/form-builder 0.1.0-beta.5 → 0.1.0-beta.7
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/CHANGELOG.md +102 -0
- package/dist/actions/buildActionBlocks.js +12 -9
- package/dist/actions/buildActionBlocks.js.map +1 -1
- package/dist/actions/builtin/confirmation.js +27 -79
- package/dist/actions/builtin/confirmation.js.map +1 -1
- package/dist/actions/builtin/emailAction.d.ts +17 -0
- package/dist/actions/builtin/emailAction.js +83 -0
- package/dist/actions/builtin/emailAction.js.map +1 -0
- package/dist/actions/builtin/emailTeam.js +14 -84
- package/dist/actions/builtin/emailTeam.js.map +1 -1
- package/dist/actions/builtin/index.d.ts +9 -11
- package/dist/actions/builtin/index.js +11 -11
- package/dist/actions/builtin/index.js.map +1 -1
- package/dist/actions/defineAction.d.ts +2 -2
- package/dist/actions/defineAction.js.map +1 -1
- package/dist/actions/emailRecipients.d.ts +12 -0
- package/dist/actions/emailRecipients.js +116 -0
- package/dist/actions/emailRecipients.js.map +1 -0
- package/dist/actions/registry.d.ts +2 -1
- package/dist/actions/registry.js +2 -6
- package/dist/actions/registry.js.map +1 -1
- package/dist/actions/task.js +5 -3
- package/dist/actions/task.js.map +1 -1
- package/dist/calc/evaluate.js +1 -2
- package/dist/calc/evaluate.js.map +1 -1
- package/dist/calc/normalizeCalc.js +1 -2
- package/dist/calc/normalizeCalc.js.map +1 -1
- package/dist/calc/types.js.map +1 -1
- package/dist/client/ConsentBlockLabel.d.ts +15 -0
- package/dist/client/ConsentBlockLabel.js +71 -0
- package/dist/client/ConsentBlockLabel.js.map +1 -0
- package/dist/client/ConsentSourceRowLabel.d.ts +9 -0
- package/dist/client/ConsentSourceRowLabel.js +21 -0
- package/dist/client/ConsentSourceRowLabel.js.map +1 -0
- package/dist/client/EndpointOptionsSelect.d.ts +1 -0
- package/dist/client/EndpointOptionsSelect.js +4 -1
- package/dist/client/EndpointOptionsSelect.js.map +1 -1
- package/dist/client/FieldNameSelect.d.ts +1 -0
- package/dist/client/FieldNameSelect.js +4 -1
- package/dist/client/FieldNameSelect.js.map +1 -1
- package/dist/client/RecipientsSelect.d.ts +31 -0
- package/dist/client/RecipientsSelect.js +174 -0
- package/dist/client/RecipientsSelect.js.map +1 -0
- package/dist/client/admin.css +5 -0
- package/dist/collections/buttonFields.js +1 -1
- package/dist/collections/formSubmissions.js +4 -2
- package/dist/collections/formSubmissions.js.map +1 -1
- package/dist/collections/forms.js +46 -99
- package/dist/collections/forms.js.map +1 -1
- package/dist/collections/formsEndpoints.js +101 -0
- package/dist/collections/formsEndpoints.js.map +1 -0
- package/dist/conditions/evaluate.js +1 -1
- package/dist/conditions/evaluate.js.map +1 -1
- package/dist/conditions/fieldTypes.d.ts +3 -1
- package/dist/conditions/fieldTypes.js +4 -1
- package/dist/conditions/fieldTypes.js.map +1 -1
- package/dist/conditions/normalizeConditions.js +18 -5
- package/dist/conditions/normalizeConditions.js.map +1 -1
- package/dist/consent/captureConsent.d.ts +21 -5
- package/dist/consent/captureConsent.js +31 -7
- package/dist/consent/captureConsent.js.map +1 -1
- package/dist/consent/consentSourcesField.d.ts +8 -0
- package/dist/consent/consentSourcesField.js +13 -2
- package/dist/consent/consentSourcesField.js.map +1 -1
- package/dist/consent/resolveConsentEntries.d.ts +1 -1
- package/dist/consent/resolveConsentEntries.js +1 -4
- package/dist/consent/resolveConsentEntries.js.map +1 -1
- package/dist/consent/resolveConsentSourcesRequest.js +0 -1
- package/dist/consent/resolveConsentSourcesRequest.js.map +1 -1
- package/dist/consent/resolveConsentStatements.d.ts +1 -1
- package/dist/consent/resolveConsentStatements.js.map +1 -1
- package/dist/consent/types.d.ts +13 -1
- package/dist/email/departments.d.ts +13 -9
- package/dist/email/departments.js +7 -50
- package/dist/email/departments.js.map +1 -1
- package/dist/email/departmentsField.d.ts +4 -0
- package/dist/email/departmentsField.js +5 -1
- package/dist/email/departmentsField.js.map +1 -1
- package/dist/exports/client.d.ts +4 -1
- package/dist/exports/client.js +4 -1
- package/dist/exports/react.d.ts +3 -2
- package/dist/exports/react.js +4 -3
- package/dist/exports/rsc.js +1 -1
- package/dist/exports/types.d.ts +1 -1
- package/dist/fields/buildFieldBlocks.js +4 -4
- package/dist/fields/buildFieldBlocks.js.map +1 -1
- package/dist/fields/builtin/consent.js +6 -1
- package/dist/fields/builtin/consent.js.map +1 -1
- package/dist/fields/builtin/email.js +1 -1
- package/dist/fields/builtin/email.js.map +1 -1
- package/dist/fields/builtin/file.js +9 -3
- package/dist/fields/builtin/file.js.map +1 -1
- package/dist/fields/builtin/index.d.ts +1 -1
- package/dist/fields/builtin/index.js +3 -3
- package/dist/fields/builtin/index.js.map +1 -1
- package/dist/fields/builtin/message.js +1 -1
- package/dist/fields/builtin/repeater.js +1 -1
- package/dist/fields/builtin/select.js +1 -1
- package/dist/fields/registry.d.ts +2 -1
- package/dist/fields/registry.js +2 -6
- package/dist/fields/registry.js.map +1 -1
- package/dist/fields/sharedConfig.js +1 -1
- package/dist/fields/types.d.ts +9 -2
- package/dist/flow/normalizeFlow.js +7 -3
- package/dist/flow/normalizeFlow.js.map +1 -1
- package/dist/form/toFormDocument.d.ts +20 -3
- package/dist/form/toFormDocument.js +16 -4
- package/dist/form/toFormDocument.js.map +1 -1
- package/dist/form/types.d.ts +5 -5
- package/dist/index.d.ts +5 -193
- package/dist/index.js +18 -8
- package/dist/index.js.map +1 -1
- package/dist/options.d.ts +228 -0
- package/dist/plugin/applyRegistryConfig.d.ts +11 -0
- package/dist/plugin/applyRegistryConfig.js +20 -0
- package/dist/plugin/applyRegistryConfig.js.map +1 -0
- package/dist/plugin/registerCollections.js +3 -1
- package/dist/plugin/registerCollections.js.map +1 -1
- package/dist/plugin/uploadsCollection.d.ts +3 -0
- package/dist/plugin/uploadsCollection.js +10 -1
- package/dist/plugin/uploadsCollection.js.map +1 -1
- package/dist/poll/buildPollOptionSourceFields.js +2 -2
- package/dist/poll/buildPollOptionSourceFields.js.map +1 -1
- package/dist/poll/definePollOptionSource.d.ts +2 -2
- package/dist/poll/definePollOptionSource.js.map +1 -1
- package/dist/poll/pollTypeRegistry.js +2 -4
- package/dist/poll/pollTypeRegistry.js.map +1 -1
- package/dist/poll/registry.d.ts +2 -1
- package/dist/poll/registry.js +2 -6
- package/dist/poll/registry.js.map +1 -1
- package/dist/poll/resolvePollOptionsRequest.js +0 -1
- package/dist/poll/resolvePollOptionsRequest.js.map +1 -1
- package/dist/prefill/valuesFromSearchParams.js +2 -7
- package/dist/prefill/valuesFromSearchParams.js.map +1 -1
- package/dist/react/Form.d.ts +3 -1
- package/dist/react/Form.js +93 -155
- package/dist/react/Form.js.map +1 -1
- package/dist/react/FormContext.d.ts +5 -1
- package/dist/react/FormContext.js.map +1 -1
- package/dist/react/FormFields.d.ts +18 -0
- package/dist/react/FormFields.js +114 -0
- package/dist/react/FormFields.js.map +1 -0
- package/dist/react/FormLayout.d.ts +4 -2
- package/dist/react/FormLayout.js +3 -2
- package/dist/react/FormLayout.js.map +1 -1
- package/dist/react/Poll.js +13 -3
- package/dist/react/Poll.js.map +1 -1
- package/dist/react/presentation/DialogSurface.js +1 -4
- package/dist/react/presentation/DialogSurface.js.map +1 -1
- package/dist/react/renderers/calculation.js +1 -3
- package/dist/react/renderers/calculation.js.map +1 -1
- package/dist/react/renderers/checkbox.js +1 -3
- package/dist/react/renderers/checkbox.js.map +1 -1
- package/dist/react/renderers/consent.js +2 -3
- package/dist/react/renderers/consent.js.map +1 -1
- package/dist/react/renderers/date.js +1 -3
- package/dist/react/renderers/date.js.map +1 -1
- package/dist/react/renderers/email.js +1 -3
- package/dist/react/renderers/email.js.map +1 -1
- package/dist/react/renderers/file.js +6 -7
- package/dist/react/renderers/file.js.map +1 -1
- package/dist/react/renderers/number.js +1 -3
- package/dist/react/renderers/number.js.map +1 -1
- package/dist/react/renderers/region.js +1 -3
- package/dist/react/renderers/region.js.map +1 -1
- package/dist/react/renderers/repeater.js +20 -4
- package/dist/react/renderers/repeater.js.map +1 -1
- package/dist/react/renderers/select.js +1 -3
- package/dist/react/renderers/select.js.map +1 -1
- package/dist/react/renderers/text.js +1 -3
- package/dist/react/renderers/text.js.map +1 -1
- package/dist/react/renderers/textarea.js +1 -3
- package/dist/react/renderers/textarea.js.map +1 -1
- package/dist/spam/constants.js +7 -1
- package/dist/spam/constants.js.map +1 -1
- package/dist/spam/resolveSpam.js +2 -1
- package/dist/spam/resolveSpam.js.map +1 -1
- package/dist/spam/spamGuard.js +22 -6
- package/dist/spam/spamGuard.js.map +1 -1
- package/dist/spam/types.d.ts +17 -2
- package/dist/submissions/SubmissionAnswers.js.map +1 -1
- package/dist/submissions/SubmissionAnswersClient.js +33 -26
- package/dist/submissions/SubmissionAnswersClient.js.map +1 -1
- package/dist/submissions/coerceBoolean.js +14 -0
- package/dist/submissions/coerceBoolean.js.map +1 -0
- package/dist/submissions/runSubmission.js +9 -8
- package/dist/submissions/runSubmission.js.map +1 -1
- package/dist/submissions/validateSubmission.js +4 -2
- package/dist/submissions/validateSubmission.js.map +1 -1
- package/dist/translations/de.js +14 -2
- package/dist/translations/de.js.map +1 -1
- package/dist/translations/en.js +14 -2
- package/dist/translations/en.js.map +1 -1
- package/dist/translations/keys.d.ts +14 -2
- package/dist/translations/keys.js +14 -2
- package/dist/translations/keys.js.map +1 -1
- package/dist/translations/server.js +8 -1
- package/dist/translations/server.js.map +1 -1
- package/dist/uploads/captureFileRef.d.ts +10 -3
- package/dist/uploads/captureFileRef.js +18 -9
- package/dist/uploads/captureFileRef.js.map +1 -1
- package/dist/uploads/resolveFileRef.js +2 -1
- package/dist/uploads/resolveFileRef.js.map +1 -1
- package/dist/validation/builtin/email.js +1 -1
- package/dist/validation/builtin/email.js.map +1 -1
- package/dist/validation/builtin/notAlreadySubmitted.js +1 -0
- package/dist/validation/builtin/notAlreadySubmitted.js.map +1 -1
- package/dist/validation/emailPattern.js +10 -0
- package/dist/validation/emailPattern.js.map +1 -0
- package/dist/validation/registry.d.ts +2 -1
- package/dist/validation/registry.js +2 -9
- package/dist/validation/registry.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"de.js","names":[],"sources":["../../src/translations/de.ts"],"sourcesContent":["import { keys, type TranslationKey } from './keys'\n\n/**\n * German values, keyed by the typed constants in `keys.ts` so the two stay in\n * lockstep. The `Record<TranslationKey, string>` annotation makes a missing or\n * unknown key a type error. `translations/index.ts` nests these for Payload.\n */\nexport const de: Record<TranslationKey, string> = {\n\t[keys.fieldTitle]: 'Titel',\n\t[keys.fieldTypeText]: 'Text',\n\t[keys.fieldTypeTextarea]: 'Textarea',\n\t[keys.fieldTypeEmail]: 'E-Mail',\n\t[keys.fieldTypeNumber]: 'Zahl',\n\t[keys.fieldTypeSelect]: 'Auswahl',\n\t[keys.fieldTypeCountry]: 'Land',\n\t[keys.fieldTypeState]: 'Bundesstaat',\n\t[keys.fieldTypeCheckbox]: 'Checkbox',\n\t[keys.fieldTypeDate]: 'Datum',\n\t[keys.configOptions]: 'Optionen',\n\t[keys.configOption]: 'Option',\n\t[keys.configOptionLabel]: 'Bezeichnung',\n\t[keys.configOptionValue]: 'Wert',\n\t[keys.validationRequired]: 'Dieses Feld ist erforderlich',\n\t[keys.validationEmail]: 'Gib eine gültige E-Mail-Adresse ein',\n\t[keys.validationNumber]: 'Gib eine gültige Zahl ein',\n\t[keys.validationDate]: 'Gib ein gültiges Datum ein',\n\t[keys.validationSelect]: 'Wähle eine gültige Option',\n\t[keys.validationCountry]: 'Wähle ein gültiges Land',\n\t[keys.validationState]: 'Wähle einen gültigen Bundesstaat',\n\t[keys.validationRegexPattern]: 'Gib einen gültigen regulären Ausdruck ein',\n\t[keys.validationRegexFlags]:\n\t\t'Gib gültige Flags für reguläre Ausdrücke ein, zum Beispiel i oder gi',\n\t[keys.validationEmailFieldUnknown]: 'Wähle ein bestehendes E-Mail-Feld dieses Formulars',\n\t[keys.validationResultsFieldUnknown]: 'Wähle ein geeignetes Auswahlfeld dieses Formulars',\n\t[keys.formatYes]: 'Ja',\n\t[keys.formatNo]: 'Nein',\n\t[keys.configName]: 'Name',\n\t[keys.configLabel]: 'Bezeichnung',\n\t[keys.configRequired]: 'Erforderlich',\n\t[keys.configWidth]: 'Breite',\n\t[keys.configPlaceholder]: 'Platzhalter',\n\t[keys.configDescription]: 'Beschreibung',\n\t[keys.configVisibleWhen]: 'Dieses Feld anzeigen, wenn',\n\t[keys.configValidateWhen]: 'Dieses Feld nur validieren, wenn',\n\t[keys.submissionAnswers]: 'Antworten',\n\t[keys.submissionNoAnswers]: 'Keine Antworten',\n\t[keys.ruleMinLength]: 'Minimale Länge',\n\t[keys.ruleMaxLength]: 'Maximale Länge',\n\t[keys.ruleMin]: 'Minimum',\n\t[keys.ruleMax]: 'Maximum',\n\t[keys.ruleMinDate]: 'Frühestes Datum',\n\t[keys.ruleMaxDate]: 'Spätestes Datum',\n\t[keys.rulePattern]: 'Muster',\n\t[keys.ruleEmail]: 'E-Mail',\n\t[keys.ruleUrl]: 'URL',\n\t[keys.ruleOneOf]: 'Wert aus Liste',\n\t[keys.ruleMatchesField]: 'Stimmt mit Feld überein',\n\t[keys.ruleNotAlreadySubmitted]: 'Noch nicht übermittelt',\n\t[keys.ruleMinLengthMessage]: 'Muss mindestens {min} Zeichen lang sein',\n\t[keys.ruleMaxLengthMessage]: 'Darf höchstens {max} Zeichen lang sein',\n\t[keys.ruleMinMessage]: 'Muss mindestens {min} betragen',\n\t[keys.ruleMaxMessage]: 'Darf höchstens {max} betragen',\n\t[keys.ruleMinDateMessage]: 'Muss am oder nach dem {min} liegen',\n\t[keys.ruleMaxDateMessage]: 'Muss am oder vor dem {max} liegen',\n\t[keys.rulePatternMessage]: 'Ungültiges Format',\n\t[keys.ruleEmailMessage]: 'Gib eine gültige E-Mail-Adresse ein',\n\t[keys.ruleUrlMessage]: 'Gib eine gültige URL ein',\n\t[keys.ruleOneOfMessage]: 'Wähle einen zulässigen Wert',\n\t[keys.ruleMatchesFieldMessage]: 'Stimmt nicht überein',\n\t[keys.ruleNotAlreadySubmittedMessage]: 'Dieser Wert wurde bereits übermittelt',\n\t[keys.ruleMinLengthDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Text kürzer als die Mindestanzahl an Zeichen ist.',\n\t[keys.ruleMaxLengthDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Text länger als die maximale Anzahl an Zeichen ist.',\n\t[keys.ruleMinDescription]: 'Schlägt fehl, wenn die eingegebene Zahl unter dem Minimum liegt.',\n\t[keys.ruleMaxDescription]: 'Schlägt fehl, wenn die eingegebene Zahl über dem Maximum liegt.',\n\t[keys.ruleMinDateDescription]:\n\t\t'Schlägt fehl, wenn das gewählte Datum vor dem frühesten Datum liegt.',\n\t[keys.ruleMaxDateDescription]:\n\t\t'Schlägt fehl, wenn das gewählte Datum nach dem spätesten Datum liegt.',\n\t[keys.rulePatternDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Text nicht zum regulären Ausdruck passt.',\n\t[keys.ruleEmailDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Wert keine gültige E-Mail-Adresse ist.',\n\t[keys.ruleUrlDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Wert keine gültige http- oder https-URL ist.',\n\t[keys.ruleOneOfDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Wert keiner der von dir angegebenen zulässigen Werte ist.',\n\t[keys.ruleMatchesFieldDescription]:\n\t\t'Schlägt fehl, wenn der Wert dieses Feldes nicht dem gewählten Feld entspricht. Nutze es für E-Mail- oder Passwort-Bestätigung.',\n\t[keys.ruleNotAlreadySubmittedDescription]:\n\t\t'Schlägt fehl, wenn genau dieser Wert bereits an dieses Formular übermittelt wurde (serverseitig geprüft).',\n\t[keys.ruleFieldTargetInvalid]:\n\t\t'Das ausgewählte Feld existiert nicht mehr. Wähle ein gültiges Feld.',\n\t[keys.ruleParamMin]: 'Minimum',\n\t[keys.ruleParamMax]: 'Maximum',\n\t[keys.ruleParamMinDate]: 'Frühestes Datum (JJJJ-MM-TT)',\n\t[keys.ruleParamMaxDate]: 'Spätestes Datum (JJJJ-MM-TT)',\n\t[keys.ruleParamPattern]: 'Muster',\n\t[keys.ruleParamFlags]: 'Flags',\n\t[keys.ruleParamValues]: 'Zulässige Werte',\n\t[keys.ruleParamField]: 'Feldname',\n\t[keys.validationsLabel]: 'Validierungsregeln',\n\t[keys.validationMessageLabel]: 'Benutzerdefinierte Nachricht',\n\t[keys.conditionAddCondition]: 'Bedingung hinzufügen',\n\t[keys.conditionAddOr]: '\"Oder\"-Gruppe hinzufügen',\n\t[keys.conditionAnd]: 'Und',\n\t[keys.conditionOr]: 'Oder',\n\t[keys.conditionRemove]: 'Entfernen',\n\t[keys.conditionNoFields]:\n\t\t'Füge diesem Formular benannte Felder hinzu, um eine Bedingung zu erstellen.',\n\t[keys.conditionEmpty]: 'Keine Bedingungen. Dieses Feld wird immer angezeigt.',\n\t[keys.conditionSelectField]: 'Feld auswählen',\n\t[keys.conditionTrue]: 'Wahr',\n\t[keys.conditionFalse]: 'Falsch',\n\t[keys.configHidden]: 'Ausgeblendet (wird erfasst, aber nicht angezeigt)',\n\t[keys.tabFields]: 'Felder',\n\t[keys.tabFlow]: 'Ablauf',\n\t[keys.tabActions]: 'Aktionen',\n\t[keys.tabField]: 'Feld',\n\t[keys.tabValidation]: 'Validierung',\n\t[keys.tabAdvanced]: 'Erweitert',\n\t[keys.fieldTypeCalculation]: 'Berechnung',\n\t[keys.configExpression]: 'Ausdruck (JSON)',\n\t[keys.configExpressionDescription]:\n\t\t'Ausdrucksbaum aus Knoten {\"type\":\"lit\"|\"ref\"|\"op\"|\"neg\"|\"fn\"|\"weight\"}. Beispiel: {\"type\":\"op\",\"op\":\"+\",\"left\":{\"type\":\"ref\",\"field\":\"qty\"},\"right\":{\"type\":\"lit\",\"value\":10}}',\n\t[keys.configCalcDisplay]: 'Berechneten Wert anzeigen',\n\t[keys.validationCalcExpressionInvalid]: 'Gib einen gültigen Berechnungsausdruck ein',\n\t[keys.presentationPage]: 'Seite',\n\t[keys.presentationModal]: 'Modal',\n\t[keys.presentationDrawer]: 'Seitenpanel',\n\t[keys.presentationInline]: 'Inline',\n\t[keys.actionEmailTeam]: 'E-Mail ans Team',\n\t[keys.actionConfirmation]: 'Bestätigungs-E-Mail',\n\t[keys.actionSignedWebhook]: 'Signierter Webhook',\n\t[keys.actionConfigTo]: 'An',\n\t[keys.actionConfigSubject]: 'Betreff',\n\t[keys.actionConfigBody]: 'Nachrichtentext',\n\t[keys.actionConfigBodyDescription]:\n\t\t'Unterstützt {{ fieldName|fallback }}-Platzhalter, {{*}} für alle Antworten als Zeilen und {{*:table}} für alle Antworten als Tabelle.',\n\t[keys.actionConfigToField]: 'Name des E-Mail-Feldes',\n\t[keys.actionConfigToFieldDescription]:\n\t\t'Das E-Mail-Feld dieses Formulars, an das die Bestätigung gesendet wird.',\n\t[keys.actionConfigFrom]: 'Von',\n\t[keys.actionConfigFromDescription]:\n\t\t'Absenderadresse für diese Aktion. Leer lassen, um den Standard des E-Mail-Adapters zu verwenden.',\n\t[keys.actionConfigCc]: 'CC',\n\t[keys.actionConfigBcc]: 'BCC',\n\t[keys.actionConfigReplyTo]: 'Antwort an',\n\t[keys.validationFromUnknown]: 'Wähle eine der konfigurierten Absenderadressen',\n\t[keys.validationFromUnavailable]:\n\t\t'Absenderadressen sind derzeit nicht verfügbar. Bitte versuche es später erneut.',\n\t[keys.validationToUnknown]: 'Wähle eine der konfigurierten Abteilungen',\n\t[keys.validationToUnavailable]:\n\t\t'Abteilungen sind derzeit nicht verfügbar. Bitte versuche es später erneut.',\n\t[keys.actionConfigUrl]: 'URL',\n\t[keys.actionConfigUrlDescription]:\n\t\t'Der Endpunkt, der für jede Übermittlung einen signierten JSON-POST erhält.',\n\t[keys.actionConfigSecret]: 'Geheimer Schlüssel',\n\t[keys.actionConfigSecretDescription]:\n\t\t'HMAC-Schlüssel für den X-Form-Signature-Header, der mit dem Empfänger geteilt wird.',\n\t[keys.validationUrlInvalid]: 'Gib eine gültige http- oder https-URL ein',\n\t[keys.configActions]: 'Aktionen',\n\t[keys.fieldTypeConsent]: 'Einwilligung',\n\t[keys.consentConfigSource]: 'Quelle',\n\t[keys.consentConfigSourceDescription]:\n\t\t'Die Erklärung, der Besucher zustimmen. Wortlaut und Rechtsseite gehören zur Quelle: eine Änderung dort gilt für jedes Formular, das sie nutzt.',\n\t[keys.consentSourcesField]: 'Einwilligungsquellen',\n\t[keys.consentSourcesFieldDescription]:\n\t\t'Erklärungen, die Formulare in Einwilligungsfeldern verwenden können',\n\t[keys.consentSourceSingular]: 'Einwilligungsquelle',\n\t[keys.consentSourcePlural]: 'Einwilligungsquellen',\n\t[keys.consentSourceLabel]: 'Name',\n\t[keys.consentSourceStatement]: 'Erklärung',\n\t[keys.consentSourcePage]: 'Erklärungsquelle',\n\t[keys.consentSourcePageDescription]:\n\t\t'Muss gesetzt sein, wenn Formulareinsendungen einen Verweis auf deine Richtlinie speichern sollen.',\n\t[keys.consentSourcesUnavailable]:\n\t\t'Einwilligungsquellen sind nicht verfügbar. Versuche es gleich noch einmal.',\n\t[keys.resultsResponses]: 'Antworten',\n\t[keys.resultsNoResponses]: 'Noch keine Antworten',\n\t[keys.resultsTruncated]: 'Zeigt eine Stichprobe der Antworten',\n\t[keys.pollGroup]: 'Umfrage',\n\t[keys.pollResultsField]: 'Abstimmungsfeld',\n\t[keys.pollResultsFieldDescription]:\n\t\t'Das Auswahlfeld, dessen Antworten als Stimmen gezählt werden. Wird automatisch gewählt, wenn dein Formular genau ein Auswahlfeld hat. Verwende ein Auswahlfeld, niemals ein Freitext- oder personenbezogenes Feld.',\n\t[keys.pollVoteFieldChoose]: 'Wähle das Feld, dessen Antworten als Stimmen zählen.',\n\t[keys.pollVoteFieldMissing]: 'Füge ein Auswahlfeld als Abstimmungsfrage hinzu.',\n\t[keys.pollResultsVisibility]: 'Sichtbarkeit der Ergebnisse',\n\t[keys.pollVisibilityAfterVote]: 'Nach der Abstimmung',\n\t[keys.pollVisibilityAfterClose]: 'Nach Ende der Umfrage',\n\t[keys.pollClosesAt]: 'Endet am',\n\t[keys.pollClosed]: 'Diese Umfrage ist beendet.',\n\t[keys.pollResultsAfterClose]: 'Die Ergebnisse werden nach Ende der Umfrage angezeigt.',\n\t[keys.pollOptionSource]: 'Optionsquelle',\n\t[keys.pollOptionSourceDescription]:\n\t\t'Befüllt die Auswahlmöglichkeiten des Ergebnisfeldes mit App-Daten anstelle manuell erstellter Optionen.',\n\t[keys.pollSourceConfig]: 'Quelleinstellungen',\n\t[keys.pollOutcome]: 'Ergebnis',\n\t[keys.pollType]: 'Ergebnistyp',\n\t[keys.pollTypeDescription]: 'Wie die Gewinneroption bestimmt wird, sobald die Umfrage endet.',\n\t[keys.pollTypeManual]: 'Gewinner manuell festlegen',\n\t[keys.pollTypeMostVoted]: 'Meistgewählte Option gewinnt',\n\t[keys.pollTypeSource]: 'Gewinner aus der Optionsquelle',\n\t[keys.pollCloseButton]: 'Umfrage jetzt beenden',\n\t[keys.pollReopenButton]: 'Umfrage wieder öffnen',\n\t[keys.pollCloseHintManual]: 'Beim Beenden wird der ausgewählte Gewinner als Ergebnis erfasst.',\n\t[keys.pollCloseHintMostVoted]: 'Beim Beenden wird die meistgewählte Option zum Gewinner.',\n\t[keys.pollCloseHintSource]: 'Beim Beenden wird der Gewinner aus der Optionsquelle ermittelt.',\n\t[keys.pollReopenHint]:\n\t\t'Beim Wiederöffnen wird der erfasste Gewinner entfernt und es kann erneut abgestimmt werden.',\n\t[keys.pollCloseNeedsWinner]: 'Wähle zuerst einen Siegerwert.',\n\t[keys.pollCloseManualNoWinner]: 'Lege einen Gewinner fest, bevor du die Umfrage beendest.',\n\t[keys.pollWinningValue]: 'Siegerwert',\n\t[keys.pollWinningValueDescription]:\n\t\t'Wähle die Gewinneroption, sobald das Ergebnis feststeht. Beim Speichern wird der Entscheidungszeitpunkt erfasst; leeren öffnet das Ergebnis wieder.',\n\t[keys.pollResolvedAt]: 'Entschieden am',\n\t[keys.validationWinningValueUnknown]: 'Der Siegerwert muss eine der Umfrageoptionen sein.',\n\t[keys.validationWinningValueDisabled]: 'Aktiviere die Umfrage, bevor ein Ergebnis erfasst wird.',\n\t[keys.endpointOptionsLoading]: 'Optionen werden geladen...',\n\t[keys.endpointOptionsError]: 'Optionen konnten nicht geladen werden.',\n\t[keys.pollOptionsUnavailable]:\n\t\t'Umfrageoptionen sind derzeit nicht verfügbar. Bitte versuche es später erneut.',\n\t[keys.pollFinalResult]: 'Endergebnis',\n\t[keys.resultsWinner]: 'Gewinner',\n\t[keys.validationFileMissing]: 'Datei hochladen',\n\t[keys.validationFileMimeType]: 'Dateityp nicht erlaubt',\n\t[keys.validationFileTooLarge]: 'Datei ist zu groß',\n\t[keys.fieldTypeFile]: 'Datei-Upload',\n\t[keys.fileConfigMimeTypes]: 'Erlaubte Dateitypen',\n\t[keys.fileConfigMaxSize]: 'Maximale Größe (Bytes)',\n\t[keys.fileConfigMaxSizeDescription]: 'Dateien, die größer sind, werden abgelehnt.',\n\t[keys.fileTooLarge]: 'Datei ist zu groß (max. {max})',\n\t[keys.fileUploadMisconfigured]: 'Datei-Uploads sind für dieses Formular nicht konfiguriert',\n\t[keys.fileHintAccepted]: 'Akzeptiert: {types}',\n\t[keys.fileHintMaxSize]: 'Max. Größe: {max}',\n\t[keys.spamRateLimited]: 'Du hast zu viele Anfragen gesendet. Bitte versuche es später erneut.',\n\t[keys.spamRejected]: 'Deine Übermittlung konnte nicht verarbeitet werden.',\n\t[keys.spamCaptchaFailed]: 'Captcha-Überprüfung fehlgeschlagen. Bitte versuche es erneut.',\n\t[keys.collectionFormSingular]: 'Formular',\n\t[keys.collectionFormPlural]: 'Formulare',\n\t[keys.collectionSubmissionSingular]: 'Übermittlung',\n\t[keys.collectionSubmissionPlural]: 'Übermittlungen',\n\t[keys.statusComplete]: 'Vollständig',\n\t[keys.statusPartial]: 'Unvollständig',\n\t[keys.fieldTypeRepeater]: 'Wiederholungsfeld',\n\t[keys.configMinRows]: 'Minimale Zeilenanzahl',\n\t[keys.configMaxRows]: 'Maximale Zeilenanzahl',\n\t[keys.configAddLabel]: 'Beschriftung der Schaltfläche zum Hinzufügen',\n\t[keys.configSubFields]: 'Unterfelder',\n\t[keys.validationRepeaterMin]: 'Füge mindestens {min} Zeile(n) hinzu',\n\t[keys.validationRepeaterMax]: 'Entferne Zeilen, um {max} nicht zu überschreiten',\n\t[keys.repeaterAddRow]: 'Zeile hinzufügen',\n\t[keys.repeaterRemoveRow]: 'Entfernen',\n\t[keys.repeaterRow]: 'Zeile {n}',\n\t[keys.repeaterRowCount]: '{count} Zeile(n)',\n\t[keys.submissionConsent]: 'Einwilligung',\n\t[keys.submissionDetails]: 'Details zur Übermittlung',\n\t[keys.submissionConsentAgreed]: 'Zugestimmt',\n\t[keys.submissionConsentDeclined]: 'Abgelehnt',\n\t[keys.submissionMetaLocale]: 'Sprache',\n\t[keys.submissionMetaReceivedAt]: 'Empfangen am',\n\t[keys.submissionMetaIp]: 'IP-Adresse',\n\t[keys.submissionMetaUserAgent]: 'User-Agent',\n\t[keys.submissionMetaCaptcha]: 'Captcha',\n\t[keys.flowDescription]:\n\t\t'Nur für mehrstufige Formulare nötig: Felder zu Schritten gruppieren und den Ablauf dazwischen festlegen. Leer lassen, um das Formular als einzelne Seite anzuzeigen.',\n\t[keys.flowStepFallbackTitle]: 'Schritt {n}',\n\t[keys.flowFieldInStep]: 'in {step}',\n\t[keys.flowUnassigned]: 'In keinem Schritt',\n\t[keys.flowAssignToStep]: 'Zu Schritt hinzufügen',\n\t[keys.flowNextSequential]: 'Nächster Schritt in der Reihenfolge',\n\t[keys.flowNextTerminal]: 'Ende des Formulars',\n\t[keys.flowFields]: 'Felder',\n\t[keys.flowDefaultNext]: 'Standardmäßig weiter zu',\n\t[keys.flowConditionalTransitions]: 'Bedingte Übergänge',\n\t[keys.flowStepTitleLabel]: 'Titel',\n\t[keys.flowSelectStepPlaceholder]: 'Schritt auswählen…',\n\t[keys.flowMoveTransitionUp]: 'Übergang nach oben verschieben',\n\t[keys.flowMoveTransitionDown]: 'Übergang nach unten verschieben',\n\t[keys.flowRemoveTransition]: 'Übergang entfernen',\n\t[keys.flowAddAbove]: 'Oberhalb hinzufügen',\n\t[keys.flowAddBelow]: 'Unterhalb hinzufügen',\n\t[keys.flowGoTo]: 'gehe zu',\n\t[keys.flowWhen]: 'wenn',\n\t[keys.flowNoFields]: 'Noch keine Felder im Formular definiert.',\n\t[keys.flowFirstMatchWins]: '(erste Übereinstimmung gewinnt)',\n\t[keys.flowAddTransition]: 'Übergang hinzufügen',\n\t[keys.flowNoSteps]:\n\t\t'Keine Schritte definiert. Füge mindestens zwei Schritte hinzu, um die mehrseitige Ablaufsteuerung zu aktivieren.',\n\t[keys.flowFallbackTitle]: 'Ablauf',\n\t[keys.fieldTypeMessage]: 'Nachricht',\n\t[keys.configContent]: 'Inhalt',\n\t[keys.tabResponse]: 'Antwort',\n\t[keys.responseType]: 'Nach dem Absenden',\n\t[keys.responseTypeMessage]: 'Eine Nachricht anzeigen',\n\t[keys.responseTypeRedirect]: 'Zu einer URL weiterleiten',\n\t[keys.responseMessage]: 'Nachricht',\n\t[keys.responseRedirect]: 'Weiterleitung',\n\t[keys.responseUrl]: 'URL',\n\t[keys.responseRedirectReference]: 'Dokument',\n\t[keys.responseRedirectReferenceDescription]:\n\t\t'Zu einem internen Dokument statt zu einer URL weiterleiten',\n\t[keys.buttonsSubmitLabel]: 'Beschriftung der Absenden-Schaltfläche',\n\t[keys.buttonsNextLabel]: 'Beschriftung der Weiter-Schaltfläche',\n\t[keys.buttonsPrevLabel]: 'Beschriftung der Zurück-Schaltfläche',\n\t[keys.formBack]: 'Zurück',\n\t[keys.formNext]: 'Weiter',\n\t[keys.formSubmit]: 'Absenden',\n\t[keys.formMultistep]: 'Mehrstufig',\n\t[keys.formPollEnabled]: 'Umfrage',\n\t[keys.cellStepCountOne]: '{{count}} Schritt',\n\t[keys.cellStepCountOther]: '{{count}} Schritte',\n\t[keys.cellFieldCountOne]: '{{count}} Feld',\n\t[keys.cellFieldCountOther]: '{{count}} Felder',\n\t[keys.departmentsField]: 'Abteilungs-E-Mails',\n\t[keys.departmentsFieldDescription]:\n\t\t'Adressen, an die ein Formular Einsendungen weiterleiten kann, jeweils mit Bezeichnung.',\n\t[keys.departmentSingular]: 'Abteilungs-E-Mail',\n\t[keys.departmentPlural]: 'Abteilungs-E-Mails',\n\t[keys.departmentLabel]: 'Bezeichnung',\n\t[keys.departmentEmail]: 'E-Mail',\n\t[keys.departmentAddRow]: 'E-Mail hinzufügen',\n\t[keys.departmentRemoveRow]: 'E-Mail entfernen',\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"de.js","names":[],"sources":["../../src/translations/de.ts"],"sourcesContent":["import { keys, type TranslationKey } from './keys'\n\n/**\n * German values, keyed by the typed constants in `keys.ts` so the two stay in\n * lockstep. The `Record<TranslationKey, string>` annotation makes a missing or\n * unknown key a type error. `translations/index.ts` nests these for Payload.\n */\nexport const de: Record<TranslationKey, string> = {\n\t[keys.fieldTitle]: 'Titel',\n\t[keys.fieldTypeText]: 'Text',\n\t[keys.fieldTypeTextarea]: 'Textarea',\n\t[keys.fieldTypeEmail]: 'E-Mail',\n\t[keys.fieldTypeNumber]: 'Zahl',\n\t[keys.fieldTypeSelect]: 'Auswahl',\n\t[keys.fieldTypeCountry]: 'Land',\n\t[keys.fieldTypeState]: 'Bundesstaat',\n\t[keys.fieldTypeCheckbox]: 'Checkbox',\n\t[keys.fieldTypeDate]: 'Datum',\n\t[keys.configOptions]: 'Optionen',\n\t[keys.configOption]: 'Option',\n\t[keys.configOptionLabel]: 'Bezeichnung',\n\t[keys.configOptionValue]: 'Wert',\n\t[keys.validationRequired]: 'Dieses Feld ist erforderlich',\n\t[keys.validationEmail]: 'Gib eine gültige E-Mail-Adresse ein',\n\t[keys.validationNumber]: 'Gib eine gültige Zahl ein',\n\t[keys.validationDate]: 'Gib ein gültiges Datum ein',\n\t[keys.validationSelect]: 'Wähle eine gültige Option',\n\t[keys.validationCountry]: 'Wähle ein gültiges Land',\n\t[keys.validationState]: 'Wähle einen gültigen Bundesstaat',\n\t[keys.validationRegexPattern]: 'Gib einen gültigen regulären Ausdruck ein',\n\t[keys.validationRegexFlags]:\n\t\t'Gib gültige Flags für reguläre Ausdrücke ein, zum Beispiel i oder gi',\n\t[keys.validationEmailFieldUnknown]: 'Wähle ein bestehendes E-Mail-Feld dieses Formulars',\n\t[keys.validationResultsFieldUnknown]: 'Wähle ein geeignetes Auswahlfeld dieses Formulars',\n\t[keys.formatYes]: 'Ja',\n\t[keys.formatNo]: 'Nein',\n\t[keys.configName]: 'Name',\n\t[keys.configLabel]: 'Bezeichnung',\n\t[keys.configRequired]: 'Erforderlich',\n\t[keys.configWidth]: 'Breite',\n\t[keys.configPlaceholder]: 'Platzhalter',\n\t[keys.configDescription]: 'Beschreibung',\n\t[keys.configVisibleWhen]: 'Dieses Feld anzeigen, wenn',\n\t[keys.configValidateWhen]: 'Dieses Feld nur validieren, wenn',\n\t[keys.submissionAnswers]: 'Antworten',\n\t[keys.submissionNoAnswers]: 'Keine Antworten',\n\t[keys.ruleMinLength]: 'Minimale Länge',\n\t[keys.ruleMaxLength]: 'Maximale Länge',\n\t[keys.ruleMin]: 'Minimum',\n\t[keys.ruleMax]: 'Maximum',\n\t[keys.ruleMinDate]: 'Frühestes Datum',\n\t[keys.ruleMaxDate]: 'Spätestes Datum',\n\t[keys.rulePattern]: 'Muster',\n\t[keys.ruleEmail]: 'E-Mail',\n\t[keys.ruleUrl]: 'URL',\n\t[keys.ruleOneOf]: 'Wert aus Liste',\n\t[keys.ruleMatchesField]: 'Stimmt mit Feld überein',\n\t[keys.ruleNotAlreadySubmitted]: 'Noch nicht übermittelt',\n\t[keys.ruleMinLengthMessage]: 'Muss mindestens {min} Zeichen lang sein',\n\t[keys.ruleMaxLengthMessage]: 'Darf höchstens {max} Zeichen lang sein',\n\t[keys.ruleMinMessage]: 'Muss mindestens {min} betragen',\n\t[keys.ruleMaxMessage]: 'Darf höchstens {max} betragen',\n\t[keys.ruleMinDateMessage]: 'Muss am oder nach dem {min} liegen',\n\t[keys.ruleMaxDateMessage]: 'Muss am oder vor dem {max} liegen',\n\t[keys.rulePatternMessage]: 'Ungültiges Format',\n\t[keys.ruleEmailMessage]: 'Gib eine gültige E-Mail-Adresse ein',\n\t[keys.ruleUrlMessage]: 'Gib eine gültige URL ein',\n\t[keys.ruleOneOfMessage]: 'Wähle einen zulässigen Wert',\n\t[keys.ruleMatchesFieldMessage]: 'Stimmt nicht überein',\n\t[keys.ruleNotAlreadySubmittedMessage]: 'Dieser Wert wurde bereits übermittelt',\n\t[keys.ruleMinLengthDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Text kürzer als die Mindestanzahl an Zeichen ist.',\n\t[keys.ruleMaxLengthDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Text länger als die maximale Anzahl an Zeichen ist.',\n\t[keys.ruleMinDescription]: 'Schlägt fehl, wenn die eingegebene Zahl unter dem Minimum liegt.',\n\t[keys.ruleMaxDescription]: 'Schlägt fehl, wenn die eingegebene Zahl über dem Maximum liegt.',\n\t[keys.ruleMinDateDescription]:\n\t\t'Schlägt fehl, wenn das gewählte Datum vor dem frühesten Datum liegt.',\n\t[keys.ruleMaxDateDescription]:\n\t\t'Schlägt fehl, wenn das gewählte Datum nach dem spätesten Datum liegt.',\n\t[keys.rulePatternDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Text nicht zum regulären Ausdruck passt.',\n\t[keys.ruleEmailDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Wert keine gültige E-Mail-Adresse ist.',\n\t[keys.ruleUrlDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Wert keine gültige http- oder https-URL ist.',\n\t[keys.ruleOneOfDescription]:\n\t\t'Schlägt fehl, wenn der eingegebene Wert keiner der von dir angegebenen zulässigen Werte ist.',\n\t[keys.ruleMatchesFieldDescription]:\n\t\t'Schlägt fehl, wenn der Wert dieses Feldes nicht dem gewählten Feld entspricht. Nutze es für E-Mail- oder Passwort-Bestätigung.',\n\t[keys.ruleNotAlreadySubmittedDescription]:\n\t\t'Schlägt fehl, wenn genau dieser Wert bereits an dieses Formular übermittelt wurde (serverseitig geprüft).',\n\t[keys.ruleFieldTargetInvalid]:\n\t\t'Das ausgewählte Feld existiert nicht mehr. Wähle ein gültiges Feld.',\n\t[keys.ruleParamMin]: 'Minimum',\n\t[keys.ruleParamMax]: 'Maximum',\n\t[keys.ruleParamMinDate]: 'Frühestes Datum (JJJJ-MM-TT)',\n\t[keys.ruleParamMaxDate]: 'Spätestes Datum (JJJJ-MM-TT)',\n\t[keys.ruleParamPattern]: 'Muster',\n\t[keys.ruleParamFlags]: 'Flags',\n\t[keys.ruleParamValues]: 'Zulässige Werte',\n\t[keys.ruleParamField]: 'Feldname',\n\t[keys.validationsLabel]: 'Validierungsregeln',\n\t[keys.validationMessageLabel]: 'Benutzerdefinierte Nachricht',\n\t[keys.conditionAddCondition]: 'Bedingung hinzufügen',\n\t[keys.conditionAddOr]: '\"Oder\"-Gruppe hinzufügen',\n\t[keys.conditionAnd]: 'Und',\n\t[keys.conditionOr]: 'Oder',\n\t[keys.conditionRemove]: 'Entfernen',\n\t[keys.conditionNoFields]:\n\t\t'Füge diesem Formular benannte Felder hinzu, um eine Bedingung zu erstellen.',\n\t[keys.conditionEmpty]: 'Keine Bedingungen. Dieses Feld wird immer angezeigt.',\n\t[keys.conditionSelectField]: 'Feld auswählen',\n\t[keys.conditionTrue]: 'Wahr',\n\t[keys.conditionFalse]: 'Falsch',\n\t[keys.configHidden]: 'Ausgeblendet (wird erfasst, aber nicht angezeigt)',\n\t[keys.tabFields]: 'Felder',\n\t[keys.tabFlow]: 'Ablauf',\n\t[keys.tabActions]: 'Aktionen',\n\t[keys.tabField]: 'Feld',\n\t[keys.tabValidation]: 'Validierung',\n\t[keys.tabAdvanced]: 'Erweitert',\n\t[keys.fieldTypeCalculation]: 'Berechnung',\n\t[keys.configExpression]: 'Ausdruck (JSON)',\n\t[keys.configExpressionDescription]:\n\t\t'Ausdrucksbaum aus Knoten {\"type\":\"lit\"|\"ref\"|\"op\"|\"neg\"|\"fn\"|\"weight\"}. Beispiel: {\"type\":\"op\",\"op\":\"+\",\"left\":{\"type\":\"ref\",\"field\":\"qty\"},\"right\":{\"type\":\"lit\",\"value\":10}}',\n\t[keys.configCalcDisplay]: 'Berechneten Wert anzeigen',\n\t[keys.validationCalcExpressionInvalid]: 'Gib einen gültigen Berechnungsausdruck ein',\n\t[keys.presentationPage]: 'Seite',\n\t[keys.presentationModal]: 'Modal',\n\t[keys.presentationDrawer]: 'Seitenpanel',\n\t[keys.presentationInline]: 'Inline',\n\t[keys.actionEmailTeam]: 'E-Mail ans Team',\n\t[keys.actionConfirmation]: 'Bestätigungs-E-Mail',\n\t[keys.actionSignedWebhook]: 'Signierter Webhook',\n\t[keys.actionConfigTo]: 'An',\n\t[keys.actionConfigSubject]: 'Betreff',\n\t[keys.actionConfigBody]: 'Nachrichtentext',\n\t[keys.actionConfigBodyDescription]:\n\t\t'Unterstützt {{ fieldName|fallback }}-Platzhalter, {{*}} für alle Antworten als Zeilen und {{*:table}} für alle Antworten als Tabelle.',\n\t[keys.actionConfigToField]: 'Name des E-Mail-Feldes',\n\t[keys.actionConfigToFieldDescription]:\n\t\t'Das E-Mail-Feld dieses Formulars, an das die Bestätigung gesendet wird.',\n\t[keys.actionConfigFrom]: 'Von',\n\t[keys.actionConfigFromDescription]:\n\t\t'Absenderadresse für diese Aktion. Leer lassen, um den Standard des E-Mail-Adapters zu verwenden.',\n\t[keys.actionConfigCc]: 'CC',\n\t[keys.actionConfigBcc]: 'BCC',\n\t[keys.actionConfigReplyTo]: 'Antwort an',\n\t[keys.recipientsGroupDepartments]: 'Abteilungen',\n\t[keys.recipientsGroupFields]: 'Formularfelder',\n\t[keys.validationRecipientInvalid]: 'Gib eine gültige E-Mail-Adresse ein.',\n\t[keys.validationRecipientUnknownField]: 'Verweist auf ein nicht mehr vorhandenes Feld.',\n\t[keys.validationRecipientNotAllowed]: 'Dieser Empfänger steht nicht auf der zulässigen Liste.',\n\t[keys.validationRecipientOptionsUnavailable]:\n\t\t'Empfängeroptionen sind derzeit nicht verfügbar. Bitte versuche es später erneut.',\n\t[keys.validationFromUnknown]: 'Wähle eine der konfigurierten Absenderadressen',\n\t[keys.validationFromUnavailable]:\n\t\t'Absenderadressen sind derzeit nicht verfügbar. Bitte versuche es später erneut.',\n\t[keys.actionConfigUrl]: 'URL',\n\t[keys.actionConfigUrlDescription]:\n\t\t'Der Endpunkt, der für jede Übermittlung einen signierten JSON-POST erhält.',\n\t[keys.actionConfigSecret]: 'Geheimer Schlüssel',\n\t[keys.actionConfigSecretDescription]:\n\t\t'HMAC-Schlüssel für den X-Form-Signature-Header, der mit dem Empfänger geteilt wird.',\n\t[keys.validationUrlInvalid]: 'Gib eine gültige http- oder https-URL ein',\n\t[keys.configActions]: 'Aktionen',\n\t[keys.fieldTypeConsent]: 'Einwilligung',\n\t[keys.consentConfigSource]: 'Quelle',\n\t[keys.consentConfigSourceDescription]:\n\t\t'Die Erklärung, der Besucher zustimmen. Wortlaut und Rechtsseite gehören zur Quelle: eine Änderung dort gilt für jedes Formular, das sie nutzt.',\n\t[keys.consentSourcesField]: 'Einwilligungsquellen',\n\t[keys.consentSourcesFieldDescription]:\n\t\t'Erklärungen, die Formulare in Einwilligungsfeldern verwenden können',\n\t[keys.consentSourceSingular]: 'Einwilligungsquelle',\n\t[keys.consentSourcePlural]: 'Einwilligungsquellen',\n\t[keys.consentSourceLabel]: 'Name',\n\t[keys.consentSourceStatement]: 'Erklärung',\n\t[keys.consentSourcePage]: 'Erklärungsquelle',\n\t[keys.consentSourcePageDescription]:\n\t\t'Muss gesetzt sein, wenn Formulareinsendungen einen Verweis auf deine Richtlinie speichern sollen.',\n\t[keys.consentSourcesUnavailable]:\n\t\t'Einwilligungsquellen sind nicht verfügbar. Versuche es gleich noch einmal.',\n\t[keys.resultsResponses]: 'Antworten',\n\t[keys.resultsNoResponses]: 'Noch keine Antworten',\n\t[keys.resultsTruncated]: 'Zeigt eine Stichprobe der Antworten',\n\t[keys.pollGroup]: 'Umfrage',\n\t[keys.pollResultsField]: 'Abstimmungsfeld',\n\t[keys.pollResultsFieldDescription]:\n\t\t'Das Auswahlfeld, dessen Antworten als Stimmen gezählt werden. Wird automatisch gewählt, wenn dein Formular genau ein Auswahlfeld hat. Verwende ein Auswahlfeld, niemals ein Freitext- oder personenbezogenes Feld.',\n\t[keys.pollVoteFieldChoose]: 'Wähle das Feld, dessen Antworten als Stimmen zählen.',\n\t[keys.pollVoteFieldMissing]: 'Füge ein Auswahlfeld als Abstimmungsfrage hinzu.',\n\t[keys.pollResultsVisibility]: 'Sichtbarkeit der Ergebnisse',\n\t[keys.pollVisibilityAfterVote]: 'Nach der Abstimmung',\n\t[keys.pollVisibilityAfterClose]: 'Nach Ende der Umfrage',\n\t[keys.pollClosesAt]: 'Endet am',\n\t[keys.pollClosed]: 'Diese Umfrage ist beendet.',\n\t[keys.pollResultsAfterClose]: 'Die Ergebnisse werden nach Ende der Umfrage angezeigt.',\n\t[keys.pollOptionSource]: 'Optionsquelle',\n\t[keys.pollOptionSourceDescription]:\n\t\t'Befüllt die Auswahlmöglichkeiten des Ergebnisfeldes mit App-Daten anstelle manuell erstellter Optionen.',\n\t[keys.pollSourceConfig]: 'Quelleinstellungen',\n\t[keys.pollOutcome]: 'Ergebnis',\n\t[keys.pollType]: 'Ergebnistyp',\n\t[keys.pollTypeDescription]: 'Wie die Gewinneroption bestimmt wird, sobald die Umfrage endet.',\n\t[keys.pollTypeManual]: 'Gewinner manuell festlegen',\n\t[keys.pollTypeMostVoted]: 'Meistgewählte Option gewinnt',\n\t[keys.pollTypeSource]: 'Gewinner aus der Optionsquelle',\n\t[keys.pollCloseButton]: 'Umfrage jetzt beenden',\n\t[keys.pollReopenButton]: 'Umfrage wieder öffnen',\n\t[keys.pollCloseHintManual]: 'Beim Beenden wird der ausgewählte Gewinner als Ergebnis erfasst.',\n\t[keys.pollCloseHintMostVoted]: 'Beim Beenden wird die meistgewählte Option zum Gewinner.',\n\t[keys.pollCloseHintSource]: 'Beim Beenden wird der Gewinner aus der Optionsquelle ermittelt.',\n\t[keys.pollReopenHint]:\n\t\t'Beim Wiederöffnen wird der erfasste Gewinner entfernt und es kann erneut abgestimmt werden.',\n\t[keys.pollCloseNeedsWinner]: 'Wähle zuerst einen Siegerwert.',\n\t[keys.pollCloseManualNoWinner]: 'Lege einen Gewinner fest, bevor du die Umfrage beendest.',\n\t[keys.pollWinningValue]: 'Siegerwert',\n\t[keys.pollWinningValueDescription]:\n\t\t'Wähle die Gewinneroption, sobald das Ergebnis feststeht. Beim Speichern wird der Entscheidungszeitpunkt erfasst; leeren öffnet das Ergebnis wieder.',\n\t[keys.pollResolvedAt]: 'Entschieden am',\n\t[keys.validationWinningValueUnknown]: 'Der Siegerwert muss eine der Umfrageoptionen sein.',\n\t[keys.validationWinningValueDisabled]: 'Aktiviere die Umfrage, bevor ein Ergebnis erfasst wird.',\n\t[keys.endpointOptionsLoading]: 'Optionen werden geladen...',\n\t[keys.endpointOptionsError]: 'Optionen konnten nicht geladen werden.',\n\t[keys.pollOptionsUnavailable]:\n\t\t'Umfrageoptionen sind derzeit nicht verfügbar. Bitte versuche es später erneut.',\n\t[keys.pollFinalResult]: 'Endergebnis',\n\t[keys.pollResultsError]: 'Ergebnisse konnten nicht geladen werden.',\n\t[keys.resultsWinner]: 'Gewinner',\n\t[keys.validationFileMissing]: 'Datei hochladen',\n\t[keys.validationFileMimeType]: 'Dateityp nicht erlaubt',\n\t[keys.validationFileTooLarge]: 'Datei ist zu groß',\n\t[keys.fieldTypeFile]: 'Datei-Upload',\n\t[keys.fileConfigMimeTypes]: 'Erlaubte Dateitypen',\n\t[keys.fileConfigMaxSize]: 'Maximale Größe (Bytes)',\n\t[keys.fileConfigMaxSizeDescription]: 'Dateien, die größer sind, werden abgelehnt.',\n\t[keys.fileTooLarge]: 'Datei ist zu groß (max. {max})',\n\t[keys.fileUploadMisconfigured]: 'Datei-Uploads sind für dieses Formular nicht konfiguriert',\n\t[keys.fileHintAccepted]: 'Akzeptiert: {types}',\n\t[keys.fileHintMaxSize]: 'Max. Größe: {max}',\n\t[keys.fileUploaded]: 'Hochgeladene Datei',\n\t[keys.fileUploading]: 'Wird hochgeladen',\n\t[keys.fileUploadFailed]: 'Upload fehlgeschlagen',\n\t[keys.fileRemove]: 'Entfernen',\n\t[keys.spamRateLimited]: 'Du hast zu viele Anfragen gesendet. Bitte versuche es später erneut.',\n\t[keys.spamRejected]: 'Deine Übermittlung konnte nicht verarbeitet werden.',\n\t[keys.spamCaptchaFailed]: 'Captcha-Überprüfung fehlgeschlagen. Bitte versuche es erneut.',\n\t[keys.collectionFormSingular]: 'Formular',\n\t[keys.collectionFormPlural]: 'Formulare',\n\t[keys.collectionSubmissionSingular]: 'Übermittlung',\n\t[keys.collectionSubmissionPlural]: 'Übermittlungen',\n\t[keys.statusComplete]: 'Vollständig',\n\t[keys.statusPartial]: 'Unvollständig',\n\t[keys.fieldTypeRepeater]: 'Wiederholungsfeld',\n\t[keys.configMinRows]: 'Minimale Zeilenanzahl',\n\t[keys.configMaxRows]: 'Maximale Zeilenanzahl',\n\t[keys.configAddLabel]: 'Beschriftung der Schaltfläche zum Hinzufügen',\n\t[keys.configSubFields]: 'Unterfelder',\n\t[keys.validationRepeaterMin]: 'Füge mindestens {min} Zeile(n) hinzu',\n\t[keys.validationRepeaterMax]: 'Entferne Zeilen, um {max} nicht zu überschreiten',\n\t[keys.repeaterAddRow]: 'Zeile hinzufügen',\n\t[keys.repeaterRemoveRow]: 'Entfernen',\n\t[keys.repeaterRow]: 'Zeile {n}',\n\t[keys.repeaterRowCount]: '{count} Zeile(n)',\n\t[keys.submissionConsent]: 'Einwilligung',\n\t[keys.submissionDetails]: 'Details zur Übermittlung',\n\t[keys.submissionConsentAgreed]: 'Zugestimmt',\n\t[keys.submissionConsentDeclined]: 'Abgelehnt',\n\t[keys.submissionMetaLocale]: 'Sprache',\n\t[keys.submissionMetaReceivedAt]: 'Empfangen am',\n\t[keys.submissionMetaIp]: 'IP-Adresse',\n\t[keys.submissionMetaUserAgent]: 'User-Agent',\n\t[keys.submissionMetaCaptcha]: 'Captcha',\n\t[keys.flowDescription]:\n\t\t'Nur für mehrstufige Formulare nötig: Felder zu Schritten gruppieren und den Ablauf dazwischen festlegen. Leer lassen, um das Formular als einzelne Seite anzuzeigen.',\n\t[keys.flowStepFallbackTitle]: 'Schritt {n}',\n\t[keys.flowFieldInStep]: 'in {step}',\n\t[keys.flowUnassigned]: 'In keinem Schritt',\n\t[keys.flowAssignToStep]: 'Zu Schritt hinzufügen',\n\t[keys.flowNextSequential]: 'Nächster Schritt in der Reihenfolge',\n\t[keys.flowNextTerminal]: 'Ende des Formulars',\n\t[keys.flowFields]: 'Felder',\n\t[keys.flowDefaultNext]: 'Standardmäßig weiter zu',\n\t[keys.flowConditionalTransitions]: 'Bedingte Übergänge',\n\t[keys.flowStepTitleLabel]: 'Titel',\n\t[keys.flowSelectStepPlaceholder]: 'Schritt auswählen…',\n\t[keys.flowMoveTransitionUp]: 'Übergang nach oben verschieben',\n\t[keys.flowMoveTransitionDown]: 'Übergang nach unten verschieben',\n\t[keys.flowRemoveTransition]: 'Übergang entfernen',\n\t[keys.flowAddAbove]: 'Oberhalb hinzufügen',\n\t[keys.flowAddBelow]: 'Unterhalb hinzufügen',\n\t[keys.flowGoTo]: 'gehe zu',\n\t[keys.flowWhen]: 'wenn',\n\t[keys.flowNoFields]: 'Noch keine Felder im Formular definiert.',\n\t[keys.flowFirstMatchWins]: '(erste Übereinstimmung gewinnt)',\n\t[keys.flowAddTransition]: 'Übergang hinzufügen',\n\t[keys.flowNoSteps]:\n\t\t'Keine Schritte definiert. Füge mindestens zwei Schritte hinzu, um die mehrseitige Ablaufsteuerung zu aktivieren.',\n\t[keys.flowFallbackTitle]: 'Ablauf',\n\t[keys.fieldTypeMessage]: 'Nachricht',\n\t[keys.configContent]: 'Inhalt',\n\t[keys.tabResponse]: 'Antwort',\n\t[keys.responseType]: 'Nach dem Absenden',\n\t[keys.responseTypeMessage]: 'Eine Nachricht anzeigen',\n\t[keys.responseTypeRedirect]: 'Zu einer URL weiterleiten',\n\t[keys.responseMessage]: 'Nachricht',\n\t[keys.responseRedirect]: 'Weiterleitung',\n\t[keys.responseUrl]: 'URL',\n\t[keys.responseRedirectReference]: 'Dokument',\n\t[keys.responseRedirectReferenceDescription]:\n\t\t'Zu einem internen Dokument statt zu einer URL weiterleiten',\n\t[keys.buttonsSubmitLabel]: 'Beschriftung der Absenden-Schaltfläche',\n\t[keys.buttonsNextLabel]: 'Beschriftung der Weiter-Schaltfläche',\n\t[keys.buttonsPrevLabel]: 'Beschriftung der Zurück-Schaltfläche',\n\t[keys.formBack]: 'Zurück',\n\t[keys.formNext]: 'Weiter',\n\t[keys.formSubmit]: 'Absenden',\n\t[keys.formMultistep]: 'Mehrstufig',\n\t[keys.formPollEnabled]: 'Umfrage',\n\t[keys.formClose]: 'Schließen',\n\t[keys.formSuccess]: 'Vielen Dank.',\n\t[keys.formSubmitFailed]: 'Übermittlung fehlgeschlagen',\n\t[keys.cellStepCountOne]: '{{count}} Schritt',\n\t[keys.cellStepCountOther]: '{{count}} Schritte',\n\t[keys.cellFieldCountOne]: '{{count}} Feld',\n\t[keys.cellFieldCountOther]: '{{count}} Felder',\n\t[keys.departmentsField]: 'Abteilungs-E-Mails',\n\t[keys.departmentsFieldDescription]:\n\t\t'Adressen, an die ein Formular Einsendungen weiterleiten kann, jeweils mit Bezeichnung.',\n\t[keys.departmentSingular]: 'Abteilungs-E-Mail',\n\t[keys.departmentPlural]: 'Abteilungs-E-Mails',\n\t[keys.departmentLabel]: 'Bezeichnung',\n\t[keys.departmentEmail]: 'E-Mail',\n\t[keys.departmentAddRow]: 'E-Mail hinzufügen',\n\t[keys.departmentRemoveRow]: 'E-Mail entfernen',\n}\n"],"mappings":"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"}
|
package/dist/translations/en.js
CHANGED
|
@@ -130,10 +130,14 @@ const en = {
|
|
|
130
130
|
[keys.actionConfigCc]: "CC",
|
|
131
131
|
[keys.actionConfigBcc]: "BCC",
|
|
132
132
|
[keys.actionConfigReplyTo]: "Reply-to",
|
|
133
|
+
[keys.recipientsGroupDepartments]: "Departments",
|
|
134
|
+
[keys.recipientsGroupFields]: "Form fields",
|
|
135
|
+
[keys.validationRecipientInvalid]: "Enter a valid email address.",
|
|
136
|
+
[keys.validationRecipientUnknownField]: "References a field that no longer exists.",
|
|
137
|
+
[keys.validationRecipientNotAllowed]: "This recipient is not in the allowed list.",
|
|
138
|
+
[keys.validationRecipientOptionsUnavailable]: "Recipient options are currently unavailable. Please try again later.",
|
|
133
139
|
[keys.validationFromUnknown]: "Choose one of the configured from addresses",
|
|
134
140
|
[keys.validationFromUnavailable]: "From addresses are currently unavailable. Please try again later.",
|
|
135
|
-
[keys.validationToUnknown]: "Choose one of the configured departments",
|
|
136
|
-
[keys.validationToUnavailable]: "Departments are currently unavailable. Please try again later.",
|
|
137
141
|
[keys.actionConfigUrl]: "URL",
|
|
138
142
|
[keys.actionConfigUrlDescription]: "The endpoint that receives a signed JSON POST for each submission.",
|
|
139
143
|
[keys.actionConfigSecret]: "Secret",
|
|
@@ -192,6 +196,7 @@ const en = {
|
|
|
192
196
|
[keys.endpointOptionsError]: "Options could not be loaded.",
|
|
193
197
|
[keys.pollOptionsUnavailable]: "Poll options are currently unavailable. Please try again later.",
|
|
194
198
|
[keys.pollFinalResult]: "Final result",
|
|
199
|
+
[keys.pollResultsError]: "Results could not be loaded.",
|
|
195
200
|
[keys.resultsWinner]: "Winner",
|
|
196
201
|
[keys.validationFileMissing]: "Upload a file",
|
|
197
202
|
[keys.validationFileMimeType]: "File type not allowed",
|
|
@@ -204,6 +209,10 @@ const en = {
|
|
|
204
209
|
[keys.fileUploadMisconfigured]: "File uploads are not configured for this form",
|
|
205
210
|
[keys.fileHintAccepted]: "Accepted: {types}",
|
|
206
211
|
[keys.fileHintMaxSize]: "Max size: {max}",
|
|
212
|
+
[keys.fileUploaded]: "Uploaded file",
|
|
213
|
+
[keys.fileUploading]: "Uploading",
|
|
214
|
+
[keys.fileUploadFailed]: "Upload failed",
|
|
215
|
+
[keys.fileRemove]: "Remove",
|
|
207
216
|
[keys.spamRateLimited]: "You have sent too many requests. Please try again later.",
|
|
208
217
|
[keys.spamRejected]: "Your submission could not be processed.",
|
|
209
218
|
[keys.spamCaptchaFailed]: "Captcha verification failed. Please try again.",
|
|
@@ -276,6 +285,9 @@ const en = {
|
|
|
276
285
|
[keys.formSubmit]: "Submit",
|
|
277
286
|
[keys.formMultistep]: "Multi-step",
|
|
278
287
|
[keys.formPollEnabled]: "Poll",
|
|
288
|
+
[keys.formClose]: "Close",
|
|
289
|
+
[keys.formSuccess]: "Thank you.",
|
|
290
|
+
[keys.formSubmitFailed]: "Submission failed",
|
|
279
291
|
[keys.cellStepCountOne]: "{{count}} step",
|
|
280
292
|
[keys.cellStepCountOther]: "{{count}} steps",
|
|
281
293
|
[keys.cellFieldCountOne]: "{{count}} Field",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","names":[],"sources":["../../src/translations/en.ts"],"sourcesContent":["import { keys, type TranslationKey } from './keys'\n\n/**\n * English values, keyed by the typed constants in `keys.ts` so the two stay in\n * lockstep. The `Record<TranslationKey, string>` annotation makes a missing or\n * unknown key a type error. `translations/index.ts` nests these for Payload.\n */\nexport const en: Record<TranslationKey, string> = {\n\t[keys.fieldTitle]: 'Title',\n\t[keys.fieldTypeText]: 'Text',\n\t[keys.fieldTypeTextarea]: 'Textarea',\n\t[keys.fieldTypeEmail]: 'Email',\n\t[keys.fieldTypeNumber]: 'Number',\n\t[keys.fieldTypeSelect]: 'Select',\n\t[keys.fieldTypeCountry]: 'Country',\n\t[keys.fieldTypeState]: 'State',\n\t[keys.fieldTypeCheckbox]: 'Checkbox',\n\t[keys.fieldTypeDate]: 'Date',\n\t[keys.configOptions]: 'Options',\n\t[keys.configOption]: 'Option',\n\t[keys.configOptionLabel]: 'Label',\n\t[keys.configOptionValue]: 'Value',\n\t[keys.validationRequired]: 'This field is required',\n\t[keys.validationEmail]: 'Enter a valid email address',\n\t[keys.validationNumber]: 'Enter a valid number',\n\t[keys.validationDate]: 'Enter a valid date',\n\t[keys.validationSelect]: 'Choose a valid option',\n\t[keys.validationCountry]: 'Choose a valid country',\n\t[keys.validationState]: 'Choose a valid state',\n\t[keys.validationRegexPattern]: 'Enter a valid regular expression',\n\t[keys.validationRegexFlags]: 'Enter valid regular expression flags, for example i or gi',\n\t[keys.validationEmailFieldUnknown]: 'Choose an existing email field on this form',\n\t[keys.validationResultsFieldUnknown]: 'Choose an eligible choice field on this form',\n\t[keys.formatYes]: 'Yes',\n\t[keys.formatNo]: 'No',\n\t[keys.configName]: 'Name',\n\t[keys.configLabel]: 'Label',\n\t[keys.configRequired]: 'Required',\n\t[keys.configWidth]: 'Width',\n\t[keys.configPlaceholder]: 'Placeholder',\n\t[keys.configDescription]: 'Description',\n\t[keys.configVisibleWhen]: 'Show this field when',\n\t[keys.configValidateWhen]: 'Validate this field only when',\n\t[keys.submissionAnswers]: 'Answers',\n\t[keys.submissionNoAnswers]: 'No answers',\n\t[keys.ruleMinLength]: 'Minimum length',\n\t[keys.ruleMaxLength]: 'Maximum length',\n\t[keys.ruleMin]: 'Minimum',\n\t[keys.ruleMax]: 'Maximum',\n\t[keys.ruleMinDate]: 'Earliest date',\n\t[keys.ruleMaxDate]: 'Latest date',\n\t[keys.rulePattern]: 'Pattern',\n\t[keys.ruleEmail]: 'Email',\n\t[keys.ruleUrl]: 'URL',\n\t[keys.ruleOneOf]: 'One of',\n\t[keys.ruleMatchesField]: 'Matches field',\n\t[keys.ruleNotAlreadySubmitted]: 'Not already submitted',\n\t[keys.ruleMinLengthMessage]: 'Must be at least {min} characters',\n\t[keys.ruleMaxLengthMessage]: 'Must be at most {max} characters',\n\t[keys.ruleMinMessage]: 'Must be at least {min}',\n\t[keys.ruleMaxMessage]: 'Must be at most {max}',\n\t[keys.ruleMinDateMessage]: 'Must be on or after {min}',\n\t[keys.ruleMaxDateMessage]: 'Must be on or before {max}',\n\t[keys.rulePatternMessage]: 'Invalid format',\n\t[keys.ruleEmailMessage]: 'Enter a valid email address',\n\t[keys.ruleUrlMessage]: 'Enter a valid URL',\n\t[keys.ruleOneOfMessage]: 'Choose an allowed value',\n\t[keys.ruleMatchesFieldMessage]: 'Does not match',\n\t[keys.ruleNotAlreadySubmittedMessage]: 'This value was already submitted',\n\t[keys.ruleMinLengthDescription]:\n\t\t'Fails when the entered text is shorter than the minimum number of characters.',\n\t[keys.ruleMaxLengthDescription]:\n\t\t'Fails when the entered text is longer than the maximum number of characters.',\n\t[keys.ruleMinDescription]: 'Fails when the entered number is below the minimum.',\n\t[keys.ruleMaxDescription]: 'Fails when the entered number is above the maximum.',\n\t[keys.ruleMinDateDescription]: 'Fails when the chosen date is earlier than the minimum date.',\n\t[keys.ruleMaxDateDescription]: 'Fails when the chosen date is later than the maximum date.',\n\t[keys.rulePatternDescription]:\n\t\t'Fails when the entered text does not match the regular expression.',\n\t[keys.ruleEmailDescription]: 'Fails when the entered value is not a valid email address.',\n\t[keys.ruleUrlDescription]: 'Fails when the entered value is not a valid http or https URL.',\n\t[keys.ruleOneOfDescription]:\n\t\t'Fails when the entered value is not one of the allowed values you list.',\n\t[keys.ruleMatchesFieldDescription]:\n\t\t\"Fails when this field's value does not equal the chosen field. Use it for confirm-email or confirm-password.\",\n\t[keys.ruleNotAlreadySubmittedDescription]:\n\t\t'Fails when this same value was already submitted to this form (checked on the server).',\n\t[keys.ruleFieldTargetInvalid]: 'The selected field no longer exists. Choose a valid field.',\n\t[keys.ruleParamMin]: 'Minimum',\n\t[keys.ruleParamMax]: 'Maximum',\n\t[keys.ruleParamMinDate]: 'Earliest date (YYYY-MM-DD)',\n\t[keys.ruleParamMaxDate]: 'Latest date (YYYY-MM-DD)',\n\t[keys.ruleParamPattern]: 'Pattern',\n\t[keys.ruleParamFlags]: 'Flags',\n\t[keys.ruleParamValues]: 'Allowed values',\n\t[keys.ruleParamField]: 'Field name',\n\t[keys.validationsLabel]: 'Validation rules',\n\t[keys.validationMessageLabel]: 'Custom message',\n\t[keys.conditionAddCondition]: 'Add condition',\n\t[keys.conditionAddOr]: 'Add \"or\" group',\n\t[keys.conditionAnd]: 'And',\n\t[keys.conditionOr]: 'Or',\n\t[keys.conditionRemove]: 'Remove',\n\t[keys.conditionNoFields]: 'Add named fields to this form to build a condition.',\n\t[keys.conditionEmpty]: 'No conditions. This field is always shown.',\n\t[keys.conditionSelectField]: 'Select a field',\n\t[keys.conditionTrue]: 'True',\n\t[keys.conditionFalse]: 'False',\n\t[keys.configHidden]: 'Hidden (capture without showing)',\n\t[keys.tabFields]: 'Fields',\n\t[keys.tabFlow]: 'Flow',\n\t[keys.tabActions]: 'Actions',\n\t[keys.tabField]: 'Field',\n\t[keys.tabValidation]: 'Validation',\n\t[keys.tabAdvanced]: 'Advanced',\n\t[keys.fieldTypeCalculation]: 'Calculation',\n\t[keys.configExpression]: 'Expression (JSON)',\n\t[keys.configExpressionDescription]:\n\t\t'Expression tree of nodes {\"type\":\"lit\"|\"ref\"|\"op\"|\"neg\"|\"fn\"|\"weight\"}. Example: {\"type\":\"op\",\"op\":\"+\",\"left\":{\"type\":\"ref\",\"field\":\"qty\"},\"right\":{\"type\":\"lit\",\"value\":10}}',\n\t[keys.configCalcDisplay]: 'Show computed value',\n\t[keys.validationCalcExpressionInvalid]: 'Enter a valid calculation expression',\n\t[keys.presentationPage]: 'Page',\n\t[keys.presentationModal]: 'Modal',\n\t[keys.presentationDrawer]: 'Drawer',\n\t[keys.presentationInline]: 'Inline',\n\t[keys.actionEmailTeam]: 'Email team',\n\t[keys.actionConfirmation]: 'Confirmation email',\n\t[keys.actionSignedWebhook]: 'Signed webhook',\n\t[keys.actionConfigTo]: 'To',\n\t[keys.actionConfigSubject]: 'Subject',\n\t[keys.actionConfigBody]: 'Body',\n\t[keys.actionConfigBodyDescription]:\n\t\t'Supports {{ fieldName|fallback }} tokens, {{*}} for all answers as lines, and {{*:table}} for all answers as a table.',\n\t[keys.actionConfigToField]: 'Email field name',\n\t[keys.actionConfigToFieldDescription]:\n\t\t'The email field on this form the confirmation is sent to.',\n\t[keys.actionConfigFrom]: 'From',\n\t[keys.actionConfigFromDescription]:\n\t\t'Sender address for this action. Leave empty to use the email adapter default.',\n\t[keys.actionConfigCc]: 'CC',\n\t[keys.actionConfigBcc]: 'BCC',\n\t[keys.actionConfigReplyTo]: 'Reply-to',\n\t[keys.validationFromUnknown]: 'Choose one of the configured from addresses',\n\t[keys.validationFromUnavailable]:\n\t\t'From addresses are currently unavailable. Please try again later.',\n\t[keys.validationToUnknown]: 'Choose one of the configured departments',\n\t[keys.validationToUnavailable]: 'Departments are currently unavailable. Please try again later.',\n\t[keys.actionConfigUrl]: 'URL',\n\t[keys.actionConfigUrlDescription]:\n\t\t'The endpoint that receives a signed JSON POST for each submission.',\n\t[keys.actionConfigSecret]: 'Secret',\n\t[keys.actionConfigSecretDescription]:\n\t\t'HMAC key used for the X-Form-Signature header, shared with the receiver.',\n\t[keys.validationUrlInvalid]: 'Enter a valid http or https URL',\n\t[keys.configActions]: 'Actions',\n\t[keys.fieldTypeConsent]: 'Consent',\n\t[keys.consentConfigSource]: 'Source',\n\t[keys.consentConfigSourceDescription]:\n\t\t'The statement the visitor agrees to. Its wording and policy page live with the source, so an edit there applies to every form using it.',\n\t[keys.consentSourcesField]: 'Consent sources',\n\t[keys.consentSourcesFieldDescription]: 'Statements forms can utilize in consent fields',\n\t[keys.consentSourceSingular]: 'Consent source',\n\t[keys.consentSourcePlural]: 'Consent sources',\n\t[keys.consentSourceLabel]: 'Name',\n\t[keys.consentSourceStatement]: 'Statement',\n\t[keys.consentSourcePage]: 'Statement source',\n\t[keys.consentSourcePageDescription]:\n\t\t'Must be set if you want form submissions to save a reference to your policy.',\n\t[keys.consentSourcesUnavailable]: 'Consent sources are unavailable. Try again shortly.',\n\t[keys.resultsResponses]: 'responses',\n\t[keys.resultsNoResponses]: 'No responses yet',\n\t[keys.resultsTruncated]: 'Showing a sample of responses',\n\t[keys.pollGroup]: 'Poll',\n\t[keys.pollResultsField]: 'Vote field',\n\t[keys.pollResultsFieldDescription]:\n\t\t'The choice field whose answers are counted as votes. Auto-selected when your form has one choice field. Use a choice field, never a free-text or PII field.',\n\t[keys.pollVoteFieldChoose]: \"Choose which field's answers count as votes.\",\n\t[keys.pollVoteFieldMissing]: 'Add a choice field to use as the poll question.',\n\t[keys.pollResultsVisibility]: 'Results visibility',\n\t[keys.pollVisibilityAfterVote]: 'After voting',\n\t[keys.pollVisibilityAfterClose]: 'After the poll closes',\n\t[keys.pollClosesAt]: 'Closes at',\n\t[keys.pollClosed]: 'This poll is closed.',\n\t[keys.pollResultsAfterClose]: 'Results will be shown after the poll closes.',\n\t[keys.pollOptionSource]: 'Option source',\n\t[keys.pollOptionSourceDescription]:\n\t\t'Populate the results field choices from app data instead of hand-authored options.',\n\t[keys.pollSourceConfig]: 'Source settings',\n\t[keys.pollOutcome]: 'Outcome',\n\t[keys.pollType]: 'Outcome type',\n\t[keys.pollTypeDescription]: 'How the winning option is decided when the poll closes.',\n\t[keys.pollTypeManual]: 'Set the winner manually',\n\t[keys.pollTypeMostVoted]: 'Most-voted option wins',\n\t[keys.pollTypeSource]: 'Winner from the option source',\n\t[keys.pollCloseButton]: 'Close poll now',\n\t[keys.pollReopenButton]: 'Reopen poll',\n\t[keys.pollCloseHintManual]: 'Closing records the selected winner as the result.',\n\t[keys.pollCloseHintMostVoted]: 'Closing now picks the most-voted option as the winner.',\n\t[keys.pollCloseHintSource]: 'Closing now resolves the winner from the option source.',\n\t[keys.pollReopenHint]: 'Reopening clears the recorded winner and lets people vote again.',\n\t[keys.pollCloseNeedsWinner]: 'Select a winning value first.',\n\t[keys.pollCloseManualNoWinner]: 'Set a winner before closing the poll.',\n\t[keys.pollWinningValue]: 'Winning values',\n\t[keys.pollWinningValueDescription]:\n\t\t'Pick the winning option once the outcome is decided, or several on a tie. Saving records the resolution time; clear them to reopen the outcome.',\n\t[keys.pollResolvedAt]: 'Resolved at',\n\t[keys.validationWinningValueUnknown]: 'The winning value must be one of the poll options.',\n\t[keys.validationWinningValueDisabled]: 'Enable the poll before recording an outcome.',\n\t[keys.endpointOptionsLoading]: 'Loading options...',\n\t[keys.endpointOptionsError]: 'Options could not be loaded.',\n\t[keys.pollOptionsUnavailable]: 'Poll options are currently unavailable. Please try again later.',\n\t[keys.pollFinalResult]: 'Final result',\n\t[keys.resultsWinner]: 'Winner',\n\t[keys.validationFileMissing]: 'Upload a file',\n\t[keys.validationFileMimeType]: 'File type not allowed',\n\t[keys.validationFileTooLarge]: 'File is too large',\n\t[keys.fieldTypeFile]: 'File upload',\n\t[keys.fileConfigMimeTypes]: 'Allowed file types',\n\t[keys.fileConfigMaxSize]: 'Maximum size (bytes)',\n\t[keys.fileConfigMaxSizeDescription]: 'Files larger than this are rejected.',\n\t[keys.fileTooLarge]: 'File is too large (max {max})',\n\t[keys.fileUploadMisconfigured]: 'File uploads are not configured for this form',\n\t[keys.fileHintAccepted]: 'Accepted: {types}',\n\t[keys.fileHintMaxSize]: 'Max size: {max}',\n\t[keys.spamRateLimited]: 'You have sent too many requests. Please try again later.',\n\t[keys.spamRejected]: 'Your submission could not be processed.',\n\t[keys.spamCaptchaFailed]: 'Captcha verification failed. Please try again.',\n\t[keys.collectionFormSingular]: 'Form',\n\t[keys.collectionFormPlural]: 'Forms',\n\t[keys.collectionSubmissionSingular]: 'Submission',\n\t[keys.collectionSubmissionPlural]: 'Submissions',\n\t[keys.statusComplete]: 'Complete',\n\t[keys.statusPartial]: 'Partial',\n\t[keys.fieldTypeRepeater]: 'Repeater',\n\t[keys.configMinRows]: 'Minimum rows',\n\t[keys.configMaxRows]: 'Maximum rows',\n\t[keys.configAddLabel]: 'Add button label',\n\t[keys.configSubFields]: 'Sub-fields',\n\t[keys.validationRepeaterMin]: 'Add at least {min} row(s)',\n\t[keys.validationRepeaterMax]: 'Remove rows to stay within {max}',\n\t[keys.repeaterAddRow]: 'Add row',\n\t[keys.repeaterRemoveRow]: 'Remove',\n\t[keys.repeaterRow]: 'Row {n}',\n\t[keys.repeaterRowCount]: '{count} row(s)',\n\t[keys.submissionConsent]: 'Consent',\n\t[keys.submissionDetails]: 'Submission details',\n\t[keys.submissionConsentAgreed]: 'Agreed',\n\t[keys.submissionConsentDeclined]: 'Declined',\n\t[keys.submissionMetaLocale]: 'Locale',\n\t[keys.submissionMetaReceivedAt]: 'Received at',\n\t[keys.submissionMetaIp]: 'IP address',\n\t[keys.submissionMetaUserAgent]: 'User agent',\n\t[keys.submissionMetaCaptcha]: 'Captcha',\n\t[keys.flowDescription]:\n\t\t'Only needed for multi-step forms: group fields into steps and route between them. Leave empty to show the form as a single page.',\n\t[keys.flowStepFallbackTitle]: 'Step {n}',\n\t[keys.flowFieldInStep]: 'in {step}',\n\t[keys.flowUnassigned]: 'Not in any step',\n\t[keys.flowAssignToStep]: 'Add to step',\n\t[keys.flowNextSequential]: 'Next step in order',\n\t[keys.flowNextTerminal]: 'End of form',\n\t[keys.flowFields]: 'Fields',\n\t[keys.flowDefaultNext]: 'Default next',\n\t[keys.flowConditionalTransitions]: 'Conditional transitions',\n\t[keys.flowStepTitleLabel]: 'Title',\n\t[keys.flowSelectStepPlaceholder]: 'Select step…',\n\t[keys.flowMoveTransitionUp]: 'Move transition up',\n\t[keys.flowMoveTransitionDown]: 'Move transition down',\n\t[keys.flowRemoveTransition]: 'Remove transition',\n\t[keys.flowAddAbove]: 'Add above',\n\t[keys.flowAddBelow]: 'Add below',\n\t[keys.flowGoTo]: 'go to',\n\t[keys.flowWhen]: 'when',\n\t[keys.flowNoFields]: 'No fields defined on the form yet.',\n\t[keys.flowFirstMatchWins]: '(first match wins)',\n\t[keys.flowAddTransition]: 'Add transition',\n\t[keys.flowNoSteps]: 'No steps defined. Add at least two steps to enable multi-page flow routing.',\n\t[keys.flowFallbackTitle]: 'Flow',\n\t[keys.fieldTypeMessage]: 'Message',\n\t[keys.configContent]: 'Content',\n\t[keys.tabResponse]: 'Response',\n\t[keys.responseType]: 'After submit',\n\t[keys.responseTypeMessage]: 'Show a message',\n\t[keys.responseTypeRedirect]: 'Redirect to a URL',\n\t[keys.responseMessage]: 'Message',\n\t[keys.responseRedirect]: 'Redirect',\n\t[keys.responseUrl]: 'URL',\n\t[keys.responseRedirectReference]: 'Document',\n\t[keys.responseRedirectReferenceDescription]: 'Redirect to an internal document instead of a URL',\n\t[keys.buttonsSubmitLabel]: 'Submit button label',\n\t[keys.buttonsNextLabel]: 'Next button label',\n\t[keys.buttonsPrevLabel]: 'Previous button label',\n\t[keys.formBack]: 'Back',\n\t[keys.formNext]: 'Next',\n\t[keys.formSubmit]: 'Submit',\n\t[keys.formMultistep]: 'Multi-step',\n\t[keys.formPollEnabled]: 'Poll',\n\t[keys.cellStepCountOne]: '{{count}} step',\n\t[keys.cellStepCountOther]: '{{count}} steps',\n\t[keys.cellFieldCountOne]: '{{count}} Field',\n\t[keys.cellFieldCountOther]: '{{count}} Fields',\n\t[keys.departmentsField]: 'Department emails',\n\t[keys.departmentsFieldDescription]:\n\t\t'Addresses a form can route submissions to, each shown by its label.',\n\t[keys.departmentSingular]: 'Department email',\n\t[keys.departmentPlural]: 'Department emails',\n\t[keys.departmentLabel]: 'Label',\n\t[keys.departmentEmail]: 'Email',\n\t[keys.departmentAddRow]: 'Add email',\n\t[keys.departmentRemoveRow]: 'Remove email',\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"en.js","names":[],"sources":["../../src/translations/en.ts"],"sourcesContent":["import { keys, type TranslationKey } from './keys'\n\n/**\n * English values, keyed by the typed constants in `keys.ts` so the two stay in\n * lockstep. The `Record<TranslationKey, string>` annotation makes a missing or\n * unknown key a type error. `translations/index.ts` nests these for Payload.\n */\nexport const en: Record<TranslationKey, string> = {\n\t[keys.fieldTitle]: 'Title',\n\t[keys.fieldTypeText]: 'Text',\n\t[keys.fieldTypeTextarea]: 'Textarea',\n\t[keys.fieldTypeEmail]: 'Email',\n\t[keys.fieldTypeNumber]: 'Number',\n\t[keys.fieldTypeSelect]: 'Select',\n\t[keys.fieldTypeCountry]: 'Country',\n\t[keys.fieldTypeState]: 'State',\n\t[keys.fieldTypeCheckbox]: 'Checkbox',\n\t[keys.fieldTypeDate]: 'Date',\n\t[keys.configOptions]: 'Options',\n\t[keys.configOption]: 'Option',\n\t[keys.configOptionLabel]: 'Label',\n\t[keys.configOptionValue]: 'Value',\n\t[keys.validationRequired]: 'This field is required',\n\t[keys.validationEmail]: 'Enter a valid email address',\n\t[keys.validationNumber]: 'Enter a valid number',\n\t[keys.validationDate]: 'Enter a valid date',\n\t[keys.validationSelect]: 'Choose a valid option',\n\t[keys.validationCountry]: 'Choose a valid country',\n\t[keys.validationState]: 'Choose a valid state',\n\t[keys.validationRegexPattern]: 'Enter a valid regular expression',\n\t[keys.validationRegexFlags]: 'Enter valid regular expression flags, for example i or gi',\n\t[keys.validationEmailFieldUnknown]: 'Choose an existing email field on this form',\n\t[keys.validationResultsFieldUnknown]: 'Choose an eligible choice field on this form',\n\t[keys.formatYes]: 'Yes',\n\t[keys.formatNo]: 'No',\n\t[keys.configName]: 'Name',\n\t[keys.configLabel]: 'Label',\n\t[keys.configRequired]: 'Required',\n\t[keys.configWidth]: 'Width',\n\t[keys.configPlaceholder]: 'Placeholder',\n\t[keys.configDescription]: 'Description',\n\t[keys.configVisibleWhen]: 'Show this field when',\n\t[keys.configValidateWhen]: 'Validate this field only when',\n\t[keys.submissionAnswers]: 'Answers',\n\t[keys.submissionNoAnswers]: 'No answers',\n\t[keys.ruleMinLength]: 'Minimum length',\n\t[keys.ruleMaxLength]: 'Maximum length',\n\t[keys.ruleMin]: 'Minimum',\n\t[keys.ruleMax]: 'Maximum',\n\t[keys.ruleMinDate]: 'Earliest date',\n\t[keys.ruleMaxDate]: 'Latest date',\n\t[keys.rulePattern]: 'Pattern',\n\t[keys.ruleEmail]: 'Email',\n\t[keys.ruleUrl]: 'URL',\n\t[keys.ruleOneOf]: 'One of',\n\t[keys.ruleMatchesField]: 'Matches field',\n\t[keys.ruleNotAlreadySubmitted]: 'Not already submitted',\n\t[keys.ruleMinLengthMessage]: 'Must be at least {min} characters',\n\t[keys.ruleMaxLengthMessage]: 'Must be at most {max} characters',\n\t[keys.ruleMinMessage]: 'Must be at least {min}',\n\t[keys.ruleMaxMessage]: 'Must be at most {max}',\n\t[keys.ruleMinDateMessage]: 'Must be on or after {min}',\n\t[keys.ruleMaxDateMessage]: 'Must be on or before {max}',\n\t[keys.rulePatternMessage]: 'Invalid format',\n\t[keys.ruleEmailMessage]: 'Enter a valid email address',\n\t[keys.ruleUrlMessage]: 'Enter a valid URL',\n\t[keys.ruleOneOfMessage]: 'Choose an allowed value',\n\t[keys.ruleMatchesFieldMessage]: 'Does not match',\n\t[keys.ruleNotAlreadySubmittedMessage]: 'This value was already submitted',\n\t[keys.ruleMinLengthDescription]:\n\t\t'Fails when the entered text is shorter than the minimum number of characters.',\n\t[keys.ruleMaxLengthDescription]:\n\t\t'Fails when the entered text is longer than the maximum number of characters.',\n\t[keys.ruleMinDescription]: 'Fails when the entered number is below the minimum.',\n\t[keys.ruleMaxDescription]: 'Fails when the entered number is above the maximum.',\n\t[keys.ruleMinDateDescription]: 'Fails when the chosen date is earlier than the minimum date.',\n\t[keys.ruleMaxDateDescription]: 'Fails when the chosen date is later than the maximum date.',\n\t[keys.rulePatternDescription]:\n\t\t'Fails when the entered text does not match the regular expression.',\n\t[keys.ruleEmailDescription]: 'Fails when the entered value is not a valid email address.',\n\t[keys.ruleUrlDescription]: 'Fails when the entered value is not a valid http or https URL.',\n\t[keys.ruleOneOfDescription]:\n\t\t'Fails when the entered value is not one of the allowed values you list.',\n\t[keys.ruleMatchesFieldDescription]:\n\t\t\"Fails when this field's value does not equal the chosen field. Use it for confirm-email or confirm-password.\",\n\t[keys.ruleNotAlreadySubmittedDescription]:\n\t\t'Fails when this same value was already submitted to this form (checked on the server).',\n\t[keys.ruleFieldTargetInvalid]: 'The selected field no longer exists. Choose a valid field.',\n\t[keys.ruleParamMin]: 'Minimum',\n\t[keys.ruleParamMax]: 'Maximum',\n\t[keys.ruleParamMinDate]: 'Earliest date (YYYY-MM-DD)',\n\t[keys.ruleParamMaxDate]: 'Latest date (YYYY-MM-DD)',\n\t[keys.ruleParamPattern]: 'Pattern',\n\t[keys.ruleParamFlags]: 'Flags',\n\t[keys.ruleParamValues]: 'Allowed values',\n\t[keys.ruleParamField]: 'Field name',\n\t[keys.validationsLabel]: 'Validation rules',\n\t[keys.validationMessageLabel]: 'Custom message',\n\t[keys.conditionAddCondition]: 'Add condition',\n\t[keys.conditionAddOr]: 'Add \"or\" group',\n\t[keys.conditionAnd]: 'And',\n\t[keys.conditionOr]: 'Or',\n\t[keys.conditionRemove]: 'Remove',\n\t[keys.conditionNoFields]: 'Add named fields to this form to build a condition.',\n\t[keys.conditionEmpty]: 'No conditions. This field is always shown.',\n\t[keys.conditionSelectField]: 'Select a field',\n\t[keys.conditionTrue]: 'True',\n\t[keys.conditionFalse]: 'False',\n\t[keys.configHidden]: 'Hidden (capture without showing)',\n\t[keys.tabFields]: 'Fields',\n\t[keys.tabFlow]: 'Flow',\n\t[keys.tabActions]: 'Actions',\n\t[keys.tabField]: 'Field',\n\t[keys.tabValidation]: 'Validation',\n\t[keys.tabAdvanced]: 'Advanced',\n\t[keys.fieldTypeCalculation]: 'Calculation',\n\t[keys.configExpression]: 'Expression (JSON)',\n\t[keys.configExpressionDescription]:\n\t\t'Expression tree of nodes {\"type\":\"lit\"|\"ref\"|\"op\"|\"neg\"|\"fn\"|\"weight\"}. Example: {\"type\":\"op\",\"op\":\"+\",\"left\":{\"type\":\"ref\",\"field\":\"qty\"},\"right\":{\"type\":\"lit\",\"value\":10}}',\n\t[keys.configCalcDisplay]: 'Show computed value',\n\t[keys.validationCalcExpressionInvalid]: 'Enter a valid calculation expression',\n\t[keys.presentationPage]: 'Page',\n\t[keys.presentationModal]: 'Modal',\n\t[keys.presentationDrawer]: 'Drawer',\n\t[keys.presentationInline]: 'Inline',\n\t[keys.actionEmailTeam]: 'Email team',\n\t[keys.actionConfirmation]: 'Confirmation email',\n\t[keys.actionSignedWebhook]: 'Signed webhook',\n\t[keys.actionConfigTo]: 'To',\n\t[keys.actionConfigSubject]: 'Subject',\n\t[keys.actionConfigBody]: 'Body',\n\t[keys.actionConfigBodyDescription]:\n\t\t'Supports {{ fieldName|fallback }} tokens, {{*}} for all answers as lines, and {{*:table}} for all answers as a table.',\n\t[keys.actionConfigToField]: 'Email field name',\n\t[keys.actionConfigToFieldDescription]:\n\t\t'The email field on this form the confirmation is sent to.',\n\t[keys.actionConfigFrom]: 'From',\n\t[keys.actionConfigFromDescription]:\n\t\t'Sender address for this action. Leave empty to use the email adapter default.',\n\t[keys.actionConfigCc]: 'CC',\n\t[keys.actionConfigBcc]: 'BCC',\n\t[keys.actionConfigReplyTo]: 'Reply-to',\n\t[keys.recipientsGroupDepartments]: 'Departments',\n\t[keys.recipientsGroupFields]: 'Form fields',\n\t[keys.validationRecipientInvalid]: 'Enter a valid email address.',\n\t[keys.validationRecipientUnknownField]: 'References a field that no longer exists.',\n\t[keys.validationRecipientNotAllowed]: 'This recipient is not in the allowed list.',\n\t[keys.validationRecipientOptionsUnavailable]:\n\t\t'Recipient options are currently unavailable. Please try again later.',\n\t[keys.validationFromUnknown]: 'Choose one of the configured from addresses',\n\t[keys.validationFromUnavailable]:\n\t\t'From addresses are currently unavailable. Please try again later.',\n\t[keys.actionConfigUrl]: 'URL',\n\t[keys.actionConfigUrlDescription]:\n\t\t'The endpoint that receives a signed JSON POST for each submission.',\n\t[keys.actionConfigSecret]: 'Secret',\n\t[keys.actionConfigSecretDescription]:\n\t\t'HMAC key used for the X-Form-Signature header, shared with the receiver.',\n\t[keys.validationUrlInvalid]: 'Enter a valid http or https URL',\n\t[keys.configActions]: 'Actions',\n\t[keys.fieldTypeConsent]: 'Consent',\n\t[keys.consentConfigSource]: 'Source',\n\t[keys.consentConfigSourceDescription]:\n\t\t'The statement the visitor agrees to. Its wording and policy page live with the source, so an edit there applies to every form using it.',\n\t[keys.consentSourcesField]: 'Consent sources',\n\t[keys.consentSourcesFieldDescription]: 'Statements forms can utilize in consent fields',\n\t[keys.consentSourceSingular]: 'Consent source',\n\t[keys.consentSourcePlural]: 'Consent sources',\n\t[keys.consentSourceLabel]: 'Name',\n\t[keys.consentSourceStatement]: 'Statement',\n\t[keys.consentSourcePage]: 'Statement source',\n\t[keys.consentSourcePageDescription]:\n\t\t'Must be set if you want form submissions to save a reference to your policy.',\n\t[keys.consentSourcesUnavailable]: 'Consent sources are unavailable. Try again shortly.',\n\t[keys.resultsResponses]: 'responses',\n\t[keys.resultsNoResponses]: 'No responses yet',\n\t[keys.resultsTruncated]: 'Showing a sample of responses',\n\t[keys.pollGroup]: 'Poll',\n\t[keys.pollResultsField]: 'Vote field',\n\t[keys.pollResultsFieldDescription]:\n\t\t'The choice field whose answers are counted as votes. Auto-selected when your form has one choice field. Use a choice field, never a free-text or PII field.',\n\t[keys.pollVoteFieldChoose]: \"Choose which field's answers count as votes.\",\n\t[keys.pollVoteFieldMissing]: 'Add a choice field to use as the poll question.',\n\t[keys.pollResultsVisibility]: 'Results visibility',\n\t[keys.pollVisibilityAfterVote]: 'After voting',\n\t[keys.pollVisibilityAfterClose]: 'After the poll closes',\n\t[keys.pollClosesAt]: 'Closes at',\n\t[keys.pollClosed]: 'This poll is closed.',\n\t[keys.pollResultsAfterClose]: 'Results will be shown after the poll closes.',\n\t[keys.pollOptionSource]: 'Option source',\n\t[keys.pollOptionSourceDescription]:\n\t\t'Populate the results field choices from app data instead of hand-authored options.',\n\t[keys.pollSourceConfig]: 'Source settings',\n\t[keys.pollOutcome]: 'Outcome',\n\t[keys.pollType]: 'Outcome type',\n\t[keys.pollTypeDescription]: 'How the winning option is decided when the poll closes.',\n\t[keys.pollTypeManual]: 'Set the winner manually',\n\t[keys.pollTypeMostVoted]: 'Most-voted option wins',\n\t[keys.pollTypeSource]: 'Winner from the option source',\n\t[keys.pollCloseButton]: 'Close poll now',\n\t[keys.pollReopenButton]: 'Reopen poll',\n\t[keys.pollCloseHintManual]: 'Closing records the selected winner as the result.',\n\t[keys.pollCloseHintMostVoted]: 'Closing now picks the most-voted option as the winner.',\n\t[keys.pollCloseHintSource]: 'Closing now resolves the winner from the option source.',\n\t[keys.pollReopenHint]: 'Reopening clears the recorded winner and lets people vote again.',\n\t[keys.pollCloseNeedsWinner]: 'Select a winning value first.',\n\t[keys.pollCloseManualNoWinner]: 'Set a winner before closing the poll.',\n\t[keys.pollWinningValue]: 'Winning values',\n\t[keys.pollWinningValueDescription]:\n\t\t'Pick the winning option once the outcome is decided, or several on a tie. Saving records the resolution time; clear them to reopen the outcome.',\n\t[keys.pollResolvedAt]: 'Resolved at',\n\t[keys.validationWinningValueUnknown]: 'The winning value must be one of the poll options.',\n\t[keys.validationWinningValueDisabled]: 'Enable the poll before recording an outcome.',\n\t[keys.endpointOptionsLoading]: 'Loading options...',\n\t[keys.endpointOptionsError]: 'Options could not be loaded.',\n\t[keys.pollOptionsUnavailable]: 'Poll options are currently unavailable. Please try again later.',\n\t[keys.pollFinalResult]: 'Final result',\n\t[keys.pollResultsError]: 'Results could not be loaded.',\n\t[keys.resultsWinner]: 'Winner',\n\t[keys.validationFileMissing]: 'Upload a file',\n\t[keys.validationFileMimeType]: 'File type not allowed',\n\t[keys.validationFileTooLarge]: 'File is too large',\n\t[keys.fieldTypeFile]: 'File upload',\n\t[keys.fileConfigMimeTypes]: 'Allowed file types',\n\t[keys.fileConfigMaxSize]: 'Maximum size (bytes)',\n\t[keys.fileConfigMaxSizeDescription]: 'Files larger than this are rejected.',\n\t[keys.fileTooLarge]: 'File is too large (max {max})',\n\t[keys.fileUploadMisconfigured]: 'File uploads are not configured for this form',\n\t[keys.fileHintAccepted]: 'Accepted: {types}',\n\t[keys.fileHintMaxSize]: 'Max size: {max}',\n\t[keys.fileUploaded]: 'Uploaded file',\n\t[keys.fileUploading]: 'Uploading',\n\t[keys.fileUploadFailed]: 'Upload failed',\n\t[keys.fileRemove]: 'Remove',\n\t[keys.spamRateLimited]: 'You have sent too many requests. Please try again later.',\n\t[keys.spamRejected]: 'Your submission could not be processed.',\n\t[keys.spamCaptchaFailed]: 'Captcha verification failed. Please try again.',\n\t[keys.collectionFormSingular]: 'Form',\n\t[keys.collectionFormPlural]: 'Forms',\n\t[keys.collectionSubmissionSingular]: 'Submission',\n\t[keys.collectionSubmissionPlural]: 'Submissions',\n\t[keys.statusComplete]: 'Complete',\n\t[keys.statusPartial]: 'Partial',\n\t[keys.fieldTypeRepeater]: 'Repeater',\n\t[keys.configMinRows]: 'Minimum rows',\n\t[keys.configMaxRows]: 'Maximum rows',\n\t[keys.configAddLabel]: 'Add button label',\n\t[keys.configSubFields]: 'Sub-fields',\n\t[keys.validationRepeaterMin]: 'Add at least {min} row(s)',\n\t[keys.validationRepeaterMax]: 'Remove rows to stay within {max}',\n\t[keys.repeaterAddRow]: 'Add row',\n\t[keys.repeaterRemoveRow]: 'Remove',\n\t[keys.repeaterRow]: 'Row {n}',\n\t[keys.repeaterRowCount]: '{count} row(s)',\n\t[keys.submissionConsent]: 'Consent',\n\t[keys.submissionDetails]: 'Submission details',\n\t[keys.submissionConsentAgreed]: 'Agreed',\n\t[keys.submissionConsentDeclined]: 'Declined',\n\t[keys.submissionMetaLocale]: 'Locale',\n\t[keys.submissionMetaReceivedAt]: 'Received at',\n\t[keys.submissionMetaIp]: 'IP address',\n\t[keys.submissionMetaUserAgent]: 'User agent',\n\t[keys.submissionMetaCaptcha]: 'Captcha',\n\t[keys.flowDescription]:\n\t\t'Only needed for multi-step forms: group fields into steps and route between them. Leave empty to show the form as a single page.',\n\t[keys.flowStepFallbackTitle]: 'Step {n}',\n\t[keys.flowFieldInStep]: 'in {step}',\n\t[keys.flowUnassigned]: 'Not in any step',\n\t[keys.flowAssignToStep]: 'Add to step',\n\t[keys.flowNextSequential]: 'Next step in order',\n\t[keys.flowNextTerminal]: 'End of form',\n\t[keys.flowFields]: 'Fields',\n\t[keys.flowDefaultNext]: 'Default next',\n\t[keys.flowConditionalTransitions]: 'Conditional transitions',\n\t[keys.flowStepTitleLabel]: 'Title',\n\t[keys.flowSelectStepPlaceholder]: 'Select step…',\n\t[keys.flowMoveTransitionUp]: 'Move transition up',\n\t[keys.flowMoveTransitionDown]: 'Move transition down',\n\t[keys.flowRemoveTransition]: 'Remove transition',\n\t[keys.flowAddAbove]: 'Add above',\n\t[keys.flowAddBelow]: 'Add below',\n\t[keys.flowGoTo]: 'go to',\n\t[keys.flowWhen]: 'when',\n\t[keys.flowNoFields]: 'No fields defined on the form yet.',\n\t[keys.flowFirstMatchWins]: '(first match wins)',\n\t[keys.flowAddTransition]: 'Add transition',\n\t[keys.flowNoSteps]: 'No steps defined. Add at least two steps to enable multi-page flow routing.',\n\t[keys.flowFallbackTitle]: 'Flow',\n\t[keys.fieldTypeMessage]: 'Message',\n\t[keys.configContent]: 'Content',\n\t[keys.tabResponse]: 'Response',\n\t[keys.responseType]: 'After submit',\n\t[keys.responseTypeMessage]: 'Show a message',\n\t[keys.responseTypeRedirect]: 'Redirect to a URL',\n\t[keys.responseMessage]: 'Message',\n\t[keys.responseRedirect]: 'Redirect',\n\t[keys.responseUrl]: 'URL',\n\t[keys.responseRedirectReference]: 'Document',\n\t[keys.responseRedirectReferenceDescription]: 'Redirect to an internal document instead of a URL',\n\t[keys.buttonsSubmitLabel]: 'Submit button label',\n\t[keys.buttonsNextLabel]: 'Next button label',\n\t[keys.buttonsPrevLabel]: 'Previous button label',\n\t[keys.formBack]: 'Back',\n\t[keys.formNext]: 'Next',\n\t[keys.formSubmit]: 'Submit',\n\t[keys.formMultistep]: 'Multi-step',\n\t[keys.formPollEnabled]: 'Poll',\n\t[keys.formClose]: 'Close',\n\t[keys.formSuccess]: 'Thank you.',\n\t[keys.formSubmitFailed]: 'Submission failed',\n\t[keys.cellStepCountOne]: '{{count}} step',\n\t[keys.cellStepCountOther]: '{{count}} steps',\n\t[keys.cellFieldCountOne]: '{{count}} Field',\n\t[keys.cellFieldCountOther]: '{{count}} Fields',\n\t[keys.departmentsField]: 'Department emails',\n\t[keys.departmentsFieldDescription]:\n\t\t'Addresses a form can route submissions to, each shown by its label.',\n\t[keys.departmentSingular]: 'Department email',\n\t[keys.departmentPlural]: 'Department emails',\n\t[keys.departmentLabel]: 'Label',\n\t[keys.departmentEmail]: 'Email',\n\t[keys.departmentAddRow]: 'Add email',\n\t[keys.departmentRemoveRow]: 'Remove email',\n}\n"],"mappings":"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"}
|
|
@@ -129,10 +129,14 @@ declare const keys: {
|
|
|
129
129
|
readonly actionConfigCc: "formBuilder:action.config.cc";
|
|
130
130
|
readonly actionConfigBcc: "formBuilder:action.config.bcc";
|
|
131
131
|
readonly actionConfigReplyTo: "formBuilder:action.config.replyTo";
|
|
132
|
+
readonly recipientsGroupDepartments: "formBuilder:recipients.group.departments";
|
|
133
|
+
readonly recipientsGroupFields: "formBuilder:recipients.group.fields";
|
|
134
|
+
readonly validationRecipientInvalid: "formBuilder:validation.recipient.invalid";
|
|
135
|
+
readonly validationRecipientUnknownField: "formBuilder:validation.recipient.unknownField";
|
|
136
|
+
readonly validationRecipientNotAllowed: "formBuilder:validation.recipient.notAllowed";
|
|
137
|
+
readonly validationRecipientOptionsUnavailable: "formBuilder:validation.recipient.optionsUnavailable";
|
|
132
138
|
readonly validationFromUnknown: "formBuilder:validation.fromUnknown";
|
|
133
139
|
readonly validationFromUnavailable: "formBuilder:validation.fromUnavailable";
|
|
134
|
-
readonly validationToUnknown: "formBuilder:validation.toUnknown";
|
|
135
|
-
readonly validationToUnavailable: "formBuilder:validation.toUnavailable";
|
|
136
140
|
readonly actionConfigUrl: "formBuilder:action.config.url";
|
|
137
141
|
readonly actionConfigUrlDescription: "formBuilder:action.config.urlDescription";
|
|
138
142
|
readonly actionConfigSecret: "formBuilder:action.config.secret";
|
|
@@ -191,6 +195,7 @@ declare const keys: {
|
|
|
191
195
|
readonly endpointOptionsError: "formBuilder:endpointOptions.error";
|
|
192
196
|
readonly pollOptionsUnavailable: "formBuilder:poll.optionsUnavailable";
|
|
193
197
|
readonly pollFinalResult: "formBuilder:poll.finalResult";
|
|
198
|
+
readonly pollResultsError: "formBuilder:poll.resultsError";
|
|
194
199
|
readonly resultsWinner: "formBuilder:results.winner";
|
|
195
200
|
readonly validationFileMissing: "formBuilder:validation.file.missing";
|
|
196
201
|
readonly validationFileMimeType: "formBuilder:validation.file.mimeType";
|
|
@@ -203,6 +208,10 @@ declare const keys: {
|
|
|
203
208
|
readonly fileUploadMisconfigured: "formBuilder:file.uploadMisconfigured";
|
|
204
209
|
readonly fileHintAccepted: "formBuilder:file.hint.accepted";
|
|
205
210
|
readonly fileHintMaxSize: "formBuilder:file.hint.maxSize";
|
|
211
|
+
readonly fileUploaded: "formBuilder:file.uploaded";
|
|
212
|
+
readonly fileUploading: "formBuilder:file.uploading";
|
|
213
|
+
readonly fileUploadFailed: "formBuilder:file.uploadFailed";
|
|
214
|
+
readonly fileRemove: "formBuilder:file.remove";
|
|
206
215
|
readonly spamRateLimited: "formBuilder:spam.rateLimited";
|
|
207
216
|
readonly spamRejected: "formBuilder:spam.rejected";
|
|
208
217
|
readonly spamCaptchaFailed: "formBuilder:spam.captchaFailed";
|
|
@@ -275,6 +284,9 @@ declare const keys: {
|
|
|
275
284
|
readonly formSubmit: "formBuilder:form.submit";
|
|
276
285
|
readonly formMultistep: "formBuilder:form.multistep";
|
|
277
286
|
readonly formPollEnabled: "formBuilder:form.pollEnabled";
|
|
287
|
+
readonly formClose: "formBuilder:form.close";
|
|
288
|
+
readonly formSuccess: "formBuilder:form.success";
|
|
289
|
+
readonly formSubmitFailed: "formBuilder:form.submitFailed";
|
|
278
290
|
readonly cellStepCountOne: "formBuilder:cell.stepCount.one";
|
|
279
291
|
readonly cellStepCountOther: "formBuilder:cell.stepCount.other";
|
|
280
292
|
readonly cellFieldCountOne: "formBuilder:cell.fieldCount.one";
|
|
@@ -129,10 +129,14 @@ const keys = {
|
|
|
129
129
|
actionConfigCc: "formBuilder:action.config.cc",
|
|
130
130
|
actionConfigBcc: "formBuilder:action.config.bcc",
|
|
131
131
|
actionConfigReplyTo: "formBuilder:action.config.replyTo",
|
|
132
|
+
recipientsGroupDepartments: "formBuilder:recipients.group.departments",
|
|
133
|
+
recipientsGroupFields: "formBuilder:recipients.group.fields",
|
|
134
|
+
validationRecipientInvalid: "formBuilder:validation.recipient.invalid",
|
|
135
|
+
validationRecipientUnknownField: "formBuilder:validation.recipient.unknownField",
|
|
136
|
+
validationRecipientNotAllowed: "formBuilder:validation.recipient.notAllowed",
|
|
137
|
+
validationRecipientOptionsUnavailable: "formBuilder:validation.recipient.optionsUnavailable",
|
|
132
138
|
validationFromUnknown: "formBuilder:validation.fromUnknown",
|
|
133
139
|
validationFromUnavailable: "formBuilder:validation.fromUnavailable",
|
|
134
|
-
validationToUnknown: "formBuilder:validation.toUnknown",
|
|
135
|
-
validationToUnavailable: "formBuilder:validation.toUnavailable",
|
|
136
140
|
actionConfigUrl: "formBuilder:action.config.url",
|
|
137
141
|
actionConfigUrlDescription: "formBuilder:action.config.urlDescription",
|
|
138
142
|
actionConfigSecret: "formBuilder:action.config.secret",
|
|
@@ -191,6 +195,7 @@ const keys = {
|
|
|
191
195
|
endpointOptionsError: "formBuilder:endpointOptions.error",
|
|
192
196
|
pollOptionsUnavailable: "formBuilder:poll.optionsUnavailable",
|
|
193
197
|
pollFinalResult: "formBuilder:poll.finalResult",
|
|
198
|
+
pollResultsError: "formBuilder:poll.resultsError",
|
|
194
199
|
resultsWinner: "formBuilder:results.winner",
|
|
195
200
|
validationFileMissing: "formBuilder:validation.file.missing",
|
|
196
201
|
validationFileMimeType: "formBuilder:validation.file.mimeType",
|
|
@@ -203,6 +208,10 @@ const keys = {
|
|
|
203
208
|
fileUploadMisconfigured: "formBuilder:file.uploadMisconfigured",
|
|
204
209
|
fileHintAccepted: "formBuilder:file.hint.accepted",
|
|
205
210
|
fileHintMaxSize: "formBuilder:file.hint.maxSize",
|
|
211
|
+
fileUploaded: "formBuilder:file.uploaded",
|
|
212
|
+
fileUploading: "formBuilder:file.uploading",
|
|
213
|
+
fileUploadFailed: "formBuilder:file.uploadFailed",
|
|
214
|
+
fileRemove: "formBuilder:file.remove",
|
|
206
215
|
spamRateLimited: "formBuilder:spam.rateLimited",
|
|
207
216
|
spamRejected: "formBuilder:spam.rejected",
|
|
208
217
|
spamCaptchaFailed: "formBuilder:spam.captchaFailed",
|
|
@@ -275,6 +284,9 @@ const keys = {
|
|
|
275
284
|
formSubmit: "formBuilder:form.submit",
|
|
276
285
|
formMultistep: "formBuilder:form.multistep",
|
|
277
286
|
formPollEnabled: "formBuilder:form.pollEnabled",
|
|
287
|
+
formClose: "formBuilder:form.close",
|
|
288
|
+
formSuccess: "formBuilder:form.success",
|
|
289
|
+
formSubmitFailed: "formBuilder:form.submitFailed",
|
|
278
290
|
cellStepCountOne: "formBuilder:cell.stepCount.one",
|
|
279
291
|
cellStepCountOther: "formBuilder:cell.stepCount.other",
|
|
280
292
|
cellFieldCountOne: "formBuilder:cell.fieldCount.one",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","names":[],"sources":["../../src/translations/keys.ts"],"sourcesContent":["/**\n * Typed translation keys. Lookups must go through these constants, not string\n * literals (enforced by requireI18nKeysTyped.grit). Every key here must have a\n * value in every locale (`en.ts`), or it is a type error.\n */\nexport const keys = {\n\tfieldTitle: 'formBuilder:fieldTitle',\n\tfieldTypeText: 'formBuilder:fieldType.text',\n\tfieldTypeTextarea: 'formBuilder:fieldType.textarea',\n\tfieldTypeEmail: 'formBuilder:fieldType.email',\n\tfieldTypeNumber: 'formBuilder:fieldType.number',\n\tfieldTypeSelect: 'formBuilder:fieldType.select',\n\tfieldTypeCountry: 'formBuilder:fieldType.country',\n\tfieldTypeState: 'formBuilder:fieldType.state',\n\tfieldTypeCheckbox: 'formBuilder:fieldType.checkbox',\n\tfieldTypeDate: 'formBuilder:fieldType.date',\n\tconfigOptions: 'formBuilder:config.options',\n\tconfigOption: 'formBuilder:config.option',\n\tconfigOptionLabel: 'formBuilder:config.optionLabel',\n\tconfigOptionValue: 'formBuilder:config.optionValue',\n\tvalidationRequired: 'formBuilder:validation.required',\n\tvalidationEmail: 'formBuilder:validation.email',\n\tvalidationNumber: 'formBuilder:validation.number',\n\tvalidationDate: 'formBuilder:validation.date',\n\tvalidationSelect: 'formBuilder:validation.select',\n\tvalidationCountry: 'formBuilder:validation.country',\n\tvalidationState: 'formBuilder:validation.state',\n\tvalidationRegexPattern: 'formBuilder:validation.regexPattern',\n\tvalidationRegexFlags: 'formBuilder:validation.regexFlags',\n\tvalidationEmailFieldUnknown: 'formBuilder:validation.emailFieldUnknown',\n\tvalidationResultsFieldUnknown: 'formBuilder:validation.resultsFieldUnknown',\n\tformatYes: 'formBuilder:format.yes',\n\tformatNo: 'formBuilder:format.no',\n\tconfigName: 'formBuilder:config.name',\n\tconfigLabel: 'formBuilder:config.label',\n\tconfigRequired: 'formBuilder:config.required',\n\tconfigWidth: 'formBuilder:config.width',\n\tconfigPlaceholder: 'formBuilder:config.placeholder',\n\tconfigDescription: 'formBuilder:config.description',\n\tconfigVisibleWhen: 'formBuilder:config.visibleWhen',\n\tconfigValidateWhen: 'formBuilder:config.validateWhen',\n\tsubmissionAnswers: 'formBuilder:submission.answers',\n\tsubmissionNoAnswers: 'formBuilder:submission.noAnswers',\n\truleMinLength: 'formBuilder:rule.minLength.label',\n\truleMaxLength: 'formBuilder:rule.maxLength.label',\n\truleMin: 'formBuilder:rule.min.label',\n\truleMax: 'formBuilder:rule.max.label',\n\truleMinDate: 'formBuilder:rule.minDate.label',\n\truleMaxDate: 'formBuilder:rule.maxDate.label',\n\trulePattern: 'formBuilder:rule.pattern.label',\n\truleEmail: 'formBuilder:rule.email.label',\n\truleUrl: 'formBuilder:rule.url.label',\n\truleOneOf: 'formBuilder:rule.oneOf.label',\n\truleMatchesField: 'formBuilder:rule.matchesField.label',\n\truleNotAlreadySubmitted: 'formBuilder:rule.notAlreadySubmitted.label',\n\truleMinLengthMessage: 'formBuilder:rule.minLength.message',\n\truleMaxLengthMessage: 'formBuilder:rule.maxLength.message',\n\truleMinMessage: 'formBuilder:rule.min.message',\n\truleMaxMessage: 'formBuilder:rule.max.message',\n\truleMinDateMessage: 'formBuilder:rule.minDate.message',\n\truleMaxDateMessage: 'formBuilder:rule.maxDate.message',\n\trulePatternMessage: 'formBuilder:rule.pattern.message',\n\truleEmailMessage: 'formBuilder:rule.email.message',\n\truleUrlMessage: 'formBuilder:rule.url.message',\n\truleOneOfMessage: 'formBuilder:rule.oneOf.message',\n\truleMatchesFieldMessage: 'formBuilder:rule.matchesField.message',\n\truleNotAlreadySubmittedMessage: 'formBuilder:rule.notAlreadySubmitted.message',\n\truleMinLengthDescription: 'formBuilder:rule.minLength.description',\n\truleMaxLengthDescription: 'formBuilder:rule.maxLength.description',\n\truleMinDescription: 'formBuilder:rule.min.description',\n\truleMaxDescription: 'formBuilder:rule.max.description',\n\truleMinDateDescription: 'formBuilder:rule.minDate.description',\n\truleMaxDateDescription: 'formBuilder:rule.maxDate.description',\n\trulePatternDescription: 'formBuilder:rule.pattern.description',\n\truleEmailDescription: 'formBuilder:rule.email.description',\n\truleUrlDescription: 'formBuilder:rule.url.description',\n\truleOneOfDescription: 'formBuilder:rule.oneOf.description',\n\truleMatchesFieldDescription: 'formBuilder:rule.matchesField.description',\n\truleNotAlreadySubmittedDescription: 'formBuilder:rule.notAlreadySubmitted.description',\n\truleFieldTargetInvalid: 'formBuilder:rule.fieldTargetInvalid',\n\truleParamMin: 'formBuilder:rule.param.min',\n\truleParamMax: 'formBuilder:rule.param.max',\n\truleParamMinDate: 'formBuilder:rule.param.minDate',\n\truleParamMaxDate: 'formBuilder:rule.param.maxDate',\n\truleParamPattern: 'formBuilder:rule.param.pattern',\n\truleParamFlags: 'formBuilder:rule.param.flags',\n\truleParamValues: 'formBuilder:rule.param.values',\n\truleParamField: 'formBuilder:rule.param.field',\n\tvalidationsLabel: 'formBuilder:validations.label',\n\tvalidationMessageLabel: 'formBuilder:validations.message',\n\tconditionAddCondition: 'formBuilder:condition.addCondition',\n\tconditionAddOr: 'formBuilder:condition.addOr',\n\tconditionAnd: 'formBuilder:condition.and',\n\tconditionOr: 'formBuilder:condition.or',\n\tconditionRemove: 'formBuilder:condition.remove',\n\tconditionNoFields: 'formBuilder:condition.noFields',\n\tconditionEmpty: 'formBuilder:condition.empty',\n\tconditionSelectField: 'formBuilder:condition.selectField',\n\tconditionTrue: 'formBuilder:condition.true',\n\tconditionFalse: 'formBuilder:condition.false',\n\tconfigHidden: 'formBuilder:config.hidden',\n\ttabFields: 'formBuilder:tab.fields',\n\ttabFlow: 'formBuilder:tab.flow',\n\ttabActions: 'formBuilder:tab.actions',\n\ttabField: 'formBuilder:tab.field',\n\ttabValidation: 'formBuilder:tab.validation',\n\ttabAdvanced: 'formBuilder:tab.advanced',\n\tfieldTypeCalculation: 'formBuilder:fieldType.calculation',\n\tconfigExpression: 'formBuilder:config.expression',\n\tconfigExpressionDescription: 'formBuilder:config.expressionDescription',\n\tconfigCalcDisplay: 'formBuilder:config.calcDisplay',\n\tvalidationCalcExpressionInvalid: 'formBuilder:validation.calcExpressionInvalid',\n\tpresentationPage: 'formBuilder:presentation.page',\n\tpresentationModal: 'formBuilder:presentation.modal',\n\tpresentationDrawer: 'formBuilder:presentation.drawer',\n\tpresentationInline: 'formBuilder:presentation.inline',\n\tactionEmailTeam: 'formBuilder:action.emailTeam',\n\tactionConfirmation: 'formBuilder:action.confirmation',\n\tactionSignedWebhook: 'formBuilder:action.signedWebhook',\n\tactionConfigTo: 'formBuilder:action.config.to',\n\tactionConfigSubject: 'formBuilder:action.config.subject',\n\tactionConfigBody: 'formBuilder:action.config.body',\n\tactionConfigBodyDescription: 'formBuilder:action.config.bodyDescription',\n\tactionConfigToField: 'formBuilder:action.config.toField',\n\tactionConfigToFieldDescription: 'formBuilder:action.config.toFieldDescription',\n\tactionConfigFrom: 'formBuilder:action.config.from',\n\tactionConfigFromDescription: 'formBuilder:action.config.fromDescription',\n\tactionConfigCc: 'formBuilder:action.config.cc',\n\tactionConfigBcc: 'formBuilder:action.config.bcc',\n\tactionConfigReplyTo: 'formBuilder:action.config.replyTo',\n\tvalidationFromUnknown: 'formBuilder:validation.fromUnknown',\n\tvalidationFromUnavailable: 'formBuilder:validation.fromUnavailable',\n\tvalidationToUnknown: 'formBuilder:validation.toUnknown',\n\tvalidationToUnavailable: 'formBuilder:validation.toUnavailable',\n\tactionConfigUrl: 'formBuilder:action.config.url',\n\tactionConfigUrlDescription: 'formBuilder:action.config.urlDescription',\n\tactionConfigSecret: 'formBuilder:action.config.secret',\n\tactionConfigSecretDescription: 'formBuilder:action.config.secretDescription',\n\tvalidationUrlInvalid: 'formBuilder:validation.urlInvalid',\n\tconfigActions: 'formBuilder:config.actions',\n\tfieldTypeConsent: 'formBuilder:fieldType.consent',\n\tconsentConfigSource: 'formBuilder:consent.config.source',\n\tconsentConfigSourceDescription: 'formBuilder:consent.config.sourceDescription',\n\tconsentSourcesField: 'formBuilder:consentSources.field',\n\tconsentSourcesFieldDescription: 'formBuilder:consentSources.fieldDescription',\n\tconsentSourceSingular: 'formBuilder:consentSources.singular',\n\tconsentSourcePlural: 'formBuilder:consentSources.plural',\n\tconsentSourceLabel: 'formBuilder:consentSources.label',\n\tconsentSourceStatement: 'formBuilder:consentSources.statement',\n\tconsentSourcePage: 'formBuilder:consentSources.page',\n\tconsentSourcePageDescription: 'formBuilder:consentSources.pageDescription',\n\tconsentSourcesUnavailable: 'formBuilder:consent.sourcesUnavailable',\n\tresultsResponses: 'formBuilder:results.responses',\n\tresultsNoResponses: 'formBuilder:results.noResponses',\n\tresultsTruncated: 'formBuilder:results.truncated',\n\tpollGroup: 'formBuilder:poll.group',\n\tpollResultsField: 'formBuilder:poll.resultsField',\n\tpollResultsFieldDescription: 'formBuilder:poll.resultsFieldDescription',\n\tpollVoteFieldChoose: 'formBuilder:poll.voteFieldChoose',\n\tpollVoteFieldMissing: 'formBuilder:poll.voteFieldMissing',\n\tpollResultsVisibility: 'formBuilder:poll.resultsVisibility',\n\tpollVisibilityAfterVote: 'formBuilder:poll.visibility.afterVote',\n\tpollVisibilityAfterClose: 'formBuilder:poll.visibility.afterClose',\n\tpollClosesAt: 'formBuilder:poll.closesAt',\n\tpollClosed: 'formBuilder:poll.closed',\n\tpollResultsAfterClose: 'formBuilder:poll.resultsAfterClose',\n\tpollOptionSource: 'formBuilder:poll.optionSource',\n\tpollOptionSourceDescription: 'formBuilder:poll.optionSourceDescription',\n\tpollSourceConfig: 'formBuilder:poll.sourceConfig',\n\tpollOutcome: 'formBuilder:poll.outcome',\n\tpollType: 'formBuilder:poll.type',\n\tpollTypeDescription: 'formBuilder:poll.typeDescription',\n\tpollTypeManual: 'formBuilder:poll.type.manual',\n\tpollTypeMostVoted: 'formBuilder:poll.type.mostVoted',\n\tpollTypeSource: 'formBuilder:poll.type.source',\n\tpollCloseButton: 'formBuilder:poll.close.button',\n\tpollReopenButton: 'formBuilder:poll.reopen.button',\n\tpollCloseHintManual: 'formBuilder:poll.close.hintManual',\n\tpollCloseHintMostVoted: 'formBuilder:poll.close.hintMostVoted',\n\tpollCloseHintSource: 'formBuilder:poll.close.hintSource',\n\tpollReopenHint: 'formBuilder:poll.reopen.hint',\n\tpollCloseNeedsWinner: 'formBuilder:poll.close.needsWinner',\n\tpollCloseManualNoWinner: 'formBuilder:poll.close.manualNoWinner',\n\tpollWinningValue: 'formBuilder:poll.winningValue',\n\tpollWinningValueDescription: 'formBuilder:poll.winningValueDescription',\n\tpollResolvedAt: 'formBuilder:poll.resolvedAt',\n\tvalidationWinningValueUnknown: 'formBuilder:validation.winningValueUnknown',\n\tvalidationWinningValueDisabled: 'formBuilder:validation.winningValueDisabled',\n\tendpointOptionsLoading: 'formBuilder:endpointOptions.loading',\n\tendpointOptionsError: 'formBuilder:endpointOptions.error',\n\tpollOptionsUnavailable: 'formBuilder:poll.optionsUnavailable',\n\tpollFinalResult: 'formBuilder:poll.finalResult',\n\tresultsWinner: 'formBuilder:results.winner',\n\tvalidationFileMissing: 'formBuilder:validation.file.missing',\n\tvalidationFileMimeType: 'formBuilder:validation.file.mimeType',\n\tvalidationFileTooLarge: 'formBuilder:validation.file.tooLarge',\n\tfieldTypeFile: 'formBuilder:fieldType.file',\n\tfileConfigMimeTypes: 'formBuilder:file.config.mimeTypes',\n\tfileConfigMaxSize: 'formBuilder:file.config.maxSize',\n\tfileConfigMaxSizeDescription: 'formBuilder:file.config.maxSizeDescription',\n\tfileTooLarge: 'formBuilder:file.tooLarge',\n\tfileUploadMisconfigured: 'formBuilder:file.uploadMisconfigured',\n\tfileHintAccepted: 'formBuilder:file.hint.accepted',\n\tfileHintMaxSize: 'formBuilder:file.hint.maxSize',\n\tspamRateLimited: 'formBuilder:spam.rateLimited',\n\tspamRejected: 'formBuilder:spam.rejected',\n\tspamCaptchaFailed: 'formBuilder:spam.captchaFailed',\n\tcollectionFormSingular: 'formBuilder:collection.form.singular',\n\tcollectionFormPlural: 'formBuilder:collection.form.plural',\n\tcollectionSubmissionSingular: 'formBuilder:collection.submission.singular',\n\tcollectionSubmissionPlural: 'formBuilder:collection.submission.plural',\n\tstatusComplete: 'formBuilder:status.complete',\n\tstatusPartial: 'formBuilder:status.partial',\n\tfieldTypeRepeater: 'formBuilder:fieldType.repeater',\n\tconfigMinRows: 'formBuilder:config.minRows',\n\tconfigMaxRows: 'formBuilder:config.maxRows',\n\tconfigAddLabel: 'formBuilder:config.addLabel',\n\tconfigSubFields: 'formBuilder:config.subFields',\n\tvalidationRepeaterMin: 'formBuilder:validation.repeaterMin',\n\tvalidationRepeaterMax: 'formBuilder:validation.repeaterMax',\n\trepeaterAddRow: 'formBuilder:repeater.addRow',\n\trepeaterRemoveRow: 'formBuilder:repeater.removeRow',\n\trepeaterRow: 'formBuilder:repeater.row',\n\trepeaterRowCount: 'formBuilder:repeater.rowCount',\n\tsubmissionConsent: 'formBuilder:submission.consent',\n\tsubmissionDetails: 'formBuilder:submission.details',\n\tsubmissionConsentAgreed: 'formBuilder:submission.consentAgreed',\n\tsubmissionConsentDeclined: 'formBuilder:submission.consentDeclined',\n\tsubmissionMetaLocale: 'formBuilder:submission.meta.locale',\n\tsubmissionMetaReceivedAt: 'formBuilder:submission.meta.receivedAt',\n\tsubmissionMetaIp: 'formBuilder:submission.meta.ip',\n\tsubmissionMetaUserAgent: 'formBuilder:submission.meta.userAgent',\n\tsubmissionMetaCaptcha: 'formBuilder:submission.meta.captcha',\n\tflowDescription: 'formBuilder:flow.description',\n\tflowStepFallbackTitle: 'formBuilder:flow.stepFallbackTitle',\n\tflowFieldInStep: 'formBuilder:flow.fieldInStep',\n\tflowUnassigned: 'formBuilder:flow.unassigned',\n\tflowAssignToStep: 'formBuilder:flow.assignToStep',\n\tflowNextSequential: 'formBuilder:flow.nextSequential',\n\tflowNextTerminal: 'formBuilder:flow.nextTerminal',\n\tflowFields: 'formBuilder:flow.fields',\n\tflowDefaultNext: 'formBuilder:flow.defaultNext',\n\tflowConditionalTransitions: 'formBuilder:flow.conditionalTransitions',\n\tflowStepTitleLabel: 'formBuilder:flow.stepTitleLabel',\n\tflowSelectStepPlaceholder: 'formBuilder:flow.selectStepPlaceholder',\n\tflowMoveTransitionUp: 'formBuilder:flow.moveTransitionUp',\n\tflowMoveTransitionDown: 'formBuilder:flow.moveTransitionDown',\n\tflowRemoveTransition: 'formBuilder:flow.removeTransition',\n\tflowAddAbove: 'formBuilder:flow.addAbove',\n\tflowAddBelow: 'formBuilder:flow.addBelow',\n\tflowGoTo: 'formBuilder:flow.goTo',\n\tflowWhen: 'formBuilder:flow.when',\n\tflowNoFields: 'formBuilder:flow.noFields',\n\tflowFirstMatchWins: 'formBuilder:flow.firstMatchWins',\n\tflowAddTransition: 'formBuilder:flow.addTransition',\n\tflowNoSteps: 'formBuilder:flow.noSteps',\n\tflowFallbackTitle: 'formBuilder:flow.fallbackTitle',\n\tfieldTypeMessage: 'formBuilder:fieldType.message',\n\tconfigContent: 'formBuilder:config.content',\n\ttabResponse: 'formBuilder:tab.response',\n\tresponseType: 'formBuilder:response.type',\n\tresponseTypeMessage: 'formBuilder:response.type.message',\n\tresponseTypeRedirect: 'formBuilder:response.type.redirect',\n\tresponseMessage: 'formBuilder:response.message',\n\tresponseRedirect: 'formBuilder:response.redirect',\n\tresponseUrl: 'formBuilder:response.url',\n\tresponseRedirectReference: 'formBuilder:response.redirect.reference',\n\tresponseRedirectReferenceDescription: 'formBuilder:response.redirect.referenceDescription',\n\tbuttonsSubmitLabel: 'formBuilder:buttons.submitLabel',\n\tbuttonsNextLabel: 'formBuilder:buttons.nextLabel',\n\tbuttonsPrevLabel: 'formBuilder:buttons.prevLabel',\n\tformBack: 'formBuilder:form.back',\n\tformNext: 'formBuilder:form.next',\n\tformSubmit: 'formBuilder:form.submit',\n\tformMultistep: 'formBuilder:form.multistep',\n\tformPollEnabled: 'formBuilder:form.pollEnabled',\n\tcellStepCountOne: 'formBuilder:cell.stepCount.one',\n\tcellStepCountOther: 'formBuilder:cell.stepCount.other',\n\tcellFieldCountOne: 'formBuilder:cell.fieldCount.one',\n\tcellFieldCountOther: 'formBuilder:cell.fieldCount.other',\n\tdepartmentsField: 'formBuilder:departments.field',\n\tdepartmentsFieldDescription: 'formBuilder:departments.fieldDescription',\n\tdepartmentSingular: 'formBuilder:departments.singular',\n\tdepartmentPlural: 'formBuilder:departments.plural',\n\tdepartmentLabel: 'formBuilder:departments.label',\n\tdepartmentEmail: 'formBuilder:departments.email',\n\tdepartmentAddRow: 'formBuilder:departments.addRow',\n\tdepartmentRemoveRow: 'formBuilder:departments.removeRow',\n} as const\n\nexport type TranslationKey = (typeof keys)[keyof typeof keys]\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"keys.js","names":[],"sources":["../../src/translations/keys.ts"],"sourcesContent":["/**\n * Typed translation keys. Lookups must go through these constants, not string\n * literals (enforced by requireI18nKeysTyped.grit). Every key here must have a\n * value in every locale (`en.ts`), or it is a type error.\n */\nexport const keys = {\n\tfieldTitle: 'formBuilder:fieldTitle',\n\tfieldTypeText: 'formBuilder:fieldType.text',\n\tfieldTypeTextarea: 'formBuilder:fieldType.textarea',\n\tfieldTypeEmail: 'formBuilder:fieldType.email',\n\tfieldTypeNumber: 'formBuilder:fieldType.number',\n\tfieldTypeSelect: 'formBuilder:fieldType.select',\n\tfieldTypeCountry: 'formBuilder:fieldType.country',\n\tfieldTypeState: 'formBuilder:fieldType.state',\n\tfieldTypeCheckbox: 'formBuilder:fieldType.checkbox',\n\tfieldTypeDate: 'formBuilder:fieldType.date',\n\tconfigOptions: 'formBuilder:config.options',\n\tconfigOption: 'formBuilder:config.option',\n\tconfigOptionLabel: 'formBuilder:config.optionLabel',\n\tconfigOptionValue: 'formBuilder:config.optionValue',\n\tvalidationRequired: 'formBuilder:validation.required',\n\tvalidationEmail: 'formBuilder:validation.email',\n\tvalidationNumber: 'formBuilder:validation.number',\n\tvalidationDate: 'formBuilder:validation.date',\n\tvalidationSelect: 'formBuilder:validation.select',\n\tvalidationCountry: 'formBuilder:validation.country',\n\tvalidationState: 'formBuilder:validation.state',\n\tvalidationRegexPattern: 'formBuilder:validation.regexPattern',\n\tvalidationRegexFlags: 'formBuilder:validation.regexFlags',\n\tvalidationEmailFieldUnknown: 'formBuilder:validation.emailFieldUnknown',\n\tvalidationResultsFieldUnknown: 'formBuilder:validation.resultsFieldUnknown',\n\tformatYes: 'formBuilder:format.yes',\n\tformatNo: 'formBuilder:format.no',\n\tconfigName: 'formBuilder:config.name',\n\tconfigLabel: 'formBuilder:config.label',\n\tconfigRequired: 'formBuilder:config.required',\n\tconfigWidth: 'formBuilder:config.width',\n\tconfigPlaceholder: 'formBuilder:config.placeholder',\n\tconfigDescription: 'formBuilder:config.description',\n\tconfigVisibleWhen: 'formBuilder:config.visibleWhen',\n\tconfigValidateWhen: 'formBuilder:config.validateWhen',\n\tsubmissionAnswers: 'formBuilder:submission.answers',\n\tsubmissionNoAnswers: 'formBuilder:submission.noAnswers',\n\truleMinLength: 'formBuilder:rule.minLength.label',\n\truleMaxLength: 'formBuilder:rule.maxLength.label',\n\truleMin: 'formBuilder:rule.min.label',\n\truleMax: 'formBuilder:rule.max.label',\n\truleMinDate: 'formBuilder:rule.minDate.label',\n\truleMaxDate: 'formBuilder:rule.maxDate.label',\n\trulePattern: 'formBuilder:rule.pattern.label',\n\truleEmail: 'formBuilder:rule.email.label',\n\truleUrl: 'formBuilder:rule.url.label',\n\truleOneOf: 'formBuilder:rule.oneOf.label',\n\truleMatchesField: 'formBuilder:rule.matchesField.label',\n\truleNotAlreadySubmitted: 'formBuilder:rule.notAlreadySubmitted.label',\n\truleMinLengthMessage: 'formBuilder:rule.minLength.message',\n\truleMaxLengthMessage: 'formBuilder:rule.maxLength.message',\n\truleMinMessage: 'formBuilder:rule.min.message',\n\truleMaxMessage: 'formBuilder:rule.max.message',\n\truleMinDateMessage: 'formBuilder:rule.minDate.message',\n\truleMaxDateMessage: 'formBuilder:rule.maxDate.message',\n\trulePatternMessage: 'formBuilder:rule.pattern.message',\n\truleEmailMessage: 'formBuilder:rule.email.message',\n\truleUrlMessage: 'formBuilder:rule.url.message',\n\truleOneOfMessage: 'formBuilder:rule.oneOf.message',\n\truleMatchesFieldMessage: 'formBuilder:rule.matchesField.message',\n\truleNotAlreadySubmittedMessage: 'formBuilder:rule.notAlreadySubmitted.message',\n\truleMinLengthDescription: 'formBuilder:rule.minLength.description',\n\truleMaxLengthDescription: 'formBuilder:rule.maxLength.description',\n\truleMinDescription: 'formBuilder:rule.min.description',\n\truleMaxDescription: 'formBuilder:rule.max.description',\n\truleMinDateDescription: 'formBuilder:rule.minDate.description',\n\truleMaxDateDescription: 'formBuilder:rule.maxDate.description',\n\trulePatternDescription: 'formBuilder:rule.pattern.description',\n\truleEmailDescription: 'formBuilder:rule.email.description',\n\truleUrlDescription: 'formBuilder:rule.url.description',\n\truleOneOfDescription: 'formBuilder:rule.oneOf.description',\n\truleMatchesFieldDescription: 'formBuilder:rule.matchesField.description',\n\truleNotAlreadySubmittedDescription: 'formBuilder:rule.notAlreadySubmitted.description',\n\truleFieldTargetInvalid: 'formBuilder:rule.fieldTargetInvalid',\n\truleParamMin: 'formBuilder:rule.param.min',\n\truleParamMax: 'formBuilder:rule.param.max',\n\truleParamMinDate: 'formBuilder:rule.param.minDate',\n\truleParamMaxDate: 'formBuilder:rule.param.maxDate',\n\truleParamPattern: 'formBuilder:rule.param.pattern',\n\truleParamFlags: 'formBuilder:rule.param.flags',\n\truleParamValues: 'formBuilder:rule.param.values',\n\truleParamField: 'formBuilder:rule.param.field',\n\tvalidationsLabel: 'formBuilder:validations.label',\n\tvalidationMessageLabel: 'formBuilder:validations.message',\n\tconditionAddCondition: 'formBuilder:condition.addCondition',\n\tconditionAddOr: 'formBuilder:condition.addOr',\n\tconditionAnd: 'formBuilder:condition.and',\n\tconditionOr: 'formBuilder:condition.or',\n\tconditionRemove: 'formBuilder:condition.remove',\n\tconditionNoFields: 'formBuilder:condition.noFields',\n\tconditionEmpty: 'formBuilder:condition.empty',\n\tconditionSelectField: 'formBuilder:condition.selectField',\n\tconditionTrue: 'formBuilder:condition.true',\n\tconditionFalse: 'formBuilder:condition.false',\n\tconfigHidden: 'formBuilder:config.hidden',\n\ttabFields: 'formBuilder:tab.fields',\n\ttabFlow: 'formBuilder:tab.flow',\n\ttabActions: 'formBuilder:tab.actions',\n\ttabField: 'formBuilder:tab.field',\n\ttabValidation: 'formBuilder:tab.validation',\n\ttabAdvanced: 'formBuilder:tab.advanced',\n\tfieldTypeCalculation: 'formBuilder:fieldType.calculation',\n\tconfigExpression: 'formBuilder:config.expression',\n\tconfigExpressionDescription: 'formBuilder:config.expressionDescription',\n\tconfigCalcDisplay: 'formBuilder:config.calcDisplay',\n\tvalidationCalcExpressionInvalid: 'formBuilder:validation.calcExpressionInvalid',\n\tpresentationPage: 'formBuilder:presentation.page',\n\tpresentationModal: 'formBuilder:presentation.modal',\n\tpresentationDrawer: 'formBuilder:presentation.drawer',\n\tpresentationInline: 'formBuilder:presentation.inline',\n\tactionEmailTeam: 'formBuilder:action.emailTeam',\n\tactionConfirmation: 'formBuilder:action.confirmation',\n\tactionSignedWebhook: 'formBuilder:action.signedWebhook',\n\tactionConfigTo: 'formBuilder:action.config.to',\n\tactionConfigSubject: 'formBuilder:action.config.subject',\n\tactionConfigBody: 'formBuilder:action.config.body',\n\tactionConfigBodyDescription: 'formBuilder:action.config.bodyDescription',\n\tactionConfigToField: 'formBuilder:action.config.toField',\n\tactionConfigToFieldDescription: 'formBuilder:action.config.toFieldDescription',\n\tactionConfigFrom: 'formBuilder:action.config.from',\n\tactionConfigFromDescription: 'formBuilder:action.config.fromDescription',\n\tactionConfigCc: 'formBuilder:action.config.cc',\n\tactionConfigBcc: 'formBuilder:action.config.bcc',\n\tactionConfigReplyTo: 'formBuilder:action.config.replyTo',\n\trecipientsGroupDepartments: 'formBuilder:recipients.group.departments',\n\trecipientsGroupFields: 'formBuilder:recipients.group.fields',\n\tvalidationRecipientInvalid: 'formBuilder:validation.recipient.invalid',\n\tvalidationRecipientUnknownField: 'formBuilder:validation.recipient.unknownField',\n\tvalidationRecipientNotAllowed: 'formBuilder:validation.recipient.notAllowed',\n\tvalidationRecipientOptionsUnavailable: 'formBuilder:validation.recipient.optionsUnavailable',\n\tvalidationFromUnknown: 'formBuilder:validation.fromUnknown',\n\tvalidationFromUnavailable: 'formBuilder:validation.fromUnavailable',\n\tactionConfigUrl: 'formBuilder:action.config.url',\n\tactionConfigUrlDescription: 'formBuilder:action.config.urlDescription',\n\tactionConfigSecret: 'formBuilder:action.config.secret',\n\tactionConfigSecretDescription: 'formBuilder:action.config.secretDescription',\n\tvalidationUrlInvalid: 'formBuilder:validation.urlInvalid',\n\tconfigActions: 'formBuilder:config.actions',\n\tfieldTypeConsent: 'formBuilder:fieldType.consent',\n\tconsentConfigSource: 'formBuilder:consent.config.source',\n\tconsentConfigSourceDescription: 'formBuilder:consent.config.sourceDescription',\n\tconsentSourcesField: 'formBuilder:consentSources.field',\n\tconsentSourcesFieldDescription: 'formBuilder:consentSources.fieldDescription',\n\tconsentSourceSingular: 'formBuilder:consentSources.singular',\n\tconsentSourcePlural: 'formBuilder:consentSources.plural',\n\tconsentSourceLabel: 'formBuilder:consentSources.label',\n\tconsentSourceStatement: 'formBuilder:consentSources.statement',\n\tconsentSourcePage: 'formBuilder:consentSources.page',\n\tconsentSourcePageDescription: 'formBuilder:consentSources.pageDescription',\n\tconsentSourcesUnavailable: 'formBuilder:consent.sourcesUnavailable',\n\tresultsResponses: 'formBuilder:results.responses',\n\tresultsNoResponses: 'formBuilder:results.noResponses',\n\tresultsTruncated: 'formBuilder:results.truncated',\n\tpollGroup: 'formBuilder:poll.group',\n\tpollResultsField: 'formBuilder:poll.resultsField',\n\tpollResultsFieldDescription: 'formBuilder:poll.resultsFieldDescription',\n\tpollVoteFieldChoose: 'formBuilder:poll.voteFieldChoose',\n\tpollVoteFieldMissing: 'formBuilder:poll.voteFieldMissing',\n\tpollResultsVisibility: 'formBuilder:poll.resultsVisibility',\n\tpollVisibilityAfterVote: 'formBuilder:poll.visibility.afterVote',\n\tpollVisibilityAfterClose: 'formBuilder:poll.visibility.afterClose',\n\tpollClosesAt: 'formBuilder:poll.closesAt',\n\tpollClosed: 'formBuilder:poll.closed',\n\tpollResultsAfterClose: 'formBuilder:poll.resultsAfterClose',\n\tpollOptionSource: 'formBuilder:poll.optionSource',\n\tpollOptionSourceDescription: 'formBuilder:poll.optionSourceDescription',\n\tpollSourceConfig: 'formBuilder:poll.sourceConfig',\n\tpollOutcome: 'formBuilder:poll.outcome',\n\tpollType: 'formBuilder:poll.type',\n\tpollTypeDescription: 'formBuilder:poll.typeDescription',\n\tpollTypeManual: 'formBuilder:poll.type.manual',\n\tpollTypeMostVoted: 'formBuilder:poll.type.mostVoted',\n\tpollTypeSource: 'formBuilder:poll.type.source',\n\tpollCloseButton: 'formBuilder:poll.close.button',\n\tpollReopenButton: 'formBuilder:poll.reopen.button',\n\tpollCloseHintManual: 'formBuilder:poll.close.hintManual',\n\tpollCloseHintMostVoted: 'formBuilder:poll.close.hintMostVoted',\n\tpollCloseHintSource: 'formBuilder:poll.close.hintSource',\n\tpollReopenHint: 'formBuilder:poll.reopen.hint',\n\tpollCloseNeedsWinner: 'formBuilder:poll.close.needsWinner',\n\tpollCloseManualNoWinner: 'formBuilder:poll.close.manualNoWinner',\n\tpollWinningValue: 'formBuilder:poll.winningValue',\n\tpollWinningValueDescription: 'formBuilder:poll.winningValueDescription',\n\tpollResolvedAt: 'formBuilder:poll.resolvedAt',\n\tvalidationWinningValueUnknown: 'formBuilder:validation.winningValueUnknown',\n\tvalidationWinningValueDisabled: 'formBuilder:validation.winningValueDisabled',\n\tendpointOptionsLoading: 'formBuilder:endpointOptions.loading',\n\tendpointOptionsError: 'formBuilder:endpointOptions.error',\n\tpollOptionsUnavailable: 'formBuilder:poll.optionsUnavailable',\n\tpollFinalResult: 'formBuilder:poll.finalResult',\n\tpollResultsError: 'formBuilder:poll.resultsError',\n\tresultsWinner: 'formBuilder:results.winner',\n\tvalidationFileMissing: 'formBuilder:validation.file.missing',\n\tvalidationFileMimeType: 'formBuilder:validation.file.mimeType',\n\tvalidationFileTooLarge: 'formBuilder:validation.file.tooLarge',\n\tfieldTypeFile: 'formBuilder:fieldType.file',\n\tfileConfigMimeTypes: 'formBuilder:file.config.mimeTypes',\n\tfileConfigMaxSize: 'formBuilder:file.config.maxSize',\n\tfileConfigMaxSizeDescription: 'formBuilder:file.config.maxSizeDescription',\n\tfileTooLarge: 'formBuilder:file.tooLarge',\n\tfileUploadMisconfigured: 'formBuilder:file.uploadMisconfigured',\n\tfileHintAccepted: 'formBuilder:file.hint.accepted',\n\tfileHintMaxSize: 'formBuilder:file.hint.maxSize',\n\tfileUploaded: 'formBuilder:file.uploaded',\n\tfileUploading: 'formBuilder:file.uploading',\n\tfileUploadFailed: 'formBuilder:file.uploadFailed',\n\tfileRemove: 'formBuilder:file.remove',\n\tspamRateLimited: 'formBuilder:spam.rateLimited',\n\tspamRejected: 'formBuilder:spam.rejected',\n\tspamCaptchaFailed: 'formBuilder:spam.captchaFailed',\n\tcollectionFormSingular: 'formBuilder:collection.form.singular',\n\tcollectionFormPlural: 'formBuilder:collection.form.plural',\n\tcollectionSubmissionSingular: 'formBuilder:collection.submission.singular',\n\tcollectionSubmissionPlural: 'formBuilder:collection.submission.plural',\n\tstatusComplete: 'formBuilder:status.complete',\n\tstatusPartial: 'formBuilder:status.partial',\n\tfieldTypeRepeater: 'formBuilder:fieldType.repeater',\n\tconfigMinRows: 'formBuilder:config.minRows',\n\tconfigMaxRows: 'formBuilder:config.maxRows',\n\tconfigAddLabel: 'formBuilder:config.addLabel',\n\tconfigSubFields: 'formBuilder:config.subFields',\n\tvalidationRepeaterMin: 'formBuilder:validation.repeaterMin',\n\tvalidationRepeaterMax: 'formBuilder:validation.repeaterMax',\n\trepeaterAddRow: 'formBuilder:repeater.addRow',\n\trepeaterRemoveRow: 'formBuilder:repeater.removeRow',\n\trepeaterRow: 'formBuilder:repeater.row',\n\trepeaterRowCount: 'formBuilder:repeater.rowCount',\n\tsubmissionConsent: 'formBuilder:submission.consent',\n\tsubmissionDetails: 'formBuilder:submission.details',\n\tsubmissionConsentAgreed: 'formBuilder:submission.consentAgreed',\n\tsubmissionConsentDeclined: 'formBuilder:submission.consentDeclined',\n\tsubmissionMetaLocale: 'formBuilder:submission.meta.locale',\n\tsubmissionMetaReceivedAt: 'formBuilder:submission.meta.receivedAt',\n\tsubmissionMetaIp: 'formBuilder:submission.meta.ip',\n\tsubmissionMetaUserAgent: 'formBuilder:submission.meta.userAgent',\n\tsubmissionMetaCaptcha: 'formBuilder:submission.meta.captcha',\n\tflowDescription: 'formBuilder:flow.description',\n\tflowStepFallbackTitle: 'formBuilder:flow.stepFallbackTitle',\n\tflowFieldInStep: 'formBuilder:flow.fieldInStep',\n\tflowUnassigned: 'formBuilder:flow.unassigned',\n\tflowAssignToStep: 'formBuilder:flow.assignToStep',\n\tflowNextSequential: 'formBuilder:flow.nextSequential',\n\tflowNextTerminal: 'formBuilder:flow.nextTerminal',\n\tflowFields: 'formBuilder:flow.fields',\n\tflowDefaultNext: 'formBuilder:flow.defaultNext',\n\tflowConditionalTransitions: 'formBuilder:flow.conditionalTransitions',\n\tflowStepTitleLabel: 'formBuilder:flow.stepTitleLabel',\n\tflowSelectStepPlaceholder: 'formBuilder:flow.selectStepPlaceholder',\n\tflowMoveTransitionUp: 'formBuilder:flow.moveTransitionUp',\n\tflowMoveTransitionDown: 'formBuilder:flow.moveTransitionDown',\n\tflowRemoveTransition: 'formBuilder:flow.removeTransition',\n\tflowAddAbove: 'formBuilder:flow.addAbove',\n\tflowAddBelow: 'formBuilder:flow.addBelow',\n\tflowGoTo: 'formBuilder:flow.goTo',\n\tflowWhen: 'formBuilder:flow.when',\n\tflowNoFields: 'formBuilder:flow.noFields',\n\tflowFirstMatchWins: 'formBuilder:flow.firstMatchWins',\n\tflowAddTransition: 'formBuilder:flow.addTransition',\n\tflowNoSteps: 'formBuilder:flow.noSteps',\n\tflowFallbackTitle: 'formBuilder:flow.fallbackTitle',\n\tfieldTypeMessage: 'formBuilder:fieldType.message',\n\tconfigContent: 'formBuilder:config.content',\n\ttabResponse: 'formBuilder:tab.response',\n\tresponseType: 'formBuilder:response.type',\n\tresponseTypeMessage: 'formBuilder:response.type.message',\n\tresponseTypeRedirect: 'formBuilder:response.type.redirect',\n\tresponseMessage: 'formBuilder:response.message',\n\tresponseRedirect: 'formBuilder:response.redirect',\n\tresponseUrl: 'formBuilder:response.url',\n\tresponseRedirectReference: 'formBuilder:response.redirect.reference',\n\tresponseRedirectReferenceDescription: 'formBuilder:response.redirect.referenceDescription',\n\tbuttonsSubmitLabel: 'formBuilder:buttons.submitLabel',\n\tbuttonsNextLabel: 'formBuilder:buttons.nextLabel',\n\tbuttonsPrevLabel: 'formBuilder:buttons.prevLabel',\n\tformBack: 'formBuilder:form.back',\n\tformNext: 'formBuilder:form.next',\n\tformSubmit: 'formBuilder:form.submit',\n\tformMultistep: 'formBuilder:form.multistep',\n\tformPollEnabled: 'formBuilder:form.pollEnabled',\n\tformClose: 'formBuilder:form.close',\n\tformSuccess: 'formBuilder:form.success',\n\tformSubmitFailed: 'formBuilder:form.submitFailed',\n\tcellStepCountOne: 'formBuilder:cell.stepCount.one',\n\tcellStepCountOther: 'formBuilder:cell.stepCount.other',\n\tcellFieldCountOne: 'formBuilder:cell.fieldCount.one',\n\tcellFieldCountOther: 'formBuilder:cell.fieldCount.other',\n\tdepartmentsField: 'formBuilder:departments.field',\n\tdepartmentsFieldDescription: 'formBuilder:departments.fieldDescription',\n\tdepartmentSingular: 'formBuilder:departments.singular',\n\tdepartmentPlural: 'formBuilder:departments.plural',\n\tdepartmentLabel: 'formBuilder:departments.label',\n\tdepartmentEmail: 'formBuilder:departments.email',\n\tdepartmentAddRow: 'formBuilder:departments.addRow',\n\tdepartmentRemoveRow: 'formBuilder:departments.removeRow',\n} as const\n\nexport type TranslationKey = (typeof keys)[keyof typeof keys]\n"],"mappings":";;;;;;AAKA,MAAa,OAAO;CACnB,YAAY;CACZ,eAAe;CACf,mBAAmB;CACnB,gBAAgB;CAChB,iBAAiB;CACjB,iBAAiB;CACjB,kBAAkB;CAClB,gBAAgB;CAChB,mBAAmB;CACnB,eAAe;CACf,eAAe;CACf,cAAc;CACd,mBAAmB;CACnB,mBAAmB;CACnB,oBAAoB;CACpB,iBAAiB;CACjB,kBAAkB;CAClB,gBAAgB;CAChB,kBAAkB;CAClB,mBAAmB;CACnB,iBAAiB;CACjB,wBAAwB;CACxB,sBAAsB;CACtB,6BAA6B;CAC7B,+BAA+B;CAC/B,WAAW;CACX,UAAU;CACV,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB,aAAa;CACb,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,oBAAoB;CACpB,mBAAmB;CACnB,qBAAqB;CACrB,eAAe;CACf,eAAe;CACf,SAAS;CACT,SAAS;CACT,aAAa;CACb,aAAa;CACb,aAAa;CACb,WAAW;CACX,SAAS;CACT,WAAW;CACX,kBAAkB;CAClB,yBAAyB;CACzB,sBAAsB;CACtB,sBAAsB;CACtB,gBAAgB;CAChB,gBAAgB;CAChB,oBAAoB;CACpB,oBAAoB;CACpB,oBAAoB;CACpB,kBAAkB;CAClB,gBAAgB;CAChB,kBAAkB;CAClB,yBAAyB;CACzB,gCAAgC;CAChC,0BAA0B;CAC1B,0BAA0B;CAC1B,oBAAoB;CACpB,oBAAoB;CACpB,wBAAwB;CACxB,wBAAwB;CACxB,wBAAwB;CACxB,sBAAsB;CACtB,oBAAoB;CACpB,sBAAsB;CACtB,6BAA6B;CAC7B,oCAAoC;CACpC,wBAAwB;CACxB,cAAc;CACd,cAAc;CACd,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,wBAAwB;CACxB,uBAAuB;CACvB,gBAAgB;CAChB,cAAc;CACd,aAAa;CACb,iBAAiB;CACjB,mBAAmB;CACnB,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,gBAAgB;CAChB,cAAc;CACd,WAAW;CACX,SAAS;CACT,YAAY;CACZ,UAAU;CACV,eAAe;CACf,aAAa;CACb,sBAAsB;CACtB,kBAAkB;CAClB,6BAA6B;CAC7B,mBAAmB;CACnB,iCAAiC;CACjC,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB,oBAAoB;CACpB,iBAAiB;CACjB,oBAAoB;CACpB,qBAAqB;CACrB,gBAAgB;CAChB,qBAAqB;CACrB,kBAAkB;CAClB,6BAA6B;CAC7B,qBAAqB;CACrB,gCAAgC;CAChC,kBAAkB;CAClB,6BAA6B;CAC7B,gBAAgB;CAChB,iBAAiB;CACjB,qBAAqB;CACrB,4BAA4B;CAC5B,uBAAuB;CACvB,4BAA4B;CAC5B,iCAAiC;CACjC,+BAA+B;CAC/B,uCAAuC;CACvC,uBAAuB;CACvB,2BAA2B;CAC3B,iBAAiB;CACjB,4BAA4B;CAC5B,oBAAoB;CACpB,+BAA+B;CAC/B,sBAAsB;CACtB,eAAe;CACf,kBAAkB;CAClB,qBAAqB;CACrB,gCAAgC;CAChC,qBAAqB;CACrB,gCAAgC;CAChC,uBAAuB;CACvB,qBAAqB;CACrB,oBAAoB;CACpB,wBAAwB;CACxB,mBAAmB;CACnB,8BAA8B;CAC9B,2BAA2B;CAC3B,kBAAkB;CAClB,oBAAoB;CACpB,kBAAkB;CAClB,WAAW;CACX,kBAAkB;CAClB,6BAA6B;CAC7B,qBAAqB;CACrB,sBAAsB;CACtB,uBAAuB;CACvB,yBAAyB;CACzB,0BAA0B;CAC1B,cAAc;CACd,YAAY;CACZ,uBAAuB;CACvB,kBAAkB;CAClB,6BAA6B;CAC7B,kBAAkB;CAClB,aAAa;CACb,UAAU;CACV,qBAAqB;CACrB,gBAAgB;CAChB,mBAAmB;CACnB,gBAAgB;CAChB,iBAAiB;CACjB,kBAAkB;CAClB,qBAAqB;CACrB,wBAAwB;CACxB,qBAAqB;CACrB,gBAAgB;CAChB,sBAAsB;CACtB,yBAAyB;CACzB,kBAAkB;CAClB,6BAA6B;CAC7B,gBAAgB;CAChB,+BAA+B;CAC/B,gCAAgC;CAChC,wBAAwB;CACxB,sBAAsB;CACtB,wBAAwB;CACxB,iBAAiB;CACjB,kBAAkB;CAClB,eAAe;CACf,uBAAuB;CACvB,wBAAwB;CACxB,wBAAwB;CACxB,eAAe;CACf,qBAAqB;CACrB,mBAAmB;CACnB,8BAA8B;CAC9B,cAAc;CACd,yBAAyB;CACzB,kBAAkB;CAClB,iBAAiB;CACjB,cAAc;CACd,eAAe;CACf,kBAAkB;CAClB,YAAY;CACZ,iBAAiB;CACjB,cAAc;CACd,mBAAmB;CACnB,wBAAwB;CACxB,sBAAsB;CACtB,8BAA8B;CAC9B,4BAA4B;CAC5B,gBAAgB;CAChB,eAAe;CACf,mBAAmB;CACnB,eAAe;CACf,eAAe;CACf,gBAAgB;CAChB,iBAAiB;CACjB,uBAAuB;CACvB,uBAAuB;CACvB,gBAAgB;CAChB,mBAAmB;CACnB,aAAa;CACb,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB,yBAAyB;CACzB,2BAA2B;CAC3B,sBAAsB;CACtB,0BAA0B;CAC1B,kBAAkB;CAClB,yBAAyB;CACzB,uBAAuB;CACvB,iBAAiB;CACjB,uBAAuB;CACvB,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB,kBAAkB;CAClB,YAAY;CACZ,iBAAiB;CACjB,4BAA4B;CAC5B,oBAAoB;CACpB,2BAA2B;CAC3B,sBAAsB;CACtB,wBAAwB;CACxB,sBAAsB;CACtB,cAAc;CACd,cAAc;CACd,UAAU;CACV,UAAU;CACV,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB,eAAe;CACf,aAAa;CACb,cAAc;CACd,qBAAqB;CACrB,sBAAsB;CACtB,iBAAiB;CACjB,kBAAkB;CAClB,aAAa;CACb,2BAA2B;CAC3B,sCAAsC;CACtC,oBAAoB;CACpB,kBAAkB;CAClB,kBAAkB;CAClB,UAAU;CACV,UAAU;CACV,YAAY;CACZ,eAAe;CACf,iBAAiB;CACjB,WAAW;CACX,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,qBAAqB;CACrB,kBAAkB;CAClB,6BAA6B;CAC7B,oBAAoB;CACpB,kBAAkB;CAClB,iBAAiB;CACjB,iBAAiB;CACjB,kBAAkB;CAClB,qBAAqB;AACtB"}
|
|
@@ -19,7 +19,14 @@ const labelForKey = (key) => ({ t }) => asTranslate(t)(key);
|
|
|
19
19
|
* from `labelForKey`, which constrains to this plugin's typed keys.
|
|
20
20
|
*/
|
|
21
21
|
const labelFor = (key) => ({ t }) => asTranslate(t)(key);
|
|
22
|
+
/**
|
|
23
|
+
* Turn a registry definition's `label` into a value Payload accepts for a field/block `label`. A
|
|
24
|
+
* string resolves per request like a field label (an i18n key or a literal) via `labelFor`; a
|
|
25
|
+
* per-locale record passes through unchanged. Shared by the action, poll-source, and poll-type
|
|
26
|
+
* registries so every definition label honors one contract.
|
|
27
|
+
*/
|
|
28
|
+
const resolveDefinitionLabel = (label) => typeof label === "string" ? labelFor(label) : label;
|
|
22
29
|
//#endregion
|
|
23
|
-
export { asFieldTranslate, asTranslate, labelFor, labelForKey };
|
|
30
|
+
export { asFieldTranslate, asTranslate, labelFor, labelForKey, resolveDefinitionLabel };
|
|
24
31
|
|
|
25
32
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","names":[],"sources":["../../src/translations/server.ts"],"sourcesContent":["import type { LabelFunction } from 'payload'\n\nimport type { Translate as FieldTranslate } from '../fields/types'\nimport type { TranslationKey } from './keys'\n\n/** A `t`-like function narrowed to this plugin's typed keys. */\ntype Translate = (key: TranslationKey) => string\n\n/**\n * Adapt a Payload request `t` (typed to core keys only) so it also accepts this\n * plugin's keys. They are registered at config time and resolve at runtime; the\n * cast only widens the compile-time key domain.\n */\nexport const asTranslate = (t: unknown): Translate => t as Translate\n\n/**\n * Adapt a Payload request `t` to the engine-facing `Translate` the submission core and field-type\n * `format`/`validate` speak (any key string). Same runtime function as `asTranslate`; this widening\n * accepts arbitrary keys because the engine resolves both this plugin's and a host's registered keys.\n */\nexport const asFieldTranslate = (t: unknown): FieldTranslate => t as FieldTranslate\n\n/** A field `label`/`description` backed by a typed key, resolved per request. */\nexport const labelForKey =\n\t(key: TranslationKey): LabelFunction =>\n\t({ t }) =>\n\t\tasTranslate(t)(key)\n\n/**\n * A `label`/`description` from an arbitrary key string (a field-type-supplied label, which may be a\n * host-registered key or a literal; Payload's `t` returns the input unchanged when unknown). Distinct\n * from `labelForKey`, which constrains to this plugin's typed keys.\n */\nexport const labelFor =\n\t(key: string): LabelFunction =>\n\t({ t }) =>\n\t\tasTranslate(t)(key as TranslationKey)\n"],"mappings":";;;;;;AAaA,MAAa,eAAe,MAA0B;;;;;;AAOtD,MAAa,oBAAoB,MAA+B;;AAGhE,MAAa,eACX,SACA,EAAE,QACF,YAAY,CAAC,EAAE,GAAG;;;;;;AAOpB,MAAa,YACX,SACA,EAAE,QACF,YAAY,CAAC,EAAE,GAAqB"}
|
|
1
|
+
{"version":3,"file":"server.js","names":[],"sources":["../../src/translations/server.ts"],"sourcesContent":["import type { LabelFunction } from 'payload'\n\nimport type { Translate as FieldTranslate } from '../fields/types'\nimport type { TranslationKey } from './keys'\n\n/** A `t`-like function narrowed to this plugin's typed keys. */\ntype Translate = (key: TranslationKey) => string\n\n/**\n * Adapt a Payload request `t` (typed to core keys only) so it also accepts this\n * plugin's keys. They are registered at config time and resolve at runtime; the\n * cast only widens the compile-time key domain.\n */\nexport const asTranslate = (t: unknown): Translate => t as Translate\n\n/**\n * Adapt a Payload request `t` to the engine-facing `Translate` the submission core and field-type\n * `format`/`validate` speak (any key string). Same runtime function as `asTranslate`; this widening\n * accepts arbitrary keys because the engine resolves both this plugin's and a host's registered keys.\n */\nexport const asFieldTranslate = (t: unknown): FieldTranslate => t as FieldTranslate\n\n/** A field `label`/`description` backed by a typed key, resolved per request. */\nexport const labelForKey =\n\t(key: TranslationKey): LabelFunction =>\n\t({ t }) =>\n\t\tasTranslate(t)(key)\n\n/**\n * A `label`/`description` from an arbitrary key string (a field-type-supplied label, which may be a\n * host-registered key or a literal; Payload's `t` returns the input unchanged when unknown). Distinct\n * from `labelForKey`, which constrains to this plugin's typed keys.\n */\nexport const labelFor =\n\t(key: string): LabelFunction =>\n\t({ t }) =>\n\t\tasTranslate(t)(key as TranslationKey)\n\n/**\n * Turn a registry definition's `label` into a value Payload accepts for a field/block `label`. A\n * string resolves per request like a field label (an i18n key or a literal) via `labelFor`; a\n * per-locale record passes through unchanged. Shared by the action, poll-source, and poll-type\n * registries so every definition label honors one contract.\n */\nexport const resolveDefinitionLabel = (\n\tlabel: string | Record<string, string>\n): LabelFunction | Record<string, string> => (typeof label === 'string' ? labelFor(label) : label)\n"],"mappings":";;;;;;AAaA,MAAa,eAAe,MAA0B;;;;;;AAOtD,MAAa,oBAAoB,MAA+B;;AAGhE,MAAa,eACX,SACA,EAAE,QACF,YAAY,CAAC,EAAE,GAAG;;;;;;AAOpB,MAAa,YACX,SACA,EAAE,QACF,YAAY,CAAC,EAAE,GAAqB;;;;;;;AAQtC,MAAa,0BACZ,UAC6C,OAAO,UAAU,WAAW,SAAS,KAAK,IAAI"}
|
|
@@ -10,6 +10,11 @@ type CaptureFileRefArgs = {
|
|
|
10
10
|
config: FileFieldConfig;
|
|
11
11
|
req?: PayloadRequest; /** Resolved submitter identity; must match the upload's `owner` stamp when both are present. */
|
|
12
12
|
expectedOwner?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Fail closed when a stamped upload's submitter cannot be identified (plugin `spam.uploadOwnership:
|
|
15
|
+
* 'strict'`). Default lenient: an unidentifiable submitter passes an owned upload through.
|
|
16
|
+
*/
|
|
17
|
+
strict?: boolean;
|
|
13
18
|
};
|
|
14
19
|
/**
|
|
15
20
|
* Load the referenced upload doc and run the pure trust-boundary check. The client sends only the id; the
|
|
@@ -17,9 +22,11 @@ type CaptureFileRefArgs = {
|
|
|
17
22
|
* upload carries an `owner` stamp AND the submitter is identifiable, the two must match, so an anonymous
|
|
18
23
|
* submitter cannot capture another identity's upload; a mismatch collapses to `missing`, indistinguishable
|
|
19
24
|
* from a deleted upload. When the submitter cannot be identified (no `expectedOwner`), ownership is not
|
|
20
|
-
* enforced (fail-open, consistent with rate-limiting): a proxy-configured deployment identifies
|
|
21
|
-
* request, so this only relaxes scoping where it could not be applied fairly anyway.
|
|
22
|
-
* (
|
|
25
|
+
* enforced by default (fail-open, consistent with rate-limiting): a proxy-configured deployment identifies
|
|
26
|
+
* every request, so this only relaxes scoping where it could not be applied fairly anyway. Under `strict`
|
|
27
|
+
* (plugin `spam.uploadOwnership: 'strict'`) a stamped upload is rejected even then, so an unverifiable
|
|
28
|
+
* claim can never capture an owned upload. Unstamped uploads (no identity at upload time, or a BYO
|
|
29
|
+
* collection without the field) pass unchanged in either mode.
|
|
23
30
|
*/
|
|
24
31
|
declare const captureFileRef: (args: CaptureFileRefArgs) => Promise<ResolveFileRefResult>;
|
|
25
32
|
//#endregion
|
|
@@ -6,12 +6,14 @@ import { resolveFileRef } from "./resolveFileRef.js";
|
|
|
6
6
|
* upload carries an `owner` stamp AND the submitter is identifiable, the two must match, so an anonymous
|
|
7
7
|
* submitter cannot capture another identity's upload; a mismatch collapses to `missing`, indistinguishable
|
|
8
8
|
* from a deleted upload. When the submitter cannot be identified (no `expectedOwner`), ownership is not
|
|
9
|
-
* enforced (fail-open, consistent with rate-limiting): a proxy-configured deployment identifies
|
|
10
|
-
* request, so this only relaxes scoping where it could not be applied fairly anyway.
|
|
11
|
-
* (
|
|
9
|
+
* enforced by default (fail-open, consistent with rate-limiting): a proxy-configured deployment identifies
|
|
10
|
+
* every request, so this only relaxes scoping where it could not be applied fairly anyway. Under `strict`
|
|
11
|
+
* (plugin `spam.uploadOwnership: 'strict'`) a stamped upload is rejected even then, so an unverifiable
|
|
12
|
+
* claim can never capture an owned upload. Unstamped uploads (no identity at upload time, or a BYO
|
|
13
|
+
* collection without the field) pass unchanged in either mode.
|
|
12
14
|
*/
|
|
13
15
|
const captureFileRef = async (args) => {
|
|
14
|
-
const { payload, collectionSlug, uploadId, config, req, expectedOwner } = args;
|
|
16
|
+
const { payload, collectionSlug, uploadId, config, req, expectedOwner, strict } = args;
|
|
15
17
|
const doc = await payload.findByID({
|
|
16
18
|
collection: collectionSlug,
|
|
17
19
|
id: uploadId,
|
|
@@ -19,12 +21,19 @@ const captureFileRef = async (args) => {
|
|
|
19
21
|
overrideAccess: true,
|
|
20
22
|
req
|
|
21
23
|
}).catch(() => null);
|
|
22
|
-
if (doc
|
|
24
|
+
if (doc) {
|
|
23
25
|
const owner = doc.owner;
|
|
24
|
-
if (typeof owner === "string" && owner.length > 0
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
if (typeof owner === "string" && owner.length > 0) {
|
|
27
|
+
if (expectedOwner == null) {
|
|
28
|
+
if (strict) return {
|
|
29
|
+
ok: false,
|
|
30
|
+
code: "missing"
|
|
31
|
+
};
|
|
32
|
+
} else if (owner !== expectedOwner) return {
|
|
33
|
+
ok: false,
|
|
34
|
+
code: "missing"
|
|
35
|
+
};
|
|
36
|
+
}
|
|
28
37
|
}
|
|
29
38
|
return resolveFileRef(doc, config);
|
|
30
39
|
};
|