@wise/dynamic-flow-client-internal 5.14.0-experimental-9fc0bf0 → 5.15.0-experimental-76b77f2
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.js +869 -671
- package/build/main.mjs +778 -580
- package/build/tsconfig.types.tsbuildinfo +1 -1
- package/build/types/dynamicFlow/context-menu/useDFContextMenu.d.ts.map +1 -1
- package/package.json +19 -17
package/build/main.mjs
CHANGED
|
@@ -123,7 +123,7 @@ import { useDynamicFlow } from "@wise/dynamic-flow-client";
|
|
|
123
123
|
// src/dynamicFlow/telemetry/app-version.ts
|
|
124
124
|
var appVersion = (
|
|
125
125
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
126
|
-
typeof process !== "undefined" ? "5.14.0
|
|
126
|
+
typeof process !== "undefined" ? "5.14.0" : "0.0.0"
|
|
127
127
|
);
|
|
128
128
|
|
|
129
129
|
// src/dynamicFlow/context-menu/useContextMenu.tsx
|
|
@@ -178,21 +178,25 @@ var useMenuPosition = () => {
|
|
|
178
178
|
|
|
179
179
|
// src/dynamicFlow/context-menu/useDFContextMenu.tsx
|
|
180
180
|
var useDFContextMenu = (controller) => {
|
|
181
|
+
const getCurrentStep = () => {
|
|
182
|
+
const step = controller.getCurrentStep();
|
|
183
|
+
return step ? recursivelyRemoveNullish(step) : null;
|
|
184
|
+
};
|
|
181
185
|
const getCurrentStepWithModel = async () => {
|
|
182
186
|
const step = controller.getCurrentStep();
|
|
183
187
|
if (!step) {
|
|
184
188
|
return null;
|
|
185
189
|
}
|
|
186
190
|
const model = await controller.getSubmittableValue();
|
|
187
|
-
return __spreadProps(__spreadValues({}, step), { model });
|
|
191
|
+
return recursivelyRemoveNullish(__spreadProps(__spreadValues({}, step), { model }));
|
|
188
192
|
};
|
|
189
193
|
const getEncodedCurrentStep = () => {
|
|
190
|
-
const step =
|
|
191
|
-
return step ? toBase64(JSON.stringify(
|
|
194
|
+
const step = getCurrentStep();
|
|
195
|
+
return step ? toBase64(JSON.stringify(step, null, 2)) : null;
|
|
192
196
|
};
|
|
193
197
|
const getEncodedCurrentStepWithModel = async () => {
|
|
194
198
|
const step = await getCurrentStepWithModel();
|
|
195
|
-
return step ? toBase64(JSON.stringify(
|
|
199
|
+
return step ? toBase64(JSON.stringify(step, null, 2)) : null;
|
|
196
200
|
};
|
|
197
201
|
return useContextMenu({
|
|
198
202
|
title: "DynamicFlow Menu (Dev/Staging only)",
|
|
@@ -200,7 +204,7 @@ var useDFContextMenu = (controller) => {
|
|
|
200
204
|
{
|
|
201
205
|
label: `DF client version: ${appVersion}`,
|
|
202
206
|
onClick: () => {
|
|
203
|
-
|
|
207
|
+
openVersionPage(appVersion);
|
|
204
208
|
}
|
|
205
209
|
},
|
|
206
210
|
{
|
|
@@ -218,7 +222,7 @@ var useDFContextMenu = (controller) => {
|
|
|
218
222
|
{
|
|
219
223
|
label: "Copy step JSON",
|
|
220
224
|
onClick: () => {
|
|
221
|
-
copyToClipboard(
|
|
225
|
+
copyToClipboard(getCurrentStep());
|
|
222
226
|
}
|
|
223
227
|
},
|
|
224
228
|
{
|
|
@@ -237,8 +241,27 @@ var toBase64 = (str) => {
|
|
|
237
241
|
};
|
|
238
242
|
var openInSandbox = (base64Step) => {
|
|
239
243
|
if (base64Step) {
|
|
240
|
-
window.open(`https://df.wise.com/sandbox#${base64Step}`, "_blank");
|
|
244
|
+
window.open(`https://df.wise.com/sandbox#${base64Step}`, "_blank", "noopener,noreferrer");
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
var openVersionPage = (version) => {
|
|
248
|
+
const changelogUrl = getGitHubChangelogUrl(version);
|
|
249
|
+
if (changelogUrl) {
|
|
250
|
+
window.open(changelogUrl, "_blank", "noopener,noreferrer");
|
|
251
|
+
} else {
|
|
252
|
+
window.open(getNpmPackageUrl(version), "_blank", "noopener,noreferrer");
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
var getGitHubChangelogUrl = (version) => {
|
|
256
|
+
const semverRegex = /^\d+\.\d+\.\d+$/;
|
|
257
|
+
if (semverRegex.test(version)) {
|
|
258
|
+
const hash = version.replace(/\./g, "");
|
|
259
|
+
return `https://github.com/transferwise/dynamic-flow/blob/main/web/wise/CHANGELOG.md#${hash}`;
|
|
241
260
|
}
|
|
261
|
+
return void 0;
|
|
262
|
+
};
|
|
263
|
+
var getNpmPackageUrl = (version) => {
|
|
264
|
+
return `https://www.npmjs.com/package/@wise/dynamic-flow-client-internal/v/${version}`;
|
|
242
265
|
};
|
|
243
266
|
var copyToClipboard = (value) => {
|
|
244
267
|
if (typeof value === "string") {
|
|
@@ -266,15 +289,17 @@ var isDevOrStaging = () => {
|
|
|
266
289
|
return false;
|
|
267
290
|
}
|
|
268
291
|
};
|
|
269
|
-
var
|
|
292
|
+
var recursivelyRemoveNullish = (element) => {
|
|
270
293
|
if (Array.isArray(element)) {
|
|
271
|
-
return element.map(
|
|
294
|
+
return element.map(recursivelyRemoveNullish);
|
|
272
295
|
}
|
|
273
296
|
if (element !== null && typeof element === "object") {
|
|
274
|
-
return Object.entries(element).reduce(
|
|
275
|
-
(
|
|
276
|
-
|
|
277
|
-
|
|
297
|
+
return Object.entries(element).reduce((acc, [key, value]) => {
|
|
298
|
+
if (value !== null && value !== void 0) {
|
|
299
|
+
acc[key] = recursivelyRemoveNullish(value);
|
|
300
|
+
}
|
|
301
|
+
return acc;
|
|
302
|
+
}, {});
|
|
278
303
|
}
|
|
279
304
|
return element;
|
|
280
305
|
};
|
|
@@ -1062,12 +1087,273 @@ var getInlineAlertOrValidation = (validationState, inlineAlert) => {
|
|
|
1062
1087
|
};
|
|
1063
1088
|
var CheckboxInputRenderer_default = CheckboxInputRenderer;
|
|
1064
1089
|
|
|
1090
|
+
// ../renderers/src/CollectionRenderer.tsx
|
|
1091
|
+
import { Chips, Input, InputGroup, ListItem as ListItem6 } from "@transferwise/components";
|
|
1092
|
+
|
|
1093
|
+
// ../renderers/src/utils/listItem/getAdditionalInfo.tsx
|
|
1094
|
+
import { ListItem as ListItem4 } from "@transferwise/components";
|
|
1095
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1096
|
+
var getAdditionalInfo = (additionalInfo) => {
|
|
1097
|
+
if (!additionalInfo) {
|
|
1098
|
+
return void 0;
|
|
1099
|
+
}
|
|
1100
|
+
const { href, text, onClick } = additionalInfo;
|
|
1101
|
+
if (href || onClick) {
|
|
1102
|
+
return /* @__PURE__ */ jsx24(
|
|
1103
|
+
ListItem4.AdditionalInfo,
|
|
1104
|
+
{
|
|
1105
|
+
action: {
|
|
1106
|
+
label: text,
|
|
1107
|
+
href,
|
|
1108
|
+
onClick,
|
|
1109
|
+
target: "_blank"
|
|
1110
|
+
}
|
|
1111
|
+
}
|
|
1112
|
+
);
|
|
1113
|
+
}
|
|
1114
|
+
return /* @__PURE__ */ jsx24(ListItem4.AdditionalInfo, { children: additionalInfo == null ? void 0 : additionalInfo.text });
|
|
1115
|
+
};
|
|
1116
|
+
|
|
1117
|
+
// ../renderers/src/utils/listItem/getCTAControl.tsx
|
|
1118
|
+
import { ListItem as ListItem5 } from "@transferwise/components";
|
|
1119
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1120
|
+
var getCTAControl = (callToAction, { ctaSecondary, fullyInteractive }) => {
|
|
1121
|
+
if (!callToAction) {
|
|
1122
|
+
return void 0;
|
|
1123
|
+
}
|
|
1124
|
+
const { accessibilityDescription, href, title, context, onClick } = callToAction;
|
|
1125
|
+
const { priority, sentiment } = getPriorityAndSentiment(ctaSecondary, context);
|
|
1126
|
+
if (href) {
|
|
1127
|
+
return /* @__PURE__ */ jsx25(
|
|
1128
|
+
ListItem5.Button,
|
|
1129
|
+
{
|
|
1130
|
+
href,
|
|
1131
|
+
target: "_blank",
|
|
1132
|
+
rel: "noopener noreferrer",
|
|
1133
|
+
partiallyInteractive: !fullyInteractive,
|
|
1134
|
+
priority,
|
|
1135
|
+
"aria-description": accessibilityDescription,
|
|
1136
|
+
sentiment,
|
|
1137
|
+
children: title
|
|
1138
|
+
}
|
|
1139
|
+
);
|
|
1140
|
+
}
|
|
1141
|
+
return /* @__PURE__ */ jsx25(
|
|
1142
|
+
ListItem5.Button,
|
|
1143
|
+
{
|
|
1144
|
+
"aria-description": accessibilityDescription,
|
|
1145
|
+
partiallyInteractive: !fullyInteractive,
|
|
1146
|
+
priority,
|
|
1147
|
+
sentiment,
|
|
1148
|
+
onClick,
|
|
1149
|
+
children: title
|
|
1150
|
+
}
|
|
1151
|
+
);
|
|
1152
|
+
};
|
|
1153
|
+
var getPriorityAndSentiment = (ctaSecondary, context) => {
|
|
1154
|
+
if (context === "negative") {
|
|
1155
|
+
return { priority: "secondary", sentiment: "negative" };
|
|
1156
|
+
}
|
|
1157
|
+
return { priority: ctaSecondary ? "secondary" : "secondary-neutral", sentiment: "default" };
|
|
1158
|
+
};
|
|
1159
|
+
|
|
1160
|
+
// ../renderers/src/utils/listItem/shouldUseAvatar.ts
|
|
1161
|
+
var shouldUseAvatar = (control, tags) => {
|
|
1162
|
+
var _a;
|
|
1163
|
+
return control === "with-avatar" || ((_a = tags == null ? void 0 : tags.includes("with-avatar")) != null ? _a : false);
|
|
1164
|
+
};
|
|
1165
|
+
|
|
1166
|
+
// ../renderers/src/CollectionRenderer.tsx
|
|
1167
|
+
import { useEffect as useEffect5, useRef as useRef2 } from "react";
|
|
1168
|
+
|
|
1169
|
+
// ../renderers/src/step/StepFooter.tsx
|
|
1170
|
+
import { Button as Button3 } from "@transferwise/components";
|
|
1171
|
+
import { useEffect as useEffect4, useRef, useState as useState4 } from "react";
|
|
1172
|
+
import { useIntl as useIntl3 } from "react-intl";
|
|
1173
|
+
|
|
1174
|
+
// ../renderers/src/messages/step.messages.ts
|
|
1175
|
+
import { defineMessages as defineMessages3 } from "react-intl";
|
|
1176
|
+
var step_messages_default = defineMessages3({
|
|
1177
|
+
scrollToBottom: {
|
|
1178
|
+
id: "df.wise.step.scrollToBottom",
|
|
1179
|
+
defaultMessage: "Scroll to bottom",
|
|
1180
|
+
description: "Label for a button that appears when the content of a step is too long and the user needs to scroll to the bottom to see all the content."
|
|
1181
|
+
}
|
|
1182
|
+
});
|
|
1183
|
+
|
|
1184
|
+
// ../renderers/src/step/StepFooter.tsx
|
|
1185
|
+
import { Fragment, jsx as jsx26, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1186
|
+
var SCROLL_TO_BOTTOM = "scroll-to-bottom";
|
|
1187
|
+
var StepFooter = ({ footer, tags }) => {
|
|
1188
|
+
if (tags == null ? void 0 : tags.includes(SCROLL_TO_BOTTOM)) {
|
|
1189
|
+
return /* @__PURE__ */ jsx26(FooterWithScrollButton, { footer });
|
|
1190
|
+
}
|
|
1191
|
+
return /* @__PURE__ */ jsx26(DefaultFooter, { footer });
|
|
1192
|
+
};
|
|
1193
|
+
var DefaultFooter = ({ footer }) => {
|
|
1194
|
+
const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
|
|
1195
|
+
return hasFooter ? /* @__PURE__ */ jsx26("div", { className: "df-step-fixed__footer", children: footer }) : void 0;
|
|
1196
|
+
};
|
|
1197
|
+
var FooterWithScrollButton = ({ footer }) => {
|
|
1198
|
+
const { formatMessage } = useIntl3();
|
|
1199
|
+
const endOfLayoutRef = useRef(null);
|
|
1200
|
+
const isElementVisible = useIsElementVisible(endOfLayoutRef);
|
|
1201
|
+
const scrollButton = /* @__PURE__ */ jsx26(
|
|
1202
|
+
Button3,
|
|
1203
|
+
{
|
|
1204
|
+
className: "m-b-1",
|
|
1205
|
+
v2: true,
|
|
1206
|
+
block: true,
|
|
1207
|
+
priority: "tertiary",
|
|
1208
|
+
onClick: () => {
|
|
1209
|
+
var _a;
|
|
1210
|
+
(_a = endOfLayoutRef.current) == null ? void 0 : _a.scrollIntoView({ behavior: "smooth" });
|
|
1211
|
+
},
|
|
1212
|
+
children: formatMessage(step_messages_default.scrollToBottom)
|
|
1213
|
+
}
|
|
1214
|
+
);
|
|
1215
|
+
const hasStepFooterContent = footer && Array.isArray(footer) && footer.length > 0;
|
|
1216
|
+
if (isElementVisible && !hasStepFooterContent) {
|
|
1217
|
+
return /* @__PURE__ */ jsx26("div", { ref: endOfLayoutRef, "aria-hidden": "true" });
|
|
1218
|
+
}
|
|
1219
|
+
return /* @__PURE__ */ jsxs4(Fragment, { children: [
|
|
1220
|
+
/* @__PURE__ */ jsx26("div", { ref: endOfLayoutRef, "aria-hidden": "true" }),
|
|
1221
|
+
/* @__PURE__ */ jsxs4("div", { className: "df-step-fixed__footer", children: [
|
|
1222
|
+
!isElementVisible && scrollButton,
|
|
1223
|
+
footer
|
|
1224
|
+
] })
|
|
1225
|
+
] });
|
|
1226
|
+
};
|
|
1227
|
+
var useIsElementVisible = (elementRef) => {
|
|
1228
|
+
const [isVisible, setIsVisible] = useState4(false);
|
|
1229
|
+
useEffect4(() => {
|
|
1230
|
+
const element = elementRef.current;
|
|
1231
|
+
if (!element) return;
|
|
1232
|
+
const observer = new IntersectionObserver(([entry]) => {
|
|
1233
|
+
setIsVisible(entry.isIntersecting);
|
|
1234
|
+
});
|
|
1235
|
+
observer.observe(element);
|
|
1236
|
+
return () => observer.disconnect();
|
|
1237
|
+
}, [elementRef]);
|
|
1238
|
+
return isVisible;
|
|
1239
|
+
};
|
|
1240
|
+
|
|
1241
|
+
// ../renderers/src/CollectionRenderer.tsx
|
|
1242
|
+
import { Search } from "@transferwise/icons";
|
|
1243
|
+
import { Fragment as Fragment2, jsx as jsx27, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1244
|
+
var CollectionRendererComponent = ({
|
|
1245
|
+
control,
|
|
1246
|
+
state,
|
|
1247
|
+
filters,
|
|
1248
|
+
search,
|
|
1249
|
+
tags,
|
|
1250
|
+
loadMore
|
|
1251
|
+
}) => {
|
|
1252
|
+
const endOfContentRef = useRef2(null);
|
|
1253
|
+
const isBottomVisible = useIsElementVisible(endOfContentRef);
|
|
1254
|
+
useEffect5(() => {
|
|
1255
|
+
if (isBottomVisible) {
|
|
1256
|
+
loadMore == null ? void 0 : loadMore();
|
|
1257
|
+
}
|
|
1258
|
+
}, [isBottomVisible]);
|
|
1259
|
+
return /* @__PURE__ */ jsxs5(Fragment2, { children: [
|
|
1260
|
+
/* @__PURE__ */ jsx27(FieldInput_default, { id: "search", description: "", validation: void 0, help: "", label: search.title, children: /* @__PURE__ */ jsx27(InputGroup, { addonStart: { content: /* @__PURE__ */ jsx27(Search, { size: 24 }) }, children: /* @__PURE__ */ jsx27(
|
|
1261
|
+
Input,
|
|
1262
|
+
{
|
|
1263
|
+
id: "search",
|
|
1264
|
+
name: "search",
|
|
1265
|
+
shape: "pill",
|
|
1266
|
+
placeholder: search.hint,
|
|
1267
|
+
type: "text",
|
|
1268
|
+
value: search.query,
|
|
1269
|
+
onChange: ({ currentTarget: { value } }) => {
|
|
1270
|
+
search.onChange(value);
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
) }) }),
|
|
1274
|
+
filters.map((filter) => {
|
|
1275
|
+
if (!filter.options) {
|
|
1276
|
+
return null;
|
|
1277
|
+
}
|
|
1278
|
+
return /* @__PURE__ */ jsx27(
|
|
1279
|
+
Chips,
|
|
1280
|
+
{
|
|
1281
|
+
className: "m-b-1",
|
|
1282
|
+
selected: filter.options.some((option) => option.selected) ? filter.options.filter((option) => option.selected).map((option) => option.id) : "",
|
|
1283
|
+
chips: [
|
|
1284
|
+
{
|
|
1285
|
+
value: "",
|
|
1286
|
+
// this is a placeholder for now...
|
|
1287
|
+
label: "All"
|
|
1288
|
+
},
|
|
1289
|
+
...filter.options.map((option) => ({
|
|
1290
|
+
value: option.id,
|
|
1291
|
+
label: option.title
|
|
1292
|
+
}))
|
|
1293
|
+
],
|
|
1294
|
+
onChange: (value) => {
|
|
1295
|
+
var _a, _b, _c;
|
|
1296
|
+
if (value.selectedValue === "") {
|
|
1297
|
+
(_a = filter.options) == null ? void 0 : _a.filter((option) => option.selected).map((option) => option == null ? void 0 : option.onSelect());
|
|
1298
|
+
return;
|
|
1299
|
+
}
|
|
1300
|
+
(_c = (_b = filter.options) == null ? void 0 : _b.find((option) => value.selectedValue === option.id)) == null ? void 0 : _c.onSelect();
|
|
1301
|
+
}
|
|
1302
|
+
},
|
|
1303
|
+
JSON.stringify(filter.options)
|
|
1304
|
+
);
|
|
1305
|
+
}),
|
|
1306
|
+
state.type === "collection-content" ? state.sections.map((section) => {
|
|
1307
|
+
return /* @__PURE__ */ jsxs5("div", { children: [
|
|
1308
|
+
/* @__PURE__ */ jsx27(Header, { title: section.title, callToAction: section.callToAction }),
|
|
1309
|
+
section.items.map((item) => {
|
|
1310
|
+
var _a, _b;
|
|
1311
|
+
const {
|
|
1312
|
+
title: itemTitle,
|
|
1313
|
+
description,
|
|
1314
|
+
supportingValues,
|
|
1315
|
+
media,
|
|
1316
|
+
additionalInfo,
|
|
1317
|
+
inlineAlert,
|
|
1318
|
+
callToAction: itemCallToAction,
|
|
1319
|
+
tags: itemTags
|
|
1320
|
+
} = item;
|
|
1321
|
+
const controlOptions = {
|
|
1322
|
+
ctaSecondary: (_a = itemTags == null ? void 0 : itemTags.includes("cta-secondary")) != null ? _a : false,
|
|
1323
|
+
fullyInteractive: (_b = (tags == null ? void 0 : tags.includes("fully-interactive")) && (additionalInfo == null ? void 0 : additionalInfo.onClick) == null) != null ? _b : false
|
|
1324
|
+
};
|
|
1325
|
+
return /* @__PURE__ */ jsx27(
|
|
1326
|
+
ListItem6,
|
|
1327
|
+
{
|
|
1328
|
+
title: itemTitle,
|
|
1329
|
+
subtitle: description,
|
|
1330
|
+
valueTitle: supportingValues == null ? void 0 : supportingValues.value,
|
|
1331
|
+
valueSubtitle: supportingValues == null ? void 0 : supportingValues.subvalue,
|
|
1332
|
+
media: getMedia(media, shouldUseAvatar(control, itemTags)),
|
|
1333
|
+
prompt: getInlineAlert(inlineAlert),
|
|
1334
|
+
additionalInfo: getAdditionalInfo(additionalInfo),
|
|
1335
|
+
control: getCTAControl(itemCallToAction, controlOptions)
|
|
1336
|
+
},
|
|
1337
|
+
itemTitle
|
|
1338
|
+
);
|
|
1339
|
+
})
|
|
1340
|
+
] }, section.id);
|
|
1341
|
+
}) : state.children,
|
|
1342
|
+
/* @__PURE__ */ jsx27("div", { ref: endOfContentRef, "aria-hidden": true })
|
|
1343
|
+
] });
|
|
1344
|
+
};
|
|
1345
|
+
var CollectionRenderer = {
|
|
1346
|
+
canRenderType: "collection",
|
|
1347
|
+
render: CollectionRendererComponent
|
|
1348
|
+
};
|
|
1349
|
+
var CollectionRenderer_default = CollectionRenderer;
|
|
1350
|
+
|
|
1065
1351
|
// ../renderers/src/ColumnsRenderer.tsx
|
|
1066
1352
|
var import_classnames3 = __toESM(require_classnames());
|
|
1067
|
-
import { jsx as
|
|
1353
|
+
import { jsx as jsx28, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1068
1354
|
var ColumnsRenderer = {
|
|
1069
1355
|
canRenderType: "columns",
|
|
1070
|
-
render: ({ bias, margin, startChildren, endChildren }) => /* @__PURE__ */
|
|
1356
|
+
render: ({ bias, margin, startChildren, endChildren }) => /* @__PURE__ */ jsxs6(
|
|
1071
1357
|
"div",
|
|
1072
1358
|
{
|
|
1073
1359
|
className: (0, import_classnames3.default)("df-columns-renderer-container", getMargin(margin), {
|
|
@@ -1075,8 +1361,8 @@ var ColumnsRenderer = {
|
|
|
1075
1361
|
"df-columns-renderer-bias-end": bias === "end"
|
|
1076
1362
|
}),
|
|
1077
1363
|
children: [
|
|
1078
|
-
/* @__PURE__ */
|
|
1079
|
-
/* @__PURE__ */
|
|
1364
|
+
/* @__PURE__ */ jsx28("div", { className: "df-columns-renderer-column", children: startChildren }),
|
|
1365
|
+
/* @__PURE__ */ jsx28("div", { className: "df-columns-renderer-column", children: endChildren })
|
|
1080
1366
|
]
|
|
1081
1367
|
}
|
|
1082
1368
|
)
|
|
@@ -1111,7 +1397,7 @@ var dateToDateString = (date) => {
|
|
|
1111
1397
|
};
|
|
1112
1398
|
|
|
1113
1399
|
// ../renderers/src/components/VariableDateInput.tsx
|
|
1114
|
-
import { jsx as
|
|
1400
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1115
1401
|
function VariableDateInput({
|
|
1116
1402
|
control,
|
|
1117
1403
|
inputProps
|
|
@@ -1127,7 +1413,7 @@ function VariableDateInput({
|
|
|
1127
1413
|
onFocus
|
|
1128
1414
|
} = inputProps;
|
|
1129
1415
|
if (control === "date-lookup") {
|
|
1130
|
-
return /* @__PURE__ */
|
|
1416
|
+
return /* @__PURE__ */ jsx29(
|
|
1131
1417
|
DateLookup,
|
|
1132
1418
|
{
|
|
1133
1419
|
value: dateStringToDateOrNull(inputProps.value),
|
|
@@ -1143,7 +1429,7 @@ function VariableDateInput({
|
|
|
1143
1429
|
}
|
|
1144
1430
|
);
|
|
1145
1431
|
}
|
|
1146
|
-
return /* @__PURE__ */
|
|
1432
|
+
return /* @__PURE__ */ jsx29(
|
|
1147
1433
|
DateInput,
|
|
1148
1434
|
__spreadProps(__spreadValues({}, inputProps), {
|
|
1149
1435
|
dayAutoComplete: getAutocompleteString(autoComplete, "day"),
|
|
@@ -1160,7 +1446,7 @@ var getAutocompleteString = (value, suffix) => {
|
|
|
1160
1446
|
var VariableDateInput_default = VariableDateInput;
|
|
1161
1447
|
|
|
1162
1448
|
// ../renderers/src/DateInputRenderer.tsx
|
|
1163
|
-
import { jsx as
|
|
1449
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
1164
1450
|
var DateInputRenderer = {
|
|
1165
1451
|
canRenderType: "input-date",
|
|
1166
1452
|
render: (props) => {
|
|
@@ -1185,7 +1471,7 @@ var DateInputRenderer = {
|
|
|
1185
1471
|
]);
|
|
1186
1472
|
const value = initialValue != null ? initialValue : "";
|
|
1187
1473
|
const inputProps = __spreadProps(__spreadValues({}, rest), { value, id });
|
|
1188
|
-
return /* @__PURE__ */
|
|
1474
|
+
return /* @__PURE__ */ jsx30(
|
|
1189
1475
|
FieldInput_default,
|
|
1190
1476
|
{
|
|
1191
1477
|
id,
|
|
@@ -1193,7 +1479,7 @@ var DateInputRenderer = {
|
|
|
1193
1479
|
description,
|
|
1194
1480
|
validation: validationState,
|
|
1195
1481
|
help,
|
|
1196
|
-
children: /* @__PURE__ */
|
|
1482
|
+
children: /* @__PURE__ */ jsx30(VariableDateInput_default, { control, inputProps })
|
|
1197
1483
|
}
|
|
1198
1484
|
);
|
|
1199
1485
|
}
|
|
@@ -1201,46 +1487,16 @@ var DateInputRenderer = {
|
|
|
1201
1487
|
var DateInputRenderer_default = DateInputRenderer;
|
|
1202
1488
|
|
|
1203
1489
|
// ../renderers/src/DecisionRenderer/DecisionRenderer.tsx
|
|
1204
|
-
import { ListItem as
|
|
1205
|
-
|
|
1206
|
-
// ../renderers/src/utils/listItem/getAdditionalInfo.tsx
|
|
1207
|
-
import { ListItem as ListItem4 } from "@transferwise/components";
|
|
1208
|
-
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1209
|
-
var getAdditionalInfo = (additionalInfo) => {
|
|
1210
|
-
if (!additionalInfo) {
|
|
1211
|
-
return void 0;
|
|
1212
|
-
}
|
|
1213
|
-
const { href, text, onClick } = additionalInfo;
|
|
1214
|
-
if (href || onClick) {
|
|
1215
|
-
return /* @__PURE__ */ jsx27(
|
|
1216
|
-
ListItem4.AdditionalInfo,
|
|
1217
|
-
{
|
|
1218
|
-
action: {
|
|
1219
|
-
label: text,
|
|
1220
|
-
href,
|
|
1221
|
-
onClick,
|
|
1222
|
-
target: "_blank"
|
|
1223
|
-
}
|
|
1224
|
-
}
|
|
1225
|
-
);
|
|
1226
|
-
}
|
|
1227
|
-
return /* @__PURE__ */ jsx27(ListItem4.AdditionalInfo, { children: additionalInfo == null ? void 0 : additionalInfo.text });
|
|
1228
|
-
};
|
|
1229
|
-
|
|
1230
|
-
// ../renderers/src/utils/listItem/shouldUseAvatar.ts
|
|
1231
|
-
var shouldUseAvatar = (control, tags) => {
|
|
1232
|
-
var _a;
|
|
1233
|
-
return control === "with-avatar" || ((_a = tags == null ? void 0 : tags.includes("with-avatar")) != null ? _a : false);
|
|
1234
|
-
};
|
|
1490
|
+
import { ListItem as ListItem7 } from "@transferwise/components";
|
|
1235
1491
|
|
|
1236
1492
|
// ../renderers/src/DecisionRenderer/DecisionWrapper.tsx
|
|
1237
|
-
import { Header as
|
|
1238
|
-
import { useState as
|
|
1239
|
-
import { useIntl as
|
|
1493
|
+
import { Header as Header3, SearchInput } from "@transferwise/components";
|
|
1494
|
+
import { useState as useState5 } from "react";
|
|
1495
|
+
import { useIntl as useIntl5 } from "react-intl";
|
|
1240
1496
|
|
|
1241
1497
|
// ../renderers/src/messages/filter.messages.ts
|
|
1242
|
-
import { defineMessages as
|
|
1243
|
-
var filter_messages_default =
|
|
1498
|
+
import { defineMessages as defineMessages4 } from "react-intl";
|
|
1499
|
+
var filter_messages_default = defineMessages4({
|
|
1244
1500
|
placeholder: {
|
|
1245
1501
|
id: "df.wise.filter.placeholder",
|
|
1246
1502
|
defaultMessage: "Start typing to search",
|
|
@@ -1306,12 +1562,12 @@ function filterAndSortDecisionOptions(selectOptions, query) {
|
|
|
1306
1562
|
var normalizeAndRemoveAccents = (text) => text.trim().toLowerCase().normalize("NFKD").replace(new RegExp("\\p{Diacritic}", "gu"), "");
|
|
1307
1563
|
|
|
1308
1564
|
// ../renderers/src/DecisionRenderer/GroupedDecisionList.tsx
|
|
1309
|
-
import { Header, Section } from "@transferwise/components";
|
|
1310
|
-
import { useIntl as
|
|
1565
|
+
import { Header as Header2, Section } from "@transferwise/components";
|
|
1566
|
+
import { useIntl as useIntl4 } from "react-intl";
|
|
1311
1567
|
|
|
1312
1568
|
// ../renderers/src/messages/group.messages.ts
|
|
1313
|
-
import { defineMessages as
|
|
1314
|
-
var group_messages_default =
|
|
1569
|
+
import { defineMessages as defineMessages5 } from "react-intl";
|
|
1570
|
+
var group_messages_default = defineMessages5({
|
|
1315
1571
|
all: {
|
|
1316
1572
|
id: "df.wise.group.all",
|
|
1317
1573
|
defaultMessage: "All",
|
|
@@ -1345,19 +1601,19 @@ var getGroupsFromTags = (knownTags, items) => {
|
|
|
1345
1601
|
};
|
|
1346
1602
|
|
|
1347
1603
|
// ../renderers/src/DecisionRenderer/GroupedDecisionList.tsx
|
|
1348
|
-
import { Fragment, jsx as
|
|
1604
|
+
import { Fragment as Fragment3, jsx as jsx31, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1349
1605
|
var groupingTags = Object.keys(group_messages_default).filter((key) => key !== "all");
|
|
1350
1606
|
var isGroupedDecision = (options) => {
|
|
1351
1607
|
return getGroupsFromTags(groupingTags, options).length > 0;
|
|
1352
1608
|
};
|
|
1353
1609
|
var GroupedDecisionList = (_a) => {
|
|
1354
1610
|
var _b = _a, { renderDecisionList: renderDecisionList2 } = _b, rest = __objRest(_b, ["renderDecisionList"]);
|
|
1355
|
-
const { formatMessage } =
|
|
1611
|
+
const { formatMessage } = useIntl4();
|
|
1356
1612
|
const { options } = rest;
|
|
1357
1613
|
const itemsByTag = [...getGroupsFromTags(groupingTags, options), { tag: "all", items: options }];
|
|
1358
|
-
return /* @__PURE__ */
|
|
1359
|
-
/* @__PURE__ */
|
|
1360
|
-
|
|
1614
|
+
return /* @__PURE__ */ jsx31(Fragment3, { children: itemsByTag.map(({ tag, items }) => /* @__PURE__ */ jsxs7(Section, { children: [
|
|
1615
|
+
/* @__PURE__ */ jsx31(
|
|
1616
|
+
Header2,
|
|
1361
1617
|
{
|
|
1362
1618
|
as: "h2",
|
|
1363
1619
|
title: tag in group_messages_default ? formatMessage(group_messages_default[tag]) : tag
|
|
@@ -1368,25 +1624,25 @@ var GroupedDecisionList = (_a) => {
|
|
|
1368
1624
|
};
|
|
1369
1625
|
|
|
1370
1626
|
// ../renderers/src/DecisionRenderer/DecisionWrapper.tsx
|
|
1371
|
-
import { Fragment as
|
|
1627
|
+
import { Fragment as Fragment4, jsx as jsx32, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1372
1628
|
var DecisionWrapper = (props) => {
|
|
1373
|
-
return /* @__PURE__ */
|
|
1374
|
-
props.title && /* @__PURE__ */
|
|
1375
|
-
props.control === "filtered" ? /* @__PURE__ */
|
|
1629
|
+
return /* @__PURE__ */ jsxs8("div", { className: getMargin(props.margin), children: [
|
|
1630
|
+
props.title && /* @__PURE__ */ jsx32(Header3, { as: "h2", title: props.title }),
|
|
1631
|
+
props.control === "filtered" ? /* @__PURE__ */ jsx32(FilteredDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ jsx32(UnfilteredDecisionList, __spreadValues({}, props))
|
|
1376
1632
|
] });
|
|
1377
1633
|
};
|
|
1378
1634
|
var UnfilteredDecisionList = (_a) => {
|
|
1379
1635
|
var _b = _a, { renderDecisionList: renderDecisionList2 } = _b, rest = __objRest(_b, ["renderDecisionList"]);
|
|
1380
|
-
return isGroupedDecision(rest.options) ? /* @__PURE__ */
|
|
1636
|
+
return isGroupedDecision(rest.options) ? /* @__PURE__ */ jsx32(GroupedDecisionList, __spreadProps(__spreadValues({}, rest), { renderDecisionList: renderDecisionList2 })) : renderDecisionList2(rest);
|
|
1381
1637
|
};
|
|
1382
1638
|
var FilteredDecisionList = (props) => {
|
|
1383
|
-
const { formatMessage } =
|
|
1384
|
-
const [query, setQuery] =
|
|
1639
|
+
const { formatMessage } = useIntl5();
|
|
1640
|
+
const [query, setQuery] = useState5("");
|
|
1385
1641
|
const { control, options, renderDecisionList: renderDecisionList2 } = props;
|
|
1386
1642
|
const filteredOptions = (query == null ? void 0 : query.length) > 0 ? filterAndSortDecisionOptions(options, query) : options;
|
|
1387
1643
|
const isGrouped = isGroupedDecision(options);
|
|
1388
|
-
return /* @__PURE__ */
|
|
1389
|
-
/* @__PURE__ */
|
|
1644
|
+
return /* @__PURE__ */ jsxs8(Fragment4, { children: [
|
|
1645
|
+
/* @__PURE__ */ jsx32(
|
|
1390
1646
|
SearchInput,
|
|
1391
1647
|
{
|
|
1392
1648
|
placeholder: formatMessage(filter_messages_default.placeholder),
|
|
@@ -1398,25 +1654,25 @@ var FilteredDecisionList = (props) => {
|
|
|
1398
1654
|
}
|
|
1399
1655
|
}
|
|
1400
1656
|
),
|
|
1401
|
-
isGrouped && query.length === 0 ? /* @__PURE__ */
|
|
1402
|
-
query.length > 0 && /* @__PURE__ */
|
|
1657
|
+
isGrouped && query.length === 0 ? /* @__PURE__ */ jsx32(GroupedDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ jsxs8(Fragment4, { children: [
|
|
1658
|
+
query.length > 0 && /* @__PURE__ */ jsx32(Header3, { as: "h2", title: formatMessage(filter_messages_default.results), className: "m-t-4" }),
|
|
1403
1659
|
filteredOptions.length > 0 ? renderDecisionList2({
|
|
1404
1660
|
control,
|
|
1405
1661
|
className: query.length === 0 ? "m-t-3" : "",
|
|
1406
1662
|
options: filteredOptions
|
|
1407
|
-
}) : /* @__PURE__ */
|
|
1663
|
+
}) : /* @__PURE__ */ jsx32("p", { children: formatMessage(filter_messages_default.noResults) })
|
|
1408
1664
|
] })
|
|
1409
1665
|
] });
|
|
1410
1666
|
};
|
|
1411
1667
|
|
|
1412
1668
|
// ../renderers/src/DecisionRenderer/DecisionRenderer.tsx
|
|
1413
|
-
import { Fragment as
|
|
1669
|
+
import { Fragment as Fragment5, jsx as jsx33 } from "react/jsx-runtime";
|
|
1414
1670
|
var DecisionRenderer = {
|
|
1415
1671
|
canRenderType: "decision",
|
|
1416
|
-
render: (props) => /* @__PURE__ */
|
|
1672
|
+
render: (props) => /* @__PURE__ */ jsx33(DecisionWrapper, __spreadProps(__spreadValues({}, props), { renderDecisionList }))
|
|
1417
1673
|
};
|
|
1418
1674
|
var renderDecisionList = ({ options, control }) => {
|
|
1419
|
-
return /* @__PURE__ */
|
|
1675
|
+
return /* @__PURE__ */ jsx33(Fragment5, { children: options.map((_a) => {
|
|
1420
1676
|
var _b = _a, { onClick } = _b, rest = __objRest(_b, ["onClick"]);
|
|
1421
1677
|
const {
|
|
1422
1678
|
description,
|
|
@@ -1429,8 +1685,8 @@ var renderDecisionList = ({ options, control }) => {
|
|
|
1429
1685
|
supportingValues,
|
|
1430
1686
|
tags
|
|
1431
1687
|
} = rest;
|
|
1432
|
-
return /* @__PURE__ */
|
|
1433
|
-
|
|
1688
|
+
return /* @__PURE__ */ jsx33(
|
|
1689
|
+
ListItem7,
|
|
1434
1690
|
{
|
|
1435
1691
|
title: itemTitle,
|
|
1436
1692
|
subtitle: description,
|
|
@@ -1441,7 +1697,7 @@ var renderDecisionList = ({ options, control }) => {
|
|
|
1441
1697
|
media: getMedia(media, shouldUseAvatar(control, tags)),
|
|
1442
1698
|
prompt: getInlineAlert(inlineAlert),
|
|
1443
1699
|
additionalInfo: additionalText ? getAdditionalInfo({ text: additionalText }) : void 0,
|
|
1444
|
-
control: href ? /* @__PURE__ */
|
|
1700
|
+
control: href ? /* @__PURE__ */ jsx33(ListItem7.Navigation, { href, target: "_blank" }) : /* @__PURE__ */ jsx33(ListItem7.Navigation, { onClick })
|
|
1445
1701
|
},
|
|
1446
1702
|
JSON.stringify(rest)
|
|
1447
1703
|
);
|
|
@@ -1451,7 +1707,7 @@ var DecisionRenderer_default = DecisionRenderer;
|
|
|
1451
1707
|
|
|
1452
1708
|
// ../renderers/src/DividerRenderer.tsx
|
|
1453
1709
|
import { Divider } from "@transferwise/components";
|
|
1454
|
-
import { jsx as
|
|
1710
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
1455
1711
|
var mapControlToLevel = (control) => {
|
|
1456
1712
|
switch (control) {
|
|
1457
1713
|
case "section":
|
|
@@ -1464,16 +1720,16 @@ var mapControlToLevel = (control) => {
|
|
|
1464
1720
|
};
|
|
1465
1721
|
var DividerRenderer = {
|
|
1466
1722
|
canRenderType: "divider",
|
|
1467
|
-
render: ({ margin, control }) => /* @__PURE__ */
|
|
1723
|
+
render: ({ margin, control }) => /* @__PURE__ */ jsx34(Divider, { className: `m-t-0 d-block ${getMargin(margin)}`, level: mapControlToLevel(control) })
|
|
1468
1724
|
};
|
|
1469
1725
|
var DividerRenderer_default = DividerRenderer;
|
|
1470
1726
|
|
|
1471
1727
|
// ../renderers/src/ExternalConfirmationRenderer.tsx
|
|
1472
|
-
import { Button as
|
|
1728
|
+
import { Button as Button4, Markdown as Markdown2, Modal } from "@transferwise/components";
|
|
1473
1729
|
|
|
1474
1730
|
// ../renderers/src/messages/external-confirmation.messages.ts
|
|
1475
|
-
import { defineMessages as
|
|
1476
|
-
var external_confirmation_messages_default =
|
|
1731
|
+
import { defineMessages as defineMessages6 } from "react-intl";
|
|
1732
|
+
var external_confirmation_messages_default = defineMessages6({
|
|
1477
1733
|
title: {
|
|
1478
1734
|
id: "df.wise.ExternalConfirmation.title",
|
|
1479
1735
|
defaultMessage: "Please confirm",
|
|
@@ -1497,9 +1753,9 @@ var external_confirmation_messages_default = defineMessages5({
|
|
|
1497
1753
|
});
|
|
1498
1754
|
|
|
1499
1755
|
// ../renderers/src/ExternalConfirmationRenderer.tsx
|
|
1500
|
-
import { useIntl as
|
|
1501
|
-
import { useEffect as
|
|
1502
|
-
import { Fragment as
|
|
1756
|
+
import { useIntl as useIntl6 } from "react-intl";
|
|
1757
|
+
import { useEffect as useEffect6 } from "react";
|
|
1758
|
+
import { Fragment as Fragment6, jsx as jsx35, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1503
1759
|
var ExternalConfirmationRenderer = {
|
|
1504
1760
|
canRenderType: "external-confirmation",
|
|
1505
1761
|
render: ExternalConfirmationRendererComponent
|
|
@@ -1510,20 +1766,20 @@ function ExternalConfirmationRendererComponent({
|
|
|
1510
1766
|
open,
|
|
1511
1767
|
onCancel
|
|
1512
1768
|
}) {
|
|
1513
|
-
const { formatMessage } =
|
|
1514
|
-
|
|
1769
|
+
const { formatMessage } = useIntl6();
|
|
1770
|
+
useEffect6(() => {
|
|
1515
1771
|
open();
|
|
1516
1772
|
}, []);
|
|
1517
|
-
return /* @__PURE__ */
|
|
1773
|
+
return /* @__PURE__ */ jsx35(
|
|
1518
1774
|
Modal,
|
|
1519
1775
|
{
|
|
1520
1776
|
open: visible,
|
|
1521
1777
|
title: formatMessage(external_confirmation_messages_default.title),
|
|
1522
|
-
body: /* @__PURE__ */
|
|
1523
|
-
/* @__PURE__ */
|
|
1524
|
-
/* @__PURE__ */
|
|
1525
|
-
/* @__PURE__ */
|
|
1526
|
-
|
|
1778
|
+
body: /* @__PURE__ */ jsxs9(Fragment6, { children: [
|
|
1779
|
+
/* @__PURE__ */ jsx35(Markdown2, { config: { link: { target: "_blank" } }, className: "text-xs-center m-b-5", children: formatMessage(external_confirmation_messages_default.description, { origin: getOrigin(url) }) }),
|
|
1780
|
+
/* @__PURE__ */ jsx35("div", { className: "df-box-renderer-fixed-width", children: /* @__PURE__ */ jsxs9("div", { className: "df-box-renderer-width-lg", children: [
|
|
1781
|
+
/* @__PURE__ */ jsx35(
|
|
1782
|
+
Button4,
|
|
1527
1783
|
{
|
|
1528
1784
|
v2: true,
|
|
1529
1785
|
block: true,
|
|
@@ -1536,7 +1792,7 @@ function ExternalConfirmationRendererComponent({
|
|
|
1536
1792
|
children: formatMessage(external_confirmation_messages_default.open)
|
|
1537
1793
|
}
|
|
1538
1794
|
),
|
|
1539
|
-
/* @__PURE__ */
|
|
1795
|
+
/* @__PURE__ */ jsx35(Button4, { v2: true, block: true, className: "m-b-2", priority: "tertiary", size: "md", onClick: onCancel, children: formatMessage(external_confirmation_messages_default.cancel) })
|
|
1540
1796
|
] }) })
|
|
1541
1797
|
] }),
|
|
1542
1798
|
onClose: onCancel
|
|
@@ -1553,27 +1809,27 @@ function getOrigin(url) {
|
|
|
1553
1809
|
var ExternalConfirmationRenderer_default = ExternalConfirmationRenderer;
|
|
1554
1810
|
|
|
1555
1811
|
// ../renderers/src/FormRenderer.tsx
|
|
1556
|
-
import { jsx as
|
|
1812
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
1557
1813
|
var FormRenderer = {
|
|
1558
1814
|
canRenderType: "form",
|
|
1559
|
-
render: ({ children, margin }) => /* @__PURE__ */
|
|
1815
|
+
render: ({ children, margin }) => /* @__PURE__ */ jsx36("div", { className: getMargin(margin), children })
|
|
1560
1816
|
};
|
|
1561
1817
|
var FormRenderer_default = FormRenderer;
|
|
1562
1818
|
|
|
1563
1819
|
// ../renderers/src/FormSectionRenderer.tsx
|
|
1564
|
-
import { Header as
|
|
1565
|
-
import { jsx as
|
|
1820
|
+
import { Header as Header4 } from "@transferwise/components";
|
|
1821
|
+
import { jsx as jsx37, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1566
1822
|
var FormSectionRenderer = {
|
|
1567
1823
|
canRenderType: "form-section",
|
|
1568
|
-
render: ({ title, description, children }) => /* @__PURE__ */
|
|
1569
|
-
title && /* @__PURE__ */
|
|
1570
|
-
|
|
1824
|
+
render: ({ title, description, children }) => /* @__PURE__ */ jsxs10("fieldset", { children: [
|
|
1825
|
+
title && /* @__PURE__ */ jsx37(
|
|
1826
|
+
Header4,
|
|
1571
1827
|
{
|
|
1572
1828
|
as: "h2",
|
|
1573
1829
|
title
|
|
1574
1830
|
}
|
|
1575
1831
|
),
|
|
1576
|
-
description && /* @__PURE__ */
|
|
1832
|
+
description && /* @__PURE__ */ jsx37("p", { children: description }),
|
|
1577
1833
|
children
|
|
1578
1834
|
] })
|
|
1579
1835
|
};
|
|
@@ -1581,18 +1837,18 @@ var FormSectionRenderer_default = FormSectionRenderer;
|
|
|
1581
1837
|
|
|
1582
1838
|
// ../renderers/src/HeadingRenderer.tsx
|
|
1583
1839
|
import { Display, Title } from "@transferwise/components";
|
|
1584
|
-
import { jsx as
|
|
1840
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
1585
1841
|
var HeadingRenderer = {
|
|
1586
1842
|
canRenderType: "heading",
|
|
1587
|
-
render: (props) => /* @__PURE__ */
|
|
1843
|
+
render: (props) => /* @__PURE__ */ jsx38(Heading, __spreadValues({}, props))
|
|
1588
1844
|
};
|
|
1589
1845
|
function Heading(props) {
|
|
1590
1846
|
const { text, size, align, margin, control } = props;
|
|
1591
1847
|
const className = getTextAlignmentAndMargin({ align, margin });
|
|
1592
|
-
return control === "display" ? /* @__PURE__ */
|
|
1848
|
+
return control === "display" ? /* @__PURE__ */ jsx38(DisplayHeading, { size, text, className }) : /* @__PURE__ */ jsx38(StandardHeading, { size, text, className });
|
|
1593
1849
|
}
|
|
1594
1850
|
function DisplayHeading({ size, text, className }) {
|
|
1595
|
-
return /* @__PURE__ */
|
|
1851
|
+
return /* @__PURE__ */ jsx38(Display, { type: getDisplayType(size), className, children: text });
|
|
1596
1852
|
}
|
|
1597
1853
|
var getDisplayType = (size) => {
|
|
1598
1854
|
switch (size) {
|
|
@@ -1608,7 +1864,7 @@ var getDisplayType = (size) => {
|
|
|
1608
1864
|
}
|
|
1609
1865
|
};
|
|
1610
1866
|
function StandardHeading({ size, text, className }) {
|
|
1611
|
-
return /* @__PURE__ */
|
|
1867
|
+
return /* @__PURE__ */ jsx38(Title, { type: getTitleTypeBySize(size), className, children: text });
|
|
1612
1868
|
}
|
|
1613
1869
|
var getTitleTypeBySize = (size) => {
|
|
1614
1870
|
var _a;
|
|
@@ -1625,7 +1881,7 @@ var HeadingRenderer_default = HeadingRenderer;
|
|
|
1625
1881
|
|
|
1626
1882
|
// ../renderers/src/ImageRenderer/UrlImage.tsx
|
|
1627
1883
|
import { Image } from "@transferwise/components";
|
|
1628
|
-
import { useEffect as
|
|
1884
|
+
import { useEffect as useEffect7, useState as useState6 } from "react";
|
|
1629
1885
|
|
|
1630
1886
|
// ../renderers/src/utils/api-utils.ts
|
|
1631
1887
|
function isRelativePath(url = "") {
|
|
@@ -1635,7 +1891,7 @@ function isRelativePath(url = "") {
|
|
|
1635
1891
|
}
|
|
1636
1892
|
|
|
1637
1893
|
// ../renderers/src/ImageRenderer/UrlImage.tsx
|
|
1638
|
-
import { jsx as
|
|
1894
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
1639
1895
|
function UrlImage({
|
|
1640
1896
|
accessibilityDescription,
|
|
1641
1897
|
align,
|
|
@@ -1644,13 +1900,13 @@ function UrlImage({
|
|
|
1644
1900
|
uri,
|
|
1645
1901
|
httpClient
|
|
1646
1902
|
}) {
|
|
1647
|
-
const [imageSource, setImageSource] =
|
|
1648
|
-
|
|
1903
|
+
const [imageSource, setImageSource] = useState6("");
|
|
1904
|
+
useEffect7(() => {
|
|
1649
1905
|
if (!uri.startsWith("urn:")) {
|
|
1650
1906
|
void getImageSource(httpClient, uri).then(setImageSource);
|
|
1651
1907
|
}
|
|
1652
1908
|
}, [uri, httpClient]);
|
|
1653
|
-
return /* @__PURE__ */
|
|
1909
|
+
return /* @__PURE__ */ jsx39("div", { className: `df-image ${align} ${size || "md"} ${getMargin(margin)}`, children: /* @__PURE__ */ jsx39(
|
|
1654
1910
|
Image,
|
|
1655
1911
|
{
|
|
1656
1912
|
className: "df-reserve-space",
|
|
@@ -1694,7 +1950,7 @@ var getImageSource = async (httpClient, imageUrl) => {
|
|
|
1694
1950
|
};
|
|
1695
1951
|
|
|
1696
1952
|
// ../renderers/src/ImageRenderer/UrnFlagImage.tsx
|
|
1697
|
-
import { jsx as
|
|
1953
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
1698
1954
|
var maxFlagSize = 600;
|
|
1699
1955
|
function UrnFlagImage({
|
|
1700
1956
|
accessibilityDescription,
|
|
@@ -1703,7 +1959,7 @@ function UrnFlagImage({
|
|
|
1703
1959
|
size,
|
|
1704
1960
|
uri
|
|
1705
1961
|
}) {
|
|
1706
|
-
return /* @__PURE__ */
|
|
1962
|
+
return /* @__PURE__ */ jsx40("div", { className: `df-image ${align} ${size || "md"} ${getMargin(margin)}`, children: /* @__PURE__ */ jsx40(UrnFlag, { size: maxFlagSize, urn: uri, accessibilityDescription }) });
|
|
1707
1963
|
}
|
|
1708
1964
|
|
|
1709
1965
|
// ../renderers/src/ImageRenderer/UrnIllustration.tsx
|
|
@@ -1711,7 +1967,7 @@ import {
|
|
|
1711
1967
|
Illustration,
|
|
1712
1968
|
isIllustrationSupport3D
|
|
1713
1969
|
} from "@wise/art";
|
|
1714
|
-
import { useState as
|
|
1970
|
+
import { useState as useState7 } from "react";
|
|
1715
1971
|
|
|
1716
1972
|
// ../renderers/src/ImageRenderer/isAnimated.ts
|
|
1717
1973
|
var isAnimated = (uri) => {
|
|
@@ -1722,7 +1978,7 @@ var isAnimated = (uri) => {
|
|
|
1722
1978
|
// ../renderers/src/ImageRenderer/SafeIllustration3D.tsx
|
|
1723
1979
|
import { Illustration3D } from "@wise/art";
|
|
1724
1980
|
import { Component } from "react";
|
|
1725
|
-
import { jsx as
|
|
1981
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
1726
1982
|
var Illustration3DErrorBoundary = class extends Component {
|
|
1727
1983
|
constructor(props) {
|
|
1728
1984
|
super(props);
|
|
@@ -1746,12 +2002,12 @@ var SafeIllustration3D = ({
|
|
|
1746
2002
|
size,
|
|
1747
2003
|
onError
|
|
1748
2004
|
}) => {
|
|
1749
|
-
return /* @__PURE__ */
|
|
2005
|
+
return /* @__PURE__ */ jsx41(Illustration3DErrorBoundary, { onError, children: /* @__PURE__ */ jsx41(Illustration3D, { name, size }) });
|
|
1750
2006
|
};
|
|
1751
2007
|
var SafeIllustration3D_default = SafeIllustration3D;
|
|
1752
2008
|
|
|
1753
2009
|
// ../renderers/src/ImageRenderer/UrnIllustration.tsx
|
|
1754
|
-
import { jsx as
|
|
2010
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
1755
2011
|
var urnPrefix = "urn:wise:illustrations:";
|
|
1756
2012
|
var isUrnIllustration = (uri) => uri.startsWith(urnPrefix);
|
|
1757
2013
|
function UrnIllustration({
|
|
@@ -1761,12 +2017,12 @@ function UrnIllustration({
|
|
|
1761
2017
|
size,
|
|
1762
2018
|
uri
|
|
1763
2019
|
}) {
|
|
1764
|
-
const [has3DFailed, setHas3DFailed] =
|
|
2020
|
+
const [has3DFailed, setHas3DFailed] = useState7(false);
|
|
1765
2021
|
const illustrationSize = getIllustrationSize(size);
|
|
1766
2022
|
const illustrationName = getIllustrationName(uri);
|
|
1767
2023
|
const illustration3DName = getIllustration3DName(uri);
|
|
1768
2024
|
if (illustration3DName && isAnimated(uri) && !has3DFailed) {
|
|
1769
|
-
return /* @__PURE__ */
|
|
2025
|
+
return /* @__PURE__ */ jsx42("div", { className: `df-image ${align} ${getMargin(margin)}`, children: /* @__PURE__ */ jsx42(
|
|
1770
2026
|
SafeIllustration3D_default,
|
|
1771
2027
|
{
|
|
1772
2028
|
name: illustration3DName,
|
|
@@ -1775,7 +2031,7 @@ function UrnIllustration({
|
|
|
1775
2031
|
}
|
|
1776
2032
|
) });
|
|
1777
2033
|
}
|
|
1778
|
-
return /* @__PURE__ */
|
|
2034
|
+
return /* @__PURE__ */ jsx42("div", { className: `df-image ${align} ${getMargin(margin)}`, children: /* @__PURE__ */ jsx42(
|
|
1779
2035
|
Illustration,
|
|
1780
2036
|
{
|
|
1781
2037
|
className: "df-illustration",
|
|
@@ -1795,32 +2051,32 @@ var getIllustration3DName = (uri) => {
|
|
|
1795
2051
|
};
|
|
1796
2052
|
|
|
1797
2053
|
// ../renderers/src/ImageRenderer/UrnImage.tsx
|
|
1798
|
-
import { jsx as
|
|
2054
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
1799
2055
|
var isUrnImage = (uri) => uri.startsWith("urn:");
|
|
1800
2056
|
function UrnImage(props) {
|
|
1801
2057
|
const { uri } = props;
|
|
1802
2058
|
if (isUrnIllustration(uri)) {
|
|
1803
|
-
return /* @__PURE__ */
|
|
2059
|
+
return /* @__PURE__ */ jsx43(UrnIllustration, __spreadValues({}, props));
|
|
1804
2060
|
}
|
|
1805
2061
|
if (isUrnFlag(uri)) {
|
|
1806
|
-
return /* @__PURE__ */
|
|
2062
|
+
return /* @__PURE__ */ jsx43(UrnFlagImage, __spreadValues({}, props));
|
|
1807
2063
|
}
|
|
1808
2064
|
return null;
|
|
1809
2065
|
}
|
|
1810
2066
|
|
|
1811
2067
|
// ../renderers/src/ImageRenderer/ImageRenderer.tsx
|
|
1812
|
-
import { jsx as
|
|
2068
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
1813
2069
|
var ImageRenderer = {
|
|
1814
2070
|
canRenderType: "image",
|
|
1815
|
-
render: (props) => isUrnImage(props.uri) ? /* @__PURE__ */
|
|
2071
|
+
render: (props) => isUrnImage(props.uri) ? /* @__PURE__ */ jsx44(UrnImage, __spreadValues({}, props)) : /* @__PURE__ */ jsx44(UrlImage, __spreadValues({}, props))
|
|
1816
2072
|
};
|
|
1817
2073
|
|
|
1818
2074
|
// ../renderers/src/ImageRenderer/index.tsx
|
|
1819
2075
|
var ImageRenderer_default = ImageRenderer;
|
|
1820
2076
|
|
|
1821
2077
|
// ../renderers/src/InstructionsRenderer.tsx
|
|
1822
|
-
import { Header as
|
|
1823
|
-
import { jsx as
|
|
2078
|
+
import { Header as Header5, InstructionsList } from "@transferwise/components";
|
|
2079
|
+
import { jsx as jsx45, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1824
2080
|
var doContext = ["positive", "neutral"];
|
|
1825
2081
|
var dontContext = ["warning", "negative"];
|
|
1826
2082
|
var InstructionsRenderer = {
|
|
@@ -1828,16 +2084,16 @@ var InstructionsRenderer = {
|
|
|
1828
2084
|
render: ({ items, margin, title }) => {
|
|
1829
2085
|
const dos = items.filter((item) => doContext.includes(item.context)).map(({ text }) => text);
|
|
1830
2086
|
const donts = items.filter((item) => dontContext.includes(item.context)).map(({ text }) => text);
|
|
1831
|
-
return /* @__PURE__ */
|
|
1832
|
-
title ? /* @__PURE__ */
|
|
1833
|
-
/* @__PURE__ */
|
|
2087
|
+
return /* @__PURE__ */ jsxs11("div", { className: getMargin(margin), children: [
|
|
2088
|
+
title ? /* @__PURE__ */ jsx45(Header5, { title }) : null,
|
|
2089
|
+
/* @__PURE__ */ jsx45(InstructionsList, { dos, donts })
|
|
1834
2090
|
] });
|
|
1835
2091
|
}
|
|
1836
2092
|
};
|
|
1837
2093
|
var InstructionsRenderer_default = InstructionsRenderer;
|
|
1838
2094
|
|
|
1839
2095
|
// ../renderers/src/IntegerInputRenderer.tsx
|
|
1840
|
-
import { Input, InputGroup } from "@transferwise/components";
|
|
2096
|
+
import { Input as Input2, InputGroup as InputGroup2 } from "@transferwise/components";
|
|
1841
2097
|
|
|
1842
2098
|
// ../renderers/src/utils/input-utils.ts
|
|
1843
2099
|
var onWheel = (event) => {
|
|
@@ -1862,7 +2118,7 @@ function pick(obj, ...keys) {
|
|
|
1862
2118
|
}
|
|
1863
2119
|
|
|
1864
2120
|
// ../renderers/src/IntegerInputRenderer.tsx
|
|
1865
|
-
import { jsx as
|
|
2121
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
1866
2122
|
var IntegerInputRenderer = {
|
|
1867
2123
|
canRenderType: "input-integer",
|
|
1868
2124
|
render: (props) => {
|
|
@@ -1877,7 +2133,7 @@ var IntegerInputRenderer = {
|
|
|
1877
2133
|
"maximum",
|
|
1878
2134
|
"minimum"
|
|
1879
2135
|
);
|
|
1880
|
-
return /* @__PURE__ */
|
|
2136
|
+
return /* @__PURE__ */ jsx46(
|
|
1881
2137
|
FieldInput_default,
|
|
1882
2138
|
{
|
|
1883
2139
|
id,
|
|
@@ -1885,8 +2141,8 @@ var IntegerInputRenderer = {
|
|
|
1885
2141
|
description,
|
|
1886
2142
|
validation: validationState,
|
|
1887
2143
|
help,
|
|
1888
|
-
children: /* @__PURE__ */
|
|
1889
|
-
|
|
2144
|
+
children: /* @__PURE__ */ jsx46(InputGroup2, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx46(
|
|
2145
|
+
Input2,
|
|
1890
2146
|
__spreadValues({
|
|
1891
2147
|
id,
|
|
1892
2148
|
name: id,
|
|
@@ -1908,55 +2164,12 @@ var IntegerInputRenderer = {
|
|
|
1908
2164
|
var IntegerInputRenderer_default = IntegerInputRenderer;
|
|
1909
2165
|
|
|
1910
2166
|
// ../renderers/src/ListRenderer.tsx
|
|
1911
|
-
import { ListItem as
|
|
1912
|
-
|
|
1913
|
-
// ../renderers/src/utils/listItem/getCTAControl.tsx
|
|
1914
|
-
import { ListItem as ListItem6 } from "@transferwise/components";
|
|
1915
|
-
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
1916
|
-
var getCTAControl = (callToAction, { ctaSecondary, fullyInteractive }) => {
|
|
1917
|
-
if (!callToAction) {
|
|
1918
|
-
return void 0;
|
|
1919
|
-
}
|
|
1920
|
-
const { accessibilityDescription, href, title, context, onClick } = callToAction;
|
|
1921
|
-
const { priority, sentiment } = getPriorityAndSentiment(ctaSecondary, context);
|
|
1922
|
-
if (href) {
|
|
1923
|
-
return /* @__PURE__ */ jsx44(
|
|
1924
|
-
ListItem6.Button,
|
|
1925
|
-
{
|
|
1926
|
-
href,
|
|
1927
|
-
target: "_blank",
|
|
1928
|
-
rel: "noopener noreferrer",
|
|
1929
|
-
partiallyInteractive: !fullyInteractive,
|
|
1930
|
-
priority,
|
|
1931
|
-
"aria-description": accessibilityDescription,
|
|
1932
|
-
sentiment,
|
|
1933
|
-
children: title
|
|
1934
|
-
}
|
|
1935
|
-
);
|
|
1936
|
-
}
|
|
1937
|
-
return /* @__PURE__ */ jsx44(
|
|
1938
|
-
ListItem6.Button,
|
|
1939
|
-
{
|
|
1940
|
-
"aria-description": accessibilityDescription,
|
|
1941
|
-
partiallyInteractive: !fullyInteractive,
|
|
1942
|
-
priority,
|
|
1943
|
-
sentiment,
|
|
1944
|
-
onClick,
|
|
1945
|
-
children: title
|
|
1946
|
-
}
|
|
1947
|
-
);
|
|
1948
|
-
};
|
|
1949
|
-
var getPriorityAndSentiment = (ctaSecondary, context) => {
|
|
1950
|
-
if (context === "negative") {
|
|
1951
|
-
return { priority: "secondary", sentiment: "negative" };
|
|
1952
|
-
}
|
|
1953
|
-
return { priority: ctaSecondary ? "secondary" : "secondary-neutral", sentiment: "default" };
|
|
1954
|
-
};
|
|
2167
|
+
import { ListItem as ListItem8 } from "@transferwise/components";
|
|
1955
2168
|
|
|
1956
2169
|
// ../renderers/src/components/Header.tsx
|
|
1957
2170
|
import { Header as DSHeader } from "@transferwise/components";
|
|
1958
|
-
import { jsx as
|
|
1959
|
-
var
|
|
2171
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
2172
|
+
var Header = ({ title, callToAction }) => (title || callToAction) && /* @__PURE__ */ jsx47(DSHeader, { title: title != null ? title : "", action: getHeaderAction(callToAction) });
|
|
1960
2173
|
var getHeaderAction = (callToAction) => {
|
|
1961
2174
|
if (!callToAction) {
|
|
1962
2175
|
return void 0;
|
|
@@ -1978,11 +2191,11 @@ var getHeaderAction = (callToAction) => {
|
|
|
1978
2191
|
};
|
|
1979
2192
|
|
|
1980
2193
|
// ../renderers/src/ListRenderer.tsx
|
|
1981
|
-
import { jsx as
|
|
2194
|
+
import { jsx as jsx48, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1982
2195
|
var ListRenderer = {
|
|
1983
2196
|
canRenderType: "list",
|
|
1984
|
-
render: ({ callToAction, control, margin, items, tags, title }) => /* @__PURE__ */
|
|
1985
|
-
/* @__PURE__ */
|
|
2197
|
+
render: ({ callToAction, control, margin, items, tags, title }) => /* @__PURE__ */ jsxs12("div", { className: getMargin(margin), children: [
|
|
2198
|
+
/* @__PURE__ */ jsx48(Header, { title, callToAction }),
|
|
1986
2199
|
items.map((item) => {
|
|
1987
2200
|
var _a, _b;
|
|
1988
2201
|
const {
|
|
@@ -1999,8 +2212,8 @@ var ListRenderer = {
|
|
|
1999
2212
|
ctaSecondary: (_a = itemTags == null ? void 0 : itemTags.includes("cta-secondary")) != null ? _a : false,
|
|
2000
2213
|
fullyInteractive: (_b = (tags == null ? void 0 : tags.includes("fully-interactive")) && (additionalInfo == null ? void 0 : additionalInfo.onClick) == null) != null ? _b : false
|
|
2001
2214
|
};
|
|
2002
|
-
return /* @__PURE__ */
|
|
2003
|
-
|
|
2215
|
+
return /* @__PURE__ */ jsx48(
|
|
2216
|
+
ListItem8,
|
|
2004
2217
|
{
|
|
2005
2218
|
title: itemTitle,
|
|
2006
2219
|
subtitle: description,
|
|
@@ -2020,10 +2233,10 @@ var ListRenderer_default = ListRenderer;
|
|
|
2020
2233
|
|
|
2021
2234
|
// ../renderers/src/LoadingIndicatorRenderer.tsx
|
|
2022
2235
|
import { Loader } from "@transferwise/components";
|
|
2023
|
-
import { jsx as
|
|
2236
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
2024
2237
|
var LoadingIndicatorRenderer = {
|
|
2025
2238
|
canRenderType: "loading-indicator",
|
|
2026
|
-
render: ({ margin, size }) => /* @__PURE__ */
|
|
2239
|
+
render: ({ margin, size }) => /* @__PURE__ */ jsx49(
|
|
2027
2240
|
Loader,
|
|
2028
2241
|
{
|
|
2029
2242
|
size,
|
|
@@ -2036,10 +2249,10 @@ var LoadingIndicatorRenderer_default = LoadingIndicatorRenderer;
|
|
|
2036
2249
|
|
|
2037
2250
|
// ../renderers/src/MarkdownRenderer.tsx
|
|
2038
2251
|
import { Markdown as Markdown3 } from "@transferwise/components";
|
|
2039
|
-
import { jsx as
|
|
2252
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
2040
2253
|
var MarkdownRenderer = {
|
|
2041
2254
|
canRenderType: "markdown",
|
|
2042
|
-
render: ({ content, align, margin, size }) => /* @__PURE__ */
|
|
2255
|
+
render: ({ content, align, margin, size }) => /* @__PURE__ */ jsx50("div", { className: getTextAlignmentAndMargin({ align, margin }), children: /* @__PURE__ */ jsx50(
|
|
2043
2256
|
Markdown3,
|
|
2044
2257
|
{
|
|
2045
2258
|
className: ["xs", "sm"].includes(size) ? "np-text-body-default" : "np-text-body-large",
|
|
@@ -2051,16 +2264,16 @@ var MarkdownRenderer = {
|
|
|
2051
2264
|
var MarkdownRenderer_default = MarkdownRenderer;
|
|
2052
2265
|
|
|
2053
2266
|
// ../renderers/src/MediaRenderer.tsx
|
|
2054
|
-
import { jsx as
|
|
2267
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
2055
2268
|
var MediaRenderer = {
|
|
2056
2269
|
canRenderType: "media",
|
|
2057
2270
|
render: (_a) => {
|
|
2058
2271
|
var _b = _a, { media } = _b, rest = __objRest(_b, ["media"]);
|
|
2059
2272
|
switch (media.type) {
|
|
2060
2273
|
case "avatar":
|
|
2061
|
-
return /* @__PURE__ */
|
|
2274
|
+
return /* @__PURE__ */ jsx51(AvatarMediaRendererComponent, __spreadValues({ media }, rest));
|
|
2062
2275
|
case "image":
|
|
2063
|
-
return /* @__PURE__ */
|
|
2276
|
+
return /* @__PURE__ */ jsx51(ImageMediaRendererComponent, __spreadValues({ media }, rest));
|
|
2064
2277
|
case "legacy":
|
|
2065
2278
|
return null;
|
|
2066
2279
|
}
|
|
@@ -2072,7 +2285,7 @@ var AvatarMediaRendererComponent = ({
|
|
|
2072
2285
|
margin,
|
|
2073
2286
|
size
|
|
2074
2287
|
}) => {
|
|
2075
|
-
return /* @__PURE__ */
|
|
2288
|
+
return /* @__PURE__ */ jsx51("div", { className: `df-media-layout-avatar ${align} ${getMargin(margin)}`, children: /* @__PURE__ */ jsx51(Media, { media, size: mapAvatarMediaSize(size) }) });
|
|
2076
2289
|
};
|
|
2077
2290
|
var ImageMediaRendererComponent = (_a) => {
|
|
2078
2291
|
var _b = _a, {
|
|
@@ -2080,7 +2293,7 @@ var ImageMediaRendererComponent = (_a) => {
|
|
|
2080
2293
|
} = _b, rest = __objRest(_b, [
|
|
2081
2294
|
"media"
|
|
2082
2295
|
]);
|
|
2083
|
-
return isUrnImage(media.uri) ? /* @__PURE__ */
|
|
2296
|
+
return isUrnImage(media.uri) ? /* @__PURE__ */ jsx51(UrnImage, __spreadValues({ uri: media.uri, accessibilityDescription: media.accessibilityDescription }, rest)) : /* @__PURE__ */ jsx51(UrlImage, __spreadValues({ uri: media.uri, accessibilityDescription: media.accessibilityDescription }, rest));
|
|
2084
2297
|
};
|
|
2085
2298
|
var mapAvatarMediaSize = (size) => {
|
|
2086
2299
|
switch (size) {
|
|
@@ -2098,20 +2311,20 @@ var mapAvatarMediaSize = (size) => {
|
|
|
2098
2311
|
};
|
|
2099
2312
|
|
|
2100
2313
|
// ../renderers/src/ModalLayoutRenderer.tsx
|
|
2101
|
-
import { Button as
|
|
2102
|
-
import { useState as
|
|
2103
|
-
import { jsx as
|
|
2314
|
+
import { Button as Button5, Modal as Modal2 } from "@transferwise/components";
|
|
2315
|
+
import { useState as useState8 } from "react";
|
|
2316
|
+
import { jsx as jsx52, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2104
2317
|
var ModalLayoutRenderer = {
|
|
2105
2318
|
canRenderType: "modal-layout",
|
|
2106
|
-
render: (props) => /* @__PURE__ */
|
|
2319
|
+
render: (props) => /* @__PURE__ */ jsx52(DFModal, __spreadValues({}, props))
|
|
2107
2320
|
};
|
|
2108
2321
|
var ModalLayoutRenderer_default = ModalLayoutRenderer;
|
|
2109
2322
|
function DFModal({ content, margin, trigger }) {
|
|
2110
|
-
const [visible, setVisible] =
|
|
2323
|
+
const [visible, setVisible] = useState8(false);
|
|
2111
2324
|
const { children, title } = content;
|
|
2112
|
-
return /* @__PURE__ */
|
|
2113
|
-
/* @__PURE__ */
|
|
2114
|
-
/* @__PURE__ */
|
|
2325
|
+
return /* @__PURE__ */ jsxs13("div", { className: getMargin(margin), children: [
|
|
2326
|
+
/* @__PURE__ */ jsx52(Button5, { v2: true, priority: "tertiary", block: true, onClick: () => setVisible(true), children: trigger.title }),
|
|
2327
|
+
/* @__PURE__ */ jsx52(
|
|
2115
2328
|
Modal2,
|
|
2116
2329
|
{
|
|
2117
2330
|
scroll: "content",
|
|
@@ -2127,19 +2340,19 @@ function DFModal({ content, margin, trigger }) {
|
|
|
2127
2340
|
|
|
2128
2341
|
// ../renderers/src/ModalRenderer.tsx
|
|
2129
2342
|
import { Modal as Modal3 } from "@transferwise/components";
|
|
2130
|
-
import { jsx as
|
|
2343
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
2131
2344
|
var ModalRenderer = {
|
|
2132
2345
|
canRenderType: "modal",
|
|
2133
2346
|
render: ({ title, children, open, onClose }) => {
|
|
2134
|
-
return /* @__PURE__ */
|
|
2347
|
+
return /* @__PURE__ */ jsx53(Modal3, { open, title, body: children, onClose });
|
|
2135
2348
|
}
|
|
2136
2349
|
};
|
|
2137
2350
|
|
|
2138
2351
|
// ../renderers/src/MoneyInputRenderer.tsx
|
|
2139
2352
|
import { MoneyInput } from "@transferwise/components";
|
|
2140
|
-
import { useEffect as
|
|
2141
|
-
import { useIntl as
|
|
2142
|
-
import { jsx as
|
|
2353
|
+
import { useEffect as useEffect8 } from "react";
|
|
2354
|
+
import { useIntl as useIntl7 } from "react-intl";
|
|
2355
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
2143
2356
|
var groupingTags2 = Object.keys(group_messages_default).filter((key) => key !== "all");
|
|
2144
2357
|
var MoneyInputRenderer = {
|
|
2145
2358
|
canRenderType: "money-input",
|
|
@@ -2160,13 +2373,13 @@ function MoneyInputRendererComponent(props) {
|
|
|
2160
2373
|
onAmountChange,
|
|
2161
2374
|
onCurrencyChange
|
|
2162
2375
|
} = props;
|
|
2163
|
-
|
|
2376
|
+
useEffect8(() => {
|
|
2164
2377
|
if (!isValidIndex(selectedCurrencyIndex, currencies.length)) {
|
|
2165
2378
|
onCurrencyChange(0);
|
|
2166
2379
|
}
|
|
2167
2380
|
}, [selectedCurrencyIndex, onCurrencyChange, currencies.length]);
|
|
2168
|
-
const { formatMessage } =
|
|
2169
|
-
return /* @__PURE__ */
|
|
2381
|
+
const { formatMessage } = useIntl7();
|
|
2382
|
+
return /* @__PURE__ */ jsx54(
|
|
2170
2383
|
FieldInput_default,
|
|
2171
2384
|
{
|
|
2172
2385
|
id: uid,
|
|
@@ -2174,7 +2387,7 @@ function MoneyInputRendererComponent(props) {
|
|
|
2174
2387
|
description,
|
|
2175
2388
|
validation: validationState,
|
|
2176
2389
|
help,
|
|
2177
|
-
children: /* @__PURE__ */
|
|
2390
|
+
children: /* @__PURE__ */ jsx54(
|
|
2178
2391
|
MoneyInput,
|
|
2179
2392
|
{
|
|
2180
2393
|
amount: parseFloatOrNull(amountValue),
|
|
@@ -2235,10 +2448,10 @@ function assertCurrencyCodeIsString(currencyCode) {
|
|
|
2235
2448
|
}
|
|
2236
2449
|
}
|
|
2237
2450
|
|
|
2238
|
-
// ../renderers/src/MultiSelectInputRenderer/
|
|
2239
|
-
import { ListItem as
|
|
2240
|
-
import { jsx as
|
|
2241
|
-
function
|
|
2451
|
+
// ../renderers/src/MultiSelectInputRenderer/InlineComponent.tsx
|
|
2452
|
+
import { ListItem as ListItem9 } from "@transferwise/components";
|
|
2453
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
2454
|
+
function InlineComponent(props) {
|
|
2242
2455
|
const {
|
|
2243
2456
|
id,
|
|
2244
2457
|
description,
|
|
@@ -2250,7 +2463,7 @@ function InlineMultiSelectInputRendererComponent(props) {
|
|
|
2250
2463
|
validationState,
|
|
2251
2464
|
onSelect
|
|
2252
2465
|
} = props;
|
|
2253
|
-
return /* @__PURE__ */
|
|
2466
|
+
return /* @__PURE__ */ jsx55(
|
|
2254
2467
|
FieldInput_default,
|
|
2255
2468
|
{
|
|
2256
2469
|
id,
|
|
@@ -2271,8 +2484,8 @@ function InlineMultiSelectInputRendererComponent(props) {
|
|
|
2271
2484
|
childrenProps
|
|
2272
2485
|
} = option;
|
|
2273
2486
|
const key = (_a = childrenProps == null ? void 0 : childrenProps.uid) != null ? _a : index;
|
|
2274
|
-
return /* @__PURE__ */
|
|
2275
|
-
|
|
2487
|
+
return /* @__PURE__ */ jsx55(
|
|
2488
|
+
ListItem9,
|
|
2276
2489
|
{
|
|
2277
2490
|
title: itemTitle,
|
|
2278
2491
|
subtitle,
|
|
@@ -2280,10 +2493,10 @@ function InlineMultiSelectInputRendererComponent(props) {
|
|
|
2280
2493
|
valueSubtitle: supportingValues == null ? void 0 : supportingValues.subvalue,
|
|
2281
2494
|
media: getMedia(media, false),
|
|
2282
2495
|
prompt: getInlineAlert(inlineAlert),
|
|
2283
|
-
additionalInfo: additionalText ? /* @__PURE__ */
|
|
2496
|
+
additionalInfo: additionalText ? /* @__PURE__ */ jsx55(ListItem9.AdditionalInfo, { children: additionalText }) : void 0,
|
|
2284
2497
|
disabled: disabled || optionDisabled,
|
|
2285
|
-
control: /* @__PURE__ */
|
|
2286
|
-
|
|
2498
|
+
control: /* @__PURE__ */ jsx55(
|
|
2499
|
+
ListItem9.Checkbox,
|
|
2287
2500
|
{
|
|
2288
2501
|
checked: selectedIndices.includes(index),
|
|
2289
2502
|
onChange: (e) => {
|
|
@@ -2300,14 +2513,14 @@ function InlineMultiSelectInputRendererComponent(props) {
|
|
|
2300
2513
|
);
|
|
2301
2514
|
}
|
|
2302
2515
|
|
|
2303
|
-
// ../renderers/src/MultiSelectInputRenderer/
|
|
2516
|
+
// ../renderers/src/MultiSelectInputRenderer/DefaultComponent.tsx
|
|
2304
2517
|
import { SelectInput, SelectInputOptionContent } from "@transferwise/components";
|
|
2305
|
-
import { useState as
|
|
2306
|
-
import { useIntl as
|
|
2518
|
+
import { useState as useState9 } from "react";
|
|
2519
|
+
import { useIntl as useIntl8 } from "react-intl";
|
|
2307
2520
|
|
|
2308
2521
|
// ../renderers/src/messages/multi-select.messages.ts
|
|
2309
|
-
import { defineMessages as
|
|
2310
|
-
var multi_select_messages_default =
|
|
2522
|
+
import { defineMessages as defineMessages7 } from "react-intl";
|
|
2523
|
+
var multi_select_messages_default = defineMessages7({
|
|
2311
2524
|
summary: {
|
|
2312
2525
|
id: "df.wise.MultiSelect.summary",
|
|
2313
2526
|
defaultMessage: "{first} and {count} more",
|
|
@@ -2315,11 +2528,11 @@ var multi_select_messages_default = defineMessages6({
|
|
|
2315
2528
|
}
|
|
2316
2529
|
});
|
|
2317
2530
|
|
|
2318
|
-
// ../renderers/src/MultiSelectInputRenderer/
|
|
2319
|
-
import { jsx as
|
|
2320
|
-
function
|
|
2321
|
-
const { formatMessage } =
|
|
2322
|
-
const [stagedIndices, setStagedIndices] =
|
|
2531
|
+
// ../renderers/src/MultiSelectInputRenderer/DefaultComponent.tsx
|
|
2532
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
2533
|
+
function DefaultComponent(props) {
|
|
2534
|
+
const { formatMessage } = useIntl8();
|
|
2535
|
+
const [stagedIndices, setStagedIndices] = useState9();
|
|
2323
2536
|
const {
|
|
2324
2537
|
id,
|
|
2325
2538
|
autoComplete,
|
|
@@ -2357,12 +2570,12 @@ function MultiSelectInputRendererComponent(props) {
|
|
|
2357
2570
|
const contentProps = {
|
|
2358
2571
|
title: option.title,
|
|
2359
2572
|
description: option.description,
|
|
2360
|
-
icon: /* @__PURE__ */
|
|
2573
|
+
icon: /* @__PURE__ */ jsx56(OptionMedia, { media: option.media, preferAvatar: false })
|
|
2361
2574
|
};
|
|
2362
|
-
return /* @__PURE__ */
|
|
2575
|
+
return /* @__PURE__ */ jsx56(SelectInputOptionContent, __spreadValues({}, contentProps));
|
|
2363
2576
|
};
|
|
2364
2577
|
const extraProps = { autoComplete };
|
|
2365
|
-
return /* @__PURE__ */
|
|
2578
|
+
return /* @__PURE__ */ jsx56(
|
|
2366
2579
|
FieldInput_default,
|
|
2367
2580
|
{
|
|
2368
2581
|
id,
|
|
@@ -2370,7 +2583,7 @@ function MultiSelectInputRendererComponent(props) {
|
|
|
2370
2583
|
help,
|
|
2371
2584
|
description,
|
|
2372
2585
|
validation: validationState,
|
|
2373
|
-
children: /* @__PURE__ */
|
|
2586
|
+
children: /* @__PURE__ */ jsx56(
|
|
2374
2587
|
SelectInput,
|
|
2375
2588
|
__spreadValues({
|
|
2376
2589
|
id,
|
|
@@ -2408,12 +2621,68 @@ function MultiSelectInputRendererComponent(props) {
|
|
|
2408
2621
|
);
|
|
2409
2622
|
}
|
|
2410
2623
|
|
|
2624
|
+
// ../renderers/src/MultiSelectInputRenderer/InlineCheckboxComponent.tsx
|
|
2625
|
+
import { Checkbox as Checkbox2 } from "@transferwise/components";
|
|
2626
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
2627
|
+
function InlineCheckboxComponent(props) {
|
|
2628
|
+
const {
|
|
2629
|
+
id,
|
|
2630
|
+
description,
|
|
2631
|
+
disabled,
|
|
2632
|
+
help,
|
|
2633
|
+
options,
|
|
2634
|
+
selectedIndices,
|
|
2635
|
+
title,
|
|
2636
|
+
validationState,
|
|
2637
|
+
onSelect
|
|
2638
|
+
} = props;
|
|
2639
|
+
return /* @__PURE__ */ jsx57(
|
|
2640
|
+
FieldInput_default,
|
|
2641
|
+
{
|
|
2642
|
+
id,
|
|
2643
|
+
label: title,
|
|
2644
|
+
help,
|
|
2645
|
+
description,
|
|
2646
|
+
validation: validationState,
|
|
2647
|
+
children: options.map((option, index) => {
|
|
2648
|
+
var _a;
|
|
2649
|
+
const {
|
|
2650
|
+
title: label,
|
|
2651
|
+
description: secondary,
|
|
2652
|
+
disabled: optionDisabled,
|
|
2653
|
+
childrenProps
|
|
2654
|
+
} = option;
|
|
2655
|
+
const key = (_a = childrenProps == null ? void 0 : childrenProps.uid) != null ? _a : index;
|
|
2656
|
+
const checkboxProps = {
|
|
2657
|
+
id,
|
|
2658
|
+
label,
|
|
2659
|
+
secondary,
|
|
2660
|
+
checked: selectedIndices.includes(index),
|
|
2661
|
+
disabled: disabled || optionDisabled,
|
|
2662
|
+
onChange: () => {
|
|
2663
|
+
const newSelectedIndices = selectedIndices.includes(index) ? selectedIndices.filter((i) => i !== index) : [...selectedIndices, index];
|
|
2664
|
+
onSelect(newSelectedIndices);
|
|
2665
|
+
}
|
|
2666
|
+
};
|
|
2667
|
+
return /* @__PURE__ */ jsx57(Checkbox2, __spreadProps(__spreadValues({}, checkboxProps), { className: "m-t-1" }), key);
|
|
2668
|
+
})
|
|
2669
|
+
}
|
|
2670
|
+
);
|
|
2671
|
+
}
|
|
2672
|
+
|
|
2411
2673
|
// ../renderers/src/MultiSelectInputRenderer/MultiSelectInputRenderer.tsx
|
|
2412
|
-
import { jsx as
|
|
2674
|
+
import { jsx as jsx58 } from "react/jsx-runtime";
|
|
2413
2675
|
var MultiSelectInputRenderer = {
|
|
2414
2676
|
canRenderType: "input-multi-select",
|
|
2415
2677
|
render: (props) => {
|
|
2416
|
-
|
|
2678
|
+
switch (props.control) {
|
|
2679
|
+
case "inline":
|
|
2680
|
+
return /* @__PURE__ */ jsx58(InlineComponent, __spreadValues({}, props));
|
|
2681
|
+
case "inline-checkbox-group":
|
|
2682
|
+
return /* @__PURE__ */ jsx58(InlineCheckboxComponent, __spreadValues({}, props));
|
|
2683
|
+
default:
|
|
2684
|
+
return /* @__PURE__ */ jsx58(DefaultComponent, __spreadValues({}, props));
|
|
2685
|
+
}
|
|
2417
2686
|
}
|
|
2418
2687
|
};
|
|
2419
2688
|
|
|
@@ -2423,7 +2692,7 @@ import { Status, UploadInput } from "@transferwise/components";
|
|
|
2423
2692
|
// ../renderers/src/components/UploadFieldInput.tsx
|
|
2424
2693
|
var import_classnames4 = __toESM(require_classnames());
|
|
2425
2694
|
import { InlineAlert as InlineAlert2 } from "@transferwise/components";
|
|
2426
|
-
import { jsx as
|
|
2695
|
+
import { jsx as jsx59, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2427
2696
|
function UploadFieldInput({
|
|
2428
2697
|
id,
|
|
2429
2698
|
children,
|
|
@@ -2432,18 +2701,18 @@ function UploadFieldInput({
|
|
|
2432
2701
|
help,
|
|
2433
2702
|
validation
|
|
2434
2703
|
}) {
|
|
2435
|
-
const labelContent = label && help ? /* @__PURE__ */
|
|
2704
|
+
const labelContent = label && help ? /* @__PURE__ */ jsx59(LabelContentWithHelp, { text: label, help }) : label;
|
|
2436
2705
|
const descriptionId = description ? `${id}-description` : void 0;
|
|
2437
|
-
return /* @__PURE__ */
|
|
2706
|
+
return /* @__PURE__ */ jsxs14(
|
|
2438
2707
|
"div",
|
|
2439
2708
|
{
|
|
2440
2709
|
className: (0, import_classnames4.default)("form-group d-block", {
|
|
2441
2710
|
"has-error": (validation == null ? void 0 : validation.status) === "invalid"
|
|
2442
2711
|
}),
|
|
2443
2712
|
children: [
|
|
2444
|
-
/* @__PURE__ */
|
|
2713
|
+
/* @__PURE__ */ jsx59("label", { htmlFor: id, className: "control-label", children: labelContent }),
|
|
2445
2714
|
children,
|
|
2446
|
-
(validation == null ? void 0 : validation.status) === "invalid" && /* @__PURE__ */
|
|
2715
|
+
(validation == null ? void 0 : validation.status) === "invalid" && /* @__PURE__ */ jsx59(InlineAlert2, { type: "negative", id: descriptionId, children: validation.message })
|
|
2447
2716
|
]
|
|
2448
2717
|
}
|
|
2449
2718
|
);
|
|
@@ -2478,7 +2747,7 @@ var getSizeLimit = (maxSize) => {
|
|
|
2478
2747
|
};
|
|
2479
2748
|
|
|
2480
2749
|
// ../renderers/src/MultiUploadInputRenderer.tsx
|
|
2481
|
-
import { jsx as
|
|
2750
|
+
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
2482
2751
|
var MultiUploadInputRenderer = {
|
|
2483
2752
|
canRenderType: "input-upload-multi",
|
|
2484
2753
|
render: (props) => {
|
|
@@ -2503,7 +2772,7 @@ var MultiUploadInputRenderer = {
|
|
|
2503
2772
|
};
|
|
2504
2773
|
const onDeleteFile = async (fileId) => onRemoveFile(value.findIndex((file) => file.id === fileId));
|
|
2505
2774
|
const descriptionId = description ? `${id}-description` : void 0;
|
|
2506
|
-
return /* @__PURE__ */
|
|
2775
|
+
return /* @__PURE__ */ jsx60(
|
|
2507
2776
|
UploadFieldInput_default,
|
|
2508
2777
|
{
|
|
2509
2778
|
id,
|
|
@@ -2511,7 +2780,7 @@ var MultiUploadInputRenderer = {
|
|
|
2511
2780
|
description,
|
|
2512
2781
|
validation: validationState,
|
|
2513
2782
|
help,
|
|
2514
|
-
children: /* @__PURE__ */
|
|
2783
|
+
children: /* @__PURE__ */ jsx60(
|
|
2515
2784
|
UploadInput,
|
|
2516
2785
|
{
|
|
2517
2786
|
id,
|
|
@@ -2539,8 +2808,8 @@ var MultiUploadInputRenderer = {
|
|
|
2539
2808
|
var MultiUploadInputRenderer_default = MultiUploadInputRenderer;
|
|
2540
2809
|
|
|
2541
2810
|
// ../renderers/src/NumberInputRenderer.tsx
|
|
2542
|
-
import { Input as
|
|
2543
|
-
import { jsx as
|
|
2811
|
+
import { Input as Input3, InputGroup as InputGroup3 } from "@transferwise/components";
|
|
2812
|
+
import { jsx as jsx61 } from "react/jsx-runtime";
|
|
2544
2813
|
var NumberInputRenderer = {
|
|
2545
2814
|
canRenderType: "input-number",
|
|
2546
2815
|
render: (props) => {
|
|
@@ -2554,7 +2823,7 @@ var NumberInputRenderer = {
|
|
|
2554
2823
|
"maximum",
|
|
2555
2824
|
"minimum"
|
|
2556
2825
|
);
|
|
2557
|
-
return /* @__PURE__ */
|
|
2826
|
+
return /* @__PURE__ */ jsx61(
|
|
2558
2827
|
FieldInput_default,
|
|
2559
2828
|
{
|
|
2560
2829
|
id,
|
|
@@ -2562,8 +2831,8 @@ var NumberInputRenderer = {
|
|
|
2562
2831
|
description,
|
|
2563
2832
|
validation: validationState,
|
|
2564
2833
|
help,
|
|
2565
|
-
children: /* @__PURE__ */
|
|
2566
|
-
|
|
2834
|
+
children: /* @__PURE__ */ jsx61(InputGroup3, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx61(
|
|
2835
|
+
Input3,
|
|
2567
2836
|
__spreadValues({
|
|
2568
2837
|
id,
|
|
2569
2838
|
name: id,
|
|
@@ -2583,7 +2852,7 @@ var NumberInputRenderer = {
|
|
|
2583
2852
|
var NumberInputRenderer_default = NumberInputRenderer;
|
|
2584
2853
|
|
|
2585
2854
|
// ../renderers/src/ParagraphRenderer.tsx
|
|
2586
|
-
import { useIntl as
|
|
2855
|
+
import { useIntl as useIntl9 } from "react-intl";
|
|
2587
2856
|
|
|
2588
2857
|
// ../renderers/src/hooks/useSnackBarIfAvailable.ts
|
|
2589
2858
|
import { SnackbarContext } from "@transferwise/components";
|
|
@@ -2596,11 +2865,11 @@ function useSnackBarIfAvailable() {
|
|
|
2596
2865
|
|
|
2597
2866
|
// ../renderers/src/ParagraphRenderer.tsx
|
|
2598
2867
|
var import_classnames5 = __toESM(require_classnames());
|
|
2599
|
-
import { Button as
|
|
2868
|
+
import { Button as Button6, Input as Input4 } from "@transferwise/components";
|
|
2600
2869
|
|
|
2601
2870
|
// ../renderers/src/messages/paragraph.messages.ts
|
|
2602
|
-
import { defineMessages as
|
|
2603
|
-
var paragraph_messages_default =
|
|
2871
|
+
import { defineMessages as defineMessages8 } from "react-intl";
|
|
2872
|
+
var paragraph_messages_default = defineMessages8({
|
|
2604
2873
|
copy: {
|
|
2605
2874
|
id: "df.wise.DynamicParagraph.copy",
|
|
2606
2875
|
defaultMessage: "Copy",
|
|
@@ -2614,14 +2883,14 @@ var paragraph_messages_default = defineMessages7({
|
|
|
2614
2883
|
});
|
|
2615
2884
|
|
|
2616
2885
|
// ../renderers/src/ParagraphRenderer.tsx
|
|
2617
|
-
import { jsx as
|
|
2886
|
+
import { jsx as jsx62, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2618
2887
|
var ParagraphRenderer = {
|
|
2619
2888
|
canRenderType: "paragraph",
|
|
2620
|
-
render: (props) => /* @__PURE__ */
|
|
2889
|
+
render: (props) => /* @__PURE__ */ jsx62(Paragraph, __spreadValues({}, props))
|
|
2621
2890
|
};
|
|
2622
2891
|
function Paragraph({ align, control, margin, size, text }) {
|
|
2623
2892
|
const className = getTextAlignmentAndMargin({ align, margin });
|
|
2624
|
-
return control === "copyable" ? /* @__PURE__ */
|
|
2893
|
+
return control === "copyable" ? /* @__PURE__ */ jsx62(CopyableParagraph, { className, align, text }) : /* @__PURE__ */ jsx62(
|
|
2625
2894
|
"p",
|
|
2626
2895
|
{
|
|
2627
2896
|
className: `${["xs", "sm"].includes(size) ? "np-text-body-default" : "np-text-body-large"} ${className}`,
|
|
@@ -2634,16 +2903,16 @@ function CopyableParagraph({
|
|
|
2634
2903
|
align,
|
|
2635
2904
|
className
|
|
2636
2905
|
}) {
|
|
2637
|
-
const { formatMessage } =
|
|
2906
|
+
const { formatMessage } = useIntl9();
|
|
2638
2907
|
const createSnackbar = useSnackBarIfAvailable();
|
|
2639
2908
|
const copy = () => {
|
|
2640
2909
|
navigator.clipboard.writeText(text).then(() => createSnackbar({ text: formatMessage(paragraph_messages_default.copied) })).catch(() => {
|
|
2641
2910
|
});
|
|
2642
2911
|
};
|
|
2643
2912
|
const inputAlignmentClasses = getTextAlignmentAndMargin({ align, margin: "sm" });
|
|
2644
|
-
return /* @__PURE__ */
|
|
2645
|
-
/* @__PURE__ */
|
|
2646
|
-
|
|
2913
|
+
return /* @__PURE__ */ jsxs15("div", { className, children: [
|
|
2914
|
+
/* @__PURE__ */ jsx62(
|
|
2915
|
+
Input4,
|
|
2647
2916
|
{
|
|
2648
2917
|
type: "text",
|
|
2649
2918
|
value: text,
|
|
@@ -2651,23 +2920,23 @@ function CopyableParagraph({
|
|
|
2651
2920
|
className: (0, import_classnames5.default)("text-ellipsis", inputAlignmentClasses)
|
|
2652
2921
|
}
|
|
2653
2922
|
),
|
|
2654
|
-
/* @__PURE__ */
|
|
2923
|
+
/* @__PURE__ */ jsx62(Button6, { v2: true, block: true, onClick: copy, children: formatMessage(paragraph_messages_default.copy) })
|
|
2655
2924
|
] });
|
|
2656
2925
|
}
|
|
2657
2926
|
var ParagraphRenderer_default = ParagraphRenderer;
|
|
2658
2927
|
|
|
2659
2928
|
// ../renderers/src/ProgressRenderer.tsx
|
|
2660
2929
|
import { ProgressBar } from "@transferwise/components";
|
|
2661
|
-
import { jsx as
|
|
2930
|
+
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
2662
2931
|
var ProgressRenderer = {
|
|
2663
2932
|
canRenderType: "progress",
|
|
2664
2933
|
render: ({ uid, title, help, progress, progressText, margin, description }) => {
|
|
2665
|
-
return /* @__PURE__ */
|
|
2934
|
+
return /* @__PURE__ */ jsx63(
|
|
2666
2935
|
ProgressBar,
|
|
2667
2936
|
{
|
|
2668
2937
|
id: uid,
|
|
2669
2938
|
className: getMargin(margin),
|
|
2670
|
-
title: title && help ? /* @__PURE__ */
|
|
2939
|
+
title: title && help ? /* @__PURE__ */ jsx63(LabelContentWithHelp, { text: title, help }) : title,
|
|
2671
2940
|
description,
|
|
2672
2941
|
progress: {
|
|
2673
2942
|
max: 1,
|
|
@@ -2681,14 +2950,14 @@ var ProgressRenderer = {
|
|
|
2681
2950
|
|
|
2682
2951
|
// ../renderers/src/RepeatableRenderer.tsx
|
|
2683
2952
|
var import_classnames6 = __toESM(require_classnames());
|
|
2684
|
-
import { Button as
|
|
2953
|
+
import { Button as Button7, Header as Header6, InlineAlert as InlineAlert3, Modal as Modal4, NavigationOption } from "@transferwise/components";
|
|
2685
2954
|
import { Plus } from "@transferwise/icons";
|
|
2686
|
-
import { useState as
|
|
2687
|
-
import { useIntl as
|
|
2955
|
+
import { useState as useState10 } from "react";
|
|
2956
|
+
import { useIntl as useIntl10 } from "react-intl";
|
|
2688
2957
|
|
|
2689
2958
|
// ../renderers/src/messages/repeatable.messages.ts
|
|
2690
|
-
import { defineMessages as
|
|
2691
|
-
var repeatable_messages_default =
|
|
2959
|
+
import { defineMessages as defineMessages9 } from "react-intl";
|
|
2960
|
+
var repeatable_messages_default = defineMessages9({
|
|
2692
2961
|
addItemTitle: {
|
|
2693
2962
|
id: "df.wise.ArraySchema.addItemTitle",
|
|
2694
2963
|
defaultMessage: "Add Item",
|
|
@@ -2712,10 +2981,10 @@ var repeatable_messages_default = defineMessages8({
|
|
|
2712
2981
|
});
|
|
2713
2982
|
|
|
2714
2983
|
// ../renderers/src/RepeatableRenderer.tsx
|
|
2715
|
-
import { Fragment as
|
|
2984
|
+
import { Fragment as Fragment7, jsx as jsx64, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2716
2985
|
var RepeatableRenderer = {
|
|
2717
2986
|
canRenderType: "repeatable",
|
|
2718
|
-
render: (props) => /* @__PURE__ */
|
|
2987
|
+
render: (props) => /* @__PURE__ */ jsx64(Repeatable, __spreadValues({}, props))
|
|
2719
2988
|
};
|
|
2720
2989
|
function Repeatable(props) {
|
|
2721
2990
|
const {
|
|
@@ -2731,8 +3000,8 @@ function Repeatable(props) {
|
|
|
2731
3000
|
onSave,
|
|
2732
3001
|
onRemove
|
|
2733
3002
|
} = props;
|
|
2734
|
-
const { formatMessage } =
|
|
2735
|
-
const [openModalType, setOpenModalType] =
|
|
3003
|
+
const { formatMessage } = useIntl10();
|
|
3004
|
+
const [openModalType, setOpenModalType] = useState10(null);
|
|
2736
3005
|
const onAddItem = () => {
|
|
2737
3006
|
onAdd();
|
|
2738
3007
|
setOpenModalType("add");
|
|
@@ -2754,41 +3023,41 @@ function Repeatable(props) {
|
|
|
2754
3023
|
const onCancelEdit = () => {
|
|
2755
3024
|
setOpenModalType(null);
|
|
2756
3025
|
};
|
|
2757
|
-
return /* @__PURE__ */
|
|
2758
|
-
title && /* @__PURE__ */
|
|
2759
|
-
description && /* @__PURE__ */
|
|
2760
|
-
/* @__PURE__ */
|
|
3026
|
+
return /* @__PURE__ */ jsxs16(Fragment7, { children: [
|
|
3027
|
+
title && /* @__PURE__ */ jsx64(Header6, { title }),
|
|
3028
|
+
description && /* @__PURE__ */ jsx64("p", { children: description }),
|
|
3029
|
+
/* @__PURE__ */ jsxs16(
|
|
2761
3030
|
"div",
|
|
2762
3031
|
{
|
|
2763
3032
|
className: (0, import_classnames6.default)("form-group", {
|
|
2764
3033
|
"has-error": (validationState == null ? void 0 : validationState.status) === "invalid"
|
|
2765
3034
|
}),
|
|
2766
3035
|
children: [
|
|
2767
|
-
items == null ? void 0 : items.map((item, index) => /* @__PURE__ */
|
|
2768
|
-
/* @__PURE__ */
|
|
3036
|
+
items == null ? void 0 : items.map((item, index) => /* @__PURE__ */ jsx64(ItemSummaryOption, { item, onClick: () => onEditItem(index) }, item.id)),
|
|
3037
|
+
/* @__PURE__ */ jsx64(
|
|
2769
3038
|
NavigationOption,
|
|
2770
3039
|
{
|
|
2771
|
-
media: /* @__PURE__ */
|
|
3040
|
+
media: /* @__PURE__ */ jsx64(Plus, {}),
|
|
2772
3041
|
title: addItemTitle || formatMessage(repeatable_messages_default.addItemTitle),
|
|
2773
3042
|
showMediaAtAllSizes: true,
|
|
2774
3043
|
onClick: () => onAddItem()
|
|
2775
3044
|
}
|
|
2776
3045
|
),
|
|
2777
|
-
(validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */
|
|
3046
|
+
(validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */ jsx64(InlineAlert3, { type: "negative", children: validationState.message })
|
|
2778
3047
|
]
|
|
2779
3048
|
}
|
|
2780
3049
|
),
|
|
2781
|
-
/* @__PURE__ */
|
|
3050
|
+
/* @__PURE__ */ jsx64(
|
|
2782
3051
|
Modal4,
|
|
2783
3052
|
{
|
|
2784
3053
|
open: openModalType !== null,
|
|
2785
3054
|
title: (openModalType === "add" ? addItemTitle : editItemTitle) || formatMessage(repeatable_messages_default.addItemTitle),
|
|
2786
|
-
body: /* @__PURE__ */
|
|
2787
|
-
/* @__PURE__ */
|
|
2788
|
-
/* @__PURE__ */
|
|
2789
|
-
/* @__PURE__ */
|
|
2790
|
-
/* @__PURE__ */
|
|
2791
|
-
|
|
3055
|
+
body: /* @__PURE__ */ jsxs16(Fragment7, { children: [
|
|
3056
|
+
/* @__PURE__ */ jsx64("div", { className: "m-b-2", children: editableItem }),
|
|
3057
|
+
/* @__PURE__ */ jsxs16("div", { children: [
|
|
3058
|
+
/* @__PURE__ */ jsx64(Button7, { priority: "primary", block: true, className: "m-b-2", onClick: () => onSaveItem(), children: formatMessage(repeatable_messages_default.addItem) }),
|
|
3059
|
+
/* @__PURE__ */ jsx64(
|
|
3060
|
+
Button7,
|
|
2792
3061
|
{
|
|
2793
3062
|
v2: true,
|
|
2794
3063
|
priority: "secondary",
|
|
@@ -2809,10 +3078,10 @@ function ItemSummaryOption({
|
|
|
2809
3078
|
item,
|
|
2810
3079
|
onClick
|
|
2811
3080
|
}) {
|
|
2812
|
-
return /* @__PURE__ */
|
|
3081
|
+
return /* @__PURE__ */ jsx64(
|
|
2813
3082
|
NavigationOption,
|
|
2814
3083
|
{
|
|
2815
|
-
media: /* @__PURE__ */
|
|
3084
|
+
media: /* @__PURE__ */ jsx64(OptionMedia, { media: item.media, preferAvatar: false }),
|
|
2816
3085
|
title: item.title,
|
|
2817
3086
|
content: item.description,
|
|
2818
3087
|
showMediaAtAllSizes: true,
|
|
@@ -2825,14 +3094,14 @@ var RepeatableRenderer_default = RepeatableRenderer;
|
|
|
2825
3094
|
|
|
2826
3095
|
// ../renderers/src/ReviewLegacyRenderer.tsx
|
|
2827
3096
|
import { DefinitionList } from "@transferwise/components";
|
|
2828
|
-
import { Fragment as
|
|
3097
|
+
import { Fragment as Fragment8, jsx as jsx65, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2829
3098
|
var ReviewRenderer = {
|
|
2830
3099
|
canRenderType: "review",
|
|
2831
3100
|
render: ({ callToAction, control, fields, margin, title, trackEvent }) => {
|
|
2832
3101
|
const orientation = mapControlToDefinitionListLayout(control);
|
|
2833
|
-
return /* @__PURE__ */
|
|
2834
|
-
/* @__PURE__ */
|
|
2835
|
-
/* @__PURE__ */
|
|
3102
|
+
return /* @__PURE__ */ jsxs17("div", { className: getMargin(margin), children: [
|
|
3103
|
+
/* @__PURE__ */ jsx65(Header, { title, callToAction }),
|
|
3104
|
+
/* @__PURE__ */ jsx65("div", { className: margin, children: /* @__PURE__ */ jsx65(
|
|
2836
3105
|
DefinitionList,
|
|
2837
3106
|
{
|
|
2838
3107
|
layout: orientation,
|
|
@@ -2870,20 +3139,20 @@ var mapControlToDefinitionListLayout = (control) => {
|
|
|
2870
3139
|
};
|
|
2871
3140
|
var getFieldLabel = (label, help, onClick) => {
|
|
2872
3141
|
if (help) {
|
|
2873
|
-
return /* @__PURE__ */
|
|
3142
|
+
return /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
2874
3143
|
label,
|
|
2875
3144
|
" ",
|
|
2876
|
-
/* @__PURE__ */
|
|
3145
|
+
/* @__PURE__ */ jsx65(Help_default, { help, onClick })
|
|
2877
3146
|
] });
|
|
2878
3147
|
}
|
|
2879
3148
|
return label;
|
|
2880
3149
|
};
|
|
2881
3150
|
|
|
2882
3151
|
// ../renderers/src/ReviewRenderer.tsx
|
|
2883
|
-
import { ListItem as
|
|
3152
|
+
import { ListItem as ListItem10, Markdown as Markdown4, Popover } from "@transferwise/components";
|
|
2884
3153
|
import { QuestionMarkCircle } from "@transferwise/icons";
|
|
2885
|
-
import { useIntl as
|
|
2886
|
-
import { jsx as
|
|
3154
|
+
import { useIntl as useIntl11 } from "react-intl";
|
|
3155
|
+
import { jsx as jsx66, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2887
3156
|
var IGNORED_CONTROLS = [
|
|
2888
3157
|
"horizontal",
|
|
2889
3158
|
"horizontal-end-aligned",
|
|
@@ -2893,7 +3162,7 @@ var IGNORED_CONTROLS = [
|
|
|
2893
3162
|
var ReviewRenderer2 = {
|
|
2894
3163
|
canRenderType: "review",
|
|
2895
3164
|
canRender: ({ control }) => control ? !IGNORED_CONTROLS.includes(control) : true,
|
|
2896
|
-
render: (props) => /* @__PURE__ */
|
|
3165
|
+
render: (props) => /* @__PURE__ */ jsx66(Review, __spreadValues({}, props))
|
|
2897
3166
|
};
|
|
2898
3167
|
var Review = ({
|
|
2899
3168
|
callToAction,
|
|
@@ -2904,9 +3173,9 @@ var Review = ({
|
|
|
2904
3173
|
title,
|
|
2905
3174
|
trackEvent
|
|
2906
3175
|
}) => {
|
|
2907
|
-
const intl =
|
|
2908
|
-
return /* @__PURE__ */
|
|
2909
|
-
/* @__PURE__ */
|
|
3176
|
+
const intl = useIntl11();
|
|
3177
|
+
return /* @__PURE__ */ jsxs18("div", { className: getMargin(margin), children: [
|
|
3178
|
+
/* @__PURE__ */ jsx66(Header, { title, callToAction }),
|
|
2910
3179
|
fields.map((field) => {
|
|
2911
3180
|
var _a, _b, _c;
|
|
2912
3181
|
const {
|
|
@@ -2924,8 +3193,8 @@ var Review = ({
|
|
|
2924
3193
|
ctaSecondary: (_a = itemTags == null ? void 0 : itemTags.includes("cta-secondary")) != null ? _a : false,
|
|
2925
3194
|
fullyInteractive: (_b = (tags == null ? void 0 : tags.includes("fully-interactive")) && (additionalInfo == null ? void 0 : additionalInfo.onClick) == null) != null ? _b : false
|
|
2926
3195
|
};
|
|
2927
|
-
return /* @__PURE__ */
|
|
2928
|
-
|
|
3196
|
+
return /* @__PURE__ */ jsx66(
|
|
3197
|
+
ListItem10,
|
|
2929
3198
|
{
|
|
2930
3199
|
title: value,
|
|
2931
3200
|
subtitle: label,
|
|
@@ -2945,18 +3214,18 @@ var Review = ({
|
|
|
2945
3214
|
] });
|
|
2946
3215
|
};
|
|
2947
3216
|
var getHelpControl = (help, ariaLabel, onClick) => {
|
|
2948
|
-
return /* @__PURE__ */
|
|
3217
|
+
return /* @__PURE__ */ jsx66(Popover, { content: /* @__PURE__ */ jsx66(Markdown4, { config: { link: { target: "_blank" } }, children: help }), children: /* @__PURE__ */ jsx66(ListItem10.IconButton, { partiallyInteractive: true, "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ jsx66(QuestionMarkCircle, {}) }) });
|
|
2949
3218
|
};
|
|
2950
3219
|
var ReviewRenderer_default = ReviewRenderer2;
|
|
2951
3220
|
|
|
2952
3221
|
// ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
|
|
2953
|
-
import { Input as
|
|
2954
|
-
import { useState as
|
|
2955
|
-
import { useIntl as
|
|
3222
|
+
import { Input as Input5, InputGroup as InputGroup4, List, ListItem as ListItem11, Markdown as Markdown5 } from "@transferwise/components";
|
|
3223
|
+
import { useState as useState11 } from "react";
|
|
3224
|
+
import { useIntl as useIntl13 } from "react-intl";
|
|
2956
3225
|
|
|
2957
3226
|
// ../renderers/src/messages/search.messages.ts
|
|
2958
|
-
import { defineMessages as
|
|
2959
|
-
var search_messages_default =
|
|
3227
|
+
import { defineMessages as defineMessages10 } from "react-intl";
|
|
3228
|
+
var search_messages_default = defineMessages10({
|
|
2960
3229
|
loading: {
|
|
2961
3230
|
id: "df.wise.SearchLayout.loading",
|
|
2962
3231
|
defaultMessage: "Loading...",
|
|
@@ -2965,11 +3234,11 @@ var search_messages_default = defineMessages9({
|
|
|
2965
3234
|
});
|
|
2966
3235
|
|
|
2967
3236
|
// ../renderers/src/SearchRenderer/ErrorResult.tsx
|
|
2968
|
-
import { useIntl as
|
|
3237
|
+
import { useIntl as useIntl12 } from "react-intl";
|
|
2969
3238
|
|
|
2970
3239
|
// ../renderers/src/messages/generic-error.messages.ts
|
|
2971
|
-
import { defineMessages as
|
|
2972
|
-
var generic_error_messages_default =
|
|
3240
|
+
import { defineMessages as defineMessages11 } from "react-intl";
|
|
3241
|
+
var generic_error_messages_default = defineMessages11({
|
|
2973
3242
|
genericErrorRetryHint: {
|
|
2974
3243
|
id: "df.wise.PersistAsyncSchema.genericError",
|
|
2975
3244
|
defaultMessage: "Something went wrong, please try again.",
|
|
@@ -2989,19 +3258,19 @@ var generic_error_messages_default = defineMessages10({
|
|
|
2989
3258
|
|
|
2990
3259
|
// ../renderers/src/SearchRenderer/ErrorResult.tsx
|
|
2991
3260
|
import { Link } from "@transferwise/components";
|
|
2992
|
-
import { jsx as
|
|
3261
|
+
import { jsx as jsx67, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2993
3262
|
function ErrorResult({ state }) {
|
|
2994
|
-
const intl =
|
|
2995
|
-
return /* @__PURE__ */
|
|
3263
|
+
const intl = useIntl12();
|
|
3264
|
+
return /* @__PURE__ */ jsxs19("p", { className: "m-t-2", children: [
|
|
2996
3265
|
intl.formatMessage(generic_error_messages_default.genericError),
|
|
2997
3266
|
"\xA0",
|
|
2998
|
-
/* @__PURE__ */
|
|
3267
|
+
/* @__PURE__ */ jsx67(Link, { onClick: () => state.onRetry(), children: intl.formatMessage(generic_error_messages_default.retry) })
|
|
2999
3268
|
] });
|
|
3000
3269
|
}
|
|
3001
3270
|
|
|
3002
3271
|
// ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
|
|
3003
|
-
import { Search } from "@transferwise/icons";
|
|
3004
|
-
import { Fragment as
|
|
3272
|
+
import { Search as Search2 } from "@transferwise/icons";
|
|
3273
|
+
import { Fragment as Fragment9, jsx as jsx68, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3005
3274
|
function BlockSearchRendererComponent({
|
|
3006
3275
|
id,
|
|
3007
3276
|
hint,
|
|
@@ -3013,11 +3282,11 @@ function BlockSearchRendererComponent({
|
|
|
3013
3282
|
trackEvent,
|
|
3014
3283
|
onChange
|
|
3015
3284
|
}) {
|
|
3016
|
-
const [hasSearched, setHasSearched] =
|
|
3017
|
-
const { formatMessage } =
|
|
3018
|
-
return /* @__PURE__ */
|
|
3019
|
-
/* @__PURE__ */
|
|
3020
|
-
|
|
3285
|
+
const [hasSearched, setHasSearched] = useState11(false);
|
|
3286
|
+
const { formatMessage } = useIntl13();
|
|
3287
|
+
return /* @__PURE__ */ jsxs20("div", { className: getMargin(margin), children: [
|
|
3288
|
+
/* @__PURE__ */ jsx68(FieldInput_default, { id, description: "", validation: void 0, help: "", label: title, children: /* @__PURE__ */ jsx68(InputGroup4, { addonStart: { content: /* @__PURE__ */ jsx68(Search2, { size: 24 }) }, children: /* @__PURE__ */ jsx68(
|
|
3289
|
+
Input5,
|
|
3021
3290
|
{
|
|
3022
3291
|
id,
|
|
3023
3292
|
name: id,
|
|
@@ -3033,7 +3302,7 @@ function BlockSearchRendererComponent({
|
|
|
3033
3302
|
}
|
|
3034
3303
|
}
|
|
3035
3304
|
) }) }),
|
|
3036
|
-
isLoading ? /* @__PURE__ */
|
|
3305
|
+
isLoading ? /* @__PURE__ */ jsx68("span", { children: formatMessage(search_messages_default.loading) }) : /* @__PURE__ */ jsx68(SearchResultContent, { state, trackEvent })
|
|
3037
3306
|
] });
|
|
3038
3307
|
}
|
|
3039
3308
|
function SearchResultContent({
|
|
@@ -3042,39 +3311,39 @@ function SearchResultContent({
|
|
|
3042
3311
|
}) {
|
|
3043
3312
|
switch (state.type) {
|
|
3044
3313
|
case "error":
|
|
3045
|
-
return /* @__PURE__ */
|
|
3314
|
+
return /* @__PURE__ */ jsx68(ErrorResult, { state });
|
|
3046
3315
|
case "results":
|
|
3047
|
-
return /* @__PURE__ */
|
|
3316
|
+
return /* @__PURE__ */ jsx68(SearchResults, { state, trackEvent });
|
|
3048
3317
|
case "layout":
|
|
3049
|
-
return /* @__PURE__ */
|
|
3318
|
+
return /* @__PURE__ */ jsxs20(Fragment9, { children: [
|
|
3050
3319
|
" ",
|
|
3051
3320
|
state.layout,
|
|
3052
3321
|
" "
|
|
3053
3322
|
] });
|
|
3054
3323
|
case "noResults":
|
|
3055
|
-
return /* @__PURE__ */
|
|
3324
|
+
return /* @__PURE__ */ jsx68(EmptySearchResult, { state });
|
|
3056
3325
|
case "pending":
|
|
3057
3326
|
default:
|
|
3058
3327
|
return null;
|
|
3059
3328
|
}
|
|
3060
3329
|
}
|
|
3061
3330
|
function EmptySearchResult({ state }) {
|
|
3062
|
-
return /* @__PURE__ */
|
|
3331
|
+
return /* @__PURE__ */ jsx68(Markdown5, { className: "m-t-2", config: { link: { target: "_blank" } }, children: state.message });
|
|
3063
3332
|
}
|
|
3064
3333
|
function SearchResults({
|
|
3065
3334
|
state,
|
|
3066
3335
|
trackEvent
|
|
3067
3336
|
}) {
|
|
3068
|
-
return /* @__PURE__ */
|
|
3337
|
+
return /* @__PURE__ */ jsx68(List, { children: state.results.map((result) => {
|
|
3069
3338
|
const { media } = result;
|
|
3070
|
-
return /* @__PURE__ */
|
|
3071
|
-
|
|
3339
|
+
return /* @__PURE__ */ jsx68(
|
|
3340
|
+
ListItem11,
|
|
3072
3341
|
{
|
|
3073
3342
|
title: result.title,
|
|
3074
3343
|
subtitle: result.description,
|
|
3075
|
-
media: media ? /* @__PURE__ */
|
|
3076
|
-
control: /* @__PURE__ */
|
|
3077
|
-
|
|
3344
|
+
media: media ? /* @__PURE__ */ jsx68(OptionMedia, { media, preferAvatar: false }) : void 0,
|
|
3345
|
+
control: /* @__PURE__ */ jsx68(
|
|
3346
|
+
ListItem11.Navigation,
|
|
3078
3347
|
{
|
|
3079
3348
|
onClick: () => {
|
|
3080
3349
|
trackEvent("Search Result Selected", __spreadValues({
|
|
@@ -3093,10 +3362,10 @@ var BlockSearchRendererComponent_default = BlockSearchRendererComponent;
|
|
|
3093
3362
|
|
|
3094
3363
|
// ../renderers/src/SearchRenderer/InlineSearchRendererComponent.tsx
|
|
3095
3364
|
import { Markdown as Markdown6, Typeahead } from "@transferwise/components";
|
|
3096
|
-
import { Search as
|
|
3097
|
-
import { useState as
|
|
3098
|
-
import { useIntl as
|
|
3099
|
-
import { jsx as
|
|
3365
|
+
import { Search as Search3 } from "@transferwise/icons";
|
|
3366
|
+
import { useState as useState12 } from "react";
|
|
3367
|
+
import { useIntl as useIntl14 } from "react-intl";
|
|
3368
|
+
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
3100
3369
|
function InlineSearchRenderer({
|
|
3101
3370
|
id,
|
|
3102
3371
|
hint,
|
|
@@ -3107,9 +3376,9 @@ function InlineSearchRenderer({
|
|
|
3107
3376
|
title,
|
|
3108
3377
|
trackEvent
|
|
3109
3378
|
}) {
|
|
3110
|
-
const [hasSearched, setHasSearched] =
|
|
3111
|
-
const intl =
|
|
3112
|
-
return /* @__PURE__ */
|
|
3379
|
+
const [hasSearched, setHasSearched] = useState12(false);
|
|
3380
|
+
const intl = useIntl14();
|
|
3381
|
+
return /* @__PURE__ */ jsx69("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx69(FieldInput_default, { id, description: "", validation: void 0, help: "", label: title, children: /* @__PURE__ */ jsx69(
|
|
3113
3382
|
Typeahead,
|
|
3114
3383
|
{
|
|
3115
3384
|
id: "typeahead-input-id",
|
|
@@ -3118,10 +3387,10 @@ function InlineSearchRenderer({
|
|
|
3118
3387
|
size: "md",
|
|
3119
3388
|
placeholder: hint,
|
|
3120
3389
|
maxHeight: 100,
|
|
3121
|
-
footer: /* @__PURE__ */
|
|
3390
|
+
footer: /* @__PURE__ */ jsx69(TypeaheadFooter, { state, isLoading }),
|
|
3122
3391
|
multiple: false,
|
|
3123
3392
|
clearable: false,
|
|
3124
|
-
addon: /* @__PURE__ */
|
|
3393
|
+
addon: /* @__PURE__ */ jsx69(Search3, { size: 24 }),
|
|
3125
3394
|
options: state.type === "results" ? state.results.map(mapResultToTypeaheadOption) : [],
|
|
3126
3395
|
minQueryLength: 1,
|
|
3127
3396
|
onChange: (values) => {
|
|
@@ -3156,28 +3425,28 @@ function mapResultToTypeaheadOption(result) {
|
|
|
3156
3425
|
};
|
|
3157
3426
|
}
|
|
3158
3427
|
function TypeaheadFooter({ state, isLoading }) {
|
|
3159
|
-
const { formatMessage } =
|
|
3428
|
+
const { formatMessage } = useIntl14();
|
|
3160
3429
|
if (state.type === "layout") {
|
|
3161
|
-
return /* @__PURE__ */
|
|
3430
|
+
return /* @__PURE__ */ jsx69("div", { className: "m-x-1 m-y-1", children: state.layout });
|
|
3162
3431
|
}
|
|
3163
3432
|
if (state.type === "noResults") {
|
|
3164
|
-
return /* @__PURE__ */
|
|
3433
|
+
return /* @__PURE__ */ jsx69(Markdown6, { className: "m-t-2 m-x-2", config: { link: { target: "_blank" } }, children: state.message });
|
|
3165
3434
|
}
|
|
3166
3435
|
if (state.type === "error") {
|
|
3167
|
-
return /* @__PURE__ */
|
|
3436
|
+
return /* @__PURE__ */ jsx69("div", { className: "m-t-2 m-x-2", children: /* @__PURE__ */ jsx69(ErrorResult, { state }) });
|
|
3168
3437
|
}
|
|
3169
3438
|
if (state.type === "pending" || isLoading) {
|
|
3170
|
-
return /* @__PURE__ */
|
|
3439
|
+
return /* @__PURE__ */ jsx69("p", { className: "m-t-2 m-x-2", children: formatMessage(search_messages_default.loading) });
|
|
3171
3440
|
}
|
|
3172
3441
|
return null;
|
|
3173
3442
|
}
|
|
3174
3443
|
var InlineSearchRendererComponent_default = InlineSearchRenderer;
|
|
3175
3444
|
|
|
3176
3445
|
// ../renderers/src/SearchRenderer/SearchRenderer.tsx
|
|
3177
|
-
import { jsx as
|
|
3446
|
+
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
3178
3447
|
var SearchRenderer = {
|
|
3179
3448
|
canRenderType: "search",
|
|
3180
|
-
render: (props) => props.control === "inline" ? /* @__PURE__ */
|
|
3449
|
+
render: (props) => props.control === "inline" ? /* @__PURE__ */ jsx70(InlineSearchRendererComponent_default, __spreadValues({}, props)) : /* @__PURE__ */ jsx70(BlockSearchRendererComponent_default, __spreadValues({}, props))
|
|
3181
3450
|
};
|
|
3182
3451
|
var SearchRenderer_default = SearchRenderer;
|
|
3183
3452
|
|
|
@@ -3206,12 +3475,12 @@ var getHeaderAction2 = (callToAction) => {
|
|
|
3206
3475
|
};
|
|
3207
3476
|
|
|
3208
3477
|
// ../renderers/src/SectionRenderer.tsx
|
|
3209
|
-
import { jsx as
|
|
3478
|
+
import { jsx as jsx71, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3210
3479
|
var SectionRenderer = {
|
|
3211
3480
|
canRenderType: "section",
|
|
3212
3481
|
render: ({ children, callToAction, margin, title }) => {
|
|
3213
|
-
return /* @__PURE__ */
|
|
3214
|
-
(title || callToAction) && /* @__PURE__ */
|
|
3482
|
+
return /* @__PURE__ */ jsxs21("section", { className: getMargin(margin), children: [
|
|
3483
|
+
(title || callToAction) && /* @__PURE__ */ jsx71(Header7, { title: title != null ? title : "", action: getHeaderAction2(callToAction) }),
|
|
3215
3484
|
children
|
|
3216
3485
|
] });
|
|
3217
3486
|
}
|
|
@@ -3220,7 +3489,7 @@ var SectionRenderer_default = SectionRenderer;
|
|
|
3220
3489
|
|
|
3221
3490
|
// ../renderers/src/SelectInputRenderer/RadioInputRendererComponent.tsx
|
|
3222
3491
|
import { RadioGroup } from "@transferwise/components";
|
|
3223
|
-
import { Fragment as
|
|
3492
|
+
import { Fragment as Fragment10, jsx as jsx72, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3224
3493
|
function RadioInputRendererComponent(props) {
|
|
3225
3494
|
const {
|
|
3226
3495
|
id,
|
|
@@ -3234,8 +3503,8 @@ function RadioInputRendererComponent(props) {
|
|
|
3234
3503
|
validationState,
|
|
3235
3504
|
onSelect
|
|
3236
3505
|
} = props;
|
|
3237
|
-
return /* @__PURE__ */
|
|
3238
|
-
/* @__PURE__ */
|
|
3506
|
+
return /* @__PURE__ */ jsxs22(Fragment10, { children: [
|
|
3507
|
+
/* @__PURE__ */ jsx72(
|
|
3239
3508
|
FieldInput_default,
|
|
3240
3509
|
{
|
|
3241
3510
|
id,
|
|
@@ -3243,7 +3512,7 @@ function RadioInputRendererComponent(props) {
|
|
|
3243
3512
|
help,
|
|
3244
3513
|
description,
|
|
3245
3514
|
validation: validationState,
|
|
3246
|
-
children: /* @__PURE__ */
|
|
3515
|
+
children: /* @__PURE__ */ jsx72("span", { children: /* @__PURE__ */ jsx72(
|
|
3247
3516
|
RadioGroup,
|
|
3248
3517
|
{
|
|
3249
3518
|
name: id,
|
|
@@ -3252,7 +3521,7 @@ function RadioInputRendererComponent(props) {
|
|
|
3252
3521
|
value: index,
|
|
3253
3522
|
secondary: option.description,
|
|
3254
3523
|
disabled: option.disabled || disabled,
|
|
3255
|
-
avatar: /* @__PURE__ */
|
|
3524
|
+
avatar: /* @__PURE__ */ jsx72(OptionMedia, { media: option.media, preferAvatar: false })
|
|
3256
3525
|
})),
|
|
3257
3526
|
selectedValue: selectedIndex != null ? selectedIndex : void 0,
|
|
3258
3527
|
onChange: onSelect
|
|
@@ -3267,8 +3536,8 @@ function RadioInputRendererComponent(props) {
|
|
|
3267
3536
|
|
|
3268
3537
|
// ../renderers/src/SelectInputRenderer/TabInputRendererComponent.tsx
|
|
3269
3538
|
import { Tabs } from "@transferwise/components";
|
|
3270
|
-
import { useEffect as
|
|
3271
|
-
import { Fragment as
|
|
3539
|
+
import { useEffect as useEffect9 } from "react";
|
|
3540
|
+
import { Fragment as Fragment11, jsx as jsx73, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3272
3541
|
function TabInputRendererComponent(props) {
|
|
3273
3542
|
const {
|
|
3274
3543
|
id,
|
|
@@ -3282,13 +3551,13 @@ function TabInputRendererComponent(props) {
|
|
|
3282
3551
|
validationState,
|
|
3283
3552
|
onSelect
|
|
3284
3553
|
} = props;
|
|
3285
|
-
|
|
3554
|
+
useEffect9(() => {
|
|
3286
3555
|
if (!isValidIndex2(selectedIndex, options.length)) {
|
|
3287
3556
|
onSelect(0);
|
|
3288
3557
|
}
|
|
3289
3558
|
}, [selectedIndex, onSelect, options.length]);
|
|
3290
|
-
return /* @__PURE__ */
|
|
3291
|
-
/* @__PURE__ */
|
|
3559
|
+
return /* @__PURE__ */ jsxs23(Fragment11, { children: [
|
|
3560
|
+
/* @__PURE__ */ jsx73(
|
|
3292
3561
|
FieldInput_default,
|
|
3293
3562
|
{
|
|
3294
3563
|
id,
|
|
@@ -3296,7 +3565,7 @@ function TabInputRendererComponent(props) {
|
|
|
3296
3565
|
help,
|
|
3297
3566
|
description,
|
|
3298
3567
|
validation: validationState,
|
|
3299
|
-
children: /* @__PURE__ */
|
|
3568
|
+
children: /* @__PURE__ */ jsx73(
|
|
3300
3569
|
Tabs,
|
|
3301
3570
|
{
|
|
3302
3571
|
name: id,
|
|
@@ -3305,7 +3574,7 @@ function TabInputRendererComponent(props) {
|
|
|
3305
3574
|
title: option.title,
|
|
3306
3575
|
// if we pass null, we get some props-types console errors
|
|
3307
3576
|
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
3308
|
-
content: /* @__PURE__ */
|
|
3577
|
+
content: /* @__PURE__ */ jsx73(Fragment11, {}),
|
|
3309
3578
|
disabled: option.disabled || disabled
|
|
3310
3579
|
})),
|
|
3311
3580
|
onTabSelect: onSelect
|
|
@@ -3320,7 +3589,7 @@ var isValidIndex2 = (index, options) => index !== null && index >= 0 && index <
|
|
|
3320
3589
|
|
|
3321
3590
|
// ../renderers/src/SelectInputRenderer/SelectInputRendererComponent.tsx
|
|
3322
3591
|
import { SelectInput as SelectInput2, SelectInputOptionContent as SelectInputOptionContent2 } from "@transferwise/components";
|
|
3323
|
-
import { Fragment as
|
|
3592
|
+
import { Fragment as Fragment12, jsx as jsx74, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3324
3593
|
function SelectInputRendererComponent(props) {
|
|
3325
3594
|
const {
|
|
3326
3595
|
id,
|
|
@@ -3360,13 +3629,13 @@ function SelectInputRendererComponent(props) {
|
|
|
3360
3629
|
} : {
|
|
3361
3630
|
title: option.title,
|
|
3362
3631
|
description: option.description,
|
|
3363
|
-
icon: /* @__PURE__ */
|
|
3632
|
+
icon: /* @__PURE__ */ jsx74(OptionMedia, { media: option.media, preferAvatar: false })
|
|
3364
3633
|
};
|
|
3365
|
-
return /* @__PURE__ */
|
|
3634
|
+
return /* @__PURE__ */ jsx74(SelectInputOptionContent2, __spreadValues({}, contentProps));
|
|
3366
3635
|
};
|
|
3367
3636
|
const extraProps = { autoComplete };
|
|
3368
|
-
return /* @__PURE__ */
|
|
3369
|
-
/* @__PURE__ */
|
|
3637
|
+
return /* @__PURE__ */ jsxs24(Fragment12, { children: [
|
|
3638
|
+
/* @__PURE__ */ jsx74(
|
|
3370
3639
|
FieldInput_default,
|
|
3371
3640
|
{
|
|
3372
3641
|
id,
|
|
@@ -3374,7 +3643,7 @@ function SelectInputRendererComponent(props) {
|
|
|
3374
3643
|
help,
|
|
3375
3644
|
description,
|
|
3376
3645
|
validation: validationState,
|
|
3377
|
-
children: /* @__PURE__ */
|
|
3646
|
+
children: /* @__PURE__ */ jsx74(
|
|
3378
3647
|
SelectInput2,
|
|
3379
3648
|
__spreadValues({
|
|
3380
3649
|
name: id,
|
|
@@ -3395,9 +3664,9 @@ function SelectInputRendererComponent(props) {
|
|
|
3395
3664
|
}
|
|
3396
3665
|
|
|
3397
3666
|
// ../renderers/src/SelectInputRenderer/SegmentedInputRendererComponent.tsx
|
|
3398
|
-
import { useEffect as
|
|
3667
|
+
import { useEffect as useEffect10 } from "react";
|
|
3399
3668
|
import { SegmentedControl } from "@transferwise/components";
|
|
3400
|
-
import { Fragment as
|
|
3669
|
+
import { Fragment as Fragment13, jsx as jsx75, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3401
3670
|
function SegmentedInputRendererComponent(props) {
|
|
3402
3671
|
const {
|
|
3403
3672
|
id,
|
|
@@ -3410,13 +3679,13 @@ function SegmentedInputRendererComponent(props) {
|
|
|
3410
3679
|
validationState,
|
|
3411
3680
|
onSelect
|
|
3412
3681
|
} = props;
|
|
3413
|
-
|
|
3682
|
+
useEffect10(() => {
|
|
3414
3683
|
if (!isValidIndex3(selectedIndex, options.length)) {
|
|
3415
3684
|
onSelect(0);
|
|
3416
3685
|
}
|
|
3417
3686
|
}, [selectedIndex, onSelect, options.length]);
|
|
3418
|
-
return /* @__PURE__ */
|
|
3419
|
-
/* @__PURE__ */
|
|
3687
|
+
return /* @__PURE__ */ jsxs25(Fragment13, { children: [
|
|
3688
|
+
/* @__PURE__ */ jsx75(
|
|
3420
3689
|
FieldInput_default,
|
|
3421
3690
|
{
|
|
3422
3691
|
id,
|
|
@@ -3424,7 +3693,7 @@ function SegmentedInputRendererComponent(props) {
|
|
|
3424
3693
|
help,
|
|
3425
3694
|
description,
|
|
3426
3695
|
validation: validationState,
|
|
3427
|
-
children: /* @__PURE__ */
|
|
3696
|
+
children: /* @__PURE__ */ jsx75(
|
|
3428
3697
|
SegmentedControl,
|
|
3429
3698
|
{
|
|
3430
3699
|
name: `${id}-segmented-control`,
|
|
@@ -3441,14 +3710,14 @@ function SegmentedInputRendererComponent(props) {
|
|
|
3441
3710
|
)
|
|
3442
3711
|
}
|
|
3443
3712
|
),
|
|
3444
|
-
/* @__PURE__ */
|
|
3713
|
+
/* @__PURE__ */ jsx75("div", { id: `${id}-children`, children })
|
|
3445
3714
|
] });
|
|
3446
3715
|
}
|
|
3447
3716
|
var isValidIndex3 = (index, options) => index !== null && index >= 0 && index < options;
|
|
3448
3717
|
|
|
3449
3718
|
// ../renderers/src/SelectInputRenderer/RadioItemRendererComponent.tsx
|
|
3450
|
-
import { Header as Header8, InlineAlert as InlineAlert4, List as List2, ListItem as
|
|
3451
|
-
import { Fragment as
|
|
3719
|
+
import { Header as Header8, InlineAlert as InlineAlert4, List as List2, ListItem as ListItem12 } from "@transferwise/components";
|
|
3720
|
+
import { Fragment as Fragment14, jsx as jsx76, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3452
3721
|
function RadioItemRendererComponent(props) {
|
|
3453
3722
|
const {
|
|
3454
3723
|
id,
|
|
@@ -3462,23 +3731,23 @@ function RadioItemRendererComponent(props) {
|
|
|
3462
3731
|
validationState,
|
|
3463
3732
|
onSelect
|
|
3464
3733
|
} = props;
|
|
3465
|
-
return /* @__PURE__ */
|
|
3466
|
-
rootTitle && /* @__PURE__ */
|
|
3734
|
+
return /* @__PURE__ */ jsxs26(Fragment14, { children: [
|
|
3735
|
+
rootTitle && /* @__PURE__ */ jsx76(
|
|
3467
3736
|
Header8,
|
|
3468
3737
|
{
|
|
3469
3738
|
as: "h2",
|
|
3470
|
-
title: help ? /* @__PURE__ */
|
|
3739
|
+
title: help ? /* @__PURE__ */ jsx76(LabelContentWithHelp, { text: rootTitle, help }) : rootTitle
|
|
3471
3740
|
}
|
|
3472
3741
|
),
|
|
3473
|
-
rootDescription && /* @__PURE__ */
|
|
3474
|
-
/* @__PURE__ */
|
|
3475
|
-
({ title, description, additionalText, inlineAlert, disabled, media, supportingValues }, index) => /* @__PURE__ */
|
|
3476
|
-
|
|
3742
|
+
rootDescription && /* @__PURE__ */ jsx76("p", { children: rootDescription }),
|
|
3743
|
+
/* @__PURE__ */ jsx76(List2, { children: options.map(
|
|
3744
|
+
({ title, description, additionalText, inlineAlert, disabled, media, supportingValues }, index) => /* @__PURE__ */ jsx76(
|
|
3745
|
+
ListItem12,
|
|
3477
3746
|
__spreadValues({
|
|
3478
3747
|
title,
|
|
3479
3748
|
subtitle: description,
|
|
3480
|
-
control: /* @__PURE__ */
|
|
3481
|
-
|
|
3749
|
+
control: /* @__PURE__ */ jsx76(
|
|
3750
|
+
ListItem12.Radio,
|
|
3482
3751
|
{
|
|
3483
3752
|
name: title,
|
|
3484
3753
|
checked: selectedIndex === index,
|
|
@@ -3493,50 +3762,50 @@ function RadioItemRendererComponent(props) {
|
|
|
3493
3762
|
title
|
|
3494
3763
|
)
|
|
3495
3764
|
) }, `${id}-${selectedIndex}`),
|
|
3496
|
-
(validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */
|
|
3765
|
+
(validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */ jsx76(InlineAlert4, { type: "negative", children: validationState.message }),
|
|
3497
3766
|
children
|
|
3498
3767
|
] });
|
|
3499
3768
|
}
|
|
3500
3769
|
|
|
3501
3770
|
// ../renderers/src/SelectInputRenderer/SelectInputRenderer.tsx
|
|
3502
|
-
import { jsx as
|
|
3771
|
+
import { jsx as jsx77 } from "react/jsx-runtime";
|
|
3503
3772
|
var SelectInputRenderer = {
|
|
3504
3773
|
canRenderType: "input-select",
|
|
3505
3774
|
render: (props) => {
|
|
3506
3775
|
switch (props.control) {
|
|
3507
3776
|
case "radio":
|
|
3508
|
-
return /* @__PURE__ */
|
|
3777
|
+
return /* @__PURE__ */ jsx77(RadioInputRendererComponent, __spreadValues({}, props));
|
|
3509
3778
|
case "radio-item":
|
|
3510
|
-
return /* @__PURE__ */
|
|
3779
|
+
return /* @__PURE__ */ jsx77(RadioItemRendererComponent, __spreadValues({}, props));
|
|
3511
3780
|
case "tab":
|
|
3512
|
-
return props.options.length > 3 ? /* @__PURE__ */
|
|
3781
|
+
return props.options.length > 3 ? /* @__PURE__ */ jsx77(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx77(TabInputRendererComponent, __spreadValues({}, props));
|
|
3513
3782
|
case "segmented":
|
|
3514
|
-
return props.options.length > 3 ? /* @__PURE__ */
|
|
3783
|
+
return props.options.length > 3 ? /* @__PURE__ */ jsx77(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx77(SegmentedInputRendererComponent, __spreadValues({}, props));
|
|
3515
3784
|
case "select":
|
|
3516
3785
|
default:
|
|
3517
|
-
return /* @__PURE__ */
|
|
3786
|
+
return /* @__PURE__ */ jsx77(SelectInputRendererComponent, __spreadValues({}, props));
|
|
3518
3787
|
}
|
|
3519
3788
|
}
|
|
3520
3789
|
};
|
|
3521
3790
|
var SelectInputRenderer_default = SelectInputRenderer;
|
|
3522
3791
|
|
|
3523
3792
|
// ../renderers/src/StatusListRenderer.tsx
|
|
3524
|
-
import { AvatarView as AvatarView4, Header as Header9, ListItem as
|
|
3525
|
-
import { jsx as
|
|
3793
|
+
import { AvatarView as AvatarView4, Header as Header9, ListItem as ListItem13 } from "@transferwise/components";
|
|
3794
|
+
import { jsx as jsx78, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3526
3795
|
var StatusListRenderer = {
|
|
3527
3796
|
canRenderType: "status-list",
|
|
3528
|
-
render: ({ margin, items, title }) => /* @__PURE__ */
|
|
3529
|
-
title ? /* @__PURE__ */
|
|
3797
|
+
render: ({ margin, items, title }) => /* @__PURE__ */ jsxs27("div", { className: getMargin(margin), children: [
|
|
3798
|
+
title ? /* @__PURE__ */ jsx78(Header9, { title }) : null,
|
|
3530
3799
|
items.map((item) => {
|
|
3531
3800
|
const { callToAction, description, icon, status, title: itemTitle } = item;
|
|
3532
|
-
return /* @__PURE__ */
|
|
3533
|
-
|
|
3801
|
+
return /* @__PURE__ */ jsx78(
|
|
3802
|
+
ListItem13,
|
|
3534
3803
|
{
|
|
3535
3804
|
title: itemTitle,
|
|
3536
3805
|
subtitle: description,
|
|
3537
|
-
media: icon && "name" in icon ? /* @__PURE__ */
|
|
3538
|
-
additionalInfo: callToAction ? /* @__PURE__ */
|
|
3539
|
-
|
|
3806
|
+
media: icon && "name" in icon ? /* @__PURE__ */ jsx78(AvatarView4, { badge: { status: mapStatus(status) }, children: /* @__PURE__ */ jsx78(DynamicIcon_default, { name: icon.name }) }) : void 0,
|
|
3807
|
+
additionalInfo: callToAction ? /* @__PURE__ */ jsx78(
|
|
3808
|
+
ListItem13.AdditionalInfo,
|
|
3540
3809
|
{
|
|
3541
3810
|
action: {
|
|
3542
3811
|
href: callToAction.href,
|
|
@@ -3566,12 +3835,12 @@ var StatusListRenderer_default = StatusListRenderer;
|
|
|
3566
3835
|
|
|
3567
3836
|
// ../renderers/src/utils/useCustomTheme.ts
|
|
3568
3837
|
import { useTheme } from "@wise/components-theming";
|
|
3569
|
-
import { useEffect as
|
|
3838
|
+
import { useEffect as useEffect11, useMemo } from "react";
|
|
3570
3839
|
var ThemeRequiredEventName = "Theme Required";
|
|
3571
3840
|
var useCustomTheme = (theme, trackEvent) => {
|
|
3572
3841
|
const theming = useTheme();
|
|
3573
3842
|
const previousTheme = useMemo(() => theming.theme, []);
|
|
3574
|
-
|
|
3843
|
+
useEffect11(() => {
|
|
3575
3844
|
theming.setTheme(theme);
|
|
3576
3845
|
trackEvent(ThemeRequiredEventName, { theme });
|
|
3577
3846
|
return theme !== previousTheme ? () => {
|
|
@@ -3582,86 +3851,14 @@ var useCustomTheme = (theme, trackEvent) => {
|
|
|
3582
3851
|
}, []);
|
|
3583
3852
|
};
|
|
3584
3853
|
|
|
3585
|
-
// ../renderers/src/step/StepFooter.tsx
|
|
3586
|
-
import { Button as Button7 } from "@transferwise/components";
|
|
3587
|
-
import { useEffect as useEffect10, useRef, useState as useState12 } from "react";
|
|
3588
|
-
import { useIntl as useIntl14 } from "react-intl";
|
|
3589
|
-
|
|
3590
|
-
// ../renderers/src/messages/step.messages.ts
|
|
3591
|
-
import { defineMessages as defineMessages11 } from "react-intl";
|
|
3592
|
-
var step_messages_default = defineMessages11({
|
|
3593
|
-
scrollToBottom: {
|
|
3594
|
-
id: "df.wise.step.scrollToBottom",
|
|
3595
|
-
defaultMessage: "Scroll to bottom",
|
|
3596
|
-
description: "Label for a button that appears when the content of a step is too long and the user needs to scroll to the bottom to see all the content."
|
|
3597
|
-
}
|
|
3598
|
-
});
|
|
3599
|
-
|
|
3600
|
-
// ../renderers/src/step/StepFooter.tsx
|
|
3601
|
-
import { Fragment as Fragment13, jsx as jsx76, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3602
|
-
var SCROLL_TO_BOTTOM = "scroll-to-bottom";
|
|
3603
|
-
var StepFooter = ({ footer, tags }) => {
|
|
3604
|
-
if (tags == null ? void 0 : tags.includes(SCROLL_TO_BOTTOM)) {
|
|
3605
|
-
return /* @__PURE__ */ jsx76(FooterWithScrollButton, { footer });
|
|
3606
|
-
}
|
|
3607
|
-
return /* @__PURE__ */ jsx76(DefaultFooter, { footer });
|
|
3608
|
-
};
|
|
3609
|
-
var DefaultFooter = ({ footer }) => {
|
|
3610
|
-
const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
|
|
3611
|
-
return hasFooter ? /* @__PURE__ */ jsx76("div", { className: "df-step-fixed__footer", children: footer }) : void 0;
|
|
3612
|
-
};
|
|
3613
|
-
var FooterWithScrollButton = ({ footer }) => {
|
|
3614
|
-
const { formatMessage } = useIntl14();
|
|
3615
|
-
const endOfLayoutRef = useRef(null);
|
|
3616
|
-
const isElementVisible = useIsElementVisible(endOfLayoutRef);
|
|
3617
|
-
const scrollButton = /* @__PURE__ */ jsx76(
|
|
3618
|
-
Button7,
|
|
3619
|
-
{
|
|
3620
|
-
className: "m-b-1",
|
|
3621
|
-
v2: true,
|
|
3622
|
-
block: true,
|
|
3623
|
-
priority: "tertiary",
|
|
3624
|
-
onClick: () => {
|
|
3625
|
-
var _a;
|
|
3626
|
-
(_a = endOfLayoutRef.current) == null ? void 0 : _a.scrollIntoView({ behavior: "smooth" });
|
|
3627
|
-
},
|
|
3628
|
-
children: formatMessage(step_messages_default.scrollToBottom)
|
|
3629
|
-
}
|
|
3630
|
-
);
|
|
3631
|
-
const hasStepFooterContent = footer && Array.isArray(footer) && footer.length > 0;
|
|
3632
|
-
if (isElementVisible && !hasStepFooterContent) {
|
|
3633
|
-
return /* @__PURE__ */ jsx76("div", { ref: endOfLayoutRef, "aria-hidden": "true" });
|
|
3634
|
-
}
|
|
3635
|
-
return /* @__PURE__ */ jsxs26(Fragment13, { children: [
|
|
3636
|
-
/* @__PURE__ */ jsx76("div", { ref: endOfLayoutRef, "aria-hidden": "true" }),
|
|
3637
|
-
/* @__PURE__ */ jsxs26("div", { className: "df-step-fixed__footer", children: [
|
|
3638
|
-
!isElementVisible && scrollButton,
|
|
3639
|
-
footer
|
|
3640
|
-
] })
|
|
3641
|
-
] });
|
|
3642
|
-
};
|
|
3643
|
-
var useIsElementVisible = (elementRef) => {
|
|
3644
|
-
const [isVisible, setIsVisible] = useState12(false);
|
|
3645
|
-
useEffect10(() => {
|
|
3646
|
-
const element = elementRef.current;
|
|
3647
|
-
if (!element) return;
|
|
3648
|
-
const observer = new IntersectionObserver(([entry]) => {
|
|
3649
|
-
setIsVisible(entry.isIntersecting);
|
|
3650
|
-
});
|
|
3651
|
-
observer.observe(element);
|
|
3652
|
-
return () => observer.disconnect();
|
|
3653
|
-
}, [elementRef]);
|
|
3654
|
-
return isVisible;
|
|
3655
|
-
};
|
|
3656
|
-
|
|
3657
3854
|
// ../renderers/src/step/StepHeader.tsx
|
|
3658
3855
|
import { Title as Title2 } from "@transferwise/components";
|
|
3659
|
-
import { Fragment as
|
|
3856
|
+
import { Fragment as Fragment15, jsx as jsx79, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3660
3857
|
var StepHeader = ({ title, description, tags }) => {
|
|
3661
3858
|
const { titleType, alignmentClassName } = getHeaderStyle(tags);
|
|
3662
|
-
return /* @__PURE__ */
|
|
3663
|
-
title ? /* @__PURE__ */
|
|
3664
|
-
description ? /* @__PURE__ */
|
|
3859
|
+
return /* @__PURE__ */ jsxs28(Fragment15, { children: [
|
|
3860
|
+
title ? /* @__PURE__ */ jsx79(Title2, { as: "h1", type: titleType, className: `${alignmentClassName} m-b-2`, children: title }) : void 0,
|
|
3861
|
+
description ? /* @__PURE__ */ jsx79("p", { className: `${alignmentClassName} np-text-body-large`, children: description }) : void 0
|
|
3665
3862
|
] });
|
|
3666
3863
|
};
|
|
3667
3864
|
var getHeaderStyle = (tags) => {
|
|
@@ -3687,30 +3884,30 @@ var back_messages_default = defineMessages12({
|
|
|
3687
3884
|
});
|
|
3688
3885
|
|
|
3689
3886
|
// ../renderers/src/step/topbar/BackButton.tsx
|
|
3690
|
-
import { jsx as
|
|
3887
|
+
import { jsx as jsx80, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3691
3888
|
function BackButton({ title, onClick }) {
|
|
3692
3889
|
const { formatMessage } = useIntl15();
|
|
3693
|
-
return /* @__PURE__ */
|
|
3694
|
-
/* @__PURE__ */
|
|
3695
|
-
/* @__PURE__ */
|
|
3890
|
+
return /* @__PURE__ */ jsxs29(IconButton, { className: "df-back-button", priority: "tertiary", onClick, children: [
|
|
3891
|
+
/* @__PURE__ */ jsx80("span", { className: "sr-only", children: title != null ? title : formatMessage(back_messages_default.back) }),
|
|
3892
|
+
/* @__PURE__ */ jsx80(ArrowLeft, {})
|
|
3696
3893
|
] });
|
|
3697
3894
|
}
|
|
3698
3895
|
|
|
3699
3896
|
// ../renderers/src/step/topbar/Toolbar.tsx
|
|
3700
3897
|
import { Button as Button8, IconButton as IconButton2 } from "@transferwise/components";
|
|
3701
|
-
import { jsx as
|
|
3898
|
+
import { jsx as jsx81, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3702
3899
|
var Toolbar = ({ items }) => {
|
|
3703
|
-
return (items == null ? void 0 : items.length) > 0 ? /* @__PURE__ */
|
|
3900
|
+
return (items == null ? void 0 : items.length) > 0 ? /* @__PURE__ */ jsx81("div", { className: "df-toolbar", children: items.map((item, index) => /* @__PURE__ */ jsx81(ToolbarButton, __spreadValues({}, item), `${item.type}-${index}-${item.title}`)) }) : null;
|
|
3704
3901
|
};
|
|
3705
3902
|
function ToolbarButton(props) {
|
|
3706
|
-
return prefersMedia(props.control) ? /* @__PURE__ */
|
|
3903
|
+
return prefersMedia(props.control) ? /* @__PURE__ */ jsx81(MediaToolbarButton, __spreadValues({}, props)) : /* @__PURE__ */ jsx81(TextToolbarButton, __spreadValues({}, props));
|
|
3707
3904
|
}
|
|
3708
3905
|
function MediaToolbarButton(props) {
|
|
3709
3906
|
var _a;
|
|
3710
3907
|
const { context, control, media, accessibilityDescription, disabled, onClick } = props;
|
|
3711
3908
|
const priority = getIconButtonPriority(control);
|
|
3712
3909
|
const type = getSentiment2(context);
|
|
3713
|
-
return /* @__PURE__ */
|
|
3910
|
+
return /* @__PURE__ */ jsxs30(
|
|
3714
3911
|
IconButton2,
|
|
3715
3912
|
{
|
|
3716
3913
|
className: "df-toolbar-button",
|
|
@@ -3720,7 +3917,7 @@ function MediaToolbarButton(props) {
|
|
|
3720
3917
|
type,
|
|
3721
3918
|
onClick,
|
|
3722
3919
|
children: [
|
|
3723
|
-
accessibilityDescription ? /* @__PURE__ */
|
|
3920
|
+
accessibilityDescription ? /* @__PURE__ */ jsx81("span", { className: "sr-only", children: accessibilityDescription }) : null,
|
|
3724
3921
|
media ? (_a = getAddonStartMedia(media)) == null ? void 0 : _a.value : null
|
|
3725
3922
|
]
|
|
3726
3923
|
}
|
|
@@ -3731,7 +3928,7 @@ function TextToolbarButton(props) {
|
|
|
3731
3928
|
const addonStart = media ? getAddonStartMedia(media) : void 0;
|
|
3732
3929
|
const priority = getPriority2(control);
|
|
3733
3930
|
const sentiment = getSentiment2(context);
|
|
3734
|
-
return /* @__PURE__ */
|
|
3931
|
+
return /* @__PURE__ */ jsx81(
|
|
3735
3932
|
Button8,
|
|
3736
3933
|
{
|
|
3737
3934
|
v2: true,
|
|
@@ -3761,16 +3958,16 @@ var getIconButtonPriority = (control) => {
|
|
|
3761
3958
|
};
|
|
3762
3959
|
|
|
3763
3960
|
// ../renderers/src/step/topbar/TopBar.tsx
|
|
3764
|
-
import { jsx as
|
|
3961
|
+
import { jsx as jsx82, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3765
3962
|
function TopBar({ back, toolbar }) {
|
|
3766
|
-
return back || toolbar ? /* @__PURE__ */
|
|
3767
|
-
back ? /* @__PURE__ */
|
|
3768
|
-
toolbar ? /* @__PURE__ */
|
|
3963
|
+
return back || toolbar ? /* @__PURE__ */ jsxs31("div", { className: "d-flex m-b-2", children: [
|
|
3964
|
+
back ? /* @__PURE__ */ jsx82(BackButton, __spreadValues({}, back)) : null,
|
|
3965
|
+
toolbar ? /* @__PURE__ */ jsx82(Toolbar, __spreadValues({}, toolbar)) : null
|
|
3769
3966
|
] }) : null;
|
|
3770
3967
|
}
|
|
3771
3968
|
|
|
3772
3969
|
// ../renderers/src/step/SplashCelebrationStepRenderer.tsx
|
|
3773
|
-
import { jsx as
|
|
3970
|
+
import { jsx as jsx83, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3774
3971
|
var SplashCelebrationStepRenderer = {
|
|
3775
3972
|
canRenderType: "step",
|
|
3776
3973
|
canRender: ({ control }) => control === "splash-celebration",
|
|
@@ -3779,16 +3976,16 @@ var SplashCelebrationStepRenderer = {
|
|
|
3779
3976
|
function SplashCelebrationStepRendererComponent(props) {
|
|
3780
3977
|
const { back, title, description, toolbar, children, footer, tags, trackEvent } = props;
|
|
3781
3978
|
useCustomTheme("forest-green", trackEvent);
|
|
3782
|
-
return /* @__PURE__ */
|
|
3783
|
-
/* @__PURE__ */
|
|
3784
|
-
title || description ? /* @__PURE__ */
|
|
3979
|
+
return /* @__PURE__ */ jsxs32("div", { className: "splash-screen m-t-5", children: [
|
|
3980
|
+
/* @__PURE__ */ jsx83(TopBar, { back, toolbar }),
|
|
3981
|
+
title || description ? /* @__PURE__ */ jsx83("div", { className: "m-b-4", children: /* @__PURE__ */ jsx83(StepHeader, { title, description, tags }) }) : void 0,
|
|
3785
3982
|
children,
|
|
3786
|
-
/* @__PURE__ */
|
|
3983
|
+
/* @__PURE__ */ jsx83(StepFooter, { footer, tags })
|
|
3787
3984
|
] });
|
|
3788
3985
|
}
|
|
3789
3986
|
|
|
3790
3987
|
// ../renderers/src/step/SplashStepRenderer.tsx
|
|
3791
|
-
import { jsx as
|
|
3988
|
+
import { jsx as jsx84, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
3792
3989
|
var SplashStepRenderer = {
|
|
3793
3990
|
canRenderType: "step",
|
|
3794
3991
|
canRender: ({ control }) => control === "splash",
|
|
@@ -3796,55 +3993,55 @@ var SplashStepRenderer = {
|
|
|
3796
3993
|
};
|
|
3797
3994
|
function SplashStepRendererComponent(props) {
|
|
3798
3995
|
const { back, title, description, toolbar, children, footer, tags } = props;
|
|
3799
|
-
return /* @__PURE__ */
|
|
3800
|
-
/* @__PURE__ */
|
|
3801
|
-
title || description ? /* @__PURE__ */
|
|
3996
|
+
return /* @__PURE__ */ jsxs33("div", { className: "splash-screen m-t-5", children: [
|
|
3997
|
+
/* @__PURE__ */ jsx84(TopBar, { back, toolbar }),
|
|
3998
|
+
title || description ? /* @__PURE__ */ jsx84("div", { className: "m-b-4", children: /* @__PURE__ */ jsx84(StepHeader, { title, description, tags }) }) : void 0,
|
|
3802
3999
|
children,
|
|
3803
|
-
/* @__PURE__ */
|
|
4000
|
+
/* @__PURE__ */ jsx84(StepFooter, { footer, tags })
|
|
3804
4001
|
] });
|
|
3805
4002
|
}
|
|
3806
4003
|
|
|
3807
4004
|
// ../renderers/src/step/StepRenderer.tsx
|
|
3808
4005
|
import { Alert as Alert2 } from "@transferwise/components";
|
|
3809
|
-
import { jsx as
|
|
4006
|
+
import { jsx as jsx85, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
3810
4007
|
var StepRenderer = {
|
|
3811
4008
|
canRenderType: "step",
|
|
3812
4009
|
render: StepRendererComponent
|
|
3813
4010
|
};
|
|
3814
4011
|
function StepRendererComponent(props) {
|
|
3815
4012
|
const { back, description, error, title, children, toolbar, footer, tags } = props;
|
|
3816
|
-
return /* @__PURE__ */
|
|
3817
|
-
/* @__PURE__ */
|
|
3818
|
-
title || description ? /* @__PURE__ */
|
|
3819
|
-
error ? /* @__PURE__ */
|
|
4013
|
+
return /* @__PURE__ */ jsxs34("div", { children: [
|
|
4014
|
+
/* @__PURE__ */ jsx85(TopBar, { back, toolbar }),
|
|
4015
|
+
title || description ? /* @__PURE__ */ jsx85("div", { className: "m-b-4", children: /* @__PURE__ */ jsx85(StepHeader, { title, description, tags }) }) : void 0,
|
|
4016
|
+
error ? /* @__PURE__ */ jsx85(Alert2, { type: "negative", className: "m-b-2", message: error }) : null,
|
|
3820
4017
|
children,
|
|
3821
|
-
/* @__PURE__ */
|
|
4018
|
+
/* @__PURE__ */ jsx85(StepFooter, { footer, tags })
|
|
3822
4019
|
] });
|
|
3823
4020
|
}
|
|
3824
4021
|
|
|
3825
4022
|
// ../renderers/src/TabsRenderer.tsx
|
|
3826
|
-
import { Chips, SegmentedControl as SegmentedControl2, Tabs as Tabs2 } from "@transferwise/components";
|
|
4023
|
+
import { Chips as Chips2, SegmentedControl as SegmentedControl2, Tabs as Tabs2 } from "@transferwise/components";
|
|
3827
4024
|
import { useState as useState13 } from "react";
|
|
3828
|
-
import { jsx as
|
|
4025
|
+
import { jsx as jsx86, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
3829
4026
|
var TabsRenderer = {
|
|
3830
4027
|
canRenderType: "tabs",
|
|
3831
4028
|
render: (props) => {
|
|
3832
4029
|
switch (props.control) {
|
|
3833
4030
|
case "segmented":
|
|
3834
4031
|
if (props.tabs.length > 3) {
|
|
3835
|
-
return /* @__PURE__ */
|
|
4032
|
+
return /* @__PURE__ */ jsx86(TabsRendererComponent, __spreadValues({}, props));
|
|
3836
4033
|
}
|
|
3837
|
-
return /* @__PURE__ */
|
|
4034
|
+
return /* @__PURE__ */ jsx86(SegmentedTabsRendererComponent, __spreadValues({}, props));
|
|
3838
4035
|
case "chips":
|
|
3839
|
-
return /* @__PURE__ */
|
|
4036
|
+
return /* @__PURE__ */ jsx86(ChipsTabsRendererComponent, __spreadValues({}, props));
|
|
3840
4037
|
default:
|
|
3841
|
-
return /* @__PURE__ */
|
|
4038
|
+
return /* @__PURE__ */ jsx86(TabsRendererComponent, __spreadValues({}, props));
|
|
3842
4039
|
}
|
|
3843
4040
|
}
|
|
3844
4041
|
};
|
|
3845
4042
|
function TabsRendererComponent({ uid, margin, tabs }) {
|
|
3846
4043
|
const [selectedIndex, setSelectedIndex] = useState13(0);
|
|
3847
|
-
return /* @__PURE__ */
|
|
4044
|
+
return /* @__PURE__ */ jsx86("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx86(
|
|
3848
4045
|
Tabs2,
|
|
3849
4046
|
{
|
|
3850
4047
|
name: uid,
|
|
@@ -3852,7 +4049,7 @@ function TabsRendererComponent({ uid, margin, tabs }) {
|
|
|
3852
4049
|
tabs: tabs.map((option) => ({
|
|
3853
4050
|
title: option.title,
|
|
3854
4051
|
disabled: false,
|
|
3855
|
-
content: /* @__PURE__ */
|
|
4052
|
+
content: /* @__PURE__ */ jsxs35("div", { className: "m-t-2", children: [
|
|
3856
4053
|
" ",
|
|
3857
4054
|
option.children,
|
|
3858
4055
|
" "
|
|
@@ -3865,8 +4062,8 @@ function TabsRendererComponent({ uid, margin, tabs }) {
|
|
|
3865
4062
|
function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
|
|
3866
4063
|
var _a;
|
|
3867
4064
|
const [selectedIndex, setSelectedIndex] = useState13(0);
|
|
3868
|
-
return /* @__PURE__ */
|
|
3869
|
-
/* @__PURE__ */
|
|
4065
|
+
return /* @__PURE__ */ jsxs35("div", { className: getMargin(margin), children: [
|
|
4066
|
+
/* @__PURE__ */ jsx86(
|
|
3870
4067
|
SegmentedControl2,
|
|
3871
4068
|
{
|
|
3872
4069
|
name: uid,
|
|
@@ -3881,37 +4078,37 @@ function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
|
|
|
3881
4078
|
onChange: (value) => setSelectedIndex(Number(value))
|
|
3882
4079
|
}
|
|
3883
4080
|
),
|
|
3884
|
-
/* @__PURE__ */
|
|
4081
|
+
/* @__PURE__ */ jsx86("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
|
|
3885
4082
|
] });
|
|
3886
4083
|
}
|
|
3887
4084
|
function ChipsTabsRendererComponent({ margin, tabs }) {
|
|
3888
4085
|
var _a;
|
|
3889
4086
|
const [selectedIndex, setSelectedIndex] = useState13(0);
|
|
3890
|
-
return /* @__PURE__ */
|
|
3891
|
-
/* @__PURE__ */
|
|
3892
|
-
|
|
4087
|
+
return /* @__PURE__ */ jsxs35("div", { className: getMargin(margin), children: [
|
|
4088
|
+
/* @__PURE__ */ jsx86("div", { className: "chips-container", children: /* @__PURE__ */ jsx86(
|
|
4089
|
+
Chips2,
|
|
3893
4090
|
{
|
|
3894
4091
|
chips: tabs.map((tab, index) => ({ label: tab.title, value: index })),
|
|
3895
4092
|
selected: selectedIndex,
|
|
3896
4093
|
onChange: ({ selectedValue }) => setSelectedIndex(Number(selectedValue))
|
|
3897
4094
|
}
|
|
3898
4095
|
) }),
|
|
3899
|
-
/* @__PURE__ */
|
|
4096
|
+
/* @__PURE__ */ jsx86("div", { className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
|
|
3900
4097
|
] });
|
|
3901
4098
|
}
|
|
3902
4099
|
|
|
3903
4100
|
// ../renderers/src/TextInputRenderer.tsx
|
|
3904
|
-
import { InputGroup as
|
|
4101
|
+
import { InputGroup as InputGroup5 } from "@transferwise/components";
|
|
3905
4102
|
|
|
3906
4103
|
// ../renderers/src/components/VariableTextInput.tsx
|
|
3907
4104
|
import {
|
|
3908
|
-
Input as
|
|
4105
|
+
Input as Input6,
|
|
3909
4106
|
InputWithDisplayFormat,
|
|
3910
4107
|
PhoneNumberInput,
|
|
3911
4108
|
TextArea,
|
|
3912
4109
|
TextareaWithDisplayFormat
|
|
3913
4110
|
} from "@transferwise/components";
|
|
3914
|
-
import { jsx as
|
|
4111
|
+
import { jsx as jsx87 } from "react/jsx-runtime";
|
|
3915
4112
|
var commonKeys = [
|
|
3916
4113
|
"autoComplete",
|
|
3917
4114
|
"autoCapitalize",
|
|
@@ -3930,12 +4127,12 @@ function VariableTextInput(inputProps) {
|
|
|
3930
4127
|
const commonProps = __spreadProps(__spreadValues({}, pick(inputProps, ...commonKeys)), { name: id });
|
|
3931
4128
|
switch (control) {
|
|
3932
4129
|
case "email":
|
|
3933
|
-
return /* @__PURE__ */
|
|
4130
|
+
return /* @__PURE__ */ jsx87(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
|
|
3934
4131
|
case "password":
|
|
3935
|
-
return /* @__PURE__ */
|
|
4132
|
+
return /* @__PURE__ */ jsx87(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
|
|
3936
4133
|
case "numeric": {
|
|
3937
4134
|
const numericProps = __spreadProps(__spreadValues({}, commonProps), { type: "number", onWheel });
|
|
3938
|
-
return /* @__PURE__ */
|
|
4135
|
+
return /* @__PURE__ */ jsx87(
|
|
3939
4136
|
TextInput,
|
|
3940
4137
|
__spreadProps(__spreadValues({}, numericProps), {
|
|
3941
4138
|
onChange: (newValue) => {
|
|
@@ -3946,21 +4143,21 @@ function VariableTextInput(inputProps) {
|
|
|
3946
4143
|
);
|
|
3947
4144
|
}
|
|
3948
4145
|
case "phone-number":
|
|
3949
|
-
return /* @__PURE__ */
|
|
4146
|
+
return /* @__PURE__ */ jsx87(PhoneNumberInput, __spreadProps(__spreadValues({ initialValue: value }, commonProps), { onChange }));
|
|
3950
4147
|
default: {
|
|
3951
|
-
return /* @__PURE__ */
|
|
4148
|
+
return /* @__PURE__ */ jsx87(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "text", onChange }));
|
|
3952
4149
|
}
|
|
3953
4150
|
}
|
|
3954
4151
|
}
|
|
3955
4152
|
function TextInput(props) {
|
|
3956
4153
|
const _a = props, { control, displayFormat, onChange } = _a, commonProps = __objRest(_a, ["control", "displayFormat", "onChange"]);
|
|
3957
4154
|
const InputWithPattern = control === "textarea" ? TextareaWithDisplayFormat : InputWithDisplayFormat;
|
|
3958
|
-
const InputWithoutPattern = control === "textarea" ? TextArea :
|
|
3959
|
-
return displayFormat ? /* @__PURE__ */
|
|
4155
|
+
const InputWithoutPattern = control === "textarea" ? TextArea : Input6;
|
|
4156
|
+
return displayFormat ? /* @__PURE__ */ jsx87(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ jsx87(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { onChange: (e) => onChange(e.target.value) }));
|
|
3960
4157
|
}
|
|
3961
4158
|
|
|
3962
4159
|
// ../renderers/src/TextInputRenderer.tsx
|
|
3963
|
-
import { jsx as
|
|
4160
|
+
import { jsx as jsx88 } from "react/jsx-runtime";
|
|
3964
4161
|
var TextInputRenderer = {
|
|
3965
4162
|
canRenderType: "input-text",
|
|
3966
4163
|
render: (props) => {
|
|
@@ -3993,7 +4190,7 @@ var TextInputRenderer = {
|
|
|
3993
4190
|
}
|
|
3994
4191
|
}
|
|
3995
4192
|
});
|
|
3996
|
-
return /* @__PURE__ */
|
|
4193
|
+
return /* @__PURE__ */ jsx88(
|
|
3997
4194
|
FieldInput_default,
|
|
3998
4195
|
{
|
|
3999
4196
|
id,
|
|
@@ -4001,7 +4198,7 @@ var TextInputRenderer = {
|
|
|
4001
4198
|
description,
|
|
4002
4199
|
validation: validationState,
|
|
4003
4200
|
help,
|
|
4004
|
-
children: /* @__PURE__ */
|
|
4201
|
+
children: /* @__PURE__ */ jsx88(InputGroup5, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx88(VariableTextInput, __spreadValues({}, inputProps)) })
|
|
4005
4202
|
}
|
|
4006
4203
|
);
|
|
4007
4204
|
}
|
|
@@ -4015,7 +4212,7 @@ import { Status as Status2, Upload, UploadInput as UploadInput2 } from "@transfe
|
|
|
4015
4212
|
var getRandomId = () => Math.random().toString(36).substring(2);
|
|
4016
4213
|
|
|
4017
4214
|
// ../renderers/src/UploadInputRenderer.tsx
|
|
4018
|
-
import { jsx as
|
|
4215
|
+
import { jsx as jsx89 } from "react/jsx-runtime";
|
|
4019
4216
|
var UploadInputRenderer = {
|
|
4020
4217
|
canRenderType: "input-upload",
|
|
4021
4218
|
render: (props) => {
|
|
@@ -4031,14 +4228,14 @@ var UploadInputRenderer = {
|
|
|
4031
4228
|
};
|
|
4032
4229
|
return (
|
|
4033
4230
|
// We don't pass help here as there is no sensible place to display it
|
|
4034
|
-
/* @__PURE__ */
|
|
4231
|
+
/* @__PURE__ */ jsx89(
|
|
4035
4232
|
UploadFieldInput_default,
|
|
4036
4233
|
{
|
|
4037
4234
|
id,
|
|
4038
4235
|
label: void 0,
|
|
4039
4236
|
description: void 0,
|
|
4040
4237
|
validation: validationState,
|
|
4041
|
-
children: /* @__PURE__ */
|
|
4238
|
+
children: /* @__PURE__ */ jsx89(
|
|
4042
4239
|
UploadInput2,
|
|
4043
4240
|
{
|
|
4044
4241
|
id,
|
|
@@ -4104,7 +4301,7 @@ var LargeUploadRenderer = {
|
|
|
4104
4301
|
};
|
|
4105
4302
|
const filetypes = acceptsToFileTypes(accepts);
|
|
4106
4303
|
const usAccept = filetypes === "*" ? "*" : filetypes.join(",");
|
|
4107
|
-
return /* @__PURE__ */
|
|
4304
|
+
return /* @__PURE__ */ jsx89(
|
|
4108
4305
|
FieldInput_default,
|
|
4109
4306
|
{
|
|
4110
4307
|
id,
|
|
@@ -4112,7 +4309,7 @@ var LargeUploadRenderer = {
|
|
|
4112
4309
|
description,
|
|
4113
4310
|
validation: validationState,
|
|
4114
4311
|
help,
|
|
4115
|
-
children: /* @__PURE__ */
|
|
4312
|
+
children: /* @__PURE__ */ jsx89(
|
|
4116
4313
|
Upload,
|
|
4117
4314
|
__spreadProps(__spreadValues({}, uploadProps), {
|
|
4118
4315
|
usAccept,
|
|
@@ -4130,7 +4327,7 @@ var LargeUploadRenderer = {
|
|
|
4130
4327
|
// ../renderers/src/UpsellRenderer.tsx
|
|
4131
4328
|
import { Nudge } from "@transferwise/components";
|
|
4132
4329
|
import { useState as useState14 } from "react";
|
|
4133
|
-
import { jsx as
|
|
4330
|
+
import { jsx as jsx90 } from "react/jsx-runtime";
|
|
4134
4331
|
var UpsellRenderer = {
|
|
4135
4332
|
canRenderType: "upsell",
|
|
4136
4333
|
render: UpsellRendererComponent
|
|
@@ -4138,7 +4335,7 @@ var UpsellRenderer = {
|
|
|
4138
4335
|
function UpsellRendererComponent(props) {
|
|
4139
4336
|
const { text, callToAction, media, margin, onDismiss } = props;
|
|
4140
4337
|
const [isVisible, setIsVisible] = useState14(true);
|
|
4141
|
-
return isVisible ? /* @__PURE__ */
|
|
4338
|
+
return isVisible ? /* @__PURE__ */ jsx90(
|
|
4142
4339
|
Nudge,
|
|
4143
4340
|
{
|
|
4144
4341
|
className: getMargin(margin),
|
|
@@ -4190,7 +4387,7 @@ var supportedMediaNames = [
|
|
|
4190
4387
|
// ../renderers/src/ButtonRenderer/CircularButtonRenderer.tsx
|
|
4191
4388
|
import { CircularButton } from "@transferwise/components";
|
|
4192
4389
|
var import_classnames7 = __toESM(require_classnames());
|
|
4193
|
-
import { jsx as
|
|
4390
|
+
import { jsx as jsx91 } from "react/jsx-runtime";
|
|
4194
4391
|
var CircularButtonRenderer = {
|
|
4195
4392
|
canRenderType: "button",
|
|
4196
4393
|
canRender: ({ control }) => control === "circular",
|
|
@@ -4200,7 +4397,7 @@ function CircularButtonComponent(props) {
|
|
|
4200
4397
|
var _a;
|
|
4201
4398
|
const { context, disabled, margin, media, tags, title, onClick } = props;
|
|
4202
4399
|
const priority = tags == null ? void 0 : tags.find((tag) => tag === "primary" || tag === "secondary");
|
|
4203
|
-
return /* @__PURE__ */
|
|
4400
|
+
return /* @__PURE__ */ jsx91("div", { className: (0, import_classnames7.default)(getMargin(margin), "df-button", "circular"), children: /* @__PURE__ */ jsx91(
|
|
4204
4401
|
CircularButton,
|
|
4205
4402
|
{
|
|
4206
4403
|
disabled,
|
|
@@ -4220,6 +4417,7 @@ var getWiseRenderers = () => [
|
|
|
4220
4417
|
CheckboxInputRenderer_default,
|
|
4221
4418
|
CircularButtonRenderer,
|
|
4222
4419
|
BoxRenderer_default,
|
|
4420
|
+
CollectionRenderer_default,
|
|
4223
4421
|
ButtonRenderer,
|
|
4224
4422
|
ColumnsRenderer_default,
|
|
4225
4423
|
DateInputRenderer_default,
|
|
@@ -4264,11 +4462,11 @@ var getWiseRenderers = () => [
|
|
|
4264
4462
|
|
|
4265
4463
|
// ../renderers/src/InitialLoadingStateRenderer.tsx
|
|
4266
4464
|
import { Loader as Loader2 } from "@transferwise/components";
|
|
4267
|
-
import { jsx as
|
|
4465
|
+
import { jsx as jsx92 } from "react/jsx-runtime";
|
|
4268
4466
|
var InitialLoadingStateRenderer = {
|
|
4269
4467
|
canRenderType: "loading-state",
|
|
4270
4468
|
canRender: ({ stepLoadingState }) => stepLoadingState === "initial",
|
|
4271
|
-
render: () => /* @__PURE__ */
|
|
4469
|
+
render: () => /* @__PURE__ */ jsx92(
|
|
4272
4470
|
Loader2,
|
|
4273
4471
|
{
|
|
4274
4472
|
size: "md",
|
|
@@ -4279,7 +4477,7 @@ var InitialLoadingStateRenderer = {
|
|
|
4279
4477
|
};
|
|
4280
4478
|
|
|
4281
4479
|
// ../renderers/src/subflow/getSubflowRenderer.tsx
|
|
4282
|
-
import { jsx as
|
|
4480
|
+
import { jsx as jsx93 } from "react/jsx-runtime";
|
|
4283
4481
|
var getSubflowRenderer = ({
|
|
4284
4482
|
Component: Component2,
|
|
4285
4483
|
canRender
|
|
@@ -4288,7 +4486,7 @@ var getSubflowRenderer = ({
|
|
|
4288
4486
|
canRenderType: "subflow",
|
|
4289
4487
|
canRender,
|
|
4290
4488
|
render: (props) => {
|
|
4291
|
-
return /* @__PURE__ */
|
|
4489
|
+
return /* @__PURE__ */ jsx93(
|
|
4292
4490
|
Component2,
|
|
4293
4491
|
{
|
|
4294
4492
|
presentation: props.presentation,
|
|
@@ -4369,24 +4567,24 @@ var handleRejection = (error) => {
|
|
|
4369
4567
|
// src/dynamicFlow/DynamicFlowModal.tsx
|
|
4370
4568
|
import { useDynamicFlowModal } from "@wise/dynamic-flow-client";
|
|
4371
4569
|
import { Modal as Modal5 } from "@transferwise/components";
|
|
4372
|
-
import { jsx as
|
|
4570
|
+
import { jsx as jsx94 } from "react/jsx-runtime";
|
|
4373
4571
|
function DynamicFlowModal(props) {
|
|
4374
4572
|
const _a = props, { className = "" } = _a, rest = __objRest(_a, ["className"]);
|
|
4375
4573
|
const dfProps = useWiseToCoreProps(rest);
|
|
4376
4574
|
const df = useDynamicFlowModal(dfProps);
|
|
4377
|
-
return /* @__PURE__ */
|
|
4575
|
+
return /* @__PURE__ */ jsx94(
|
|
4378
4576
|
Modal5,
|
|
4379
4577
|
__spreadProps(__spreadValues({
|
|
4380
4578
|
className: `dynamic-flow-modal ${className}`,
|
|
4381
4579
|
disableDimmerClickToClose: true
|
|
4382
4580
|
}, df.modal), {
|
|
4383
|
-
body: /* @__PURE__ */
|
|
4581
|
+
body: /* @__PURE__ */ jsx94("div", { className: "dynamic-flow-modal", children: df.modal.body })
|
|
4384
4582
|
})
|
|
4385
4583
|
);
|
|
4386
4584
|
}
|
|
4387
4585
|
|
|
4388
4586
|
// src/dynamicFlow/getMergedRenderers.tsx
|
|
4389
|
-
import { jsx as
|
|
4587
|
+
import { jsx as jsx95 } from "react/jsx-runtime";
|
|
4390
4588
|
var wiseRenderers = getWiseRenderers();
|
|
4391
4589
|
var getMergedRenderers = (props) => {
|
|
4392
4590
|
var _d, _e;
|
|
@@ -4400,7 +4598,7 @@ var getMergedRenderers = (props) => {
|
|
|
4400
4598
|
method: initialRequest.method,
|
|
4401
4599
|
data: initialRequest.body
|
|
4402
4600
|
};
|
|
4403
|
-
return presentation.type === "push" ? /* @__PURE__ */
|
|
4601
|
+
return presentation.type === "push" ? /* @__PURE__ */ jsx95(DynamicFlow, __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), { features: subflowFeatures, initialAction: action })) : /* @__PURE__ */ jsx95(
|
|
4404
4602
|
DynamicFlowModal,
|
|
4405
4603
|
__spreadProps(__spreadValues(__spreadValues({}, restProps), rest), {
|
|
4406
4604
|
features: subflowFeatures,
|
|
@@ -4459,13 +4657,13 @@ var openLinkInNewTab = (url) => {
|
|
|
4459
4657
|
};
|
|
4460
4658
|
|
|
4461
4659
|
// src/dynamicFlow/DynamicFlow.tsx
|
|
4462
|
-
import { jsxs as
|
|
4660
|
+
import { jsxs as jsxs36 } from "react/jsx-runtime";
|
|
4463
4661
|
function DynamicFlow(props) {
|
|
4464
4662
|
const { className = "" } = props;
|
|
4465
4663
|
const dfProps = useWiseToCoreProps(props);
|
|
4466
4664
|
const df = useDynamicFlow(dfProps);
|
|
4467
4665
|
const { onContextMenu, contextMenu } = useDFContextMenu(df.controller);
|
|
4468
|
-
return /* @__PURE__ */
|
|
4666
|
+
return /* @__PURE__ */ jsxs36("div", { className, onContextMenu, children: [
|
|
4469
4667
|
df.view,
|
|
4470
4668
|
contextMenu
|
|
4471
4669
|
] });
|
|
@@ -4477,7 +4675,7 @@ import {
|
|
|
4477
4675
|
useImperativeHandle
|
|
4478
4676
|
} from "react";
|
|
4479
4677
|
import { useDynamicFlow as useDynamicFlow2 } from "@wise/dynamic-flow-client";
|
|
4480
|
-
import { jsx as
|
|
4678
|
+
import { jsx as jsx96 } from "react/jsx-runtime";
|
|
4481
4679
|
var DynamicFlowWithRef = forwardRef(function DynamicFlowWithRef2(props, ref) {
|
|
4482
4680
|
const { className = "" } = props;
|
|
4483
4681
|
const dfProps = useWiseToCoreProps(props);
|
|
@@ -4493,14 +4691,14 @@ var DynamicFlowWithRef = forwardRef(function DynamicFlowWithRef2(props, ref) {
|
|
|
4493
4691
|
}),
|
|
4494
4692
|
[df]
|
|
4495
4693
|
);
|
|
4496
|
-
return /* @__PURE__ */
|
|
4694
|
+
return /* @__PURE__ */ jsx96("div", { className, children: df.view });
|
|
4497
4695
|
});
|
|
4498
4696
|
|
|
4499
4697
|
// src/index.ts
|
|
4500
4698
|
import { findRendererPropsByType } from "@wise/dynamic-flow-client";
|
|
4501
4699
|
|
|
4502
4700
|
// src/dynamicFlow/renderers.tsx
|
|
4503
|
-
var Header10 =
|
|
4701
|
+
var Header10 = Header;
|
|
4504
4702
|
var Media2 = Media;
|
|
4505
4703
|
var getMargin2 = getMargin;
|
|
4506
4704
|
|