strapi-plugin-hubspot 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/README.md +28 -0
- package/dist/_chunks/{Forms-CKA6ukB6.mjs → Forms-BsKys-Hc.mjs} +404 -42
- package/dist/_chunks/{Forms-HMZbTk_B.js → Forms-JuzNfsbL.js} +401 -39
- package/dist/_chunks/{HubspotFormInput-CKYRcNNU.mjs → HubspotFormInput-CIvHS5rp.mjs} +1 -1
- package/dist/_chunks/{HubspotFormInput-BequMb12.js → HubspotFormInput-ph9pe6xY.js} +1 -1
- package/dist/_chunks/{HubspotObjectInput-V3uhGK8k.mjs → HubspotObjectInput-BX1qYD2c.mjs} +3 -3
- package/dist/_chunks/{HubspotObjectInput-D-FGwsyS.js → HubspotObjectInput-dAd-lMdD.js} +3 -3
- package/dist/_chunks/{HubspotPropertyInput-Dn1QvOcu.js → HubspotPropertyInput-BM3ZaY8f.js} +3 -3
- package/dist/_chunks/{HubspotPropertyInput-DrBsx9jQ.mjs → HubspotPropertyInput-C2Z6472q.mjs} +3 -3
- package/dist/_chunks/{Settings-Cgp7M1Cv.js → Settings-Cdcjy9DA.js} +2 -2
- package/dist/_chunks/{Settings-BjkNbyna.mjs → Settings-DnwGetcc.mjs} +2 -2
- package/dist/_chunks/{en-Cun5LoUP.mjs → en-CcQWnXra.mjs} +50 -3
- package/dist/_chunks/{en-D5Ch9YFo.js → en-Cqfair98.js} +50 -3
- package/dist/_chunks/{fr-ClOWflse.mjs → fr-CBRZ9q8U.mjs} +50 -3
- package/dist/_chunks/{fr-CqlhHltZ.js → fr-D117-3Ta.js} +50 -3
- package/dist/_chunks/{index-D2Q34BuH.js → index-BbRtXnAL.js} +6 -6
- package/dist/_chunks/{index-FKsiOEPB.mjs → index-LTaVoyWJ.mjs} +6 -6
- package/dist/_chunks/{objectLabels-DBKevJle.mjs → objectLabels-DE2xGq7f.mjs} +1 -1
- package/dist/_chunks/{objectLabels-LAQ0M6-a.js → objectLabels-DU0Cagt_.js} +1 -1
- package/dist/_chunks/{useHubspotSchema-BC0Od-Wl.mjs → useHubspotSchema-BSKow0X3.mjs} +1 -1
- package/dist/_chunks/{useHubspotSchema-C08qBAyy.js → useHubspotSchema-DzBMAxv7.js} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/builder/types.d.ts +26 -0
- package/dist/admin/src/pages/Forms.d.ts +5 -1
- package/dist/admin/src/pages/Submissions.d.ts +8 -0
- package/dist/server/index.js +396 -21
- package/dist/server/index.mjs +396 -21
- package/dist/server/src/__tests__/importHubspot.test.d.ts +1 -0
- package/dist/server/src/__tests__/submissions.test.d.ts +1 -0
- package/dist/server/src/content-types.d.ts +3 -0
- package/dist/server/src/forms.d.ts +2 -0
- package/dist/server/src/formsAdmin.d.ts +19 -0
- package/dist/server/src/importHubspot.d.ts +85 -0
- package/dist/server/src/importLegacy.d.ts +1 -0
- package/dist/server/src/index.d.ts +32 -1
- package/dist/server/src/submissions.d.ts +28 -0
- package/dist/shared/types.d.ts +2 -0
- package/package.json +2 -2
|
@@ -6,9 +6,9 @@ const index = require("./index-DkTxsEqL.js");
|
|
|
6
6
|
const designSystem = require("@strapi/design-system");
|
|
7
7
|
const icons = require("@strapi/icons");
|
|
8
8
|
const admin = require("@strapi/strapi/admin");
|
|
9
|
-
const index$1 = require("./index-
|
|
10
|
-
const objectLabels = require("./objectLabels-
|
|
11
|
-
const useHubspotSchema = require("./useHubspotSchema-
|
|
9
|
+
const index$1 = require("./index-BbRtXnAL.js");
|
|
10
|
+
const objectLabels = require("./objectLabels-DU0Cagt_.js");
|
|
11
|
+
const useHubspotSchema = require("./useHubspotSchema-DzBMAxv7.js");
|
|
12
12
|
function _interopNamespace(e) {
|
|
13
13
|
if (e && e.__esModule) return e;
|
|
14
14
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
package/dist/_chunks/{HubspotPropertyInput-DrBsx9jQ.mjs → HubspotPropertyInput-C2Z6472q.mjs}
RENAMED
|
@@ -4,9 +4,9 @@ import { u as useIntl } from "./index-CEh8vkxY.mjs";
|
|
|
4
4
|
import { Field, Flex, Loader, Combobox, ComboboxOption, IconButton, Button, Typography, Link } from "@strapi/design-system";
|
|
5
5
|
import { ArrowClockwise } from "@strapi/icons";
|
|
6
6
|
import { useField } from "@strapi/strapi/admin";
|
|
7
|
-
import { g as getTranslation } from "./index-
|
|
8
|
-
import { o as objectLabel } from "./objectLabels-
|
|
9
|
-
import { u as useHubspotSchema } from "./useHubspotSchema-
|
|
7
|
+
import { g as getTranslation } from "./index-LTaVoyWJ.mjs";
|
|
8
|
+
import { o as objectLabel } from "./objectLabels-DE2xGq7f.mjs";
|
|
9
|
+
import { u as useHubspotSchema } from "./useHubspotSchema-BSKow0X3.mjs";
|
|
10
10
|
const oneLine = {
|
|
11
11
|
display: "block",
|
|
12
12
|
whiteSpace: "nowrap",
|
|
@@ -5,9 +5,9 @@ const React = require("react");
|
|
|
5
5
|
const index = require("./index-DkTxsEqL.js");
|
|
6
6
|
const designSystem = require("@strapi/design-system");
|
|
7
7
|
const admin = require("@strapi/strapi/admin");
|
|
8
|
-
const index$1 = require("./index-
|
|
8
|
+
const index$1 = require("./index-BbRtXnAL.js");
|
|
9
9
|
const reactRouterDom = require("react-router-dom");
|
|
10
|
-
const objectLabels = require("./objectLabels-
|
|
10
|
+
const objectLabels = require("./objectLabels-DU0Cagt_.js");
|
|
11
11
|
function _interopNamespace(e) {
|
|
12
12
|
if (e && e.__esModule) return e;
|
|
13
13
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
@@ -3,9 +3,9 @@ import * as React from "react";
|
|
|
3
3
|
import { u as useIntl } from "./index-CEh8vkxY.mjs";
|
|
4
4
|
import { Flex, Divider, Typography, Button, Box, Link, Badge, Loader, Field } from "@strapi/design-system";
|
|
5
5
|
import { useFetchClient } from "@strapi/strapi/admin";
|
|
6
|
-
import { g as getTranslation, P as PLUGIN_ID } from "./index-
|
|
6
|
+
import { g as getTranslation, P as PLUGIN_ID } from "./index-LTaVoyWJ.mjs";
|
|
7
7
|
import { Link as Link$1 } from "react-router-dom";
|
|
8
|
-
import { o as objectLabel } from "./objectLabels-
|
|
8
|
+
import { o as objectLabel } from "./objectLabels-DE2xGq7f.mjs";
|
|
9
9
|
const AuditSection = ({ configured }) => {
|
|
10
10
|
const intl = useIntl();
|
|
11
11
|
const { formatMessage } = intl;
|
|
@@ -92,8 +92,8 @@ const en = {
|
|
|
92
92
|
"forms.col-structure": "Structure",
|
|
93
93
|
"forms.col-status": "Status",
|
|
94
94
|
"forms.col-updated": "Updated",
|
|
95
|
-
"forms.col-actions": "",
|
|
96
|
-
"forms.structure": "{steps} steps · {fields} fields",
|
|
95
|
+
"forms.col-actions": "Actions",
|
|
96
|
+
"forms.structure": "{steps, plural, one {# step} other {# steps}} · {fields, plural, one {# field} other {# fields}}",
|
|
97
97
|
"forms.published": "Published",
|
|
98
98
|
"forms.draft": "Draft",
|
|
99
99
|
"forms.delete": "Delete",
|
|
@@ -197,7 +197,54 @@ const en = {
|
|
|
197
197
|
"form-picker.placeholder": "Choose a form…",
|
|
198
198
|
"form-picker.fallback": "Form slug",
|
|
199
199
|
"form-picker.orphan": "{slug} — unknown form",
|
|
200
|
-
"form-picker.draft": "{name} ({slug}) — draft, not served yet"
|
|
200
|
+
"form-picker.draft": "{name} ({slug}) — draft, not served yet",
|
|
201
|
+
"forms.duplicate": "Duplicate",
|
|
202
|
+
"forms.duplicate-error": "Could not duplicate the form.",
|
|
203
|
+
"panel.icon": "Icon",
|
|
204
|
+
"panel.persist": "Answer memory",
|
|
205
|
+
"panel.persist-session": "This visit only",
|
|
206
|
+
"panel.persist-days30": "30 days (non-identifying fields only)",
|
|
207
|
+
"panel.class": "CSS classes",
|
|
208
|
+
"forms.col-submissions": "Submissions",
|
|
209
|
+
"forms.submissions": "Submissions",
|
|
210
|
+
"forms.import-hubspot-title": "Import from your HubSpot portal",
|
|
211
|
+
"forms.import-hubspot-hint": "Translates a form built in HubSpot into a draft here, CRM mapping included. What the builder can't express is skipped and reported. Re-importing overwrites the draft.",
|
|
212
|
+
"forms.import-hubspot-source": "HubSpot form to import",
|
|
213
|
+
"forms.hubspot-list-error": "Could not list the portal's forms — the token needs the `forms` read scope.",
|
|
214
|
+
"forms.report-title": "Imported with gaps",
|
|
215
|
+
"forms.report-dismiss": "Dismiss",
|
|
216
|
+
"forms.report-open": "Open the form",
|
|
217
|
+
"forms.skipped-field-type": '"{label}" skipped — unsupported type ({detail})',
|
|
218
|
+
"forms.skipped-hidden": '"{label}" skipped — hidden fields are not supported yet',
|
|
219
|
+
"forms.skipped-object": '"{label}" skipped — unmapped object ({detail})',
|
|
220
|
+
"forms.skipped-duplicate": '"{label}" skipped — the name "{detail}" is already used',
|
|
221
|
+
"forms.skipped-condition": 'Condition on "{label}" dropped — no equivalent operator ({detail})',
|
|
222
|
+
"forms.skipped-rich-text": "A content block was skipped — the builder has no rich-text element",
|
|
223
|
+
"forms.skipped-consent": "The GDPR consent block was skipped — rebuild it as a field if needed",
|
|
224
|
+
"submissions.title": "Submissions",
|
|
225
|
+
"submissions.subtitle": "Every answer received by the built forms — stored whatever the CRM's mood.",
|
|
226
|
+
"submissions.back": "Back to the forms",
|
|
227
|
+
"submissions.filter": "Filter by form",
|
|
228
|
+
"submissions.all-forms": "All forms",
|
|
229
|
+
"submissions.export": "Export CSV",
|
|
230
|
+
"submissions.export-pick": "Pick a form to export",
|
|
231
|
+
"submissions.export-error": "Could not export the submissions.",
|
|
232
|
+
"submissions.load-error": "Could not load the submissions.",
|
|
233
|
+
"submissions.loading": "Loading…",
|
|
234
|
+
"submissions.empty": "No submission yet.",
|
|
235
|
+
"submissions.empty-form": "No submission for this form yet.",
|
|
236
|
+
"submissions.col-date": "Date",
|
|
237
|
+
"submissions.col-form": "Form",
|
|
238
|
+
"submissions.col-email": "Email",
|
|
239
|
+
"submissions.col-answers": "Answers",
|
|
240
|
+
"submissions.col-crm": "CRM",
|
|
241
|
+
"submissions.synced": "Synced",
|
|
242
|
+
"submissions.not-synced": "Not synced",
|
|
243
|
+
"submissions.count": "{total, plural, one {# submission} other {# submissions}}",
|
|
244
|
+
"submissions.prev": "Previous",
|
|
245
|
+
"submissions.next": "Next",
|
|
246
|
+
"submissions.page": "{page} / {pages}",
|
|
247
|
+
"submissions.meta-page": "Submitted from"
|
|
201
248
|
};
|
|
202
249
|
export {
|
|
203
250
|
en as default
|
|
@@ -94,8 +94,8 @@ const en = {
|
|
|
94
94
|
"forms.col-structure": "Structure",
|
|
95
95
|
"forms.col-status": "Status",
|
|
96
96
|
"forms.col-updated": "Updated",
|
|
97
|
-
"forms.col-actions": "",
|
|
98
|
-
"forms.structure": "{steps} steps · {fields} fields",
|
|
97
|
+
"forms.col-actions": "Actions",
|
|
98
|
+
"forms.structure": "{steps, plural, one {# step} other {# steps}} · {fields, plural, one {# field} other {# fields}}",
|
|
99
99
|
"forms.published": "Published",
|
|
100
100
|
"forms.draft": "Draft",
|
|
101
101
|
"forms.delete": "Delete",
|
|
@@ -199,6 +199,53 @@ const en = {
|
|
|
199
199
|
"form-picker.placeholder": "Choose a form…",
|
|
200
200
|
"form-picker.fallback": "Form slug",
|
|
201
201
|
"form-picker.orphan": "{slug} — unknown form",
|
|
202
|
-
"form-picker.draft": "{name} ({slug}) — draft, not served yet"
|
|
202
|
+
"form-picker.draft": "{name} ({slug}) — draft, not served yet",
|
|
203
|
+
"forms.duplicate": "Duplicate",
|
|
204
|
+
"forms.duplicate-error": "Could not duplicate the form.",
|
|
205
|
+
"panel.icon": "Icon",
|
|
206
|
+
"panel.persist": "Answer memory",
|
|
207
|
+
"panel.persist-session": "This visit only",
|
|
208
|
+
"panel.persist-days30": "30 days (non-identifying fields only)",
|
|
209
|
+
"panel.class": "CSS classes",
|
|
210
|
+
"forms.col-submissions": "Submissions",
|
|
211
|
+
"forms.submissions": "Submissions",
|
|
212
|
+
"forms.import-hubspot-title": "Import from your HubSpot portal",
|
|
213
|
+
"forms.import-hubspot-hint": "Translates a form built in HubSpot into a draft here, CRM mapping included. What the builder can't express is skipped and reported. Re-importing overwrites the draft.",
|
|
214
|
+
"forms.import-hubspot-source": "HubSpot form to import",
|
|
215
|
+
"forms.hubspot-list-error": "Could not list the portal's forms — the token needs the `forms` read scope.",
|
|
216
|
+
"forms.report-title": "Imported with gaps",
|
|
217
|
+
"forms.report-dismiss": "Dismiss",
|
|
218
|
+
"forms.report-open": "Open the form",
|
|
219
|
+
"forms.skipped-field-type": '"{label}" skipped — unsupported type ({detail})',
|
|
220
|
+
"forms.skipped-hidden": '"{label}" skipped — hidden fields are not supported yet',
|
|
221
|
+
"forms.skipped-object": '"{label}" skipped — unmapped object ({detail})',
|
|
222
|
+
"forms.skipped-duplicate": '"{label}" skipped — the name "{detail}" is already used',
|
|
223
|
+
"forms.skipped-condition": 'Condition on "{label}" dropped — no equivalent operator ({detail})',
|
|
224
|
+
"forms.skipped-rich-text": "A content block was skipped — the builder has no rich-text element",
|
|
225
|
+
"forms.skipped-consent": "The GDPR consent block was skipped — rebuild it as a field if needed",
|
|
226
|
+
"submissions.title": "Submissions",
|
|
227
|
+
"submissions.subtitle": "Every answer received by the built forms — stored whatever the CRM's mood.",
|
|
228
|
+
"submissions.back": "Back to the forms",
|
|
229
|
+
"submissions.filter": "Filter by form",
|
|
230
|
+
"submissions.all-forms": "All forms",
|
|
231
|
+
"submissions.export": "Export CSV",
|
|
232
|
+
"submissions.export-pick": "Pick a form to export",
|
|
233
|
+
"submissions.export-error": "Could not export the submissions.",
|
|
234
|
+
"submissions.load-error": "Could not load the submissions.",
|
|
235
|
+
"submissions.loading": "Loading…",
|
|
236
|
+
"submissions.empty": "No submission yet.",
|
|
237
|
+
"submissions.empty-form": "No submission for this form yet.",
|
|
238
|
+
"submissions.col-date": "Date",
|
|
239
|
+
"submissions.col-form": "Form",
|
|
240
|
+
"submissions.col-email": "Email",
|
|
241
|
+
"submissions.col-answers": "Answers",
|
|
242
|
+
"submissions.col-crm": "CRM",
|
|
243
|
+
"submissions.synced": "Synced",
|
|
244
|
+
"submissions.not-synced": "Not synced",
|
|
245
|
+
"submissions.count": "{total, plural, one {# submission} other {# submissions}}",
|
|
246
|
+
"submissions.prev": "Previous",
|
|
247
|
+
"submissions.next": "Next",
|
|
248
|
+
"submissions.page": "{page} / {pages}",
|
|
249
|
+
"submissions.meta-page": "Submitted from"
|
|
203
250
|
};
|
|
204
251
|
exports.default = en;
|
|
@@ -92,8 +92,8 @@ const fr = {
|
|
|
92
92
|
"forms.col-structure": "Structure",
|
|
93
93
|
"forms.col-status": "Statut",
|
|
94
94
|
"forms.col-updated": "Modifié",
|
|
95
|
-
"forms.col-actions": "",
|
|
96
|
-
"forms.structure": "{steps} étapes · {fields} champs",
|
|
95
|
+
"forms.col-actions": "Actions",
|
|
96
|
+
"forms.structure": "{steps, plural, one {# étape} other {# étapes}} · {fields, plural, one {# champ} other {# champs}}",
|
|
97
97
|
"forms.published": "Publié",
|
|
98
98
|
"forms.draft": "Brouillon",
|
|
99
99
|
"forms.delete": "Supprimer",
|
|
@@ -197,7 +197,54 @@ const fr = {
|
|
|
197
197
|
"form-picker.placeholder": "Choisir un formulaire…",
|
|
198
198
|
"form-picker.fallback": "Slug du formulaire",
|
|
199
199
|
"form-picker.orphan": "{slug} — formulaire inconnu",
|
|
200
|
-
"form-picker.draft": "{name} ({slug}) — brouillon, pas encore servi"
|
|
200
|
+
"form-picker.draft": "{name} ({slug}) — brouillon, pas encore servi",
|
|
201
|
+
"forms.duplicate": "Dupliquer",
|
|
202
|
+
"forms.duplicate-error": "Impossible de dupliquer le formulaire.",
|
|
203
|
+
"panel.icon": "Icône",
|
|
204
|
+
"panel.persist": "Mémoire de la réponse",
|
|
205
|
+
"panel.persist-session": "Cette visite seulement",
|
|
206
|
+
"panel.persist-days30": "30 jours (champs non identifiants uniquement)",
|
|
207
|
+
"panel.class": "Classes CSS",
|
|
208
|
+
"forms.col-submissions": "Soumissions",
|
|
209
|
+
"forms.submissions": "Soumissions",
|
|
210
|
+
"forms.import-hubspot-title": "Importer depuis votre portail HubSpot",
|
|
211
|
+
"forms.import-hubspot-hint": "Traduit un formulaire construit dans HubSpot en brouillon ici, mapping CRM inclus. Ce que le builder ne sait pas exprimer est écarté et signalé. Ré-importer écrase le brouillon.",
|
|
212
|
+
"forms.import-hubspot-source": "Formulaire HubSpot à importer",
|
|
213
|
+
"forms.hubspot-list-error": "Impossible de lister les formulaires du portail — le jeton a besoin du scope de lecture `forms`.",
|
|
214
|
+
"forms.report-title": "Importé avec des manques",
|
|
215
|
+
"forms.report-dismiss": "Fermer",
|
|
216
|
+
"forms.report-open": "Ouvrir le formulaire",
|
|
217
|
+
"forms.skipped-field-type": "« {label} » écarté — type non supporté ({detail})",
|
|
218
|
+
"forms.skipped-hidden": "« {label} » écarté — les champs cachés ne sont pas encore supportés",
|
|
219
|
+
"forms.skipped-object": "« {label} » écarté — objet non mappé ({detail})",
|
|
220
|
+
"forms.skipped-duplicate": "« {label} » écarté — le nom « {detail} » est déjà utilisé",
|
|
221
|
+
"forms.skipped-condition": "Condition de « {label} » abandonnée — opérateur sans équivalent ({detail})",
|
|
222
|
+
"forms.skipped-rich-text": "Un bloc de contenu a été écarté — le builder n'a pas d'élément texte riche",
|
|
223
|
+
"forms.skipped-consent": "Le bloc de consentement RGPD a été écarté — recréez-le en champ si besoin",
|
|
224
|
+
"submissions.title": "Soumissions",
|
|
225
|
+
"submissions.subtitle": "Toutes les réponses reçues par les formulaires construits — conservées quoi qu'il arrive côté CRM.",
|
|
226
|
+
"submissions.back": "Retour aux formulaires",
|
|
227
|
+
"submissions.filter": "Filtrer par formulaire",
|
|
228
|
+
"submissions.all-forms": "Tous les formulaires",
|
|
229
|
+
"submissions.export": "Exporter en CSV",
|
|
230
|
+
"submissions.export-pick": "Choisissez un formulaire à exporter",
|
|
231
|
+
"submissions.export-error": "Impossible d'exporter les soumissions.",
|
|
232
|
+
"submissions.load-error": "Impossible de charger les soumissions.",
|
|
233
|
+
"submissions.loading": "Chargement…",
|
|
234
|
+
"submissions.empty": "Aucune soumission pour le moment.",
|
|
235
|
+
"submissions.empty-form": "Aucune soumission pour ce formulaire pour le moment.",
|
|
236
|
+
"submissions.col-date": "Date",
|
|
237
|
+
"submissions.col-form": "Formulaire",
|
|
238
|
+
"submissions.col-email": "Email",
|
|
239
|
+
"submissions.col-answers": "Réponses",
|
|
240
|
+
"submissions.col-crm": "CRM",
|
|
241
|
+
"submissions.synced": "Synchronisée",
|
|
242
|
+
"submissions.not-synced": "Non synchronisée",
|
|
243
|
+
"submissions.count": "{total, plural, one {# soumission} other {# soumissions}}",
|
|
244
|
+
"submissions.prev": "Précédent",
|
|
245
|
+
"submissions.next": "Suivant",
|
|
246
|
+
"submissions.page": "{page} / {pages}",
|
|
247
|
+
"submissions.meta-page": "Envoyée depuis"
|
|
201
248
|
};
|
|
202
249
|
export {
|
|
203
250
|
fr as default
|
|
@@ -94,8 +94,8 @@ const fr = {
|
|
|
94
94
|
"forms.col-structure": "Structure",
|
|
95
95
|
"forms.col-status": "Statut",
|
|
96
96
|
"forms.col-updated": "Modifié",
|
|
97
|
-
"forms.col-actions": "",
|
|
98
|
-
"forms.structure": "{steps} étapes · {fields} champs",
|
|
97
|
+
"forms.col-actions": "Actions",
|
|
98
|
+
"forms.structure": "{steps, plural, one {# étape} other {# étapes}} · {fields, plural, one {# champ} other {# champs}}",
|
|
99
99
|
"forms.published": "Publié",
|
|
100
100
|
"forms.draft": "Brouillon",
|
|
101
101
|
"forms.delete": "Supprimer",
|
|
@@ -199,6 +199,53 @@ const fr = {
|
|
|
199
199
|
"form-picker.placeholder": "Choisir un formulaire…",
|
|
200
200
|
"form-picker.fallback": "Slug du formulaire",
|
|
201
201
|
"form-picker.orphan": "{slug} — formulaire inconnu",
|
|
202
|
-
"form-picker.draft": "{name} ({slug}) — brouillon, pas encore servi"
|
|
202
|
+
"form-picker.draft": "{name} ({slug}) — brouillon, pas encore servi",
|
|
203
|
+
"forms.duplicate": "Dupliquer",
|
|
204
|
+
"forms.duplicate-error": "Impossible de dupliquer le formulaire.",
|
|
205
|
+
"panel.icon": "Icône",
|
|
206
|
+
"panel.persist": "Mémoire de la réponse",
|
|
207
|
+
"panel.persist-session": "Cette visite seulement",
|
|
208
|
+
"panel.persist-days30": "30 jours (champs non identifiants uniquement)",
|
|
209
|
+
"panel.class": "Classes CSS",
|
|
210
|
+
"forms.col-submissions": "Soumissions",
|
|
211
|
+
"forms.submissions": "Soumissions",
|
|
212
|
+
"forms.import-hubspot-title": "Importer depuis votre portail HubSpot",
|
|
213
|
+
"forms.import-hubspot-hint": "Traduit un formulaire construit dans HubSpot en brouillon ici, mapping CRM inclus. Ce que le builder ne sait pas exprimer est écarté et signalé. Ré-importer écrase le brouillon.",
|
|
214
|
+
"forms.import-hubspot-source": "Formulaire HubSpot à importer",
|
|
215
|
+
"forms.hubspot-list-error": "Impossible de lister les formulaires du portail — le jeton a besoin du scope de lecture `forms`.",
|
|
216
|
+
"forms.report-title": "Importé avec des manques",
|
|
217
|
+
"forms.report-dismiss": "Fermer",
|
|
218
|
+
"forms.report-open": "Ouvrir le formulaire",
|
|
219
|
+
"forms.skipped-field-type": "« {label} » écarté — type non supporté ({detail})",
|
|
220
|
+
"forms.skipped-hidden": "« {label} » écarté — les champs cachés ne sont pas encore supportés",
|
|
221
|
+
"forms.skipped-object": "« {label} » écarté — objet non mappé ({detail})",
|
|
222
|
+
"forms.skipped-duplicate": "« {label} » écarté — le nom « {detail} » est déjà utilisé",
|
|
223
|
+
"forms.skipped-condition": "Condition de « {label} » abandonnée — opérateur sans équivalent ({detail})",
|
|
224
|
+
"forms.skipped-rich-text": "Un bloc de contenu a été écarté — le builder n'a pas d'élément texte riche",
|
|
225
|
+
"forms.skipped-consent": "Le bloc de consentement RGPD a été écarté — recréez-le en champ si besoin",
|
|
226
|
+
"submissions.title": "Soumissions",
|
|
227
|
+
"submissions.subtitle": "Toutes les réponses reçues par les formulaires construits — conservées quoi qu'il arrive côté CRM.",
|
|
228
|
+
"submissions.back": "Retour aux formulaires",
|
|
229
|
+
"submissions.filter": "Filtrer par formulaire",
|
|
230
|
+
"submissions.all-forms": "Tous les formulaires",
|
|
231
|
+
"submissions.export": "Exporter en CSV",
|
|
232
|
+
"submissions.export-pick": "Choisissez un formulaire à exporter",
|
|
233
|
+
"submissions.export-error": "Impossible d'exporter les soumissions.",
|
|
234
|
+
"submissions.load-error": "Impossible de charger les soumissions.",
|
|
235
|
+
"submissions.loading": "Chargement…",
|
|
236
|
+
"submissions.empty": "Aucune soumission pour le moment.",
|
|
237
|
+
"submissions.empty-form": "Aucune soumission pour ce formulaire pour le moment.",
|
|
238
|
+
"submissions.col-date": "Date",
|
|
239
|
+
"submissions.col-form": "Formulaire",
|
|
240
|
+
"submissions.col-email": "Email",
|
|
241
|
+
"submissions.col-answers": "Réponses",
|
|
242
|
+
"submissions.col-crm": "CRM",
|
|
243
|
+
"submissions.synced": "Synchronisée",
|
|
244
|
+
"submissions.not-synced": "Non synchronisée",
|
|
245
|
+
"submissions.count": "{total, plural, one {# soumission} other {# soumissions}}",
|
|
246
|
+
"submissions.prev": "Précédent",
|
|
247
|
+
"submissions.next": "Suivant",
|
|
248
|
+
"submissions.page": "{page} / {pages}",
|
|
249
|
+
"submissions.meta-page": "Envoyée depuis"
|
|
203
250
|
};
|
|
204
251
|
exports.default = fr;
|
|
@@ -26,7 +26,7 @@ const index = {
|
|
|
26
26
|
icon: icons.PaperPlane,
|
|
27
27
|
intlLabel: { id: `${PLUGIN_ID}.menu.label`, defaultMessage: "HubSpot Forms" },
|
|
28
28
|
permissions: [{ action: `plugin::${PLUGIN_ID}.forms`, subject: null }],
|
|
29
|
-
Component: async () => (await Promise.resolve().then(() => require("./Forms-
|
|
29
|
+
Component: async () => (await Promise.resolve().then(() => require("./Forms-JuzNfsbL.js"))).default
|
|
30
30
|
});
|
|
31
31
|
app.customFields.register({
|
|
32
32
|
name: "property",
|
|
@@ -41,7 +41,7 @@ const index = {
|
|
|
41
41
|
defaultMessage: "Picked from the portal's real properties"
|
|
42
42
|
},
|
|
43
43
|
components: {
|
|
44
|
-
Input: async () => Promise.resolve().then(() => require("./HubspotPropertyInput-
|
|
44
|
+
Input: async () => Promise.resolve().then(() => require("./HubspotPropertyInput-BM3ZaY8f.js"))
|
|
45
45
|
},
|
|
46
46
|
// Exposed in the Content-Type Builder. Without this, `objectField` could
|
|
47
47
|
// only be set by hand-editing schema.json — which is not how anyone
|
|
@@ -104,7 +104,7 @@ const index = {
|
|
|
104
104
|
defaultMessage: "Picked from the portal's configured objects"
|
|
105
105
|
},
|
|
106
106
|
components: {
|
|
107
|
-
Input: async () => Promise.resolve().then(() => require("./HubspotObjectInput-
|
|
107
|
+
Input: async () => Promise.resolve().then(() => require("./HubspotObjectInput-dAd-lMdD.js"))
|
|
108
108
|
}
|
|
109
109
|
});
|
|
110
110
|
app.customFields.register({
|
|
@@ -120,7 +120,7 @@ const index = {
|
|
|
120
120
|
defaultMessage: "A form built in the HubSpot form builder, stored by slug"
|
|
121
121
|
},
|
|
122
122
|
components: {
|
|
123
|
-
Input: async () => Promise.resolve().then(() => require("./HubspotFormInput-
|
|
123
|
+
Input: async () => Promise.resolve().then(() => require("./HubspotFormInput-ph9pe6xY.js"))
|
|
124
124
|
}
|
|
125
125
|
});
|
|
126
126
|
app.createSettingSection(
|
|
@@ -136,7 +136,7 @@ const index = {
|
|
|
136
136
|
// Mirrors the RBAC action registered server-side: a role without it
|
|
137
137
|
// doesn't see the link at all — the routes refuse it anyway.
|
|
138
138
|
permissions: [{ action: `plugin::${PLUGIN_ID}.settings`, subject: null }],
|
|
139
|
-
Component: async () => (await Promise.resolve().then(() => require("./Settings-
|
|
139
|
+
Component: async () => (await Promise.resolve().then(() => require("./Settings-Cdcjy9DA.js"))).default
|
|
140
140
|
}
|
|
141
141
|
]
|
|
142
142
|
);
|
|
@@ -146,7 +146,7 @@ const index = {
|
|
|
146
146
|
return Promise.all(
|
|
147
147
|
locales.map(async (locale) => {
|
|
148
148
|
try {
|
|
149
|
-
const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => Promise.resolve().then(() => require("./en-
|
|
149
|
+
const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => Promise.resolve().then(() => require("./en-Cqfair98.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-D117-3Ta.js")) }), `./translations/${locale}.json`, 3);
|
|
150
150
|
return { data: prefixPluginTranslations(data), locale };
|
|
151
151
|
} catch {
|
|
152
152
|
return { data: {}, locale };
|
|
@@ -25,7 +25,7 @@ const index = {
|
|
|
25
25
|
icon: PaperPlane,
|
|
26
26
|
intlLabel: { id: `${PLUGIN_ID}.menu.label`, defaultMessage: "HubSpot Forms" },
|
|
27
27
|
permissions: [{ action: `plugin::${PLUGIN_ID}.forms`, subject: null }],
|
|
28
|
-
Component: async () => (await import("./Forms-
|
|
28
|
+
Component: async () => (await import("./Forms-BsKys-Hc.mjs")).default
|
|
29
29
|
});
|
|
30
30
|
app.customFields.register({
|
|
31
31
|
name: "property",
|
|
@@ -40,7 +40,7 @@ const index = {
|
|
|
40
40
|
defaultMessage: "Picked from the portal's real properties"
|
|
41
41
|
},
|
|
42
42
|
components: {
|
|
43
|
-
Input: async () => import("./HubspotPropertyInput-
|
|
43
|
+
Input: async () => import("./HubspotPropertyInput-C2Z6472q.mjs")
|
|
44
44
|
},
|
|
45
45
|
// Exposed in the Content-Type Builder. Without this, `objectField` could
|
|
46
46
|
// only be set by hand-editing schema.json — which is not how anyone
|
|
@@ -103,7 +103,7 @@ const index = {
|
|
|
103
103
|
defaultMessage: "Picked from the portal's configured objects"
|
|
104
104
|
},
|
|
105
105
|
components: {
|
|
106
|
-
Input: async () => import("./HubspotObjectInput-
|
|
106
|
+
Input: async () => import("./HubspotObjectInput-BX1qYD2c.mjs")
|
|
107
107
|
}
|
|
108
108
|
});
|
|
109
109
|
app.customFields.register({
|
|
@@ -119,7 +119,7 @@ const index = {
|
|
|
119
119
|
defaultMessage: "A form built in the HubSpot form builder, stored by slug"
|
|
120
120
|
},
|
|
121
121
|
components: {
|
|
122
|
-
Input: async () => import("./HubspotFormInput-
|
|
122
|
+
Input: async () => import("./HubspotFormInput-CIvHS5rp.mjs")
|
|
123
123
|
}
|
|
124
124
|
});
|
|
125
125
|
app.createSettingSection(
|
|
@@ -135,7 +135,7 @@ const index = {
|
|
|
135
135
|
// Mirrors the RBAC action registered server-side: a role without it
|
|
136
136
|
// doesn't see the link at all — the routes refuse it anyway.
|
|
137
137
|
permissions: [{ action: `plugin::${PLUGIN_ID}.settings`, subject: null }],
|
|
138
|
-
Component: async () => (await import("./Settings-
|
|
138
|
+
Component: async () => (await import("./Settings-DnwGetcc.mjs")).default
|
|
139
139
|
}
|
|
140
140
|
]
|
|
141
141
|
);
|
|
@@ -145,7 +145,7 @@ const index = {
|
|
|
145
145
|
return Promise.all(
|
|
146
146
|
locales.map(async (locale) => {
|
|
147
147
|
try {
|
|
148
|
-
const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => import("./en-
|
|
148
|
+
const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => import("./en-CcQWnXra.mjs"), "./translations/fr.json": () => import("./fr-CBRZ9q8U.mjs") }), `./translations/${locale}.json`, 3);
|
|
149
149
|
return { data: prefixPluginTranslations(data), locale };
|
|
150
150
|
} catch {
|
|
151
151
|
return { data: {}, locale };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { useFetchClient } from "@strapi/strapi/admin";
|
|
3
|
-
import { P as PLUGIN_ID } from "./index-
|
|
3
|
+
import { P as PLUGIN_ID } from "./index-LTaVoyWJ.mjs";
|
|
4
4
|
let cached = null;
|
|
5
5
|
let inFlight = null;
|
|
6
6
|
const listeners = /* @__PURE__ */ new Set();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const React = require("react");
|
|
3
3
|
const admin = require("@strapi/strapi/admin");
|
|
4
|
-
const index = require("./index-
|
|
4
|
+
const index = require("./index-BbRtXnAL.js");
|
|
5
5
|
function _interopNamespace(e) {
|
|
6
6
|
if (e && e.__esModule) return e;
|
|
7
7
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
package/dist/admin/index.js
CHANGED
package/dist/admin/index.mjs
CHANGED
|
@@ -55,6 +55,7 @@ export interface FormEntryDto {
|
|
|
55
55
|
nextLabel?: string | null;
|
|
56
56
|
submitLabel?: string | null;
|
|
57
57
|
successMessage?: string | null;
|
|
58
|
+
class?: string | null;
|
|
58
59
|
locale?: string | null;
|
|
59
60
|
updatedAt?: string;
|
|
60
61
|
definition: FormDefinition;
|
|
@@ -67,6 +68,31 @@ export interface FormListRow {
|
|
|
67
68
|
published: boolean;
|
|
68
69
|
steps: number;
|
|
69
70
|
fields: number;
|
|
71
|
+
submissions: number;
|
|
72
|
+
}
|
|
73
|
+
/** One form of the connected portal, offered for import. */
|
|
74
|
+
export interface HubspotSource {
|
|
75
|
+
id: string;
|
|
76
|
+
name: string;
|
|
77
|
+
updatedAt?: string;
|
|
78
|
+
}
|
|
79
|
+
/** What a HubSpot import couldn't carry over (mirrors server SkippedItem). */
|
|
80
|
+
export interface SkippedItem {
|
|
81
|
+
code: "field-type" | "hidden-field" | "object" | "duplicate" | "condition" | "rich-text" | "legal-consent";
|
|
82
|
+
label?: string;
|
|
83
|
+
detail?: string;
|
|
84
|
+
}
|
|
85
|
+
/** One stored submission, as the admin list serves it. */
|
|
86
|
+
export interface SubmissionRowDto {
|
|
87
|
+
documentId: string;
|
|
88
|
+
form: string;
|
|
89
|
+
formTitle?: string | null;
|
|
90
|
+
email?: string | null;
|
|
91
|
+
values: Record<string, string | number | boolean>;
|
|
92
|
+
meta?: Record<string, string> | null;
|
|
93
|
+
locale?: string | null;
|
|
94
|
+
hubspotSynced?: boolean;
|
|
95
|
+
createdAt?: string;
|
|
70
96
|
}
|
|
71
97
|
export interface DefinitionError {
|
|
72
98
|
code: "duplicate-name" | "missing-name" | "unknown-field" | "forward-reference" | "missing-value";
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* The Forms menu entry: the list at the root, the submissions browser at
|
|
4
|
+
* /submissions (static, so it wins over the param route), the builder at
|
|
5
|
+
* /:documentId.
|
|
6
|
+
*/
|
|
3
7
|
declare const Forms: () => import("react").JSX.Element;
|
|
4
8
|
export default Forms;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* The submissions browser: every stored answer, filterable by form, with a
|
|
4
|
+
* per-form CSV export. Reading happens here; deleting stays in the Content
|
|
5
|
+
* Manager, where the type is visible on purpose.
|
|
6
|
+
*/
|
|
7
|
+
declare const Submissions: () => React.JSX.Element;
|
|
8
|
+
export default Submissions;
|