@adyen/kyc-components 3.8.2 → 3.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/dist/es/adyen-kyc-components.es.js +114 -25
- package/dist/types/components/BaseElement.d.ts +1 -1
- package/dist/types/components/CompanyStructure/component/CompanyStructureComponent.d.ts +1 -3
- package/dist/types/components/UIElement.d.ts +2 -1
- package/dist/types/components/internal/CollapsibleContainer/types.d.ts +1 -1
- package/dist/types/core/Context/ConfigurationApiContext/ConfigurationApiProvider.d.ts +5 -1
- package/dist/types/core/Context/SettingsContext/types.d.ts +2 -2
- package/dist/types/core/Context/SettingsContext/useSetting.d.ts +1 -1
- package/dist/types/core/SDKValidation/index.d.ts +1 -1
- package/dist/types/core/Services/componentApi/get-analytics-session.d.ts +2 -0
- package/dist/types/core/Services/componentApi/push-events.d.ts +2 -0
- package/dist/types/core/core.d.ts +1 -1
- package/dist/types/core/hooks/useAnalytics.d.ts +11 -0
- package/dist/types/core/hooks/useComponentApi.d.ts +4 -0
- package/dist/types/core/models/api/analytics.d.ts +9 -0
- package/dist/types/core/user-events.d.ts +7 -8
- package/package.json +1 -1
|
@@ -2750,7 +2750,6 @@ var SettingNames = /* @__PURE__ */ ((SettingNames2) => {
|
|
|
2750
2750
|
SettingNames2["AllowIntraRegionCrossBorderPayout"] = "allowIntraRegionCrossBorderPayout";
|
|
2751
2751
|
SettingNames2["AllowLegalEntityTypeChange"] = "changeLegalEntityType";
|
|
2752
2752
|
SettingNames2["AllowPrefilledCountryEdit"] = "editPrefilledCountry";
|
|
2753
|
-
SettingNames2["LimitToOneTransferInstrument"] = "limitToOneTransferInstrument";
|
|
2754
2753
|
SettingNames2["RequirePciSignEcommerce"] = "requirePciSignEcommerce";
|
|
2755
2754
|
SettingNames2["RequirePciSignPos"] = "requirePciSignPos";
|
|
2756
2755
|
SettingNames2["RequirePciSignEcomMoto"] = "requirePciSignEcomMoto";
|
|
@@ -2759,6 +2758,7 @@ var SettingNames = /* @__PURE__ */ ((SettingNames2) => {
|
|
|
2759
2758
|
SettingNames2["HideOnboardingIntroductionOrganization"] = "hideOnboardingIntroductionOrganization";
|
|
2760
2759
|
SettingNames2["HideOnboardingIntroductionTrust"] = "hideOnboardingIntroductionTrust";
|
|
2761
2760
|
SettingNames2["HideOnboardingIntroductionSoleProprietor"] = "hideOnboardingIntroductionSoleProprietor";
|
|
2761
|
+
SettingNames2["TransferInstrumentLimit"] = "transferInstrumentLimit";
|
|
2762
2762
|
SettingNames2["ViewOnboardingGuidance"] = "viewOnboardingGuidance";
|
|
2763
2763
|
return SettingNames2;
|
|
2764
2764
|
})(SettingNames || {});
|
|
@@ -8222,13 +8222,16 @@ var Placement = /* @__PURE__ */ ((Placement2) => {
|
|
|
8222
8222
|
function CollapsibleContainer({
|
|
8223
8223
|
children,
|
|
8224
8224
|
collapsed = false,
|
|
8225
|
-
animationDuration
|
|
8225
|
+
animationDuration = 0
|
|
8226
8226
|
}) {
|
|
8227
8227
|
const collapsibleContainerEl = useRef(null);
|
|
8228
8228
|
const [height, setHeight] = useState(collapsed ? 0 : void 0);
|
|
8229
8229
|
useEffect(() => {
|
|
8230
8230
|
var _a;
|
|
8231
8231
|
setHeight(collapsed ? 0 : (_a = collapsibleContainerEl.current) == null ? void 0 : _a.scrollHeight);
|
|
8232
|
+
setTimeout(() => {
|
|
8233
|
+
setHeight(collapsed ? 0 : "auto");
|
|
8234
|
+
}, animationDuration * 1e3);
|
|
8232
8235
|
}, [collapsed]);
|
|
8233
8236
|
return jsx("div", {
|
|
8234
8237
|
className: "adyen-collapsible-container",
|
|
@@ -8236,7 +8239,7 @@ function CollapsibleContainer({
|
|
|
8236
8239
|
ref: collapsibleContainerEl,
|
|
8237
8240
|
style: {
|
|
8238
8241
|
height,
|
|
8239
|
-
transitionDuration: animationDuration
|
|
8242
|
+
transitionDuration: `${animationDuration}s`
|
|
8240
8243
|
},
|
|
8241
8244
|
children
|
|
8242
8245
|
});
|
|
@@ -8335,7 +8338,7 @@ function AccordionItem({
|
|
|
8335
8338
|
}) : null]
|
|
8336
8339
|
}), jsx(CollapsibleContainer, {
|
|
8337
8340
|
collapsed: !isOpen,
|
|
8338
|
-
animationDuration:
|
|
8341
|
+
animationDuration: 0.1,
|
|
8339
8342
|
children: jsx("div", {
|
|
8340
8343
|
className: "adl-accordion__content",
|
|
8341
8344
|
children
|
|
@@ -10606,7 +10609,8 @@ function AccountHolder(props) {
|
|
|
10606
10609
|
const defaultData = {
|
|
10607
10610
|
accountHolder: isDefaultOptionAvailable ? (_a = props.data) == null ? void 0 : _a.accountHolder : void 0
|
|
10608
10611
|
};
|
|
10609
|
-
|
|
10612
|
+
const isNewEntryFlowEnabled = isExperimentEnabled("EnableNewEntryFlow");
|
|
10613
|
+
if (isNewEntryFlowEnabled && defaultData) {
|
|
10610
10614
|
defaultData.accountHolder = accountHolder2 || defaultData.accountHolder;
|
|
10611
10615
|
}
|
|
10612
10616
|
const {
|
|
@@ -10645,6 +10649,9 @@ function AccountHolder(props) {
|
|
|
10645
10649
|
label: questionLabel,
|
|
10646
10650
|
errorMessage: formUtils.getErrorMessage("accountHolder", errors, fieldProblems),
|
|
10647
10651
|
isValid: valid.accountHolder,
|
|
10652
|
+
className: cx({
|
|
10653
|
+
"adl-u-display-none": isNewEntryFlowEnabled
|
|
10654
|
+
}),
|
|
10648
10655
|
classNameModifiers: ["account-holder"],
|
|
10649
10656
|
children: (childProps) => jsx(Select, {
|
|
10650
10657
|
...childProps,
|
|
@@ -17497,7 +17504,7 @@ function PersonalDetailsComponent(props) {
|
|
|
17497
17504
|
"aria-label": formUtils.getLabel("jobTitle"),
|
|
17498
17505
|
"aria-invalid": !valid.birthDate
|
|
17499
17506
|
})
|
|
17500
|
-
}),
|
|
17507
|
+
}), formUtils.isRequiredField("accountHolder") && data.residencyCountry && jsx(AccountHolder, {
|
|
17501
17508
|
...accountHolderProps,
|
|
17502
17509
|
country: data.residencyCountry,
|
|
17503
17510
|
dataStoreId: PERSONAL_DETAILS,
|
|
@@ -25695,7 +25702,7 @@ const CompanyStructureValidation = {
|
|
|
25695
25702
|
};
|
|
25696
25703
|
const COMPANY_STRUCTURE_FORM_ID = "companyStructure";
|
|
25697
25704
|
const companyStructureFields = ["entityType"];
|
|
25698
|
-
function
|
|
25705
|
+
function CompanyStructureComponent({
|
|
25699
25706
|
data,
|
|
25700
25707
|
labels: labels2,
|
|
25701
25708
|
heading,
|
|
@@ -25709,6 +25716,7 @@ function CompanyStructure({
|
|
|
25709
25716
|
const {
|
|
25710
25717
|
i18n
|
|
25711
25718
|
} = useI18nContext();
|
|
25719
|
+
const isNewEntryFlowEnabled = useEnableNewEntryFlow();
|
|
25712
25720
|
const {
|
|
25713
25721
|
updateStateSlice
|
|
25714
25722
|
} = useGlobalDataSlice(COMPANY_STRUCTURE_FORM_ID);
|
|
@@ -25751,6 +25759,7 @@ function CompanyStructure({
|
|
|
25751
25759
|
fieldProblems: formFieldProblems
|
|
25752
25760
|
});
|
|
25753
25761
|
}, [formSchema, formData, formErrors, formValid, formFieldProblems, updateStateSlice]);
|
|
25762
|
+
const companyTypeOptions = isNewEntryFlowEnabled ? companyTypes.filter((companyType2) => companyType2.id !== CompanyTypesValue.INCORPORATED_PARTNERSHIP && companyType2.id !== CompanyTypesValue.INCORPORATED_ASSOCIATION) : companyTypes;
|
|
25754
25763
|
return jsxs("form", {
|
|
25755
25764
|
children: [jsx(FormHeader, {
|
|
25756
25765
|
heading,
|
|
@@ -25771,8 +25780,8 @@ function CompanyStructure({
|
|
|
25771
25780
|
"aria-label": formUtils.getLabel("entityType", "whatTypeOfCompanyDoYouHave"),
|
|
25772
25781
|
"aria-invalid": !formValid.entityType,
|
|
25773
25782
|
name: "entityType",
|
|
25774
|
-
items:
|
|
25775
|
-
selected:
|
|
25783
|
+
items: companyTypeOptions,
|
|
25784
|
+
selected: companyTypeOptions.find((type) => type.id === (formData == null ? void 0 : formData.entityType)),
|
|
25776
25785
|
readonly: disabled,
|
|
25777
25786
|
isItemDisabled: () => disabled,
|
|
25778
25787
|
onSelect: (item) => handleChangeFor("entityType")(item.id)
|
|
@@ -25780,7 +25789,6 @@ function CompanyStructure({
|
|
|
25780
25789
|
})]
|
|
25781
25790
|
});
|
|
25782
25791
|
}
|
|
25783
|
-
const CompanyStructureComponent = memo(CompanyStructure, (prevProps, nextProps) => objectsDeepEqual(prevProps.data, nextProps.data) && objectsDeepEqual(prevProps.labels, nextProps.labels) && objectsDeepEqual(prevProps.heading, nextProps.heading) && objectsDeepEqual(prevProps.description, nextProps.description) && objectsDeepEqual(prevProps.formVerificationErrors, nextProps.formVerificationErrors) && objectsDeepEqual(prevProps.fieldValidationErrors, nextProps.fieldValidationErrors) && objectsDeepEqual(prevProps.requiredFields, nextProps.requiredFields) && prevProps.kompanyVerifiedData === nextProps.kompanyVerifiedData);
|
|
25784
25792
|
const forms = {
|
|
25785
25793
|
companyBasics: {
|
|
25786
25794
|
formId: "companyBasics",
|
|
@@ -28816,7 +28824,7 @@ function TaskListComponent({
|
|
|
28816
28824
|
const {
|
|
28817
28825
|
isExperimentEnabled
|
|
28818
28826
|
} = useExperimentsContext();
|
|
28819
|
-
const
|
|
28827
|
+
const transferInstrumentLimit = useSetting("transferInstrumentLimit");
|
|
28820
28828
|
const isEnableNewEntryFlowEnabled = useEnableNewEntryFlow();
|
|
28821
28829
|
const canSeeIntroduction = useCanSeeIntroduction({
|
|
28822
28830
|
legalEntity: legalEntityResponse
|
|
@@ -28964,7 +28972,7 @@ function TaskListComponent({
|
|
|
28964
28972
|
capabilityProblems,
|
|
28965
28973
|
onNavigateToTask: () => handleOnNavigateToTaskPayout(transferInstrument.id),
|
|
28966
28974
|
onTransferInstrumentDelete: () => onTransferInstrumentDelete(transferInstrument.id)
|
|
28967
|
-
}, transferInstrument.id)), !
|
|
28975
|
+
}, transferInstrument.id)), !transferInstrumentLimit || transferInstruments.length < transferInstrumentLimit ? jsxs(Card, {
|
|
28968
28976
|
stateful: true,
|
|
28969
28977
|
onClick: () => handleOnNavigateToTaskPayout(),
|
|
28970
28978
|
className: "adyen-task adl-add-payout",
|
|
@@ -33436,6 +33444,16 @@ const getAddress = async (context, addressId) => {
|
|
|
33436
33444
|
}
|
|
33437
33445
|
});
|
|
33438
33446
|
};
|
|
33447
|
+
const getAnalyticsSession = async (loadingContext, data) => httpPost({
|
|
33448
|
+
loadingContext,
|
|
33449
|
+
errorLevel: "warn",
|
|
33450
|
+
errorMessage: `Failed to get analytics sessionId`,
|
|
33451
|
+
path: `analytics/ui`,
|
|
33452
|
+
authentication: "jwt",
|
|
33453
|
+
headers: {
|
|
33454
|
+
"Content-Type": "application/json"
|
|
33455
|
+
}
|
|
33456
|
+
}, data);
|
|
33439
33457
|
const getIdverificationToken = async (context, request) => {
|
|
33440
33458
|
const {
|
|
33441
33459
|
loadingContext,
|
|
@@ -33506,6 +33524,16 @@ const idVerificationStartcheck = async (context, request) => {
|
|
|
33506
33524
|
}
|
|
33507
33525
|
}, request);
|
|
33508
33526
|
};
|
|
33527
|
+
const pushEvents = async (loadingContext, sessionId, event) => httpPost({
|
|
33528
|
+
loadingContext,
|
|
33529
|
+
errorLevel: "warn",
|
|
33530
|
+
errorMessage: `Failed to push events`,
|
|
33531
|
+
path: `analytics/ui/${sessionId}`,
|
|
33532
|
+
authentication: "jwt",
|
|
33533
|
+
headers: {
|
|
33534
|
+
"Content-Type": "application/json"
|
|
33535
|
+
}
|
|
33536
|
+
}, event);
|
|
33509
33537
|
const searchAddress = async (context, address2) => {
|
|
33510
33538
|
const {
|
|
33511
33539
|
loadingContext,
|
|
@@ -33567,7 +33595,9 @@ const useComponentApi = (rootLegalEntityId) => {
|
|
|
33567
33595
|
idVerificationStartCheck: async (legalEntityId, data) => idVerificationStartcheck(baseRequestContext, data),
|
|
33568
33596
|
getTransferInstruments: async () => getTransferInstruments(baseRequestContext),
|
|
33569
33597
|
getOnboardingStatus: async () => getOnboardingStatus(baseRequestContext),
|
|
33570
|
-
generateOnboardingLink: async (config) => generateOnboardingLink(baseRequestContext, config)
|
|
33598
|
+
generateOnboardingLink: async (config) => generateOnboardingLink(baseRequestContext, config),
|
|
33599
|
+
getAnalyticsSession: async (data) => getAnalyticsSession(loadingContext, data),
|
|
33600
|
+
pushEvents: async (sessionId, event) => pushEvents(loadingContext, sessionId, event)
|
|
33571
33601
|
};
|
|
33572
33602
|
}, [base, rootLegalEntityId]);
|
|
33573
33603
|
};
|
|
@@ -34262,6 +34292,46 @@ const AuthProvider = ({
|
|
|
34262
34292
|
children
|
|
34263
34293
|
});
|
|
34264
34294
|
};
|
|
34295
|
+
const convertToEmbeddedEvent = (eventQueueItem) => {
|
|
34296
|
+
const [eventType, event] = eventQueueItem;
|
|
34297
|
+
const hasEventData = typeof event === "object";
|
|
34298
|
+
const eventName = hasEventData ? event.key : event;
|
|
34299
|
+
return {
|
|
34300
|
+
eventType,
|
|
34301
|
+
eventName,
|
|
34302
|
+
...hasEventData && {
|
|
34303
|
+
eventData: event.segmentation
|
|
34304
|
+
}
|
|
34305
|
+
};
|
|
34306
|
+
};
|
|
34307
|
+
const useAnalytics = async ({
|
|
34308
|
+
onUserEvent,
|
|
34309
|
+
isEmbeddedDropin,
|
|
34310
|
+
legalEntityId,
|
|
34311
|
+
sdkVersion,
|
|
34312
|
+
componentName
|
|
34313
|
+
}) => {
|
|
34314
|
+
const {
|
|
34315
|
+
getAnalyticsSession: getAnalyticsSession2,
|
|
34316
|
+
pushEvents: pushEvents2
|
|
34317
|
+
} = useComponentApi(legalEntityId);
|
|
34318
|
+
if (isEmbeddedDropin) {
|
|
34319
|
+
const {
|
|
34320
|
+
id: sessionId
|
|
34321
|
+
} = await getAnalyticsSession2({
|
|
34322
|
+
sdkVersion,
|
|
34323
|
+
componentName,
|
|
34324
|
+
userAgent: navigator.userAgent,
|
|
34325
|
+
legalEntityId
|
|
34326
|
+
});
|
|
34327
|
+
userEvents.subscribe((data) => {
|
|
34328
|
+
const eventItem = convertToEmbeddedEvent(data);
|
|
34329
|
+
pushEvents2(sessionId, eventItem);
|
|
34330
|
+
});
|
|
34331
|
+
} else if (onUserEvent) {
|
|
34332
|
+
userEvents.subscribe(onUserEvent);
|
|
34333
|
+
}
|
|
34334
|
+
};
|
|
34265
34335
|
let isDocumentGuidanceLoaded = false;
|
|
34266
34336
|
const getIconContainer = () => {
|
|
34267
34337
|
const container = document.createElement("div");
|
|
@@ -34593,19 +34663,37 @@ const getKycExternalApi = ({
|
|
|
34593
34663
|
});
|
|
34594
34664
|
const ConfigurationApiProvider = ({
|
|
34595
34665
|
children,
|
|
34596
|
-
|
|
34666
|
+
onUserEvent,
|
|
34667
|
+
rootLegalEntityId,
|
|
34668
|
+
componentName
|
|
34597
34669
|
}) => {
|
|
34598
34670
|
const authContext = useAuthContext();
|
|
34599
|
-
const
|
|
34600
|
-
|
|
34671
|
+
const {
|
|
34672
|
+
isEmbeddedDropin,
|
|
34673
|
+
loadingContext
|
|
34674
|
+
} = authContext;
|
|
34675
|
+
const sdkVersion = "3.9.0";
|
|
34676
|
+
useAnalytics({
|
|
34677
|
+
onUserEvent,
|
|
34678
|
+
isEmbeddedDropin,
|
|
34679
|
+
legalEntityId: rootLegalEntityId,
|
|
34680
|
+
sdkVersion,
|
|
34681
|
+
componentName
|
|
34682
|
+
});
|
|
34683
|
+
const contextValue = useMemo(() => isEmbeddedDropin ? getEmbeddedApi({
|
|
34684
|
+
base: loadingContext,
|
|
34601
34685
|
rootLegalEntityId
|
|
34602
34686
|
}) : getKycExternalApi({
|
|
34603
|
-
loadingContext
|
|
34687
|
+
loadingContext,
|
|
34604
34688
|
clientKey: authContext.clientKey
|
|
34605
34689
|
}), [authContext, rootLegalEntityId]);
|
|
34606
|
-
return
|
|
34690
|
+
return jsxs(ConfigurationApiContext.Provider, {
|
|
34607
34691
|
value: contextValue,
|
|
34608
|
-
children
|
|
34692
|
+
children: [jsx("span", {
|
|
34693
|
+
className: "adyen-kyc__sdk-version",
|
|
34694
|
+
hidden: true,
|
|
34695
|
+
children: sdkVersion
|
|
34696
|
+
}), children]
|
|
34609
34697
|
});
|
|
34610
34698
|
};
|
|
34611
34699
|
const logger$2 = createLogger("CoreProvider");
|
|
@@ -34748,7 +34836,7 @@ const settingsDefaults = {
|
|
|
34748
34836
|
hideOnboardingIntroductionTrust: true,
|
|
34749
34837
|
hideOnboardingIntroductionSoleProprietor: true,
|
|
34750
34838
|
viewOnboardingGuidance: false,
|
|
34751
|
-
|
|
34839
|
+
transferInstrumentLimit: 0
|
|
34752
34840
|
};
|
|
34753
34841
|
function SettingsProvider({
|
|
34754
34842
|
children,
|
|
@@ -35058,8 +35146,8 @@ const getRootLegalEntityId = (componentProps) => {
|
|
|
35058
35146
|
throw new Error("You must provide either `legalEntityId` or `legalEntityResponse`");
|
|
35059
35147
|
};
|
|
35060
35148
|
class UIElement extends BaseElement {
|
|
35061
|
-
constructor(
|
|
35062
|
-
super(
|
|
35149
|
+
constructor() {
|
|
35150
|
+
super(...arguments);
|
|
35063
35151
|
this.render = () => {
|
|
35064
35152
|
var _a;
|
|
35065
35153
|
const Component = this.props.component;
|
|
@@ -35072,6 +35160,8 @@ class UIElement extends BaseElement {
|
|
|
35072
35160
|
loadingContext: this.props.loadingContext,
|
|
35073
35161
|
children: jsx(ConfigurationApiProvider, {
|
|
35074
35162
|
rootLegalEntityId: getRootLegalEntityId(this.props.componentProps),
|
|
35163
|
+
onUserEvent: this.props.onUserEvent,
|
|
35164
|
+
componentName: this.props.componentName,
|
|
35075
35165
|
children: jsx(CoreProvider, {
|
|
35076
35166
|
contextCountry: this.props.contextCountry,
|
|
35077
35167
|
enableNewEntryFlowExperiment: (_a = this.props.experiments) == null ? void 0 : _a.EnableNewEntryFlow,
|
|
@@ -35100,8 +35190,6 @@ class UIElement extends BaseElement {
|
|
|
35100
35190
|
})
|
|
35101
35191
|
});
|
|
35102
35192
|
};
|
|
35103
|
-
if (props.onUserEvent)
|
|
35104
|
-
userEvents.subscribe(props.onUserEvent);
|
|
35105
35193
|
}
|
|
35106
35194
|
}
|
|
35107
35195
|
const normalizeEnvironment = (env) => env.endsWith("/") ? env : `${env}/`;
|
|
@@ -35914,7 +36002,8 @@ class Core {
|
|
|
35914
36002
|
const uiElement = new UIElement({
|
|
35915
36003
|
...mergedOptions,
|
|
35916
36004
|
component,
|
|
35917
|
-
componentProps: mergedOptions
|
|
36005
|
+
componentProps: mergedOptions,
|
|
36006
|
+
componentName
|
|
35918
36007
|
});
|
|
35919
36008
|
this.components.push(uiElement);
|
|
35920
36009
|
return uiElement;
|
|
@@ -11,7 +11,7 @@ export declare abstract class BaseElement<P extends BaseElementProps> {
|
|
|
11
11
|
_component?: JSX.Element;
|
|
12
12
|
eventEmitter: EventEmitter;
|
|
13
13
|
private readonly _parentInstance?;
|
|
14
|
-
|
|
14
|
+
constructor(props: P);
|
|
15
15
|
abstract render(): JSX.Element;
|
|
16
16
|
/**
|
|
17
17
|
* Mounts an element into the dom
|
|
@@ -3,6 +3,4 @@ import { CompanySearchSchema } from '../../CompanySearch/types';
|
|
|
3
3
|
import { CompanyStructureProps, CompanyStructureSchema } from '../types';
|
|
4
4
|
export declare const COMPANY_STRUCTURE_FORM_ID: keyof CompanySearchSchema;
|
|
5
5
|
export declare const companyStructureFields: Array<keyof CompanyStructureSchema>;
|
|
6
|
-
declare function
|
|
7
|
-
export declare const CompanyStructureComponent: typeof CompanyStructure;
|
|
8
|
-
export {};
|
|
6
|
+
export declare function CompanyStructureComponent({ data, labels, heading, description, formVerificationErrors, fieldValidationErrors, requiredFields, kompanyVerifiedData, }: CompanyStructureProps): import("preact").JSX.Element;
|
|
@@ -7,15 +7,16 @@ import { SettingsProps } from '../core/Context/SettingsContext/types';
|
|
|
7
7
|
import { UserEventCallback } from '../core/user-events';
|
|
8
8
|
import { BaseElement, BaseElementProps } from './BaseElement';
|
|
9
9
|
import EventEmitter from './EventEmitter';
|
|
10
|
+
import { ComponentMap } from './index';
|
|
10
11
|
export interface BasicComponentProps {
|
|
11
12
|
eventEmitter?: EventEmitter;
|
|
12
13
|
}
|
|
13
14
|
export interface UIElementProps<ComponentProps extends BasicComponentProps> extends BaseElementProps, CoreProviderProps, AuthProviderProps, I18nProviderProps, SettingsProps, ExperimentsProps {
|
|
14
15
|
onUserEvent?: UserEventCallback;
|
|
15
16
|
component: (props: ComponentProps) => JSX.Element;
|
|
17
|
+
componentName: keyof ComponentMap;
|
|
16
18
|
componentProps: ComponentProps;
|
|
17
19
|
}
|
|
18
20
|
export declare class UIElement<ComponentProps extends BasicComponentProps = BasicComponentProps> extends BaseElement<UIElementProps<ComponentProps>> {
|
|
19
|
-
constructor(props: UIElementProps<ComponentProps>);
|
|
20
21
|
render: () => JSX.Element;
|
|
21
22
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { ComponentChildren } from 'preact';
|
|
2
|
+
import { ComponentMap } from '../../../components';
|
|
3
|
+
import { UserEventCallback } from '../../user-events';
|
|
2
4
|
interface ConfigurationApiContextProviderProps {
|
|
3
5
|
children: ComponentChildren;
|
|
6
|
+
onUserEvent?: UserEventCallback;
|
|
4
7
|
rootLegalEntityId: string;
|
|
8
|
+
componentName: keyof ComponentMap;
|
|
5
9
|
}
|
|
6
|
-
export declare const ConfigurationApiProvider: ({ children, rootLegalEntityId, }: ConfigurationApiContextProviderProps) => import("preact").JSX.Element;
|
|
10
|
+
export declare const ConfigurationApiProvider: ({ children, onUserEvent, rootLegalEntityId, componentName, }: ConfigurationApiContextProviderProps) => import("preact").JSX.Element;
|
|
7
11
|
export {};
|
|
@@ -10,7 +10,6 @@ export declare enum SettingNames {
|
|
|
10
10
|
AllowIntraRegionCrossBorderPayout = "allowIntraRegionCrossBorderPayout",
|
|
11
11
|
AllowLegalEntityTypeChange = "changeLegalEntityType",
|
|
12
12
|
AllowPrefilledCountryEdit = "editPrefilledCountry",
|
|
13
|
-
LimitToOneTransferInstrument = "limitToOneTransferInstrument",
|
|
14
13
|
RequirePciSignEcommerce = "requirePciSignEcommerce",
|
|
15
14
|
RequirePciSignPos = "requirePciSignPos",
|
|
16
15
|
RequirePciSignEcomMoto = "requirePciSignEcomMoto",
|
|
@@ -19,6 +18,7 @@ export declare enum SettingNames {
|
|
|
19
18
|
HideOnboardingIntroductionOrganization = "hideOnboardingIntroductionOrganization",
|
|
20
19
|
HideOnboardingIntroductionTrust = "hideOnboardingIntroductionTrust",
|
|
21
20
|
HideOnboardingIntroductionSoleProprietor = "hideOnboardingIntroductionSoleProprietor",
|
|
21
|
+
TransferInstrumentLimit = "transferInstrumentLimit",
|
|
22
22
|
ViewOnboardingGuidance = "viewOnboardingGuidance"
|
|
23
23
|
}
|
|
24
24
|
export type SettingName = `${SettingNames}`;
|
|
@@ -37,7 +37,7 @@ export interface Settings {
|
|
|
37
37
|
hideOnboardingIntroductionTrust: boolean;
|
|
38
38
|
hideOnboardingIntroductionSoleProprietor: boolean;
|
|
39
39
|
viewOnboardingGuidance: boolean;
|
|
40
|
-
|
|
40
|
+
transferInstrumentLimit: number;
|
|
41
41
|
}
|
|
42
42
|
export type ProvidedSettings = Partial<Settings>;
|
|
43
43
|
type BooleanSettingName = {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Settings } from './types';
|
|
2
|
-
export declare const useSetting: <S extends "acceptedCountries" | "allowBankAccountFormatSelection" | "allowIntraRegionCrossBorderPayout" | "changeLegalEntityType" | "editPrefilledCountry" | "
|
|
2
|
+
export declare const useSetting: <S extends "acceptedCountries" | "allowBankAccountFormatSelection" | "allowIntraRegionCrossBorderPayout" | "changeLegalEntityType" | "editPrefilledCountry" | "requirePciSignEcommerce" | "requirePciSignPos" | "requirePciSignEcomMoto" | "requirePciSignPosMoto" | "hideOnboardingIntroductionIndividual" | "hideOnboardingIntroductionOrganization" | "hideOnboardingIntroductionTrust" | "hideOnboardingIntroductionSoleProprietor" | "transferInstrumentLimit" | "viewOnboardingGuidance">(settingName: S) => Settings[S];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ComponentOptions } from '../../components';
|
|
2
2
|
import { CoreOptions } from '../types';
|
|
3
3
|
export declare const validateCoreOptions: (coreOptions: CoreOptions) => void;
|
|
4
|
-
export declare const validateForComponent: <Name extends "payoutAccount" | "pci" | "
|
|
4
|
+
export declare const validateForComponent: <Name extends "payoutAccount" | "pci" | "individualDropin" | "companyDropin" | "companySearchDropin" | "taskList" | "trustDropin" | "soleProprietorDropin" | "createTransferInstrumentComponent" | "createIndividualComponent" | "manageTransferInstrumentComponent" | "onboardingRedirectComponent">(componentName: Name, options: ComponentOptions<Name>) => void;
|
|
@@ -8,7 +8,7 @@ export declare class Core {
|
|
|
8
8
|
};
|
|
9
9
|
components: UIElement[];
|
|
10
10
|
constructor(coreOptions: CoreOptions);
|
|
11
|
-
create: <Name extends "payoutAccount" | "pci" | "
|
|
11
|
+
create: <Name extends "payoutAccount" | "pci" | "individualDropin" | "companyDropin" | "companySearchDropin" | "taskList" | "trustDropin" | "soleProprietorDropin" | "createTransferInstrumentComponent" | "createIndividualComponent" | "manageTransferInstrumentComponent" | "onboardingRedirectComponent">(componentName: Name, componentOptions: ComponentOptions<Name>) => UIElement;
|
|
12
12
|
/**
|
|
13
13
|
* Updates global configurations, resets the internal state and remounts each element.
|
|
14
14
|
* @param options - props to update
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ComponentMap } from '../../components';
|
|
2
|
+
import { EmbeddedEventItem, EventQueueItem, UserEventCallback } from '../user-events';
|
|
3
|
+
export type useAnalyticsProps = {
|
|
4
|
+
isEmbeddedDropin: boolean;
|
|
5
|
+
legalEntityId: string;
|
|
6
|
+
onUserEvent?: UserEventCallback;
|
|
7
|
+
sdkVersion: string;
|
|
8
|
+
componentName: keyof ComponentMap;
|
|
9
|
+
};
|
|
10
|
+
export declare const convertToEmbeddedEvent: (eventQueueItem: EventQueueItem) => EmbeddedEventItem;
|
|
11
|
+
export declare const useAnalytics: ({ onUserEvent, isEmbeddedDropin, legalEntityId, sdkVersion, componentName, }: useAnalyticsProps) => Promise<void>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { DropinAPIHandlers } from '../../components/Dropins/types';
|
|
2
|
+
import { EmbeddedAnalyticsSessionRequest, EmbeddedAnalyticsSessionResponse } from '../models/api/analytics';
|
|
2
3
|
import { TransferInstrumentReference } from '../models/api/transfer-instrument-reference';
|
|
3
4
|
import { BankVerificationErrorResponse, CreateTrustedTransferInstrumentResponse } from '../models/api/trusted-transferInstrument';
|
|
5
|
+
import { EmbeddedEventItem } from '../user-events';
|
|
4
6
|
export type ComponentApi = {
|
|
5
7
|
getLegalEntity: Required<DropinAPIHandlers>['handleGetLegalEntity'];
|
|
6
8
|
updateLegalEntity: Required<DropinAPIHandlers>['handleUpdateLegalEntity'];
|
|
@@ -22,6 +24,8 @@ export type ComponentApi = {
|
|
|
22
24
|
getTransferInstruments(): Promise<TransferInstrumentReference[]>;
|
|
23
25
|
getOnboardingStatus: Required<DropinAPIHandlers>['handleGetOnboardingStatus'];
|
|
24
26
|
generateOnboardingLink: Required<DropinAPIHandlers>['handleGenerateOnboardingLink'];
|
|
27
|
+
getAnalyticsSession(data: EmbeddedAnalyticsSessionRequest): Promise<EmbeddedAnalyticsSessionResponse>;
|
|
28
|
+
pushEvents(sessionId: string, event: EmbeddedEventItem): Promise<void>;
|
|
25
29
|
};
|
|
26
30
|
export declare const COMPONENTS_API_VERSION = "v1";
|
|
27
31
|
/**
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
export interface UserEvent {
|
|
2
|
-
/** How many times has the event occurred */
|
|
3
|
-
count?: number;
|
|
4
|
-
/** Duration of the event */
|
|
5
|
-
dur?: number;
|
|
6
|
-
/** Sum to report with the event */
|
|
7
|
-
sum?: number;
|
|
8
2
|
/** Object with segments should be a flat object (arbitrary key/value pairs for event data) */
|
|
9
3
|
segmentation?: {
|
|
10
4
|
[key: string]: string | number | boolean | any[] | null;
|
|
@@ -13,9 +7,14 @@ export interface UserEvent {
|
|
|
13
7
|
type UserEventWithKey = UserEvent & {
|
|
14
8
|
key: string;
|
|
15
9
|
};
|
|
16
|
-
type EventType = 'track_pageview' | 'add_event' | 'start_event' | 'end_event';
|
|
17
|
-
type EventQueueItem = [EventType, string | UserEventWithKey];
|
|
10
|
+
export type EventType = 'track_pageview' | 'add_event' | 'start_event' | 'end_event';
|
|
11
|
+
export type EventQueueItem = [EventType, string | UserEventWithKey];
|
|
18
12
|
export type UserEventCallback = (eventQueueItem: EventQueueItem) => void;
|
|
13
|
+
export type EmbeddedEventItem = {
|
|
14
|
+
eventType: EventType;
|
|
15
|
+
eventName: string;
|
|
16
|
+
eventData?: UserEvent;
|
|
17
|
+
};
|
|
19
18
|
declare class UserEvents {
|
|
20
19
|
private readonly queue;
|
|
21
20
|
private readonly subscriptions;
|