@wise/dynamic-flow-client 5.6.2 → 5.7.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/build/main.css +15 -0
- package/build/main.js +198 -101
- package/build/main.mjs +198 -101
- package/build/types/domain/components/MediaComponent.d.ts +10 -0
- package/build/types/domain/components/UpsellComponent.d.ts +12 -0
- package/build/types/domain/components/searchComponent/SearchComponent.d.ts +2 -1
- package/build/types/domain/mappers/layout/mediaLayoutToComponent.d.ts +2 -0
- package/build/types/domain/mappers/layout/searchLayoutToComponent.d.ts +1 -1
- package/build/types/domain/mappers/layout/upsellLayoutToComponent.d.ts +3 -0
- package/build/types/domain/mappers/utils/call-to-action-utils.d.ts +4 -2
- package/build/types/domain/types.d.ts +12 -14
- package/build/types/renderers/mappers/mediaComponentToProps.d.ts +4 -0
- package/build/types/renderers/mappers/upsellComponentToProps.d.ts +4 -0
- package/build/types/test-utils/getMergedTestRenderers.d.ts +1 -1
- package/package.json +2 -2
package/build/main.css
CHANGED
|
@@ -153,6 +153,21 @@
|
|
|
153
153
|
width: 300px;
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
+
.df-media-layout-avatar {
|
|
157
|
+
display: flex;
|
|
158
|
+
}
|
|
159
|
+
.df-media-layout-avatar.start {
|
|
160
|
+
justify-content: start;
|
|
161
|
+
align-items: start;
|
|
162
|
+
}
|
|
163
|
+
.df-media-layout-avatar.center {
|
|
164
|
+
justify-content: center;
|
|
165
|
+
align-items: center;
|
|
166
|
+
}
|
|
167
|
+
.df-media-layout-avatar.end {
|
|
168
|
+
justify-content: end;
|
|
169
|
+
align-items: end;
|
|
170
|
+
}
|
|
156
171
|
.df-toolbar {
|
|
157
172
|
display: flex;
|
|
158
173
|
gap: 0.25em;
|
package/build/main.js
CHANGED
|
@@ -841,6 +841,7 @@ var getChildren = (node) => {
|
|
|
841
841
|
case "list":
|
|
842
842
|
case "loading-indicator":
|
|
843
843
|
case "markdown":
|
|
844
|
+
case "media":
|
|
844
845
|
case "input-multi-select":
|
|
845
846
|
case "input-upload-multi":
|
|
846
847
|
case "input-number":
|
|
@@ -854,6 +855,7 @@ var getChildren = (node) => {
|
|
|
854
855
|
case "input-upload":
|
|
855
856
|
case "external-confirmation":
|
|
856
857
|
case "subflow":
|
|
858
|
+
case "upsell":
|
|
857
859
|
return [];
|
|
858
860
|
}
|
|
859
861
|
};
|
|
@@ -1134,6 +1136,55 @@ var createSubflowDomainComponent = (subflowProps, onComponentUpdate) => {
|
|
|
1134
1136
|
return subflowComponent;
|
|
1135
1137
|
};
|
|
1136
1138
|
|
|
1139
|
+
// src/domain/features/prefetch/request-cache.ts
|
|
1140
|
+
var makeRequestCacheWithParent = (parent) => {
|
|
1141
|
+
const map = /* @__PURE__ */ new Map();
|
|
1142
|
+
const cache = {
|
|
1143
|
+
get: (requestParams) => {
|
|
1144
|
+
var _a;
|
|
1145
|
+
const key = makeRequestCacheKey(requestParams);
|
|
1146
|
+
const promise = (_a = map.get(key)) != null ? _a : parent == null ? void 0 : parent.get(requestParams);
|
|
1147
|
+
map.delete(key);
|
|
1148
|
+
return promise;
|
|
1149
|
+
},
|
|
1150
|
+
set: (requestParams, responsePromise) => {
|
|
1151
|
+
return map.set(makeRequestCacheKey(requestParams), responsePromise);
|
|
1152
|
+
}
|
|
1153
|
+
};
|
|
1154
|
+
return cache;
|
|
1155
|
+
};
|
|
1156
|
+
var makeRequestCache = (initialValues = []) => {
|
|
1157
|
+
const cache = makeRequestCacheWithParent(void 0);
|
|
1158
|
+
initialValues.forEach(([requestParams, responsePromise]) => {
|
|
1159
|
+
cache.set(requestParams, responsePromise);
|
|
1160
|
+
});
|
|
1161
|
+
return cache;
|
|
1162
|
+
};
|
|
1163
|
+
var normaliseRequestCache = (cache) => {
|
|
1164
|
+
if (cache === void 0) {
|
|
1165
|
+
return makeRequestCache();
|
|
1166
|
+
}
|
|
1167
|
+
if (isRequestCacheInstance(cache)) {
|
|
1168
|
+
return cache;
|
|
1169
|
+
}
|
|
1170
|
+
return makeRequestCache(cache);
|
|
1171
|
+
};
|
|
1172
|
+
var isRequestCacheInstance = (cache) => {
|
|
1173
|
+
return !cache || !Array.isArray(cache);
|
|
1174
|
+
};
|
|
1175
|
+
var makeRequestCacheKey = (requestParams) => {
|
|
1176
|
+
var _a, _b;
|
|
1177
|
+
const [input, init] = requestParams;
|
|
1178
|
+
const url = typeof input === "string" || input instanceof URL ? input.toString() : input.url;
|
|
1179
|
+
const key = JSON.stringify({
|
|
1180
|
+
url,
|
|
1181
|
+
method: (_a = init == null ? void 0 : init.method) != null ? _a : "GET",
|
|
1182
|
+
headers: (init == null ? void 0 : init.headers) ? Array.from(new Headers(init.headers).entries()) : [],
|
|
1183
|
+
body: (_b = init == null ? void 0 : init.body) != null ? _b : null
|
|
1184
|
+
});
|
|
1185
|
+
return key;
|
|
1186
|
+
};
|
|
1187
|
+
|
|
1137
1188
|
// src/domain/components/ModalComponent.ts
|
|
1138
1189
|
var createModalContentComponent = (modalProps, onComponentUpdate) => {
|
|
1139
1190
|
const update = getInputUpdateFunction(onComponentUpdate);
|
|
@@ -1208,51 +1259,6 @@ var getActionByReference = ($ref, actions = []) => {
|
|
|
1208
1259
|
return action;
|
|
1209
1260
|
};
|
|
1210
1261
|
|
|
1211
|
-
// src/domain/mappers/utils/call-to-action-utils.ts
|
|
1212
|
-
var getDomainLayerCallToAction = (callToAction, mapperProps) => {
|
|
1213
|
-
var _a;
|
|
1214
|
-
if (!callToAction) {
|
|
1215
|
-
return void 0;
|
|
1216
|
-
}
|
|
1217
|
-
const { step, onBehavior, registerSubmissionBehavior } = mapperProps;
|
|
1218
|
-
const stepActions = (_a = step.actions) != null ? _a : [];
|
|
1219
|
-
const { title = "", accessibilityDescription, action, behavior } = callToAction;
|
|
1220
|
-
return getCallToAction(
|
|
1221
|
-
{ title, accessibilityDescription },
|
|
1222
|
-
getDomainLayerBehavior({ action, behavior }, stepActions, registerSubmissionBehavior),
|
|
1223
|
-
onBehavior
|
|
1224
|
-
);
|
|
1225
|
-
};
|
|
1226
|
-
var getCallToAction = ({ title, accessibilityDescription }, behavior, onBehavior) => {
|
|
1227
|
-
const onClick = () => {
|
|
1228
|
-
void onBehavior(behavior);
|
|
1229
|
-
};
|
|
1230
|
-
switch (behavior.type) {
|
|
1231
|
-
case "action":
|
|
1232
|
-
case "modal":
|
|
1233
|
-
case "copy":
|
|
1234
|
-
case "dismiss": {
|
|
1235
|
-
return {
|
|
1236
|
-
type: behavior.type,
|
|
1237
|
-
title: title != null ? title : "",
|
|
1238
|
-
accessibilityDescription,
|
|
1239
|
-
onClick
|
|
1240
|
-
};
|
|
1241
|
-
}
|
|
1242
|
-
case "link": {
|
|
1243
|
-
return {
|
|
1244
|
-
type: "link",
|
|
1245
|
-
title: title != null ? title : "",
|
|
1246
|
-
href: behavior.url,
|
|
1247
|
-
accessibilityDescription,
|
|
1248
|
-
onClick
|
|
1249
|
-
};
|
|
1250
|
-
}
|
|
1251
|
-
default:
|
|
1252
|
-
return void 0;
|
|
1253
|
-
}
|
|
1254
|
-
};
|
|
1255
|
-
|
|
1256
1262
|
// src/domain/mappers/utils/legacy-utils.ts
|
|
1257
1263
|
var mapLegacyContext = (context) => {
|
|
1258
1264
|
switch (context) {
|
|
@@ -1304,6 +1310,27 @@ var legacyActionTypeToControl = {
|
|
|
1304
1310
|
};
|
|
1305
1311
|
var mapLegacyActionTypeToControl = (type) => type && type in legacyActionTypeToControl ? legacyActionTypeToControl[type] : "secondary";
|
|
1306
1312
|
|
|
1313
|
+
// src/domain/mappers/utils/call-to-action-utils.ts
|
|
1314
|
+
function getDomainLayerCallToAction(cta, mapperProps) {
|
|
1315
|
+
var _a, _b;
|
|
1316
|
+
if (!cta) {
|
|
1317
|
+
return void 0;
|
|
1318
|
+
}
|
|
1319
|
+
const { step, onBehavior, registerSubmissionBehavior } = mapperProps;
|
|
1320
|
+
const stepActions = (_a = step.actions) != null ? _a : [];
|
|
1321
|
+
const behavior = getDomainLayerBehavior(cta, stepActions, registerSubmissionBehavior);
|
|
1322
|
+
return {
|
|
1323
|
+
type: behavior.type,
|
|
1324
|
+
title: (_b = cta.title) != null ? _b : "",
|
|
1325
|
+
context: cta.context ? mapLegacyContext(cta.context) : void 0,
|
|
1326
|
+
accessibilityDescription: cta.accessibilityDescription,
|
|
1327
|
+
href: behavior.type === "link" ? behavior.url : void 0,
|
|
1328
|
+
onClick: () => {
|
|
1329
|
+
void onBehavior(behavior);
|
|
1330
|
+
}
|
|
1331
|
+
};
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1307
1334
|
// src/domain/mappers/layout/alertLayoutToComponent.ts
|
|
1308
1335
|
var alertLayoutToComponent = (uid, {
|
|
1309
1336
|
control,
|
|
@@ -1852,6 +1879,24 @@ var markdownLayoutToComponent = (uid, {
|
|
|
1852
1879
|
size: size != null ? size : "md"
|
|
1853
1880
|
});
|
|
1854
1881
|
|
|
1882
|
+
// src/domain/components/MediaComponent.ts
|
|
1883
|
+
var createMediaComponent = (props) => __spreadValues({
|
|
1884
|
+
type: "media",
|
|
1885
|
+
kind: "layout"
|
|
1886
|
+
}, props);
|
|
1887
|
+
|
|
1888
|
+
// src/domain/mappers/layout/mediaLayoutToComponent.ts
|
|
1889
|
+
var mediaLayoutToComponent = (uid, { analyticsId, align, control, margin, media, size, tags }) => createMediaComponent({
|
|
1890
|
+
uid,
|
|
1891
|
+
analyticsId,
|
|
1892
|
+
align: mapLegacyAlign(align != null ? align : "center"),
|
|
1893
|
+
control,
|
|
1894
|
+
margin: margin != null ? margin : "md",
|
|
1895
|
+
media,
|
|
1896
|
+
size: size != null ? size : "md",
|
|
1897
|
+
tags
|
|
1898
|
+
});
|
|
1899
|
+
|
|
1855
1900
|
// src/domain/components/ModalLayoutComponent.ts
|
|
1856
1901
|
var createModalComponent = (modalProps) => __spreadProps(__spreadValues({
|
|
1857
1902
|
type: "modal-layout",
|
|
@@ -1951,14 +1996,14 @@ var reviewLayoutToComponent = (uid, {
|
|
|
1951
1996
|
}, mapperProps) => createReviewComponent({
|
|
1952
1997
|
uid,
|
|
1953
1998
|
analyticsId,
|
|
1954
|
-
callToAction:
|
|
1999
|
+
callToAction: getCallToAction({ mapperProps, callToAction, action }),
|
|
1955
2000
|
control: getOrientationControl({ control, orientation }),
|
|
1956
2001
|
fields: fields.map((field) => mapReviewField(field, mapperProps)),
|
|
1957
2002
|
margin: margin != null ? margin : "md",
|
|
1958
2003
|
tags,
|
|
1959
2004
|
title
|
|
1960
2005
|
});
|
|
1961
|
-
var
|
|
2006
|
+
var getCallToAction = ({
|
|
1962
2007
|
callToAction,
|
|
1963
2008
|
action,
|
|
1964
2009
|
mapperProps
|
|
@@ -1996,7 +2041,7 @@ var mapReviewField = (field, mapperProps) => {
|
|
|
1996
2041
|
help: (_a = field.help) == null ? void 0 : _a.markdown,
|
|
1997
2042
|
inlineAlert: mapInlineAlert(field.inlineAlert),
|
|
1998
2043
|
additionalInfo: mapAdditionalInfo(field.additionalInfo, mapperProps),
|
|
1999
|
-
callToAction:
|
|
2044
|
+
callToAction: getCallToAction({
|
|
2000
2045
|
callToAction: field.callToAction,
|
|
2001
2046
|
mapperProps
|
|
2002
2047
|
}),
|
|
@@ -2043,7 +2088,7 @@ var debounce = (callback, waitMs) => {
|
|
|
2043
2088
|
// src/domain/components/searchComponent/SearchComponent.ts
|
|
2044
2089
|
var DEBOUNCE_TIME = 400;
|
|
2045
2090
|
var createSearchComponent = (searchProps, performSearch, onBehavior, onComponentUpdate) => {
|
|
2046
|
-
const { uid, analyticsId, control, emptyMessage, margin, tags, title } = searchProps;
|
|
2091
|
+
const { uid, analyticsId, control, emptyMessage, hint, margin, tags, title } = searchProps;
|
|
2047
2092
|
const update = getInputUpdateFunction(onComponentUpdate);
|
|
2048
2093
|
let abortController = new AbortController();
|
|
2049
2094
|
const search = (component2, query, searchConfig) => {
|
|
@@ -2079,6 +2124,7 @@ var createSearchComponent = (searchProps, performSearch, onBehavior, onComponent
|
|
|
2079
2124
|
analyticsId,
|
|
2080
2125
|
control,
|
|
2081
2126
|
emptyMessage,
|
|
2127
|
+
hint,
|
|
2082
2128
|
margin,
|
|
2083
2129
|
tags,
|
|
2084
2130
|
title,
|
|
@@ -2165,7 +2211,7 @@ var isValidResponseBody = (body) => isObject(body) && "results" in body && isArr
|
|
|
2165
2211
|
var hashRequest = (query, config) => JSON.stringify({ query, config });
|
|
2166
2212
|
|
|
2167
2213
|
// src/domain/mappers/layout/searchLayoutToComponent.ts
|
|
2168
|
-
var searchLayoutToComponent = (uid, { analyticsId, control, emptyMessage, method, param, title, url, margin, tags }, mapperProps) => {
|
|
2214
|
+
var searchLayoutToComponent = (uid, { analyticsId, control, emptyMessage, hint, method, param, title, url, margin, tags }, mapperProps) => {
|
|
2169
2215
|
const { httpClient, onBehavior, onComponentUpdate } = mapperProps;
|
|
2170
2216
|
const search = getPerformSearchFunction(httpClient, { method, param, url });
|
|
2171
2217
|
return createSearchComponent(
|
|
@@ -2174,6 +2220,7 @@ var searchLayoutToComponent = (uid, { analyticsId, control, emptyMessage, method
|
|
|
2174
2220
|
analyticsId,
|
|
2175
2221
|
control,
|
|
2176
2222
|
emptyMessage: emptyMessage != null ? emptyMessage : "",
|
|
2223
|
+
hint,
|
|
2177
2224
|
margin: margin != null ? margin : "md",
|
|
2178
2225
|
tags,
|
|
2179
2226
|
title
|
|
@@ -2253,6 +2300,60 @@ var mapTabs = (tabs, uid, mapperProps, schemaComponents) => tabs.map(({ componen
|
|
|
2253
2300
|
)
|
|
2254
2301
|
}));
|
|
2255
2302
|
|
|
2303
|
+
// src/domain/components/UpsellComponent.ts
|
|
2304
|
+
var createUpsellComponent = (upsellProps, onComponentUpdate) => {
|
|
2305
|
+
const update = getInputUpdateFunction(onComponentUpdate);
|
|
2306
|
+
const _a = upsellProps, { onDismiss: propsOnDismiss } = _a, restProps = __objRest(_a, ["onDismiss"]);
|
|
2307
|
+
const component = __spreadProps(__spreadValues({
|
|
2308
|
+
type: "upsell",
|
|
2309
|
+
kind: "layout"
|
|
2310
|
+
}, restProps), {
|
|
2311
|
+
visible: true,
|
|
2312
|
+
onDismiss: propsOnDismiss ? () => {
|
|
2313
|
+
update(component, (draft) => {
|
|
2314
|
+
draft.visible = false;
|
|
2315
|
+
});
|
|
2316
|
+
propsOnDismiss();
|
|
2317
|
+
} : void 0
|
|
2318
|
+
});
|
|
2319
|
+
return component;
|
|
2320
|
+
};
|
|
2321
|
+
|
|
2322
|
+
// src/domain/mappers/layout/upsellLayoutToComponent.ts
|
|
2323
|
+
var upsellLayoutToComponent = (uid, {
|
|
2324
|
+
analyticsId,
|
|
2325
|
+
callToAction,
|
|
2326
|
+
context,
|
|
2327
|
+
control,
|
|
2328
|
+
margin,
|
|
2329
|
+
media,
|
|
2330
|
+
onDismiss,
|
|
2331
|
+
tags,
|
|
2332
|
+
text
|
|
2333
|
+
}, mapperProps) => {
|
|
2334
|
+
const { onComponentUpdate } = mapperProps;
|
|
2335
|
+
return createUpsellComponent(
|
|
2336
|
+
{
|
|
2337
|
+
uid,
|
|
2338
|
+
analyticsId,
|
|
2339
|
+
callToAction: getDomainLayerCallToAction(callToAction, mapperProps),
|
|
2340
|
+
context: context ? mapLegacyContext(context) : "neutral",
|
|
2341
|
+
control,
|
|
2342
|
+
margin: margin != null ? margin : "md",
|
|
2343
|
+
media: getDomainLayerMedia({ media }),
|
|
2344
|
+
tags,
|
|
2345
|
+
text,
|
|
2346
|
+
onDismiss: onDismiss ? () => {
|
|
2347
|
+
const { url, method } = onDismiss;
|
|
2348
|
+
const body = method === "GET" ? void 0 : JSON.stringify(onDismiss.body);
|
|
2349
|
+
void mapperProps.httpClient(url, { method, body }).catch(() => {
|
|
2350
|
+
});
|
|
2351
|
+
} : void 0
|
|
2352
|
+
},
|
|
2353
|
+
onComponentUpdate
|
|
2354
|
+
);
|
|
2355
|
+
};
|
|
2356
|
+
|
|
2256
2357
|
// src/domain/mappers/mapLayoutToComponent.ts
|
|
2257
2358
|
var mapLayoutToComponent = (uid, layout, mapperProps, schemaComponents) => {
|
|
2258
2359
|
switch (layout.type) {
|
|
@@ -2284,6 +2385,8 @@ var mapLayoutToComponent = (uid, layout, mapperProps, schemaComponents) => {
|
|
|
2284
2385
|
return loadingIndicatorLayoutToComponent(uid, layout);
|
|
2285
2386
|
case "markdown":
|
|
2286
2387
|
return markdownLayoutToComponent(uid, layout);
|
|
2388
|
+
case "media":
|
|
2389
|
+
return mediaLayoutToComponent(uid, layout);
|
|
2287
2390
|
case "modal":
|
|
2288
2391
|
return modalLayoutToComponent(uid, layout, mapperProps, schemaComponents);
|
|
2289
2392
|
case "paragraph":
|
|
@@ -2300,6 +2403,8 @@ var mapLayoutToComponent = (uid, layout, mapperProps, schemaComponents) => {
|
|
|
2300
2403
|
return statusListLayoutToComponent(uid, layout, mapperProps);
|
|
2301
2404
|
case "tabs":
|
|
2302
2405
|
return tabsLayoutToComponent(uid, layout, mapperProps, schemaComponents);
|
|
2406
|
+
case "upsell":
|
|
2407
|
+
return upsellLayoutToComponent(uid, layout, mapperProps);
|
|
2303
2408
|
default:
|
|
2304
2409
|
throw new Error(`Invalid layout type in ${JSON.stringify(layout)}`);
|
|
2305
2410
|
}
|
|
@@ -6031,55 +6136,6 @@ var createRequestFromAction = (action, model) => {
|
|
|
6031
6136
|
});
|
|
6032
6137
|
};
|
|
6033
6138
|
|
|
6034
|
-
// src/domain/features/prefetch/request-cache.ts
|
|
6035
|
-
var makeRequestCacheWithParent = (parent) => {
|
|
6036
|
-
const map = /* @__PURE__ */ new Map();
|
|
6037
|
-
const cache = {
|
|
6038
|
-
get: (requestParams) => {
|
|
6039
|
-
var _a;
|
|
6040
|
-
const key = makeRequestCacheKey(requestParams);
|
|
6041
|
-
const promise = (_a = map.get(key)) != null ? _a : parent == null ? void 0 : parent.get(requestParams);
|
|
6042
|
-
map.delete(key);
|
|
6043
|
-
return promise;
|
|
6044
|
-
},
|
|
6045
|
-
set: (requestParams, responsePromise) => {
|
|
6046
|
-
return map.set(makeRequestCacheKey(requestParams), responsePromise);
|
|
6047
|
-
}
|
|
6048
|
-
};
|
|
6049
|
-
return cache;
|
|
6050
|
-
};
|
|
6051
|
-
var makeRequestCache = (initialValues = []) => {
|
|
6052
|
-
const cache = makeRequestCacheWithParent(void 0);
|
|
6053
|
-
initialValues.forEach(([requestParams, responsePromise]) => {
|
|
6054
|
-
cache.set(requestParams, responsePromise);
|
|
6055
|
-
});
|
|
6056
|
-
return cache;
|
|
6057
|
-
};
|
|
6058
|
-
var normaliseRequestCache = (cache) => {
|
|
6059
|
-
if (cache === void 0) {
|
|
6060
|
-
return makeRequestCache();
|
|
6061
|
-
}
|
|
6062
|
-
if (isRequestCacheInstance(cache)) {
|
|
6063
|
-
return cache;
|
|
6064
|
-
}
|
|
6065
|
-
return makeRequestCache(cache);
|
|
6066
|
-
};
|
|
6067
|
-
var isRequestCacheInstance = (cache) => {
|
|
6068
|
-
return !cache || !Array.isArray(cache);
|
|
6069
|
-
};
|
|
6070
|
-
var makeRequestCacheKey = (requestParams) => {
|
|
6071
|
-
var _a, _b;
|
|
6072
|
-
const [input, init] = requestParams;
|
|
6073
|
-
const url = typeof input === "string" || input instanceof URL ? input.toString() : input.url;
|
|
6074
|
-
const key = JSON.stringify({
|
|
6075
|
-
url,
|
|
6076
|
-
method: (_a = init == null ? void 0 : init.method) != null ? _a : "GET",
|
|
6077
|
-
headers: (init == null ? void 0 : init.headers) ? Array.from(new Headers(init.headers).entries()) : [],
|
|
6078
|
-
body: (_b = init == null ? void 0 : init.body) != null ? _b : null
|
|
6079
|
-
});
|
|
6080
|
-
return key;
|
|
6081
|
-
};
|
|
6082
|
-
|
|
6083
6139
|
// src/domain/features/prefetch/getStepPrefetch.ts
|
|
6084
6140
|
var getStepPrefetch = (httpClient, flowRequestCache, submissionBehaviors) => {
|
|
6085
6141
|
const requestCache = makeRequestCacheWithParent(flowRequestCache);
|
|
@@ -6850,7 +6906,11 @@ var createFlowController = (props) => {
|
|
|
6850
6906
|
initState = "created";
|
|
6851
6907
|
trackEvent("Initiated");
|
|
6852
6908
|
rootComponent.setLoadingState("submitting");
|
|
6853
|
-
void onAction(__spreadValues({ method: "GET" }, initialAction), null)
|
|
6909
|
+
void onAction(__spreadValues({ method: "GET" }, initialAction), null).then(() => {
|
|
6910
|
+
initState = "started";
|
|
6911
|
+
rootComponent.start();
|
|
6912
|
+
});
|
|
6913
|
+
return;
|
|
6854
6914
|
}
|
|
6855
6915
|
if (initState === "created") {
|
|
6856
6916
|
initState = "started";
|
|
@@ -7497,6 +7557,9 @@ var markdownComponentToProps = (control, rendererMapperProps) => __spreadValues(
|
|
|
7497
7557
|
"size"
|
|
7498
7558
|
)), rendererMapperProps);
|
|
7499
7559
|
|
|
7560
|
+
// src/renderers/mappers/mediaComponentToProps.ts
|
|
7561
|
+
var mediaComponentToProps = (component, rendererMapperProps) => __spreadValues(__spreadValues({}, pick(component, "uid", "analyticsId", "type", "align", "control", "margin", "media", "size", "tags")), rendererMapperProps);
|
|
7562
|
+
|
|
7500
7563
|
// src/renderers/mappers/modalComponentToProps.ts
|
|
7501
7564
|
var modalComponentToProps = (component, rendererMapperProps) => {
|
|
7502
7565
|
const { uid, analyticsId, open, tags, title, close } = component;
|
|
@@ -7842,7 +7905,19 @@ var rootComponentToProps = (rootComponent, rendererMapperProps) => {
|
|
|
7842
7905
|
|
|
7843
7906
|
// src/renderers/mappers/searchComponentToProps.ts
|
|
7844
7907
|
var searchComponentToProps = (component, rendererMapperProps) => {
|
|
7845
|
-
const {
|
|
7908
|
+
const {
|
|
7909
|
+
uid,
|
|
7910
|
+
control,
|
|
7911
|
+
emptyMessage,
|
|
7912
|
+
error,
|
|
7913
|
+
hint,
|
|
7914
|
+
isLoading,
|
|
7915
|
+
margin,
|
|
7916
|
+
query,
|
|
7917
|
+
results,
|
|
7918
|
+
title,
|
|
7919
|
+
tags
|
|
7920
|
+
} = component;
|
|
7846
7921
|
const onChange = component.onChange.bind(component);
|
|
7847
7922
|
const onSelect = component.onSelect.bind(component);
|
|
7848
7923
|
const state = getSearchState({
|
|
@@ -7859,6 +7934,7 @@ var searchComponentToProps = (component, rendererMapperProps) => {
|
|
|
7859
7934
|
type: "search",
|
|
7860
7935
|
id: uid,
|
|
7861
7936
|
control,
|
|
7937
|
+
hint,
|
|
7862
7938
|
isLoading,
|
|
7863
7939
|
margin,
|
|
7864
7940
|
query,
|
|
@@ -8003,6 +8079,23 @@ var uploadInputComponentToProps = (component, rendererMapperProps) => {
|
|
|
8003
8079
|
});
|
|
8004
8080
|
};
|
|
8005
8081
|
|
|
8082
|
+
// src/renderers/mappers/upsellComponentToProps.ts
|
|
8083
|
+
var upsellComponentToProps = (component, rendererMapperProps) => __spreadValues(__spreadProps(__spreadValues({}, pick(
|
|
8084
|
+
component,
|
|
8085
|
+
"uid",
|
|
8086
|
+
"analyticsId",
|
|
8087
|
+
"type",
|
|
8088
|
+
"callToAction",
|
|
8089
|
+
"context",
|
|
8090
|
+
"control",
|
|
8091
|
+
"margin",
|
|
8092
|
+
"media",
|
|
8093
|
+
"tags",
|
|
8094
|
+
"text"
|
|
8095
|
+
)), {
|
|
8096
|
+
onDismiss: component.onDismiss ? component.onDismiss.bind(component) : void 0
|
|
8097
|
+
}), rendererMapperProps);
|
|
8098
|
+
|
|
8006
8099
|
// src/renderers/mappers/subflowComponentToRendererProps.ts
|
|
8007
8100
|
var subflowComponentToRendererProps = (component, rendererMapperProps) => {
|
|
8008
8101
|
return __spreadValues(__spreadProps(__spreadValues({
|
|
@@ -8084,6 +8177,8 @@ var getComponentProps = (component, rendererMapperProps) => {
|
|
|
8084
8177
|
return loadingIndicatorComponentToProps(component, rendererMapperProps);
|
|
8085
8178
|
case "markdown":
|
|
8086
8179
|
return markdownComponentToProps(component, rendererMapperProps);
|
|
8180
|
+
case "media":
|
|
8181
|
+
return mediaComponentToProps(component, rendererMapperProps);
|
|
8087
8182
|
case "modal-layout":
|
|
8088
8183
|
return modalLayoutComponentToProps(component, rendererMapperProps);
|
|
8089
8184
|
case "modal":
|
|
@@ -8124,6 +8219,8 @@ var getComponentProps = (component, rendererMapperProps) => {
|
|
|
8124
8219
|
return tupleComponentToProps(component, rendererMapperProps);
|
|
8125
8220
|
case "upload":
|
|
8126
8221
|
return uploadInputComponentToProps(component, rendererMapperProps);
|
|
8222
|
+
case "upsell":
|
|
8223
|
+
return upsellComponentToProps(component, rendererMapperProps);
|
|
8127
8224
|
case "persist-async":
|
|
8128
8225
|
return persistAsyncComponentToProps(component, rendererMapperProps);
|
|
8129
8226
|
case "step":
|
package/build/main.mjs
CHANGED
|
@@ -811,6 +811,7 @@ var getChildren = (node) => {
|
|
|
811
811
|
case "list":
|
|
812
812
|
case "loading-indicator":
|
|
813
813
|
case "markdown":
|
|
814
|
+
case "media":
|
|
814
815
|
case "input-multi-select":
|
|
815
816
|
case "input-upload-multi":
|
|
816
817
|
case "input-number":
|
|
@@ -824,6 +825,7 @@ var getChildren = (node) => {
|
|
|
824
825
|
case "input-upload":
|
|
825
826
|
case "external-confirmation":
|
|
826
827
|
case "subflow":
|
|
828
|
+
case "upsell":
|
|
827
829
|
return [];
|
|
828
830
|
}
|
|
829
831
|
};
|
|
@@ -1104,6 +1106,55 @@ var createSubflowDomainComponent = (subflowProps, onComponentUpdate) => {
|
|
|
1104
1106
|
return subflowComponent;
|
|
1105
1107
|
};
|
|
1106
1108
|
|
|
1109
|
+
// src/domain/features/prefetch/request-cache.ts
|
|
1110
|
+
var makeRequestCacheWithParent = (parent) => {
|
|
1111
|
+
const map = /* @__PURE__ */ new Map();
|
|
1112
|
+
const cache = {
|
|
1113
|
+
get: (requestParams) => {
|
|
1114
|
+
var _a;
|
|
1115
|
+
const key = makeRequestCacheKey(requestParams);
|
|
1116
|
+
const promise = (_a = map.get(key)) != null ? _a : parent == null ? void 0 : parent.get(requestParams);
|
|
1117
|
+
map.delete(key);
|
|
1118
|
+
return promise;
|
|
1119
|
+
},
|
|
1120
|
+
set: (requestParams, responsePromise) => {
|
|
1121
|
+
return map.set(makeRequestCacheKey(requestParams), responsePromise);
|
|
1122
|
+
}
|
|
1123
|
+
};
|
|
1124
|
+
return cache;
|
|
1125
|
+
};
|
|
1126
|
+
var makeRequestCache = (initialValues = []) => {
|
|
1127
|
+
const cache = makeRequestCacheWithParent(void 0);
|
|
1128
|
+
initialValues.forEach(([requestParams, responsePromise]) => {
|
|
1129
|
+
cache.set(requestParams, responsePromise);
|
|
1130
|
+
});
|
|
1131
|
+
return cache;
|
|
1132
|
+
};
|
|
1133
|
+
var normaliseRequestCache = (cache) => {
|
|
1134
|
+
if (cache === void 0) {
|
|
1135
|
+
return makeRequestCache();
|
|
1136
|
+
}
|
|
1137
|
+
if (isRequestCacheInstance(cache)) {
|
|
1138
|
+
return cache;
|
|
1139
|
+
}
|
|
1140
|
+
return makeRequestCache(cache);
|
|
1141
|
+
};
|
|
1142
|
+
var isRequestCacheInstance = (cache) => {
|
|
1143
|
+
return !cache || !Array.isArray(cache);
|
|
1144
|
+
};
|
|
1145
|
+
var makeRequestCacheKey = (requestParams) => {
|
|
1146
|
+
var _a, _b;
|
|
1147
|
+
const [input, init] = requestParams;
|
|
1148
|
+
const url = typeof input === "string" || input instanceof URL ? input.toString() : input.url;
|
|
1149
|
+
const key = JSON.stringify({
|
|
1150
|
+
url,
|
|
1151
|
+
method: (_a = init == null ? void 0 : init.method) != null ? _a : "GET",
|
|
1152
|
+
headers: (init == null ? void 0 : init.headers) ? Array.from(new Headers(init.headers).entries()) : [],
|
|
1153
|
+
body: (_b = init == null ? void 0 : init.body) != null ? _b : null
|
|
1154
|
+
});
|
|
1155
|
+
return key;
|
|
1156
|
+
};
|
|
1157
|
+
|
|
1107
1158
|
// src/domain/components/ModalComponent.ts
|
|
1108
1159
|
var createModalContentComponent = (modalProps, onComponentUpdate) => {
|
|
1109
1160
|
const update = getInputUpdateFunction(onComponentUpdate);
|
|
@@ -1178,51 +1229,6 @@ var getActionByReference = ($ref, actions = []) => {
|
|
|
1178
1229
|
return action;
|
|
1179
1230
|
};
|
|
1180
1231
|
|
|
1181
|
-
// src/domain/mappers/utils/call-to-action-utils.ts
|
|
1182
|
-
var getDomainLayerCallToAction = (callToAction, mapperProps) => {
|
|
1183
|
-
var _a;
|
|
1184
|
-
if (!callToAction) {
|
|
1185
|
-
return void 0;
|
|
1186
|
-
}
|
|
1187
|
-
const { step, onBehavior, registerSubmissionBehavior } = mapperProps;
|
|
1188
|
-
const stepActions = (_a = step.actions) != null ? _a : [];
|
|
1189
|
-
const { title = "", accessibilityDescription, action, behavior } = callToAction;
|
|
1190
|
-
return getCallToAction(
|
|
1191
|
-
{ title, accessibilityDescription },
|
|
1192
|
-
getDomainLayerBehavior({ action, behavior }, stepActions, registerSubmissionBehavior),
|
|
1193
|
-
onBehavior
|
|
1194
|
-
);
|
|
1195
|
-
};
|
|
1196
|
-
var getCallToAction = ({ title, accessibilityDescription }, behavior, onBehavior) => {
|
|
1197
|
-
const onClick = () => {
|
|
1198
|
-
void onBehavior(behavior);
|
|
1199
|
-
};
|
|
1200
|
-
switch (behavior.type) {
|
|
1201
|
-
case "action":
|
|
1202
|
-
case "modal":
|
|
1203
|
-
case "copy":
|
|
1204
|
-
case "dismiss": {
|
|
1205
|
-
return {
|
|
1206
|
-
type: behavior.type,
|
|
1207
|
-
title: title != null ? title : "",
|
|
1208
|
-
accessibilityDescription,
|
|
1209
|
-
onClick
|
|
1210
|
-
};
|
|
1211
|
-
}
|
|
1212
|
-
case "link": {
|
|
1213
|
-
return {
|
|
1214
|
-
type: "link",
|
|
1215
|
-
title: title != null ? title : "",
|
|
1216
|
-
href: behavior.url,
|
|
1217
|
-
accessibilityDescription,
|
|
1218
|
-
onClick
|
|
1219
|
-
};
|
|
1220
|
-
}
|
|
1221
|
-
default:
|
|
1222
|
-
return void 0;
|
|
1223
|
-
}
|
|
1224
|
-
};
|
|
1225
|
-
|
|
1226
1232
|
// src/domain/mappers/utils/legacy-utils.ts
|
|
1227
1233
|
var mapLegacyContext = (context) => {
|
|
1228
1234
|
switch (context) {
|
|
@@ -1274,6 +1280,27 @@ var legacyActionTypeToControl = {
|
|
|
1274
1280
|
};
|
|
1275
1281
|
var mapLegacyActionTypeToControl = (type) => type && type in legacyActionTypeToControl ? legacyActionTypeToControl[type] : "secondary";
|
|
1276
1282
|
|
|
1283
|
+
// src/domain/mappers/utils/call-to-action-utils.ts
|
|
1284
|
+
function getDomainLayerCallToAction(cta, mapperProps) {
|
|
1285
|
+
var _a, _b;
|
|
1286
|
+
if (!cta) {
|
|
1287
|
+
return void 0;
|
|
1288
|
+
}
|
|
1289
|
+
const { step, onBehavior, registerSubmissionBehavior } = mapperProps;
|
|
1290
|
+
const stepActions = (_a = step.actions) != null ? _a : [];
|
|
1291
|
+
const behavior = getDomainLayerBehavior(cta, stepActions, registerSubmissionBehavior);
|
|
1292
|
+
return {
|
|
1293
|
+
type: behavior.type,
|
|
1294
|
+
title: (_b = cta.title) != null ? _b : "",
|
|
1295
|
+
context: cta.context ? mapLegacyContext(cta.context) : void 0,
|
|
1296
|
+
accessibilityDescription: cta.accessibilityDescription,
|
|
1297
|
+
href: behavior.type === "link" ? behavior.url : void 0,
|
|
1298
|
+
onClick: () => {
|
|
1299
|
+
void onBehavior(behavior);
|
|
1300
|
+
}
|
|
1301
|
+
};
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1277
1304
|
// src/domain/mappers/layout/alertLayoutToComponent.ts
|
|
1278
1305
|
var alertLayoutToComponent = (uid, {
|
|
1279
1306
|
control,
|
|
@@ -1822,6 +1849,24 @@ var markdownLayoutToComponent = (uid, {
|
|
|
1822
1849
|
size: size != null ? size : "md"
|
|
1823
1850
|
});
|
|
1824
1851
|
|
|
1852
|
+
// src/domain/components/MediaComponent.ts
|
|
1853
|
+
var createMediaComponent = (props) => __spreadValues({
|
|
1854
|
+
type: "media",
|
|
1855
|
+
kind: "layout"
|
|
1856
|
+
}, props);
|
|
1857
|
+
|
|
1858
|
+
// src/domain/mappers/layout/mediaLayoutToComponent.ts
|
|
1859
|
+
var mediaLayoutToComponent = (uid, { analyticsId, align, control, margin, media, size, tags }) => createMediaComponent({
|
|
1860
|
+
uid,
|
|
1861
|
+
analyticsId,
|
|
1862
|
+
align: mapLegacyAlign(align != null ? align : "center"),
|
|
1863
|
+
control,
|
|
1864
|
+
margin: margin != null ? margin : "md",
|
|
1865
|
+
media,
|
|
1866
|
+
size: size != null ? size : "md",
|
|
1867
|
+
tags
|
|
1868
|
+
});
|
|
1869
|
+
|
|
1825
1870
|
// src/domain/components/ModalLayoutComponent.ts
|
|
1826
1871
|
var createModalComponent = (modalProps) => __spreadProps(__spreadValues({
|
|
1827
1872
|
type: "modal-layout",
|
|
@@ -1921,14 +1966,14 @@ var reviewLayoutToComponent = (uid, {
|
|
|
1921
1966
|
}, mapperProps) => createReviewComponent({
|
|
1922
1967
|
uid,
|
|
1923
1968
|
analyticsId,
|
|
1924
|
-
callToAction:
|
|
1969
|
+
callToAction: getCallToAction({ mapperProps, callToAction, action }),
|
|
1925
1970
|
control: getOrientationControl({ control, orientation }),
|
|
1926
1971
|
fields: fields.map((field) => mapReviewField(field, mapperProps)),
|
|
1927
1972
|
margin: margin != null ? margin : "md",
|
|
1928
1973
|
tags,
|
|
1929
1974
|
title
|
|
1930
1975
|
});
|
|
1931
|
-
var
|
|
1976
|
+
var getCallToAction = ({
|
|
1932
1977
|
callToAction,
|
|
1933
1978
|
action,
|
|
1934
1979
|
mapperProps
|
|
@@ -1966,7 +2011,7 @@ var mapReviewField = (field, mapperProps) => {
|
|
|
1966
2011
|
help: (_a = field.help) == null ? void 0 : _a.markdown,
|
|
1967
2012
|
inlineAlert: mapInlineAlert(field.inlineAlert),
|
|
1968
2013
|
additionalInfo: mapAdditionalInfo(field.additionalInfo, mapperProps),
|
|
1969
|
-
callToAction:
|
|
2014
|
+
callToAction: getCallToAction({
|
|
1970
2015
|
callToAction: field.callToAction,
|
|
1971
2016
|
mapperProps
|
|
1972
2017
|
}),
|
|
@@ -2013,7 +2058,7 @@ var debounce = (callback, waitMs) => {
|
|
|
2013
2058
|
// src/domain/components/searchComponent/SearchComponent.ts
|
|
2014
2059
|
var DEBOUNCE_TIME = 400;
|
|
2015
2060
|
var createSearchComponent = (searchProps, performSearch, onBehavior, onComponentUpdate) => {
|
|
2016
|
-
const { uid, analyticsId, control, emptyMessage, margin, tags, title } = searchProps;
|
|
2061
|
+
const { uid, analyticsId, control, emptyMessage, hint, margin, tags, title } = searchProps;
|
|
2017
2062
|
const update = getInputUpdateFunction(onComponentUpdate);
|
|
2018
2063
|
let abortController = new AbortController();
|
|
2019
2064
|
const search = (component2, query, searchConfig) => {
|
|
@@ -2049,6 +2094,7 @@ var createSearchComponent = (searchProps, performSearch, onBehavior, onComponent
|
|
|
2049
2094
|
analyticsId,
|
|
2050
2095
|
control,
|
|
2051
2096
|
emptyMessage,
|
|
2097
|
+
hint,
|
|
2052
2098
|
margin,
|
|
2053
2099
|
tags,
|
|
2054
2100
|
title,
|
|
@@ -2135,7 +2181,7 @@ var isValidResponseBody = (body) => isObject(body) && "results" in body && isArr
|
|
|
2135
2181
|
var hashRequest = (query, config) => JSON.stringify({ query, config });
|
|
2136
2182
|
|
|
2137
2183
|
// src/domain/mappers/layout/searchLayoutToComponent.ts
|
|
2138
|
-
var searchLayoutToComponent = (uid, { analyticsId, control, emptyMessage, method, param, title, url, margin, tags }, mapperProps) => {
|
|
2184
|
+
var searchLayoutToComponent = (uid, { analyticsId, control, emptyMessage, hint, method, param, title, url, margin, tags }, mapperProps) => {
|
|
2139
2185
|
const { httpClient, onBehavior, onComponentUpdate } = mapperProps;
|
|
2140
2186
|
const search = getPerformSearchFunction(httpClient, { method, param, url });
|
|
2141
2187
|
return createSearchComponent(
|
|
@@ -2144,6 +2190,7 @@ var searchLayoutToComponent = (uid, { analyticsId, control, emptyMessage, method
|
|
|
2144
2190
|
analyticsId,
|
|
2145
2191
|
control,
|
|
2146
2192
|
emptyMessage: emptyMessage != null ? emptyMessage : "",
|
|
2193
|
+
hint,
|
|
2147
2194
|
margin: margin != null ? margin : "md",
|
|
2148
2195
|
tags,
|
|
2149
2196
|
title
|
|
@@ -2223,6 +2270,60 @@ var mapTabs = (tabs, uid, mapperProps, schemaComponents) => tabs.map(({ componen
|
|
|
2223
2270
|
)
|
|
2224
2271
|
}));
|
|
2225
2272
|
|
|
2273
|
+
// src/domain/components/UpsellComponent.ts
|
|
2274
|
+
var createUpsellComponent = (upsellProps, onComponentUpdate) => {
|
|
2275
|
+
const update = getInputUpdateFunction(onComponentUpdate);
|
|
2276
|
+
const _a = upsellProps, { onDismiss: propsOnDismiss } = _a, restProps = __objRest(_a, ["onDismiss"]);
|
|
2277
|
+
const component = __spreadProps(__spreadValues({
|
|
2278
|
+
type: "upsell",
|
|
2279
|
+
kind: "layout"
|
|
2280
|
+
}, restProps), {
|
|
2281
|
+
visible: true,
|
|
2282
|
+
onDismiss: propsOnDismiss ? () => {
|
|
2283
|
+
update(component, (draft) => {
|
|
2284
|
+
draft.visible = false;
|
|
2285
|
+
});
|
|
2286
|
+
propsOnDismiss();
|
|
2287
|
+
} : void 0
|
|
2288
|
+
});
|
|
2289
|
+
return component;
|
|
2290
|
+
};
|
|
2291
|
+
|
|
2292
|
+
// src/domain/mappers/layout/upsellLayoutToComponent.ts
|
|
2293
|
+
var upsellLayoutToComponent = (uid, {
|
|
2294
|
+
analyticsId,
|
|
2295
|
+
callToAction,
|
|
2296
|
+
context,
|
|
2297
|
+
control,
|
|
2298
|
+
margin,
|
|
2299
|
+
media,
|
|
2300
|
+
onDismiss,
|
|
2301
|
+
tags,
|
|
2302
|
+
text
|
|
2303
|
+
}, mapperProps) => {
|
|
2304
|
+
const { onComponentUpdate } = mapperProps;
|
|
2305
|
+
return createUpsellComponent(
|
|
2306
|
+
{
|
|
2307
|
+
uid,
|
|
2308
|
+
analyticsId,
|
|
2309
|
+
callToAction: getDomainLayerCallToAction(callToAction, mapperProps),
|
|
2310
|
+
context: context ? mapLegacyContext(context) : "neutral",
|
|
2311
|
+
control,
|
|
2312
|
+
margin: margin != null ? margin : "md",
|
|
2313
|
+
media: getDomainLayerMedia({ media }),
|
|
2314
|
+
tags,
|
|
2315
|
+
text,
|
|
2316
|
+
onDismiss: onDismiss ? () => {
|
|
2317
|
+
const { url, method } = onDismiss;
|
|
2318
|
+
const body = method === "GET" ? void 0 : JSON.stringify(onDismiss.body);
|
|
2319
|
+
void mapperProps.httpClient(url, { method, body }).catch(() => {
|
|
2320
|
+
});
|
|
2321
|
+
} : void 0
|
|
2322
|
+
},
|
|
2323
|
+
onComponentUpdate
|
|
2324
|
+
);
|
|
2325
|
+
};
|
|
2326
|
+
|
|
2226
2327
|
// src/domain/mappers/mapLayoutToComponent.ts
|
|
2227
2328
|
var mapLayoutToComponent = (uid, layout, mapperProps, schemaComponents) => {
|
|
2228
2329
|
switch (layout.type) {
|
|
@@ -2254,6 +2355,8 @@ var mapLayoutToComponent = (uid, layout, mapperProps, schemaComponents) => {
|
|
|
2254
2355
|
return loadingIndicatorLayoutToComponent(uid, layout);
|
|
2255
2356
|
case "markdown":
|
|
2256
2357
|
return markdownLayoutToComponent(uid, layout);
|
|
2358
|
+
case "media":
|
|
2359
|
+
return mediaLayoutToComponent(uid, layout);
|
|
2257
2360
|
case "modal":
|
|
2258
2361
|
return modalLayoutToComponent(uid, layout, mapperProps, schemaComponents);
|
|
2259
2362
|
case "paragraph":
|
|
@@ -2270,6 +2373,8 @@ var mapLayoutToComponent = (uid, layout, mapperProps, schemaComponents) => {
|
|
|
2270
2373
|
return statusListLayoutToComponent(uid, layout, mapperProps);
|
|
2271
2374
|
case "tabs":
|
|
2272
2375
|
return tabsLayoutToComponent(uid, layout, mapperProps, schemaComponents);
|
|
2376
|
+
case "upsell":
|
|
2377
|
+
return upsellLayoutToComponent(uid, layout, mapperProps);
|
|
2273
2378
|
default:
|
|
2274
2379
|
throw new Error(`Invalid layout type in ${JSON.stringify(layout)}`);
|
|
2275
2380
|
}
|
|
@@ -6001,55 +6106,6 @@ var createRequestFromAction = (action, model) => {
|
|
|
6001
6106
|
});
|
|
6002
6107
|
};
|
|
6003
6108
|
|
|
6004
|
-
// src/domain/features/prefetch/request-cache.ts
|
|
6005
|
-
var makeRequestCacheWithParent = (parent) => {
|
|
6006
|
-
const map = /* @__PURE__ */ new Map();
|
|
6007
|
-
const cache = {
|
|
6008
|
-
get: (requestParams) => {
|
|
6009
|
-
var _a;
|
|
6010
|
-
const key = makeRequestCacheKey(requestParams);
|
|
6011
|
-
const promise = (_a = map.get(key)) != null ? _a : parent == null ? void 0 : parent.get(requestParams);
|
|
6012
|
-
map.delete(key);
|
|
6013
|
-
return promise;
|
|
6014
|
-
},
|
|
6015
|
-
set: (requestParams, responsePromise) => {
|
|
6016
|
-
return map.set(makeRequestCacheKey(requestParams), responsePromise);
|
|
6017
|
-
}
|
|
6018
|
-
};
|
|
6019
|
-
return cache;
|
|
6020
|
-
};
|
|
6021
|
-
var makeRequestCache = (initialValues = []) => {
|
|
6022
|
-
const cache = makeRequestCacheWithParent(void 0);
|
|
6023
|
-
initialValues.forEach(([requestParams, responsePromise]) => {
|
|
6024
|
-
cache.set(requestParams, responsePromise);
|
|
6025
|
-
});
|
|
6026
|
-
return cache;
|
|
6027
|
-
};
|
|
6028
|
-
var normaliseRequestCache = (cache) => {
|
|
6029
|
-
if (cache === void 0) {
|
|
6030
|
-
return makeRequestCache();
|
|
6031
|
-
}
|
|
6032
|
-
if (isRequestCacheInstance(cache)) {
|
|
6033
|
-
return cache;
|
|
6034
|
-
}
|
|
6035
|
-
return makeRequestCache(cache);
|
|
6036
|
-
};
|
|
6037
|
-
var isRequestCacheInstance = (cache) => {
|
|
6038
|
-
return !cache || !Array.isArray(cache);
|
|
6039
|
-
};
|
|
6040
|
-
var makeRequestCacheKey = (requestParams) => {
|
|
6041
|
-
var _a, _b;
|
|
6042
|
-
const [input, init] = requestParams;
|
|
6043
|
-
const url = typeof input === "string" || input instanceof URL ? input.toString() : input.url;
|
|
6044
|
-
const key = JSON.stringify({
|
|
6045
|
-
url,
|
|
6046
|
-
method: (_a = init == null ? void 0 : init.method) != null ? _a : "GET",
|
|
6047
|
-
headers: (init == null ? void 0 : init.headers) ? Array.from(new Headers(init.headers).entries()) : [],
|
|
6048
|
-
body: (_b = init == null ? void 0 : init.body) != null ? _b : null
|
|
6049
|
-
});
|
|
6050
|
-
return key;
|
|
6051
|
-
};
|
|
6052
|
-
|
|
6053
6109
|
// src/domain/features/prefetch/getStepPrefetch.ts
|
|
6054
6110
|
var getStepPrefetch = (httpClient, flowRequestCache, submissionBehaviors) => {
|
|
6055
6111
|
const requestCache = makeRequestCacheWithParent(flowRequestCache);
|
|
@@ -6820,7 +6876,11 @@ var createFlowController = (props) => {
|
|
|
6820
6876
|
initState = "created";
|
|
6821
6877
|
trackEvent("Initiated");
|
|
6822
6878
|
rootComponent.setLoadingState("submitting");
|
|
6823
|
-
void onAction(__spreadValues({ method: "GET" }, initialAction), null)
|
|
6879
|
+
void onAction(__spreadValues({ method: "GET" }, initialAction), null).then(() => {
|
|
6880
|
+
initState = "started";
|
|
6881
|
+
rootComponent.start();
|
|
6882
|
+
});
|
|
6883
|
+
return;
|
|
6824
6884
|
}
|
|
6825
6885
|
if (initState === "created") {
|
|
6826
6886
|
initState = "started";
|
|
@@ -7467,6 +7527,9 @@ var markdownComponentToProps = (control, rendererMapperProps) => __spreadValues(
|
|
|
7467
7527
|
"size"
|
|
7468
7528
|
)), rendererMapperProps);
|
|
7469
7529
|
|
|
7530
|
+
// src/renderers/mappers/mediaComponentToProps.ts
|
|
7531
|
+
var mediaComponentToProps = (component, rendererMapperProps) => __spreadValues(__spreadValues({}, pick(component, "uid", "analyticsId", "type", "align", "control", "margin", "media", "size", "tags")), rendererMapperProps);
|
|
7532
|
+
|
|
7470
7533
|
// src/renderers/mappers/modalComponentToProps.ts
|
|
7471
7534
|
var modalComponentToProps = (component, rendererMapperProps) => {
|
|
7472
7535
|
const { uid, analyticsId, open, tags, title, close } = component;
|
|
@@ -7812,7 +7875,19 @@ var rootComponentToProps = (rootComponent, rendererMapperProps) => {
|
|
|
7812
7875
|
|
|
7813
7876
|
// src/renderers/mappers/searchComponentToProps.ts
|
|
7814
7877
|
var searchComponentToProps = (component, rendererMapperProps) => {
|
|
7815
|
-
const {
|
|
7878
|
+
const {
|
|
7879
|
+
uid,
|
|
7880
|
+
control,
|
|
7881
|
+
emptyMessage,
|
|
7882
|
+
error,
|
|
7883
|
+
hint,
|
|
7884
|
+
isLoading,
|
|
7885
|
+
margin,
|
|
7886
|
+
query,
|
|
7887
|
+
results,
|
|
7888
|
+
title,
|
|
7889
|
+
tags
|
|
7890
|
+
} = component;
|
|
7816
7891
|
const onChange = component.onChange.bind(component);
|
|
7817
7892
|
const onSelect = component.onSelect.bind(component);
|
|
7818
7893
|
const state = getSearchState({
|
|
@@ -7829,6 +7904,7 @@ var searchComponentToProps = (component, rendererMapperProps) => {
|
|
|
7829
7904
|
type: "search",
|
|
7830
7905
|
id: uid,
|
|
7831
7906
|
control,
|
|
7907
|
+
hint,
|
|
7832
7908
|
isLoading,
|
|
7833
7909
|
margin,
|
|
7834
7910
|
query,
|
|
@@ -7973,6 +8049,23 @@ var uploadInputComponentToProps = (component, rendererMapperProps) => {
|
|
|
7973
8049
|
});
|
|
7974
8050
|
};
|
|
7975
8051
|
|
|
8052
|
+
// src/renderers/mappers/upsellComponentToProps.ts
|
|
8053
|
+
var upsellComponentToProps = (component, rendererMapperProps) => __spreadValues(__spreadProps(__spreadValues({}, pick(
|
|
8054
|
+
component,
|
|
8055
|
+
"uid",
|
|
8056
|
+
"analyticsId",
|
|
8057
|
+
"type",
|
|
8058
|
+
"callToAction",
|
|
8059
|
+
"context",
|
|
8060
|
+
"control",
|
|
8061
|
+
"margin",
|
|
8062
|
+
"media",
|
|
8063
|
+
"tags",
|
|
8064
|
+
"text"
|
|
8065
|
+
)), {
|
|
8066
|
+
onDismiss: component.onDismiss ? component.onDismiss.bind(component) : void 0
|
|
8067
|
+
}), rendererMapperProps);
|
|
8068
|
+
|
|
7976
8069
|
// src/renderers/mappers/subflowComponentToRendererProps.ts
|
|
7977
8070
|
var subflowComponentToRendererProps = (component, rendererMapperProps) => {
|
|
7978
8071
|
return __spreadValues(__spreadProps(__spreadValues({
|
|
@@ -8054,6 +8147,8 @@ var getComponentProps = (component, rendererMapperProps) => {
|
|
|
8054
8147
|
return loadingIndicatorComponentToProps(component, rendererMapperProps);
|
|
8055
8148
|
case "markdown":
|
|
8056
8149
|
return markdownComponentToProps(component, rendererMapperProps);
|
|
8150
|
+
case "media":
|
|
8151
|
+
return mediaComponentToProps(component, rendererMapperProps);
|
|
8057
8152
|
case "modal-layout":
|
|
8058
8153
|
return modalLayoutComponentToProps(component, rendererMapperProps);
|
|
8059
8154
|
case "modal":
|
|
@@ -8094,6 +8189,8 @@ var getComponentProps = (component, rendererMapperProps) => {
|
|
|
8094
8189
|
return tupleComponentToProps(component, rendererMapperProps);
|
|
8095
8190
|
case "upload":
|
|
8096
8191
|
return uploadInputComponentToProps(component, rendererMapperProps);
|
|
8192
|
+
case "upsell":
|
|
8193
|
+
return upsellComponentToProps(component, rendererMapperProps);
|
|
8097
8194
|
case "persist-async":
|
|
8098
8195
|
return persistAsyncComponentToProps(component, rendererMapperProps);
|
|
8099
8196
|
case "step":
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Size } from '@wise/dynamic-flow-types/spec';
|
|
2
|
+
import type { Align, BaseLayoutComponent, Media } from '../types';
|
|
3
|
+
export type MediaComponent = BaseLayoutComponent & {
|
|
4
|
+
type: 'media';
|
|
5
|
+
kind: 'layout';
|
|
6
|
+
align: Align;
|
|
7
|
+
media: Media;
|
|
8
|
+
size: Size;
|
|
9
|
+
};
|
|
10
|
+
export declare const createMediaComponent: (props: Pick<MediaComponent, "uid" | "align" | "media" | "control" | "margin" | "size" | "analyticsId" | "tags">) => MediaComponent;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { BaseLayoutComponent, CallToAction, Context, Media, OnComponentUpdate } from '../types';
|
|
2
|
+
export type UpsellComponent = BaseLayoutComponent & {
|
|
3
|
+
type: 'upsell';
|
|
4
|
+
kind: 'layout';
|
|
5
|
+
text: string;
|
|
6
|
+
callToAction: CallToAction;
|
|
7
|
+
media?: Media;
|
|
8
|
+
visible: boolean;
|
|
9
|
+
onDismiss: (() => void) | undefined;
|
|
10
|
+
context: Context;
|
|
11
|
+
};
|
|
12
|
+
export declare const createUpsellComponent: (upsellProps: Pick<UpsellComponent, "uid" | "analyticsId" | "callToAction" | "context" | "control" | "margin" | "media" | "tags" | "text" | "onDismiss">, onComponentUpdate: OnComponentUpdate) => UpsellComponent;
|
|
@@ -15,6 +15,7 @@ export type SearchComponent = BaseLayoutComponent & {
|
|
|
15
15
|
type: 'search';
|
|
16
16
|
kind: 'layout';
|
|
17
17
|
emptyMessage: string;
|
|
18
|
+
hint?: string;
|
|
18
19
|
isLoading: boolean;
|
|
19
20
|
query: string;
|
|
20
21
|
title: string;
|
|
@@ -23,4 +24,4 @@ export type SearchComponent = BaseLayoutComponent & {
|
|
|
23
24
|
onChange: (query: string) => void;
|
|
24
25
|
onSelect: (result: SearchResult) => void;
|
|
25
26
|
};
|
|
26
|
-
export declare const createSearchComponent: (searchProps: Pick<SearchComponent, "uid" | "analyticsId" | "control" | "emptyMessage" | "margin" | "tags" | "title">, performSearch: PerformSearch, onBehavior: OnBehavior, onComponentUpdate: OnComponentUpdate) => SearchComponent;
|
|
27
|
+
export declare const createSearchComponent: (searchProps: Pick<SearchComponent, "uid" | "analyticsId" | "control" | "emptyMessage" | "hint" | "margin" | "tags" | "title">, performSearch: PerformSearch, onBehavior: OnBehavior, onComponentUpdate: OnComponentUpdate) => SearchComponent;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { SearchLayout } from '@wise/dynamic-flow-types/spec';
|
|
2
2
|
import type { MapperProps } from '../schema/types';
|
|
3
|
-
export declare const searchLayoutToComponent: (uid: string, { analyticsId, control, emptyMessage, method, param, title, url, margin, tags }: SearchLayout, mapperProps: MapperProps) => import("../../components/searchComponent/SearchComponent").SearchComponent;
|
|
3
|
+
export declare const searchLayoutToComponent: (uid: string, { analyticsId, control, emptyMessage, hint, method, param, title, url, margin, tags }: SearchLayout, mapperProps: MapperProps) => import("../../components/searchComponent/SearchComponent").SearchComponent;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { UpsellLayout } from '@wise/dynamic-flow-types/spec';
|
|
2
|
+
import { MapperProps } from '../schema/types';
|
|
3
|
+
export declare const upsellLayoutToComponent: (uid: string, { analyticsId, callToAction, context, control, margin, media, onDismiss, tags, text, }: UpsellLayout, mapperProps: MapperProps) => import("../../components/UpsellComponent").UpsellComponent;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { Action, Behavior as SpecBehavior } from '@wise/dynamic-flow-types/spec';
|
|
1
|
+
import { Action, Context, Behavior as SpecBehavior } from '@wise/dynamic-flow-types/spec';
|
|
2
2
|
import { CallToAction } from '../../types';
|
|
3
3
|
import { MapperProps } from '../schema/types';
|
|
4
4
|
type SpecCallToAction = {
|
|
5
5
|
title?: string;
|
|
6
|
+
context?: Context;
|
|
6
7
|
accessibilityDescription?: string;
|
|
7
8
|
action?: Action;
|
|
8
9
|
behavior?: SpecBehavior;
|
|
9
10
|
};
|
|
10
|
-
export declare
|
|
11
|
+
export declare function getDomainLayerCallToAction(cta: SpecCallToAction, mp: MapperProps): CallToAction;
|
|
12
|
+
export declare function getDomainLayerCallToAction(cta: SpecCallToAction | undefined, mapperProps: MapperProps): CallToAction | undefined;
|
|
11
13
|
export {};
|
|
@@ -19,6 +19,7 @@ import type { IntegerInputComponent } from './components/IntegerInputComponent';
|
|
|
19
19
|
import type { ListComponent } from './components/ListComponent';
|
|
20
20
|
import type { LoadingIndicatorComponent } from './components/LoadingIndicatorComponent';
|
|
21
21
|
import type { MarkdownComponent } from './components/MarkdownComponent';
|
|
22
|
+
import type { MediaComponent } from './components/MediaComponent';
|
|
22
23
|
import type { ModalComponent } from './components/ModalComponent';
|
|
23
24
|
import type { ModalLayoutComponent } from './components/ModalLayoutComponent';
|
|
24
25
|
import type { MoneyInputComponent } from './components/MoneyInputComponent';
|
|
@@ -38,12 +39,13 @@ import type { SelectInputComponent } from './components/SelectInputComponent';
|
|
|
38
39
|
import type { StatusListComponent } from './components/StatusListComponent';
|
|
39
40
|
import type { ExternalConfirmationComponent } from './components/step/ExternalConfirmationComponent';
|
|
40
41
|
import type { StepDomainComponent } from './components/step/StepDomainComponent';
|
|
42
|
+
import type { SubflowDomainComponent } from './components/SubflowDomainComponent';
|
|
41
43
|
import type { TabsComponent } from './components/TabsComponent';
|
|
42
44
|
import type { TextInputComponent } from './components/TextInputComponent';
|
|
43
45
|
import type { TupleComponent } from './components/TupleComponent';
|
|
44
46
|
import type { UploadInputComponent } from './components/UploadInputComponent';
|
|
45
|
-
import type {
|
|
46
|
-
export type DomainComponent = RootDomainComponent | StepDomainComponent | PersistAsyncComponent | AllOfComponent | BooleanInputComponent | ConstComponent | DateInputComponent | IntegerInputComponent | MultiSelectComponent | MultiUploadInputComponent | NumberInputComponent | ObjectComponent | RepeatableComponent | SelectInputComponent | TextInputComponent | TupleComponent | UploadInputComponent | AlertComponent | BoxComponent | ButtonComponent | ColumnsComponent | ContainerComponent | DecisionComponent | DividerComponent | ExternalConfirmationComponent | FormattedValueComponent | FormComponent | HeadingComponent | ImageComponent | InstructionsComponent | ListComponent | LoadingIndicatorComponent | MarkdownComponent | ModalLayoutComponent | ModalComponent | MoneyInputComponent | ParagraphComponent | ProgressComponent | ReviewComponent | SearchComponent | SectionComponent | StatusListComponent | SubflowDomainComponent | TabsComponent;
|
|
47
|
+
import type { UpsellComponent } from './components/UpsellComponent';
|
|
48
|
+
export type DomainComponent = RootDomainComponent | StepDomainComponent | PersistAsyncComponent | AllOfComponent | BooleanInputComponent | ConstComponent | DateInputComponent | IntegerInputComponent | MultiSelectComponent | MultiUploadInputComponent | NumberInputComponent | ObjectComponent | RepeatableComponent | SelectInputComponent | TextInputComponent | TupleComponent | UploadInputComponent | AlertComponent | BoxComponent | ButtonComponent | ColumnsComponent | ContainerComponent | DecisionComponent | DividerComponent | ExternalConfirmationComponent | FormattedValueComponent | FormComponent | HeadingComponent | ImageComponent | InstructionsComponent | ListComponent | LoadingIndicatorComponent | MarkdownComponent | MediaComponent | ModalLayoutComponent | ModalComponent | MoneyInputComponent | ParagraphComponent | ProgressComponent | ReviewComponent | SearchComponent | SectionComponent | StatusListComponent | SubflowDomainComponent | TabsComponent | UpsellComponent;
|
|
47
49
|
export type SchemaComponent = DomainComponent & {
|
|
48
50
|
kind: 'input';
|
|
49
51
|
};
|
|
@@ -56,18 +58,6 @@ export interface LocalValueObject extends Record<string, LocalValuePrimitive | L
|
|
|
56
58
|
}
|
|
57
59
|
export interface LocalValueArray extends Array<LocalValuePrimitive | LocalValueObject | LocalValueArray> {
|
|
58
60
|
}
|
|
59
|
-
export type CallToAction = {
|
|
60
|
-
type: 'action' | 'modal' | 'dismiss' | 'copy';
|
|
61
|
-
title: string;
|
|
62
|
-
accessibilityDescription?: string;
|
|
63
|
-
onClick: () => void;
|
|
64
|
-
} | {
|
|
65
|
-
type: 'link';
|
|
66
|
-
title: string;
|
|
67
|
-
accessibilityDescription?: string;
|
|
68
|
-
href: string;
|
|
69
|
-
onClick: () => void;
|
|
70
|
-
};
|
|
71
61
|
export type Behavior = (ActionBehavior | CopyBehavior | DismissBehavior | LinkBehavior | ModalBehavior | NonMergingActionBehaviour | NullBehavior | RefreshBehavior | BackBehaviour | SubflowBehavior) & {
|
|
72
62
|
analytics?: Record<string, unknown>;
|
|
73
63
|
};
|
|
@@ -98,6 +88,14 @@ export type SubflowBehavior = {
|
|
|
98
88
|
onCompletion?: Behavior;
|
|
99
89
|
onError?: Behavior;
|
|
100
90
|
};
|
|
91
|
+
export type CallToAction = {
|
|
92
|
+
type: Behavior['type'];
|
|
93
|
+
title: string;
|
|
94
|
+
context?: Context;
|
|
95
|
+
accessibilityDescription?: string;
|
|
96
|
+
href?: string;
|
|
97
|
+
onClick: () => void;
|
|
98
|
+
};
|
|
101
99
|
export type BaseComponent = {
|
|
102
100
|
kind: 'step' | 'input' | 'layout';
|
|
103
101
|
type: string;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MediaRendererProps } from '@wise/dynamic-flow-types/renderers';
|
|
2
|
+
import type { MediaComponent } from '../../domain/components/MediaComponent';
|
|
3
|
+
import { RendererMapperProps } from './componentToRendererProps';
|
|
4
|
+
export declare const mediaComponentToProps: (component: MediaComponent, rendererMapperProps: RendererMapperProps) => MediaRendererProps;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { HiddenRendererProps, UpsellRendererProps } from '@wise/dynamic-flow-types/renderers';
|
|
2
|
+
import type { UpsellComponent } from '../../domain/components/UpsellComponent';
|
|
3
|
+
import { RendererMapperProps } from './componentToRendererProps';
|
|
4
|
+
export declare const upsellComponentToProps: (component: UpsellComponent, rendererMapperProps: RendererMapperProps) => UpsellRendererProps | HiddenRendererProps;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { DynamicFlowWiseProps } from './DynamicFlowWise';
|
|
2
|
-
export declare const getMergedTestRenderers: (props: DynamicFlowWiseProps) => (import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").CoreContainerRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").RootRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").StepRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").AlertRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").BoxRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ColumnsRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").DecisionRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").DividerRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ExternalConfirmationRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").FormattedValueRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").FormRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").HeadingRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").InstructionsRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ListRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").LoadingIndicatorRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MarkdownRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ImageRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ModalLayoutRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ModalRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ParagraphRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ProgressRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ReviewRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SearchRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").StatusListRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").CheckboxInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ButtonRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").DateInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").HiddenRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").IntegerInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MoneyInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").NumberInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").RepeatableRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").FormSectionRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SelectInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SectionRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SubflowRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MultiSelectInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").TabsRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").TextInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").UploadInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MultiUploadInputRendererProps>)[];
|
|
2
|
+
export declare const getMergedTestRenderers: (props: DynamicFlowWiseProps) => (import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").CoreContainerRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").RootRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").StepRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").AlertRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").BoxRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ColumnsRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").DecisionRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").DividerRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ExternalConfirmationRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").FormattedValueRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").FormRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").HeadingRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").InstructionsRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ListRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").LoadingIndicatorRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MarkdownRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ImageRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MediaRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ModalLayoutRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ModalRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ParagraphRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ProgressRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ReviewRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SearchRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").StatusListRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").CheckboxInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ButtonRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").DateInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").HiddenRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").IntegerInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MoneyInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").NumberInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").RepeatableRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").FormSectionRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SelectInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SectionRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SubflowRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MultiSelectInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").TabsRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").TextInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").UploadInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MultiUploadInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").UpsellRendererProps>)[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wise/dynamic-flow-client",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.7.0",
|
|
4
4
|
"description": "Dynamic Flow web client",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "./build/main.js",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"react-intl": "^6 || ^7"
|
|
87
87
|
},
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"@wise/dynamic-flow-types": "4.
|
|
89
|
+
"@wise/dynamic-flow-types": "4.8.0"
|
|
90
90
|
},
|
|
91
91
|
"scripts": {
|
|
92
92
|
"dev": "EXCLUDE_VISUAL_TESTS=true pnpm storybook dev -p 3003",
|