@ebitex/forms-sdk 1.0.225 → 1.0.241
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attribution.d.ts +19 -0
- package/dist/attribution.d.ts.map +1 -0
- package/dist/attribution.js +38 -0
- package/dist/attribution.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react/EbitexForm.d.ts +14 -1
- package/dist/react/EbitexForm.d.ts.map +1 -1
- package/dist/react/EbitexForm.js +26 -2
- package/dist/react/EbitexForm.js.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a visitor came from: the three campaign tags of the link they followed (the `utm_*` values under their short names). A neutral value that the suite's SDKs carry to the things that can
|
|
3
|
+
* create or identify a person, so Audience can record it once as their first touch.
|
|
4
|
+
*
|
|
5
|
+
* The text is untrusted (anyone can write a link). This SDK stores nothing: it reads the page's address, or what the site passes, at the moment it sends. Keeping a first touch across
|
|
6
|
+
* pages is the site's decision. The cleaning rules exist in four places (Audience, Forms, visitors-sdk and here), held together by one shared fixture, so they are changed together or not at all.
|
|
7
|
+
*/
|
|
8
|
+
export interface Attribution {
|
|
9
|
+
source?: string;
|
|
10
|
+
medium?: string;
|
|
11
|
+
campaign?: string;
|
|
12
|
+
}
|
|
13
|
+
/** One member: control and format characters removed, trimmed, cut at 100 without leaving half a surrogate pair; `undefined` when nothing is left. */
|
|
14
|
+
export declare function cleanAttributionValue(value: unknown): string | undefined;
|
|
15
|
+
/** The attribution with every member cleaned, or `undefined` when it has nothing in it. */
|
|
16
|
+
export declare function normalizeAttribution(raw: unknown): Attribution | undefined;
|
|
17
|
+
/** The three `utm_*` tags of an address' query string (the first value of each), cleaned. */
|
|
18
|
+
export declare function readAttributionFromSearch(search: string): Attribution | undefined;
|
|
19
|
+
//# sourceMappingURL=attribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attribution.d.ts","sourceRoot":"","sources":["../src/attribution.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAID,sJAAsJ;AACtJ,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAWxE;AAED,2FAA2F;AAC3F,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,CAW1E;AAED,6FAA6F;AAC7F,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGjF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const MAX_LENGTH = 100;
|
|
2
|
+
/** One member: control and format characters removed, trimmed, cut at 100 without leaving half a surrogate pair; `undefined` when nothing is left. */
|
|
3
|
+
export function cleanAttributionValue(value) {
|
|
4
|
+
if (typeof value !== 'string')
|
|
5
|
+
return undefined;
|
|
6
|
+
let text = value.replace(/[\p{Cc}\p{Cf}]/gu, '').trim();
|
|
7
|
+
if (text.length > MAX_LENGTH) {
|
|
8
|
+
text = text.slice(0, MAX_LENGTH);
|
|
9
|
+
const last = text.charCodeAt(text.length - 1);
|
|
10
|
+
if (last >= 0xd800 && last <= 0xdbff)
|
|
11
|
+
text = text.slice(0, -1);
|
|
12
|
+
text = text.trimEnd();
|
|
13
|
+
}
|
|
14
|
+
return text === '' ? undefined : text;
|
|
15
|
+
}
|
|
16
|
+
/** The attribution with every member cleaned, or `undefined` when it has nothing in it. */
|
|
17
|
+
export function normalizeAttribution(raw) {
|
|
18
|
+
if (raw === null || typeof raw !== 'object')
|
|
19
|
+
return undefined;
|
|
20
|
+
const input = raw;
|
|
21
|
+
const result = {};
|
|
22
|
+
const source = cleanAttributionValue(input.source);
|
|
23
|
+
const medium = cleanAttributionValue(input.medium);
|
|
24
|
+
const campaign = cleanAttributionValue(input.campaign);
|
|
25
|
+
if (source !== undefined)
|
|
26
|
+
result.source = source;
|
|
27
|
+
if (medium !== undefined)
|
|
28
|
+
result.medium = medium;
|
|
29
|
+
if (campaign !== undefined)
|
|
30
|
+
result.campaign = campaign;
|
|
31
|
+
return Object.keys(result).length === 0 ? undefined : result;
|
|
32
|
+
}
|
|
33
|
+
/** The three `utm_*` tags of an address' query string (the first value of each), cleaned. */
|
|
34
|
+
export function readAttributionFromSearch(search) {
|
|
35
|
+
const params = new URLSearchParams(search);
|
|
36
|
+
return normalizeAttribution({ source: params.get('utm_source'), medium: params.get('utm_medium'), campaign: params.get('utm_campaign') });
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=attribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attribution.js","sourceRoot":"","sources":["../src/attribution.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,GAAG,GAAG,CAAA;AAEtB,sJAAsJ;AACtJ,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/C,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACvD,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC7B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC7C,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;IAED,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AACvC,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC7D,MAAM,KAAK,GAAG,GAA8B,CAAA;IAC5C,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACtD,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IAChD,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IAChD,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACtD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;AAC9D,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACtD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;IAC1C,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;AAC3I,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* must only ever run server-side, while the components render in a respondent's browser and must
|
|
8
8
|
* never receive one. Expressing the boundary in the import graph makes a mistake visible in review.
|
|
9
9
|
*/
|
|
10
|
+
export type { Attribution } from './attribution.js';
|
|
10
11
|
export { createFormsClient, FormsApiError, type FormsClient, type FormsClientOptions, } from './client.js';
|
|
11
12
|
export { validateSubmission, type ValidateOptions } from './validators.js';
|
|
12
13
|
export { isAllOfSatisfied, isFieldComparisonSatisfied, isSatisfied } from './predicates.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAE1E,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,sBAAsB,GACvB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAE7E,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAElF,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAE1E,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,sBAAsB,GACvB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAE7E,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAElF,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EACL,iBAAiB,EACjB,aAAa,GAGd,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,kBAAkB,EAAwB,MAAM,iBAAiB,CAAA;AAE1E,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,sBAAsB,GACvB,MAAM,YAAY,CAAA;AAEnB,OAAO,EA6BN,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAE7E,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAElF,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAG3B,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,oBAAoB,EAAuB,MAAM,aAAa,CAAA"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { type CSSProperties } from 'react';
|
|
2
|
+
import { type Attribution } from '../attribution.js';
|
|
2
3
|
import type { ConsentOptions, LookupSource, SdkForm, SubmissionData, VisitorStorage } from '../types.js';
|
|
3
4
|
import { type VisitorSession } from '../visitor.js';
|
|
4
5
|
import type { FieldComponents } from './fields.js';
|
|
6
|
+
/**
|
|
7
|
+
* The browser event announced on `window` after a successful final submission. It carries no data, and nothing in this package listens for it: it exists so another ebitex package on the page
|
|
8
|
+
* (the content client, when it was created with an `audience` option) can notice that the visitor's audiences may have changed and re-read what they are shown, with no wiring in your code.
|
|
9
|
+
* Where the name is spelled out in two packages that must not depend on each other, a test in each holds it.
|
|
10
|
+
*/
|
|
11
|
+
export declare const FORM_SUBMITTED_EVENT = "ebitex:form-submitted";
|
|
5
12
|
export interface EbitexFormProps {
|
|
6
13
|
/** A form definition from `createFormsClient(...).getForm(...)`, fetched on your server. */
|
|
7
14
|
form: SdkForm;
|
|
@@ -41,6 +48,12 @@ export interface EbitexFormProps {
|
|
|
41
48
|
* call `forget` from your own UI. When given, `consent` and `storage` here are ignored.
|
|
42
49
|
*/
|
|
43
50
|
visitor?: VisitorSession;
|
|
51
|
+
/**
|
|
52
|
+
* Where the respondent came from, the tags of the link they followed (the `utm_*` values under their short names), sent with the submission so Audience can record it as their first touch.
|
|
53
|
+
* A value, or a function asked at each submit. Defaults to the `utm_source`, `utm_medium` and `utm_campaign` of the page's own address in a browser; pass your own to give a first touch you
|
|
54
|
+
* kept from an earlier page (the component stores nothing), or `() => undefined` to send none. The text is untrusted and is cleaned again by the server.
|
|
55
|
+
*/
|
|
56
|
+
attribution?: Attribution | (() => Attribution | undefined);
|
|
44
57
|
/** Injectable for tests and non-standard runtimes. */
|
|
45
58
|
fetch?: typeof globalThis.fetch;
|
|
46
59
|
}
|
|
@@ -57,5 +70,5 @@ export interface EbitexFormProps {
|
|
|
57
70
|
* isn't lost — matching the behaviour of ebitex's own renderer rather than a simplified
|
|
58
71
|
* client-only notion of steps.
|
|
59
72
|
*/
|
|
60
|
-
export declare function EbitexForm({ form, onSubmitted, onError, className, style, fieldComponents, lookup, consent, storage, visitor: injectedVisitor, fetch: injectedFetch, }: EbitexFormProps): import("react").JSX.Element | null;
|
|
73
|
+
export declare function EbitexForm({ form, onSubmitted, onError, className, style, fieldComponents, lookup, consent, storage, visitor: injectedVisitor, attribution, fetch: injectedFetch, }: EbitexFormProps): import("react").JSX.Element | null;
|
|
61
74
|
//# sourceMappingURL=EbitexForm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EbitexForm.d.ts","sourceRoot":"","sources":["../../src/react/EbitexForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"EbitexForm.d.ts","sourceRoot":"","sources":["../../src/react/EbitexForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAE/E,OAAO,EAAmD,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAErG,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAoB,cAAc,EAAE,MAAM,aAAa,CAAA;AAC1H,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAGlD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,0BAA0B,CAAA;AAW3D,MAAM,WAAW,eAAe;IAC9B,4FAA4F;IAC5F,IAAI,EAAE,OAAO,CAAA;IAEb,kDAAkD;IAClD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;IAE5C,wGAAwG;IACxG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAElC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;IAErB;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IAEjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IAExB;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IAExB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAA;IAE3D,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,WAAW,EACX,OAAO,EACP,SAAS,EACT,KAAK,EACL,eAAe,EACf,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EAAE,eAAe,EACxB,WAAW,EACX,KAAK,EAAE,aAAa,GACrB,EAAE,eAAe,sCAgPjB"}
|
package/dist/react/EbitexForm.js
CHANGED
|
@@ -1,10 +1,27 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useId, useMemo, useState } from 'react';
|
|
3
3
|
import { adjacentVisibleStepSlot, collectSubmissionKeys, defaultChoiceValues, resolveSteps, resolveVisibleStepSlot } from '../nodes.js';
|
|
4
|
+
import { normalizeAttribution, readAttributionFromSearch } from '../attribution.js';
|
|
4
5
|
import { createPublicLookupSource, lookupUrlFromSubmissionUrl } from '../lookup.js';
|
|
5
6
|
import { createVisitorSession } from '../visitor.js';
|
|
6
7
|
import { validateSubmission } from '../validators.js';
|
|
7
8
|
import { ActionButtons, NodeList, joinClassNames } from './NodeList.js';
|
|
9
|
+
/**
|
|
10
|
+
* The browser event announced on `window` after a successful final submission. It carries no data, and nothing in this package listens for it: it exists so another ebitex package on the page
|
|
11
|
+
* (the content client, when it was created with an `audience` option) can notice that the visitor's audiences may have changed and re-read what they are shown, with no wiring in your code.
|
|
12
|
+
* Where the name is spelled out in two packages that must not depend on each other, a test in each holds it.
|
|
13
|
+
*/
|
|
14
|
+
export const FORM_SUBMITTED_EVENT = 'ebitex:form-submitted';
|
|
15
|
+
function announceSubmission() {
|
|
16
|
+
if (typeof window === 'undefined' || typeof window.dispatchEvent !== 'function')
|
|
17
|
+
return;
|
|
18
|
+
try {
|
|
19
|
+
window.dispatchEvent(new Event(FORM_SUBMITTED_EVENT));
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// An announcement must never turn a successful submission into an error.
|
|
23
|
+
}
|
|
24
|
+
}
|
|
8
25
|
/**
|
|
9
26
|
* Renders an ebitex Form and submits it.
|
|
10
27
|
*
|
|
@@ -18,7 +35,7 @@ import { ActionButtons, NodeList, joinClassNames } from './NodeList.js';
|
|
|
18
35
|
* isn't lost — matching the behaviour of ebitex's own renderer rather than a simplified
|
|
19
36
|
* client-only notion of steps.
|
|
20
37
|
*/
|
|
21
|
-
export function EbitexForm({ form, onSubmitted, onError, className, style, fieldComponents, lookup, consent, storage, visitor: injectedVisitor, fetch: injectedFetch, }) {
|
|
38
|
+
export function EbitexForm({ form, onSubmitted, onError, className, style, fieldComponents, lookup, consent, storage, visitor: injectedVisitor, attribution, fetch: injectedFetch, }) {
|
|
22
39
|
const baseId = useId();
|
|
23
40
|
const doFetch = injectedFetch ?? globalThis.fetch;
|
|
24
41
|
const lookupSource = useMemo(() => {
|
|
@@ -93,13 +110,19 @@ export function EbitexForm({ form, onSubmitted, onError, className, style, field
|
|
|
93
110
|
const visibleKeys = collectSubmissionKeys(allNodes, data);
|
|
94
111
|
return Object.fromEntries(Object.entries(data).filter(([key]) => visibleKeys.has(key)));
|
|
95
112
|
}
|
|
113
|
+
// Where the respondent came from, read when they submit: what the site passes, else the tags of this page's address. Nothing is kept between submits.
|
|
114
|
+
function attributionNow() {
|
|
115
|
+
if (attribution !== undefined)
|
|
116
|
+
return normalizeAttribution(typeof attribution === 'function' ? attribution() : attribution);
|
|
117
|
+
return typeof window === 'undefined' ? undefined : readAttributionFromSearch(window.location.search);
|
|
118
|
+
}
|
|
96
119
|
async function save(complete) {
|
|
97
120
|
setSubmitting(true);
|
|
98
121
|
try {
|
|
99
122
|
const response = await doFetch(form.submissionUrl, {
|
|
100
123
|
method: 'POST',
|
|
101
124
|
headers: { 'Content-Type': 'application/json' },
|
|
102
|
-
body: JSON.stringify({ ...(await session.requestFields()), data: visiblePayload(), complete }),
|
|
125
|
+
body: JSON.stringify({ ...(await session.requestFields()), data: visiblePayload(), complete, ...(attributionNow() === undefined ? {} : { attribution: attributionNow() }) }),
|
|
103
126
|
});
|
|
104
127
|
if (!response.ok) {
|
|
105
128
|
// The server is authoritative: a field-level rejection is surfaced inline rather than
|
|
@@ -147,6 +170,7 @@ export function EbitexForm({ form, onSubmitted, onError, className, style, field
|
|
|
147
170
|
setErrors({});
|
|
148
171
|
if (await save(true)) {
|
|
149
172
|
setCompleted(true);
|
|
173
|
+
announceSubmission();
|
|
150
174
|
onSubmitted?.(visiblePayload());
|
|
151
175
|
}
|
|
152
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EbitexForm.js","sourceRoot":"","sources":["../../src/react/EbitexForm.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAsB,MAAM,OAAO,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACvI,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AAEnF,OAAO,EAAE,oBAAoB,EAAuB,MAAM,eAAe,CAAA;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"EbitexForm.js","sourceRoot":"","sources":["../../src/react/EbitexForm.tsx"],"names":[],"mappings":"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"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* submit to the form's own public, anonymous endpoint. Fetch the definition server-side with
|
|
6
6
|
* `createFormsClient` from the root entry point and pass the result to `<EbitexForm />`.
|
|
7
7
|
*/
|
|
8
|
-
export { EbitexForm, type EbitexFormProps } from './EbitexForm.js';
|
|
8
|
+
export { EbitexForm, FORM_SUBMITTED_EVENT, type EbitexFormProps } from './EbitexForm.js';
|
|
9
9
|
export { ChoiceFieldControl, InputFieldControl, NumberFieldControl, TextareaFieldControl, type ChoiceFieldComponentProps, type FieldComponentProps, type FieldComponents, } from './fields.js';
|
|
10
10
|
export { LookupFieldControl } from './LookupField.js';
|
|
11
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAExF,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/react/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* submit to the form's own public, anonymous endpoint. Fetch the definition server-side with
|
|
6
6
|
* `createFormsClient` from the root entry point and pass the result to `<EbitexForm />`.
|
|
7
7
|
*/
|
|
8
|
-
export { EbitexForm } from './EbitexForm.js';
|
|
8
|
+
export { EbitexForm, FORM_SUBMITTED_EVENT } from './EbitexForm.js';
|
|
9
9
|
export { ChoiceFieldControl, InputFieldControl, NumberFieldControl, TextareaFieldControl, } from './fields.js';
|
|
10
10
|
export { LookupFieldControl } from './LookupField.js';
|
|
11
11
|
/**
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAwB,MAAM,iBAAiB,CAAA;AAExF,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GAIrB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,EAAE,oBAAoB,EAAmD,MAAM,eAAe,CAAA"}
|
package/package.json
CHANGED